From 77737f4e73f7267170b9b06fc73d1610c29c0661 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 12 十一月 2024 13:18:35 +0800
Subject: [PATCH] 新增

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

diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
index f9288e6..e28aa17 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
@@ -90,15 +90,15 @@
         </el-col>
         <el-col :span="12">
           <el-form-item label="作业人" prop="operatorUids">
-            <el-select v-model="form.operatorUids" filterable multiple clearable>
-              <el-option
-                  v-for="item in zyList"
-                  :key="item.uid"
-                  :label="item.realName"
-                  :value="item.uid"
-              />
-            </el-select>
-            <!--            <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>-->
+<!--            <el-select v-model="form.operatorUids" filterable multiple clearable>-->
+<!--              <el-option-->
+<!--                  v-for="item in zyList"-->
+<!--                  :key="item.uid"-->
+<!--                  :label="item.realName"-->
+<!--                  :value="item.uid"-->
+<!--              />-->
+<!--            </el-select>-->
+                <el-cascader style="width: 100%" v-model="form.operatorUids" :options="zyList?zyList:lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
           </el-form-item>
         </el-col>
 			</el-row>
@@ -345,7 +345,7 @@
 </template>
 
 <script lang="ts">
-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, onUpdated } from 'vue';
+import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, onUpdated, nextTick} from 'vue';
 	import { storeToRefs } from 'pinia';
 	import { initBackEndControlRoutes } from '/@/router/backEnd';
 	import {useUserInfo} from "/@/stores/userInfo";
@@ -504,35 +504,11 @@
           }
         },
         cas2Props: {
-          expandTrigger: 'hover',
           value: 'uid',
           label: 'realName',
           multiple: true,
-          checkStrictly: false,
-          lazy: true,
-          async lazyLoad(node, resolve){
-            const { value, level } = node
-            let nodes = []
-            if(level == 0){
-              nodes = props.lists.spList.opList
-            }else{
-              let res = await userApi().getCtf({uid: value})
-              if(res.data.code == 200){
-                nodes = res.data.data
-              }else{
-                ElMessage({
-                  type: 'warning',
-                  message: res.data.msg
-                })
-              }
-            }
-            nodes=nodes.map(item => ({
-              uid: item.certNo +','+ item.certExpiredAt+','+item.certTypeName,
-              realName: node.label + '(' +item.certTypeName +' ' + item.certExpiredAt + ')',
-              leaf: level >= 1
-            }))
-            resolve(nodes)
-          }
+          checkStrictly: true,
+          children: 'certList'
         },
         cas3Props: {
           expandTrigger: 'hover',
@@ -557,8 +533,8 @@
               }
             }
             nodes=nodes.map(item => ({
-              uid: item.certNo +','+ item.certExpiredAt+','+item.certTypeName,
-              realName: node.label + '(' +item.certTypeName +' ' + item.certExpiredAt + ')',
+              uid: item.certNo +','+ item.certExpiredAt,
+              realName: '(' +item.certTypeName +' ' + item.certExpiredAt + ')',
               leaf: level >= 1
             }))
             resolve(nodes)
@@ -637,17 +613,49 @@
         getBasicData()
       })
 
+
       onUpdated(()=>{
         console.log('false loading')
       })
 
-      const getWorkerList = (val)=>{
-        const filteredList = props.lists.spList.opList.filter(i => state.form.workDepIds.includes(i.depId));
+      const getWorkerList = ()=>{
+        let idList:Array<any> = []
+        for(let i of state.form.workDepIds){
+          idList = idList.concat(getListFromDep(getIdListsFormDepId(props.lists.departList,i)))
+        }
+        const depLists = [...new Set(idList)]
+        const filteredList = props.lists.spList.opList.filter(i => depLists.includes(i.depId));
         if(filteredList && filteredList.length>0){
           state.zyList = filteredList
         }else{
           state.zyList = props.lists.spList.opList
         }
+      }
+
+      const getListFromDep = (dep) =>{
+        let depIds = []
+        depIds.push(dep.depId)
+        if (Array.isArray(dep.children)) {
+          for (let child of dep.children) {
+            depIds = depIds.concat(getListFromDep(child));
+          }
+        }
+        return depIds;
+      }
+
+      const getIdListsFormDepId=(DepList:Array<any>,id:number)=>{
+        for(const i of DepList){
+          if(i.depId === id){
+            return i
+          }
+          if(Array.isArray(i.children)){
+            const node:any = getIdListsFormDepId(i.children,id)
+            if(node){
+              return node
+            }
+          }
+        }
+        return null
       }
 
       const openWorkSelect = ()=>{
@@ -721,9 +729,9 @@
         return arr.map((i)=>{
           return {
             uid: i[0],
-            certificate: i[1].split(',')[0],
-            certExpiredAt: i[1].split(',')[1],
-            certTypeName: i[1].split(',')[2]
+            certificate: i[1]?i[1].split(',')[0]:'',
+            certExpiredAt: i[1]?i[1].split(',')[1]:'',
+            certTypeName: ''
           }
         })
       }
@@ -759,17 +767,15 @@
               temp.push(i)
             }
           }
-          if(type == '作业人'){state.form.operatorUids = temp}
+          if(type == '作业人'){state.form.operatorUids = JSON.parse(JSON.stringify(temp))}
           // if(type == '分析人'){state.form.analystUids = temp}
           if(type == '监护人'){state.form.guardianUids = temp}
           if(type == '确认人'){state.form.safetyMeasureUids = temp}
           if(type == '结束人'){state.form.startOrEndUids = temp}
-          console.log(value,state.form.operatorUids,55)
         }
       }
 
       const submitForm = async (formEl: FormInstance | undefined) => {
-        console.log(state.form.operatorUids,666)
         if (!formEl) return
         await formEl.validate(async (valid, fields) => {
           if (valid) {
@@ -794,7 +800,8 @@
               return item
             })
             data.workDetail.workMethod = data.workDetail.methodList.join(',')
-            data.operatorUids = transform2Arr(data.operatorUids)
+            // data.operatorUids = transform2Arr(data.operatorUids)
+            data.operatorUids = transformArr(data.operatorUids)
             data.headUids = transform2Arr(data.headUids)
             // data.analystUids = transformArr(data.analystUids)
             data.guardianUids = transform2Arr(data.guardianUids)

--
Gitblit v1.9.2