Просмотр исходного кода

feat: V4 版本用户管理修复切换用户按钮显示

qindao 1 год назад
Родитель
Сommit
b78cee619b

+ 4 - 3
src/api/system/user-operate.ts

@@ -8,7 +8,7 @@ export interface UserType {
   username?: string;
   staffNo?: string;
   mobile?: string;
-  isDisabled?: boolean;
+  isDisabled?: boolean | number;
   realname?: string;
   roleIdList?: number[];
   passwordRe?: string;
@@ -193,7 +193,6 @@ export interface QueryUser {
 }
 
 export interface UserPramas {
-  username: string, // 登录用户
   realname?: string, // 用户姓名
   mobile?: string, // 手机号
   staffNo?: string, // 工号
@@ -235,8 +234,10 @@ export interface AddTenantAdminProps {
   username: string;
   realname: string;
   roleIdList: number[];
-  isDisabled: boolean;
+  isDisabled: boolean | number;
   password: string;
+  userId?: number;
+  passwordRe?: string;
 }
 
 // V4: 添加租户管理员

+ 1 - 1
src/utils/useTargetTenantIdSetting.ts

@@ -32,7 +32,7 @@ export function useTargetTenantIdSetting() {
     return localStorage.getItem(fullKey);
   }
 
-  const isSysTenant = computed(() => getValue() === SYS_TENANT_ID.toString())
+  const isSysTenant = computed(() => getValue() !== SYS_TENANT_ID.toString())
 
   return { setValue, getValue, isSysTenant };
 }

+ 11 - 18
src/views/system/user/CreateAdminDrawer.vue

@@ -8,7 +8,7 @@
       :label-width="80"
     >
       <el-form-item label="登录账号" prop="username">
-        <el-input placeholder="请输入登录账号" v-model="formParams.username"  :disabled="!isAddUser" />
+        <el-input placeholder="请输入登录账号" v-model="formParams.username" :disabled="!isAddUser" />
       </el-form-item>
       <el-form-item label="姓名" prop="realname">
         <el-input placeholder="请输入姓名" v-model="formParams.realname" />
@@ -57,12 +57,12 @@
 </template>
 
 <script lang="ts" setup>
-  import { ref,computed, onMounted } from 'vue';
+  import { ref,computed } from 'vue';
   import { FormRules, ElMessage } from 'element-plus';
   import { userInfo } from '@/api/system/user';
   import { cloneDeep } from 'lodash-es';
   import { addTenantAdmin, AddTenantAdminProps, updateUser } from '@/api/system/user-operate';
-  import { EditType, OptionsProps } from './types';
+  import { EditType, OptionsProps, DisabledEnum } from './types';
   import { ResultEnum } from '@/enums/httpEnum';
   
   const rules: FormRules = {
@@ -94,7 +94,6 @@
   };
 
   const emit = defineEmits(['change']);
-
   const props = withDefaults(defineProps<{ title: string; width: number; editType: EditType,roleData: OptionsProps[]}>(), {
       title: '添加用户',
       width: 450,
@@ -112,7 +111,6 @@
   const formRef: any = ref(null);
   const isDrawer = ref(false);
   const subLoading = ref(false);
-
   const formParams = ref<AddTenantAdminProps>(defaultValueRef());
 
   async function openDrawer(userId?) {
@@ -138,30 +136,24 @@
         message.error('请填写完整信息');
         return;
       }
-      console.log('formParams', formParams.value);
+      
       // 克隆
       const params = cloneDeep(formParams.value);
       if (params.password != params.passwordRe) {
         return message.error('两次密码不一致');
       }
       if (isAddUser.value) {
-        const addData = {
-          username: formParams.value.username!,
-          isDisabled: formParams.value.isDisabled,
-          realname: formParams.value.realname!,
-          roleIdList: formParams.value.roleIdList,
-          password: formParams.value.password
-        };
-        addTenantAdmin(formParams.value).then((res) => {
-          console.log('添加账户成功', res);
+        formParams.value.isDisabled ? params.isDisabled = DisabledEnum.ENABLE : params.isDisabled = DisabledEnum.DISABLED;
+        addTenantAdmin(params).then((res) => {
+          
           message.success('添加管理员账户成功');
           emit('change');
           handleReset();
           closeDrawer();
         });
-     
       } else {
-        updateUser(formParams.value)
+         formParams.value.isDisabled ? params.isDisabled = DisabledEnum.ENABLE : params.isDisabled = DisabledEnum.DISABLED;
+        updateUser(params)
         .then((res) => {
           if (res.code !== ResultEnum.SUCCESS) {
             return Promise.reject(res.msg);
@@ -184,12 +176,13 @@
   }
 
   function getInfo() {
-    userInfo({ userId: Number(formParams.value.userId)  }).then((res) => {
+    userInfo({userId: Number(formParams.value.userId)}).then((res) => {
       Object.entries(res).forEach(([key, value]) => {
         formParams.value[key] = value
       })
       formParams.value.roleIdList = res.roleIds;
       formParams.value.passwordRe = res.password;
+      formParams.value.isDisabled = res.isDisabled === DisabledEnum.ENABLE ? true : false;
       isDrawer.value = true;
     });
   }

+ 51 - 48
src/views/system/user/CreateDrawer.vue

@@ -85,54 +85,54 @@
   import { userInfo } from '@/api/system/user';
   import { cloneDeep } from 'lodash-es';
   import { UserType, addSingleUser, updateUser } from '@/api/system/user-operate';
-  import { OptionsProps } from './types';
+  import { OptionsProps, DisabledEnum } from './types';
   import { ResultEnum } from '@/enums/httpEnum';
 
-    const rules: FormRules = {
-      username: {
-        required: true,
-        message: '登录账号不能为空',
-        trigger: 'blur',
-      },
-      deptId: {
-        required: true,
-        message: '部门不能为空',
-        trigger: 'change',
-        type: 'number',
-      },
-      roleIdList: {
-        required: true,
-        message: '角色不能为空',
-        trigger: 'change',
-        type: 'array',
-      },
-      password: {
-        required: true,
-        message: '密码不能为空',
-        trigger: 'blur',
-      },
-      passwordRe: {
-        required: true,
-        message: '密码不能为空',
-        trigger: 'blur',
-      },
-      realname: {
-        required: true,
-        message: '用户名不能为空',
-        trigger: 'blur',
-      },
-      mobile: {
-        required: true,
-        message: '手机不能为空',
-        trigger: 'blur',
-      },
-      staffNo: {
-        required: true,
-        message: '工号不能为空',
-        trigger: 'blur',
-      },
-    };
-    const emit = defineEmits(['change']);
+  const rules: FormRules = {
+    username: {
+      required: true,
+      message: '登录账号不能为空',
+      trigger: 'blur',
+    },
+    deptId: {
+      required: true,
+      message: '部门不能为空',
+      trigger: 'change',
+      type: 'number',
+    },
+    roleIdList: {
+      required: true,
+      message: '角色不能为空',
+      trigger: 'change',
+      type: 'array',
+    },
+    password: {
+      required: true,
+      message: '密码不能为空',
+      trigger: 'blur',
+    },
+    passwordRe: {
+      required: true,
+      message: '密码不能为空',
+      trigger: 'blur',
+    },
+    realname: {
+      required: true,
+      message: '用户名不能为空',
+      trigger: 'blur',
+    },
+    mobile: {
+      required: true,
+      message: '手机不能为空',
+      trigger: 'blur',
+    },
+    staffNo: {
+      required: true,
+      message: '工号不能为空',
+      trigger: 'blur',
+    },
+  };
+  const emit = defineEmits(['change']);
 
   const props = withDefaults(defineProps
   <{ title: string; width: number; departmentList: OptionsProps[], roleData: OptionsProps[] }>(),
@@ -188,8 +188,9 @@
         if (params.password != params.passwordRe) {
           return message.error('两次密码不一致');
         }
+        formParams.value.isDisabled ? params.isDisabled = DisabledEnum.ENABLE : params.isDisabled = DisabledEnum.DISABLED;
         if (isAddUser.value) {
-          addSingleUser(formParams.value)
+          addSingleUser(params)
             .then((res) => {
               if (res.code !== ResultEnum.SUCCESS) {
                 return Promise.reject(res.msg);
@@ -203,7 +204,8 @@
               ElMessage.error(error);
             });
         } else {
-          updateUser(formParams.value)
+         formParams.value.isDisabled ? params.isDisabled = DisabledEnum.ENABLE : params.isDisabled = DisabledEnum.DISABLED;
+          updateUser(params)
             .then((res) => {
               if (res.code !== ResultEnum.SUCCESS) {
                 return Promise.reject(res.msg);
@@ -232,6 +234,7 @@
         })
         formParams.value.roleIdList = res.roleIds;
         formParams.value.passwordRe = res.password;
+        formParams.value.isDisabled = res.isDisabled === DisabledEnum.ENABLE ? true : false;
         isDrawer.value = true;
       });
     }

+ 3 - 3
src/views/system/user/columns.ts

@@ -50,16 +50,16 @@ export const columns: BasicColumn[] = [
   },
   {
     label: '状态',
-    prop: 'isEnable',
+    prop: 'isDisabled',
     minWidth: 50,
     render(record) {
       return h(
         ElTag,
         {
-          type: record.row.isEnable ? 'success' : 'danger',
+          type: !record.row.isDisabled ? 'success' : 'danger',
         },
         {
-          default: () => (record.row.isEnable ? '正常' : '锁定')
+          default: () => (!record.row.isDisabled ? '正常' : '锁定')
         },
       );
     },

+ 4 - 5
src/views/system/user/types/index.ts

@@ -29,7 +29,6 @@ export interface OptionsProps {
 }
 
 export interface QueryParamas {
-  username: string, // 登录用户
   realname?: string, // 用户姓名
   mobile?: string, // 手机号
   staffNo?: string, // 工号
@@ -38,8 +37,8 @@ export interface QueryParamas {
 }
 export type SearchParamsProps = PaginationRequest & {queryParam: QueryParamas}
 
-export enum RoleType {
-  HORMAL_USER = 0,
-  SUPER_ADMIN = 1,
-  TENANT_ADMIN = 2,
+/* 状态: 0-启用, 1-禁用 */
+export enum DisabledEnum {
+  ENABLE = 0,
+  DISABLED = 1
 }

+ 19 - 29
src/views/system/user/user.vue

@@ -88,21 +88,18 @@
 </template>
 
 <script lang="ts" setup>
-  import { h, reactive, ref, computed, onMounted } from 'vue';
+  import { h, reactive, ref, onMounted } from 'vue';
   import { ElMessage, ElMessageBox } from 'element-plus';
-  import { storeToRefs } from 'pinia';
   import { Plus, DocumentAdd } from '@element-plus/icons-vue';
   import { isEmpty } from 'lodash-es';
   import editIcon from '@/assets/images/table/table-edit.png';
   import deleteIcon from '@/assets/images/table/table-delete.png';
-  import { useUserStore } from '@/store/modules/user';
   import { BasicTable, BasicColumn } from '@/components/Table';
   import { columns } from './columns';
-  // import useUser from './hooks/use-user';
   import { EditType, OptionsProps, SearchParamsProps } from './types';
   import { RoleTypeEnum } from '@/types/role/constants';
   import useSceneInfos from '@/hooks/useSceneInfos';
-  import { getAllDepartments, DeptTreeItem } from '@/api/system/user-query';
+  import { getAllDepartments } from '@/api/system/user-query';
   import { getRoles } from '@/api/system/role';
   import { getUserList, UserLisItem, deleteUser } from '@/api/system/user-operate';
   import { ResultEnum } from '@/enums/httpEnum';
@@ -116,12 +113,6 @@
   
   const sceneInfos = useSceneInfos();
   const { calculateTreeData } = sceneInfos;
-  // const useUserDetail = useUser();
-  // const { page, pageSize } = storeToRefs(useUserDetail);
-  const userStore = useUserStore();
-  const userInfo: object = userStore.getUserInfo || {};
-  const isSuperAdmin = computed(() => userInfo['roleType'] === RoleTypeEnum.SUPER_ADMIN);
-  const username = computed(() => userInfo['username']);
   const userList = ref<UserLisItem[]>([]);
   const searchFormRef = ref<InstanceType<typeof SearchForm>>();
   const basicTableRef = ref<InstanceType<typeof BasicTable>>();
@@ -138,16 +129,6 @@
   const createAdminType = ref(EditType.create);
   const { isSysTenant } = useTargetTenantIdSetting();
 
-  const handlePageNumChange = (pageNum) => {
-    page.value = pageNum;
-    loadPageData();
-  };
-  const handlePageSizeChange = (size) => {
-    page.value = 1;
-    pageSize.value = size;
-    loadPageData();
-  };
-
   const actionColumn: BasicColumn = reactive({
     width: 150,
     title: '操作',
@@ -279,7 +260,7 @@
     roleData.value = res.map((item: any) => {
       return {
         value: item.id,
-        label: item.roleName + 'test',
+        label: item.roleName,
       };
     });
   });
@@ -288,9 +269,7 @@
   const params = reactive<SearchParamsProps>({
     pageNumber: 1,
     pageSize: 10,
-    queryParam: {
-      username: username.value
-    }
+    queryParam: {}
   })
 
   // 获取页面数据
@@ -315,8 +294,8 @@
         total.value = res.totalPage;
       })
     }
-   
   }
+
   const extraParams = ['realname', 'mobile', 'staffNo'];
   const delteExtraParams = (type) => {
     const needDeleteArr = extraParams.filter(item => item !== type);
@@ -334,11 +313,22 @@
   const onResetForm = () => {
     params.pageNumber = 1;
     params.pageSize = 10
-    params.queryParam = {
-      username: username.value
-    }
+    params.queryParam = {}
     loadPageData();
   }
+
+  // 分页跳转
+  const handlePageNumChange = (pageNum) => {
+    params.pageNumber = pageNum;
+    loadPageData();
+  };
+
+  // 更换页面
+  const handlePageSizeChange = (size) => {
+    params.pageNumber = 1;
+    params.pageSize = size;
+    loadPageData();
+  };
 </script>
 <style scoped>
   .user-page {