From 381d806f7a04ed66ceb8dcb848c2b17de4202554 Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: 星期四, 31 三月 2022 10:17:30 +0800
Subject: [PATCH] 检查清单

---
 src/views/safetyproduction/new.vue |  145 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 121 insertions(+), 24 deletions(-)

diff --git a/src/views/safetyproduction/new.vue b/src/views/safetyproduction/new.vue
index ca2005c..2a1eef5 100644
--- a/src/views/safetyproduction/new.vue
+++ b/src/views/safetyproduction/new.vue
@@ -5,18 +5,24 @@
         <Titlename title="检查项树"></Titlename>
         <div class="box-left-content">
           <el-tree
+            ref="tree"
             :data="tree"
-            node-key="id"
+            node-key="value"
             @check="treeClick"
+            :expand-on-click-node="false"
+            :default-checked-keys="treeList"
             show-checkbox
           ></el-tree>
         </div>
       </div>
       <div class="box-right" v-if="list == '' ? false : true">
-        <el-button type="primary" @click="open()" class="btns">添加</el-button>
+        <div class="btns">
+        <el-button type="primary" class="btn" @click="open(0)">添加</el-button>
+         <el-button type="primary" class="btn" @click="open(-1)">暂存</el-button>
+         </div>
         <div v-for="(item, i) in lists" :key="i">
         <div class="title">
-          A级要素:<span>{{ item.nameA }}</span>
+          A级要素:<span>{{ item.elementAName }}</span>
         </div>
         <div v-for="(item, index) in item.child" :key="index">
           <el-row class="titles">
@@ -29,7 +35,7 @@
           </el-row>
           <el-row>
             <el-col :span="22" :offset="1">
-              <el-table border :data="item.child">
+              <el-table ref="table" border :data="item.child">
                 <el-table-column
                   prop="standardizationRequirements"
                   align="center"
@@ -55,10 +61,11 @@
                   <el-table-column
                     align="center"
                     width="80px"
-                    type="expand"
                     label="扣分项"
+                    type="expand"
                   >
-                    <el-table :data="item.child.deductionList">
+                  <template slot-scope="scope">
+                    <el-table :data="scope.row.deductionList">
                       <el-table-column
                         prop="name"
                         align="center"
@@ -74,6 +81,7 @@
                       >
                       </el-table-column>
                     </el-table>
+                     </template>
                   </el-table-column>
                 </el-table-column>
                 <el-table-column align="center" label="操作" width="200px">
@@ -106,7 +114,7 @@
     <el-input v-model="form.inspectionName"></el-input>
   </el-form-item>
    <el-form-item label="检查人名称">
-    <el-select v-model="form.inspector" placeholder="请选择">
+    <el-select v-model="form.inspector" style="width:100%" placeholder="请选择">
     <el-option
       v-for="item in nameList"
       :key="item.id"
@@ -117,7 +125,7 @@
   </el-form-item>
    <el-form-item label="时间">
     <el-col :span="11">
-      <el-date-picker type="date"  format="yyyy 年 MM 月 dd 日" placeholder="开始时间" v-model="form.inspectionTime" style="width: 100%;"></el-date-picker>
+      <el-date-picker  type="date"  format="yyyy 年 MM 月 dd 日" placeholder="开始时间" v-model="form.inspectionTime" style="width: 100%;"></el-date-picker>
     </el-col>
     <!-- <el-col style="text-align:center" :span="2">-</el-col>
     <el-col :span="11">
@@ -125,9 +133,9 @@
     </el-col> -->
   </el-form-item>
     </el-form>
-  <span slot="footer" class="dialog-footer">
+  <span slot="footer" style="text-align:center;display:block;" class="dialog-footer">
+     <el-button type="primary" class="btn" @click="addC">确 定</el-button>
     <el-button @click="dialogVisible = false">取 消</el-button>
-    <el-button type="primary" @click="addC">确 定</el-button>
   </span>
 </el-dialog>
   </div>
@@ -139,6 +147,8 @@
   safetyInspectionItemTreeB,
   safetySelfInspectionAdd,
   safetyInspectionItemName,
+  safetySelfInspectionInfo,
+  safetySelfInspectionMod,
 } from "@/api/safetySelfInspection.js";
 export default {
   components: { Titlename },
@@ -162,18 +172,48 @@
       nameList:[],
       tree: [],
       id: "",
-      nameA: "",
-      arr:[]
+      elementAName: "",
+      arr:[],
+      treeList:[],
+       defaultProps: {
+          children: 'children',
+          label: 'label'
+        },
+        itemId:""
     };
   },
   created() {
     this.TreeA();
+    this.id=this.$route.query.name
+    this.itemId=this.$route.query.id
+    this.itemInfo(this.$route.query.id)
   },
   methods: {
+       itemInfo(id) {
+       safetySelfInspectionInfo({id:id}).then((res) => {
+        if (res.data.code == 200){
+          this.form=res.data.result
+          console.log(res.data.result)
+          this.list = res.data.result;
+          var trees=[]
+          for(var i=0;i<this.list.itemList.length;i++){
+            trees.push(this.list.itemList[i].elementA)
+          }
+          this.treeList=Array.from(new Set(trees))
+        var arr = this.checkSameDataA(this.list.itemList);
+        console.log('tag', arr)
+        for (var i = 0; i < arr.length; i++) {
+          arr[i].child = this.checkSameData(arr[i].child);
+          arr[i].id={safetySelfInspectionId:arr[i].child.safetySelfInspectionId,safetyInspectionItemId:arr[i].child.safetyInspectionItemId}
+        }
+        this.lists = arr;
+        console.log(this.lists)
+        }
+      });
+    },
     TreeA() {
       safetyInspectionItemTreeA().then((res) => {
         if (res.data.code == 200) {
-          // console.log(res.data)
           this.tree = res.data.result;
         }
       });
@@ -181,12 +221,12 @@
     TreeB(id) {
       safetyInspectionItemTreeB({ id: id }).then((res) => {
         this.list=[]
+        if(this.id=="添加"){
         if (res.data.code == 200) {
            this.list = res.data.result;
-           console.log(this.list)
-          var capA={nameA:'',id:[],child:[]}
+          var capA={elementAName:'',id:[],child:[]}
           var atte=[]
-           capA.nameA = this.list[0].elementAName;
+           capA.elementAName = this.list[0].elementAName;
            for(var i=0;i<this.list.length;i++){
              var capB={safetySelfInspectionId:"",safetyInspectionItemId:""}
              capB.safetyInspectionItemId=this.list[i].id
@@ -194,16 +234,53 @@
            }
            capA.id=atte
            capA.child= this.checkSameData(this.list);
-           if(this.lists.findIndex(item=>item.nameA===capA.nameA)==-1){
+           if(this.lists.findIndex(item=>item.elementAName===capA.elementAName)==-1){
              this.lists.push(capA)
 
            }else{
-            var i=this.lists.findIndex(item=>item.nameA===capA.nameA)
+            var i=this.lists.findIndex(item=>item.elementAName===capA.elementAName)
             this.lists.splice(i,1)
            }
         }
-        console.log(this.lists)
+        }else if(this.id=="编辑"){
+          this.list = res.data.result;
+          var capA={elementAName:'',id:[],child:[]}
+          var atte=[]
+           capA.elementAName = this.list[0].elementAName;
+           for(var i=0;i<this.list.length;i++){
+             var capB={safetySelfInspectionId:"",safetyInspectionItemId:""}
+             capB.safetyInspectionItemId=this.list[i].id
+             capB.safetySelfInspectionId=this.itemId
+             atte.push(capB)
+           }
+           console.log("数据",this.lists)
+           capA.id=atte
+           capA.child= this.checkSameData(this.list);
+           if(this.lists.findIndex(item=>item.elementAName===capA.elementAName)==-1){
+             this.lists.push(capA)
+
+           }else{
+            var i=this.lists.findIndex(item=>item.elementAName===capA.elementAName)
+            this.lists.splice(i,1)
+           }
+        }
       });
+    },
+       checkSameDataA(resData) {
+      let dataInfo = {};
+      resData.forEach((item, index) => {
+        let { elementAName } = item;
+        if (!dataInfo[elementAName]) {
+          dataInfo[elementAName] = {
+            elementAName,
+            id:{},
+            child: [],
+          };
+        }
+        dataInfo[elementAName].child.push(item);
+      });
+      let list = Object.values(dataInfo); // list 转换成功的数据
+      return list;
     },
     checkSameData(resData) {
       let dataInfo = {};
@@ -231,7 +308,9 @@
         },
       });
     },
-    open(){
+    open(type){
+      this.dialogVisible = true
+      this.form.status=type
       var arr=[]
       for(var i=0;i<this.lists.length;i++){
         this.lists[i].id
@@ -240,15 +319,15 @@
         }
       }
       this.form.itemList=arr
-    this.dialogVisible = true
     safetyInspectionItemName().then(res=>{
-      // console.log(res)
-  if(res.data.code==200){
+    if(res.data.code==200){
           this.nameList=res.data.result
         }
     })
+      
     },
     addC(){
+        if(this.id=='添加'){
       safetySelfInspectionAdd(this.form).then(res=>{
        if(res.data.code==200){
          this.dialogVisible=false
@@ -261,6 +340,17 @@
        }
       
       })
+        }else if(this.id=='编辑'){
+        safetySelfInspectionMod(this.form).then(res=>{
+           this.dialogVisible=false
+           this.$notify({
+              type: "success",
+              duration: 2000,
+              message: "编辑成功",
+              title: "成功",
+            });
+        })
+      }
     },
     btnsQX() {
       this.show = true;
@@ -285,7 +375,7 @@
   border-radius: 5px;
 }
 .box-left-content {
-  padding: 10px;
+  padding:10px 20px;
 }
 .box-right {
   position: relative;
@@ -306,4 +396,11 @@
   top: 10px;
   right: 50px;
 }
+.box-left-content /deep/ .el-tree-node__expand-icon{
+  display: none;
+}
+.btn {
+  background-color: #034ea2;
+  border: 1px solid #034ea2;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.2