| | |
| | | width="769px" |
| | | draggable |
| | | :fullscreen="full" |
| | | @close="resetForm(ruleFormRef)" |
| | | > |
| | | <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> |
| | | <el-form |
| | |
| | | <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" |
| | | > |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | | |
| | |
| | | import { |
| | | // reactive, |
| | | ref, |
| | | defineComponent |
| | | defineComponent, |
| | | onMounted, |
| | | } from 'vue'; |
| | | |
| | | import type { |
| | |
| | | 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) |
| | |
| | | makingPlanDate: '', // 计划制定日期 |
| | | drillPlanDate: '', //计划演练日期 |
| | | makingUserUid: '', //计划制定人ID |
| | | makingUserName: '', //计划制定人Name |
| | | makingDepartmentId: '', // 计划制定部门ID |
| | | planId: '', // 应急预案ID |
| | | planName: '', // 应急预案name |
| | | departmentId: '', // 主办部门ID |
| | | drillExpense: '', // 演练经费 |
| | | drillLevel: '', //演练级别 |
| | |
| | | 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; |
| | |
| | | .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) => { |
| | |
| | | makingUserUid: '', //计划制定人ID |
| | | makingDepartmentId: '', // 计划制定部门ID |
| | | planId: '', // 应急预案ID |
| | | planName: '', // 应急预案name |
| | | departmentId: '', // 主办部门ID |
| | | drillExpense: '', // 演练经费 |
| | | drillLevel: '', //演练级别 |
| | |
| | | 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(); |
| | | }; |
| | | // 应急队伍弹窗 |
| | |
| | | } |
| | | 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 = () => { |
| | |
| | | fileList, |
| | | responsibleDepartment, |
| | | data, |
| | | department, |
| | | propse, |
| | | Search, |
| | | ruleForm, |
| | | value1, |
| | |
| | | resetForm, |
| | | emit, |
| | | onUser, |
| | | userFZRef, |
| | | SearchUser, |
| | | SearchFZUser, |
| | | successUploader, |
| | | initFileListData |
| | | }; |
| | | }, |
| | | }); |