From 7f9b036ab4c97a7eb9bf93162431ad17450689ff Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: 星期二, 29 三月 2022 18:39:23 +0800
Subject: [PATCH] 自查清单

---
 src/views/safetyproduction/new.vue |  409 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 232 insertions(+), 177 deletions(-)

diff --git a/src/views/safetyproduction/new.vue b/src/views/safetyproduction/new.vue
index 66d9aa7..ca2005c 100644
--- a/src/views/safetyproduction/new.vue
+++ b/src/views/safetyproduction/new.vue
@@ -4,104 +4,142 @@
       <div class="box-left">
         <Titlename title="检查项树"></Titlename>
         <div class="box-left-content">
-          <!-- <el-form ref="form" :model="form" style="font-size: 12px" size="mini">
-            <el-row>
-              <el-col :span="12">
-                <el-form-item size="mini">
-                  <el-input
-                    v-model="form.name"
-                    placeholder="请输入检查项名称"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="11" :offset="1" style="white-space: nowrap">
-                <el-form-item size="mini">
-                  <el-button type="primary" class="btns" size="mini">搜索</el-button>
-                  <el-button
-                    type="primary"
-                    style="margin: 0px"
-                    class="btns"
-                    icon="el-icon-plus"
-                    size="mini"
-                  ></el-button>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form> -->
           <el-tree
-            :data="data"
-            :props="defaultProps"
+            :data="tree"
+            node-key="id"
+            @check="treeClick"
+            show-checkbox
           ></el-tree>
         </div>
       </div>
-      <div class="box-right" v-if="show">
-          <div class="title">A级要素:<span>A级要素2</span></div>
-        <div v-for="(item,index) in 2" :key="index">
+      <div class="box-right" v-if="list == '' ? false : true">
+        <el-button type="primary" @click="open()" class="btns">添加</el-button>
+        <div v-for="(item, i) in lists" :key="i">
+        <div class="title">
+          A级要素:<span>{{ item.nameA }}</span>
+        </div>
+        <div v-for="(item, index) in item.child" :key="index">
           <el-row class="titles">
-            <el-col :span="6" :offset="1"><p><span>B级要素:</span>法律、法规和标准的识别和获取</p></el-col>
-             <el-col :span="6"  :offset="4"><p><span>得分:</span>50</p></el-col>
+            <el-col :span="6" :offset="1"
+              ><p><span>B级要素:</span>{{ item.elementBName }}</p></el-col
+            >
+            <el-col :span="6" :offset="4"
+              ><p><span>得分:</span>50</p></el-col
+            >
           </el-row>
           <el-row>
-             <el-col :span="22" :offset="1">
-                  <el-table
-                    border
-                    :data="tableData"
+            <el-col :span="22" :offset="1">
+              <el-table border :data="item.child">
+                <el-table-column
+                  prop="standardizationRequirements"
+                  align="center"
+                  label="标准化要求"
+                >
+                </el-table-column>
+                <el-table-column
+                  prop="enterpriseStandard"
+                  align="center"
+                  label="企业达标标准"
+                ></el-table-column>
+                <el-table-column
+                  prop="reviewMethod"
+                  align="center"
+                  label="评审方法"
+                ></el-table-column>
+                <el-table-column prop="name" align="center" label="评审标准">
+                  <el-table-column
+                    prop="veto"
+                    align="center"
+                    label="否决项"
+                  ></el-table-column>
+                  <el-table-column
+                    align="center"
+                    width="80px"
+                    type="expand"
+                    label="扣分项"
                   >
-                    <el-table-column
-                      prop="date"
-                      align="center"
-                      label="标准化要求"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                      prop="name"
-                      align="center"
-                      label="企业达标标准"
-                    ></el-table-column>
-                    <el-table-column
-                      prop="name"
-                      align="center"
-                      label="评审方法"
-                    ></el-table-column>
+                    <el-table :data="item.child.deductionList">
                       <el-table-column
-                      prop="name"
-                      align="center"
-                      label="评审标准"
+                        prop="name"
+                        align="center"
+                        label="扣分项"
+                      >
+                      </el-table-column>
+                      <el-table-column prop="date" align="center" label="扣分">
+                      </el-table-column>
+                      <el-table-column
+                        prop="date"
+                        align="center"
+                        label="扣分备注"
+                      >
+                      </el-table-column>
+                    </el-table>
+                  </el-table-column>
+                </el-table-column>
+                <el-table-column align="center" label="操作" width="200px">
+                  <template slot-scope="scope">
+                    <el-button
+                      @click="handleClick(scope.row)"
+                      type="text"
+                      size="small"
+                      >修改</el-button
                     >
-                     <el-table-column
-                      prop="name"
-                      align="center"
-                      label="否决项"
-                    ></el-table-column>
-                     <el-table-column
-                      prop="name"
-                      align="center"
-                      label="扣分项"
-                    ></el-table-column>
-                    </el-table-column>
-                    <el-table-column align="center" label="操作" width="200px">
-                      <template slot-scope="scope">
-                        <el-button
-                          @click="handleClick(scope.row)"
-                          type="text"
-                          size="small"
-                          >修改</el-button
-                        >
-                        <!-- <el-button type="text" size="small" style="color: red"
+                    <!-- <el-button type="text" size="small" style="color: red"
                           >删除</el-button
                         > -->
-                      </template>
-                    </el-table-column>
-                  </el-table>
-                </el-col>
-              </el-row>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-col>
+          </el-row>
         </div>
         </div>
       </div>
+    </div>
+    <el-dialog
+  title="添加"
+  :visible.sync="dialogVisible"
+  width="30%"
+>
+  <el-form ref="form" :model="form" label-width="100px">
+     <el-form-item label="自查清单名称">
+    <el-input v-model="form.inspectionName"></el-input>
+  </el-form-item>
+   <el-form-item label="检查人名称">
+    <el-select v-model="form.inspector" placeholder="请选择">
+    <el-option
+      v-for="item in nameList"
+      :key="item.id"
+      :label="item.realname"
+      :value="item.id">
+    </el-option>
+  </el-select>
+  </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-col>
+    <!-- <el-col style="text-align:center" :span="2">-</el-col>
+    <el-col :span="11">
+      <el-date-picker type="date"  format="yyyy 年 MM 月 dd 日" placeholder="结束时间" v-model="form.inspectionEndTime" style="width: 100%;"></el-date-picker>
+    </el-col> -->
+  </el-form-item>
+    </el-form>
+  <span slot="footer" class="dialog-footer">
+    <el-button @click="dialogVisible = false">取 消</el-button>
+    <el-button type="primary" @click="addC">确 定</el-button>
+  </span>
+</el-dialog>
   </div>
 </template>
 <script>
 import Titlename from "../../components/Titlename/index.vue";
+import {
+  safetyInspectionItemTreeA,
+  safetyInspectionItemTreeB,
+  safetySelfInspectionAdd,
+  safetyInspectionItemName,
+} from "@/api/safetySelfInspection.js";
 export default {
   components: { Titlename },
   data() {
@@ -109,110 +147,121 @@
       dialogVisible: false,
       show: true,
       form: {
-        name: "",
+      inspectionName:"",
+      inspector:"",
+      inspectionTime:"",
+      status:"",
+      itemList:[]
       },
       formInline: {
         user: "",
         region: "",
       },
-      tableData: [
-        {
-          date: "2016-05-02",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1518 弄",
-          zip: 200333,
-        },
-        {
-          date: "2016-05-04",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1517 弄",
-          zip: 200333,
-        },
-        {
-          date: "2016-05-01",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1519 弄",
-          zip: 200333,
-        },
-        {
-          date: "2016-05-03",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1516 弄",
-          zip: 200333,
-        },
-      ],
-      data: [
-        {
-          label: "一级 1",
-          children: [
-            {
-              label: "二级 1-1",
-              children: [
-                {
-                  label: "三级 1-1-1",
-                },
-              ],
-            },
-          ],
-        },
-        {
-          label: "一级 2",
-          children: [
-            {
-              label: "二级 2-1",
-              children: [
-                {
-                  label: "三级 2-1-1",
-                },
-              ],
-            },
-            {
-              label: "二级 2-2",
-              children: [
-                {
-                  label: "三级 2-2-1",
-                },
-              ],
-            },
-          ],
-        },
-        {
-          label: "一级 3",
-          children: [
-            {
-              label: "二级 3-1",
-              children: [
-                {
-                  label: "三级 3-1-1",
-                },
-              ],
-            },
-            {
-              label: "二级 3-2",
-              children: [
-                {
-                  label: "三级 3-2-1",
-                },
-              ],
-            },
-          ],
-        },
-      ],
-      defaultProps: {
-        children: "children",
-        label: "label",
-      },
+      list: [],
+      lists:[],
+      nameList:[],
+      tree: [],
+      id: "",
+      nameA: "",
+      arr:[]
     };
   },
+  created() {
+    this.TreeA();
+  },
   methods: {
+    TreeA() {
+      safetyInspectionItemTreeA().then((res) => {
+        if (res.data.code == 200) {
+          // console.log(res.data)
+          this.tree = res.data.result;
+        }
+      });
+    },
+    TreeB(id) {
+      safetyInspectionItemTreeB({ id: id }).then((res) => {
+        this.list=[]
+        if (res.data.code == 200) {
+           this.list = res.data.result;
+           console.log(this.list)
+          var capA={nameA:'',id:[],child:[]}
+          var atte=[]
+           capA.nameA = this.list[0].elementAName;
+           for(var i=0;i<this.list.length;i++){
+             var capB={safetySelfInspectionId:"",safetyInspectionItemId:""}
+             capB.safetyInspectionItemId=this.list[i].id
+             atte.push(capB)
+           }
+           capA.id=atte
+           capA.child= this.checkSameData(this.list);
+           if(this.lists.findIndex(item=>item.nameA===capA.nameA)==-1){
+             this.lists.push(capA)
+
+           }else{
+            var i=this.lists.findIndex(item=>item.nameA===capA.nameA)
+            this.lists.splice(i,1)
+           }
+        }
+        console.log(this.lists)
+      });
+    },
+    checkSameData(resData) {
+      let dataInfo = {};
+      resData.forEach((item, index) => {
+        let { elementBName } = item;
+        if (!dataInfo[elementBName]) {
+          dataInfo[elementBName] = {
+            elementBName,
+            child: [],
+          };
+        }
+        dataInfo[elementBName].child.push(item);
+      });
+      let list = Object.values(dataInfo); // list 转换成功的数据
+      return list;
+    },
+    treeClick(currentObj) {
+      this.TreeB(currentObj.value);
+    },
+    handleClick(data) {
+      this.$router.push({
+        path: "/reviewXG",
+        query: {
+          id: data,
+        },
+      });
+    },
+    open(){
+      var arr=[]
+      for(var i=0;i<this.lists.length;i++){
+        this.lists[i].id
+        for(var j=0;j<this.lists[i].id.length;j++){
+          arr.push(this.lists[i].id[j])
+        }
+      }
+      this.form.itemList=arr
+    this.dialogVisible = true
+    safetyInspectionItemName().then(res=>{
+      // console.log(res)
+  if(res.data.code==200){
+          this.nameList=res.data.result
+        }
+    })
+    },
+    addC(){
+      safetySelfInspectionAdd(this.form).then(res=>{
+       if(res.data.code==200){
+         this.dialogVisible=false
+           this.$notify({
+              type: "success",
+              duration: 2000,
+              message: "新增成功",
+              title: "成功",
+            });
+       }
+      
+      })
+    },
     btnsQX() {
       this.show = true;
     },
@@ -239,16 +288,22 @@
   padding: 10px;
 }
 .box-right {
+  position: relative;
   width: 79%;
   background-color: white;
   border-radius: 5px;
 }
-.title{
+.title {
   font-size: 16px;
   padding: 10px 20px;
   font-weight: bold;
 }
-.titles{
+.titles {
   font-size: 14px;
 }
+.btns{
+  position: absolute;
+  top: 10px;
+  right: 50px;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.2