完善部门管理
This commit is contained in:
@@ -31,6 +31,14 @@ export function userlist(data: any) {
|
||||
})
|
||||
}
|
||||
|
||||
export function userselect(data: any) {
|
||||
return request({
|
||||
url: '/user/list',
|
||||
method: 'get',
|
||||
params: data,
|
||||
})
|
||||
}
|
||||
|
||||
export function userbyid(id: string | number) {
|
||||
return request({
|
||||
url: `/user/getById/${id}`,
|
||||
|
||||
@@ -88,10 +88,10 @@
|
||||
:formatter="formatCell"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="leaderName"
|
||||
prop="leaderId"
|
||||
label="部门领导"
|
||||
min-width="150"
|
||||
:formatter="formatCell"
|
||||
:formatter="formatLeaderCell"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="remark"
|
||||
@@ -150,7 +150,7 @@
|
||||
:data="treeOptions"
|
||||
:props="{ value: 'id', label: 'deptName', children: 'children' }"
|
||||
check-strictly
|
||||
placeholder="请选择上级部门(可选)"
|
||||
placeholder="请选择上级部门"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
/>
|
||||
@@ -160,13 +160,13 @@
|
||||
v-model="form.leaderId"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择部门领导(可选)"
|
||||
placeholder="请选择部门领导"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.realName || item.nickName || item.username || item.name"
|
||||
:label="item.nicke || item.realName || item.nickName || item.username || item.name || ''"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
@@ -206,6 +206,7 @@ import {
|
||||
departmentdel,
|
||||
departtree,
|
||||
} from '@/api/department'
|
||||
import { userselect } from '@/api/user'
|
||||
|
||||
interface DeptItem {
|
||||
id?: number | string
|
||||
@@ -227,6 +228,7 @@ interface UserItem {
|
||||
username?: string
|
||||
realName?: string
|
||||
nickName?: string
|
||||
nicke?: string
|
||||
name?: string
|
||||
}
|
||||
|
||||
@@ -285,6 +287,18 @@ const formatCell = (_row: any, _column: any, value: any) => {
|
||||
return value === undefined || value === null || value === '' ? '暂无' : value
|
||||
}
|
||||
|
||||
// 根据leaderId获取用户的nicke字段
|
||||
const getLeaderNicke = (leaderId: number | string | null | undefined): string => {
|
||||
if (!leaderId) return '暂无'
|
||||
const user = userOptions.value.find(u => u.id == leaderId)
|
||||
return user?.nicke || user?.realName || user?.nickName || user?.username || user?.name || '暂无'
|
||||
}
|
||||
|
||||
// 部门领导列的formatter
|
||||
const formatLeaderCell = (_row: any, _column: any, _value: any) => {
|
||||
return getLeaderNicke(_row.leaderId)
|
||||
}
|
||||
|
||||
// 构建树形选择器的选项
|
||||
const treeOptions = computed(() => {
|
||||
const buildOptions = (nodes: DeptItem[], excludeId?: number | string): any[] => {
|
||||
@@ -347,15 +361,14 @@ const handleTreeReset = () => {
|
||||
// 加载用户列表(用于选择部门领导)
|
||||
const loadUsers = async () => {
|
||||
try {
|
||||
// 这里需要根据实际API调整,暂时使用空数组
|
||||
// 如果有用户列表API,可以在这里调用
|
||||
// const res: any = await userlist({ pageNum: 1, pageSize: 9999 })
|
||||
// const data = res?.data ?? res ?? {}
|
||||
// const records = data.records || data.list || data.rows || data.items || []
|
||||
// userOptions.value = Array.isArray(records) ? records : []
|
||||
userOptions.value = []
|
||||
const res: any = await userselect({})
|
||||
// 兼容多种返回格式:res.data 或 res 本身
|
||||
const data = Array.isArray(res?.data) ? res.data : Array.isArray(res) ? res : []
|
||||
userOptions.value = data
|
||||
} catch (error) {
|
||||
console.error('load user list error', error)
|
||||
ElMessage.error('加载用户列表失败')
|
||||
userOptions.value = []
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,6 +376,11 @@ const loadUsers = async () => {
|
||||
const loadList = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
// 确保用户列表已加载(用于显示部门领导名称)
|
||||
if (userOptions.value.length === 0) {
|
||||
await loadUsers()
|
||||
}
|
||||
|
||||
// 构建查询参数,过滤空字符串
|
||||
const params: any = {
|
||||
pageNum: pagination.pageNum,
|
||||
@@ -652,3 +670,4 @@ onMounted(() => {
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<el-form-item label="用户名">
|
||||
<el-input
|
||||
v-model="queryForm.userName"
|
||||
placeholder="输入用户名(模糊查询)"
|
||||
placeholder="输入用户名"
|
||||
clearable
|
||||
style="width: 200px"
|
||||
/>
|
||||
@@ -172,7 +172,7 @@
|
||||
:data="deptTreeOptions"
|
||||
:props="{ value: 'id', label: 'deptName', children: 'children' }"
|
||||
check-strictly
|
||||
placeholder="请选择部门(可选)"
|
||||
placeholder="请选择部门"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
/>
|
||||
@@ -182,7 +182,7 @@
|
||||
v-model="form.posId"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择职位(可选)"
|
||||
placeholder="请选择职位"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
|
||||
Reference in New Issue
Block a user