From 6d348c6003c3b7ff2dfdd8dad6aa3f41fddd5d4a Mon Sep 17 00:00:00 2001
From: songhuangfeng123 <shf18767906695@163.com>
Date: Thu, 31 Mar 2022 10:37:21 +0800
Subject: [PATCH] fix
---
src/views/safetyproduction/new.vue | 506 ++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 329 insertions(+), 177 deletions(-)
diff --git a/src/views/safetyproduction/new.vue b/src/views/safetyproduction/new.vue
index 66d9aa7..2a1eef5 100644
--- a/src/views/safetyproduction/new.vue
+++ b/src/views/safetyproduction/new.vue
@@ -4,104 +4,152 @@
<div class="box-left">
<Titlename title="检查项树"></Titlename>
<div class="box-left-content">
- <!-- <el-form ref="form" :model="form" style="font-size: 12px" size="mini">
- <el-row>
- <el-col :span="12">
- <el-form-item size="mini">
- <el-input
- v-model="form.name"
- placeholder="请输入检查项名称"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="11" :offset="1" style="white-space: nowrap">
- <el-form-item size="mini">
- <el-button type="primary" class="btns" size="mini">搜索</el-button>
- <el-button
- type="primary"
- style="margin: 0px"
- class="btns"
- icon="el-icon-plus"
- size="mini"
- ></el-button>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form> -->
<el-tree
- :data="data"
- :props="defaultProps"
+ ref="tree"
+ :data="tree"
+ 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="show">
- <div class="title">A级要素:<span>A级要素2</span></div>
- <div v-for="(item,index) in 2" :key="index">
+ <div class="box-right" v-if="list == '' ? false : true">
+ <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.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>法律、法规和标准的识别和获取</p></el-col>
- <el-col :span="6" :offset="4"><p><span>得分:</span>50</p></el-col>
+ <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="tableData"
+ <el-col :span="22" :offset="1">
+ <el-table ref="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"
+ label="扣分项"
+ type="expand"
>
- <el-table-column
- prop="date"
- align="center"
- label="标准化要求"
- >
- </el-table-column>
- <el-table-column
- prop="name"
- align="center"
- label="企业达标标准"
- ></el-table-column>
- <el-table-column
- prop="name"
- align="center"
- label="评审方法"
- ></el-table-column>
+ <template slot-scope="scope">
+ <el-table :data="scope.row.deductionList">
<el-table-column
- prop="name"
- align="center"
- label="评审标准"
+ 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-table-column
- prop="name"
- align="center"
- label="否决项"
- ></el-table-column>
- <el-table-column
- prop="name"
- align="center"
- label="扣分项"
- ></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 type="text" size="small" style="color: red"
>删除</el-button
> -->
- </template>
- </el-table-column>
- </el-table>
- </el-col>
- </el-row>
+ </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" 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" 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>
import Titlename from "../../components/Titlename/index.vue";
+import {
+ safetyInspectionItemTreeA,
+ safetyInspectionItemTreeB,
+ safetySelfInspectionAdd,
+ safetyInspectionItemName,
+ safetySelfInspectionInfo,
+ safetySelfInspectionMod,
+} from "@/api/safetySelfInspection.js";
export default {
components: { Titlename },
data() {
@@ -109,110 +157,201 @@
dialogVisible: false,
show: true,
form: {
- name: "",
+ inspectionName:"",
+ inspector:"",
+ inspectionTime:"",
+ status:"",
+ itemList:[]
},
formInline: {
user: "",
region: "",
},
- tableData: [
- {
- date: "2016-05-02",
- name: "王小虎",
- province: "上海",
- city: "普陀区",
- address: "上海市普陀区金沙江路 1518 弄",
- zip: 200333,
+ list: [],
+ lists:[],
+ nameList:[],
+ tree: [],
+ id: "",
+ elementAName: "",
+ arr:[],
+ treeList:[],
+ defaultProps: {
+ children: 'children',
+ label: 'label'
},
- {
- date: "2016-05-04",
- name: "王小虎",
- province: "上海",
- city: "普陀区",
- address: "上海市普陀区金沙江路 1517 弄",
- zip: 200333,
- },
- {
- date: "2016-05-01",
- name: "王小虎",
- province: "上海",
- city: "普陀区",
- address: "上海市普陀区金沙江路 1519 弄",
- zip: 200333,
- },
- {
- date: "2016-05-03",
- name: "王小虎",
- province: "上海",
- city: "普陀区",
- address: "上海市普陀区金沙江路 1516 弄",
- zip: 200333,
- },
- ],
- data: [
- {
- label: "一级 1",
- children: [
- {
- label: "二级 1-1",
- children: [
- {
- label: "三级 1-1-1",
- },
- ],
- },
- ],
- },
- {
- label: "一级 2",
- children: [
- {
- label: "二级 2-1",
- children: [
- {
- label: "三级 2-1-1",
- },
- ],
- },
- {
- label: "二级 2-2",
- children: [
- {
- label: "三级 2-2-1",
- },
- ],
- },
- ],
- },
- {
- label: "一级 3",
- children: [
- {
- label: "二级 3-1",
- children: [
- {
- label: "三级 3-1-1",
- },
- ],
- },
- {
- label: "二级 3-2",
- children: [
- {
- label: "三级 3-2-1",
- },
- ],
- },
- ],
- },
- ],
- 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) {
+ this.tree = res.data.result;
+ }
+ });
+ },
+ TreeB(id) {
+ safetyInspectionItemTreeB({ id: id }).then((res) => {
+ 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)
+ }
+ 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 = {};
+ 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(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
+ safetyInspectionItemName().then(res=>{
+ 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
+ this.$notify({
+ type: "success",
+ duration: 2000,
+ message: "新增成功",
+ title: "成功",
+ });
+ }
+
+ })
+ }else if(this.id=='编辑'){
+ safetySelfInspectionMod(this.form).then(res=>{
+ this.dialogVisible=false
+ this.$notify({
+ type: "success",
+ duration: 2000,
+ message: "编辑成功",
+ title: "成功",
+ });
+ })
+ }
+ },
btnsQX() {
this.show = true;
},
@@ -236,19 +375,32 @@
border-radius: 5px;
}
.box-left-content {
- padding: 10px;
+ padding:10px 20px;
}
.box-right {
+ position: relative;
width: 79%;
background-color: white;
border-radius: 5px;
}
-.title{
+.title {
font-size: 16px;
padding: 10px 20px;
font-weight: bold;
}
-.titles{
+.titles {
font-size: 14px;
}
+.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