From 7041b2e8a0e9ff955f50d59c8d5c3dc3185396a6 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 11 十一月 2025 17:38:08 +0800
Subject: [PATCH] feat: s

---
 src/views/EmploymentManage/EmploymentSignList.vue      |   34 +----
 src/views/EmploymentManage/TaskManageList.vue          |   85 ++-----------
 src/views/EmploymentManage/CheckReceiveTaskDetail.vue  |   36 +----
 src/router/index.ts                                    |  107 -----------------
 src/views/EmploymentManage/CheckManage.vue             |   28 +---
 src/views/EmploymentManage/EmploymentManageArrange.vue |   22 +--
 6 files changed, 52 insertions(+), 260 deletions(-)

diff --git a/src/router/index.ts b/src/router/index.ts
index 908eab2..07632d9 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -96,113 +96,6 @@
     },
   },
   {
-    path: '/EmploymentManage',
-    redirect: 'noRedirect',
-    component: Layout,
-    hidden: false,
-    alwaysShow: true,
-    meta: {
-      rank: 10020,
-      title: '鐢ㄤ汉绠$悊',
-      rootMenu: true,
-      icon: 'home',
-    },
-    children: [
-      {
-        path: '/TaskManageList',
-        name: 'TaskManageList',
-        hidden: false,
-        alwaysShow: true,
-        component: () => import('@/views/EmploymentManage/TaskManageList.vue'),
-        meta: {
-          rank: 10021,
-          title: '浠诲姟绠$悊',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-      {
-        path: '/AddOrEditEmployment/:id?',
-        name: 'AddOrEditEmployment',
-        hidden: true,
-        alwaysShow: false,
-        component: () => import('@/views/EmploymentManage/AddOrEditEmployment.vue'),
-        meta: {
-          rank: 10022,
-          title: '鍙戝竷缂栬緫浜哄憳',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-      {
-        path: '/EmploymentManageDetail/:id',
-        name: 'EmploymentManageDetail',
-        hidden: true,
-        alwaysShow: false,
-        component: () => import('@/views/EmploymentManage/EmploymentManageDetail.vue'),
-        meta: {
-          rank: 10023,
-          title: '浜哄憳绠$悊璇︽儏',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-      {
-        path: '/EmploymentSignList/:id',
-        name: 'EmploymentSignList',
-        hidden: true,
-        alwaysShow: false,
-        component: () => import('@/views/EmploymentManage/EmploymentSignList.vue'),
-        meta: {
-          rank: 10024,
-          title: '鎶ュ悕鍒楄〃',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-      {
-        path: '/EmploymentManageArrange/:id',
-        name: 'EmploymentManageArrange',
-        hidden: true,
-        alwaysShow: false,
-        component: () => import('@/views/EmploymentManage/EmploymentManageArrange.vue'),
-        meta: {
-          rank: 10025,
-          title: '浜哄憳瀹夋帓',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-
-      {
-        path: '/CheckManage',
-        name: 'CheckManage',
-        hidden: false,
-        alwaysShow: true,
-        component: () => import('@/views/EmploymentManage/CheckManage.vue'),
-        meta: {
-          rank: 10030,
-          title: '楠屾敹绠$悊',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-      {
-        path: '/CheckReceiveTaskDetail/:id',
-        name: 'CheckReceiveTaskDetail',
-        hidden: true,
-        alwaysShow: false,
-        component: () => import('@/views/EmploymentManage/CheckReceiveTaskDetail.vue'),
-        meta: {
-          rank: 10031,
-          title: '楠屾敹璇︽儏',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-    ],
-  },
-  {
     path: '/ServiceChargeManage',
     redirect: 'noRedirect',
     component: Layout,
diff --git a/src/views/EmploymentManage/CheckManage.vue b/src/views/EmploymentManage/CheckManage.vue
index d1a95ab..7e7ac26 100644
--- a/src/views/EmploymentManage/CheckManage.vue
+++ b/src/views/EmploymentManage/CheckManage.vue
@@ -36,11 +36,7 @@
           </QueryFilterItem>
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="CheckManageColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
     </AppContainer>
   </LoadingLayout>
@@ -57,10 +53,8 @@
   useTable,
   FieldDatePicker,
   FieldRadio,
-  defineOperationBtns,
   useFormDialog,
 } from '@bole-core/components';
-import { CheckManageColumns } from './constants';
 import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
 import { ModelValueType } from 'element-plus';
 import { downloadFileByUrl, format, OrderUtils, setOSSLink } from '@/utils';
@@ -70,21 +64,13 @@
   name: 'CheckManage',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '璇︽儏',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  detailBtn: {
     emits: {
       onClick: (role) => goCheckReceiveTaskDetail(role),
     },
   },
-  {
-    data: {
-      enCode: 'exportBtn',
-      name: '瀵煎嚭',
-    },
+  exportBtn: {
     emits: {
       onClick: (role) => handleExport(role),
     },
@@ -93,7 +79,11 @@
         row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.Completed,
     },
   },
-]);
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 
diff --git a/src/views/EmploymentManage/CheckReceiveTaskDetail.vue b/src/views/EmploymentManage/CheckReceiveTaskDetail.vue
index 195a931..c0e74fa 100644
--- a/src/views/EmploymentManage/CheckReceiveTaskDetail.vue
+++ b/src/views/EmploymentManage/CheckReceiveTaskDetail.vue
@@ -40,11 +40,7 @@
         </ProForm>
       </el-card>
 
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="CheckReceiveTaskDetailColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
     </AppContainer>
     <CheckManageDialog v-bind="dialogProps" />
@@ -59,7 +55,6 @@
   AppContainer,
   useTable,
   useFormDialog,
-  defineOperationBtns,
   ProForm,
   ProFormCol,
   ProFormColItem,
@@ -69,7 +64,6 @@
 import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
 import * as taskServices from '@/services/api/task';
 import { useQuery } from '@tanstack/vue-query';
-import { CheckReceiveTaskDetailColumns } from './constants';
 import { OrderUtils } from '@/utils';
 import { EnumBillingMethodUnitText, EnumBillingMethod, EnumBillingMethodText } from '@/constants';
 import dayjs from 'dayjs';
@@ -80,31 +74,17 @@
   name: 'CheckReceiveTaskDetail',
 });
 
-const operationBtns = defineOperationBtns([
-  // {
-  //   data: {
-  //     enCode: 'exportBtn',
-  //     name: '楠屾敹',
-  //   },
-  //   emits: {
-  //     onClick: (role) => openDialog(role),
-  //   },
-  //   extraProps: {
-  //     hide: (row: API.GetCheckReceiveTaskQueryResultItem) =>
-  //       row.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed ||
-  //       state.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn,
-  //   },
-  // },
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '璇︽儏',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  detailBtn: {
     emits: {
       onClick: (role) => openDialog(role, true),
     },
   },
-]);
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const route = useRoute();
 const id = (route.params.id as string) ?? '';
diff --git a/src/views/EmploymentManage/EmploymentManageArrange.vue b/src/views/EmploymentManage/EmploymentManageArrange.vue
index 017f5c4..573d5d4 100644
--- a/src/views/EmploymentManage/EmploymentManageArrange.vue
+++ b/src/views/EmploymentManage/EmploymentManageArrange.vue
@@ -33,11 +33,7 @@
           </QueryFilterItem>
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="EmploymentArrangeColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
     </AppContainer>
   </LoadingLayout>
@@ -54,9 +50,7 @@
   useTable,
   FieldDatePicker,
   FieldRadio,
-  defineOperationBtns,
 } from '@bole-core/components';
-import { EmploymentArrangeColumns } from './constants';
 import { Message } from '@bole-core/core';
 import * as taskUserServices from '@/services/api/taskUser';
 import {
@@ -68,12 +62,8 @@
   name: 'EmploymentManageArrange',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'arrangeBtn',
-      name: '瀹夋帓',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  arrangeBtn: {
     emits: {
       onClick: (role) => handleArrange(role),
     },
@@ -82,7 +72,11 @@
         row.arrangeStatus === EnumTaskUserArrangeStatus.Complete,
     },
   },
-]);
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 const route = useRoute();
diff --git a/src/views/EmploymentManage/EmploymentSignList.vue b/src/views/EmploymentManage/EmploymentSignList.vue
index cbd0382..9ef4fb9 100644
--- a/src/views/EmploymentManage/EmploymentSignList.vue
+++ b/src/views/EmploymentManage/EmploymentSignList.vue
@@ -24,11 +24,7 @@
           </QueryFilterItem>
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="EmploymentSignColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
     </AppContainer>
     <StaffInfoDialog v-bind="dialogStaffInfoProps" />
@@ -45,11 +41,9 @@
   QueryFilterItem,
   useTable,
   FieldRadio,
-  defineOperationBtns,
   useFormDialog,
   UploadUserFile,
 } from '@bole-core/components';
-import { EmploymentSignColumns } from './constants/columns';
 import { Message } from '@bole-core/core';
 import { EnumUserGender, EnumTaskUserHireStatusText } from '@/constants';
 import StaffInfoDialog from '@/views/FlexJobManage/components/StaffInfoDialog.vue';
@@ -61,21 +55,13 @@
   name: 'EmploymentSignList',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '璇︽儏',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  detailBtn: {
     emits: {
       onClick: (role) => openDialog(role),
     },
   },
-  {
-    data: {
-      enCode: 'recruitBtn',
-      name: '褰曠敤',
-    },
+  recruitBtn: {
     emits: {
       onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Pass),
     },
@@ -84,11 +70,7 @@
         row.hireStatus === EnumTaskUserHireStatus.Pass,
     },
   },
-  {
-    data: {
-      enCode: 'refuseBtn',
-      name: '璋㈢粷',
-    },
+  refuseBtn: {
     emits: {
       onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Refuse),
     },
@@ -97,7 +79,11 @@
         row.hireStatus !== EnumTaskUserHireStatus.Wait,
     },
   },
-]);
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 const route = useRoute();
diff --git a/src/views/EmploymentManage/TaskManageList.vue b/src/views/EmploymentManage/TaskManageList.vue
index 929134e..d602103 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
@@ -88,47 +89,7 @@
 });
 
 const operationBtnMap: Record<string, OperationBtnType> = {
-  // editBtn: {
-  //   emits: {
-  //     onClick: (role) => goAddOrEdit(role),
-  //   },
-  //   extraProps: {
-  //     hide: (row: API.GetTaskInfosQueryResultItem) => row.status === EnumTaskStatus.Complete,
-  //   },
-  // },
-  detailBtn: {
-    emits: {
-      onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row),
-    },
-  },
-  // publishBtn: {
-  //   emits: {
-  //     onClick: (row: API.GetTaskInfosQueryResultItem) =>
-  //       setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.InProcess),
-  //   },
-  //   extraProps: {
-  //     hide: (row: API.GetTaskInfosQueryResultItem) =>
-  //       row.releaseStatus === EnumTaskReleaseStatus.InProcess,
-  //   },
-  // },
-  // unPublishBtn: {
-  //   emits: {
-  //     onClick: (row: API.GetTaskInfosQueryResultItem) =>
-  //       setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.Stopped),
-  //   },
-  //   extraProps: {
-  //     hide: (row: API.GetTaskInfosQueryResultItem) =>
-  //       row.releaseStatus === EnumTaskReleaseStatus.Stopped,
-  //   },
-  // },
-};
-
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'editBtn',
-      name: '缂栬緫',
-    },
+  editBtn: {
     emits: {
       onClick: (role) => goAddOrEdit(role),
     },
@@ -136,20 +97,12 @@
       hide: (row: API.GetTaskInfosQueryResultItem) => row.status === EnumTaskStatus.Complete,
     },
   },
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '璇︽儏',
-    },
+  detailBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row),
     },
   },
-  {
-    data: {
-      enCode: 'publishBtn',
-      name: '鍙戝竷',
-    },
+  publishBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) =>
         setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.InProcess),
@@ -159,11 +112,7 @@
         row.releaseStatus === EnumTaskReleaseStatus.InProcess,
     },
   },
-  {
-    data: {
-      enCode: 'unPublishBtn',
-      name: '鍋滄鍙戝竷',
-    },
+  unPublishBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) =>
         setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.Stopped),
@@ -173,11 +122,7 @@
         row.releaseStatus === EnumTaskReleaseStatus.Stopped,
     },
   },
-  {
-    data: {
-      enCode: 'arrangeBtn',
-      name: '瀹夋帓',
-    },
+  arrangeBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) => handleArrange(row),
     },
@@ -186,7 +131,11 @@
         row.releaseStatus === EnumTaskReleaseStatus.Stopped,
     },
   },
-]);
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 

--
Gitblit v1.9.1