From 01f3e49f3763a25ef67a4c3e5786491703a1aece Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期四, 13 七月 2023 14:39:58 +0800
Subject: [PATCH] 特殊作业对接修改

---
 src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue |  101 +++++++++++++++++++-------------------------------
 1 files changed, 38 insertions(+), 63 deletions(-)

diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
index 24af233..f227b4c 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
@@ -99,15 +99,11 @@
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="12" class="valueSelect">
           <el-form-item label="关联其他特殊作业" prop="involveOtherWork">
-            <el-select v-model="form.involveOtherWork" multiple clearable>
-              <el-option
-                  v-for="item in otherWorkList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.label"
-              />
+            <el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
+              <el-option v-for="item in otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
+              </el-option>
             </el-select>
           </el-form-item>
         </el-col>
@@ -200,7 +196,7 @@
         <el-row style="display: flex;justify-content: center">
           <el-table :data="safetyMeasureBasicList" style="width: 90%" border>
             <el-table-column type="index" label="序号" width="100px" align="center"/>
-            <el-table-column prop="measureContent" label="安全措施" align="center"/>
+            <el-table-column prop="measureContent" label="安全措施"/>
 <!--            <el-table-column prop="address" label="确认人">-->
 <!--              <template #default="scope">-->
 
@@ -306,6 +302,7 @@
 		<div class="applyBtn">
 			<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">提交申报</el-button>
 		</div>
+    <work-select ref="workSelectRef" @refreshWorks="getSelected()"></work-select>
 	</div>
 </template>
 
@@ -319,10 +316,10 @@
 	import { ElMessage, ElMessageBox } from 'element-plus'
 	import type { FormInstance, FormRules } from 'element-plus'
 	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+  import workSelect from "/@/views/newSpecialWorkSystem/workTicket/zysq/components/workSelect.vue";
 	interface stateType {
 		form: Object,
 		workLevelList: Array<any>,
-		otherWorkList: Array<any>,
 		equipmentDialog: boolean,
     props:{},
     depProps:{},
@@ -330,8 +327,8 @@
 	}
 	export default defineComponent({
 		name: 'fireForm',
-		components: {},
-		props:['departList','departList2','workerList','deviceList'],
+		components: {workSelect},
+		props:['departList','departList2','workerList','deviceList','otherWorks'],
 		setup(props: any, context: any) {
 			const userInfo = useUserInfo()
 			const { userInfos } = storeToRefs(userInfo);
@@ -353,7 +350,7 @@
           workContent: '',
           workLocation: '',
           riskIdentification: '',
-          involveOtherWork: '',
+          involveOtherWork: [],
           safetyMeasureUids: [],
           approvalDepBasicList: [],
           acceptUid: null,
@@ -375,40 +372,6 @@
 					{
 						label: "特级动火作业",
 						value: 3
-					}
-				],
-				otherWorkList: [
-					{
-						label: "动火作业",
-						value: 1
-					},
-					{
-						label: "受限空间作业",
-						value: 2
-					},
-					{
-						label: "吊装作业",
-						value: 3
-					},
-					{
-						label: "动土作业",
-						value: 4
-					},
-					{
-						label: "断路作业",
-						value: 5
-					},
-					{
-						label: "高处作业",
-						value: 6
-					},
-					{
-						label: "临时用电作业",
-						value: 7
-					},
-					{
-						label: "盲板抽堵作业",
-						value: 8
 					}
 				],
         props:{
@@ -446,11 +409,20 @@
         startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
 				"workDetail.workMethod": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
 			});
+      const workSelectRef = ref()
 
 			// 页面载入时执行方法
 			onMounted(() => {
         getBasicData()
       });
+
+      const openWorkSelect = ()=>{
+        workSelectRef.value.openDialog(state.form.involveOtherWork)
+      }
+
+      const getSelected = ()=>{
+        state.form.involveOtherWork = workSelectRef.value.selected
+      }
 
       const findParent = ()=>{
         state.form.seDepId = findNearestDepLevel2DepId(props.departList2,state.form.applyDepId)
@@ -494,6 +466,7 @@
       }
 
       const submitForm = async (formEl: FormInstance | undefined) => {
+        console.log(state.form.involveOtherWork,555)
         if (!formEl) return
         await formEl.validate(async (valid, fields) => {
           if (valid) {
@@ -506,9 +479,9 @@
                 return
               }
             }
-            if(Array.isArray(state.form.involveOtherWork)){
-              state.form.involveOtherWork = state.form.involveOtherWork.join(',')
-            }
+            // if(Array.isArray(state.form.involveOtherWork)){
+            //   state.form.involveOtherWork = state.form.involveOtherWork.join(',')
+            // }
             const res = await workApplyApi().submitFireApply(state.form)
             if (res.data.code === '200') {
               ElMessage({
@@ -522,7 +495,7 @@
                 type: 'warning',
                 message: res.data.msg
               });
-              state.form.involveOtherWork = state.form.involveOtherWork.split(',')
+              // state.form.involveOtherWork = state.form.involveOtherWork.split(',')
             }
           } else {
             console.log('error submit!', fields)
@@ -532,12 +505,10 @@
 
       const findNearestDepLevel2DepId = (data, targetDepId) => {
         let nearestDepId = null;
-
         const traverseTree = (node) => {
           if (node.depId === targetDepId) {
             return true;
           }
-
           if (node.children && node.children.length > 0) {
             for (const child of node.children) {
               const found = traverseTree(child);
@@ -549,14 +520,11 @@
               }
             }
           }
-
           return false;
         };
-
         for (const root of data) {
           traverseTree(root);
         }
-
         return nearestDepId;
       };
 
@@ -574,6 +542,9 @@
         isFirstRow,
         submitForm,
         findParent,
+        openWorkSelect,
+        getSelected,
+        workSelectRef,
 				Search,
 				ruleFormRef,
 				applyRules,
@@ -588,9 +559,12 @@
 		width: 100%;
     height: 100vh;
 		overflow: hidden;
-		position: relative;
     overflow-y: scroll;
-    padding: 0 0 120px;
+    &::-webkit-scrollbar{
+      width: 0;
+      background-color: transparent;
+    }
+
 		.homeCard{
 			width: 100%;
 			padding: 20px;
@@ -598,12 +572,9 @@
 			background: #fff;
 			border-radius: 4px;
 			margin-bottom: 20px;
+      position: relative;
 		}
 		.applyBtn{
-      position: fixed;
-      left: 0;
-      bottom: 0;
-      z-index: 999;
 			width: 100%;
 			background: #fff;
 			padding: 20px 0;
@@ -631,7 +602,11 @@
 			width: 100% !important;
 		}
 	}
-
+  .valueSelect{
+    ::v-deep(.el-popper){
+      display: none !important;
+    }
+  }
 	.tab-i{
 		margin-bottom: 15px;
 

--
Gitblit v1.9.2