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