From 077c839ecc118a88b2c625bf902e5642a78c175b Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期四, 21 八月 2025 16:34:55 +0800 Subject: [PATCH] fix: 签约 --- src/views/AgreementManage/AgreementManageList.vue | 119 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 96 insertions(+), 23 deletions(-) diff --git a/src/views/AgreementManage/AgreementManageList.vue b/src/views/AgreementManage/AgreementManageList.vue index c812998..22100ad 100644 --- a/src/views/AgreementManage/AgreementManageList.vue +++ b/src/views/AgreementManage/AgreementManageList.vue @@ -6,10 +6,7 @@ <QueryFilterItem tip-content="鍒剁増鐘舵��"> <FieldRadio v-model="extraParamState.status" - :value-enum="[ - { label: '宸插畬鎴�', value: 1 }, - { label: '寰呭埗鐗�', value: 0 }, - ]" + :value-enum="EnumContractTemplateStatusText" buttonStyle showAllBtn @change="getList()" @@ -17,7 +14,7 @@ </QueryFilterItem> <QueryFilterItem> <FieldDatePicker - v-model="extraParamState.time" + v-model="extraParamState.createdTime" type="daterange" range-separator="~" start-placeholder="璧峰鏃堕棿" @@ -47,9 +44,20 @@ :columns="AgreementbManageColumns" :operationBtns="operationBtns" > + <template #code="{ row }"> + <el-button + v-if="row.status === EnumContractTemplateStatus.Completed" + link + type="primary" + @click="handlePreviewQrcode(row)" + >鏌ョ湅</el-button + > + <span v-else></span> + </template> </ProTableV2> </AppContainer> <TemplateAddDialog v-bind="dialogProps"></TemplateAddDialog> + <QrcodeDialog v-bind="dialogQrcodeProps" :useQrcode="false"></QrcodeDialog> </LoadingLayout> </template> @@ -70,11 +78,13 @@ bolePreview, } from '@bole-core/components'; import { AgreementbManageColumns } from './constants'; -import { EnumUserGender } from '@/constants'; -import { downloadFileByUrl } from '@/utils'; +import { EnumContractTemplateStatus, EnumContractTemplateStatusText } from '@/constants'; +import { convertPdfToImage, downloadFileByUrl, format, setOSSLink } from '@/utils'; import { ModelValueType } from 'element-plus'; -import * as taskServices from '@/services/api/task'; +import * as electronSignServices from '@/services/api/electronSign'; import TemplateAddDialog from './components/TemplateAddDialog.vue'; +import QrcodeDialog from './components/QrcodeDialog.vue'; +import { Message } from '@bole-core/core'; defineOptions({ name: 'AgreementManageList', @@ -89,6 +99,9 @@ emits: { onClick: (role) => handleCheck(role), }, + extraProps: { + hide: (row) => row.status !== EnumContractTemplateStatus.Completed, + }, }, { data: { @@ -98,6 +111,9 @@ emits: { onClick: (role) => handleDownload(role), }, + extraProps: { + hide: (row) => row.status !== EnumContractTemplateStatus.Completed, + }, }, { data: { @@ -106,6 +122,10 @@ }, emits: { onClick: (role) => handleDelete(role), + }, + props: { type: 'danger' }, + extraProps: { + hide: (row) => row.status !== EnumContractTemplateStatus.Completed, }, }, ]); @@ -132,16 +152,19 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetTaskInfosQuery = { + let params: API.GetEnterpriseContractTemplatesQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, keywords: extraParamState.keywords, + status: extraParamState.status, + createdTimeBegin: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), }; - let res = await taskServices.getTaskInfos(params, { + let res = await electronSignServices.getEnterpriseContractTemplates(params, { showLoading: !state.loading, }); return res; @@ -152,12 +175,16 @@ { defaultExtraParams: { keywords: '', - status: '' as any as EnumUserGender, - time: [] as unknown as ModelValueType, - orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], + status: '' as any as EnumContractTemplateStatus, + createdTime: [] as unknown as ModelValueType, + orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }], }, - queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], - columnsRenderProps: {}, + queryKey: ['electronSignServices/getEnterpriseContractTemplates'], + columnsRenderProps: { + createdTime: { type: 'date' }, + completedTime: { type: 'date' }, + status: { type: 'enum', valueEnum: EnumContractTemplateStatusText }, + }, } ); @@ -169,19 +196,65 @@ }, }); -async function handleAddOrEdit() {} - -function handleDelete(row) { - console.log('row: ', row); +async function handleAddOrEdit() { + try { + let pdfToImage = await convertPdfToImage(editForm.url?.[0].url); + let params: API.SaveContractTemplateCommand = { + name: editForm.name, + file: editForm.url[0]?.path ?? '', + templateEditData: JSON.stringify( + pdfToImage.map( + (x) => + ({ + path: x.path, + width: x.width, + height: x.height, + } as TemplateEditDataItem) + ) + ), + }; + let res = await electronSignServices.saveContractTemplate(params); + if (res) { + Message.successMessage('淇濆瓨鎴愬姛'); + getList(); + } + } catch (error) {} } -function handleDownload(row) { - downloadFileByUrl('', '妯℃澘'); +async function handleDelete(row: API.GetEnterpriseContractTemplatesQueryResultItem) { + try { + await Message.deleteMessage(); + let res = await electronSignServices.setIsDisabledContractTemplate({ + ids: [row.id], + isDisabled: true, + }); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + } + } catch (error) {} } -function handleCheck(row) { +function handleDownload(row: API.GetEnterpriseContractTemplatesQueryResultItem) { + downloadFileByUrl(setOSSLink(row.file), '妯℃澘'); +} + +function handleCheck(row: API.GetEnterpriseContractTemplatesQueryResultItem) { bolePreview({ - fileUrl: '', + fileUrl: setOSSLink(row.file), + }); +} + +const { dialogProps: dialogQrcodeProps, handleEdit } = useFormDialog({ + defaultFormParams: { + qrcodeUrl: '', + }, +}); + +function handlePreviewQrcode(row: API.GetEnterpriseContractTemplatesQueryResultItem) { + handleEdit({ + // qrcodeUrl: setOSSLink(row.file), + qrcodeUrl: row.wxmpQrCode, }); } </script> -- Gitblit v1.9.1