From 4a6b6d253451a14063df0659877f3d8c4ca921a5 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期四, 31 三月 2022 15:20:57 +0800 Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/shf' into master --- src/views/safetyproduction/new.vue | 483 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 319 insertions(+), 164 deletions(-) diff --git a/src/views/safetyproduction/new.vue b/src/views/safetyproduction/new.vue index ca2005c..9ad7b6f 100644 --- a/src/views/safetyproduction/new.vue +++ b/src/views/safetyproduction/new.vue @@ -5,131 +5,158 @@ <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 v-for="(item, i) in lists" :key="i"> - <div class="title"> - A级要素:<span>{{ item.nameA }}</span> + <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, index) in item.child" :key="index"> - <el-row class="titles"> - <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="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="评审标准"> + <div v-for="(item, i) in lists" :key="i"> + <div class="title"> + A级要素:<span>{{ item.elementAName }}</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>{{ 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 ref="table" border :data="item.child"> <el-table-column - prop="veto" + prop="standardizationRequirements" align="center" - label="否决项" + label="标准化要求" + > + </el-table-column> + <el-table-column + prop="enterpriseStandard" + align="center" + label="企业达标标准" ></el-table-column> <el-table-column + prop="reviewMethod" align="center" - width="80px" - type="expand" - label="扣分项" - > - <el-table :data="item.child.deductionList"> - <el-table-column - 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 + 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" + label="扣分项" + type="expand" > - <!-- <el-button type="text" size="small" style="color: red" + <template slot-scope="scope"> + <el-table :data="scope.row.deductionList"> + <el-table-column + 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> + </template> + </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 > --> - </template> - </el-table-column> - </el-table> - </el-col> - </el-row> - </div> + </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-dialog title="添加" :visible.sync="dialogVisible" :close-on-click-modal="false" 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" + style="width: 100%" + 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> + </el-form-item> + </el-form> + <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> + </span> + </el-dialog> </div> </template> <script> @@ -139,6 +166,8 @@ safetyInspectionItemTreeB, safetySelfInspectionAdd, safetyInspectionItemName, + safetySelfInspectionInfo, + safetySelfInspectionMod, } from "@/api/safetySelfInspection.js"; export default { components: { Titlename }, @@ -147,63 +176,155 @@ dialogVisible: false, show: true, form: { - inspectionName:"", - inspector:"", - inspectionTime:"", - status:"", - itemList:[] + inspectionName: "", + inspector: "", + inspectionTime: "", + status: "", + itemList: [], }, formInline: { user: "", region: "", }, list: [], - lists:[], - nameList:[], + lists: [], + 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); + for (var i = 0; i < arr.length; i++) { + var capB = { + safetySelfInspectionId: "", + safetyInspectionItemId: "", + } + var cser=[] + for(var j=0;j<arr[i].child.length;j++){ + capB.safetySelfInspectionId=arr[i].child[j].safetySelfInspectionId + capB.safetyInspectionItemId=arr[i].child[j].safetyInspectionItemId + cser.push(capB) + } + arr[i].id=cser + console.log('tag', capB) + arr[i].child = this.checkSameData(arr[i].child); + } + 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; } }); }, 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) - } + this.list = []; + if (this.id == "添加") { + if (res.data.code == 200) { + 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; + atte.push(capB); + } + 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); + } + } + } 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); + } + 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); + } } - console.log(this.lists) }); + }, + 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 = {}; @@ -224,43 +345,70 @@ this.TreeB(currentObj.value); }, handleClick(data) { - this.$router.push({ - path: "/reviewXG", - query: { - id: data, - }, - }); + if (data.safetyInspectionItemId != undefined) { + this.$router.push({ + path: "/reviewXG", + query: { + id: data.safetyInspectionItemId, + }, + }); + } else { + this.$router.push({ + path: "/reviewXG", + query: { + id: data.id, + }, + }); + } }, - 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]) + open(type) { + this.dialogVisible = true; + this.form.status = type; + var arr = []; + console.log("数据", this.lists); + 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 + this.form.itemList = arr; + safetyInspectionItemName().then((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({ + addC() { + if (this.id == "添加") { + safetySelfInspectionAdd(this.form).then((res) => { + if (res.data.code == 200) { + this.dialogVisible = false; + this.$notify({ type: "success", duration: 2000, message: "新增成功", title: "成功", }); - } - - }) + this.$router.push({ + path:"/checklistself" + }); + } + }); + } else if (this.id == "编辑") { + safetySelfInspectionMod(this.form).then((res) => { + this.dialogVisible = false; + this.$notify({ + type: "success", + duration: 2000, + message: "编辑成功", + title: "成功", + }); + }); + this.$router.push({ + path:"/checklistself" + }); + } }, btnsQX() { this.show = true; @@ -285,7 +433,7 @@ border-radius: 5px; } .box-left-content { - padding: 10px; + padding: 10px 20px; } .box-right { position: relative; @@ -301,9 +449,16 @@ .titles { font-size: 14px; } -.btns{ +.btns { position: absolute; 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