From a2e10d9aacbbf5caca48cc17c3f196c0f08ffabf Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 28 十一月 2025 14:38:00 +0800
Subject: [PATCH] fix: s

---
 src/views/AgreementManage/AgreementManageList.vue             |   76 +++++++++++++++++++++++++++++++++++--
 src/views/CustomerManage/components/AddOrEditCustomerView.vue |   19 ++++++---
 src/views/AgreementManage/components/TemplateAddDialog.vue    |    1 
 3 files changed, 84 insertions(+), 12 deletions(-)

diff --git a/src/views/AgreementManage/AgreementManageList.vue b/src/views/AgreementManage/AgreementManageList.vue
index 1ed57ed..ee98927 100644
--- a/src/views/AgreementManage/AgreementManageList.vue
+++ b/src/views/AgreementManage/AgreementManageList.vue
@@ -39,7 +39,7 @@
           <el-button
             v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
             type="primary"
-            @click="handleAdd()"
+            @click="openDialog()"
             >鏂板妯℃澘</el-button
           >
         </template>
@@ -78,7 +78,13 @@
   bolePreview,
 } from '@bole-core/components';
 import { EnumContractTemplateStatus, EnumContractTemplateStatusText } from '@/constants';
-import { convertPdfToImage, downloadFileByUrl, format, setOSSLink } from '@/utils';
+import {
+  convertApi2FormUrlOnlyOne,
+  convertPdfToImage,
+  downloadFileByUrl,
+  format,
+  setOSSLink,
+} from '@/utils';
 import { ModelValueType } from 'element-plus';
 import * as electronSignServices from '@/services/api/electronSign';
 import TemplateAddDialog from './components/TemplateAddDialog.vue';
@@ -93,6 +99,14 @@
   checkBtn: {
     emits: {
       onClick: (role) => handleCheck(role),
+    },
+    extraProps: {
+      hide: (row) => row.status !== EnumContractTemplateStatus.Completed,
+    },
+  },
+  editBtn: {
+    emits: {
+      onClick: (role) => openDialog(role),
     },
     extraProps: {
       hide: (row) => row.status !== EnumContractTemplateStatus.Completed,
@@ -183,22 +197,67 @@
   }
 );
 
-const { dialogProps, handleAdd, editForm } = useFormDialog({
+async function openDialog(row?: API.GetEnterpriseContractTemplatesQueryResultItem) {
+  try {
+    if (row) {
+      let detail = await electronSignServices.getContractTemplate({ id: row.id });
+      handleTemplateEdit({
+        id: row.id,
+        templateId: row.templateId,
+        name: row.name,
+        code: row.code,
+        url: convertApi2FormUrlOnlyOne(row.file),
+        access: row.access,
+        isEnterpriseUserCreated: detail.isEnterpriseUserCreated,
+        templateEditData: detail.templateEditData,
+        isAutoSign: detail.isAutoSign ?? false,
+        autoSignPowerAttorneyUrl: convertApi2FormUrlOnlyOne(detail.autoSignPowerAttorneyUrl),
+        enterpriseId: detail.enterpriseId,
+
+        customContents: detail.customContents.map((x) => x.name),
+      });
+    } else {
+      handleTemplateAdd();
+    }
+  } catch (error) {}
+}
+
+const {
+  dialogProps,
+  handleAdd: handleTemplateAdd,
+  handleEdit: handleTemplateEdit,
+  editForm,
+} = useFormDialog({
   onConfirm: handleAddOrEdit,
   defaultFormParams: {
+    id: '',
+    templateId: '',
     name: '',
+    code: '',
     url: [] as UploadUserFile[],
+    access: '' as any as EnumElectronSignAccess,
+    isEnterpriseUserCreated: false,
+    templateEditData: '',
+    enterpriseId: '',
     isAutoSign: true,
     autoSignPowerAttorneyUrl: [] as UploadUserFile[],
+
+    customContents: [] as string[],
   },
 });
 
 async function handleAddOrEdit() {
   try {
+    let isEdit = !!editForm.id;
     let pdfToImage = await convertPdfToImage(editForm.url?.[0].url);
     let params: API.SaveContractTemplateCommand = {
       name: editForm.name,
       file: editForm.url[0]?.path ?? '',
+      enterpriseId: editForm.enterpriseId,
+      code: editForm.code,
+      access: editForm.access,
+      templateId: editForm.templateId,
+      autoSignPowerAttorneyUrl: editForm.autoSignPowerAttorneyUrl?.[0]?.path ?? '',
       templateEditData: JSON.stringify(
         pdfToImage.map(
           (x) =>
@@ -209,9 +268,16 @@
             } as TemplateEditDataItem)
         )
       ),
-      autoSignPowerAttorneyUrl: editForm.autoSignPowerAttorneyUrl?.[0]?.path ?? '',
-      isAutoSign: editForm.isAutoSign,
+      customContents: editForm.customContents,
     };
+    if (editForm.access === EnumElectronSignAccess.BestSign) {
+      params.isAutoSign = editForm.isAutoSign;
+    } else {
+      params.isAutoSign = false;
+    }
+    if (isEdit) {
+      params.id = editForm.id;
+    }
     let res = await electronSignServices.saveContractTemplate(params);
     if (res) {
       Message.successMessage('淇濆瓨鎴愬姛');
diff --git a/src/views/AgreementManage/components/TemplateAddDialog.vue b/src/views/AgreementManage/components/TemplateAddDialog.vue
index fb18950..60793f4 100644
--- a/src/views/AgreementManage/components/TemplateAddDialog.vue
+++ b/src/views/AgreementManage/components/TemplateAddDialog.vue
@@ -68,6 +68,7 @@
 
 type Form = {
   title?: string;
+  id: string;
   name: string;
   url: UploadUserFile[];
   isAutoSign: boolean;
diff --git a/src/views/CustomerManage/components/AddOrEditCustomerView.vue b/src/views/CustomerManage/components/AddOrEditCustomerView.vue
index 58e048f..f4be7d9 100644
--- a/src/views/CustomerManage/components/AddOrEditCustomerView.vue
+++ b/src/views/CustomerManage/components/AddOrEditCustomerView.vue
@@ -180,12 +180,7 @@
                 </ProFormSelect>
               </ProFormItemV2>
             </ProFormColItem>
-            <ProFormColItem
-              :span="8"
-              v-if="
-                form.serviceFeeCollectType === EnumEnterpriseCooperationServiceFeeCollectType.Rate
-              "
-            >
+            <ProFormColItem :span="8">
               <ProFormItemV2 label="鏈嶅姟璐�:" prop="serviceFeeRate">
                 <ProFormInputNumber
                   v-model="form.serviceFeeRate"
@@ -193,7 +188,7 @@
                   :min="0"
                   :precision="2"
                   placeholder="璇疯緭鍏�"
-                  unit="%"
+                  :unit="serviceFeeCollectTypeUnit"
                   :showReadContent="!!form.serviceFeeRate"
                 />
               </ProFormItemV2>
@@ -428,6 +423,16 @@
   enabled: computed(() => !!id),
 });
 
+const serviceFeeCollectTypeUnit = computed(() => {
+  if (!form.serviceFeeCollectType) {
+    return '';
+  } else {
+    return form.serviceFeeCollectType === EnumEnterpriseCooperationServiceFeeCollectType.Rate
+      ? '%'
+      : '鍏�/浜�';
+  }
+});
+
 const {
   dialogProps: resetPasswordDialogProps,
   handleAdd: handleResetPasswordAdd,

--
Gitblit v1.9.1