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