From 99035941964810509e5037c7d9627b1801213335 Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期三, 26 十月 2022 14:00:48 +0800
Subject: [PATCH] 默认更改列表
---
src/views/safetyproduction/new.vue | 508 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 341 insertions(+), 167 deletions(-)
diff --git a/src/views/safetyproduction/new.vue b/src/views/safetyproduction/new.vue
index ca2005c..4b15a18 100644
--- a/src/views/safetyproduction/new.vue
+++ b/src/views/safetyproduction/new.vue
@@ -5,131 +5,155 @@
<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="box-right" v-if="lists == '' ? false : true">
+ <div class="btns">
+ <el-button type="primary" class="btn" @click="open(1)"
+ >添加</el-button
+ >
+ <el-button type="primary" class="btn" @click="open(0)"
+ >暂存</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" 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" :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 :stripe="true" :data="item.child" :header-cell-style="{background:'#eef1f6',color:'#606266'}" :cell-style="{background:'#fff',color:'#606266'}">
<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 border :data="scope.row.deductionList"
+ :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="remark"
+ 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="id" :visible.sync="dialogVisible" :close-on-click-modal="false" width="30%">
+ <el-form ref="form" :rules="rules" :model="form" label-width="110px">
+ <el-form-item label="自查清单名称" prop="inspectionName">
+ <el-input v-model="form.inspectionName"></el-input>
+ </el-form-item>
+ <el-form-item label="检查人名称" prop="inspector">
+ <el-select
+ v-model="form.inspector"
+ filterable
+ 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="时间" prop="inspectionTime">
+ <el-col :span="11">
+ <el-date-picker
+ type="date"
+ value-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="closeDialog">取 消</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
<script>
@@ -139,6 +163,8 @@
safetyInspectionItemTreeB,
safetySelfInspectionAdd,
safetyInspectionItemName,
+ safetySelfInspectionInfo,
+ safetySelfInspectionMod,
} from "@/api/safetySelfInspection.js";
export default {
components: { Titlename },
@@ -147,63 +173,167 @@
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: "",
+ parent: [],
+ rules: {
+ inspectionName: [{required: true, message: '自查清单名称不能为空', trigger: 'blur'}],
+ inspector: [{required: true, message: '检查人名称为空', trigger: 'blur'}],
+ inspectionTime: [{required: true, message: '检查时间不能为空', trigger: 'blur'}],
+ },
};
},
created() {
this.TreeA();
+ safetyInspectionItemName().then((res) => {
+ if (res.data.code == 200) {
+ this.nameList = res.data.result;
+ }
+ });
+ 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;
+ 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 cser=[]
+ for(var j=0;j<arr[i].child.length;j++){
+ var capB = {
+ safetySelfInspectionId: "",
+ safetyInspectionItemId: "",
+ }
+ arr[i].child[j].deductionList= arr[i].child[j].selfDeductionList
+ capB.safetySelfInspectionId=arr[i].child[j].safetySelfInspectionId
+ capB.safetyInspectionItemId=arr[i].child[j].safetyInspectionItemId
+ cser.push(capB)
+ }
+ arr[i].id=cser
+ arr[i].child = this.checkSameData(arr[i].child);
+ }
+ this.lists = arr;
+ }
+ });
+ },
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)
+ // 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;
+ if(this.list.length!=0){
+ var capA = { elementAName: "", id: [], child: [] };
+ var atte = [];
- }else{
- var i=this.lists.findIndex(item=>item.nameA===capA.nameA)
- this.lists.splice(i,1)
- }
+ 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 +354,75 @@
this.TreeB(currentObj.value);
},
handleClick(data) {
- this.$router.push({
- path: "/reviewXG",
- query: {
- id: data,
- },
- });
+ if (data.safetyInspectionItemId != undefined) {
+ this.$router.push({
+ path: "/reviewXG",
+ query: {
+ idX: data.safetyInspectionItemId,
+ name:this.id,
+ id:this.itemId
+ },
+ });
+ } else {
+ this.$router.push({
+ path: "/reviewXG",
+ query: {
+ idX: data.id,
+ name:this.id,
+ id:this.itemId
+ },
+ });
+ }
},
- 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 = [];
+ 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;
},
- addC(){
- safetySelfInspectionAdd(this.form).then(res=>{
- if(res.data.code==200){
- this.dialogVisible=false
- this.$notify({
+ closeDialog(){
+ this.dialogVisible = false
+ },
+ addC() {
+ this.$refs["form"].validate((valid) => {
+ if (valid) {
+ 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:"/safetyproduction/safetyproduction/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:"/safetyproduction/safetyproduction/checklistself"
+ });
+ }
+ }
+ });
},
btnsQX() {
this.show = true;
@@ -280,18 +442,20 @@
}
.box-left {
width: 20%;
- min-height: 800px;
+ min-height: 850px;
background-color: white;
border-radius: 5px;
}
.box-left-content {
- padding: 10px;
+ padding: 10px 20px;
}
.box-right {
position: relative;
width: 79%;
background-color: white;
border-radius: 5px;
+ height: 850px;
+ overflow-y:overlay;
}
.title {
font-size: 16px;
@@ -301,9 +465,19 @@
.titles {
font-size: 14px;
}
-.btns{
+.btns {
position: absolute;
top: 10px;
right: 50px;
}
-</style>
\ No newline at end of file
+.box-left-content /deep/ .el-tree-node__expand-icon {
+ display: none;
+}
+.btn {
+ background-color: #034ea2;
+ border: 1px solid #034ea2;
+}
+.box-right /deep/ .el-table__expanded-cell{
+ background-color: #fff !important;
+}
+</style>
--
Gitblit v1.9.2