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/EmploymentSignList.vue             |   34 -
 src/views/ServiceChargeManage/constants/columns.ts            |  171 -------
 src/views/EmploymentManage/constants/columns.ts               |  237 ----------
 src/views/ServiceChargeManage/ServiceChargeDetail.vue         |   16 
 src/views/ServiceChargeManage/ServiceChargeManageList.vue     |   65 +-
 src/views/EmploymentManage/EmploymentManageArrange.vue        |   20 
 src/views/FinanceManage/components/DistributionDetailView.vue |   21 
 src/views/UserManage/UserManageList.vue                       |   47 -
 src/views/FinanceManage/BalanceRechargeRecord.vue             |   23 
 /dev/null                                                     |    1 
 src/views/FinanceManage/FinanceManageList.vue                 |    0 
 src/views/FinanceManage/constants/columns.ts                  |  139 ------
 src/views/SupplierManage/SupplierManageList.vue               |   23 
 src/views/EmploymentManage/TaskManageList.vue                 |   53 -
 src/views/FinanceManage/BalanceManageV2.vue                   |   29 
 src/views/EmploymentManage/CheckReceiveTaskDetail.vue         |   36 -
 src/router/index.ts                                           |  326 --------------
 src/views/EmploymentManage/CheckManage.vue                    |   29 
 18 files changed, 133 insertions(+), 1,137 deletions(-)

diff --git a/src/router/index.ts b/src/router/index.ts
index ed1c6e2..79cbaed 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -95,223 +95,6 @@
       rootMenu: true,
     },
   },
-  {
-    path: '/SupplierManage',
-    redirect: 'noRedirect',
-    component: Layout,
-    hidden: false,
-    alwaysShow: true,
-    meta: {
-      rank: 10005,
-      title: '渚涘簲鍟嗙鐞�',
-      rootMenu: true,
-      icon: 'home',
-    },
-    children: [
-      {
-        path: '/SupplierManageList',
-        name: 'SupplierManageList',
-        hidden: false,
-        alwaysShow: true,
-        component: () => import('@/views/SupplierManage/SupplierManageList.vue'),
-        meta: {
-          rank: 10005,
-          title: '渚涘簲鍟嗙鐞�',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-    ],
-  },
-  // {
-  //   path: '/FlexJobManage',
-  //   redirect: 'noRedirect',
-  //   component: Layout,
-  //   hidden: false,
-  //   alwaysShow: true,
-  //   meta: {
-  //     rank: 10010,
-  //     title: '鐏靛伐绠$悊',
-  //     rootMenu: true,
-  //     icon: 'home',
-  //   },
-  //   children: [
-  //     {
-  //       path: '/FlexJobManageList',
-  //       name: 'FlexJobManageList',
-  //       hidden: false,
-  //       alwaysShow: true,
-  //       component: () => import('@/views/FlexJobManage/FlexJobManage.vue'),
-  //       meta: {
-  //         rank: 10011,
-  //         title: '鐏靛伐绠$悊',
-  //         // rootMenu: true,
-  //         icon: 'home',
-  //       },
-  //     },
-  //   ],
-  // },
-  {
-    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,
-    hidden: false,
-    alwaysShow: true,
-    meta: {
-      rank: 10040,
-      title: '鏈嶅姟璐圭鐞�',
-      rootMenu: true,
-      icon: 'home',
-    },
-    children: [
-      {
-        path: '/ServiceChargeManageList',
-        name: 'ServiceChargeManageList',
-        hidden: false,
-        alwaysShow: true,
-        component: () => import('@/views/ServiceChargeManage/ServiceChargeManage.vue'),
-        meta: {
-          rank: 10041,
-          title: '鏈嶅姟璐圭鐞�',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-      // {
-      //   path: '/BalanceManage',
-      //   name: 'BalanceManage',
-      //   hidden: false,
-      //   alwaysShow: true,
-      //   component: () => import('@/views/ServiceChargeManage/BalanceManage.vue'),
-      //   meta: {
-      //     rank: 10042,
-      //     title: '浣欓绠$悊',
-      //     // rootMenu: true,
-      //     icon: 'home',
-      //   },
-      // },
-      {
-        path: '/ServiceChargeDetail/:id',
-        name: 'ServiceChargeDetail',
-        hidden: true,
-        alwaysShow: false,
-        component: () => import('@/views/ServiceChargeManage/ServiceChargeDetail.vue'),
-        meta: {
-          rank: 10043,
-          title: '璇︽儏',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-    ],
-  },
   // {
   //   path: '/AgreementManage',
   //   redirect: 'noRedirect',
@@ -368,115 +151,6 @@
   //     },
   //   ],
   // },
-  {
-    path: '/FinanceManage',
-    redirect: 'noRedirect',
-    component: Layout,
-    hidden: false,
-    alwaysShow: true,
-    meta: {
-      rank: 10070,
-      title: '璐㈠姟绠$悊',
-      rootMenu: true,
-      icon: 'home',
-    },
-    children: [
-      {
-        path: '/FinanceManageList',
-        name: 'FinanceManageList',
-        hidden: false,
-        alwaysShow: true,
-        component: () => import('@/views/FinanceManage/FinanceManage.vue'),
-        meta: {
-          rank: 10071,
-          title: '鍙戞斁鏄庣粏',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-      {
-        path: '/BalanceManageV2',
-        name: 'BalanceManageV2',
-        hidden: false,
-        alwaysShow: true,
-        component: () => import('@/views/FinanceManage/BalanceManageV2.vue'),
-        meta: {
-          rank: 10072,
-          title: '浣欓绠$悊',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-      {
-        path: '/BalanceRechargeRecord/:id',
-        name: 'BalanceRechargeRecord',
-        hidden: true,
-        alwaysShow: false,
-        component: () => import('@/views/FinanceManage/BalanceRechargeRecord.vue'),
-        meta: {
-          rank: 10073,
-          title: '鍏呭�艰褰�',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-      // {
-      //   path: '/EnterpriseBalanceManage',
-      //   name: 'EnterpriseBalanceManage',
-      //   hidden: false,
-      //   alwaysShow: true,
-      //   component: () => import('@/views/FinanceManage/EnterpriseBalanceManage.vue'),
-      //   meta: {
-      //     rank: 10072,
-      //     title: '浼佷笟浣欓绠$悊',
-      //     // rootMenu: true,
-      //     icon: 'home',
-      //   },
-      // },
-      // {
-      //   path: '/EnterpriseBalanceManageDetail/:id',
-      //   name: 'EnterpriseBalanceManageDetail',
-      //   hidden: true,
-      //   alwaysShow: false,
-      //   component: () => import('@/views/FinanceManage/EnterpriseBalanceManageDetail.vue'),
-      //   meta: {
-      //     rank: 10073,
-      //     title: '璇︽儏',
-      //     // rootMenu: true,
-      //     icon: 'home',
-      //   },
-      // },
-    ],
-  },
-
-  {
-    path: '/UserManage',
-    redirect: 'noRedirect',
-    component: Layout,
-    hidden: false,
-    alwaysShow: true,
-    meta: {
-      rank: 10100,
-      title: '鐢ㄦ埛绠$悊',
-      rootMenu: true,
-      icon: 'home',
-    },
-    children: [
-      {
-        path: '/UserManageList',
-        name: 'UserManageList',
-        hidden: false,
-        alwaysShow: true,
-        component: () => import('@/views/UserManage/UserManageList.vue'),
-        meta: {
-          rank: 10101,
-          title: '鐢ㄦ埛绠$悊',
-          // rootMenu: true,
-          icon: 'home',
-        },
-      },
-    ],
-  },
   {
     path: '/Login',
     name: 'Login',
diff --git a/src/views/EmploymentManage/CheckManage.vue b/src/views/EmploymentManage/CheckManage.vue
index d1a95ab..7810aad 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,7 @@
   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 +63,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 +78,11 @@
         row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.Completed,
     },
   },
-]);
+};
+
+const { column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 
diff --git a/src/views/EmploymentManage/CheckReceiveTaskDetail.vue b/src/views/EmploymentManage/CheckReceiveTaskDetail.vue
index cf04ab5..152341d 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,19 +55,15 @@
   AppContainer,
   useTable,
   useFormDialog,
-  defineOperationBtns,
   ProForm,
   ProFormCol,
   ProFormColItem,
   ProFormItemV2,
-  ProTableQueryFilterBar,
 } from '@bole-core/components';
 import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
 import * as taskServices from '@/services/api/task';
 import { useQuery } from '@tanstack/vue-query';
 import { OrderUtils } from '@/utils';
-import { CheckReceiveTaskDetailColumns } from './constants';
-import { EnumBillingMethodUnitText, EnumBillingMethod, EnumBillingMethodText } from '@/constants';
 import dayjs from 'dayjs';
 import CheckManageDialog from './components/CheckManageDialog.vue';
 import ManualCheckManageDialog from './components/ManualCheckManageDialog.vue';
@@ -80,12 +72,13 @@
   name: 'CheckReceiveTaskDetail',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'exportBtn',
-      name: '楠屾敹',
+const operationBtnMap: Record<string, OperationBtnType> = {
+  detailBtn: {
+    emits: {
+      onClick: (role) => openDialog(role, true),
     },
+  },
+  exportBtn: {
     emits: {
       onClick: (role) => openDialog(role),
     },
@@ -97,16 +90,11 @@
         ),
     },
   },
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '璇︽儏',
-    },
-    emits: {
-      onClick: (role) => openDialog(role, true),
-    },
-  },
-]);
+};
+
+const { 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..93c8b4c 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>
@@ -68,12 +64,8 @@
   name: 'EmploymentManageArrange',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'arrangeBtn',
-      name: '瀹夋帓',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  arrangeBtn: {
     emits: {
       onClick: (role) => handleArrange(role),
     },
@@ -82,7 +74,11 @@
         row.arrangeStatus === EnumTaskUserArrangeStatus.Complete,
     },
   },
-]);
+};
+
+const { 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..b999a58 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 { 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 8df415d..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,9 +73,7 @@
   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';
@@ -87,12 +86,8 @@
   name: 'TaskManageList',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'editBtn',
-      name: '缂栬緫',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  editBtn: {
     emits: {
       onClick: (role) => goAddOrEdit(role),
     },
@@ -100,20 +95,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),
@@ -123,11 +110,7 @@
         row.releaseStatus === EnumTaskReleaseStatus.InProcess,
     },
   },
-  {
-    data: {
-      enCode: 'unPublishBtn',
-      name: '鍋滄鍙戝竷',
-    },
+  unPublishBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) =>
         setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.Stopped),
@@ -137,11 +120,7 @@
         row.releaseStatus === EnumTaskReleaseStatus.Stopped,
     },
   },
-  {
-    data: {
-      enCode: 'arrangeBtn',
-      name: '瀹夋帓',
-    },
+  arrangeBtn: {
     emits: {
       onClick: (row: API.GetTaskInfosQueryResultItem) => handleArrange(row),
     },
@@ -150,7 +129,11 @@
         row.releaseStatus === EnumTaskReleaseStatus.Stopped,
     },
   },
-]);
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 
diff --git a/src/views/EmploymentManage/constants/columns.ts b/src/views/EmploymentManage/constants/columns.ts
index 8dc5caa..4600bda 100644
--- a/src/views/EmploymentManage/constants/columns.ts
+++ b/src/views/EmploymentManage/constants/columns.ts
@@ -1,98 +1,5 @@
 import { defineColumns } from '@bole-core/components';
 
-export const EmploymentManageColumns = defineColumns([
-  {
-    id: '1',
-    enCode: 'name',
-    name: '浠诲姟鍚嶇О',
-  },
-  {
-    id: '2',
-    enCode: 'code',
-    name: '浠诲姟鍗曞彿',
-  },
-  {
-    id: '3',
-    enCode: 'supplierEnterpriseName',
-    name: '鎵�灞炲鎴�',
-  },
-  {
-    id: '4',
-    enCode: 'supplierEnterpriseId',
-    name: '瀹㈡埛ID',
-  },
-  {
-    id: '5',
-    enCode: 'billingMethod',
-    name: '缁撶畻鍛ㄦ湡',
-  },
-  {
-    id: '6',
-    enCode: 'serviceFee',
-    name: '鏈嶅姟璐归噾棰�',
-  },
-  {
-    id: '7',
-    enCode: 'settlementCycle',
-    name: '缁撶畻鏂瑰紡',
-  },
-  {
-    id: '8',
-    enCode: 'genderLimit',
-    name: '鎬у埆瑕佹眰',
-  },
-  {
-    id: '9',
-    enCode: 'needPeopleNumber',
-    name: '闇�姹備汉鏁�',
-  },
-  {
-    id: '10',
-    enCode: 'userCount',
-    name: '鎶ュ悕浜烘暟',
-  },
-  {
-    id: '11',
-    enCode: 'applyBeginTime',
-    name: '鎶ュ悕寮�濮�',
-  },
-  {
-    id: '12',
-    enCode: 'applyEndTime',
-    name: '鎶ュ悕缁撴潫',
-  },
-  {
-    id: '13',
-    enCode: 'applyStatus',
-    name: '鎶ュ悕鐘舵��',
-  },
-  {
-    id: '14',
-    enCode: 'status',
-    name: '浠诲姟鐘舵��',
-  },
-  {
-    id: '15',
-    enCode: 'createdTime',
-    name: '鍙戝竷鏃ユ湡',
-  },
-  {
-    id: '16',
-    enCode: 'beginTime',
-    name: '浠诲姟寮�濮嬫棩鏈�',
-  },
-  {
-    id: '17',
-    enCode: 'endTime',
-    name: '浠诲姟缁撴潫鏃ユ湡',
-  },
-  {
-    id: '18',
-    enCode: 'releaseStatus',
-    name: '鍙戝竷鐘舵��',
-  },
-]);
-
 export const EmploymentArrangeColumns = defineColumns([
   {
     id: '1',
@@ -128,149 +35,5 @@
     id: '7',
     enCode: 'arrangeStatus',
     name: '鎺掔彮鐘舵��',
-  },
-]);
-
-export const EmploymentSignColumns = defineColumns([
-  {
-    id: '1',
-    enCode: 'name',
-    name: '濮撳悕',
-  },
-  {
-    id: '2',
-    enCode: 'identity',
-    name: '韬唤璇佸彿',
-  },
-  {
-    id: '3',
-    enCode: 'contactPhoneNumber',
-    name: '鐢佃瘽',
-  },
-  {
-    id: '4',
-    enCode: 'age',
-    name: '骞撮緞',
-  },
-  {
-    id: '5',
-    enCode: 'gender',
-    name: '鎬у埆',
-  },
-  {
-    id: '6',
-    enCode: 'educationalBackgroundContent',
-    name: '瀛﹀巻',
-  },
-  {
-    id: '7',
-    enCode: 'hireStatus',
-    name: '褰曠敤鐘舵��',
-  },
-]);
-
-export const CheckManageColumns = defineColumns([
-  {
-    id: '1',
-    enCode: 'name',
-    name: '浠诲姟鍚嶇О',
-  },
-  {
-    id: '2',
-    enCode: 'code',
-    name: '浠诲姟鍗曞彿',
-  },
-  {
-    id: '3',
-    enCode: 'billingMethod',
-    name: '缁撶畻鍛ㄦ湡',
-  },
-  {
-    id: '4',
-    enCode: 'serviceFee',
-    name: '鏈嶅姟璐归噾棰�',
-  },
-  {
-    id: '5',
-    enCode: 'settlementCycle',
-    name: '缁撶畻鏂瑰紡',
-  },
-  {
-    id: '6',
-    enCode: 'createdTime',
-    name: '鍙戝竷鏃ユ湡',
-  },
-  {
-    id: '6-1',
-    enCode: 'beginTime',
-    name: '寮�濮嬫棩鏈�',
-  },
-  {
-    id: '7',
-    enCode: 'endTime',
-    name: '缁撴潫鏃ユ湡',
-  },
-  {
-    id: '8',
-    enCode: 'checkReceiveMethods',
-    name: '楠屾敹鏂瑰紡',
-  },
-  {
-    id: '9',
-    enCode: 'checkReceiveStatus',
-    name: '浠诲姟楠屾敹鐘舵��',
-  },
-  {
-    id: '10',
-    enCode: 'lastCheckReceiveTime',
-    name: '鏈�杩戦獙鏀舵椂闂�',
-  },
-]);
-
-export const CheckReceiveTaskDetailColumns = defineColumns([
-  {
-    id: '1',
-    enCode: 'name',
-    name: '濮撳悕',
-  },
-  {
-    id: '2',
-    enCode: 'identity',
-    name: '韬唤璇佸彿',
-  },
-  {
-    id: '3',
-    enCode: 'gender',
-    name: '鎬у埆',
-  },
-  {
-    id: '4',
-    enCode: 'age',
-    name: '骞撮緞',
-  },
-  {
-    id: '5',
-    enCode: 'contactPhoneNumber',
-    name: '鎵嬫満鍙�',
-  },
-  {
-    id: '6',
-    enCode: 'taskInfoName',
-    name: '浠诲姟鍚嶇О',
-  },
-  {
-    id: '7',
-    enCode: 'taskInfoCode',
-    name: '浠诲姟缂栧彿',
-  },
-  {
-    id: '8',
-    enCode: 'lastSubmitTime',
-    name: '鏈�杩戞彁浜ゆ椂闂�',
-  },
-  {
-    id: '8',
-    enCode: 'checkReceiveStatus',
-    name: '浠诲姟楠屾敹鐘舵��',
   },
 ]);
diff --git a/src/views/FinanceManage/BalanceManageV2.vue b/src/views/FinanceManage/BalanceManageV2.vue
index aeeb445..3365648 100644
--- a/src/views/FinanceManage/BalanceManageV2.vue
+++ b/src/views/FinanceManage/BalanceManageV2.vue
@@ -1,11 +1,7 @@
 <template>
   <LoadingLayout :loading="state.loading">
     <AppContainer>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="BalanceManageV2Columns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
     </AppContainer>
     <BalanceRechargeDialog v-bind="dialogProps" />
@@ -19,39 +15,32 @@
   AppContainer,
   useTable,
   useFormDialog,
-  defineOperationBtns,
   UploadUserFile,
 } from '@bole-core/components';
 import * as enterpriseCooperationWalletServices from '@/services/api/enterpriseCooperationWallet';
-import { BalanceManageV2Columns } from './constants';
 import BalanceRechargeDialog from './components/BalanceRechargeDialog.vue';
-import { EnumEnterpriseWalletAccess, EnumEnterpriseWalletAccessText } from '@/constants';
 import { Message } from '@bole-core/core';
 
 defineOptions({
   name: 'BalanceManageV2',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'rechargeBtn',
-      name: '鍏呭��',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  rechargeBtn: {
     emits: {
       onClick: (role: API.GetCooperationWalletsQueryResultItem) => openDialog(role),
     },
   },
-  {
-    data: {
-      enCode: 'rechargeRecordBtn',
-      name: '鍏呭�艰褰�',
-    },
+  rechargeRecordBtn: {
     emits: {
       onClick: (role: API.GetCooperationWalletsQueryResultItem) => goDetail(role),
     },
   },
-]);
+};
+
+const { column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 const BaseState = {
diff --git a/src/views/FinanceManage/BalanceRechargeRecord.vue b/src/views/FinanceManage/BalanceRechargeRecord.vue
index 7e4f27a..c47252e 100644
--- a/src/views/FinanceManage/BalanceRechargeRecord.vue
+++ b/src/views/FinanceManage/BalanceRechargeRecord.vue
@@ -1,11 +1,7 @@
 <template>
   <LoadingLayout :loading="state.loading">
     <AppContainer>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="BalanceRechargeRecordColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
     </AppContainer>
     <BalanceRechargeRecordDialog v-bind="dialogProps" />
@@ -19,11 +15,8 @@
   AppContainer,
   useTable,
   useFormDialog,
-  defineOperationBtns,
-  UploadUserFile,
 } from '@bole-core/components';
 import * as enterpriseCooperationWalletServices from '@/services/api/enterpriseCooperationWallet';
-import { BalanceRechargeRecordColumns } from './constants';
 import BalanceRechargeRecordDialog from './components/BalanceRechargeRecordDialog.vue';
 import { EnumEnterpriseCooperationWalletTransactionStatusText } from '@/constants';
 
@@ -34,18 +27,18 @@
 const route = useRoute();
 const id = route.params.id as string;
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '璇︽儏',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  detailBtn: {
     emits: {
       onClick: (role: API.GetCooperationWalletRechargeTransactionsQueryResultItem) =>
         openDialog(role),
     },
   },
-]);
+};
+
+const { column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 const BaseState = {
diff --git a/src/views/FinanceManage/FinanceManage.vue b/src/views/FinanceManage/FinanceManageList.vue
similarity index 100%
rename from src/views/FinanceManage/FinanceManage.vue
rename to src/views/FinanceManage/FinanceManageList.vue
diff --git a/src/views/FinanceManage/components/DistributionDetailView.vue b/src/views/FinanceManage/components/DistributionDetailView.vue
index 4552955..8500679 100644
--- a/src/views/FinanceManage/components/DistributionDetailView.vue
+++ b/src/views/FinanceManage/components/DistributionDetailView.vue
@@ -1,11 +1,7 @@
 <template>
   <LoadingLayout :loading="state.loading">
     <AppContainer>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="DistributionDetailColumns"
-        :showOperationColumn="false"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :showOperationColumn="false">
         <template #settlementStatus="{ row }">
           {{
             row.settlementStatus !== EnumTaskSettlementStatus.InProcess &&
@@ -20,14 +16,7 @@
 </template>
 
 <script setup lang="ts">
-import {
-  ProTableV2,
-  LoadingLayout,
-  AppContainer,
-  useTable,
-  defineOperationBtns,
-} from '@bole-core/components';
-import { DistributionDetailColumns } from '../constants';
+import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components';
 import * as userServices from '@/services/api/user';
 import { EnumTaskSettlementStatusText, EnumTaskSettlementStatus } from '@/constants';
 
@@ -35,7 +24,11 @@
   name: 'DistributionDetailView',
 });
 
-const operationBtns = defineOperationBtns([]);
+const operationBtnMap: Record<string, OperationBtnType> = {};
+
+const { column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const BaseState = {
   loading: true,
diff --git a/src/views/FinanceManage/constants/columns.ts b/src/views/FinanceManage/constants/columns.ts
index 18fc290..ab116f7 100644
--- a/src/views/FinanceManage/constants/columns.ts
+++ b/src/views/FinanceManage/constants/columns.ts
@@ -1,78 +1,5 @@
 import { defineColumns } from '@bole-core/components';
 
-export const DistributionDetailColumns = defineColumns([
-  {
-    id: '1',
-    enCode: 'supplierEnterpriseName',
-    name: '渚涘簲鍟�',
-  },
-  {
-    id: '2',
-    enCode: 'taskName',
-    name: '鎵�灞炰换鍔�',
-  },
-  {
-    id: '3',
-    enCode: 'taskCode',
-    name: '浠诲姟鍗曞彿',
-  },
-  {
-    id: '4',
-    enCode: 'settlementCode',
-    name: '缁撶畻鍗曞彿',
-  },
-  {
-    id: '5',
-    enCode: 'receiveName',
-    name: '濮撳悕',
-  },
-  {
-    id: '6',
-    enCode: 'settlementAccess',
-    name: '缁撶畻鏂瑰紡',
-  },
-  {
-    id: '7',
-    enCode: 'receiveAccount',
-    name: '缁撶畻璐︽埛',
-  },
-  {
-    id: '8',
-    enCode: 'amount',
-    name: '缁撶畻閲戦',
-  },
-  {
-    id: '9',
-    enCode: 'settlementStatus',
-    name: '缁撶畻鍗曠‘璁ょ姸鎬�',
-  },
-  {
-    id: '10',
-    enCode: 'settlementTime',
-    name: '纭鏃ユ湡',
-  },
-  {
-    id: '11',
-    enCode: 'settlementAuditStatus',
-    name: '缁撶畻鍗曟彁浜ょ姸鎬�',
-  },
-  {
-    id: '12',
-    enCode: 'settlementAuditTime',
-    name: '鎻愪氦鏃堕棿',
-  },
-  {
-    id: '13',
-    enCode: 'settlementReceiveStatus',
-    name: '鍒拌处鐘舵��',
-  },
-  {
-    id: '14',
-    enCode: 'transDate',
-    name: '鍒拌处鏃堕棿',
-  },
-]);
-
 export const UsageDetailColumns = defineColumns([
   {
     id: '1',
@@ -161,71 +88,5 @@
     id: '9',
     enCode: 'ereceiptDownloadOssUrl',
     name: '鐢靛瓙鍥炲崟',
-  },
-]);
-
-export const BalanceManageV2Columns = defineColumns([
-  {
-    id: '1',
-    enCode: 'supplierEnterpriseName',
-    name: '渚涘簲鍟�',
-  },
-  {
-    id: '2',
-    enCode: 'supplierEnterpriseBank',
-    name: '寮�鎴锋�昏',
-  },
-  {
-    id: '3',
-    enCode: 'supplierEnterpriseBankBranch',
-    name: '寮�鎴锋敮琛�',
-  },
-  {
-    id: '4',
-    enCode: 'supplierEnterpriseAccount',
-    name: '鎴峰彿',
-  },
-  {
-    id: '5',
-    enCode: 'balance',
-    name: '浣欓',
-  },
-]);
-
-export const BalanceRechargeRecordColumns = defineColumns([
-  {
-    id: '1',
-    enCode: 'supplierEnterpriseName',
-    name: '渚涘簲鍟�',
-  },
-  {
-    id: '2',
-    enCode: 'receiveBank',
-    name: '寮�鎴锋�昏',
-  },
-  {
-    id: '3',
-    enCode: 'receiveBankBranch',
-    name: '寮�鎴锋敮琛�',
-  },
-  {
-    id: '4',
-    enCode: 'receiveAccount',
-    name: '鎴峰彿',
-  },
-  {
-    id: '5',
-    enCode: 'amount',
-    name: '鍏呭�奸噾棰�',
-  },
-  {
-    id: '6',
-    enCode: 'createdTime',
-    name: '鍏呭�兼椂闂�',
-  },
-  {
-    id: '7',
-    enCode: 'transactionStatus',
-    name: '鍏呭�肩姸鎬�',
   },
 ]);
diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 2bc37d5..1c4d21a 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -79,7 +79,7 @@
         </ProTableQueryFilterBar>
         <ProTableV2
           v-bind="proTableProps"
-          :columns="SettlementListColumns"
+          :columns="column"
           :operationBtns="operationBtns"
           :auto-height="false"
           ref="proTable"
@@ -138,7 +138,6 @@
   BlFileUpload,
   UploadUserFile,
 } from '@bole-core/components';
-import { SettlementListColumns } from './constants';
 import { useQuery } from '@tanstack/vue-query';
 import * as taskServices from '@/services/api/task';
 import * as taskUserServices from '@/services/api/taskUser';
@@ -162,12 +161,8 @@
 
 const { closeViewPush } = useRouteView();
 const eventContext = useGlobalEventContext();
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'editBtn',
-      name: '缂栬緫',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  editBtn: {
     emits: {
       onClick: (role) => openDialog(role),
     },
@@ -175,7 +170,10 @@
       hide: () => !isSettlement.value,
     },
   },
-]);
+};
+const { column, operationBtns, checkSubModuleItemShow } = useAccess({
+  operationBtnMap,
+});
 const route = useRoute();
 const id = (route.params.id as string) ?? '';
 const settlement = (route.query.settlement as string) ?? '';
diff --git a/src/views/ServiceChargeManage/ServiceChargeManage.vue b/src/views/ServiceChargeManage/ServiceChargeManageList.vue
similarity index 93%
rename from src/views/ServiceChargeManage/ServiceChargeManage.vue
rename to src/views/ServiceChargeManage/ServiceChargeManageList.vue
index b70296a..119bdd0 100644
--- a/src/views/ServiceChargeManage/ServiceChargeManage.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeManageList.vue
@@ -47,14 +47,15 @@
         <template #btn>
           <!-- <el-button type="primary" link @click="handleDownloadTemplate()">缁撶畻鍗曟ā鏉�</el-button> -->
           <!-- <el-button type="primary" @click="handleAdd()">涓婁紶缁撶畻鍗�</el-button> -->
-          <el-button type="primary" @click="handleExport()">瀵煎嚭</el-button>
+          <el-button
+            v-if="checkSubModuleItemShow('pageButton', 'exportBtn')"
+            type="primary"
+            @click="handleExport()"
+            >瀵煎嚭</el-button
+          >
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="ServiceChargeManageColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
         <!-- <template #operationBtn-uploadBtn="{ row }">
           <BlFileUpload
             v-model:file-url="editForm.settlementUrl"
@@ -110,7 +111,6 @@
   UploadUserFile,
   BlFileUpload,
 } from '@bole-core/components';
-import { ServiceChargeManageColumns } from './constants';
 import {
   EnumTaskSettlementStatusText,
   EnumTaskSettlementOrderStatusText,
@@ -134,22 +134,17 @@
   name: 'ServiceChargeManageList',
 });
 
-const operationBtns = defineOperationBtns([
-  // {
-  //   data: {
-  //     enCode: 'uploadBtn',
-  //     name: '涓婁紶',
+const operationBtnMap: Record<string, OperationBtnType> = {
+  // uploadBtn: {
+  //   emits: {
+  //     onClick: (role: API.GetSettlementTasksQueryResultItem) => openSettleMethodDialog(role),
   //   },
   //   extraProps: {
   //     hide: (row: API.GetSettlementTasksQueryResultItem) =>
   //       row.settlementOrderStatus !== EnumTaskSettlementOrderStatus.Wait,
   //   },
   // },
-  // {
-  //   data: {
-  //     enCode: 'reUploadBtn',
-  //     name: '閲嶆柊涓婁紶',
-  //   },
+  // reUploadBtn: {
   //   extraProps: {
   //     hide: (row: API.GetSettlementTasksQueryResultItem) =>
   //       !(
@@ -158,11 +153,7 @@
   //       ),
   //   },
   // },
-  {
-    data: {
-      enCode: 'settleBtn',
-      name: '缁撶畻纭',
-    },
+  settleBtn: {
     emits: {
       onClick: (role: API.GetSettlementTasksQueryResultItem) => openSettleMethodDialog(role),
     },
@@ -174,11 +165,7 @@
         ),
     },
   },
-  // {
-  //   data: {
-  //     enCode: 'recallBtn',
-  //     name: '鎾ゅ洖',
-  //   },
+  // recallBtn: {
   //   emits: {
   //     onClick: (role) => handleRecall(role),
   //   },
@@ -190,11 +177,7 @@
   //       ),
   //   },
   // },
-  // {
-  //   data: {
-  //     enCode: 'settleAuditBtn',
-  //     name: '缁撶畻瀹℃牳',
-  //   },
+  // settleAuditBtn: {
   //   emits: {
   //     onClick: (role: API.GetSettlementTasksQueryResultItem) => goDetail(role.id, 'settlement'),
   //   },
@@ -202,11 +185,7 @@
   //     hide: (role: API.GetSettlementTasksQueryResultItem) => role.auditStatus !== null,
   //   },
   // },
-  {
-    data: {
-      enCode: 'detailBtn',
-      name: '璇︽儏',
-    },
+  detailBtn: {
     emits: {
       onClick: (role: API.GetSettlementTasksQueryResultItem) => goDetail(role.id),
     },
@@ -215,11 +194,7 @@
     //     role.settlementOrderStatus === EnumTaskSettlementOrderStatus.Wait,
     // },
   },
-  {
-    data: {
-      enCode: 'exportBtn',
-      name: '瀵煎嚭',
-    },
+  exportBtn: {
     emits: {
       onClick: (role) => handleRowExport(role),
     },
@@ -231,7 +206,11 @@
         ),
     },
   },
-]);
+};
+
+const { column, operationBtns, checkSubModuleItemShow } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 
diff --git a/src/views/ServiceChargeManage/constants/columns.ts b/src/views/ServiceChargeManage/constants/columns.ts
index 3a81e0b..02a8c7a 100644
--- a/src/views/ServiceChargeManage/constants/columns.ts
+++ b/src/views/ServiceChargeManage/constants/columns.ts
@@ -1,176 +1,5 @@
 import { defineColumns } from '@bole-core/components';
 
-export const ServiceChargeManageColumns = defineColumns([
-  {
-    id: '1',
-    enCode: 'name',
-    name: '鎵�灞炰换鍔�',
-  },
-  {
-    id: '2',
-    enCode: 'code',
-    name: '浠诲姟鍗曞彿',
-  },
-  {
-    id: '3',
-    enCode: 'checkReceiveStatus',
-    name: '楠屾敹鐘舵��',
-  },
-  // {
-  //   id: '4',
-  //   enCode: 'settlementOrderStatus',
-  //   name: '缁撶畻鍗曠姸鎬�',
-  // },
-  {
-    id: '4',
-    enCode: 'settlementCode',
-    name: '缁撶畻鍗曞彿',
-  },
-  {
-    id: '4',
-    enCode: 'supplierEnterpriseName',
-    name: '渚涘簲鍟�',
-  },
-  {
-    id: '5',
-    enCode: 'settlementAccess',
-    name: '缁撶畻鏂瑰紡',
-  },
-  // {
-  //   id: '5',
-  //   enCode: 'settlementOrderName',
-  //   name: '缁撶畻鍗曞悕绉�',
-  // },
-  // {
-  //   id: '6',
-  //   enCode: 'settlementOrderTime',
-  //   name: '涓婁紶鏃堕棿',
-  // },
-  {
-    id: '7',
-    enCode: 'actualSettlementAmount',
-    name: '瀹炲彂閲戦',
-  },
-  {
-    id: '8',
-    enCode: 'settlementAmount',
-    name: '缁撶畻閲戦',
-  },
-  // {
-  //   id: '9',
-  //   enCode: 'auditStatus',
-  //   name: '瀹℃牳鐘舵��',
-  // },
-  {
-    id: '10',
-    enCode: 'settlementStatus',
-    name: '缁撶畻鐘舵��',
-  },
-  {
-    id: '11',
-    enCode: 'createdTime',
-    name: '鍒涘缓鏃堕棿',
-  },
-  {
-    id: '12',
-    enCode: 'settlementTime',
-    name: '缁撶畻鏃堕棿',
-  },
-  {
-    id: '13',
-    enCode: 'operator',
-    name: '鎿嶄綔浜�',
-  },
-  {
-    id: '14',
-    enCode: 'settlementRemark',
-    name: '澶囨敞',
-  },
-]);
-
-export const SettlementListColumns = defineColumns([
-  {
-    id: '1',
-    enCode: 'name',
-    name: '濮撳悕',
-  },
-  {
-    id: '2',
-    enCode: 'identity',
-    name: '韬唤璇佸彿',
-  },
-  {
-    id: '3',
-    enCode: 'contactPhoneNumber',
-    name: '鎵嬫満鍙�',
-  },
-  {
-    id: '4',
-    enCode: 'bank',
-    name: '鎵�灞為摱琛�',
-  },
-  {
-    id: '5',
-    enCode: 'bankBranch',
-    name: '鎵�灞炴敮琛�',
-  },
-  {
-    id: '6',
-    enCode: 'receiveAccount',
-    name: '鏀舵甯愭埛',
-  },
-  // {
-  //   id: '7',
-  //   enCode: 'totalWorkHours',
-  //   name: '绱宸ユ椂锛堝皬鏃讹級',
-  // },
-  {
-    id: '7-1',
-    enCode: 'serviceFee',
-    name: '鏈嶅姟璐�(鍏�)',
-  },
-  {
-    id: '7-2',
-    enCode: 'timeoutHours',
-    name: '瓒呮椂(灏忔椂)',
-  },
-  {
-    id: '7-3',
-    enCode: 'timeoutFee',
-    name: '瓒呮椂璐圭敤(鍏�)',
-  },
-  {
-    id: '7-4',
-    enCode: 'otherFee',
-    name: '鍏朵粬璐圭敤(鍏�)',
-  },
-  {
-    id: '8',
-    enCode: 'settlementAmount',
-    name: '缁撶畻閲戦',
-  },
-  {
-    id: '9',
-    enCode: 'actualSettlementAmount',
-    name: '瀹炲彂閲戦',
-  },
-  {
-    id: '10',
-    enCode: 'settlementReceiveStatus',
-    name: '鍒拌处鐘舵��',
-  },
-  {
-    id: '11',
-    enCode: 'settlementTime',
-    name: '缁撶畻鏃堕棿',
-  },
-  {
-    id: '12',
-    enCode: 'remark',
-    name: '澶囨敞',
-  },
-]);
-
 export const BalanceManageColumns = defineColumns([
   {
     id: '1',
diff --git a/src/views/SupplierManage/SupplierManageList.vue b/src/views/SupplierManage/SupplierManageList.vue
index 25bbaba..af8653b 100644
--- a/src/views/SupplierManage/SupplierManageList.vue
+++ b/src/views/SupplierManage/SupplierManageList.vue
@@ -32,11 +32,7 @@
           </QueryFilterItem>
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="SupplierManageColumns"
-        :show-operation-column="false"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :show-operation-column="false">
       </ProTableV2>
     </AppContainer>
   </LoadingLayout>
@@ -54,7 +50,6 @@
   FieldRadio,
 } from '@bole-core/components';
 import * as enterpriseServices from '@/services/api/enterprise';
-import { SupplierManageColumns } from './constants';
 import {
   EnumEnterpriseCooperationStatusText,
   EnumEnterpriseCooperationSignStatusText,
@@ -64,17 +59,11 @@
   name: 'SupplierManageList',
 });
 
-// const operationBtns = defineOperationBtns([
-//   {
-//     data: {
-//       enCode: 'detailBtn',
-//       name: '璇︽儏',
-//     },
-//     emits: {
-//       onClick: (role) => openDialog(role),
-//     },
-//   },
-// ]);
+const operationBtnMap: Record<string, OperationBtnType> = {};
+
+const { column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 const BaseState = {
diff --git a/src/views/UserManage/UserManageList.vue b/src/views/UserManage/UserManageList.vue
index 10d42bb..ccb367c 100644
--- a/src/views/UserManage/UserManageList.vue
+++ b/src/views/UserManage/UserManageList.vue
@@ -14,14 +14,16 @@
           </QueryFilterItem>
         </template>
         <template #btn>
-          <el-button @click="openDialog()" icon="Plus" type="primary">鏂板</el-button>
+          <el-button
+            v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
+            @click="openDialog()"
+            icon="Plus"
+            type="primary"
+            >鏂板</el-button
+          >
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="UserManageColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
         <template #status="{ row }">
           <FieldSwitch
             v-model="row.status"
@@ -56,7 +58,6 @@
   FieldSwitch,
 } from '@bole-core/components';
 import * as userServices from '@/services/api/user';
-import { UserManageColumns } from './constants';
 import { EnumUserStatus, EnumUserStatusText } from '@/constants';
 import { ModelValueType } from 'element-plus';
 import { Message } from '@bole-core/core';
@@ -68,41 +69,27 @@
   name: 'UserManageList',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'editBtn',
-      name: '缂栬緫',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  editBtn: {
     emits: {
       onClick: (role) => openDialog(role),
     },
   },
-  {
-    data: {
-      enCode: 'resetPasswordBtn',
-      name: '閲嶇疆瀵嗙爜',
-    },
-    props: {
-      type: 'danger',
-    },
+  resetPasswordBtn: {
     emits: {
       onClick: (role) => openResetPasswordDialog(role),
     },
   },
-  {
-    data: {
-      enCode: 'resetOperatorPasswordBtn',
-      name: '閲嶇疆鎿嶄綔瀵嗙爜',
-    },
-    props: {
-      type: 'danger',
-    },
+  resetOperatorPasswordBtn: {
     emits: {
       onClick: (role) => openResetOperatorPasswordDialog(role),
     },
   },
-]);
+};
+
+const { column, operationBtns, checkSubModuleItemShow } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 const BaseState = {
diff --git a/src/views/UserManage/constants/columns.ts b/src/views/UserManage/constants/columns.ts
deleted file mode 100644
index caf8385..0000000
--- a/src/views/UserManage/constants/columns.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { defineColumns } from '@bole-core/components';
-
-export const UserManageColumns = defineColumns([
-  {
-    id: '1',
-    enCode: 'name',
-    name: '濮撳悕',
-  },
-  {
-    id: '2',
-    enCode: 'userName',
-    name: '鐢ㄦ埛鍚�',
-  },
-  {
-    id: '3',
-    enCode: 'phoneNumber',
-    name: '鎵嬫満鍙�',
-  },
-  {
-    id: '4',
-    enCode: 'roles',
-    name: '瑙掕壊',
-  },
-  {
-    id: '5',
-    enCode: 'status',
-    name: '鐘舵��',
-  },
-  {
-    id: '6',
-    enCode: 'remark',
-    name: '澶囨敞',
-  },
-]);
diff --git a/src/views/UserManage/constants/index.ts b/src/views/UserManage/constants/index.ts
deleted file mode 100644
index a7f066b..0000000
--- a/src/views/UserManage/constants/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './columns';

--
Gitblit v1.9.1