From ffe106598cb2def7e7e905695f5d6893eddcf3fd Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 27 十月 2025 19:35:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-auto-sign'
---
.eslintrc-auto-import.json | 1
src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue | 47 ++++++++++++++++++++++-
src/views/ProtocolManage/EditTemplate.vue | 14 +++++++
auto-imports.d.ts | 2 +
src/constants/electronSign.ts | 3 +
5 files changed, 64 insertions(+), 3 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 0154140..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 ? '鏄�' : '鍚�',
+ },
},
}
);
@@ -198,6 +202,8 @@
isEnterpriseUserCreated: false,
templateEditData: '',
enterpriseId: '',
+ isAutoSign: false,
+ autoSignPowerAttorneyUrl: [] as UploadUserFile[],
},
closeAfterConfirm: false,
});
@@ -215,6 +221,8 @@
access: row.access,
isEnterpriseUserCreated: detail.isEnterpriseUserCreated,
templateEditData: detail.templateEditData,
+ isAutoSign: detail.isAutoSign ?? false,
+ autoSignPowerAttorneyUrl: convertApi2FormUrlOnlyOne(detail.autoSignPowerAttorneyUrl),
enterpriseId: enterpriseId,
});
} else {
@@ -234,6 +242,7 @@
code: editForm.code,
access: editForm.access,
templateId: editForm.templateId,
+ autoSignPowerAttorneyUrl: editForm.autoSignPowerAttorneyUrl?.[0]?.path ?? '',
templateEditData: JSON.stringify(
pdfToImage.map(
(x) =>
@@ -245,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 6e0f397..04d7d16 100644
--- a/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
+++ b/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
@@ -55,6 +55,28 @@
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>
<span class="dialog-footer">
@@ -73,10 +95,15 @@
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';
@@ -96,6 +123,8 @@
access: EnumElectronSignAccess;
isEnterpriseUserCreated: boolean;
enterpriseId: string;
+ isAutoSign: boolean;
+ autoSignPowerAttorneyUrl: UploadUserFile[];
};
const form = defineModel<Form>('form');
@@ -105,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,
@@ -122,6 +159,10 @@
} catch (error) {}
}
+function handleDownload() {
+ downloadFileByUrl(AutoSignPowerAttorneyTempUrl, '鑷姩绛炬巿鏉冧功妯℃澘');
+}
+
const dialogForm = ref<FormInstance>();
function onDialogClose() {
--
Gitblit v1.9.1