From fcc1ea2bf3ce3efe1f927bd087e4cd6cf2116c32 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期三, 30 三月 2022 16:21:36 +0800 Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/shf' into master --- src/views/safetyproduction/new.vue | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 309 insertions(+), 0 deletions(-) diff --git a/src/views/safetyproduction/new.vue b/src/views/safetyproduction/new.vue new file mode 100644 index 0000000..ca2005c --- /dev/null +++ b/src/views/safetyproduction/new.vue @@ -0,0 +1,309 @@ +<template> + <div class="app-container"> + <div class="box"> + <div class="box-left"> + <Titlename title="检查项树"></Titlename> + <div class="box-left-content"> + <el-tree + :data="tree" + node-key="id" + @check="treeClick" + 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> + <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="评审标准"> + <el-table-column + prop="veto" + align="center" + label="否决项" + ></el-table-column> + <el-table-column + 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 + > + <!-- <el-button type="text" size="small" style="color: red" + >删除</el-button + > --> + </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() { + return { + dialogVisible: false, + show: true, + form: { + inspectionName:"", + inspector:"", + inspectionTime:"", + status:"", + itemList:[] + }, + formInline: { + user: "", + region: "", + }, + 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; + }, + }, +}; +</script> +<style scoped> +.app-container { + padding: 0px; +} +.box { + width: 100%; + display: flex; + justify-content: space-between; + background-color: rgb(223, 229, 235); +} +.box-left { + width: 20%; + min-height: 800px; + background-color: white; + border-radius: 5px; +} +.box-left-content { + padding: 10px; +} +.box-right { + position: relative; + width: 79%; + background-color: white; + border-radius: 5px; +} +.title { + font-size: 16px; + padding: 10px 20px; + font-weight: bold; +} +.titles { + font-size: 14px; +} +.btns{ + position: absolute; + top: 10px; + right: 50px; +} +</style> \ No newline at end of file -- Gitblit v1.9.2