zhengyiming
5 天以前 ea419e5d4d95728a5654b0cb4bb3fb7634e2660a
src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
@@ -22,7 +22,9 @@
        <ProFormSelect
          placeholder="请选择电子签通道"
          v-model="form.access"
          :value-enum="EnumElectronSignAccessText"
          :value-enum="enabledElectronSignSettings"
          enum-value-key="access"
          enum-label-key="accessName"
        ></ProFormSelect>
      </ProFormItemV2>
      <ProFormItemV2 label="业务编码:" prop="code" :check-rules="[{ message: '请输入业务编码' }]">
@@ -37,7 +39,7 @@
        <ProFormText
          placeholder="请输入模板名称"
          v-model.trim="form.name"
          :maxlength="15"
          :maxlength="32"
          :disabled="form.isEnterpriseUserCreated"
        ></ProFormText>
      </ProFormItemV2>
@@ -52,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>
@@ -71,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',
@@ -91,6 +122,9 @@
  file: UploadUserFile[];
  access: EnumElectronSignAccess;
  isEnterpriseUserCreated: boolean;
  enterpriseId: string;
  isAutoSign: boolean;
  autoSignPowerAttorneyUrl: UploadUserFile[];
};
const form = defineModel<Form>('form');
@@ -100,6 +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() {