zhengyiming
5 天以前 10e01aa71d494ece26214bd57017e045f13b2a08
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) {