|
|
|
|
@ -48,6 +48,8 @@
|
|
|
|
|
>
|
|
|
|
|
<el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
|
|
|
|
|
<el-table-column prop="deptCategory" align="center" label="类别编码" width="200"></el-table-column>
|
|
|
|
|
<el-table-column prop="leaderName" align="center" label="部门负责人" width="100"></el-table-column>
|
|
|
|
|
<el-table-column prop="vicePresidentName" align="center" label="分管副总" width="100"></el-table-column>
|
|
|
|
|
<el-table-column prop="orderNum" align="center" label="排序" width="200"></el-table-column>
|
|
|
|
|
<el-table-column prop="status" align="center" label="状态" width="100">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
@ -75,8 +77,8 @@
|
|
|
|
|
</el-table>
|
|
|
|
|
</el-card>
|
|
|
|
|
|
|
|
|
|
<el-dialog v-model="dialog.visible" :title="dialog.title" destroy-on-close append-to-body width="600px">
|
|
|
|
|
<el-form ref="deptFormRef" :model="form" :rules="rules" label-width="80px">
|
|
|
|
|
<el-dialog v-model="dialog.visible" :title="dialog.title" destroy-on-close append-to-body width="700px">
|
|
|
|
|
<el-form ref="deptFormRef" :model="form" :rules="rules" label-width="100px">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col v-if="form.parentId !== 0" :span="24">
|
|
|
|
|
<el-form-item label="上级部门" prop="parentId">
|
|
|
|
|
@ -106,12 +108,19 @@
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="负责人" prop="leader">
|
|
|
|
|
<el-select v-model="form.leader" placeholder="请选择负责人">
|
|
|
|
|
<el-form-item label="部门负责人" prop="leader">
|
|
|
|
|
<el-select v-model="form.leader" placeholder="请选择部门负责人">
|
|
|
|
|
<el-option v-for="item in deptUserList" :key="item.userId" :label="item.nickName" :value="item.userId" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="分管副总" prop="vicePresident">
|
|
|
|
|
<el-select v-model="form.vicePresident" placeholder="请选择分管副总" filterable>
|
|
|
|
|
<el-option v-for="item in allUserList" :key="item.userId" :label="item.nickName" :value="item.userId" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="联系电话" prop="phone">
|
|
|
|
|
<el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" />
|
|
|
|
|
@ -145,7 +154,7 @@
|
|
|
|
|
import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from '@/api/system/dept';
|
|
|
|
|
import { DeptForm, DeptQuery, DeptVO } from '@/api/system/dept/types';
|
|
|
|
|
import { UserVO } from '@/api/system/user/types';
|
|
|
|
|
import { listUserByDeptId } from '@/api/system/user';
|
|
|
|
|
import { listUserByDeptId, listUser } from '@/api/system/user';
|
|
|
|
|
|
|
|
|
|
interface DeptOptionsType {
|
|
|
|
|
deptId: number | string;
|
|
|
|
|
@ -162,6 +171,7 @@ const showSearch = ref(true);
|
|
|
|
|
const deptOptions = ref<DeptOptionsType[]>([]);
|
|
|
|
|
const isExpandAll = ref(true);
|
|
|
|
|
const deptUserList = ref<UserVO[]>([]);
|
|
|
|
|
const allUserList = ref<UserVO[]>([]);
|
|
|
|
|
|
|
|
|
|
const dialog = reactive<DialogOption>({
|
|
|
|
|
visible: false,
|
|
|
|
|
@ -179,6 +189,7 @@ const initFormData: DeptForm = {
|
|
|
|
|
deptCategory: undefined,
|
|
|
|
|
orderNum: 0,
|
|
|
|
|
leader: undefined,
|
|
|
|
|
vicePresident: undefined,
|
|
|
|
|
phone: undefined,
|
|
|
|
|
email: undefined,
|
|
|
|
|
status: '0'
|
|
|
|
|
@ -223,6 +234,12 @@ async function getDeptAllUser(deptId: any) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 查询所有用户 */
|
|
|
|
|
async function getAllUser() {
|
|
|
|
|
const res = await listUserByDeptId(100);
|
|
|
|
|
allUserList.value = res.data || [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 取消按钮 */
|
|
|
|
|
const cancel = () => {
|
|
|
|
|
reset();
|
|
|
|
|
@ -266,7 +283,11 @@ const handleAdd = async (row?: DeptVO) => {
|
|
|
|
|
deptOptions.value = data;
|
|
|
|
|
if (row && row.deptId) {
|
|
|
|
|
form.value.parentId = row?.deptId;
|
|
|
|
|
// 加载父部门的用户列表,用于选择部门负责人
|
|
|
|
|
getDeptAllUser(row.deptId);
|
|
|
|
|
}
|
|
|
|
|
// 加载所有用户列表,用于选择分管副总
|
|
|
|
|
getAllUser();
|
|
|
|
|
dialog.visible = true;
|
|
|
|
|
dialog.title = '添加部门';
|
|
|
|
|
}
|
|
|
|
|
@ -277,6 +298,8 @@ const handleUpdate = async (row: DeptVO) => {
|
|
|
|
|
reset();
|
|
|
|
|
//查询当前部门所有用户
|
|
|
|
|
getDeptAllUser(row.deptId);
|
|
|
|
|
// 加载所有用户列表,用于选择分管副总
|
|
|
|
|
getAllUser();
|
|
|
|
|
const res = await getDept(row.deptId);
|
|
|
|
|
form.value = res.data;
|
|
|
|
|
const response = await listDeptExcludeChild(row.deptId);
|
|
|
|
|
|