<template> <el-dialog v-if="visible" :visible.sync="visible" :before-close="handleClose" :append-to-body="true" title="培训申请" width="60%"> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-row> <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: [{ required: true, message: '安监部门不能为空', trigger: 'blur' }], 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: { async init(e) { if (e) { this.users = e } this.visible = true this.loading = false this.form = {} /** * 获取相关方的 集团单位 corpinfo/getDataForEditByCorpInfoId * 根据集团单位 找到 对应的 企业id */ await this.getCorpinfo() }, getCorpinfo() { requestFN( '/corpinfo/getDataForEditByCorpInfoId', { CORPINFO_ID: JSON.parse(sessionStorage.getItem('user')).CORPINFO_ID, tm: new Date().getTime() } ).then((data) => { this.corpinfo = data.pd // 河港机械 jtdw002 1e6dbbe16004402f8d2c0e52afd9a676 // 河港港工 jtdw003 3a854eefa7894e06aaa1a2611bca80f6 // 河港检测 jtdw004 020578a4c1f04bc692ee25145c2efbe5 // 方宇物业 jtdw005 90966974de3c4b83aca6f8fd6432d5c2 if (data.pd.CORP_TYPE == 'jtdw002') { this.jituanDanwei = '1e6dbbe16004402f8d2c0e52afd9a676' } if (data.pd.CORP_TYPE == 'jtdw003') { this.jituanDanwei = '3a854eefa7894e06aaa1a2611bca80f6' } if (data.pd.CORP_TYPE == 'jtdw004') { this.jituanDanwei = '020578a4c1f04bc692ee25145c2efbe5' } if (data.pd.CORP_TYPE == 'jtdw005') { this.jituanDanwei = '90966974de3c4b83aca6f8fd6432d5c2' } this.getTreeData() }) }, // 获得部门树 getTreeData() { requestFN( '/regulatoryApi/department/listTree', {} ).then((data) => { this.treeData = JSON.parse(data.zTreeNodes) // 必须指定【股份-安全监督部】 this.form.SUPERVISION = 'c31058273a2d40f9b83dd8e5ae3a723c' this.form.MANAGER = this.corpinfo.MAIN_DEPARTMENT this.getRegulatoryUserList(this.form.SUPERVISION) this.getmanagerUserList(this.corpinfo.MAIN_DEPARTMENT) }).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( '/regulatoryApi/user/listAll', { DEPARTMENT_ID: DEPARTMENT_ID, ISASSESS: '1' } ).then((data) => { this.userList = data.userList }).catch((e) => { }) }, // 人员 getUserList({ id: DEPARTMENT_ID }) { requestFN( '/companyApi/user/listAll', { DEPARTMENT_ID } ).then((data) => { this.companyUserList = data.userList }).catch((e) => { }) }, getmanagerUserList(DEPARTMENT_ID) { requestFN( '/regulatoryApi/user/listAll', { DEPARTMENT_ID: DEPARTMENT_ID } ).then((data) => { this.managercompanyUserList = data.userList }).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 requestFN( '/trainingbatch/add', { ...this.form, users: this.users.join(',') } ).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('finish', '') }, closeWindow() { this.handleClose() } } } </script>