From baa76cb2bf0496ea34b4eee1a04a13cc1ca680cb Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期三, 13 八月 2025 17:42:03 +0800 Subject: [PATCH] fix: 验收管理 --- src/views/EmploymentManage/components/CheckManageDialog.vue | 124 +++++++++++++++++++++++++++++++++------- 1 files changed, 101 insertions(+), 23 deletions(-) diff --git a/src/views/EmploymentManage/components/CheckManageDialog.vue b/src/views/EmploymentManage/components/CheckManageDialog.vue index 1c93c62..af00716 100644 --- a/src/views/EmploymentManage/components/CheckManageDialog.vue +++ b/src/views/EmploymentManage/components/CheckManageDialog.vue @@ -6,13 +6,7 @@ </ProDialogTableWrapper> <template #footer> <span class="dialog-footer"> - <el-button v-if="form.type === 'detail'" @click="emit('onCancel')" type="primary" - >纭畾</el-button - > - <template v-if="form.type === 'check'"> - <el-button @click="emit('check', false)">楠屾敹鏈�氳繃</el-button> - <el-button type="primary" @click="emit('check', true)">楠屾敹閫氳繃</el-button> - </template> + <el-button @click="emit('onCancel')" type="primary">纭畾</el-button> </span> </template> </ProDialog> @@ -27,6 +21,10 @@ defineOperationBtns, useTable, } from '@bole-core/components'; +import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive'; +import { setOSSLink } from '@/utils'; +import { downloadWithZip, Message } from '@bole-core/core'; +import { useGlobalEventContext } from '@/hooks'; defineOptions({ name: 'EnterpriseConsumptionDetailDialog', @@ -34,31 +32,74 @@ type Form = { id: string; - type: string; + isDetail: boolean; }; const visible = defineModel({ type: Boolean }); const form = defineModel<Form>('form'); -const title = computed(() => (form.value.type === 'check' ? '楠屾敹' : '璇︽儏')); +const title = computed(() => (form.value.isDetail ? '璇︽儏' : '楠屾敹')); const emit = defineEmits<{ (e: 'onCancel'): void; - (e: 'check', value: boolean): void; }>(); + +const eventContext = useGlobalEventContext(); const columns = defineColumns([ { id: '1', - enCode: 'creationTime', + enCode: 'createdTime', name: '鎻愪氦鏃堕棿', }, { id: '2', - enCode: 'type', + enCode: 'files', name: '楠屾敹鐓х墖', + }, + { + id: '3', + enCode: 'checkReceiveStatus', + name: '楠屾敹鐘舵��', + }, + { + id: '4', + enCode: 'checkReceiveTime', + name: '楠屾敹鏃堕棿', }, ]); const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'checkReceiveBtn', + name: '楠屾敹閫氳繃', + }, + emits: { + onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Success), + }, + extraProps: { + hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) => + !( + row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit || + row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive + ) || form.value.isDetail, + }, + }, + { + data: { + enCode: 'checkReceiveBtn', + name: '楠屾敹鏈�氳繃', + }, + emits: { + onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Fail), + }, + extraProps: { + hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) => + !( + row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit || + row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive + ) || form.value.isDetail, + }, + }, { data: { enCode: 'downloadBtn', @@ -71,10 +112,12 @@ ]); watch( - () => visible.value, + visible, (val) => { if (val) { - getList(); + if (form.value.id) { + getList(); + } } }, { @@ -91,14 +134,15 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetFlexEnterpriseInput = { + let params: API.GetCheckReceiveTaskUserSubmitsQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, + id: form.value.id, }; - let res = await flexEnterpriseServices.getFlexEnterpriseList(params); + let res = await taskCheckReceiveServices.getCheckReceiveTaskUserSubmits(params); return res; } catch (error) { console.log('error: ', error); @@ -108,14 +152,48 @@ defaultExtraParams: { orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, - queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], - columnsRenderProps: {}, + queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmits'], + columnsRenderProps: { + createdTime: { type: 'date' }, + checkReceiveTime: { type: 'date' }, + checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskUserSubmitCheckReceiveStatusText }, + files: { + type: 'url', + //@ts-ignore + formatter: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) => + (row.files ?? []).map((x) => setOSSLink(x)), + showDownloadBtn: false, + }, + }, } ); -function handleDownload(row) {} -</script> +function handleDownload(row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) { + if (row.files?.length > 0) { + downloadWithZip( + row.files.map((x) => ({ + data: setOSSLink(x), + })), + '楠屾敹鐓х墖' + ); + } +} -<style lang="scss" scoped> -@use '@/style/common.scss' as *; -</style> +async function checkReceiveTask( + row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem, + checkReceiveStatus: EnumTaskUserSubmitCheckReceiveStatus +) { + try { + let params: API.CheckReceiveTaskCommand = { + id: row.id, + checkReceiveStatus: checkReceiveStatus, + }; + let res = await taskCheckReceiveServices.checkReceiveTask(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + eventContext.emit('checkReceiveTask'); + } + } catch (error) {} +} +</script> -- Gitblit v1.9.1