wupengfei
2 天以前 ffe106598cb2def7e7e905695f5d6893eddcf3fd
src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
@@ -18,25 +18,19 @@
          :formatter="filterCN"
        ></ProFormText>
      </ProFormItemV2>
      <ProFormItemV2
        label="通道:"
        prop="templateId"
        :check-rules="[{ message: '请选择电子签通道' }]"
      >
      <ProFormItemV2 label="通道:" prop="access" :check-rules="[{ message: '请选择电子签通道' }]">
        <ProFormSelect
          placeholder="请选择电子签通道"
          v-model="form.templateId"
          :value-enum="[{ label: 1, value: '支付宝' }]"
          v-model="form.access"
          :value-enum="enabledElectronSignSettings"
          enum-value-key="access"
          enum-label-key="accessName"
        ></ProFormSelect>
      </ProFormItemV2>
      <ProFormItemV2
        label="业务编码:"
        prop="bussinessCode"
        :check-rules="[{ message: '请输入业务编码' }]"
      >
      <ProFormItemV2 label="业务编码:" prop="code" :check-rules="[{ message: '请输入业务编码' }]">
        <ProFormText
          placeholder="请输入业务编码"
          v-model.trim="form.bussinessCode"
          v-model.trim="form.code"
          :maxlength="5"
          :formatter="filterNumbersFromString"
        ></ProFormText>
@@ -45,20 +39,43 @@
        <ProFormText
          placeholder="请输入模板名称"
          v-model.trim="form.name"
          :maxlength="15"
          :maxlength="32"
          :disabled="form.isEnterpriseUserCreated"
        ></ProFormText>
      </ProFormItemV2>
      <ProFormItemV2
        label="上传模板:"
        prop="templateFileUrl"
        prop="file"
        :check-rules="[{ message: '请上传模板', type: 'upload' }]"
      >
        <ProFormUpload
          v-model:file-url="form.templateFileUrl"
          v-model:file-url="form.file"
          :limit="1"
          :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>
@@ -78,9 +95,17 @@
  ProFormText,
  ProFormUpload,
  ProFormSelect,
  ProFormSwitch,
} from '@bole-core/components';
import { filterCN, filterNumbersFromString } from '@/utils';
import { FormInstance } from 'element-plus';
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',
@@ -93,8 +118,13 @@
  id: string;
  templateId: string;
  name: string;
  bussinessCode: string;
  templateFileUrl: UploadUserFile[];
  code: string;
  file: UploadUserFile[];
  access: EnumElectronSignAccess;
  isEnterpriseUserCreated: boolean;
  enterpriseId: string;
  isAutoSign: boolean;
  autoSignPowerAttorneyUrl: UploadUserFile[];
};
const form = defineModel<Form>('form');
@@ -104,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() {