src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue
@@ -13,95 +13,105 @@ :model="ruleForm" size="default" label-width="120px" :disabled="disabled" > <el-row :gutter="35"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="演练名称" prop="emergencyPlanName"> <el-input v-model="ruleForm.emergencyPlanName" placeholder="请填写队伍名称"></el-input> <el-input :disabled="true" v-model="ruleForm.emergencyPlanName" placeholder="请填写队伍名称"></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="drillAddress"> <el-input v-model="ruleForm.drillAddress" placeholder="请填写队伍名称"></el-input> <el-input :disabled="true" v-model="ruleForm.drillAddress" placeholder="请填写队伍名称"></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="主办部门" placeholder="请选择" prop="departmentId"> <el-tree-select v-model="ruleForm.departmentId" :data="data" class="w100" placeholder="请选择"/> <!--<el-tree-select--> <!--v-model="ruleForm.departmentId"--> <!--:data="data" class="w100"--> <!--placeholder="请选择"/>--> <el-tree-select :disabled="true" v-model="ruleForm.departmentId" :data="newTreeList" :props="propse" class="w100" 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-select :disabled="true" v-model="ruleForm.drillWay" class="w100" placeholder="请选择"> <el-option label="综合" value="0"></el-option> <el-option label="桌面" value="1"></el-option> <el-option label="专项" value="2"></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="drillPlanId" > <el-form-item label="应急预案" prop="drillName" > <el-input v-model="ruleForm.drillPlanId" :disabled="true" v-model="ruleForm.drillName" placeholder="请选择" class="input-with-select" > <template #append> <el-button :icon="Search" @click="daiInpt"/> <el-button :disabled="true" :icon="Search" @click="daiInpt"/> </template> </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="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-select :disabled="true" v-model="ruleForm.drillLevel" class="w100" placeholder="请选择"> <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="makingPlanDate"> <el-date-picker v-model="ruleForm.makingPlanDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> <el-date-picker :disabled="true" v-model="ruleForm.makingPlanDate" 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="drillPlanDate"> <el-date-picker v-model="ruleForm.drillPlanDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> <el-date-picker :disabled="true" 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="updateDate"> <el-date-picker v-model="ruleForm.updateDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> <el-date-picker :disabled="true" 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-input :disabled="true" v-model="ruleForm.makingUserName" placeholder="请填写计划定制人"></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" placeholder="请选择"/> <!--<el-tree-select--> <!--v-model="ruleForm.makingDepartmentId"--> <!--:data="data" class="w100"--> <!--placeholder="请选择"/>--> <el-tree-select :disabled="true" v-model="ruleForm.makingDepartmentId" :data="newTreeList" :props="propse" class="w100" 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="planUserListString" > <el-input v-model="ruleForm.teamLeader" :disabled="true" v-model="ruleForm.planUserListString" placeholder="请选择" class="input-with-select" > <template #append> <el-button :icon="Search" @click="openUser"/> <el-button :disabled="true" :icon="Search" @click="openUser"/> </template> </el-input> </el-form-item> @@ -109,6 +119,7 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="演练目的" prop="purpose"> <el-input :disabled="true" v-model="ruleForm.purpose" placeholder="请填写演练目的" class="input-with-select textarea" @@ -118,31 +129,33 @@ </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" :disabled="true" v-model="ruleForm.chargeUserListString" placeholder="请选择" class="input-with-select" > <template #append> <el-button :icon="Search" @click="openUser"/> <el-button :disabled="true" :icon="Search" @click="openUser"/> </template> </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="insuranceMeasures"> <el-input v-model="ruleForm.insuranceMeasures" placeholder="请填写保险措施"></el-input> <el-input :disabled="true" v-model="ruleForm.insuranceMeasures" placeholder="请填写保险措施"></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="drillExpense"> <el-input v-model="ruleForm.drillExpense" placeholder="请填写演练经费"></el-input> <el-input :disabled="true" v-model="ruleForm.drillExpense" placeholder="请填写演练经费"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="备注信息" prop="remark"> <el-input :disabled="true" v-model="ruleForm.remark" placeholder="请填写备注信息" class="input-with-select textarea" @@ -170,11 +183,12 @@ </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="executeUserListString" > <el-input v-model="ruleForm.teamLeader" v-model="ruleForm.executeUserListString" placeholder="请选择" class="input-with-select" :disabled="true" > <template #append> <el-button :icon="Search" @click="openUser"/> @@ -183,16 +197,17 @@ </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="演练过程描述" prop="teamLevel"> <el-input v-model="ruleForm.name" class="textarea" type="textarea" placeholder="请填写备注信息"></el-input> <el-form-item label="演练过程描述" prop="processDesc"> <el-input :disabled="true" v-model="ruleForm.processDesc" class="textarea" type="textarea" placeholder="请填写演练过程描述"></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="telephone" > <el-form-item label="演练记录人" prop="recordUserName" > <el-input v-model="ruleForm.teamLeader" v-model="ruleForm.recordUserName" placeholder="请选择" class="input-with-select" :disabled="true" > <template #append> <el-button :icon="Search" @click="openUser"/> @@ -201,12 +216,13 @@ </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="drillRecordDate"> <el-date-picker v-model="value1" v-model="ruleForm.drillRecordDate" class="w100" type="datetime" placeholder="选择日期时间" :disabled="true" /> </el-form-item> </el-col> @@ -218,11 +234,12 @@ </div> </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="evaluationUserListString" > <el-input v-model="ruleForm.teamLeader" v-model="ruleForm.evaluationUserListString" placeholder="请选择" class="input-with-select" :disabled="disabled" > <template #append> <el-button :icon="Search" @click="openUser"/> @@ -232,140 +249,120 @@ </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="预案评审-适宜性" prop="suitable"> <el-select v-model="ruleForm.suitable" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.suitable" class="w100" placeholder="请选择"> <el-option label="全部能够执行" value="1"></el-option> <el-option label="全部不能够执行" value="2"></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="sufficient"> <el-select v-model="ruleForm.sufficient" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.sufficient" class="w100" placeholder="请选择"> <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="arrival"> <el-select v-model="ruleForm.arrival" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.arrival" class="w100" placeholder="请选择"> <el-option label="迅速准确,基本按时到位" value="1"></el-option> <el-option label="未按时到位" value="2"></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="supplies"> <el-select v-model="ruleForm.supplies" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.supplies" class="w100" placeholder="请选择"> <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="protection"> <el-select v-model="ruleForm.protection" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.protection" class="w100" placeholder="请选择"> <el-option label="全部人员防护到位" value="1"></el-option> <el-option label="人员未防护到位" value="2"></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="whole"> <el-select v-model="ruleForm.whole" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.whole" class="w100" placeholder="请选择"> <el-option label="协调基本顺利,能够满足要求" value="1"></el-option> <el-option label="协调不顺利" value="2"></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="division"> <el-select v-model="ruleForm.division" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.division" class="w100" placeholder="请选择"> <el-option label="安全,快速" value="1"></el-option> <el-option label="安全,不快速" value="2"></el-option> <el-option label="不安全,快速" value="3"></el-option> <el-option label="不安全,不快速" value="4"></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="effect"> <el-select v-model="ruleForm.effect" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.effect" class="w100" placeholder="请选择"> <el-option label="基本达到目的,部分环节有待改进" value="1"></el-option> <el-option label="未达到目的" value="2"></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="report"> <el-select v-model="ruleForm.report" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.report" class="w100" placeholder="请选择"> <el-option label="报告及时" value="1"></el-option> <el-option label="报告不及时" value="2"></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="safety"> <el-select v-model="ruleForm.safety" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.safety" class="w100" placeholder="请选择"> <el-option label="按要求协作" value="1"></el-option> <el-option label="未按要求协作" value="2"></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="rescue"> <el-select v-model="ruleForm.rescue" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.rescue" class="w100" placeholder="请选择"> <el-option label="按要求协作" value="1"></el-option> <el-option label="未按要求协作" value="2"></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="evacuate"> <el-select v-model="ruleForm.evacuate" class="w100" placeholder="请选择"> <el-option label="综合应急预案" value="admin"></el-option> <el-option label="现场处置方案" value="common"></el-option> <el-option label="专项应急预案" value="common"></el-option> <el-option label="其他预案" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.evacuate" class="w100" placeholder="请选择"> <el-option label="按要求配合" value="1"></el-option> <el-option label="未按要求配合" value="2"></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="needModify"> <el-select v-model="ruleForm.needModify" class="w100" placeholder="请选择"> <el-option label="是" value="admin"></el-option> <el-option label="否" value="common"></el-option> <el-select :disabled="disabled" v-model="ruleForm.needModify" class="w100" placeholder="请选择"> <el-option label="是" :value="true"></el-option> <el-option label="否" :value="false"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="存在问题和改进措施" prop="questionAndImprove"> <el-input v-model="ruleForm.questionAndImprove" class="textarea" type="textarea" placeholder="请填写备注信息"></el-input> <el-input :disabled="disabled" v-model="ruleForm.questionAndImprove" class="textarea" type="textarea" placeholder="请填写备注信息"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="修改内容" prop="modifyContent"> <el-input v-model="ruleForm.modifyContent" class="textarea" type="textarea" placeholder="请填写修改内容"></el-input> <el-input :disabled="disabled" v-model="ruleForm.modifyContent" class="textarea" type="textarea" placeholder="请填写修改内容"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> @@ -391,11 +388,12 @@ <template #footer> <span class="dialog-footer"> <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> <el-button v-if="!disabled" size="default" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button> </span> </template> </el-dialog> <RegionsDialog ref="Shows" @SearchUser="onUser"/> <userSelections ref="userRef"/> <DailogSearchUser ref="userRef" @SearchUser="selectUser"/> <!-- <RegionsDialog ref="openRef"/>--> </div> </template> @@ -404,27 +402,30 @@ import { reactive, ref, defineComponent defineComponent, onMounted, } from 'vue'; import type { import { UploadUserFile, FormInstance, ElMessage } from 'element-plus' import { Search, FullScreen } from '@element-plus/icons-vue' import UserSelections from "/@/components/userSelections/index.vue" import RegionsDialog from "/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue" import DailogSearchUser from "/@/components/DailogSearchUser/index.vue" import {emergencyDrillEvaluationApi} from "/@/api/emergencyDrillEvaluation"; import {goalManagementApi} from "/@/api/goalManagement"; export default defineComponent({ name: 'approvalProgress', components: { UserSelections, RegionsDialog, DailogSearchUser }, setup(props, { emit }) { const isShowDialog = ref(false) @@ -455,12 +456,6 @@ } ], userList: [ { userUid: '' }, { userUid: '' } ] }); const titles = ref(); @@ -476,6 +471,78 @@ .then((res) => { if (res.data.code == 200) { ruleForm.value = res.data.data; ruleForm.value.planUserListString='' ruleForm.value.chargeUserListString='' ruleForm.value.executeUserListString='' ruleForm.value.evaluationUserListString='' //演练人员 for(var a = 0;a<res.data.data.planUserList.length;a++){ ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' } //演练负责人员 for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' } //实际到场人员 for(var a = 0;a<res.data.data.executeUserList.length;a++){ ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' } //演练负责人(评价) for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' } } }); } if(title=='演练实施评价'){ emergencyDrillEvaluationApi() .seeEmergencyDrillEvaluation(id) .then((res) => { if (res.data.code == 200) { ruleForm.value = res.data.data; ruleForm.value.planUserListString='' ruleForm.value.chargeUserListString='' ruleForm.value.executeUserListString='' ruleForm.value.evaluationUserListString='' for(var a = 0;a<res.data.data.planUserList.length;a++){ ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' } for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' } for(var a = 0;a<res.data.data.executeUserList.length;a++){ ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' } //演练负责人(评价) for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' } } }); } if(title=='演练实施查看评价'){ emergencyDrillEvaluationApi() .seeEmergencyDrillEvaluation(id) .then((res) => { if (res.data.code == 200) { ruleForm.value = res.data.data; ruleForm.value.planUserListString='' ruleForm.value.chargeUserListString='' ruleForm.value.executeUserListString='' ruleForm.value.evaluationUserListString='' for(var a = 0;a<res.data.data.planUserList.length;a++){ ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' } for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' } for(var a = 0;a<res.data.data.executeUserList.length;a++){ ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' } //演练负责人(评价) for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' } } }); } @@ -500,121 +567,12 @@ // 可选择树 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: '21', label: 'Level two 2-1', children: [ { value: '211', label: 'Level three 2-1-1', }, ], }, { value: '22', label: 'Level two 2-2', children: [ { value: '221', label: 'Level three 2-2-1', }, ], }, ], }, { value: '3', label: 'Level one 3', children: [ { value: '31', label: 'Level two 3-1', children: [ { value: '311', label: 'Level three 3-1-1', }, ], }, { value: '32', label: 'Level two 3-2', children: [ { value: '321', label: 'Level three 3-2-1', }, ], }, ], }, , ] //定义树形下拉框 const responsibleDepartment = ref() const data = [ { value: '1', label: '广汇能源综合物流发展有限责任公司', children: [ { value: '11', label: '经营班子', children: [], }, ], }, { value: '2', label: '生产运行部', children: [ { value: '21', label: '灌装一班', children: [] }, { value: '22', label: '工艺四班', children: [], }, ], }, { value: '3', label: '设备部', children: [ { value: '31', label: '仪表班', children: [], }, { value: '32', label: '机修班', children: [], }, ], }, ] // 必填项提示 // const rules = reactive<FormRules>({ @@ -661,6 +619,65 @@ // }, // ], // }) const submitForm = async (title: string, formEl: FormInstance | undefined) => { //演练负责人(评价) ruleForm.value.userList = ruleForm.value.evaluationUserList // console.log(ruleForm.value.evaluationUserList) // ruleForm.value.userList=[] // for(var a = 0;a<ruleForm.value.evaluationUserList.length;a++){ // // += res.data.data.evaluationUserList[a].userName+';' // } if (title == '演练实施评价') { if (!formEl) return; await formEl.validate((valid, fields) => { if (valid) { // console.log(ruleForm.value) emergencyDrillEvaluationApi() .editEmergencyDrillEvaluation(ruleForm.value) // emergencyDrillExecuteApi() // .editEmergencyDrillExecute(ruleForm.value) .then((res) => { if (res.data.code == 200) { ElMessage({ showClose: true, message: '评价成功', type: 'success', }); emit('myAdd', true); } else { ElMessage({ showClose: true, message: res.data.msg, type: 'error', }); emit('myAdd', true); } formEl.resetFields(); }); } else { console.log('error submit!', fields); } }); isShowDialog.value = false; formEl.resetFields(); ruleForm.value = { drillRecordDate: '', // 演练记录时间 drillPlanId: '', //演练计划ID drillName:'', recordUserUid: '', // 记录人ID processDesc: '', // 演练过程描述 userList: [ { userUid: '', }, { userUid: '', } ] }; } } // 应急队伍弹窗 const Shows=ref() const daiInpt=()=>{ @@ -677,8 +694,59 @@ // 打开用户选择弹窗 const userRef = ref(); const openUser = () => { userRef.value.openDialog(); userRef.value.openDailog(0); }; const selectUser = (e) =>{ ruleForm.value.evaluationUserListString='' ruleForm.value.evaluationUserList=[] for(var a = 0;a<e.length;a++){ ruleForm.value.evaluationUserList.push( { userName: e[a].realName, userUid: e[a].uid, } ) ruleForm.value.evaluationUserListString+=e[a].realName+';' } } //el-tree-select回显 const propse = { label: 'depName', children: 'children', }; const newTreeList = []; //得到部门树 const department = async () => { await goalManagementApi() .getTreedepartment() .then((res) => { if (res.data.code == 200) { data.value = res.data.data; getTreeList(res.data.data, newTreeList); } else { ElMessage.error(res.data.msg); } }); }; // 递归树状数据且修改字段名 const getTreeList = (treeList, newTreeList) => { treeList.map((c) => { let tempData = { depName: c.depName, value: c.depId, children: [], }; if (c.children && c.children.length > 0) { tempData.children = []; getTreeList(c.children, tempData.children); } newTreeList.push(tempData); }); }; onMounted(() => { department(); }); //全屏 const full = ref(false); const toggleFullscreen = () => { @@ -717,6 +785,11 @@ titles, disabled, emit, propse, department, newTreeList, selectUser, submitForm }; }, }); src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue
@@ -5,11 +5,11 @@ <el-tab-pane label="待评价" name="first"> <div class="button_Line mb15"> <div class="button_Left"> <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> <el-icon> <Delete /> </el-icon>删除 </el-button> <!--<el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll">--> <!--<el-icon>--> <!--<Delete />--> <!--</el-icon>删除--> <!--</el-button>--> </div> <!-- <div class="button_Right">--> <!-- <el-button @click="upButton">--> @@ -39,36 +39,55 @@ type="selection" width="55" /> <el-table-column prop="emergencyPlanName" label="演练名称" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillName" label="演练名称" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillAddress" label="演练地点" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable> <template #default="scope"> <div v-if="scope.row.drillWay=='0'">综合</div> <div v-if="scope.row.drillWay=='1'">桌面</div> <div v-if="scope.row.drillWay=='2'">专项</div> </template> </el-table-column> <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable> <template #default="scope"> <div v-if="scope.row.drillLevel=='1'">公司级</div> <div v-if="scope.row.drillLevel=='2'">分厂级</div> <div v-if="scope.row.drillLevel=='3'">车间级</div> </template> </el-table-column> <el-table-column prop="drillPlanDate" label="计划演练日期" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillRecordDate" label="演练记录日期" show-overflow-tooltip sortable></el-table-column> <!-- <el-table-column prop="attachments" label="应急预案" show-overflow-tooltip sortable></el-table-column>--> <el-table-column label="操作" width="260" align="center" fixed="right"> <template #default="scope"> <el-button size="small" text disabled> <!--<el-button size="small" text disabled>--> <!--<el-icon style="margin-right: 5px;">--> <!--<EditPen />--> <!--</el-icon>评价--> <!--</el-button>--> <!-- <el-button size="small" text type="primary" @click="onFlowChart(scope.row.id)">--> <!-- 审批进度--> <!-- </el-button>--> <!--<el-button size="small" text type="primary" @click="onApprovalProgress('详情',scope.row.id)">--> <!--<el-icon style="margin-right: 5px;">--> <!--<EditPen />--> <!--</el-icon>查看评价--> <!--</el-button>--> <el-button size="small" text type="primary" @click="onApprovalProgress('评价',scope.row.id)"> <el-icon style="margin-right: 5px;"> <EditPen /> </el-icon>评价 </el-button> <!-- <el-button size="small" text type="primary" @click="onFlowChart(scope.row.id)">--> <!-- 审批进度--> <!--<el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)">--> <!--<el-icon style="margin-right: 5px;">--> <!--<EditPen />--> <!--</el-icon>整改--> <!-- </el-button>--> <el-button size="small" text type="primary" @click="onApprovalProgress('详情',scope.row.id)"> <el-icon style="margin-right: 5px;"> <EditPen /> </el-icon>查看评价 </el-button> <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> <el-icon style="margin-right: 5px;"> <EditPen /> </el-icon>整改 </el-button> <el-button size="small" text disabled @click="onOpenEdit(scope.row)"> 查看整改 </el-button> <!--<el-button size="small" text disabled @click="onOpenEdit(scope.row)">--> <!--查看整改--> <!--</el-button>--> </template> </el-table-column> </el-table> @@ -123,36 +142,48 @@ type="selection" width="55" /> <el-table-column prop="emergencyPlanName" label="演练名称" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillName" label="演练名称" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillAddress" label="演练地点" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable> <template #default="scope"> <div v-if="scope.row.drillWay=='0'">综合</div> <div v-if="scope.row.drillWay=='1'">桌面</div> <div v-if="scope.row.drillWay=='2'">专项</div> </template> </el-table-column> <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable> <template #default="scope"> <div v-if="scope.row.drillLevel=='1'">公司级</div> <div v-if="scope.row.drillLevel=='2'">分厂级</div> <div v-if="scope.row.drillLevel=='3'">车间级</div> </template> </el-table-column> <el-table-column prop="drillPlanDate" label="计划演练日期" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillRecordDate" label="演练记录日期" show-overflow-tooltip sortable></el-table-column> <!-- <el-table-column prop="attachments" label="应急预案" show-overflow-tooltip sortable></el-table-column>--> <el-table-column label="操作" width="260" align="center" fixed="right"> <template #default="scope"> <el-button size="small" text disabled> <el-icon style="margin-right: 5px;"> <EditPen /> </el-icon>评价 </el-button> <!--<el-button size="small" text disabled>--> <!--<el-icon style="margin-right: 5px;">--> <!--<EditPen />--> <!--</el-icon>评价--> <!--</el-button>--> <!-- <el-button size="small" text type="primary" @click="onFlowChart(scope.row.id)">--> <!-- 审批进度--> <!-- </el-button>--> <el-button size="small" text type="primary" @click="onApprovalProgress('详情',scope.row.id)"> <el-button size="small" text type="primary" @click="onApprovalProgress('查看评价',scope.row.id)"> <el-icon style="margin-right: 5px;"> <EditPen /> </el-icon>查看评价 </el-button> <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> <el-icon style="margin-right: 5px;"> <EditPen /> </el-icon>整改 </el-button> <el-button size="small" text disabled @click="onOpenEdit(scope.row)"> 查看整改 </el-button> <!--<el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)">--> <!--<el-icon style="margin-right: 5px;">--> <!--<EditPen />--> <!--</el-icon>整改--> <!--</el-button>--> <!--<el-button size="small" text disabled @click="onOpenEdit(scope.row)">--> <!--查看整改--> <!--</el-button>--> </template> </el-table-column> </el-table> @@ -205,6 +236,7 @@ // import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; import RectificationDialog from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/rectificationDialog.vue'; import {emergencyDrillEvaluationApi} from '/@/api/emergencyDrillEvaluation' import {emergencyDrillExecuteApi} from "/@/api/emergencyDrillExecute"; // 定义接口来定义对象的类型 @@ -228,12 +260,20 @@ const activeName = ref('first') const handleClick = (tab: TabsPaneContext, event: Event) => { console.log(tab, event) if(tab.props.name=='first'){ listQuery.searchParams.status=false listApi() }else if(tab.props.name=='second'){ listQuery.searchParams.status=true listApi() } } // 列表参数 const listQuery = reactive({ pageIndex: 1, pageSize: 10, searchParams: { status:false }, }); // 定义表格数据 @@ -241,7 +281,8 @@ // 列表数据请求 const listApi = async () => { let res = await emergencyDrillEvaluationApi().getEmergencyDrillEvaluationList(listQuery); // let res = await emergencyDrillEvaluationApi().getEmergencyDrillEvaluationList(listQuery); let res = await emergencyDrillExecuteApi().getEmergencyDrillExecuteList(listQuery); if (res.data.code == 200) { tableData.value = res.data.data; pageIndex.value = res.data.pageIndex; @@ -289,6 +330,12 @@ if (val == '详情') { approvalRef.value.openDialog('查看演练实施评价', row, true); } if (val == '评价') { approvalRef.value.openDialog('演练实施评价', row, false); } if (val == '查看评价') { approvalRef.value.openDialog('演练实施查看评价', row, true); } }; // 新增后刷新 const onMyAdd = (e: boolean) => { src/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/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 @@ -17,9 +18,9 @@ > <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="演练名称" prop="drillPlanId"> <el-form-item label="演练名称" prop="drillName"> <el-input v-model="ruleForm.drillPlanId" v-model="ruleForm.drillName" placeholder="请选择" class="input-with-select" > @@ -29,10 +30,169 @@ </el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="实际到场人员" prop="autualUser" > </el-row> <el-row :gutter="35"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="演练地点" prop="drillAddress"> <el-input :disabled="true" v-model="drillRuleForm.drillAddress" placeholder="请填写演练地点"></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="主办部门" placeholder="请选择" prop="departmentId"> <el-tree-select :disabled="true" v-model="drillRuleForm.departmentId" :data="deptData" 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 :disabled="true" v-model="drillRuleForm.drillWay" class="w100" placeholder="请选择"> <el-option label="综合" value="0"></el-option> <el-option label="桌面" value="1"></el-option> <el-option label="专项" value="2"></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="planName" > <el-input v-model="ruleForm.autualUser" :disabled="true" v-model="drillRuleForm.planName" placeholder="请选择" class="input-with-select" > <template #append> <el-button :disabled="true" :icon="Search" @click="daiInpt"/> </template> </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="drillLevel"> <el-select :disabled="true" v-model="drillRuleForm.drillLevel" class="w100" placeholder="请选择"> <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="makingPlanDate"> <el-date-picker :disabled="true" v-model="drillRuleForm.makingPlanDate" 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="drillPlanDate"> <el-date-picker :disabled="true" v-model="drillRuleForm.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 :disabled="true" v-model="drillRuleForm.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="makingUserName"> <el-input :disabled="true" v-model="drillRuleForm.makingUserName" placeholder="请填写计划定制人"></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 :disabled="true" v-model="drillRuleForm.makingDepartmentId" check-strictly :data="deptData" 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="userListString" > <el-input :disabled="true" v-model="drillRuleForm.userListString" placeholder="请选择" class="input-with-select" > <template #append> <el-button :disabled="true" :icon="Search" @click="openUser(0)"/> </template> </el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="演练目的" prop="purpose"> <el-input :disabled="true" v-model="drillRuleForm.purpose" placeholder="请填写演练目的" class="input-with-select textarea" type="textarea" > </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="chargeUserListString" > <el-input :disabled="true" v-model="drillRuleForm.chargeUserListString" placeholder="请选择" class="input-with-select" > <template #append> <el-button :disabled="true" :icon="Search" @click="openUser(1)"/> </template> </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="insuranceMeasures"> <el-input :disabled="true" v-model="drillRuleForm.insuranceMeasures" placeholder="请填写保险措施"></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="drillExpense"> <el-input :disabled="true" v-model="drillRuleForm.drillExpense" placeholder="请填写演练经费"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="备注信息" prop="remark"> <el-input :disabled="true" v-model="drillRuleForm.remark" placeholder="请填写备注信息" class="input-with-select textarea" type="textarea" > </el-input> </el-form-item> </el-col> </el-row> <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="实际到场人员" prop="autualUserListString" > <el-input v-model="ruleForm.autualUserListString" placeholder="请选择" class="input-with-select" > @@ -53,9 +213,9 @@ </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="演练记录人" prop="recordUserUid" > <el-form-item label="演练记录人" prop="recordUserName" > <el-input v-model="ruleForm.recordUserUid" v-model="ruleForm.recordUserName" placeholder="请选择" class="input-with-select" > @@ -85,8 +245,10 @@ </span> </template> </el-dialog> <!--记录人--> <DailogSearchUser ref="Shows" @SearchUser="onUser"/> <UserCheckbox ref="userRef"/> <!--到场人员--> <DailogSearchUser ref="userRef" @SearchUser="selectDCuser"/> <RegionsDialog ref="openRef" @SearchUser="onUsers"/> </div> </template> @@ -95,7 +257,8 @@ import { // reactive, ref, defineComponent defineComponent, onMounted, } from 'vue'; import type { @@ -111,6 +274,8 @@ import DailogSearchUser from '/@/components/DailogSearchUser/index.vue' import RegionsDialog from '/@/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/regionsDialog.vue' import {emergencyDrillExecuteApi} from "/@/api/emergencyDrillExecute"; import {releaseDrillPlanApi} from "/@/api/emergencyDrillPlan"; import {goalManagementApi} from "/@/api/goalManagement"; export default defineComponent({ name: 'openAdd', @@ -127,8 +292,12 @@ const ruleForm = ref ({ drillRecordDate: '', // 演练记录时间 drillPlanId: '', //演练计划ID drillName:'', recordUserUid: '', // 记录人ID recordUserName:'', processDesc: '', // 演练过程描述 autualUserListString:'', userList: [ { userUid: '', @@ -151,10 +320,95 @@ .then((res) => { if (res.data.code == 200) { ruleForm.value = res.data.data; ruleForm.value.autualUserListString='' for(var a = 0;a<res.data.data.userList.length;a++){ ruleForm.value.autualUserListString += res.data.data.userList[a].userName+';' } releaseDrillPlanApi() .seeReleaseDrillPlan(res.data.data.drillPlanId) .then((res1) => { if (res1.data.code == 200) { drillRuleForm.value = res1.data.data; drillRuleForm.value.userListString='' drillRuleForm.value.chargeUserListString='' for(var a = 0;a<res1.data.data.userList.length;a++){ if(res1.data.data.userList[a].type==1){ drillRuleForm.value.userListString += res1.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<res1.data.data.chargeUserList.length;a++){ drillRuleForm.value.chargeUserListString += res1.data.data.chargeUserList[a].userName+';' } } }) } }); } }; const data = []; const deptData = [] //部门树 // const department = () => { // goalManagementApi() // .getTreedepartment() // .then((res) => { // if (res.data.code == 200) { // deptData.value = res.data.data; // console.log('-------',deptData.value) // } else { // ElMessage.error(res.data.msg); // } // }); // }; // // const propse = { // label: 'depName', // children: 'children', // value: 'depId', // }; //el-tree-select回显 const propse = { label: 'depName', children: 'children', }; //得到部门树 const department = async () => { await goalManagementApi() .getTreedepartment() .then((res) => { if (res.data.code == 200) { data.value = res.data.data; getTreeList(res.data.data, deptData); console.log('deptData',deptData) } else { ElMessage.error(res.data.msg); } }); }; // 递归树状数据且修改字段名 const getTreeList = (treeList, deptData) => { treeList.map((c) => { let tempData = { depName: c.depName, value: c.depId, children: [], }; if (c.children && c.children.length > 0) { tempData.children = []; getTreeList(c.children, tempData.children); } deptData.push(tempData); }); }; onMounted(() => { department(); }); //日期选择器 const drillRecordDate = ref('') // 表单提交验证必填项 @@ -222,6 +476,7 @@ ruleForm.value = { drillRecordDate: '', // 演练记录时间 drillPlanId: '', //演练计划ID drillName:'', recordUserUid: '', // 记录人ID processDesc: '', // 演练过程描述 userList: [ @@ -238,6 +493,7 @@ const resetForm = (formEl: FormInstance | undefined) => { isShowDialog.value = false; if (!formEl) return; drillRuleForm.value={} formEl.resetFields(); }; @@ -246,15 +502,53 @@ const regionsDialog = () => { openRef.value.openDailog() } //定义表单 const drillRuleForm = ref ({}) const onUsers = (e:any) => { console.log(e) releaseDrillPlanApi() .seeReleaseDrillPlan(e.id) .then((res) => { if (res.data.code == 200) { drillRuleForm.value = res.data.data; drillRuleForm.value.userListString='' drillRuleForm.value.chargeUserListString='' for(var a = 0;a<res.data.data.userList.length;a++){ if(res.data.data.userList[a].type==1){ drillRuleForm.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++){ drillRuleForm.value.chargeUserListString += res.data.data.chargeUserList[a].userName+';' } } }) ruleForm.value.drillPlanId=e.id ruleForm.value.drillName=e.drillName }; // 实际到场人员弹窗 const userRef = ref(); const openUser = () => { userRef.value.openDialog(); userRef.value.openDailog(0); }; const selectDCuser = (e) => { ruleForm.value.autualUserListString='' ruleForm.value.userList=[] for(var a = 0;a<e.length;a++){ ruleForm.value.userList.push( { userName: e[a].realName, userUid: e[a].uid, } ) ruleForm.value.autualUserListString+=e[a].realName+';' } } // 演练记录人弹窗 const Shows=ref() const daiInpt=()=>{ @@ -262,6 +556,7 @@ } const onUser = (e:any) => { ruleForm.value.recordUserUid=e.uid ruleForm.value.recordUserName=e.realName }; //全屏 const full = ref(false); @@ -296,6 +591,12 @@ titles, disabled, emit, selectDCuser, drillRuleForm, deptData, propse, data, department }; }, }); src/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/regionsDialog.vue
@@ -1,5 +1,5 @@ <template> <el-dialog v-model="dialogVisible" title="选择应急预案" width="900px" draggable :fullscreen="full"> <el-dialog v-model="dialogVisible" title="选择演练计划" width="900px" draggable :fullscreen="full"> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-row> <el-col :span="18"> @@ -32,7 +32,7 @@ </el-radio-group> </template> </el-table-column> <el-table-column align="center" prop="drillName" label="预案名称" /> <el-table-column align="center" prop="drillName" label="演练名称" /> </el-table> <div class="pages"> <el-pagination src/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/index.vue
@@ -42,13 +42,25 @@ type="selection" width="55" /> <el-table-column prop="emergencyPlanName" label="演练名称" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillName" label="演练名称" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillAddress" label="演练地点" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable> <template #default="scope"> <div v-if="scope.row.drillWay=='0'">综合</div> <div v-if="scope.row.drillWay=='1'">桌面</div> <div v-if="scope.row.drillWay=='2'">专项</div> </template> </el-table-column> <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable> <template #default="scope"> <div v-if="scope.row.drillLevel=='1'">公司级</div> <div v-if="scope.row.drillLevel=='2'">分厂级</div> <div v-if="scope.row.drillLevel=='3'">车间级</div> </template> </el-table-column> <el-table-column prop="drillPlanDate" label="计划演练日期" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="drillRecordDate" label="演练记录时间" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="planId" label="应急预案" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="emergencyPlanName" label="应急预案" show-overflow-tooltip sortable></el-table-column> <el-table-column label="操作" width="260" align="center" fixed="right"> <template #default="scope"> <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> 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 @@ -41,16 +42,17 @@ <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="0"></el-option> <el-option label="桌面" value="1"></el-option> <el-option label="专项" value="2"></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" > @@ -63,9 +65,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> @@ -80,13 +82,13 @@ </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 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="makingUserUid"> <el-input v-model="ruleForm.makingUserUid" placeholder="请填写计划定制人" disabled></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"> @@ -102,14 +104,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="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> @@ -126,14 +128,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> @@ -161,20 +163,20 @@ </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> <!--<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>--> </el-form-item> </el-col> </el-row> @@ -187,7 +189,8 @@ </template> </el-dialog> <RegionsDialog ref="Shows" @SearchUser="onUser"/> <UserCheckbox ref="userRef"/> <DailogSearchUser ref="userRef" @SearchUser="SearchUser" /> <DailogSearchUser ref="userFZRef" @SearchUser="SearchFZUser" /> </div> </template> @@ -208,16 +211,17 @@ 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 {goalManagementApi} from "/@/api/goalManagement"; import { Session } from '/@/utils/storage'; export default defineComponent({ name: 'openAdd', components: { RegionsDialog, UserCheckbox, DailogSearchUser }, setup(props, { emit }) { const isShowDialog = ref(false) @@ -228,8 +232,10 @@ makingPlanDate: '', // 计划制定日期 drillPlanDate: '', //计划演练日期 makingUserUid: '', //计划制定人ID makingUserName: '', //计划制定人Name makingDepartmentId: '', // 计划制定部门ID planId: '', // 应急预案ID planName: '', // 应急预案name departmentId: '', // 主办部门ID drillExpense: '', // 演练经费 drillLevel: '', //演练级别 @@ -240,26 +246,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; @@ -269,6 +268,20 @@ .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+';' } } }); } @@ -280,74 +293,6 @@ // 可选择树 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 = () => { @@ -374,6 +319,7 @@ }); // 表单提交验证必填项 const submitForm = async (title: string, formEl: FormInstance | undefined) => { ruleForm.value.userList = ruleForm.value.userList.concat(ruleForm.value.chargeUserList) if (title == '新建应急演练计划发布') { if (!formEl) return; await formEl.validate((valid, fields) => { @@ -440,6 +386,7 @@ makingUserUid: '', //计划制定人ID makingDepartmentId: '', // 计划制定部门ID planId: '', // 应急预案ID planName: '', // 应急预案name departmentId: '', // 主办部门ID drillExpense: '', // 演练经费 drillLevel: '', //演练级别 @@ -450,27 +397,42 @@ 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; 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(); }; // 应急队伍弹窗 @@ -480,14 +442,53 @@ } 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 = () => { @@ -525,6 +526,9 @@ resetForm, emit, onUser, userFZRef, SearchUser, SearchFZUser }; }, }); src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue
@@ -87,7 +87,7 @@ pageIndex: 1, pageSize: 10, searchParams: { name: '', name: "", type: "", abolishStatus: false }, }); // 定义表格数据 src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue
@@ -50,11 +50,11 @@ <el-table-column prop="gmtModitify" label="修改时间" show-overflow-tooltip sortable></el-table-column> <el-table-column label="操作" width="260" align="center"> <template #default="scope"> <el-button size="small" text type="primary" @click="releaseOfDrillPlan(0)"> <el-icon style="margin-right: 5px;"> <VideoPlay /> </el-icon>启动 </el-button> <!--<el-button size="small" text type="primary" @click="releaseOfDrillPlan(0)">--> <!--<el-icon style="margin-right: 5px;">--> <!--<VideoPlay />--> <!--</el-icon>启动--> <!--</el-button>--> <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> <el-icon style="margin-right: 5px;"> <View /> src/views/contingencyManagement/emergencyPlanStartRecord/index.vue
@@ -61,7 +61,7 @@ type="selection" width="55" /> <el-table-column prop="planId" label="应急预案" min-width="120" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="planName" label="应急预案" min-width="120" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="userName" label="启动人" min-width="120" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="startCreate" label="启动时间" min-width="120" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="remark" label="备注" min-width="120" show-overflow-tooltip sortable></el-table-column> src/views/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue
@@ -14,7 +14,7 @@ </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="保养结果" prop="inspectResult"> <el-form-item label="检查结果" prop="inspectResult"> <el-select v-model="ruleForm.inspectResult" class="w100" placeholder="请选择"> <el-option label="正常" value="1"></el-option> <el-option label="异常" value="2"></el-option> src/views/loginPage/component/accountLogin.vue
@@ -88,6 +88,7 @@ Session.set('token', res.data.data.accessToken); Session.set('projectId',''); Session.set('uid',res.data.data.uid); Session.set('realName',res.data.data.realName); signInSuccess(); }else{ state.loading.signIn = false