From d1a430e88df40d76558a14f890ac0dbd3181f3a0 Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期二, 06 九月 2022 14:30:14 +0800 Subject: [PATCH] 对接 --- src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue | 386 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 198 insertions(+), 188 deletions(-) diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue index 4a838b0..8f988a3 100644 --- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue +++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue @@ -6,6 +6,7 @@ width="769px" draggable :fullscreen="full" + @close="resetForm(ruleFormRef)" > <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-form @@ -30,23 +31,27 @@ <el-form-item label="主办部门" placeholder="请选择" prop="departmentId"> <el-tree-select v-model="ruleForm.departmentId" - :data="data" class="w100" + :data="data" + check-strictly + class="w100" + :props="propse" + clearable placeholder="请选择"/> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="演练方式" prop="drillWay"> <el-select v-model="ruleForm.drillWay" class="w100" placeholder="请选择"> - <el-option label="综合" value="综合"></el-option> - <el-option label="桌面" value="桌面"></el-option> - <el-option label="专项" value="专项"></el-option> + <el-option label="综合" value="1"></el-option> + <el-option label="桌面" value="2"></el-option> + <el-option label="专项" value="3"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="应急预案" prop="planId" > + <el-form-item label="应急预案" prop="planName" > <el-input - v-model="ruleForm.planId" + v-model="ruleForm.planName" placeholder="请选择" class="input-with-select" > @@ -59,9 +64,9 @@ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="演练级别" prop="drillLevel"> <el-select v-model="ruleForm.drillLevel" class="w100" placeholder="请选择"> - <el-option label="公司级" value="公司级"></el-option> - <el-option label="分厂级" value="分厂级"></el-option> - <el-option label="车间级" value="车间级"></el-option> + <el-option label="公司级" value="1"></el-option> + <el-option label="分厂级" value="2"></el-option> + <el-option label="车间级" value="3"></el-option> </el-select> </el-form-item> </el-col> @@ -75,33 +80,37 @@ <el-date-picker v-model="ruleForm.drillPlanDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> </el-col> + <!--<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> + <!--<el-form-item label="修改时间" prop="gmtModitify">--> + <!--<el-date-picker v-model="ruleForm.gmtModitify" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />--> + <!--</el-form-item>--> + <!--</el-col>--> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="修改时间" prop="updateDate"> - <el-date-picker v-model="ruleForm.updateDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="计划定制人" prop="makingUserUid"> - <el-input v-model="ruleForm.makingUserUid" placeholder="请填写计划定制人"></el-input> + <el-form-item label="计划定制人" prop="makingUserName"> + <el-input v-model="ruleForm.makingUserName" placeholder="请填写计划定制人" disabled></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="制定部门" prop="makingDepartmentId"> <el-tree-select v-model="ruleForm.makingDepartmentId" - :data="data" class="w100" + check-strictly + :data="data" + class="w100" + :props="propse" + clearable placeholder="请选择"/> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练人员" prop="telephone" > + <el-form-item label="演练人员" prop="userListString" > <el-input - v-model="ruleForm.teamLeader" + v-model="ruleForm.userListString" placeholder="请选择" class="input-with-select" > <template #append> - <el-button :icon="Search" @click="openUser"/> + <el-button :icon="Search" @click="openUser(0)"/> </template> </el-input> </el-form-item> @@ -118,14 +127,14 @@ </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="演练负责人" prop="telephone" > + <el-form-item label="演练负责人" prop="chargeUserListString" > <el-input - v-model="ruleForm.teamLeader" + v-model="ruleForm.chargeUserListString" placeholder="请选择" class="input-with-select" > <template #append> - <el-button :icon="Search" @click="openUser"/> + <el-button :icon="Search" @click="openUser(1)"/> </template> </el-input> </el-form-item> @@ -153,20 +162,8 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" style="margin-bottom: 0!important;"> <el-form-item label="预案附件"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - :on-change="handleChange" - > - <el-button type="primary" - >点击上传</el-button> - <template #tip> - <div class="el-upload__tip"> - 添加相关附件 - </div> - </template> - </el-upload> + <uploaderFile :fileList="fileList" :systemName="'EMERGENCY'" :disabled="disabled" + @successUploader="successUploader"></uploaderFile> </el-form-item> </el-col> </el-row> @@ -178,8 +175,9 @@ </span> </template> </el-dialog> - <RegionsDialog ref="Shows" @SearchUser="onUser"/> - <UserCheckbox ref="userRef"/> + <RegionsDialog ref="Shows" @SearchUser="onUser" /> + <DailogSearchUser ref="userRef" @SearchUser="SearchUser" /> + <DailogSearchUser ref="userFZRef" @SearchUser="SearchFZUser" /> </div> </template> @@ -187,7 +185,8 @@ import { // reactive, ref, - defineComponent + defineComponent, + onMounted, } from 'vue'; import type { @@ -199,15 +198,18 @@ Search, FullScreen } from '@element-plus/icons-vue' -import UserCheckbox from "/@/components/userCheckbox/index.vue" +import DailogSearchUser from "/@/components/DailogSearchUser/index.vue" import RegionsDialog from "/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue" -import {releaseDrillPlanApi} from "/@/api/emergencyDrillPlan"; - +import {releaseDrillPlanApi} from "/@/api/contingencyManagement/emergencyDrillPlan"; +import {goalManagementApi} from "/@/api/goalManagement"; +import { Session } from '/@/utils/storage'; +import uploaderFile from '/@/components/uploaderFile/index.vue'; export default defineComponent({ name: 'openAdd', components: { RegionsDialog, - UserCheckbox, + DailogSearchUser, + uploaderFile }, setup(props, { emit }) { const isShowDialog = ref(false) @@ -218,8 +220,10 @@ makingPlanDate: '', // 计划制定日期 drillPlanDate: '', //计划演练日期 makingUserUid: '', //计划制定人ID + makingUserName: '', //计划制定人Name makingDepartmentId: '', // 计划制定部门ID planId: '', // 应急预案ID + planName: '', // 应急预案name departmentId: '', // 主办部门ID drillExpense: '', // 演练经费 drillLevel: '', //演练级别 @@ -230,26 +234,19 @@ remark: '', // 备注 purpose: '', // 演练目的 fileList: [ - { - fileName: 'name', - fileUrl: 'url', - } ], userList: [ - { - userUid: '', - type: 1 - }, - { - userUid: '', - type: 2 - } - ] + ], + chargeUserList:[], + userListString:'',//演练人员字段(回填使用) + chargeUserListString:'',//演练负责人字段(回填使用) }); const titles = ref(); const disabled = ref(); // 打开弹窗 const openDialog = (title: string, id: number, type: boolean) => { + ruleForm.value.makingUserUid = Session.get('uid'); + ruleForm.value.makingUserName = Session.get('realName'); isShowDialog.value = true; titles.value = title; disabled.value = type; @@ -259,136 +256,87 @@ .then((res) => { if (res.data.code == 200) { ruleForm.value = res.data.data; + ruleForm.value.userListString='' + ruleForm.value.chargeUserListString='' + for(var a = 0;a<res.data.data.userList.length;a++){ + if(res.data.data.userList[a].type==1){ + ruleForm.value.userListString += res.data.data.userList[a].userName+';' + } + // if(res.data.data.userList[a].type==2){ + // ruleForm.value.chargeUserListString += res.data.data.userList[a].userName+';' + // } + } + // alert(res.data.data.chargeUserList.length) + for(var a = 0;a<res.data.data.chargeUserList.length;a++){ + ruleForm.value.chargeUserListString += res.data.data.chargeUserList[a].userName+';' + } + fileList.value = (res.data.data.fileList?res.data.data.fileList:[]) + initFileListData() } }); } }; + const initFileListData = async () => { + for(var a = 0;a<fileList.value.length;a++){ + fileList.value[a].name = fileList.value[a].fileName + } + } + // 上传成功组装数据 + const successUploader = (list) =>{ + fileList.value = list + const formFileList = [] + for(var a = 0;a<fileList.value.length;a++){ + formFileList.push( + { + fileName:fileList.value[a].fileName, + fileUrl:'' + } + ) + } + ruleForm.value.fileList = formFileList + } //日期选择器 const value1 = ref('') // 上传附件 - const fileList = ref<UploadUserFile[]>([]) + const fileList = ref([]) // 可选择树 const treeSelect = ref() const tree = [ - { - value: '1', - label: 'Level one 1', - children: [ - { - value: '11', - label: 'Level two 1-1', - children: [ - { - value: '111', - label: 'Level three 1-1-1', - }, - ], - }, - ], - }, - { - value: '2', - label: 'Level one 2', - children: [ - { - value: '22', - label: 'Level two 2-1', - children: [ - { - value: '222', - label: 'Level three 2-1-1', - }, - ], - }, - { - value: '223', - label: 'Level two 2-2', - children: [ - { - value: '2233', - label: 'Level three 2-2-1', - }, - ], - }, - ], - }, - { - value: '3', - label: 'Level one 3', - children: [ - { - value: '33', - label: 'Level two 3-1', - children: [ - { - value: '3333', - label: 'Level three 3-1-1', - }, - ], - }, - { - value: '3334', - label: 'Level two 3-2', - children: [ - { - value: '333', - label: 'Level three 3-2-1', - }, - ], - }, - ], - }, ] + //部门树 + const department = () => { + goalManagementApi() + .getTreedepartment() + .then((res) => { + if (res.data.code == 200) { + data.value = res.data.data; + } else { + ElMessage.error(res.data.msg); + } + }); + }; //定义树形下拉框 const responsibleDepartment = ref() - const data = [ - { - value: '1', - label: '广汇能源综合物流发展有限责任公司', - children: [ - { - value: '11', - label: '经营班子', - children: [], - }, - ], - }, - { - value: '12', - label: '生产运行部', - children: [ - { - value: '21', - label: '灌装一班', - children: [] - }, - { - value: '22', - label: '工艺四班', - children: [], - }, - ], - }, - { - value: '3', - label: '设备部', - children: [ - { - value: '31', - label: '仪表班', - children: [], - }, - { - value: '32', - label: '机修班', - children: [], - }, - ], - }, - ] - + const data = ref() + const propse = { + label: 'depName', + children: 'children', + value: 'depId', + }; + onMounted(() => { + department(); + }); // 表单提交验证必填项 const submitForm = async (title: string, formEl: FormInstance | undefined) => { + if(!ruleForm.value.fileList){ + ruleForm.value.fileList = [] + } + ruleForm.value.userList = ruleForm.value.userList.concat(ruleForm.value.chargeUserList) + delete ruleForm.value.planName + delete ruleForm.value.chargeUserListString + delete ruleForm.value.userListString + delete ruleForm.value.chargeUserList + delete ruleForm.value.gmtModitify if (title == '新建应急演练计划发布') { if (!formEl) return; await formEl.validate((valid, fields) => { @@ -455,6 +403,7 @@ makingUserUid: '', //计划制定人ID makingDepartmentId: '', // 计划制定部门ID planId: '', // 应急预案ID + planName: '', // 应急预案name departmentId: '', // 主办部门ID drillExpense: '', // 演练经费 drillLevel: '', //演练级别 @@ -465,27 +414,43 @@ remark: '', // 备注 purpose: '', // 演练目的 fileList: [ - { - fileName: 'name', - fileUrl: 'url', - } ], userList: [ - { - userUid: '', - type: 1 - }, - { - userUid: '', - type: 2 - } - ] + ], + chargeUserList:[], + userListString:'',//演练人员字段(回填使用) + chargeUserListString:'',//演练负责人字段(回填使用) }; } } const resetForm = (formEl: FormInstance | undefined) => { isShowDialog.value = false; + fileList.value=[] if (!formEl) return; + ruleForm.value = { + makingPlanDate: '', // 计划制定日期 + drillPlanDate: '', //计划演练日期 + makingUserUid: '', //计划制定人ID + makingDepartmentId: '', // 计划制定部门ID + planId: '', // 应急预案ID + planName: '', // 应急预案name + departmentId: '', // 主办部门ID + drillExpense: '', // 演练经费 + drillLevel: '', //演练级别 + drillAddress: '', //演练地点 + drillName: '', // 演练名称 + drillWay: '', // 演练方式 + insuranceMeasures: '', // 保险措施 + remark: '', // 备注 + purpose: '', // 演练目的 + fileList: [ + ], + userList: [ + ], + chargeUserList:[], + userListString:'',//演练人员字段(回填使用) + chargeUserListString:'',//演练负责人字段(回填使用) + }; formEl.resetFields(); }; // 应急队伍弹窗 @@ -495,14 +460,52 @@ } const onUser = (e:any) => { ruleForm.value.planId=e.id + ruleForm.value.planName=e.name }; // 打开用户选择弹窗 const userRef = ref(); - const openUser = () => { - userRef.value.openDialog(); + const userFZRef = ref(); + //打开演练人员和演练负责人弹窗 type 0 演练人员 1 演练负责人 + const openUser = (type:number) => { + if(type==0){ + userRef.value.openDailog(0); + }else if(type==1){ + userFZRef.value.openDailog(0); + } + }; + const SearchUser = (e:any) => { + console.log('演练人员',e) + ruleForm.value.userListString='' + ruleForm.value.userList=[] + for(var a = 0;a<e.length;a++){ + ruleForm.value.userList.push( + { + type: 1, + userName: e[a].realName, + userUid: e[a].uid, + } + ) + ruleForm.value.userListString+=e[a].realName+';' + } + }; + const SearchFZUser = (e:any) => { + console.log('演练负责人员',e[0].userName) + ruleForm.value.chargeUserListString='' + ruleForm.value.chargeUserList=[] + // ruleForm.value.chargeUserList = [] + for(var a = 0;a<e.length;a++){ + ruleForm.value.chargeUserList.push( + { + type: 2, + userName: e[a].realName, + userUid: e[a].uid, + } + ) + ruleForm.value.chargeUserListString+=e[a].realName+';' + } }; // 计划定制日期 - const datetime = ref('') + const datetime = ref(''); //全屏 const full = ref(false); const toggleFullscreen = () => { @@ -518,6 +521,8 @@ fileList, responsibleDepartment, data, + department, + propse, Search, ruleForm, value1, @@ -538,6 +543,11 @@ resetForm, emit, onUser, + userFZRef, + SearchUser, + SearchFZUser, + successUploader, + initFileListData }; }, }); -- Gitblit v1.9.2