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'
---
src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue | 99 +++++++++++++++++++++++++++++++++++++++----------
1 files changed, 79 insertions(+), 20 deletions(-)
diff --git a/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue b/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
index 2bc2f6d..04d7d16 100644
--- a/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
+++ b/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() {
--
Gitblit v1.9.1