|
@@ -1,60 +1,104 @@
|
|
|
<template>
|
|
<template>
|
|
|
<a-card class="account-page-card">
|
|
<a-card class="account-page-card">
|
|
|
- <Action :btn_text="$t('permission.account.new_user')" :btn_permission="'system:user:add'" @searchClick="searchClick"
|
|
|
|
|
- @resetClick="resetClick" @createClick="createClick" @sizeChange="tableSizeChange" @refreshClick="refreshClick">
|
|
|
|
|
|
|
+ <Action
|
|
|
|
|
+ :btn_text="$t('permission.account.new_user')"
|
|
|
|
|
+ :btn_permission="'system:user:add'"
|
|
|
|
|
+ @searchClick="searchClick"
|
|
|
|
|
+ @resetClick="resetClick"
|
|
|
|
|
+ @createClick="createClick"
|
|
|
|
|
+ @sizeChange="tableSizeChange"
|
|
|
|
|
+ @refreshClick="refreshClick"
|
|
|
|
|
+ >
|
|
|
</Action>
|
|
</Action>
|
|
|
- <DataTable :data="table_data" :columns="table_columns" row-key="userId" :size="table_size" :loading="table_loading"
|
|
|
|
|
- :pagination="pagination_props" @pageChange="handlePageChange">
|
|
|
|
|
|
|
+ <DataTable
|
|
|
|
|
+ :data="table_data"
|
|
|
|
|
+ :columns="table_columns"
|
|
|
|
|
+ row-key="userId"
|
|
|
|
|
+ :scroll="{
|
|
|
|
|
+ x: 2000
|
|
|
|
|
+ }"
|
|
|
|
|
+ :size="table_size"
|
|
|
|
|
+ :loading="table_loading"
|
|
|
|
|
+ :pagination="pagination_props"
|
|
|
|
|
+ @pageChange="handlePageChange"
|
|
|
|
|
+ >
|
|
|
<template #status="{ record }">
|
|
<template #status="{ record }">
|
|
|
<a-switch v-model="record.status" @change="statusChange(record)" checked-value="1" unchecked-value="0" />
|
|
<a-switch v-model="record.status" @change="statusChange(record)" checked-value="1" unchecked-value="0" />
|
|
|
</template>
|
|
</template>
|
|
|
<template #operationSlot="{ record }">
|
|
<template #operationSlot="{ record }">
|
|
|
<a-popconfirm :content="$t('permission.account.reset_password')" @ok="handleResetPassword(record)">
|
|
<a-popconfirm :content="$t('permission.account.reset_password')" @ok="handleResetPassword(record)">
|
|
|
- <a-button v-hasPermi="'system:role:resetPassword'" type="text">{{ $t('permission.account.reset_password')
|
|
|
|
|
- }}</a-button>
|
|
|
|
|
|
|
+ <a-button v-hasPermi="'system:role:resetPassword'" type="text">{{
|
|
|
|
|
+ $t('permission.account.reset_password')
|
|
|
|
|
+ }}</a-button>
|
|
|
</a-popconfirm>
|
|
</a-popconfirm>
|
|
|
<a-button v-hasPermi="'system:user:edit'" type="text" @click="handleEdit(record, true)">{{
|
|
<a-button v-hasPermi="'system:user:edit'" type="text" @click="handleEdit(record, true)">{{
|
|
|
- $t('permission.account.edit') }}</a-button>
|
|
|
|
|
|
|
+ $t('permission.account.edit')
|
|
|
|
|
+ }}</a-button>
|
|
|
<a-button v-hasPermi="'system:user:viewPermission'" type="text" @click="handleView(record, true)">{{
|
|
<a-button v-hasPermi="'system:user:viewPermission'" type="text" @click="handleView(record, true)">{{
|
|
|
- $t('permission.account.view_permission') }}</a-button>
|
|
|
|
|
|
|
+ $t('permission.account.view_permission')
|
|
|
|
|
+ }}</a-button>
|
|
|
<a-button v-hasPermi="'system:user:deptEdit'" type="text" @click="handleDeptConfig(record, true)">{{
|
|
<a-button v-hasPermi="'system:user:deptEdit'" type="text" @click="handleDeptConfig(record, true)">{{
|
|
|
- $t('permission.account.dept_config') }}</a-button>
|
|
|
|
|
- <a-popconfirm :content="$t('permission.account.delete')" type="warning" @ok="handleDelete(record.userId)">
|
|
|
|
|
- <a-button v-hasPermi="'system:user:delete'" type="text" status="warning">{{ $t('permission.account.delete')
|
|
|
|
|
- }}</a-button>
|
|
|
|
|
- </a-popconfirm>
|
|
|
|
|
|
|
+ $t('permission.account.dept_config')
|
|
|
|
|
+ }}</a-button>
|
|
|
|
|
+ <a-button
|
|
|
|
|
+ v-hasPermi="'system:user:delete'"
|
|
|
|
|
+ @click="handleDeleteModal(record.userId, $t('permission.delete_confirm'))"
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ status="warning"
|
|
|
|
|
+ >{{ $t('permission.account.delete') }}</a-button
|
|
|
|
|
+ >
|
|
|
</template>
|
|
</template>
|
|
|
</DataTable>
|
|
</DataTable>
|
|
|
</a-card>
|
|
</a-card>
|
|
|
|
|
|
|
|
- <Modal :visible.sync="edit_visible" @ok="modalSave" @cancel="handleEdit(null, false)"
|
|
|
|
|
- :title="is_edit_mode ? $t('permission.account.edit') : $t('permission.account.new_user')">
|
|
|
|
|
|
|
+ <OperateModal
|
|
|
|
|
+ :visible.sync="edit_visible"
|
|
|
|
|
+ @ok="modalSave"
|
|
|
|
|
+ @cancel="handleEdit(null, false)"
|
|
|
|
|
+ :title="is_edit_mode ? $t('permission.account.edit') : $t('permission.account.new_user')"
|
|
|
|
|
+ >
|
|
|
<AccountForm :edit_form="edit_form" :is_edit_mode="is_edit_mode" :role_list="role_list" />
|
|
<AccountForm :edit_form="edit_form" :is_edit_mode="is_edit_mode" :role_list="role_list" />
|
|
|
- </Modal>
|
|
|
|
|
-
|
|
|
|
|
- <ViewPermission :visible.sync="view_permission_visible" @cancel="handleView(null, false)"
|
|
|
|
|
- @close="handleView(null, false)" :menu_permissions_list="menu_permissions_list"
|
|
|
|
|
- :knowledge_permissions_list="knowledge_permissions_list" :dialog_permissions_list="dialog_permissions_list"
|
|
|
|
|
- :agent_permissions_list="agent_permissions_list" />
|
|
|
|
|
|
|
+ </OperateModal>
|
|
|
|
|
|
|
|
- <DeptConfigModal :visible.sync="dept_config_visible" :dept_list="dept_list" :dept_detail="dept_detail"
|
|
|
|
|
- @ok="handleDeptConfigSave" @cancel="handleDeptConfig(null, false)" />
|
|
|
|
|
|
|
+ <ViewPermission
|
|
|
|
|
+ :visible.sync="view_permission_visible"
|
|
|
|
|
+ @cancel="handleView(null, false)"
|
|
|
|
|
+ @close="handleView(null, false)"
|
|
|
|
|
+ :menu_permissions_list="menu_permissions_list"
|
|
|
|
|
+ :knowledge_permissions_list="knowledge_permissions_list"
|
|
|
|
|
+ :dialog_permissions_list="dialog_permissions_list"
|
|
|
|
|
+ :agent_permissions_list="agent_permissions_list"
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
|
|
+ <DeptConfigModal
|
|
|
|
|
+ :visible.sync="dept_config_visible"
|
|
|
|
|
+ :dept_list="dept_list"
|
|
|
|
|
+ :dept_detail="dept_detail"
|
|
|
|
|
+ @ok="handleDeptConfigSave"
|
|
|
|
|
+ @cancel="handleDeptConfig(null, false)"
|
|
|
|
|
+ />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
import { ref, reactive, onMounted } from 'vue';
|
|
import { ref, reactive, onMounted } from 'vue';
|
|
|
-import { Message } from '@arco-design/web-vue';
|
|
|
|
|
|
|
+import { Message, Modal } from '@arco-design/web-vue';
|
|
|
import DataTable from '../../../views/permission/DataTable.vue';
|
|
import DataTable from '../../../views/permission/DataTable.vue';
|
|
|
import Action from '../../../views/permission/Action.vue';
|
|
import Action from '../../../views/permission/Action.vue';
|
|
|
-import Modal from '../Modal.vue';
|
|
|
|
|
|
|
+import OperateModal from '../../../views/permission/Modal.vue';
|
|
|
import AccountForm from './AccountForm.vue';
|
|
import AccountForm from './AccountForm.vue';
|
|
|
import ViewPermission from './ViewPermission.vue';
|
|
import ViewPermission from './ViewPermission.vue';
|
|
|
import DeptConfigModal from './DeptConfigModal.vue';
|
|
import DeptConfigModal from './DeptConfigModal.vue';
|
|
|
import { hasPermission } from '../../../utils/permission';
|
|
import { hasPermission } from '../../../utils/permission';
|
|
|
import {
|
|
import {
|
|
|
- QueryUserList, QueryUserDeptDetail, UpdateUserDept, AddUser,
|
|
|
|
|
- UpdateUser, QueryUserPermission, UserStatusSwitch, ResetPassword, DeleteUser
|
|
|
|
|
|
|
+ QueryUserList,
|
|
|
|
|
+ QueryUserDeptDetail,
|
|
|
|
|
+ UpdateUserDept,
|
|
|
|
|
+ AddUser,
|
|
|
|
|
+ UpdateUser,
|
|
|
|
|
+ QueryUserPermission,
|
|
|
|
|
+ UserStatusSwitch,
|
|
|
|
|
+ ResetPassword,
|
|
|
|
|
+ DeleteUser
|
|
|
} from '../../../apis/permission/account';
|
|
} from '../../../apis/permission/account';
|
|
|
import { QueryAllRoleList, QueryDeptTree } from '../../../apis/permission/common';
|
|
import { QueryAllRoleList, QueryDeptTree } from '../../../apis/permission/common';
|
|
|
|
|
|
|
@@ -62,18 +106,35 @@ const keywords = ref('');
|
|
|
// 表格相关
|
|
// 表格相关
|
|
|
const table_data = ref([]);
|
|
const table_data = ref([]);
|
|
|
const table_columns = ref([
|
|
const table_columns = ref([
|
|
|
- { title: '序号', width: 80, slotName: 'index' },
|
|
|
|
|
|
|
+ { title: '序号', width: 80, fixed: 'left', slotName: 'index' },
|
|
|
{ title: '用户名', dataIndex: 'userName', width: 150, titleSlotName: 'userName' },
|
|
{ title: '用户名', dataIndex: 'userName', width: 150, titleSlotName: 'userName' },
|
|
|
- { title: '角色', dataIndex: 'roleName', width: 400, titleSlotName: 'roleName' },
|
|
|
|
|
- { title: '所属部门', dataIndex: 'deptName', width: 600, titleSlotName: 'deptName' },
|
|
|
|
|
|
|
+ { title: '姓名', dataIndex: 'loginName', titleSlotName: 'loginName' },
|
|
|
|
|
+ {
|
|
|
|
|
+ title: '角色',
|
|
|
|
|
+ dataIndex: 'roleName',
|
|
|
|
|
+ width: 300,
|
|
|
|
|
+ ellipsis: true,
|
|
|
|
|
+ tooltip: { position: 'top' },
|
|
|
|
|
+ titleSlotName: 'roleName'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ title: '所属部门',
|
|
|
|
|
+ dataIndex: 'deptName',
|
|
|
|
|
+ width: 400,
|
|
|
|
|
+ ellipsis: true,
|
|
|
|
|
+ tooltip: { position: 'top' },
|
|
|
|
|
+ titleSlotName: 'deptName'
|
|
|
|
|
+ },
|
|
|
|
|
+ { title: '手机号', dataIndex: 'phone', width: 150, titleSlotName: 'phone' },
|
|
|
|
|
+ { title: '邮箱', dataIndex: 'email', width: 150, titleSlotName: 'email' },
|
|
|
{ title: '状态', dataIndex: 'status', width: 100, slotName: 'status' },
|
|
{ title: '状态', dataIndex: 'status', width: 100, slotName: 'status' },
|
|
|
- { title: '操作', dataIndex: 'operation', fixed: 'right', slotName: 'operationSlot' },
|
|
|
|
|
|
|
+ { title: '操作', dataIndex: 'operation', width: 500, fixed: 'right', slotName: 'operationSlot' }
|
|
|
]);
|
|
]);
|
|
|
const pagination_props = ref({
|
|
const pagination_props = ref({
|
|
|
total: 10,
|
|
total: 10,
|
|
|
current: 1,
|
|
current: 1,
|
|
|
- pageSize: 12,
|
|
|
|
|
-})
|
|
|
|
|
|
|
+ pageSize: 12
|
|
|
|
|
+});
|
|
|
const table_size = ref('medium');
|
|
const table_size = ref('medium');
|
|
|
const table_loading = ref(false);
|
|
const table_loading = ref(false);
|
|
|
|
|
|
|
@@ -91,10 +152,10 @@ const edit_form = reactive({
|
|
|
const role_list = ref([]);
|
|
const role_list = ref([]);
|
|
|
// 查看权限相关
|
|
// 查看权限相关
|
|
|
const view_permission_visible = ref(false);
|
|
const view_permission_visible = ref(false);
|
|
|
-const menu_permissions_list = ref([])
|
|
|
|
|
-const knowledge_permissions_list = ref([])
|
|
|
|
|
-const dialog_permissions_list = ref([])
|
|
|
|
|
-const agent_permissions_list = ref([])
|
|
|
|
|
|
|
+const menu_permissions_list = ref([]);
|
|
|
|
|
+const knowledge_permissions_list = ref([]);
|
|
|
|
|
+const dialog_permissions_list = ref([]);
|
|
|
|
|
+const agent_permissions_list = ref([]);
|
|
|
|
|
|
|
|
// 部门配置相关
|
|
// 部门配置相关
|
|
|
const dept_config_visible = ref(false);
|
|
const dept_config_visible = ref(false);
|
|
@@ -105,9 +166,9 @@ const getUserList = async () => {
|
|
|
const params = {
|
|
const params = {
|
|
|
keyword: keywords.value,
|
|
keyword: keywords.value,
|
|
|
current: pagination_props.value.current,
|
|
current: pagination_props.value.current,
|
|
|
- pageSize: pagination_props.value.pageSize,
|
|
|
|
|
|
|
+ pageSize: pagination_props.value.pageSize
|
|
|
};
|
|
};
|
|
|
- table_loading.value = true
|
|
|
|
|
|
|
+ table_loading.value = true;
|
|
|
const { code, data } = await QueryUserList(params);
|
|
const { code, data } = await QueryUserList(params);
|
|
|
|
|
|
|
|
if (code === 200) {
|
|
if (code === 200) {
|
|
@@ -130,24 +191,23 @@ const getUserList = async () => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
pagination_props.value.total = data.total;
|
|
pagination_props.value.total = data.total;
|
|
|
table_data.value = data.rows;
|
|
table_data.value = data.rows;
|
|
|
|
|
|
|
|
- table_loading.value = false
|
|
|
|
|
|
|
+ table_loading.value = false;
|
|
|
} else {
|
|
} else {
|
|
|
- table_loading.value = false
|
|
|
|
|
|
|
+ table_loading.value = false;
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
const searchClick = (value) => {
|
|
const searchClick = (value) => {
|
|
|
keywords.value = value;
|
|
keywords.value = value;
|
|
|
getUserList();
|
|
getUserList();
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
const resetClick = () => {
|
|
const resetClick = () => {
|
|
|
keywords.value = '';
|
|
keywords.value = '';
|
|
|
getUserList();
|
|
getUserList();
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
const createClick = () => {
|
|
const createClick = () => {
|
|
|
edit_form.userId = '';
|
|
edit_form.userId = '';
|
|
|
edit_form.userName = '';
|
|
edit_form.userName = '';
|
|
@@ -158,11 +218,11 @@ const createClick = () => {
|
|
|
edit_form.roles = [];
|
|
edit_form.roles = [];
|
|
|
is_edit_mode.value = false;
|
|
is_edit_mode.value = false;
|
|
|
|
|
|
|
|
- handleEdit(null, true)
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ handleEdit(null, true);
|
|
|
|
|
+};
|
|
|
const refreshClick = () => {
|
|
const refreshClick = () => {
|
|
|
- console.log('刷新')
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ console.log('刷新');
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
// 切换页码
|
|
// 切换页码
|
|
|
const handlePageChange = (current) => {
|
|
const handlePageChange = (current) => {
|
|
@@ -170,32 +230,25 @@ const handlePageChange = (current) => {
|
|
|
getUserList();
|
|
getUserList();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-// TODO功能 状态切换拦截
|
|
|
|
|
-const beforeStatusChange = async () => {
|
|
|
|
|
- await new Promise((resolve, reject) => setTimeout(() => {
|
|
|
|
|
- resolve()
|
|
|
|
|
- }, 1000))
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
// 用户状态切换
|
|
// 用户状态切换
|
|
|
const statusChange = async (record) => {
|
|
const statusChange = async (record) => {
|
|
|
if (record?.dept) {
|
|
if (record?.dept) {
|
|
|
const params = {
|
|
const params = {
|
|
|
userId: record.userId,
|
|
userId: record.userId,
|
|
|
- status: record.status,
|
|
|
|
|
|
|
+ status: record.status
|
|
|
};
|
|
};
|
|
|
- const { code } = await UserStatusSwitch(params)
|
|
|
|
|
|
|
+ const { code } = await UserStatusSwitch(params);
|
|
|
if (code === 200) {
|
|
if (code === 200) {
|
|
|
Message.success({
|
|
Message.success({
|
|
|
title: '成功',
|
|
title: '成功',
|
|
|
- content: '状态切换成功.',
|
|
|
|
|
|
|
+ content: '状态切换成功.'
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
record.status = '0';
|
|
record.status = '0';
|
|
|
Message.warning({
|
|
Message.warning({
|
|
|
title: '提示',
|
|
title: '提示',
|
|
|
- content: '如想启用用户,需进行部门配置.',
|
|
|
|
|
|
|
+ content: '如想启用用户,需进行部门配置.'
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
@@ -205,13 +258,12 @@ const handleResetPassword = async (record) => {
|
|
|
if (code === 200) {
|
|
if (code === 200) {
|
|
|
Message.success({
|
|
Message.success({
|
|
|
title: '重置密码',
|
|
title: '重置密码',
|
|
|
- content: '该用户密码重置为000000',
|
|
|
|
|
|
|
+ content: '该用户密码重置为000000'
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
const handleEdit = async (record, visible) => {
|
|
const handleEdit = async (record, visible) => {
|
|
|
-
|
|
|
|
|
if (visible) {
|
|
if (visible) {
|
|
|
const { code, data } = await QueryAllRoleList();
|
|
const { code, data } = await QueryAllRoleList();
|
|
|
if (code === 200) {
|
|
if (code === 200) {
|
|
@@ -226,13 +278,13 @@ const handleEdit = async (record, visible) => {
|
|
|
edit_form.phone = record.phone;
|
|
edit_form.phone = record.phone;
|
|
|
edit_form.email = record.email;
|
|
edit_form.email = record.email;
|
|
|
edit_form.pwd = record.pwd;
|
|
edit_form.pwd = record.pwd;
|
|
|
- edit_form.roles = record.roles.map(role => role.roleId);
|
|
|
|
|
|
|
+ edit_form.roles = record.roles.map((role) => role.roleId);
|
|
|
|
|
|
|
|
is_edit_mode.value = true;
|
|
is_edit_mode.value = true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
edit_visible.value = visible;
|
|
edit_visible.value = visible;
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
// 查看权限
|
|
// 查看权限
|
|
|
const handleView = async (record, visible) => {
|
|
const handleView = async (record, visible) => {
|
|
|
if (record) {
|
|
if (record) {
|
|
@@ -242,58 +294,60 @@ const handleView = async (record, visible) => {
|
|
|
const { code, data } = await QueryUserPermission(record.userId);
|
|
const { code, data } = await QueryUserPermission(record.userId);
|
|
|
if (code === 200) {
|
|
if (code === 200) {
|
|
|
const { knowledge, menus, dialog } = data;
|
|
const { knowledge, menus, dialog } = data;
|
|
|
- if (dialog && dialog.length > 0) dialog_permissions_list.value = dialog
|
|
|
|
|
- if (knowledge && knowledge.length > 0) knowledge_permissions_list.value = knowledge
|
|
|
|
|
- if (menus && menus.length > 0) menu_permissions_list.value = getMenuTitles(menus)
|
|
|
|
|
-
|
|
|
|
|
|
|
+ if (dialog && dialog.length > 0) dialog_permissions_list.value = dialog;
|
|
|
|
|
+ if (knowledge && knowledge.length > 0) knowledge_permissions_list.value = knowledge;
|
|
|
|
|
+ if (menus && menus.length > 0) menu_permissions_list.value = getMenuTitles(menus);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
view_permission_visible.value = visible;
|
|
view_permission_visible.value = visible;
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
// 部门配置
|
|
// 部门配置
|
|
|
const handleDeptConfig = async (record, visible) => {
|
|
const handleDeptConfig = async (record, visible) => {
|
|
|
if (record) {
|
|
if (record) {
|
|
|
edit_form.userId = record.userId;
|
|
edit_form.userId = record.userId;
|
|
|
- const { code, data: { rows } } = await QueryUserDeptDetail(record.userId);
|
|
|
|
|
|
|
+ const {
|
|
|
|
|
+ code,
|
|
|
|
|
+ data: { rows }
|
|
|
|
|
+ } = await QueryUserDeptDetail(record.userId);
|
|
|
if (code === 200) {
|
|
if (code === 200) {
|
|
|
dept_detail.value = rows;
|
|
dept_detail.value = rows;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
dept_config_visible.value = visible;
|
|
dept_config_visible.value = visible;
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
const handleDeptConfigSave = async (checked_keys) => {
|
|
const handleDeptConfigSave = async (checked_keys) => {
|
|
|
dept_config_visible.value = false;
|
|
dept_config_visible.value = false;
|
|
|
const data = {
|
|
const data = {
|
|
|
userId: edit_form.userId,
|
|
userId: edit_form.userId,
|
|
|
- depts: checked_keys,
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ depts: checked_keys
|
|
|
|
|
+ };
|
|
|
const { code } = await UpdateUserDept(data);
|
|
const { code } = await UpdateUserDept(data);
|
|
|
if (code === 200) {
|
|
if (code === 200) {
|
|
|
Message.success({
|
|
Message.success({
|
|
|
title: '部门配置',
|
|
title: '部门配置',
|
|
|
- content: '部门配置成功',
|
|
|
|
|
|
|
+ content: '部门配置成功'
|
|
|
});
|
|
});
|
|
|
getUserList();
|
|
getUserList();
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
// 删除用户
|
|
// 删除用户
|
|
|
const handleDelete = async (userId) => {
|
|
const handleDelete = async (userId) => {
|
|
|
const { code } = await DeleteUser(userId);
|
|
const { code } = await DeleteUser(userId);
|
|
|
if (code === 200) {
|
|
if (code === 200) {
|
|
|
Message.success({
|
|
Message.success({
|
|
|
title: '删除用户',
|
|
title: '删除用户',
|
|
|
- content: '删除成功',
|
|
|
|
|
|
|
+ content: '删除成功'
|
|
|
});
|
|
});
|
|
|
getUserList();
|
|
getUserList();
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
const modalSave = async () => {
|
|
const modalSave = async () => {
|
|
|
edit_visible.value = false;
|
|
edit_visible.value = false;
|
|
|
const data = {
|
|
const data = {
|
|
|
userId: is_edit_mode.value ? edit_form.userId : undefined,
|
|
userId: is_edit_mode.value ? edit_form.userId : undefined,
|
|
|
- ...edit_form,
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ...edit_form
|
|
|
|
|
+ };
|
|
|
const apiCall = is_edit_mode.value ? UpdateUser : AddUser;
|
|
const apiCall = is_edit_mode.value ? UpdateUser : AddUser;
|
|
|
const { code } = await apiCall(data);
|
|
const { code } = await apiCall(data);
|
|
|
|
|
|
|
@@ -301,17 +355,17 @@ const modalSave = async () => {
|
|
|
const action = is_edit_mode.value ? '编辑' : '新增';
|
|
const action = is_edit_mode.value ? '编辑' : '新增';
|
|
|
Message.success({
|
|
Message.success({
|
|
|
title: `${action}用户`,
|
|
title: `${action}用户`,
|
|
|
- content: `${action}成功`,
|
|
|
|
|
|
|
+ content: `${action}成功`
|
|
|
});
|
|
});
|
|
|
getUserList();
|
|
getUserList();
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
const tableSizeChange = (size) => {
|
|
const tableSizeChange = (size) => {
|
|
|
table_size.value = size;
|
|
table_size.value = size;
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
// 铺开路由菜单title
|
|
// 铺开路由菜单title
|
|
|
const getMenuTitles = (data, result = []) => {
|
|
const getMenuTitles = (data, result = []) => {
|
|
|
- data.forEach(item => {
|
|
|
|
|
|
|
+ data.forEach((item) => {
|
|
|
// 检查item是否有id和name属性
|
|
// 检查item是否有id和name属性
|
|
|
if (item.id && item.meta.title) {
|
|
if (item.id && item.meta.title) {
|
|
|
result.push({ id: item.id, name: item.meta.title });
|
|
result.push({ id: item.id, name: item.meta.title });
|
|
@@ -322,22 +376,41 @@ const getMenuTitles = (data, result = []) => {
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
return result;
|
|
return result;
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
const getDeptTree = async () => {
|
|
const getDeptTree = async () => {
|
|
|
- const { code, data: { rows } } = await QueryDeptTree();
|
|
|
|
|
|
|
+ const {
|
|
|
|
|
+ code,
|
|
|
|
|
+ data: { rows }
|
|
|
|
|
+ } = await QueryDeptTree();
|
|
|
if (code == 200) {
|
|
if (code == 200) {
|
|
|
dept_list.value = rows;
|
|
dept_list.value = rows;
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const handleDeleteModal = (id, title) => {
|
|
|
|
|
+ Modal.warning({
|
|
|
|
|
+ title,
|
|
|
|
|
+ okText: '确定',
|
|
|
|
|
+ cancelText: '取消',
|
|
|
|
|
+ hideCancel: false,
|
|
|
|
|
+ onOk() {
|
|
|
|
|
+ handleDelete(id);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
if (hasPermission('system:user:list')) {
|
|
if (hasPermission('system:user:list')) {
|
|
|
- getUserList()
|
|
|
|
|
- getDeptTree()
|
|
|
|
|
|
|
+ getUserList();
|
|
|
|
|
+ getDeptTree();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Message.error({
|
|
|
|
|
+ title: '权限不足',
|
|
|
|
|
+ content: '您没有权限查看用户列表'
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-})
|
|
|
|
|
|
|
+});
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="css" scoped>
|
|
<style lang="css" scoped>
|