| | |
| | | ></el-tree> |
| | | </div> |
| | | </div> |
| | | <div class="box-right" v-if="list == '' ? false : true"> |
| | | <div class="box-right" v-if="lists == '' ? 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> |
| | | <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, 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 :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" |
| | | label="扣分项" |
| | | type="expand" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-table :data="scope.row.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> |
| | | </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 |
| | | 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" 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-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" |
| | | 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" 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> |
| | | </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> |
| | |
| | | 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: "", |
| | | elementAName: "", |
| | | arr:[], |
| | | treeList:[], |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | 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'}], |
| | | }, |
| | | itemId:"" |
| | | }; |
| | | }, |
| | | created() { |
| | | this.TreeA(); |
| | | this.id=this.$route.query.name |
| | | this.itemId=this.$route.query.id |
| | | this.itemInfo(this.$route.query.id) |
| | | 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 |
| | | console.log(res.data.result) |
| | | 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) |
| | | 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) |
| | | 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 |
| | | console.log(arr[i].child[j]) |
| | | 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; |
| | | } |
| | | }); |
| | | }, |
| | |
| | | }, |
| | | 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 = []; |
| | | 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) |
| | | } |
| | | if(this.list.length!=0){ |
| | | 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); |
| | | } |
| | | 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) { |
| | | checkSameDataA(resData) { |
| | | let dataInfo = {}; |
| | | resData.forEach((item, index) => { |
| | | let { elementAName } = item; |
| | | if (!dataInfo[elementAName]) { |
| | | dataInfo[elementAName] = { |
| | | elementAName, |
| | | id:{}, |
| | | id: {}, |
| | | child: [], |
| | | }; |
| | | } |
| | |
| | | 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(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]) |
| | | open(type) { |
| | | this.dialogVisible = true; |
| | | this.form.status = type; |
| | | console.log("xxxxx",this.lists) |
| | | 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 |
| | | } |
| | | }) |
| | | |
| | | this.form.itemList = arr; |
| | | }, |
| | | addC(){ |
| | | if(this.id=='添加'){ |
| | | 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 == "添加") { |
| | | console.log("添加",this.form) |
| | | 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: "成功", |
| | | this.$router.push({ |
| | | path:"/checklistself" |
| | | }); |
| | | }) |
| | | } |
| | | }); |
| | | } else if (this.id == "编辑") { |
| | | console.log('编辑',this.form) |
| | | safetySelfInspectionMod(this.form).then((res) => { |
| | | this.dialogVisible = false; |
| | | this.$notify({ |
| | | type: "success", |
| | | duration: 2000, |
| | | message: "编辑成功", |
| | | title: "成功", |
| | | }); |
| | | }); |
| | | this.$router.push({ |
| | | path:"/checklistself" |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | btnsQX() { |
| | | this.show = true; |
| | |
| | | } |
| | | .box-left { |
| | | width: 20%; |
| | | min-height: 800px; |
| | | min-height: 850px; |
| | | background-color: white; |
| | | border-radius: 5px; |
| | | } |
| | | .box-left-content { |
| | | padding:10px 20px; |
| | | padding: 10px 20px; |
| | | } |
| | | .box-right { |
| | | position: relative; |
| | | width: 79%; |
| | | background-color: white; |
| | | border-radius: 5px; |
| | | height: 850px; |
| | | overflow-y:overlay; |
| | | } |
| | | .title { |
| | | font-size: 16px; |
| | |
| | | .titles { |
| | | font-size: 14px; |
| | | } |
| | | .btns{ |
| | | .btns { |
| | | position: absolute; |
| | | top: 10px; |
| | | right: 50px; |
| | | } |
| | | .box-left-content /deep/ .el-tree-node__expand-icon{ |
| | | .box-left-content /deep/ .el-tree-node__expand-icon { |
| | | display: none; |
| | | } |
| | | .btn { |
| | | background-color: #034ea2; |
| | | border: 1px solid #034ea2; |
| | | } |
| | | </style> |
| | | .box-right /deep/ .el-table__expanded-cell{ |
| | | background-color: #fff !important; |
| | | } |
| | | </style> |