From fcc1ea2bf3ce3efe1f927bd087e4cd6cf2116c32 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期三, 30 三月 2022 16:21:36 +0800 Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/shf' into master --- src/views/majorHazardSourceMonitoring/equipmentAlarm/index.vue | 68 ++- src/views/majorHazardSourceMonitoring/productionEquipment/index.vue | 99 ++++- src/views/safetyproduction/checklistself.vue | 174 +++++---- src/views/safetyproduction/reviewXG.vue | 3 index.html | 1 src/views/majorHazardSourceMonitoring/instrumentData/index.vue | 89 +++- src/api/safetySelfInspection.js | 109 ++++++ src/router/index.js | 7 src/views/safetyproduction/new.vue | 409 +++++++++++++---------- src/views/contingencyplan/index.vue | 46 +- src/views/safetyproduction/checklist.vue | 2 11 files changed, 662 insertions(+), 345 deletions(-) diff --git a/index.html b/index.html index d8edb25..e0ff05f 100644 --- a/index.html +++ b/index.html @@ -22,6 +22,7 @@ #app { margin: 0; padding: 0; + overflow: hidden; height: 100%; } diff --git a/src/api/safetySelfInspection.js b/src/api/safetySelfInspection.js new file mode 100644 index 0000000..1d19e81 --- /dev/null +++ b/src/api/safetySelfInspection.js @@ -0,0 +1,109 @@ +import {getToken} from "../utils/auth"; +import request from '@/utils/request' + +export function safetySelfInspectionList(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/safetySelfInspection/page', + method: 'post', + data + }) +} + +export function safetySelfInspectionInfo(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/safetySelfInspection/info', + method: 'post', + data + }) +} + +export function safetySelfInspectionItemInfo(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/safetySelfInspection/itemInfo', + method: 'post', + data + }) +} + +export function safetySelfInspectionModItemInfo(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/safetySelfInspection/modItemInfo', + method: 'post', + data + }) +} + +export function safetySelfInspectionAdd(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/safetySelfInspection/add', + method: 'post', + data + }) +} + +export function safetySelfInspectionMod(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/safetySelfInspection/mod', + method: 'post', + data + }) +} + +export function safetySelfInspectionDel(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/safetySelfInspection/del', + method: 'post', + data + }) +} +export function safetyInspectionItemTreeA(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/elementManagement/getElementTree', + method: 'post', + data + }) +} +export function safetyInspectionItemName(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/getUserList', + method: 'post', + data + }) +} +export function safetyInspectionItemTreeB(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/safetyInspectionItem/infoElementA', + method: 'post', + data + }) +} \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 739eea2..9dd394d 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -150,12 +150,11 @@ meta: { title: '自查清单_去评审', icon: '' } }, { - id: 2, - parentId: 0, path: '/new', - name: '自查清单_新增|修改', + // name: '自查清单_新增|修改', component: () => import('@/views/safetyproduction/new'), - meta: { title: '自查清单_新增|修改', icon: '' } + // meta: { title: '自查清单_新增|修改', icon: '' } + hidden: true }, { id: 2, diff --git a/src/views/contingencyplan/index.vue b/src/views/contingencyplan/index.vue index 621c963..9e07de8 100644 --- a/src/views/contingencyplan/index.vue +++ b/src/views/contingencyplan/index.vue @@ -62,16 +62,16 @@ <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="文件类型"> - <el-radio-group v-model="form.fileType"> + <el-radio-group v-model="form.fileType" @change="changeFileType"> <el-radio :label=0 >图片</el-radio> <el-radio :label=1 >文件</el-radio> </el-radio-group> </el-form-item> <el-form-item v-if="form.fileType==0" label="图片上传"> - <upload-img v-bind:imgList="form.fileList" @uploadImgSuccess="uploadImgSuccess" @removeImgSuccess="removeImgSuccess"></upload-img> + <upload-img :imgList="fileList" @uploadImgSuccess="uploadImgSuccess" @removeImgSuccess="removeImgSuccess"></upload-img> </el-form-item> <el-form-item label="文件链接" v-if="form.fileType==1"> - <upload-file v-bind:url="fileUrl" v-bind:name="fileName" @uploadFileSuccess="uploadFileSuccess" ></upload-file> + <upload-file v-bind:url="fileUrl" v-bind:name="fileName" @uploadFileSuccess="uploadFileSuccess" ></upload-file> </el-form-item> <el-form-item label="备注" prop="remark"> <el-input v-model="form.remark" :rows="5" type="textarea"></el-input> @@ -97,9 +97,7 @@ components: { uploadImg , uploadFile}, data() { return { - name:"111", - url:"222", - path:"emergencyPlan", + uploadDisabled:false, dialogVisible: false, title: "", @@ -121,6 +119,7 @@ }, fileName:"", fileUrl:"", + fileList:[], list: [], rules: { name: [ @@ -136,17 +135,15 @@ this.emergencyPlan(); }, methods: { + changeFileType(){ + this.fileUrl="" + this.fileName="" + this.fileList=[] + }, uploadFileSuccess(res){ this.fileName=res.fileName this.fileUrl=res.fileUrl - if (this.fileName=="" || this.fileUrl==""){ - this.form.fileList=[] - } - this.form.fileList=[{ - fileName: this.fileName, - fileUrl:this.fileUrl - }] }, uploadImgSuccess(res){ @@ -154,11 +151,11 @@ fileUrl : res.fileUrl, fileName : res.fileName } - this.form.fileList.push(file) + this.fileList.push(file) }, removeImgSuccess(res){ - this.form.fileList=res.fileList + this.fileList=res.fileList }, async emergencyPlan() { @@ -186,14 +183,27 @@ } else { this.title = "编辑"; this.form = value; - this.fileUrl=value.fileList[0].fileUrl; - this.fileName=value.fileList[0].fileName + if (this.form.fileType==0){ + this.fileList=value.fileList + } else{ + this.fileUrl=value.fileList[0].fileUrl; + this.fileName=value.fileList[0].fileName + } } }, addemergencyPlan() { this.$refs["form"].validate((valid) => { if (valid) { - console.log(132,this.form) + if (this.form.fileType==0){ + this.form.fileList=this.fileList + } + if (this.form.fileType==1){ + let file={ + fileUrl:this.fileUrl, + fileName:this.fileName + } + this.form.fileList=[file] + } if (this.title === "新增") { emergencyPlanAdd(this.form).then((res) => { if (res.data.code === "200") { diff --git a/src/views/majorHazardSourceMonitoring/equipmentAlarm/index.vue b/src/views/majorHazardSourceMonitoring/equipmentAlarm/index.vue index 95cf9d6..8b80821 100644 --- a/src/views/majorHazardSourceMonitoring/equipmentAlarm/index.vue +++ b/src/views/majorHazardSourceMonitoring/equipmentAlarm/index.vue @@ -4,17 +4,17 @@ <el-row> <el-col :span="5"> <el-form-item label="设备名称"> - <el-input v-model="listQuery.filter.equipmentName"></el-input> + <el-input v-model="listQuery.filter.equipmentName" clearable></el-input> </el-form-item> </el-col> <el-col :span="5"> - <el-form-item label="状态"> - <el-select v-model="listQuery.filter.status" placeholder="请选择状态"> + <el-form-item label="设备状态"> + <el-select v-model="listQuery.filter.status" placeholder="请选择状态" clearable> <el-option v-for="item in unitIdOptions" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </el-form-item> </el-col> - <el-col :span="4" style="text-align: center"> + <el-col :span="6" style="text-align: center"> <el-button type="primary" icon="el-icon-search" @click="find()" class="btns" >搜索</el-button > @@ -24,6 +24,9 @@ class="btns" @click="handleClick('', '新增')" >新增</el-button + > + <el-button type="primary" icon="el-icon-refresh" @click="reset()" class="btns" + >重置</el-button > </el-col> </el-row> @@ -120,8 +123,9 @@ <el-col :span="12"> <el-form-item label="报警时间" prop="alarmTime"> <el-date-picker + type="datetime" v-model="form.alarmTime" - value-format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间" style="width: 100%;"> </el-date-picker> @@ -131,7 +135,7 @@ <el-row> <el-col :span="24"> <el-form-item label="报警信息" prop="alarmInfo"> - <el-input v-model="form.alarmInfo" maxlength="50"></el-input> + <el-input type="textarea" v-model="form.alarmInfo" placeholder="请输入报警信息" maxlength="50"></el-input> </el-form-item> </el-col> </el-row> @@ -180,13 +184,17 @@ listQuery: { filter: { equipmentName: "", + // status:"", }, pageIndex: 1, pageSize: 10, }, type:'', rules: { - + equipmentId: { required: true, message: "请选择设备名称", trigger: "change"}, + status: { required: true, message: "请选择设备状态", trigger: "change"}, + alarmTime: { required: true, message: "请选择报警时间", trigger: "change"}, + alarmInfo: { required: true, message: "请输入报警信息", trigger: "change"}, }, equipmentName:[], unitIdOptions:[{label:"已处理",value:0},{label:"未处理",value:1}] @@ -194,8 +202,15 @@ }, created() { this.elementManagementL(); + this.alarmMajorEquipmentErt(); }, methods: { + alarmMajorEquipmentErt(){ + majorEquipmentErt().then(res=>{ + console.log(res) + this.equipmentName=res.data.result + }) + }, async elementManagementL() { var res = await majorEquipmentList(this.listQuery); console.log(res); @@ -211,10 +226,6 @@ this.$nextTick(() => { this.$refs["form"].clearValidate(); }); - majorEquipmentErt().then(res=>{ - console.log(res) - this.equipmentName=res.data.result - }) if (type == "新增") { this.title = "新增"; this.form = { @@ -273,21 +284,34 @@ }); }, deleteById(val) { - majorEquipmentDel({id:val}).then((res) => { - if (res.data.code == 200) { - this.elementManagementL(); - this.$notify({ - title: "成功", - message: "删除成功", - type: "success", - duration: 2000, - }); - } - }); + this.$confirm('确认删除吗','提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(()=>{ + majorEquipmentDel({id:val}).then((res) => { + if (res.data.code == 200) { + this.elementManagementL(); + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + } + }) + }) + .catch(error =>{ + }); }, find(){ this.elementManagementL(); }, + reset(){ + this.listQuery.filter={} + this.elementManagementL(); + }, handleSizeChange(val){ this.listQuery.pageSize = val this.elementManagementL(); diff --git a/src/views/majorHazardSourceMonitoring/instrumentData/index.vue b/src/views/majorHazardSourceMonitoring/instrumentData/index.vue index fd06609..9123e8b 100644 --- a/src/views/majorHazardSourceMonitoring/instrumentData/index.vue +++ b/src/views/majorHazardSourceMonitoring/instrumentData/index.vue @@ -4,7 +4,7 @@ <el-row> <el-col :span="5"> <el-form-item label="设备名称"> - <el-input v-model="listQuery.filter.equipmentName"></el-input> + <el-input v-model="listQuery.filter.equipmentName" clearable></el-input> </el-form-item> </el-col> <el-col :span="8" style="text-align: center"> @@ -25,7 +25,9 @@ @click="importData()" >导入</el-button > - + <el-button type="primary" icon="el-icon-refresh" @click="reset()" class="btns" + >重置</el-button + > </el-col> </el-row> </el-form> @@ -45,6 +47,8 @@ <el-table-column prop="lowLiquidAlarm" label="低液位报警值" align="center"> </el-table-column> <el-table-column prop="lowLowLiquidAlarm" label="低低液位报警值" align="center"> + </el-table-column> + <el-table-column prop="monitoringTime" label="检测时间" align="center"> </el-table-column> <el-table-column align="center" label="操作"> <template slot-scope="scope"> @@ -104,8 +108,9 @@ <el-col :span="12"> <el-form-item label="检测时间" prop="monitoringTime"> <el-date-picker + type="datetime" v-model="form.monitoringTime" - value-format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间" style="width: 100%;"> </el-date-picker> @@ -131,19 +136,19 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="高液位报警值" prop="alarmInfo"> + <el-form-item label="高液位报警值" prop="highLiquidAlarm"> <el-input v-model.number="form.highLiquidAlarm" maxlength="50"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> - <el-form-item label="低液位报警值" prop="alarmInfo"> + <el-form-item label="低液位报警值" prop="lowLiquidAlarm"> <el-input v-model.number="form.lowLiquidAlarm" maxlength="50"></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="低低液位报警值" prop="alarmInfo"> + <el-form-item label="低低液位报警值" prop="lowLowLiquidAlarm"> <el-input v-model.number="form.lowLowLiquidAlarm" maxlength="50"></el-input> </el-form-item> </el-col> @@ -191,19 +196,40 @@ listQuery: { filter: { equipmentId: "", - status:'', }, pageIndex: 1, pageSize: 10, }, // type:'', rules: { - rangeLowerLimit:{ type: 'number', message: '仪表量程下限必须为数字值'}, - rangeUpperLimit:{ type: 'number', message: '仪表量程上限必须为数字值'}, - highHighLiquidAlarm:{ type: 'number', message: '高高液位报警值必须为数字值'}, - highLiquidAlarm:{ type: 'number', message: '高液位报警值必须为数字值'}, - lowLiquidAlarm:{ type: 'number', message: '低液位报警值必须为数字值'}, - lowLowLiquidAlarm:{ type: 'number', message: '低低液位报警值必须为数字值'}, + equipmentId: + { required: true, message: "请选择设备名称", trigger: "change" }, + monitoringTime: + { required: true, message: "请选择检测时间", trigger: "change"}, + rangeLowerLimit:[ + { required: true, message: "仪表量程下限不能为空", trigger: "change"}, + { type: 'number', message: '仪表量程下限必须为数字值'} + ], + rangeUpperLimit:[ + { required: true, message: "仪表量程上限不能为空", trigger: "change"}, + { type: 'number', message: '仪表量程上限必须为数字值'} + ], + highHighLiquidAlarm:[ + { required: true, message: "高高液位报警值不能为空", trigger: "change"}, + { type: 'number', message: '高高液位报警值必须为数字值'} + ], + highLiquidAlarm:[ + { required: true, message: "高液位报警值不能为空", trigger: "change"}, + { type: 'number', message: '高液位报警值必须为数字值'} + ], + lowLiquidAlarm:[ + { required: true, message: "低液位报警值不能为空", trigger: "change"}, + { type: 'number', message: '低液位报警值必须为数字值'} + ], + lowLowLiquidAlarm:[ + { required: true, message: "低低液位报警值不能为空", trigger: "change"}, + { type: 'number', message: '低低液位报警值必须为数字值'}, + ], }, equipmentName:[], unitIdOptions:[{label:"已处理",value:0},{label:"未处理",value:1}] @@ -421,6 +447,8 @@ } else { this.title = "编辑"; this.form = value; + console.log(123,this.form) + console.log(222,this.equipmentName) } }, AddelementManagement() { @@ -467,21 +495,34 @@ }); }, deleteById(val) { - majorEquipmentDel({id:val}).then((res) => { - if (res.data.code == 200) { - this.elementManagementL(); - this.$notify({ - title: "成功", - message: "删除成功", - type: "success", - duration: 2000, - }); - } - }); + this.$confirm('确认删除吗','提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(()=>{ + majorEquipmentDel({id:val}).then((res) => { + if (res.data.code == 200) { + this.elementManagementL(); + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + } + }); + }) + .catch(error =>{ + }); }, find(){ this.elementManagementL(); }, + reset(){ + this.listQuery.filter.equipmentName = ""; + this.elementManagementL(); + }, handleSizeChange(val){ this.listQuery.pageSize = val this.elementManagementL(); diff --git a/src/views/majorHazardSourceMonitoring/productionEquipment/index.vue b/src/views/majorHazardSourceMonitoring/productionEquipment/index.vue index d8f78df..ede80cb 100644 --- a/src/views/majorHazardSourceMonitoring/productionEquipment/index.vue +++ b/src/views/majorHazardSourceMonitoring/productionEquipment/index.vue @@ -4,17 +4,17 @@ <el-row> <el-col :span="5"> <el-form-item label="设备名称"> - <el-input v-model="listQuery.filter.name"></el-input> + <el-input v-model="listQuery.filter.name" placeholder="请输入设备名称" clearable></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="设备状态"> - <el-select v-model="listQuery.filter.status" placeholder="请选择设备状态"> + <el-select v-model="listQuery.filter.status" placeholder="请选择设备状态" clearable> <el-option v-for="item in unitIdOptions" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </el-form-item> </el-col> - <el-col :span="4" style="text-align: center"> + <el-col :span="6" style="text-align: center"> <el-button type="primary" icon="el-icon-search" @click="find()" class="btns" >搜索</el-button > @@ -24,6 +24,9 @@ class="btns" @click="handleClick('', '新增')" >新增</el-button + > + <el-button type="primary" icon="el-icon-refresh" @click="reset()" class="btns" + >重置</el-button > </el-col> </el-row> @@ -41,7 +44,7 @@ </el-table-column> <el-table-column prop="volume" label="容积" align="center"> </el-table-column> - <el-table-column prop="userId" label="负责人" align="center"> + <el-table-column prop="userName" label="负责人" align="center"> </el-table-column> <el-table-column align="center" label="操作"> <template slot-scope="scope"> @@ -83,12 +86,12 @@ <el-row> <el-col :span="12"> <el-form-item label="设备编号" prop="serialNumber"> - <el-input v-model.number="form.serialNumber" maxlength="50"></el-input> + <el-input v-model="form.serialNumber" maxlength="50" placeholder="请输入设备编号"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="设备名称" prop="name"> - <el-input v-model="form.name" maxlength="50"></el-input> + <el-input v-model="form.name" maxlength="50" placeholder="请输入设备名称"></el-input> </el-form-item> </el-col> </el-row> @@ -112,14 +115,28 @@ </el-col> <el-col :span="12"> <el-form-item label="容积" prop="volume"> - <el-input v-model.number="form.volume" maxlength="50"></el-input> + <el-input v-model="form.volume" maxlength="50" + placeholder="请输入容积" + ></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="负责人" prop="userId"> - <el-input v-model="form.userId" maxlength="50"></el-input> + <el-select + v-model="form.userId" + placeholder="请选择负责人" + style="width: 100%" + > + <el-option + v-for="item in personInCharge" + :key="item.id" + :label="item.realname" + :value="item.id" + > + </el-option> + </el-select> </el-form-item> </el-col> </el-row> @@ -139,6 +156,7 @@ majorEquipmentAdd, majorEquipmentMod, majorEquipmentDel, + majorEquipmentLis } from "@/api/majorEquipment.js"; export default { data() { @@ -150,6 +168,7 @@ status: "", volume: "", serialNumber:"", + userId:"", }, pageSize: 10, recordTotal: 0, @@ -158,28 +177,44 @@ listQuery: { filter: { name: "", + // status:"", }, pageIndex: 1, pageSize: 10, }, type:'', rules: { - serialNumber:{ required: true, message: '容积必须为数字值'}, - volume:{ type: 'number', message: '负责人必须为数字值'}, - name: [ - { required: true, message: "预案名称不能为空", trigger: "change" }, + serialNumber:[ + { required: true, message: "设备编号不能为空", trigger: "change"}, + // { type:'number', message: '设备编号必须为数字值'} ], + volume:[ + { required: true, message: "容积不能为空", trigger: "change"}, + // { type:'number', message: "容积必须为数字值", trigger: "change"}, + { pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, message: '请输入数字格式,可保留两位小数' } + ], + name:{ required: true, message: "设备名称不能为空", trigger: "change" }, + status:{ required: true, message: "状态不能为空", trigger: "change" }, + userId:{ required: true, message: "负责人不能为空", trigger: "change" }, }, - unitIdOptions:[{label:"在用",value:0},{label:"停用",value:1}] + unitIdOptions:[{label:"在用",value:0},{label:"停用",value:1}], + personInCharge:[], }; }, created() { this.elementManagementL(); + this.productionMajorEquipmentErt(); }, methods: { + productionMajorEquipmentErt(){ + majorEquipmentLis().then(res=>{ + if (res.data.code ==200){ + this.personInCharge=res.data.result + } + }) + }, async elementManagementL() { var res = await majorEquipmentList(this.listQuery); - console.log(res); if (res.data.code == 200) { this.list = res.data.result.records; this.recordTotal = res.data.result.total @@ -192,6 +227,7 @@ this.$nextTick(() => { this.$refs["form"].clearValidate(); }); + if (type == "新增") { this.title = "新增"; this.form = { @@ -250,21 +286,34 @@ }); }, deleteById(val) { - majorEquipmentDel({id:val}).then((res) => { - if (res.data.code == 200) { - this.elementManagementL(); - this.$notify({ - title: "成功", - message: "删除成功", - type: "success", - duration: 2000, - }); - } - }); + this.$confirm('确认删除吗','提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(()=>{ + majorEquipmentDel({id:val}).then((res) => { + if (res.data.code == 200) { + this.elementManagementL(); + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + } + }); + }) + .catch(error =>{ + }); }, find(){ this.elementManagementL(); }, + reset(){ + this.listQuery.filter={} + this.elementManagementL(); + }, handleSizeChange(val){ this.listQuery.pageSize = val this.elementManagementL(); diff --git a/src/views/safetyproduction/checklist.vue b/src/views/safetyproduction/checklist.vue index 31bad5e..d2b83ca 100644 --- a/src/views/safetyproduction/checklist.vue +++ b/src/views/safetyproduction/checklist.vue @@ -16,7 +16,7 @@ </el-col> <el-col :span="11" :offset="1" style="white-space: nowrap"> <el-form-item size="mini"> - <el-button type="primary" class="btns" @click="find" size="mini" + <el-button type="primary" class="btns" size="mini" >搜索</el-button > <el-button diff --git a/src/views/safetyproduction/checklistself.vue b/src/views/safetyproduction/checklistself.vue index b2b9231..9c95d1e 100644 --- a/src/views/safetyproduction/checklistself.vue +++ b/src/views/safetyproduction/checklistself.vue @@ -1,125 +1,151 @@ <template> <div class="app-container"> - <el-form ref="form" :model="form" label-width="80px"> + <el-form ref="form" :model="listQuery" label-width="80px"> <el-row> <el-col :span="5"> <el-form-item label="自查任务"> - <el-input v-model="form.name"></el-input> + <el-input v-model="listQuery.filter.inspectionName"></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="检查时间"> - <el-date-picker v-model="form.value1" type="date" placeholder="选择日期"> + <el-date-picker + v-model="listQuery.filter.inspectionStartTime" + type="date" + format="yyyy 年 MM 月 dd 日" + placeholder="选择日期" + > </el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="检查人员"> - <el-input v-model="form.name"></el-input> + <el-input v-model="listQuery.filter.inspectorName"></el-input> </el-form-item> </el-col> <el-col :span="4" style="text-align: center"> - <el-button type="primary" icon="el-icon-search" class="btns" + <el-button + type="primary" + icon="el-icon-search" + class="btns" + @click="find()" >搜索</el-button > <el-button type="primary" icon="el-icon-plus" class="btns" - @click="dialogVisible = true" + @click="jump()" >新增</el-button > </el-col> </el-row> </el-form> - <el-table :data="tableData" border style="width: 100%"> - <el-table-column prop="date" label="自查任务"> + <el-table :data="list" border style="width: 100%"> + <el-table-column align="center" prop="inspectionName" label="自查任务"> </el-table-column> - <el-table-column prop="name" label="检查时间"> </el-table-column> - <el-table-column prop="name" label="检查人员"> </el-table-column> - <el-table-column prop="province" label="状态"> </el-table-column> - <el-table-column prop="address" label="更新时间"> </el-table-column> + <el-table-column align="center" prop="createTime" label="检查时间"> + </el-table-column> + <el-table-column align="center" prop="inspectorName" label="检查人员"> + </el-table-column> + <el-table-column align="center" label="状态"> + <template slot-scope="scope"> + <span v-if="scope.row.status == -1">暂存</span> + <span v-if="scope.row.status == 0">评审中</span> + <span v-if="scope.row.status == 1">已评审</span> + </template> + </el-table-column> + <el-table-column align="center" prop="updateTime" label="更新时间"> + </el-table-column> <el-table-column align="center" label="操作"> <template slot-scope="scope"> - <el-button @click="handleClick(scope.row)" type="text" size="small" + <el-button v-if="scope.row.status==-1" @click="handleClick(scope.row)" type="text" size="small" >编辑</el-button > - <el-button type="text" size="small" style="color: red" + <el-button v-if="scope.row.status==0" @click="handleClick(scope.row)" type="text" size="small" + >去评审</el-button + > + <el-button v-if="scope.row.status==1" @click="handleClick(scope.row)" type="text" size="small" + >查看</el-button + > + <el-button v-if="scope.row.status==1?false:true" type="text" size="small" style="color: red" >删除</el-button > </template> </el-table-column> </el-table> + <div style="text-align: right"> + <el-pagination + v-show="recordTotal > 0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="recordTotal" + > + </el-pagination> + </div> </div> </template> <script> +import { safetySelfInspectionList } from "@/api/safetySelfInspection.js"; export default { data() { return { dialogVisible: false, - form: { - name: "", - value1:"", + form: {}, + listQuery: { + filter: { + inspectionName: "", + inspectorName: "", + inspectionStartTime: "", + inspectionEndTime: "", + status: "", + }, + pageIndex: 1, + pageSize: 5, }, - tableData: [ - { - date: "2016-05-02", - name: "王小虎", - province: "上海", - city: "普陀区", - address: "上海市普陀区金沙江路 1518 弄", - zip: 200333, - }, - { - 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, - }, - ], - options: [ - { - value: "选项1", - label: "黄金糕", - }, - { - value: "选项2", - label: "双皮奶", - }, - { - value: "选项3", - label: "蚵仔煎", - }, - { - value: "选项4", - label: "龙须面", - }, - { - value: "选项5", - label: "北京烤鸭", - }, - ], - value: "", + list: [], + pageSize: 10, + recordTotal: 0, + currentPage: 1, }; }, + created() { + this.safetySelfInspectionL(); + }, + methods: { + async safetySelfInspectionL() { + var res = await safetySelfInspectionList(this.listQuery).then((res) => { + if (res.data.code == 200) { + console.log(res.data); + this.list = res.data.result.records; + this.recordTotal = res.data.result.total; + this.pageSize = res.data.result.size; + this.currentPage = res.data.result.current; + } + }); + }, + handleClick(index) {}, + find() { + this.safetySelfInspectionL(); + }, + handleSizeChange(val) { + this.listQuery.pageSize = val; + this.safetySelfInspectionL(); + }, + handleCurrentChange(val) { + this.listQuery.pageIndex = val; + this.safetySelfInspectionL(); + }, + jump(){ + this.$router.push({ + path:"/new" + }) + } + }, }; </script> <style scoped> diff --git a/src/views/safetyproduction/new.vue b/src/views/safetyproduction/new.vue index 66d9aa7..ca2005c 100644 --- a/src/views/safetyproduction/new.vue +++ b/src/views/safetyproduction/new.vue @@ -4,104 +4,142 @@ <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" + :data="tree" + node-key="id" + @check="treeClick" + 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"> + <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> + <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 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" + type="expand" + label="扣分项" > - <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> + <el-table :data="item.child.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> + </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" 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" class="dialog-footer"> + <el-button @click="dialogVisible = false">取 消</el-button> + <el-button type="primary" @click="addC">确 定</el-button> + </span> +</el-dialog> </div> </template> <script> import Titlename from "../../components/Titlename/index.vue"; +import { + safetyInspectionItemTreeA, + safetyInspectionItemTreeB, + safetySelfInspectionAdd, + safetyInspectionItemName, +} from "@/api/safetySelfInspection.js"; export default { components: { Titlename }, data() { @@ -109,110 +147,121 @@ 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, - }, - { - 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", - }, + list: [], + lists:[], + nameList:[], + tree: [], + id: "", + nameA: "", + arr:[] }; }, + created() { + this.TreeA(); + }, methods: { + 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) + + }else{ + var i=this.lists.findIndex(item=>item.nameA===capA.nameA) + this.lists.splice(i,1) + } + } + console.log(this.lists) + }); + }, + 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(){ + 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 + } + }) + }, + addC(){ + safetySelfInspectionAdd(this.form).then(res=>{ + if(res.data.code==200){ + this.dialogVisible=false + this.$notify({ + type: "success", + duration: 2000, + message: "新增成功", + title: "成功", + }); + } + + }) + }, btnsQX() { this.show = true; }, @@ -239,16 +288,22 @@ padding: 10px; } .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; +} </style> \ No newline at end of file diff --git a/src/views/safetyproduction/reviewXG.vue b/src/views/safetyproduction/reviewXG.vue index 9ba6b88..b0a1349 100644 --- a/src/views/safetyproduction/reviewXG.vue +++ b/src/views/safetyproduction/reviewXG.vue @@ -221,6 +221,9 @@ }, }; }, + created(){ + console.log(this.$route.query.id) + }, methods: { handleClick() { this.dialogVisible = true; -- Gitblit v1.9.2