zhengyiming
4 天以前 245791c6de54b269dc22f38b0f6c5d160bf9c641
src/views/Permission/RoleManage.vue
@@ -25,11 +25,31 @@
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
        <template #columns="{ row, column }">
          <template v-if="column.property === 'departmentId'">
            {{ DepartmentTypeText[row[column.property]] }}
          </template>
          <template v-else-if="column.property === 'dataRange'">
            {{ DataRangeEnumText[row[column.property]] }}
          </template>
          <!-- <template v-else-if="column.property === 'isEnable'">
            <FieldSwitch
              active-text="启用"
              inactive-text="禁用"
              v-model="row.isEnable"
              :before-change="() => roleEnableOrForbid(row)"
            />
          </template> -->
        </template>
      </ProTableV2>
    </AppContainer>
    <AddOrEditRoleDialog v-bind="dialogProps" />
    <DialogAuthorize v-model:authorizeId="rowState.authorizeId" authorizeType="Role" />
    <!-- <DialogMember v-model:visibleId="rowState.setMemberRoleId" /> -->
    <DialogAuthorize
      v-model:authorizeId="rowState.authorizeId"
      authorizeType="Role"
      :menuScene="AppLocalConfig.menuScene"
    />
    <DialogMember v-model:visibleId="rowState.setMemberRoleId" />
  </LoadingLayout>
</template>
@@ -44,14 +64,25 @@
  QueryFilterItem,
  useTable,
  useFormDialog,
  FieldRadio,
} from '@bole-core/components';
import { useAccess, useAllRoleList } from '@/hooks';
import * as userServices from '@/services/api/User';
import { useAccess } from '@/hooks';
import * as userRoleServices from '@/services/api/UserRole';
import { Message, OrderInputType } from '@bole-core/core';
import AddOrEditRoleDialog from './components/AddOrEditRoleDialog.vue';
import { DataRangeEnum, DataRangeEnumText } from '@/constants';
import DialogAuthorize from './components/dialogAuthorize.vue';
import DialogMember from './components/dialogMember.vue';
import {
  DepartmentType,
  DepartmentTypeText,
  DataRangeEnum,
  DataRangeEnumText,
  EnumMenuSceneText,
  EnumMenuScene,
  AppLocalConfig,
} from '@/constants';
import { formatRoleName } from '@/utils';
import { useQueryClient } from '@tanstack/vue-query';
defineOptions({
  name: 'RoleManage',
@@ -61,17 +92,17 @@
  editBtn: { emits: { onClick: (role) => openDialog(role) } },
  delBtn: { emits: { onClick: (role) => handleDeleteRole(role) }, props: { type: 'danger' } },
  authorize: { emits: { onClick: (role) => openAuthorizeDialog(role) } },
  // member: { emits: { onClick: (role) => openMemberDialog(role) } },
  disabledBtn: {
    emits: { onClick: (role) => roleEnableOrForbid(role) },
    extraProps: {
      hide: (row) => row.isEnable,
    },
  },
  member: { emits: { onClick: (role) => openMemberDialog(role) } },
  enableBtn: {
    emits: { onClick: (role) => roleEnableOrForbid(role) },
    extraProps: {
      hide: (row) => !row.isEnable,
      hide: (row: API.RoleInfo) => row.isEnable,
    },
  },
  disabledBtn: {
    emits: { onClick: (role) => roleEnableOrForbid(role) },
    extraProps: {
      hide: (row: API.RoleInfo) => !row.isEnable,
    },
  },
};
@@ -79,8 +110,6 @@
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const { refetch } = useAllRoleList();
const BaseState = {
  loading: true,
@@ -109,8 +138,9 @@
          orderInput: [{ property: 'sequence', order: OrderInputType.Asc }],
        },
        queryCondition: extraParamState.queryCondition,
        menuScene: AppLocalConfig.menuScene,
      };
      let res = await userServices.getRoles(params, {
      let res = await userRoleServices.getRoles(params, {
        showLoading: !state.loading,
      });
      return {
@@ -140,6 +170,7 @@
      id: row.id,
      name: formatRoleName(row.name),
      remark: row.remark,
      // departmentId: row.departmentId,
      dataRange: row.dataRange,
    });
  } else {
@@ -153,29 +184,37 @@
    id: '',
    name: '',
    remark: '',
    // departmentId: DepartmentType.Market,
    dataRange: DataRangeEnum.All,
  },
});
const queryClient = useQueryClient();
async function handleAddOrEdit() {
  try {
    const isEdit = editForm.id;
    let params: API.CreateOrUpdateRoleInput = {
    let params: API.CreateBaseRoleInput = {
      name: editForm.name,
      remark: editForm.remark,
      // departmentId: editForm.departmentId,
      dataRange: editForm.dataRange,
      menuScene: AppLocalConfig.menuScene,
    };
    let res;
    if (isEdit) {
      params.id = editForm.id;
      res = await userServices.updateRole(params);
      (params as API.CreateOrUpdateRoleInput).id = editForm.id;
      res = await userRoleServices.updateRole(params);
    } else {
      res = await userServices.createRole(params);
      res = await userRoleServices.createRole(params);
    }
    if (res) {
      Message.successMessage('操作成功');
      getList(isEdit ? paginationState.pageIndex : 1);
      refetch({ type: 'inactive' });
      dialogState.dialogVisible = false;
      queryClient.invalidateQueries({
        queryKey: ['userRoleServices/getRoles'],
      });
    }
  } catch (error) {}
}
@@ -186,26 +225,24 @@
    let params = {
      id: row.id,
    };
    let res = await userServices.deleteRole(params);
    let res = await userRoleServices.deleteRole(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
      refetch({ type: 'inactive' });
    }
  } catch (error) {}
}
async function roleEnableOrForbid(row: API.RoleInfo) {
  try {
    await Message.tipMessage(`是否${!row.isEnable ? '启用' : '禁用'}角色`);
    let res = await userServices.roleEnableOrForbid({
    await Message.tipMessage(`是否${!row.isEnable ? '启用' : '禁用'}用户`);
    let res = await userRoleServices.roleEnableOrForbid({
      id: row.id,
      isEnable: !row.isEnable,
    });
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
      refetch({ type: 'inactive' });
      return !!res;
    }
  } catch (error) {}
@@ -220,7 +257,7 @@
  rowState.authorizeId = row.id;
}
// function openMemberDialog(row: API.IdentityRoleDto) {
//   rowState.setMemberRoleId = row.id;
// }
function openMemberDialog(row: API.IdentityRoleDto) {
  rowState.setMemberRoleId = row.id;
}
</script>