From ea419e5d4d95728a5654b0cb4bb3fb7634e2660a Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 24 十月 2025 15:55:28 +0800
Subject: [PATCH] fix: 自动签配置

---
 .eslintrc-auto-import.json                                      |    1 +
 src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue |   36 +++++++++++++++++++++++++++++-------
 src/views/ProtocolManage/EditTemplate.vue                       |   10 +++++++++-
 auto-imports.d.ts                                               |    2 ++
 src/constants/electronSign.ts                                   |    3 +++
 5 files changed, 44 insertions(+), 8 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index 2b8d5a5..f11224d 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -5,6 +5,7 @@
     "AppType": true,
     "AreaType": true,
     "AuthorizeType": true,
+    "AutoSignPowerAttorneyTempUrl": true,
     "BooleanOptions": true,
     "CategoryCode": true,
     "CertificateTypeCodeEnum": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index fb65a3e..1eeca58 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -11,6 +11,7 @@
   const AppType: typeof import('./src/constants/app')['AppType']
   const AreaType: typeof import('./src/constants/enum')['AreaType']
   const AuthorizeType: typeof import('./src/constants/enum')['AuthorizeType']
+  const AutoSignPowerAttorneyTempUrl: typeof import('./src/constants/electronSign')['AutoSignPowerAttorneyTempUrl']
   const BooleanOptions: typeof import('./src/constants/enum')['BooleanOptions']
   const CategoryCode: typeof import('./src/constants/dic')['CategoryCode']
   const CertificateTypeCodeEnum: typeof import('./src/constants/dic')['CertificateTypeCodeEnum']
@@ -371,6 +372,7 @@
     readonly AppType: UnwrapRef<typeof import('./src/constants/app')['AppType']>
     readonly AreaType: UnwrapRef<typeof import('./src/constants/enum')['AreaType']>
     readonly AuthorizeType: UnwrapRef<typeof import('./src/constants/enum')['AuthorizeType']>
+    readonly AutoSignPowerAttorneyTempUrl: UnwrapRef<typeof import('./src/constants/electronSign')['AutoSignPowerAttorneyTempUrl']>
     readonly BooleanOptions: UnwrapRef<typeof import('./src/constants/enum')['BooleanOptions']>
     readonly CategoryCode: UnwrapRef<typeof import('./src/constants/dic')['CategoryCode']>
     readonly CertificateTypeCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['CertificateTypeCodeEnum']>
diff --git a/src/constants/electronSign.ts b/src/constants/electronSign.ts
index 65a05cc..dd8ae10 100644
--- a/src/constants/electronSign.ts
+++ b/src/constants/electronSign.ts
@@ -1,4 +1,5 @@
 import { EnumContractTemplateValueRecorder } from './apiEnum';
+import { TempFolderPath } from './enum';
 
 export const EnumContractTemplateStatusText = {
   [EnumContractTemplateStatus.Wait]: '寰呭埗鐗�',
@@ -31,3 +32,5 @@
   [EnumContractTemplateValueRecorder.Creator]: '鍙戜欢浜�',
   [EnumContractTemplateValueRecorder.Signer]: '绛剧讲浜�',
 };
+
+export const AutoSignPowerAttorneyTempUrl = `https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/FlexJob/temp/%E3%80%90%E5%85%AC%E5%AF%B9%E5%85%AC%E3%80%91%E7%94%B5%E5%AD%90%E7%AD%BE%E5%90%8D%E6%8E%88%E6%9D%83%E4%B9%A6%EF%BC%88%E4%BB%A3%E4%B8%BA%E7%AD%BE%E7%BD%B2%26%E8%87%AA%E5%8A%A8%E7%AD%BE%EF%BC%89-V4-20220315.docx`;
diff --git a/src/views/ProtocolManage/EditTemplate.vue b/src/views/ProtocolManage/EditTemplate.vue
index d99ffb6..16a8129 100644
--- a/src/views/ProtocolManage/EditTemplate.vue
+++ b/src/views/ProtocolManage/EditTemplate.vue
@@ -181,6 +181,10 @@
         showDownloadBtn: false,
         formatter: (row: API.GetEnterpriseContractTemplatesQueryResultItem) => setOSSLink(row.file),
       },
+      isAutoSign: {
+        formatter: (row: API.GetEnterpriseContractTemplatesQueryResultItem) =>
+          row.isAutoSign ? '鏄�' : '鍚�',
+      },
     },
   }
 );
@@ -238,7 +242,6 @@
       code: editForm.code,
       access: editForm.access,
       templateId: editForm.templateId,
-      isAutoSign: editForm.isAutoSign,
       autoSignPowerAttorneyUrl: editForm.autoSignPowerAttorneyUrl?.[0]?.path ?? '',
       templateEditData: JSON.stringify(
         pdfToImage.map(
@@ -251,6 +254,11 @@
         )
       ),
     };
+    if (editForm.access === EnumElectronSignAccess.BestSign) {
+      params.isAutoSign = editForm.isAutoSign;
+    } else {
+      params.isAutoSign = false;
+    }
     if (isEdit) {
       params.id = editForm.id;
     }
diff --git a/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue b/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
index 7d8481f..04d7d16 100644
--- a/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
+++ b/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
@@ -55,14 +55,19 @@
           accept="pdf"
         ></ProFormUpload>
       </ProFormItemV2>
-      <ProFormItemV2 label="鑷姩绛剧害锛�" prop="isAutoSign" required>
+      <ProFormItemV2
+        label="鑷姩绛剧害锛�"
+        prop="isAutoSign"
+        required
+        v-if="form.access === EnumElectronSignAccess.BestSign"
+      >
         <ProFormSwitch v-model="form.isAutoSign"></ProFormSwitch>
       </ProFormItemV2>
       <ProFormItemV2
-        label="鑷姩绛炬巿鏉冧功锛�"
+        label="涓婁紶鎺堟潈涔︼細"
         prop="autoSignPowerAttorneyUrl"
-        :check-rules="[{ message: '璇蜂笂浼犺嚜鍔ㄧ鎺堟潈涔�', type: 'upload' }]"
-        v-if="form.isAutoSign"
+        :check-rules="form.isAutoSign && [{ message: '璇蜂笂浼犵鎺堟潈涔�', type: 'upload' }]"
+        :required="form.isAutoSign"
       >
         <ProFormUpload
           v-model:file-url="form.autoSignPowerAttorneyUrl"
@@ -70,6 +75,7 @@
           :limitFileSize="10"
           accept="pdf,doc,docx,png,jpg,jpeg"
         ></ProFormUpload>
+        <el-button type="primary" link @click="handleDownload">涓嬭浇妯℃澘</el-button>
       </ProFormItemV2>
     </ProForm>
     <template #footer>
@@ -91,9 +97,13 @@
   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';
 
@@ -124,6 +134,14 @@
   (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,
@@ -141,6 +159,10 @@
   } catch (error) {}
 }
 
+function handleDownload() {
+  downloadFileByUrl(AutoSignPowerAttorneyTempUrl, '鑷姩绛炬巿鏉冧功妯℃澘');
+}
+
 const dialogForm = ref<FormInstance>();
 
 function onDialogClose() {

--
Gitblit v1.9.1