qa-prevention-gwj-vue/src/views/xgf/flowApply/components/apply.vue

312 lines
9.1 KiB
Vue

<template>
<el-dialog
v-if="visible"
:visible.sync="visible"
:append-to-body="true"
title="培训申请"
width="60%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row v-if="false">
<el-col :span="12">
<el-form-item
prop="TERRITORIALITY"
label="集团单位 "
>
<Treeselect
:options="jituanDanweiTreeData"
:normalizer="normalizer"
v-model="form.TERRITORIALITY"
placeholder="请选择集团单位 "
no-options-text="暂无数据"
no-children-text="暂无数据"
style="width: 100%;"
@select="getUserList($event)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
prop="TERRITORIALITY_USER_ID"
label="审核人员"
>
<div style="display:flex;justify-content: space-between;align-items: flex-start;">
<el-select v-model="form.TERRITORIALITY_USER_ID">
<el-option
v-for="item in companyUserList"
:key="item.USER_ID"
:label="item.NAME"
:value="item.USER_ID"/>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
prop="MANAGER"
label="主管部门"
>
<Treeselect
:options="treeData"
:normalizer="normalizer"
v-model="form.MANAGER"
:disabled="true"
placeholder="请选择主管部门"
no-options-text="暂无数据"
no-children-text="暂无数据"
style="width: 100%;"
@select="getmanagerUserList($event)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
prop="MANAGER_USER_ID"
label="审核人员"
>
<div style="display:flex;justify-content: space-between;align-items: flex-start;">
<el-select v-model="form.MANAGER_USER_ID">
<el-option
v-for="item in managercompanyUserList"
:key="item.USER_ID"
:label="item.NAME"
:value="item.USER_ID"/>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
prop="SUPERVISION"
label="安监部门"
>
<Treeselect
:options="treeData"
:normalizer="normalizer"
v-model="form.SUPERVISION"
:disabled="true"
placeholder="请选择安监部门"
no-options-text="暂无数据"
no-children-text="暂无数据"
style="width: 100%;"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
prop="SUPERVISION_USER_ID"
label="审核人员"
>
<div style="display:flex;justify-content: space-between;align-items: flex-start;">
<el-select v-model="form.SUPERVISION_USER_ID">
<el-option v-for="item in userList" :key="item.USER_ID" :label="item.NAME" :value="item.USER_ID"/>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注">
<el-input :rows="3" v-model="form.DESCR" type="textarea" placeholder="这里输入备注..."/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="closeWindow">取 消</el-button>
<el-button :loading="loading" type="primary" @click="save"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { requestFN } from '@/utils/request'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
components: {
Treeselect
},
props: {
corpInfo: {
type: String,
default: ''
}
},
data() {
return {
visible: false,
loading: false,
treeData: [],
companyTreeData: [],
corpinfo: {},
userList: [],
companyUserList: [],
managercompanyUserList: [],
jituanDanwei: '',
jituanDanweiTreeData: [],
normalizer(node) {
return {
id: node.id,
label: node.name,
children: node.nodes
}
},
form: {},
rules: {
SUPERVISION_USER_ID: [{ required: true, message: '审核人员不能为空', trigger: 'blur' }],
MANAGER: [{ required: true, message: '主管部门不能为空', trigger: 'blur' }],
MANAGER_USER_ID: [{ required: true, message: '审核人员不能为空', trigger: 'blur' }],
TERRITORIALITY: [{ required: true, message: '属地管理部门不能为空', trigger: 'blur' }],
TERRITORIALITY_USER_ID: [{ required: true, message: '审核人员不能为空', trigger: 'blur' }]
}
}
},
methods: {
init(e) {
if (e) {
this.users = e
}
// 判断是否有主管部门
for (let i; this.users.length > i; i++) {
if (!this.users[0].MAIN_DEPARTMENT_ID || this.users[0].MAIN_DEPARTMENT_ID === '') {
this.$message({
message: '系统未指定主管部门,请将完善相关方信息',
type: 'error'
})
return false
}
}
// 判断主管部门是否一致
const warden = this.users[0].MAIN_DEPARTMENT_ID
for (let i; this.users.length > i; i++) {
if (warden !== this.users[i].MAIN_DEPARTMENT_ID) {
this.$message({
message: '选择的人员(' + this.users[i].NAME + ')主管部门不一致,请重新选择',
type: 'error'
})
return false
}
}
this.visible = true
this.loading = false
requestFN(
'/openApi/department/listTree',
{ CORPINFO_ID: JSON.parse(sessionStorage.getItem('user')).CORPINFO_ID, tm: new Date().getTime() }
).then((data) => {
this.form.MANAGER = this.users[0].MAIN_DEPARTMENT_ID
this.jituanDanweiTreeData = JSON.parse(data.zTreeNodes)
this.getTreeData()
})
},
// 获得部门树
getTreeData() {
requestFN(
'/openApi/corpDepartment/listTree',
{}
).then((data) => {
this.treeData = JSON.parse(data.zTreeNodes)
// 必须指定【股份-安全监督部】
this.form.SUPERVISION = 'c31058273a2d40f9b83dd8e5ae3a723c'
this.getRegulatoryUserList(this.form.SUPERVISION)
this.getmanagerUserList(this.form.MANAGER)
}).catch((e) => {
console.log(e)
})
if (this.jituanDanwei) {
requestFN(
'/companyApi/department/listTree',
{ CORPINFO_ID: this.jituanDanwei }
).then((data) => {
this.jituanDanweiTreeData = JSON.parse(data.zTreeNodes)
}).catch((e) => {
})
}
},
getRegulatoryUserList(DEPARTMENT_ID) {
requestFN(
'/user/getRegUserInfo',
{
DEPARTMENT_ID: DEPARTMENT_ID,
ISASSESS: '1'
}
).then((data) => {
this.userList = data.list
}).catch((e) => {
})
},
// 人员
getUserList({ id: DEPARTMENT_ID }) {
requestFN(
'/user/listAll',
{ DEPARTMENT_ID: DEPARTMENT_ID }
).then((data) => {
this.companyUserList = data.userList
}).catch((e) => {
})
},
getmanagerUserList(DEPARTMENT_ID) {
requestFN(
'/user/getRegUserInfo',
{
DEPARTMENT_ID: DEPARTMENT_ID
}
).then((data) => {
this.managercompanyUserList = data.list
}).catch((e) => {
})
},
save() {
this.$refs.form.validate(valid => {
if (valid) {
this.loading = true
this.form.USER_COUNT = this.users.length
this.form.AUDIT_STATUS = 0
this.form.TYPE = 2
const userIds = this.users.map((item) => { return item.XGF_USER_ID })
requestFN(
'/trainingbatch/add',
{
...this.form,
users: userIds.join(','),
BELONG_TO_CORP: this.users[0].BELONG_TO_CORP,
BELONG_TO_CORP_NAME: this.users[0].BELONG_TO_CORP_NAME
}
).then((data) => {
this.loading = false
this.$message({
message: '申请成功',
type: 'success'
})
this.handleClose()
}).catch((e) => {
this.listLoading = false
})
} else {
return false
}
})
},
handleClose() {
this.visible = false
this.$emit('refresh', '')
},
closeWindow() {
this.visible = false
}
}
}
</script>