|  |  |  | 
|---|
|  |  |  | <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" | 
|---|
|  |  |  | 
|---|
|  |  |  | </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> | 
|---|
|  |  |  | 
|---|
|  |  |  | 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', | 
|---|
|  |  |  | 
|---|
|  |  |  | // 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, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | 
|---|
|  |  |  | const { checkSubModuleItemShow, column, operationBtns } = useAccess({ | 
|---|
|  |  |  | operationBtnMap, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { refetch } = useAllRoleList(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const BaseState = { | 
|---|
|  |  |  | loading: true, | 
|---|
|  |  |  | 
|---|
|  |  |  | } = 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, | 
|---|
|  |  |  | keywords: extraParamState.queryCondition, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | 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({ | 
|---|
|  |  |  | userType: extraParamState.userType, | 
|---|
|  |  |  | clientType: extraParamState.clientType, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (error) {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { dialogProps, handleAdd, handleEdit, editForm, dialogState } = useFormDialog({ | 
|---|
|  |  |  | 
|---|
|  |  |  | 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({ | 
|---|
|  |  |  | //   id: row.id, | 
|---|
|  |  |  | //   isEnable: !row.isEnable, | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  | // if (res) { | 
|---|
|  |  |  | //   Message.successMessage('操作成功'); | 
|---|
|  |  |  | //   getList(paginationState.pageIndex); | 
|---|
|  |  |  | //   refetch({ type: 'inactive' }); | 
|---|
|  |  |  | //   return !!res; | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | await Message.tipMessage(`是否${row.isDisabled ? '启用' : '禁用'}角色`); | 
|---|
|  |  |  | let res = await roleServices.setRoleIsDisabled({ | 
|---|
|  |  |  | ids: [row.id], | 
|---|
|  |  |  | isDisabled: !row.isDisabled, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (res) { | 
|---|
|  |  |  | Message.successMessage('操作成功'); | 
|---|
|  |  |  | getList(paginationState.pageIndex); | 
|---|
|  |  |  | return !!res; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (error) {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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) { | 
|---|