From 10e01aa71d494ece26214bd57017e045f13b2a08 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期三, 06 八月 2025 09:12:34 +0800 Subject: [PATCH] fix: 修改功能模块 --- src/views/Permission/RoleManage.vue | 176 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 117 insertions(+), 59 deletions(-) diff --git a/src/views/Permission/RoleManage.vue b/src/views/Permission/RoleManage.vue index 7b52a54..4f57eb0 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', @@ -79,8 +96,6 @@ operationBtnMap, }); -const { refetch } = useAllRoleList(); - const BaseState = { loading: true, }; @@ -101,46 +116,52 @@ } = 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, }; - 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(); + } + } catch (error) {} } const { dialogProps, handleAdd, handleEdit, editForm, dialogState } = useFormDialog({ @@ -149,61 +170,64 @@ 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, - }); - if (res) { - Message.successMessage('鎿嶄綔鎴愬姛'); - getList(paginationState.pageIndex); - refetch({ type: 'inactive' }); - return !!res; - } + // await Message.tipMessage(`鏄惁${!row.isEnable ? '鍚敤' : '绂佺敤'}瑙掕壊`); + // let res = await userServices.roleEnableOrForbid({ + // id: row.id, + // isEnable: !row.isEnable, + // }); + // if (res) { + // Message.successMessage('鎿嶄綔鎴愬姛'); + // getList(paginationState.pageIndex); + // refetch({ type: 'inactive' }); + // return !!res; + // } } catch (error) {} } @@ -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