<template>
|
<div>
|
<div class="box-right">
|
<el-button
|
type="primary"
|
class="btn"
|
v-if="typeId == 2 ? false : true"
|
@click="finish()"
|
>结单</el-button
|
>
|
<div
|
v-for="(item, index) in lists"
|
:key="index"
|
style="padding: 0 0 20px 0"
|
>
|
<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"
|
><p><span>B级要素:</span>{{ item.elementBName }}</p></el-col
|
>
|
<el-col :span="6"
|
><p><span>总分:</span>{{ item.points }}</p></el-col
|
>
|
<el-col :span="6"
|
><p><span>得分:</span>{{ item.point }}</p></el-col
|
>
|
</el-row>
|
<el-row>
|
<el-col :span="24">
|
<el-table
|
border
|
:data="item.child"
|
:header-cell-style="{ background: '#eef1f6', color: '#606266' }"
|
:cell-style="{ background: '#fff', color: '#606266' }"
|
>
|
<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="veto"
|
align="center"
|
label="否决项"
|
></el-table-column>
|
<el-table-column align="center" label="评审结果">
|
<template slot-scope="scope">
|
<span v-if="scope.row.safetyInspectionItemResult == 0"
|
>否决</span
|
>
|
<span v-if="scope.row.safetyInspectionItemResult == 1"
|
>扣分</span
|
>
|
</template>
|
</el-table-column>
|
<el-table-column
|
align="center"
|
label="扣分项"
|
type="expand"
|
width="100px"
|
>
|
<template slot-scope="scope">
|
<el-table
|
:data="scope.row.selfDeductionList"
|
border
|
:header-cell-style="{
|
background: '#eef1f6',
|
color: '#606266',
|
}"
|
:cell-style="{ background: '#fff', color: '#606266' }"
|
>
|
<el-table-column
|
prop="name"
|
align="center"
|
label="扣分项"
|
>
|
</el-table-column>
|
<el-table-column prop="point" align="center" label="扣分">
|
</el-table-column>
|
<el-table-column
|
prop="remark"
|
align="center"
|
label="扣分备注"
|
>
|
</el-table-column>
|
</el-table>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="remark"
|
align="center"
|
label="备注"
|
></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"
|
:disabled="typeId == 2 ? true : false"
|
>评审</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>
|
</template>
|
<script>
|
import Titlename from "../../components/Titlename/index.vue";
|
import {
|
safetySelfInspectionInfo,
|
safetySelfInspectionFinish,
|
} from "@/api/safetySelfInspection.js";
|
export default {
|
components: { Titlename },
|
data() {
|
return {
|
dialogVisible: false,
|
form: {
|
name: "",
|
},
|
id: "",
|
formInline: {
|
user: "",
|
region: "",
|
},
|
list: [],
|
lists: [],
|
listType: [],
|
typeId: "",
|
};
|
},
|
created() {
|
this.id = this.$route.query.id;
|
this.typeId = this.$route.query.type;
|
this.safeInitem(this.id);
|
},
|
methods: {
|
finish() {
|
var faly = "";
|
var bar = [];
|
for (var i = 0; i < this.listType.length; i++) {
|
if (this.listType[i].safetyInspectionItemResult == null) {
|
faly = false;
|
} else {
|
faly = true;
|
}
|
bar.push(faly);
|
}
|
if (bar.indexOf(false) == -1) {
|
let id = this.id;
|
this.$confirm("确定要结单吗?", "提示", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
safetySelfInspectionFinish({ id: this.id }).then((res) => {
|
console.log(123, res);
|
if (res.data.code === "200") {
|
this.$notify({
|
title: "成功",
|
message: "结单成功",
|
type: "success",
|
duration: 2000,
|
});
|
this.$router.push({
|
path: "/safetyproduction/safetyproduction/checklistself",
|
});
|
} else {
|
this.$message({
|
message: res.data.message,
|
type: "warning",
|
});
|
}
|
});
|
})
|
.catch((error) => {});
|
} else {
|
alert("所有的检查项评审后才可以结单!");
|
}
|
},
|
|
safeInitem(id) {
|
safetySelfInspectionInfo({ id: id }).then((res) => {
|
if (res.data.code == 200) this.list = res.data.result;
|
this.listType = res.data.result.itemList;
|
var arr = this.checkSameDataA(this.list.itemList);
|
for (var i = 0; i < arr.length; i++) {
|
arr[i].child = this.checkSameData(arr[i].child);
|
arr[i].child.points = arr[i].child.point;
|
}
|
this.lists = arr;
|
console.log("tag", arr);
|
});
|
},
|
checkSameDataA(resData) {
|
let dataInfo = {};
|
resData.forEach((item, index) => {
|
let { elementAName } = item;
|
if (!dataInfo[elementAName]) {
|
dataInfo[elementAName] = {
|
elementAName,
|
child: [],
|
};
|
}
|
dataInfo[elementAName].child.push(item);
|
});
|
let list = Object.values(dataInfo); // list 转换成功的数据
|
return list;
|
},
|
checkSameData(resData) {
|
let dataInfo = {};
|
resData.forEach((item, index) => {
|
let { elementBName } = item;
|
if (!dataInfo[elementBName]) {
|
dataInfo[elementBName] = {
|
elementBName,
|
point: "",
|
points: item.point,
|
child: [],
|
};
|
}
|
dataInfo[elementBName].child.push(item);
|
});
|
let list = Object.values(dataInfo); // list 转换成功的数据
|
// console.log("数据",list)
|
for (var i = 0; i < list.length; i++) {
|
var pot = list[i].points;
|
for (var j = 0; j < list[i].child.length; j++) {
|
if (list[i].child[j].safetyInspectionItemResult != 0) {
|
for (
|
var s = 0;
|
s < list[i].child[j].selfDeductionList.length;
|
s++
|
) {
|
pot = pot - list[i].child[j].selfDeductionList[s].point;
|
}
|
} else {
|
var cont = 0;
|
pot = 0;
|
}
|
}
|
if (pot > 0) {
|
list[i].point = pot;
|
} else {
|
list[i].point = 0;
|
}
|
}
|
return list;
|
},
|
handleClick(data) {
|
this.$router.push({
|
path: "/review",
|
query: {
|
idC: data.id,
|
id: this.id,
|
},
|
});
|
},
|
},
|
};
|
</script>
|
<style scoped>
|
.box {
|
width: 100%;
|
display: flex;
|
justify-content: space-between;
|
background-color: rgb(223, 229, 235);
|
}
|
.box-right {
|
width: 100%;
|
background-color: white;
|
border-radius: 5px;
|
padding: 20px;
|
height: 850px;
|
overflow-y: overlay;
|
}
|
.title {
|
font-size: 16px;
|
padding: 10px 0px;
|
font-weight: bold;
|
}
|
.titles {
|
font-size: 14px;
|
}
|
.box-right /deep/ .el-table__expanded-cell {
|
background-color: #fff !important;
|
}
|
.btn {
|
background-color: #034ea2;
|
border: 1px solid #034ea2;
|
float: right;
|
}
|
</style>
|