审核组模块开发
This commit is contained in:
parent
4605fce6b7
commit
6b143f2f75
|
@ -0,0 +1,432 @@
|
|||
<!--
|
||||
* @Author: Light
|
||||
* @Date: 2022-12-13 15:36:38
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-12-14 11:52:27
|
||||
* @Description: 审核组管理
|
||||
-->
|
||||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<div class="mod-sys__role">
|
||||
<el-form :inline="true" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="name" :placeholder="$t('role.name')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()" type="primary">{{ $t('query') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="addDialog()">{{ $t('add') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="deleteTeam()">{{ $t('deleteBatch') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetHandle()">{{ $t('reset') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
v-loading="dataListLoading"
|
||||
:data="dataList"
|
||||
border
|
||||
@selection-change="dataListSelectionChangeHandle"
|
||||
@sort-change="dataListSortChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="name" :label="$t('role.name')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="description" label="备注" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="createDate" :label="$t('role.createDate')" header-align="center" align="center" width="180"></el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="updateTeam(scope.row)">{{ $t('update') }}</el-button>
|
||||
<el-button type="text" size="small" @click="auditorDialogVisible(scope.row)">审核员管理</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<el-dialog
|
||||
:title="(submitData.id?'修改':'新增')+'审核组'"
|
||||
:visible.sync="addDialogVisible"
|
||||
width="30%"
|
||||
:before-close="handleClose"
|
||||
:close-on-click-modal="false">
|
||||
<el-form ref="submitData" :model="submitData" label-width="100px" :rules="rules">
|
||||
<el-form-item label="审核组名称" prop="name">
|
||||
<el-input placeholder="请输入审核组名称" v-model="submitData.name"></el-input>
|
||||
</el-form-item >
|
||||
<el-form-item label="备注" prop="description">
|
||||
<el-input placeholder="请输入备注" v-model="submitData.description"></el-input>
|
||||
</el-form-item >
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleClose()">取 消</el-button>
|
||||
<el-button type="primary" @click="addAuditTeam()">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
title="审核员管理"
|
||||
:visible.sync="addAuditorDialogVisible"
|
||||
width="70%"
|
||||
:before-close="handleClose"
|
||||
:close-on-click-modal="false">
|
||||
<div class="box">
|
||||
<div class="left">
|
||||
<div style="position: relative;">审核人员列表<el-checkbox style="position: absolute;right: 0;" v-model="checked" @change="changeFilter()">仅展示未分配审核员</el-checkbox></div>
|
||||
<el-table
|
||||
:height="400"
|
||||
:data="auditorList"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
@selection-change="handleSelectAuditorLeft">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50" :selectable="selectable"></el-table-column>
|
||||
<el-table-column prop="real_name" label="姓名" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="name" label="所属部门" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="auditTeamName" label="当前审核组" header-align="center" align="center" v-if="!checked"></el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
background
|
||||
layout="prev, pager, next"
|
||||
:page-size="pageOptionLeft.limit"
|
||||
:total="pageOptionLeft.total"
|
||||
@current-change="currentChangeLeft">
|
||||
</el-pagination>
|
||||
</div>
|
||||
<div class="main">
|
||||
<el-button type="primary" icon="el-icon-arrow-left" @click="delAudiTeam()"></el-button>
|
||||
<el-button type="primary" @click="addAudiTeam()"><i class="el-icon-arrow-right el-icon--right"></i></el-button>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div>已添加审核人员</div>
|
||||
<el-table
|
||||
:height="400"
|
||||
:data="submitData.member"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
@selection-change="handleSelectAuditorRight">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="name" label="姓名" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="dept_name" label="所属部门" header-align="center" align="center"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleClose()">取 消</el-button>
|
||||
<el-button type="primary" @click="handleClose()">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import qs from 'qs'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data () {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: 'audit_team/sysauditteam/page',
|
||||
getDataListIsPage: true,
|
||||
deleteIsBatch: true
|
||||
},
|
||||
name: '',
|
||||
dataForm: {
|
||||
name: ''
|
||||
},
|
||||
submitData: {
|
||||
name: '',
|
||||
description: '',
|
||||
member: []
|
||||
},
|
||||
submitFlag: true,
|
||||
deleteFlag: true,
|
||||
rules: {
|
||||
name: [
|
||||
{ required: true, message: '请输入审核组名称', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
addDialogVisible: false,
|
||||
addAuditorDialogVisible: false,
|
||||
auditorList: [],
|
||||
selectAuditorListLeft: [],
|
||||
selectAuditorListRight: [],
|
||||
pageOptionLeft: {
|
||||
page: 1,
|
||||
limit: 5,
|
||||
total: 0
|
||||
},
|
||||
checked: true
|
||||
}
|
||||
},
|
||||
components: {
|
||||
},
|
||||
methods: {
|
||||
addDialog () {
|
||||
this.addDialogVisible = true
|
||||
},
|
||||
handleClose () {
|
||||
this.addDialogVisible = false
|
||||
this.addAuditorDialogVisible = false
|
||||
this.selectAuditorListLeft = []
|
||||
this.selectAuditorListRight = []
|
||||
this.submitData = {
|
||||
name: '',
|
||||
description: '',
|
||||
member: []
|
||||
}
|
||||
this.pageOptionLeft = {
|
||||
page: 1,
|
||||
limit: 5,
|
||||
total: 0
|
||||
}
|
||||
this.checked = true
|
||||
this.getAuditList()
|
||||
this.resetHandle()
|
||||
},
|
||||
auditorDialogVisible (row) {
|
||||
this.submitData = {
|
||||
id: row.id,
|
||||
name: row.name,
|
||||
description: row.description,
|
||||
member: row.member
|
||||
}
|
||||
this.addAuditorDialogVisible = true
|
||||
},
|
||||
// 新增审核组
|
||||
addAuditTeam () {
|
||||
this.$refs.submitData.validate((valid) => {
|
||||
if (valid) {
|
||||
this.submitFrom()
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
submitFrom (flag) {
|
||||
if (this.submitFlag) {
|
||||
this.submitFlag = false
|
||||
if (this.submitData.id) {
|
||||
this.$http.put('audit_team/sysauditteam', this.submitData).then(res => {
|
||||
if (res.data.msg !== 'success') {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '修改失败'
|
||||
})
|
||||
} else {
|
||||
this.$message.success('修改成功!')
|
||||
}
|
||||
if (!flag || res.data.msg !== 'success') {
|
||||
this.handleClose()
|
||||
this.resetHandle()
|
||||
}
|
||||
if (flag) {
|
||||
this.getAuditList()
|
||||
}
|
||||
this.submitFlag = true
|
||||
})
|
||||
} else {
|
||||
this.$http.post('audit_team/sysauditteam', this.submitData).then(res => {
|
||||
if (res.data.msg !== 'success') {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '修改失败'
|
||||
})
|
||||
} else {
|
||||
this.$message.success('修改成功!')
|
||||
}
|
||||
this.handleClose()
|
||||
this.resetHandle()
|
||||
this.submitFlag = true
|
||||
})
|
||||
}
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '请勿重复操作!'
|
||||
})
|
||||
}
|
||||
},
|
||||
// 删除审核组
|
||||
deleteTeam () {
|
||||
if (this.dataListSelections.length === 0) {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '请先选择需要删除的审批组!'
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.deleteFlag) {
|
||||
this.deleteFlag = false
|
||||
const ids = []
|
||||
this.dataListSelections.map(val => {
|
||||
ids.push(val.id)
|
||||
})
|
||||
this.$http.delete('audit_team/sysauditteam', { data: ids }).then(res => {
|
||||
if (res.data.msg !== 'success') {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '删除失败'
|
||||
})
|
||||
} else {
|
||||
this.$message.success('删除成功!')
|
||||
}
|
||||
this.resetHandle()
|
||||
this.deleteFlag = true
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '请勿重复操作!'
|
||||
})
|
||||
}
|
||||
},
|
||||
// 修改审核组信息
|
||||
updateTeam (row) {
|
||||
this.submitData = {
|
||||
id: row.id,
|
||||
name: row.name,
|
||||
description: row.description,
|
||||
member: row.member
|
||||
}
|
||||
this.addDialogVisible = true
|
||||
},
|
||||
// 选择审核员
|
||||
handleSelectAuditorLeft (val) {
|
||||
this.selectAuditorListLeft = val
|
||||
},
|
||||
handleSelectAuditorRight (val) {
|
||||
this.selectAuditorListRight = val
|
||||
},
|
||||
resetHandle () {
|
||||
this.dataForm.name = ''
|
||||
this.$nextTick(() => {
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
getAuditList () {
|
||||
this.$http.get('/sys/user/auditingUserPage?' + qs.stringify({
|
||||
page: this.pageOptionLeft.page,
|
||||
limit: this.pageOptionLeft.limit,
|
||||
filter: this.checked
|
||||
})).then(res => {
|
||||
this.auditorList = res.data.data.list
|
||||
this.pageOptionLeft.total = res.data.data.total
|
||||
})
|
||||
},
|
||||
currentChangeLeft (val) {
|
||||
this.pageOptionLeft.page = val
|
||||
this.getAuditList()
|
||||
},
|
||||
// 添加到审核组
|
||||
addAudiTeam () {
|
||||
if (this.selectAuditorListLeft.length === 0) {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '请选择审核人员!'
|
||||
})
|
||||
return
|
||||
}
|
||||
// const arr = []
|
||||
// const str = ''
|
||||
// const addArr = []
|
||||
this.selectAuditorListLeft.map(val => {
|
||||
// if (val.auditTeamName) {
|
||||
// arr.push({
|
||||
// name: val.real_name,
|
||||
// auditor: val.auditTeamName
|
||||
// })
|
||||
// str += val.real_name + ';'
|
||||
// }
|
||||
// addArr.push({
|
||||
// id: val.id,
|
||||
// name: val.real_name,
|
||||
// dept_name: val.name
|
||||
// })
|
||||
this.submitData.member.push({
|
||||
id: val.id,
|
||||
name: val.real_name,
|
||||
dept_name: val.name
|
||||
})
|
||||
})
|
||||
// if (arr.length > 0) {
|
||||
// this.$message({
|
||||
// type: 'warning',
|
||||
// message: str.substring(0, str.length - 1) + '已有审核组!'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
// this.submitData.member.push(...addArr)
|
||||
this.submitFrom(true)
|
||||
},
|
||||
// 删除审核人员
|
||||
delAudiTeam () {
|
||||
if (this.selectAuditorListRight.length === 0) {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '请选择审核人员!'
|
||||
})
|
||||
return
|
||||
}
|
||||
this.selectAuditorListRight.map(val => {
|
||||
this.submitData.member = this.submitData.member.filter(member => member.id !== val.id)
|
||||
})
|
||||
this.submitFrom(true)
|
||||
},
|
||||
selectable (row) {
|
||||
return !row.inAuditTeam
|
||||
},
|
||||
changeFilter () {
|
||||
this.pageOptionLeft.page = 1
|
||||
this.getAuditList()
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getAuditList()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
// :deep(.el-form-item__label::before){
|
||||
// line-height: 40px;
|
||||
// }
|
||||
.box{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
.left{
|
||||
width: 600px;
|
||||
div:nth-of-type(1){
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
.main{
|
||||
margin: 200px 30px 0;
|
||||
}
|
||||
.right{
|
||||
width: 500px;
|
||||
div:nth-of-type(1){
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
:deep(.el-pagination){
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
|
@ -73,12 +73,12 @@ export default {
|
|||
AddOrUpdate
|
||||
},
|
||||
methods: {
|
||||
resetHandle() {
|
||||
this.dataForm.name = '';
|
||||
resetHandle () {
|
||||
this.dataForm.name = ''
|
||||
this.$nextTick(() => {
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
Loading…
Reference in New Issue