From ecaa5e0af0a087f256d497f7b7656f2900342226 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 22 八月 2025 15:10:53 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdmin --- src/views/ProtocolManage/EditTemplate.vue | 198 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 154 insertions(+), 44 deletions(-) diff --git a/src/views/ProtocolManage/EditTemplate.vue b/src/views/ProtocolManage/EditTemplate.vue index 1faf700..833779c 100644 --- a/src/views/ProtocolManage/EditTemplate.vue +++ b/src/views/ProtocolManage/EditTemplate.vue @@ -6,10 +6,7 @@ <QueryFilterItem> <FieldRadio v-model="extraParamState.status" - :value-enum="[ - { value: 1, label: '寰呭埗鐗�' }, - { value: 2, label: '宸插畬鎴�' }, - ]" + :value-enum="EnumContractTemplateStatusText" buttonStyle showAllBtn @change="getList()" @@ -17,7 +14,7 @@ </QueryFilterItem> <QueryFilterItem tip-content="瀹㈡埛涓婁紶鏃堕棿"> <FieldDatePicker - v-model="extraParamState.beginDate" + v-model="extraParamState.createdTime" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -28,7 +25,7 @@ </QueryFilterItem> <QueryFilterItem tip-content="鍒剁増鏃堕棿"> <FieldDatePicker - v-model="extraParamState.beginDate" + v-model="extraParamState.completedTime" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -55,6 +52,7 @@ </ProTableV2> </AppContainer> <AddOrEditTemplateDialog v-bind="dialogProps" /> + <OperateHistoryLogDialog v-bind="logDialogProps" /> </LoadingLayout> </template> @@ -75,20 +73,31 @@ } from '@bole-core/components'; import { useAccess } from '@/hooks'; import { ModelValueType } from 'element-plus'; -import * as enterpriseServices from '@/services/api/enterprise'; +import * as electronSignServices from '@/services/api/electronSign'; import AddOrEditTemplateDialog from './components/AddOrEditTemplateDialog.vue'; -import { Message } from '@bole-core/core'; +import { downloadFileByUrl, Message } from '@bole-core/core'; +import { + convertApi2FormUrlOnlyOne, + convertPdfToImage, + format, + openLink, + setOSSLink, +} from '@/utils'; +import { EnumContractTemplateStatus, EnumContractTemplateStatusText } from '@/constants'; defineOptions({ name: 'EditTemplate', }); const operationBtnMap: Record<string, OperationBtnType> = { - editBtn: { emits: { onClick: (role) => openDialog(role) } }, - editTemplateBtn: { + editBtn: { emits: { onClick: (role) => openDialog(role) }, + }, + editTemplateBtn: { + emits: { onClick: (role) => goEditTemplate(role) }, extraProps: { - hide: (row) => false, + hide: (row: API.GetEnterpriseContractTemplatesQueryResultItem) => + row.status !== EnumContractTemplateStatus.Wait, }, }, downloadBtn: { @@ -96,13 +105,15 @@ }, delBtn: { emits: { onClick: (role) => handleDelete(role) }, + props: { type: 'danger' }, extraProps: { - hide: (row) => false, + hide: (row: API.GetEnterpriseContractTemplatesQueryResultItem) => + row.status !== EnumContractTemplateStatus.Completed, }, }, logBtn: { - emits: { onClick: (role) => openLogDialog(role) }, + emits: { onClick: (role) => openLogDialog(role.id) }, }, }; @@ -110,7 +121,8 @@ operationBtnMap, }); -const router = useRouter(); +const route = useRoute(); +const enterpriseId = route.params?.id as string; const BaseState = { loading: true, }; @@ -131,15 +143,21 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetEnterprisesQuery = { + let params: API.GetEnterpriseContractTemplatesQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, - // searchKeys: extraParamState.keyword, + keywords: extraParamState.keyword, + 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'), + completedTimeBegin: format(extraParamState.completedTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + completedTimeEnd: format(extraParamState.completedTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), + enterpriseId: enterpriseId, }; - let res = await enterpriseServices.getEnterprises(params, { + let res = await electronSignServices.getEnterpriseContractTemplates(params, { showLoading: !state.loading, }); return res; @@ -148,12 +166,22 @@ { defaultExtraParams: { keyword: '', - status: '' as any as boolean, - beginDate: [] as unknown as ModelValueType, - endDate: [] as unknown as ModelValueType, - orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }], + status: '' as any as EnumContractTemplateStatus, + createdTime: [] as unknown as ModelValueType, + completedTime: [] as unknown as ModelValueType, + orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }], }, - columnsRenderProps: {}, + columnsRenderProps: { + createdTime: { type: 'date' }, + completedTime: { type: 'date' }, + status: { type: 'enum', valueEnum: EnumContractTemplateStatusText }, + access: { type: 'enum', valueEnum: EnumElectronSignAccessText }, + file: { + type: 'url', + showDownloadBtn: false, + formatter: (row: API.GetEnterpriseContractTemplatesQueryResultItem) => setOSSLink(row.file), + }, + }, } ); @@ -163,34 +191,116 @@ id: '', templateId: '', name: '', - bussinessCode: '', - templateFileUrl: [] as UploadUserFile[], + code: '', + file: [] as UploadUserFile[], + access: '' as any as EnumElectronSignAccess, title: '鏂板妯℃澘', + isEnterpriseUserCreated: false, + templateEditData: '', + enterpriseId: '', }, }); -function openDialog(row?) { - if (row) { - handleEdit({ - id: '', - name: '', - bussinessCode: '', - templateId: '', - templateFileUrl: [] as UploadUserFile[], - }); - } else { - handleAdd(); - } -} - -async function handleAddOrEdit() {} - -function handleDownload(row) {} -async function handleDelete(row) { +async function openDialog(row?: API.GetEnterpriseContractTemplatesQueryResultItem) { try { - await Message.deleteMessage(); + if (row) { + let detail = await electronSignServices.getContractTemplate({ id: row.id }); + handleEdit({ + id: row.id, + templateId: row.templateId, + name: row.name, + code: row.code, + file: convertApi2FormUrlOnlyOne(row.file), + access: row.access, + isEnterpriseUserCreated: detail.isEnterpriseUserCreated, + templateEditData: detail.templateEditData, + enterpriseId: enterpriseId, + }); + } else { + handleAdd(); + } } catch (error) {} } -function openLogDialog(row) {} +async function handleAddOrEdit() { + try { + let isEdit = !!editForm.id; + let pdfToImage = await convertPdfToImage(editForm.file?.[0].url); + let params: API.SaveContractTemplateCommand = { + name: editForm.name, + file: editForm.file[0]?.path ?? '', + enterpriseId: enterpriseId, + code: editForm.code, + access: editForm.access, + templateId: editForm.templateId, + templateEditData: JSON.stringify( + pdfToImage.map( + (x) => + ({ + path: x.path, + width: x.width, + height: x.height, + } as TemplateEditDataItem) + ) + ), + }; + if (isEdit) { + params.id = editForm.id; + } + let res = await electronSignServices.saveContractTemplate(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(); + } + } catch (error) {} +} + +function handleDownload(row: API.GetEnterpriseContractTemplatesQueryResultItem) { + downloadFileByUrl(setOSSLink(row.file), '妯℃澘'); +} +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) {} +} + +const router = useRouter(); + +function goEditTemplate(row: API.GetEnterpriseContractTemplatesQueryResultItem) { + openLink( + router.resolve({ + name: 'TemplateKeyEdit', + params: { + id: row.id ?? '', + }, + }).fullPath + ); +} + +const { openLogDialog, logDialogProps } = useOpenLogDialog({ + service: async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetEnterpriseContractTemplateLogsQuery = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + id: extraParamState.id, + }; + let res = await electronSignServices.getEnterpriseContractTemplateLogs(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) {} + }, +}); </script> -- Gitblit v1.9.1