|
@@ -29,6 +29,9 @@
|
|
<template #is_use>
|
|
<template #is_use>
|
|
<el-radio v-for="i in isUseList" :key="i._id" :label="i.value">{{ i.label }}</el-radio>
|
|
<el-radio v-for="i in isUseList" :key="i._id" :label="i.value">{{ i.label }}</el-radio>
|
|
</template>
|
|
</template>
|
|
|
|
+ <template #role>
|
|
|
|
+ <el-option v-for="i in roleList" :key="i._id" :label="i.name" :value="i.code"></el-option>
|
|
|
|
+ </template>
|
|
</cForm>
|
|
</cForm>
|
|
</el-col>
|
|
</el-col>
|
|
</cDialog>
|
|
</cDialog>
|
|
@@ -38,6 +41,7 @@
|
|
import { ref, Ref, onMounted, inject } from 'vue';
|
|
import { ref, Ref, onMounted, inject } from 'vue';
|
|
import { AdminStore } from '@/stores/users/admin';
|
|
import { AdminStore } from '@/stores/users/admin';
|
|
import { DictDataStore } from '@/stores/system/dictData';
|
|
import { DictDataStore } from '@/stores/system/dictData';
|
|
|
|
+import { RoleStore } from '@/stores/system/role';
|
|
import { LoginStore } from '@/stores/login';
|
|
import { LoginStore } from '@/stores/login';
|
|
import type { IQueryResult } from '@/util/types.util';
|
|
import type { IQueryResult } from '@/util/types.util';
|
|
import { cloneDeep, get } from 'lodash';
|
|
import { cloneDeep, get } from 'lodash';
|
|
@@ -47,6 +51,7 @@ const loading: Ref<any> = ref(false);
|
|
const store = AdminStore();
|
|
const store = AdminStore();
|
|
const dictDataStore = DictDataStore();
|
|
const dictDataStore = DictDataStore();
|
|
const loginStore = LoginStore();
|
|
const loginStore = LoginStore();
|
|
|
|
+const roleStore = RoleStore();
|
|
const $checkRes = inject('$checkRes') as Function;
|
|
const $checkRes = inject('$checkRes') as Function;
|
|
let list: Ref<any> = ref([]);
|
|
let list: Ref<any> = ref([]);
|
|
let total: Ref<number> = ref(0);
|
|
let total: Ref<number> = ref(0);
|
|
@@ -55,6 +60,7 @@ let limit = inject('$limit') as number;
|
|
let fields: Ref<any[]> = ref([
|
|
let fields: Ref<any[]> = ref([
|
|
{ label: '账号', model: 'account', isSearch: true },
|
|
{ label: '账号', model: 'account', isSearch: true },
|
|
{ label: '名称', model: 'nick_name' },
|
|
{ label: '名称', model: 'nick_name' },
|
|
|
|
+ { label: '角色', model: 'role', format: (i) => getRole(i) },
|
|
{ label: '是否是超级管理员', model: 'is_super', format: (i) => (i === '0' ? '是' : '否') },
|
|
{ label: '是否是超级管理员', model: 'is_super', format: (i) => (i === '0' ? '是' : '否') },
|
|
{ label: '是否启用', model: 'is_use', format: (i) => getDict(i) }
|
|
{ label: '是否启用', model: 'is_use', format: (i) => getDict(i) }
|
|
]);
|
|
]);
|
|
@@ -91,6 +97,7 @@ const formFieldsForUpdate = [
|
|
{ label: '名称', model: 'nick_name' },
|
|
{ label: '名称', model: 'nick_name' },
|
|
{ label: '是否启用', model: 'is_use', type: 'radio' }
|
|
{ label: '是否启用', model: 'is_use', type: 'radio' }
|
|
];
|
|
];
|
|
|
|
+const roleField = { label: '角色', model: 'role', type: 'select' };
|
|
const defaultForm = { is_use: '0' };
|
|
const defaultForm = { is_use: '0' };
|
|
const formFields: Ref<any> = ref();
|
|
const formFields: Ref<any> = ref();
|
|
|
|
|
|
@@ -135,12 +142,15 @@ const toSearch = (query) => {
|
|
};
|
|
};
|
|
const toAdd = () => {
|
|
const toAdd = () => {
|
|
formFields.value = formFieldsForCreate;
|
|
formFields.value = formFieldsForCreate;
|
|
|
|
+ formFields.value.push(roleField);
|
|
form.value = cloneDeep(defaultForm);
|
|
form.value = cloneDeep(defaultForm);
|
|
dialog.value.show = true;
|
|
dialog.value.show = true;
|
|
};
|
|
};
|
|
const toEdit = (data) => {
|
|
const toEdit = (data) => {
|
|
- formFields.value = formFieldsForUpdate;
|
|
|
|
|
|
+ formFields.value = cloneDeep(formFieldsForUpdate);
|
|
form.value = data;
|
|
form.value = data;
|
|
|
|
+ console.log(data)
|
|
|
|
+ if (data.is_super !== '0') formFields.value.push(roleField);
|
|
dialog.value.show = true;
|
|
dialog.value.show = true;
|
|
};
|
|
};
|
|
|
|
|
|
@@ -156,11 +166,20 @@ onMounted(async () => {
|
|
loading.value = false;
|
|
loading.value = false;
|
|
});
|
|
});
|
|
const isUseList: Ref<any> = ref([]);
|
|
const isUseList: Ref<any> = ref([]);
|
|
|
|
+const roleList: Ref<any> = ref([]);
|
|
const searchOther = async () => {
|
|
const searchOther = async () => {
|
|
const result: IQueryResult = await dictDataStore.query({ code: 'isUse', is_use: '0' });
|
|
const result: IQueryResult = await dictDataStore.query({ code: 'isUse', is_use: '0' });
|
|
if ($checkRes(result)) {
|
|
if ($checkRes(result)) {
|
|
isUseList.value = result.data;
|
|
isUseList.value = result.data;
|
|
}
|
|
}
|
|
|
|
+ const roleResult: IQueryResult = await roleStore.query();
|
|
|
|
+ if ($checkRes(roleResult)) {
|
|
|
|
+ roleList.value = roleResult.data;
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+const getRole = (data) => {
|
|
|
|
+ const res = roleList.value.find((f) => f.code === data);
|
|
|
|
+ return get(res, 'name');
|
|
};
|
|
};
|
|
const getDict = (data) => {
|
|
const getDict = (data) => {
|
|
const res = isUseList.value.find((f) => f.value == data);
|
|
const res = isUseList.value.find((f) => f.value == data);
|