From 44f10c278aae48b8793ae7309488c24494e69866 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 18 十一月 2025 14:46:19 +0800
Subject: [PATCH] fix: s

---
 src/views/Permission/RoleManage.vue |   95 +++++++++++++++++++++++++++++++++--------------
 1 files changed, 66 insertions(+), 29 deletions(-)

diff --git a/src/views/Permission/RoleManage.vue b/src/views/Permission/RoleManage.vue
index 5efdf97..e231f4d 100644
--- a/src/views/Permission/RoleManage.vue
+++ b/src/views/Permission/RoleManage.vue
@@ -25,11 +25,31 @@
         </template>
       </ProTableQueryFilterBar>
       <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+        <template #columns="{ row, column }">
+          <template v-if="column.property === 'departmentId'">
+            {{ DepartmentTypeText[row[column.property]] }}
+          </template>
+          <template v-else-if="column.property === 'dataRange'">
+            {{ DataRangeEnumText[row[column.property]] }}
+          </template>
+          <!-- <template v-else-if="column.property === 'isEnable'">
+            <FieldSwitch
+              active-text="鍚敤"
+              inactive-text="绂佺敤"
+              v-model="row.isEnable"
+              :before-change="() => roleEnableOrForbid(row)"
+            />
+          </template> -->
+        </template>
       </ProTableV2>
     </AppContainer>
     <AddOrEditRoleDialog v-bind="dialogProps" />
-    <DialogAuthorize v-model:authorizeId="rowState.authorizeId" authorizeType="Role" />
-    <!-- <DialogMember v-model:visibleId="rowState.setMemberRoleId" /> -->
+    <DialogAuthorize
+      v-model:authorizeId="rowState.authorizeId"
+      authorizeType="Role"
+      :menuScene="AppLocalConfig.menuScene"
+    />
+    <DialogMember v-model:visibleId="rowState.setMemberRoleId" />
   </LoadingLayout>
 </template>
 
@@ -44,14 +64,25 @@
   QueryFilterItem,
   useTable,
   useFormDialog,
+  FieldRadio,
 } from '@bole-core/components';
-import { useAccess, useAllRoleList } from '@/hooks';
-import * as userServices from '@/services/api/User';
+import { useAccess } from '@/hooks';
+import * as userRoleServices from '@/services/api/UserRole';
 import { Message, OrderInputType } from '@bole-core/core';
 import AddOrEditRoleDialog from './components/AddOrEditRoleDialog.vue';
-import { DataRangeEnum, DataRangeEnumText } from '@/constants';
 import DialogAuthorize from './components/dialogAuthorize.vue';
+import DialogMember from './components/dialogMember.vue';
+import {
+  DepartmentType,
+  DepartmentTypeText,
+  DataRangeEnum,
+  DataRangeEnumText,
+  EnumMenuSceneText,
+  EnumMenuScene,
+  AppLocalConfig,
+} from '@/constants';
 import { formatRoleName } from '@/utils';
+import { useQueryClient } from '@tanstack/vue-query';
 
 defineOptions({
   name: 'RoleManage',
@@ -61,17 +92,17 @@
   editBtn: { emits: { onClick: (role) => openDialog(role) } },
   delBtn: { emits: { onClick: (role) => handleDeleteRole(role) }, props: { type: 'danger' } },
   authorize: { emits: { onClick: (role) => openAuthorizeDialog(role) } },
-  // member: { emits: { onClick: (role) => openMemberDialog(role) } },
-  disabledBtn: {
-    emits: { onClick: (role) => roleEnableOrForbid(role) },
-    extraProps: {
-      hide: (row) => row.isEnable,
-    },
-  },
+  member: { emits: { onClick: (role) => openMemberDialog(role) } },
   enableBtn: {
     emits: { onClick: (role) => roleEnableOrForbid(role) },
     extraProps: {
-      hide: (row) => !row.isEnable,
+      hide: (row: API.RoleInfo) => row.isEnable,
+    },
+  },
+  disabledBtn: {
+    emits: { onClick: (role) => roleEnableOrForbid(role) },
+    extraProps: {
+      hide: (row: API.RoleInfo) => !row.isEnable,
     },
   },
 };
@@ -79,8 +110,6 @@
 const { checkSubModuleItemShow, column, operationBtns } = useAccess({
   operationBtnMap,
 });
-
-const { refetch } = useAllRoleList();
 
 const BaseState = {
   loading: true,
@@ -109,8 +138,9 @@
           orderInput: [{ property: 'sequence', order: OrderInputType.Asc }],
         },
         queryCondition: extraParamState.queryCondition,
+        menuScene: AppLocalConfig.menuScene,
       };
-      let res = await userServices.getRoles(params, {
+      let res = await userRoleServices.getRoles(params, {
         showLoading: !state.loading,
       });
       return {
@@ -140,6 +170,7 @@
       id: row.id,
       name: formatRoleName(row.name),
       remark: row.remark,
+      // departmentId: row.departmentId,
       dataRange: row.dataRange,
     });
   } else {
@@ -153,29 +184,37 @@
     id: '',
     name: '',
     remark: '',
+    // departmentId: DepartmentType.Market,
     dataRange: DataRangeEnum.All,
   },
 });
 
+const queryClient = useQueryClient();
+
 async function handleAddOrEdit() {
   try {
     const isEdit = editForm.id;
-    let params: API.CreateOrUpdateRoleInput = {
+    let params: API.CreateBaseRoleInput = {
       name: editForm.name,
       remark: editForm.remark,
+      // departmentId: editForm.departmentId,
       dataRange: editForm.dataRange,
+      menuScene: AppLocalConfig.menuScene,
     };
     let res;
     if (isEdit) {
-      params.id = editForm.id;
-      res = await userServices.updateRole(params);
+      (params as API.CreateOrUpdateRoleInput).id = editForm.id;
+      res = await userRoleServices.updateRole(params);
     } else {
-      res = await userServices.createRole(params);
+      res = await userRoleServices.createRole(params);
     }
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(isEdit ? paginationState.pageIndex : 1);
-      refetch({ type: 'inactive' });
+      dialogState.dialogVisible = false;
+      queryClient.invalidateQueries({
+        queryKey: ['userRoleServices/getRoles'],
+      });
     }
   } catch (error) {}
 }
@@ -186,26 +225,24 @@
     let params = {
       id: row.id,
     };
-    let res = await userServices.deleteRole(params);
+    let res = await userRoleServices.deleteRole(params);
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(paginationState.pageIndex);
-      refetch({ type: 'inactive' });
     }
   } catch (error) {}
 }
 
 async function roleEnableOrForbid(row: API.RoleInfo) {
   try {
-    await Message.tipMessage(`鏄惁${!row.isEnable ? '鍚敤' : '绂佺敤'}瑙掕壊`);
-    let res = await userServices.roleEnableOrForbid({
+    await Message.tipMessage(`鏄惁${!row.isEnable ? '鍚敤' : '绂佺敤'}鐢ㄦ埛`);
+    let res = await userRoleServices.roleEnableOrForbid({
       id: row.id,
       isEnable: !row.isEnable,
     });
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(paginationState.pageIndex);
-      refetch({ type: 'inactive' });
       return !!res;
     }
   } catch (error) {}
@@ -220,7 +257,7 @@
   rowState.authorizeId = row.id;
 }
 
-// function openMemberDialog(row: API.IdentityRoleDto) {
-//   rowState.setMemberRoleId = row.id;
-// }
+function openMemberDialog(row: API.IdentityRoleDto) {
+  rowState.setMemberRoleId = row.id;
+}
 </script>

--
Gitblit v1.9.1