From 8d1d92a4baad8df0814a712224112f4b8eefc9d6 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 12 十一月 2025 13:32:39 +0800
Subject: [PATCH] feat: 1.3.0.2

---
 src/views/EmploymentManage/TaskManageList.vue |   89 +++++++++++++++++++++++++-------------------
 1 files changed, 51 insertions(+), 38 deletions(-)

diff --git a/src/views/EmploymentManage/TaskManageList.vue b/src/views/EmploymentManage/TaskManageList.vue
index 1c2f458..aaf8578 100644
--- a/src/views/EmploymentManage/TaskManageList.vue
+++ b/src/views/EmploymentManage/TaskManageList.vue
@@ -43,14 +43,15 @@
           </QueryFilterItem>
         </template>
         <template #btn>
-          <el-button @click="goAddOrEdit()" type="primary">鍙戝竷</el-button>
+          <el-button
+            v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
+            @click="goAddOrEdit()"
+            type="primary"
+            >鍙戝竷</el-button
+          >
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="EmploymentManageColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
         <template #userCount="{ row }">
           <el-button link type="primary" @click="goSignList(row)">{{
             row.userCount || 0
@@ -72,44 +73,34 @@
   useTable,
   FieldDatePicker,
   FieldRadio,
-  defineOperationBtns,
 } from '@bole-core/components';
-import { EmploymentManageColumns } from './constants';
 import { EnumTaskStatusText, EnumTaskReleaseStatusText } from '@/constants';
 import { useGlobalEventContext } from '@/hooks';
 import * as taskServices from '@/services/api/task';
-import { format } from '@/utils';
+import { format, OrderUtils } from '@/utils';
 import { ModelValueType } from 'element-plus';
 import { Message } from '@bole-core/core';
+import dayjs from 'dayjs';
 
 defineOptions({
   name: 'TaskManageList',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'editBtn',
-      name: '缂栬緫',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  editBtn: {
     emits: {
       onClick: (role) => goAddOrEdit(role),
     },
-  },
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '璇︽儏',
+    extraProps: {
+      hide: (row: API.GetTaskInfosQueryResultItem) => row.status === EnumTaskStatus.Complete,
     },
+  },
+  detailBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row),
     },
   },
-  {
-    data: {
-      enCode: 'publishBtn',
-      name: '鍙戝竷',
-    },
+  publishBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) =>
         setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.InProcess),
@@ -119,11 +110,7 @@
         row.releaseStatus === EnumTaskReleaseStatus.InProcess,
     },
   },
-  {
-    data: {
-      enCode: 'unPublishBtn',
-      name: '鍋滄鍙戝竷',
-    },
+  unPublishBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) =>
         setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.Stopped),
@@ -133,16 +120,20 @@
         row.releaseStatus === EnumTaskReleaseStatus.Stopped,
     },
   },
-  {
-    data: {
-      enCode: 'arrangeBtn',
-      name: '瀹夋帓',
-    },
+  arrangeBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) => handleArrange(row),
     },
+    extraProps: {
+      hide: (row: API.GetTaskInfosQueryResultItem) =>
+        row.releaseStatus === EnumTaskReleaseStatus.Stopped,
+    },
   },
-]);
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 
@@ -204,7 +195,6 @@
       releaseStatus: '' as any as EnumTaskReleaseStatus,
       time: [] as unknown as ModelValueType,
       orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
-      flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus,
     },
     queryKey: ['taskServices/getTaskInfos'],
     columnsRenderProps: {
@@ -213,9 +203,32 @@
       genderLimit: { type: 'enum', valueEnum: EnumUserGenderText },
       status: { type: 'enum', valueEnum: EnumTaskStatusText },
       releaseStatus: { type: 'enum', valueEnum: EnumTaskReleaseStatusText },
+      createdTime: { type: 'date', format: 'YYYY-MM-DD' },
       beginTime: { type: 'date', format: 'YYYY-MM-DD' },
       endTime: { type: 'date', format: 'YYYY-MM-DD' },
-      serviceFee: { type: 'money' },
+      serviceFee: {
+        type: 'text',
+        formatter: (row: API.GetTaskInfosQueryResultItem) => {
+          return OrderUtils.getServiceFeeText(row.serviceFee, row.billingMethod);
+        },
+      },
+      applyBeginTime: { type: 'date', format: 'YYYY-MM-DD' },
+      applyEndTime: { type: 'date', format: 'YYYY-MM-DD' },
+      //@ts-ignore
+      applyStatus: {
+        formatter: (row: API.GetTaskInfosQueryResultItem) => {
+          const applyBeginTime = dayjs(row.applyBeginTime);
+          const applyEndTime = dayjs(row.applyEndTime);
+          const now = dayjs();
+          if (applyEndTime.isBefore(now)) {
+            return '宸茬粨鏉�';
+          } else if (applyBeginTime.isAfter(now)) {
+            return '寰呭紑濮�';
+          } else {
+            return '杩涜涓�';
+          }
+        },
+      },
     },
   }
 );

--
Gitblit v1.9.1