<template>
|
<div class="app-container">
|
<el-form :model="queryParam" ref="queryForm" :inline="true">
|
<el-form-item label="部门:">
|
<el-input v-model="queryParam.name" size="small"></el-input>
|
<!-- <el-select v-model="queryParam.level" placeholder="部门" clearable="">-->
|
<!-- <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>-->
|
<!-- </el-select>-->
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="submitForm" size="small">查询</el-button>
|
<router-link :to="{path:'/education/department/edit'}" class="link-left">
|
<el-button type="primary" size="small">添加</el-button>
|
</router-link>
|
</el-form-item>
|
</el-form>
|
|
<el-table
|
v-loading="listLoading"
|
:data="tableData" border fit
|
style="width: 100%"
|
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
:row-class-name="tableRowClassName"
|
default-expand-all
|
row-key="id"
|
>
|
<el-table-column prop="name" label="部门"/>
|
<el-table-column prop="adminNames" label="部门负责人"/>
|
<el-table-column prop="special" label="是否管理三级部门">
|
<template slot-scope="{row}">
|
<el-tag :type="row.special === '1' ? 'success' : 'danger'">{{ row.special === '1' ? '是' : '否' }}</el-tag>
|
</template>
|
</el-table-column>
|
<!-- <el-table-column prop="levelName" label="部门" />-->
|
<el-table-column width="400px" label="操作" align="center">
|
<template slot-scope="{row}">
|
<el-button type="success" size="mini" @click="updateDeptAdmin(row)" class="link-left" plain>修改部门负责人</el-button>
|
<router-link :to="{path:'/education/department/edit', query:{id:row.id}}" class="link-left">
|
<el-button size="mini" plain>编辑</el-button>
|
</router-link>
|
<el-button size="mini" type="danger" plain @click="delSubject(row)" class="link-left">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<el-dialog
|
:title="title"
|
:visible.sync="dialogVisible"
|
width="400px"
|
:before-close="handleClose">
|
<el-select v-model="updateAdminForm.adminIds" @change="changSelect" multiple filterable placeholder="选择管理员" collapse-tags>
|
<el-option
|
v-for="item in deptUserList"
|
:key="item.id"
|
:label="item.value"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
<el-button type="primary" @click="submitUpdate">确 定</el-button>
|
</span>
|
</el-dialog>
|
|
</div>
|
</template>
|
|
<script>
|
import { mapGetters, mapState } from 'vuex'
|
import Pagination from '@/components/Pagination'
|
import departmentApi from '@/api/department'
|
import enumItem from '@/store/modules/enumItem'
|
export default {
|
components: { Pagination },
|
data () {
|
return {
|
// 部门人员
|
deptUserList: [],
|
dialogVisible: false,
|
title: '',
|
updateAdminForm: {
|
id: null,
|
adminIds: []
|
},
|
depart: [],
|
queryParam: {
|
level: null,
|
},
|
listLoading: true,
|
tableData: [],
|
total: 0
|
}
|
},
|
created () {
|
this.search()
|
},
|
methods: {
|
tableRowClassName({row, rowIndex}) {
|
if (row.children && row.children.length > 0) {
|
return 'success-row';
|
}
|
return '';
|
},
|
changSelect( value ) {
|
this.updateAdminForm.adminId = value
|
},
|
handleClose () {
|
this.dialogVisible = false
|
this.title = ''
|
},
|
submitUpdate () {
|
if (!this.updateAdminForm.adminIds) {
|
this.$message.warning('请选择部门负责人')
|
return
|
}
|
departmentApi.updateDeptAdmin(this.updateAdminForm).then(res => {
|
if (res.code === 1) {
|
this.$message.success('修改成功')
|
this.dialogVisible = false
|
this.title = ''
|
this.search()
|
}
|
})
|
},
|
updateDeptAdmin (row) {
|
this.updateAdminForm.id = row.id
|
this.updateAdminForm.adminIds = row.adminIds
|
console.log(this.updateAdminForm.adminIds, "dd")
|
this.title = row.name + '--管理员修改'
|
this.getUserSelect(row.id)
|
this.dialogVisible = true
|
},
|
getUserSelect (id) {
|
departmentApi.getDeptUserList(id).then(res => {
|
this.deptUserList = res.response
|
})
|
},
|
search () {
|
this.listLoading = true
|
departmentApi.pageList(this.queryParam).then(data => {
|
this.tableData = data.response
|
this.tableData.forEach(item => {
|
if (item.adminNames) {
|
item.adminNames = item.adminNames.join("、")
|
}
|
})
|
this.listLoading = false
|
|
this.depart = data.response
|
this.depart.forEach(item => {
|
item.key = item.id
|
item.value = item.name
|
})
|
enumItem.state.user.levelEnum = this.depart
|
})
|
},
|
submitForm () {
|
this.search()
|
},
|
delSubject (row) {
|
let _this = this
|
let obj = {
|
id: row.id,
|
deleted: 1
|
}
|
departmentApi.edit(obj).then(re => {
|
if (re.code === 1) {
|
_this.search()
|
_this.$message.success(re.message)
|
} else {
|
_this.$message.error(re.message)
|
}
|
})
|
}
|
},
|
computed: {
|
...mapGetters('enumItem', [
|
'enumFormat'
|
]),
|
...mapState('enumItem', {
|
levelEnum: state => state.user.levelEnum
|
})
|
}
|
}
|
</script>
|
<style scoped>
|
.el-table .success-row {
|
background: oldlace;
|
}
|
</style>
|