潘的第一次 commit
This commit is contained in:
91
erp-frontend-vue/src/api/system/dept.ts
Normal file
91
erp-frontend-vue/src/api/system/dept.ts
Normal file
@@ -0,0 +1,91 @@
|
||||
import request from '../request'
|
||||
|
||||
export interface Dept {
|
||||
deptId?: number
|
||||
parentId?: number
|
||||
ancestors?: string
|
||||
deptCode?: string
|
||||
deptName?: string
|
||||
orderNum?: number
|
||||
leader?: string
|
||||
phone?: string
|
||||
email?: string
|
||||
status?: string
|
||||
delFlag?: string
|
||||
createBy?: string
|
||||
createTime?: string
|
||||
updateBy?: string
|
||||
updateTime?: string
|
||||
children?: Dept[]
|
||||
}
|
||||
|
||||
export interface DeptQuery {
|
||||
deptName?: string
|
||||
status?: string
|
||||
}
|
||||
|
||||
const BASE = '/system/dept'
|
||||
|
||||
/** 查询部门列表 */
|
||||
export function listDept(query?: DeptQuery): Promise<{ data: Dept[] }> {
|
||||
return request.get(`${BASE}/list`, { params: query })
|
||||
}
|
||||
|
||||
/** 查询部门列表(排除节点) */
|
||||
export function listDeptExcludeChild(deptId: number): Promise<{ data: Dept[] }> {
|
||||
return request.get(`${BASE}/list/exclude/${deptId}`)
|
||||
}
|
||||
|
||||
/** 查询部门详细 */
|
||||
export function getDept(deptId: number): Promise<{ data: Dept }> {
|
||||
return request.get(`${BASE}/${deptId}`)
|
||||
}
|
||||
|
||||
/** 查询部门下拉树结构 */
|
||||
export function getDeptTreeselect(): Promise<{ data: any[] }> {
|
||||
return request.get(`${BASE}/treeselect`)
|
||||
}
|
||||
|
||||
/** 根据角色ID查询部门树结构 */
|
||||
export function getRoleDeptTreeselect(roleId: number): Promise<{ data: any }> {
|
||||
return request.get(`${BASE}/roleDeptTreeselect/${roleId}`)
|
||||
}
|
||||
|
||||
/** 新增部门 */
|
||||
export function addDept(data: Partial<Dept>): Promise<void> {
|
||||
return request.post(BASE, data)
|
||||
}
|
||||
|
||||
/** 修改部门 */
|
||||
export function updateDept(data: Partial<Dept>): Promise<void> {
|
||||
return request.put(BASE, data)
|
||||
}
|
||||
|
||||
/** 删除部门 */
|
||||
export function delDept(deptId: number): Promise<void> {
|
||||
return request.delete(`${BASE}/${deptId}`)
|
||||
}
|
||||
|
||||
/** 构建部门树 */
|
||||
export function handleTree(data: Dept[], idField = 'deptId', parentField = 'parentId'): Dept[] {
|
||||
const map = new Map<number, Dept>()
|
||||
const result: Dept[] = []
|
||||
|
||||
data.forEach(item => {
|
||||
map.set(item[idField as keyof Dept] as number, { ...item, children: [] })
|
||||
})
|
||||
|
||||
data.forEach(item => {
|
||||
const current = map.get(item[idField as keyof Dept] as number)!
|
||||
const parentId = item[parentField as keyof Dept] as number
|
||||
if (parentId && map.has(parentId)) {
|
||||
const parent = map.get(parentId)!
|
||||
parent.children = parent.children || []
|
||||
parent.children.push(current)
|
||||
} else {
|
||||
result.push(current)
|
||||
}
|
||||
})
|
||||
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user