wupengfei
2 天以前 ffe106598cb2def7e7e905695f5d6893eddcf3fd
src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
@@ -39,7 +39,7 @@
        <ProFormText
          placeholder="请输入模板名称"
          v-model.trim="form.name"
          :maxlength="15"
          :maxlength="32"
          :disabled="form.isEnterpriseUserCreated"
        ></ProFormText>
      </ProFormItemV2>
@@ -54,6 +54,28 @@
          :limitFileSize="10"
          accept="pdf"
        ></ProFormUpload>
      </ProFormItemV2>
      <ProFormItemV2
        label="自动签约:"
        prop="isAutoSign"
        required
        v-if="form.access === EnumElectronSignAccess.BestSign"
      >
        <ProFormSwitch v-model="form.isAutoSign"></ProFormSwitch>
      </ProFormItemV2>
      <ProFormItemV2
        label="上传授权书:"
        prop="autoSignPowerAttorneyUrl"
        :check-rules="form.isAutoSign && [{ message: '请上传签授权书', type: 'upload' }]"
        :required="form.isAutoSign"
      >
        <ProFormUpload
          v-model:file-url="form.autoSignPowerAttorneyUrl"
          :limit="1"
          :limitFileSize="10"
          accept="pdf,doc,docx,png,jpg,jpeg"
        ></ProFormUpload>
        <el-button type="primary" link @click="handleDownload">下载模板</el-button>
      </ProFormItemV2>
    </ProForm>
    <template #footer>
@@ -73,10 +95,17 @@
  ProFormText,
  ProFormUpload,
  ProFormSelect,
  ProFormSwitch,
} from '@bole-core/components';
import { filterCN, filterNumbersFromString } from '@/utils';
import { FormInstance } from 'element-plus';
import { EnumElectronSignAccessText } from '@/constants';
import { filterCN, filterNumbersFromString, downloadFileByUrl } from '@/utils';
import { FormInstance, FormRules } from 'element-plus';
import {
  EnumElectronSignAccessText,
  EnumElectronSignAccess,
  AutoSignPowerAttorneyTempUrl,
} from '@/constants';
import * as electronSignServices from '@/services/api/electronSign';
import { Message } from '@bole-core/core';
defineOptions({
  name: 'AddOrEditTemplateDialog',
@@ -94,6 +123,8 @@
  access: EnumElectronSignAccess;
  isEnterpriseUserCreated: boolean;
  enterpriseId: string;
  isAutoSign: boolean;
  autoSignPowerAttorneyUrl: UploadUserFile[];
};
const form = defineModel<Form>('form');
@@ -103,10 +134,35 @@
  (e: 'onCancel'): void;
}>();
watch(
  () => form.value.isAutoSign,
  () => {
    if (form.value.isAutoSign && dialogForm.value) {
      dialogForm.value.clearValidate('autoSignPowerAttorneyUrl');
    }
  }
);
const { enabledElectronSignSettings } = useEnabledElectronSignSettings({
  enterpriseId: computed(() => form.value.enterpriseId),
  all: true,
});
async function handleCodeBlur() {
  try {
    let params: API.CheckContractTemplateCommand = {
      id: form.value?.id,
    };
    let res = await electronSignServices.checkContractTemplate(params);
    if (res) {
      Message.warnMessage('业务编码已存在,请重新输入');
    }
  } catch (error) {}
}
function handleDownload() {
  downloadFileByUrl(AutoSignPowerAttorneyTempUrl, '自动签授权书模板');
}
const dialogForm = ref<FormInstance>();
function onDialogClose() {