编辑部门功能

This commit is contained in:
jiutianzhiyu 2021-03-29 20:54:33 +08:00
parent 492cb1b30b
commit e58e66b676
4 changed files with 72 additions and 8 deletions

View File

@ -7,6 +7,13 @@ export function getDepartments() {
})
}
// 获取部门详情
export function getDepartDetail(id) {
return request({
url: `/company/department/${id}`
})
}
// 删除部门
export function delDepartments(id) {
return request({
@ -23,3 +30,12 @@ export function addDepartments(data) {
data
})
}
// 编辑部门
export function updateDepartments(data) {
return request({
url: `/company/department/${data.id}`,
method: 'put',
data
})
}

View File

@ -1,5 +1,5 @@
<template>
<el-dialog title="新增部门" :visible="showDialog" @close="btnCancel">
<el-dialog :title="title" :visible="showDialog" @close="btnCancel">
<!-- 表单组件 el-form label-width设置label的宽度 -->
<!-- 匿名插槽 -->
<el-form ref="departForm" label-width="120px" :model="formData" :rules="rules">
@ -31,7 +31,7 @@
</template>
<script>
import { getDepartments, addDepartments } from '@/api/departments'
import { getDepartments, addDepartments, getDepartDetail, updateDepartments } from '@/api/departments'
import { getEmployeeSimple } from '@/api/employees'
export default {
props: {
@ -48,13 +48,27 @@ export default {
const checkNameRepeat = async(rule, value, callback) => {
// callback
// callback(new Error(''))
let isRepeat
const { depts } = await getDepartments()
const isRepeat = depts.filter(item => item.pid === this.treeNode.id).some(item => item.name === value)
//
if (this.formData.id) {
isRepeat = depts.filter(item => item.id !== this.treeNode.id && item.pid === this.treeNode.pid).some(item => item.name === value)
} else {
//
isRepeat = depts.filter(item => item.pid === this.treeNode.id).some(item => item.name === value)
}
isRepeat ? callback(new Error(`同级部门下已经有${value}部门了`)) : callback()
}
const checkCodeRepeat = async(rule, value, callback) => {
let isRepeat
const { depts } = await getDepartments()
const isRepeat = depts.some(item => item.code === value && value) // ,
if (this.formData.id) {
//
isRepeat = depts.some(item => item.id !== this.treeNode.id && item.code === value && value)
} else {
//
isRepeat = depts.some(item => item.code === value && value) // ,
}
isRepeat ? callback(new Error(`已经有部门使用了${value}编码`)) : callback()
}
return {
@ -91,23 +105,34 @@ export default {
}
},
computed: {
title() {
return this.formData.id ? '编辑部门' : '新增部门'
}
},
methods: {
async getEmployeeSimple() {
const res = await getEmployeeSimple()
console.log(res)
// console.log(res)
this.simpleUserInfo = [...res]
},
//
async btnOK() {
try {
await this.$refs.departForm.validate()
//
if (this.formData.id) {
await updateDepartments(this.formData)
} else {
//
// pid
await addDepartments({ ...this.formData, pid: this.treeNode.id })
}
//
this.$emit('addDepartOK')
// props: this.$emit(update: props, ), .sync
this.$emit('update:showDialog', false)
this.$message.success('添加成功')
this.$message.success(this.formData.id ? '编辑成功' : '添加成功')
} catch (error) {
console.log('捕获错误')
console.log(error)
@ -115,10 +140,21 @@ export default {
},
//
btnCancel() {
// ,
this.formData = {
name: '',
code: '',
manager: '',
introduce: ''
}
// resetFields,
this.$refs.departForm.resetFields()
//
this.$emit('update:showDialog', false)
},
//
async getDepartDetail(id) {
this.formData = await getDepartDetail(id)
}
}
}

View File

@ -47,6 +47,7 @@ export default {
this.$emit('addDeparts', this.treeNode)
break
case 'edit':
this.$emit('editDeparts', this.treeNode)
break
case 'del':
await delDepartments(this.treeNode.id)

View File

@ -21,11 +21,13 @@
:tree-node="data"
@delDeparts="getDeparts"
@addDeparts="addDeparts"
@editDeparts="editDeparts"
/><!-- -->
</el-tree>
</el-card>
<!-- 新增部门弹窗 -->
<add-depart
ref="addForm"
:show-dialog.sync="showDialog"
:tree-node="node"
@addDepartOK="getDeparts"
@ -50,6 +52,7 @@ export default {
children: 'children'
},
showDialog: false,
//
node: {}
}
},
@ -76,6 +79,14 @@ export default {
this.showDialog = true
// ,
this.node = data
},
//
editDeparts(data) {
this.showDialog = true
this.node = data
// ref
this.$refs.addForm.getDepartDetail(this.node.id)
}
}
}