From 381d806f7a04ed66ceb8dcb848c2b17de4202554 Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: Thu, 31 Mar 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