From be028017a461af4c9745c69c4df084d4c3e6b296 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 22 十月 2025 18:08:49 +0800
Subject: [PATCH] fix: bug
---
src/views/Permission/RoleManage.vue | 173 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 118 insertions(+), 55 deletions(-)
diff --git a/src/views/Permission/RoleManage.vue b/src/views/Permission/RoleManage.vue
index 7b52a54..efbe7b4 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,13 +60,14 @@
QueryFilterItem,
useTable,
useFormDialog,
+ FieldRadio,
} from '@bole-core/components';
import { useAccess, useAllRoleList } from '@/hooks';
-import * as userServices from '@/services/api/User';
-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',
@@ -63,14 +80,15 @@
// member: { emits: { onClick: (role) => openMemberDialog(role) } },
disabledBtn: {
emits: { onClick: (role) => roleEnableOrForbid(role) },
+ props: { type: 'danger' },
extraProps: {
- hide: (row) => row.isLocked,
+ hide: (row) => row.isDisabled,
},
},
enableBtn: {
emits: { onClick: (role) => roleEnableOrForbid(role) },
extraProps: {
- hide: (row) => !row.isLocked,
+ hide: (row) => !row.isDisabled,
},
},
};
@@ -78,8 +96,6 @@
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
operationBtnMap,
});
-
-const { refetch } = useAllRoleList();
const BaseState = {
loading: true,
@@ -101,46 +117,56 @@
} = useTable(
async ({ pageIndex, pageSize }, extraParamState) => {
try {
- let params: API.GetRolesInput = {
+ let params: API.GetRolesQuery = {
pageModel: {
rows: pageSize,
page: pageIndex,
- orderInput: [{ property: 'sequence', order: OrderInputType.Asc }],
+ orderInput: extraParamState.orderInput,
},
- queryCondition: extraParamState.queryCondition,
+ userType: extraParamState.userType,
+ clientType: extraParamState.clientType,
+ keywords: extraParamState.queryCondition,
};
- let res = await userServices.getRoles(params, {
+ let res = await roleServices.getRoles(params, {
showLoading: !state.loading,
});
- return {
- data: res.data,
- pageModel: {
- rows: pageSize,
- page: pageIndex,
- totalCount: res.pageModel.totalCount,
- },
- };
+ 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({
+ userType: extraParamState.userType,
+ clientType: extraParamState.clientType,
+ });
+ }
+ } catch (error) {}
}
const { dialogProps, handleAdd, handleEdit, editForm, dialogState } = useFormDialog({
@@ -149,59 +175,61 @@
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 = {
+ let params: API.SaveRoleCommand = {
name: editForm.name,
remark: editForm.remark,
- dataRange: editForm.dataRange,
+ dataPower: editForm.dataRange,
+ userType: editForm.userType,
+ clientType: editForm.clientType,
};
- let res;
if (isEdit) {
- params.id = editForm.id;
- res = await userServices.updateRole(params);
- } else {
- res = await userServices.createRole(params);
+ params = {
+ ...editForm.detail,
+ ...params,
+ };
}
+ let res = await roleServices.saveRole(params);
if (res) {
Message.successMessage('鎿嶄綔鎴愬姛');
getList(isEdit ? paginationState.pageIndex : 1);
- refetch({ type: 'inactive' });
}
} catch (error) {}
}
-async function handleDeleteRole(row: API.RoleInfo) {
+async function handleDeleteRole(row: API.GetRolesQueryResultItem) {
try {
await Message.deleteMessage();
- let params = {
- id: row.id,
+ let params: API.DeleteRoleCommand = {
+ ids: [row.id],
};
- let res = await userServices.deleteRole(params);
+ let res = await roleServices.deleteRole(params);
if (res) {
Message.successMessage('鎿嶄綔鎴愬姛');
getList(paginationState.pageIndex);
- refetch({ type: 'inactive' });
}
} 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({
- id: row.id,
- isEnable: !row.isEnable,
+ await Message.tipMessage(`鏄惁${row.isDisabled ? '鍚敤' : '绂佺敤'}瑙掕壊`);
+ let res = await roleServices.setRoleIsDisabled({
+ ids: [row.id],
+ isDisabled: !row.isDisabled,
});
if (res) {
Message.successMessage('鎿嶄綔鎴愬姛');
getList(paginationState.pageIndex);
- refetch({ type: 'inactive' });
return !!res;
}
} catch (error) {}
@@ -212,8 +240,43 @@
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[]) {
+ console.log('selectedMenuIds: ', selectedMenuIds);
+ 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