From 22477adc4e931cd4a6925d8f0e867ef7aedc661d Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 05 八月 2025 17:34:42 +0800
Subject: [PATCH] fix: 修改功能模块

---
 src/views/Permission/RoleManage.vue |  198 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 128 insertions(+), 70 deletions(-)

diff --git a/src/views/Permission/RoleManage.vue b/src/views/Permission/RoleManage.vue
index 1310cee..5143ab0 100644
--- a/src/views/Permission/RoleManage.vue
+++ b/src/views/Permission/RoleManage.vue
@@ -4,6 +4,22 @@
       <ProTableQueryFilterBar @on-reset="reset">
         <template #query>
           <QueryFilterItem>
+            <FieldRadio
+              v-model="extraParamState.clientType"
+              :value-enum="EnumClientTypeText"
+              buttonStyle
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem>
+            <FieldRadio
+              v-model="extraParamState.userType"
+              :value-enum="EnumUserTypeText"
+              buttonStyle
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem>
             <SearchInput
               v-model="extraParamState.queryCondition"
               style="width: 200px"
@@ -28,7 +44,7 @@
       </ProTableV2>
     </AppContainer>
     <AddOrEditRoleDialog v-bind="dialogProps" />
-    <DialogAuthorize v-model:authorizeId="rowState.authorizeId" authorizeType="Role" />
+    <DialogAuthorizeV2 v-bind="dialogAuthorizeProps" authorizeType="Role" />
     <!-- <DialogMember v-model:visibleId="rowState.setMemberRoleId" /> -->
   </LoadingLayout>
 </template>
@@ -44,12 +60,14 @@
   QueryFilterItem,
   useTable,
   useFormDialog,
+  FieldRadio,
 } from '@bole-core/components';
 import { useAccess, useAllRoleList } from '@/hooks';
-import { Message, OrderInputType } from '@bole-core/core';
+import { Message } from '@bole-core/core';
 import AddOrEditRoleDialog from './components/AddOrEditRoleDialog.vue';
-import { DataRangeEnum, DataRangeEnumText } from '@/constants';
-import DialogAuthorize from './components/dialogAuthorize.vue';
+import { EnumClientTypeText, EnumUserTypeText } from '@/constants';
+import DialogAuthorizeV2 from './components/dialogAuthorizeV2.vue';
+import * as roleServices from '@/services/api/role';
 
 defineOptions({
   name: 'RoleManage',
@@ -78,8 +96,6 @@
   operationBtnMap,
 });
 
-const { refetch } = useAllRoleList();
-
 const BaseState = {
   loading: true,
 };
@@ -100,47 +116,52 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      // let params: API.GetRolesInput = {
-      //   pageModel: {
-      //     rows: pageSize,
-      //     page: pageIndex,
-      //     orderInput: [{ property: 'sequence', order: OrderInputType.Asc }],
-      //   },
-      //   queryCondition: extraParamState.queryCondition,
-      // };
-      // let res = await userServices.getRoles(params, {
-      //   showLoading: !state.loading,
-      // });
-      // return {
-      //   data: res.data,
-      //   pageModel: {
-      //     rows: pageSize,
-      //     page: pageIndex,
-      //     totalCount: res.pageModel.totalCount,
-      //   },
-      // };
-      return {};
+      let params: API.GetRolesQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        userType: extraParamState.userType,
+        clientType: extraParamState.clientType,
+      };
+      let res = await roleServices.getRoles(params, {
+        showLoading: !state.loading,
+      });
+      return res;
     } catch (error) {}
   },
   {
     defaultExtraParams: {
       queryCondition: '',
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+      userType: EnumUserType.Operation,
+      clientType: EnumClientType.PcWeb,
     },
-    queryKey: ['userRoleServices/getRoles'],
+    queryKey: ['roleServices/getRoles'],
+    columnsRenderProps: {
+      dataPower: { type: 'enum', valueEnum: EnumRoleWebApiDataPowerText },
+    },
   }
 );
 
-function openDialog(row?: API.RoleInfo) {
-  if (row) {
-    handleEdit({
-      id: row.id,
-      name: row.name,
-      remark: row.remark,
-      dataRange: row.dataRange,
-    });
-  } else {
-    handleAdd();
-  }
+async function openDialog(row?: API.GetRolesQueryResultItem) {
+  try {
+    if (row) {
+      const detail = await roleServices.getRole({ id: row.id });
+      handleEdit({
+        id: row.id,
+        name: row.name,
+        remark: row.remark,
+        userType: row.userType,
+        clientType: row.clientType,
+        dataRange: row.dataPower,
+        detail: detail,
+      });
+    } else {
+      handleAdd();
+    }
+  } catch (error) {}
 }
 
 const { dialogProps, handleAdd, handleEdit, editForm, dialogState } = useFormDialog({
@@ -149,49 +170,52 @@
     id: '',
     name: '',
     remark: '',
-    dataRange: DataRangeEnum.All,
+    userType: EnumUserType.Operation,
+    clientType: EnumClientType.PcWeb,
+    dataRange: EnumRoleWebApiDataPower.All,
+    detail: null as API.GetRoleQueryResult,
   },
 });
 
 async function handleAddOrEdit() {
   try {
     const isEdit = editForm.id;
-    // let params: API.CreateOrUpdateRoleInput = {
-    //   name: editForm.name,
-    //   remark: editForm.remark,
-    //   dataRange: editForm.dataRange,
-    // };
-    // let res;
-    // if (isEdit) {
-    //   params.id = editForm.id;
-    //   res = await userServices.updateRole(params);
-    // } else {
-    //   res = await userServices.createRole(params);
-    // }
-    // if (res) {
-    //   Message.successMessage('鎿嶄綔鎴愬姛');
-    //   getList(isEdit ? paginationState.pageIndex : 1);
-    //   refetch({ type: 'inactive' });
-    // }
+    let params: API.SaveRoleCommand = {
+      name: editForm.name,
+      remark: editForm.remark,
+      dataPower: editForm.dataRange,
+      userType: editForm.userType,
+      clientType: editForm.clientType,
+    };
+    if (isEdit) {
+      params = {
+        ...editForm.detail,
+        ...params,
+      };
+    }
+    let res = await roleServices.saveRole(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(isEdit ? paginationState.pageIndex : 1);
+    }
   } catch (error) {}
 }
 
-async function handleDeleteRole(row: API.RoleInfo) {
+async function handleDeleteRole(row: API.GetRolesQueryResultItem) {
   try {
-    // await Message.deleteMessage();
-    // let params = {
-    //   id: row.id,
-    // };
-    // let res = await userServices.deleteRole(params);
-    // if (res) {
-    //   Message.successMessage('鎿嶄綔鎴愬姛');
-    //   getList(paginationState.pageIndex);
-    //   refetch({ type: 'inactive' });
-    // }
+    await Message.deleteMessage();
+    let params: API.DeleteRoleCommand = {
+      ids: [row.id],
+    };
+    let res = await roleServices.deleteRole(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
   } catch (error) {}
 }
 
-async function roleEnableOrForbid(row: API.RoleInfo) {
+async function roleEnableOrForbid(row: API.GetRolesQueryResultItem) {
   try {
     // await Message.tipMessage(`鏄惁${!row.isEnable ? '鍚敤' : '绂佺敤'}瑙掕壊`);
     // let res = await userServices.roleEnableOrForbid({
@@ -212,8 +236,42 @@
   setMemberRoleId: '',
 });
 
-function openAuthorizeDialog(row: API.IdentityRoleDto) {
-  rowState.authorizeId = row.id;
+const {
+  dialogProps: dialogAuthorizeProps,
+  handleAdd: handleAuthorizeAdd,
+  editForm: authorizeForm,
+} = useFormDialog({
+  onConfirm: handleAuthorize,
+  defaultFormParams: {
+    detail: null as API.GetRoleQueryResult,
+  },
+});
+
+async function openAuthorizeDialog(row: API.GetRolesQueryResultItem) {
+  try {
+    const detail = await roleServices.getRole({ id: row.id });
+    handleAuthorizeAdd({
+      detail: detail,
+    });
+  } catch (error) {}
+}
+
+async function handleAuthorize(selectedMenuIds: string[], resourceIds: string[]) {
+  try {
+    // let params: API.SaveRoleCommand = {
+    //   ...authorizeForm.detail,
+    //   menuIds: selectedMenuIds,
+    //   resources: resourceIds.map((x) => ({
+    //     resourceId: x,
+    //     dataPower: EnumRoleWebApiDataPower.All,
+    //   })),
+    // };
+    // let res = await roleServices.saveRole(params);
+    // if (res) {
+    //   Message.successMessage('鎿嶄綔鎴愬姛');
+    //   getList(paginationState.pageIndex);
+    // }
+  } catch (error) {}
 }
 
 // function openMemberDialog(row: API.IdentityRoleDto) {

--
Gitblit v1.9.1