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