From 44d7a737dc0d63ad1dd7c52d45fc2233d1950173 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期四, 09 六月 2022 09:56:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/shf' into master --- src/views/safetyHazardAccount/index.vue | 766 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 762 insertions(+), 4 deletions(-) diff --git a/src/views/safetyHazardAccount/index.vue b/src/views/safetyHazardAccount/index.vue index 34cd1a0..c40cfa9 100644 --- a/src/views/safetyHazardAccount/index.vue +++ b/src/views/safetyHazardAccount/index.vue @@ -1,13 +1,771 @@ <template> + <div class="app-container"> + <el-form ref="form" :inline="true" class="inquire" :model="form" label-width="100px"> + <el-form-item label="编号"> + <el-input v-model="listQuery.form.number" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="检查单位"> + <el-select v-model="listQuery.form.check_main_branch" placeholder="请选择" @change="changeJCDW"> + <el-option + v-for="item in JCDWList" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查部门"> + <el-select v-model="listQuery.form.check_branch" placeholder="请选择"> + <el-option + v-for="item in JCBMList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查人"> + <el-input v-model="listQuery.form.check_man" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="隐患单位"> + <el-input v-model="listQuery.form.ht_community" style="width:202px" :disabled="true"></el-input> + <!--<el-select v-model="listQuery.form.ht_community" placeholder="请选择" @change="changeYHDW"> + <el-option + v-for="item in JCDWList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select>--> + </el-form-item> + <el-form-item label="隐患部门"> + <el-select v-model="listQuery.form.ht_branch" placeholder="请选择"> + <el-option + v-for="item in YHBMList" + :key="item.branch_name" + :label="item.branch_name" + :value="item.branch_name"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="隐患类别"> + <el-select v-model="listQuery.form.ht_typesub" placeholder="请选择"> + <el-option + v-for="item in YHLXList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="隐患级别"> + <el-select v-model="listQuery.form.ht_level" placeholder="请选择"> + <el-option + v-for="item in YHJBList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查类别"> + <el-select v-model="listQuery.form.checktype" placeholder="请选择"> + <el-option + v-for="item in JCLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="隐患地点"> + <el-input v-model="listQuery.form.address" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="隐患内容"> + <el-input v-model="listQuery.form.ht_content" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="班次"> + <el-select v-model="listQuery.form.check_class" placeholder="请选择"> + <el-option + v-for="item in BCList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="风险等级"> + <el-select v-model="listQuery.form.DTRisk_level" placeholder="请选择"> + <el-option + v-for="item in levelList" + :key="item.name" + :label="item.name" + :value="item.name"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="录入单位"> + <el-select v-model="listQuery.form.createBy" placeholder="请选择"> + <el-option + v-for="item in llrList" + :key="item.id" + :label="item.realName" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="深入现场情况"> + <el-select v-model="listQuery.form.class_situation" placeholder="请选择"> + <el-option + v-for="item in llrList" + :key="item.id" + :label="item.realName" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="是否关联"> + <el-select v-model="listQuery.form.DTRisk_bankId" placeholder="请选择"> + <el-option + v-for="item in reList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="复查单位"> + <el-select v-model="listQuery.form.callback_branch" placeholder="请选择"> + <el-option + v-for="item in YHBMList" + :key="item.branch_id" + :label="item.branch_name" + :value="item.branch_name"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查时间"> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateStart" + style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + <el-col style="text-align:center" :span="2">-</el-col> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateEnd" + style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + </el-form-item> + <el-form-item label="限改时间"> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.alter_timeStart" + value-format="yyyy-MM-dd" 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" placeholder="选择日期" v-model="listQuery.form.alter_timeEnd" + value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker> + </el-col> + </el-form-item> + <el-form-item style="text-align:center;padding:0 50px"> + <el-button type="primary" class="btns" size="small" icon="el-icon-search" @click="getPageList()">查询 + </el-button> + <el-button type="primary" class="btns" size="small" @click="reset()">重置</el-button> + <el-button type="primary" class="btns" size="small" icon="el-icon-upload2" @click="exportData">导出excel</el-button> + </el-form-item> + </el-form> + <el-row class="title-center"> + <el-col :span="12"> + <el-radio-group v-model="YHType"> + <el-radio-button label="1">超期整改</el-radio-button> + <el-radio-button label="2">到期未整改</el-radio-button> + <el-radio-button label="3">二次整改</el-radio-button> + <el-radio-button label="4">正在整改</el-radio-button> + <el-radio-button label="5">正在复查</el-radio-button> + <el-radio-button label="6">整改完成</el-radio-button> + <el-radio-button label="0">全部隐患</el-radio-button> + </el-radio-group> + </el-col> + <el-col :span="12" style="text-align:right;" v-if="YHType=='0'"> + <el-button type="primary" class="btns" size="small" @click="supervision('1')">督查督办</el-button> + <el-button type="primary" class="btns" size="small" @click="supervision('2')">举一反三</el-button> + <!-- <el-button type="primary" class="btns" size="small" @click="base()">双基考核</el-button>--> + <el-button type="primary" class="btns" size="small" @click='deleteBatch'>删除</el-button> + </el-col> + </el-row> + <el-table :data="tableData" ref="pageTable" style="width: 100%" @selection-change="changeBox" v-loading="loading"> + <el-table-column type="selection" width="55" align="center"></el-table-column> + <el-table-column prop="number" label="编号" align="center" width="120"> + <template slot-scope="scope"> + <div class="blue-font-color" @click="showDetails(scope.row)">{{ scope.row.number }}</div> + </template> + </el-table-column> + <el-table-column prop="check_branch" label="检查部门" align="center" width="120"></el-table-column> + <el-table-column prop="check_man" label="检查人" align="center" width="120"></el-table-column> + <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> + <el-table-column label="隐患项目" align="center"> + <el-table-column prop="check_date" label="检查时间" width="120" align="center"> + <template slot-scope="scope"> + <label>{{ formatDate(scope.row.check_date) }}</label><br/> + <label>{{ scope.row.check_class }}</label> + </template> + </el-table-column> + <el-table-column prop="address" label="地点" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.address }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.address != null && scope.row.address.length > 10 ? scope.row.address.substring(0, 8) + "...." : scope.row.address + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_content" label="内容" width="150" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_typesub" label="类别" align="center"></el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"></el-table-column> + </el-table-column> + <el-table-column label="整改计划" align="center"> + <el-table-column prop="measure" label="整改措施" width="150" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.measure }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.measure != null && scope.row.measure.length > 10 ? scope.row.measure.substring(0, 8) + "...." : scope.row.measure + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_branch" label="隐患部门" align="center"></el-table-column> + <el-table-column prop="duty_officer" label="责任人" align="center"></el-table-column> + <el-table-column prop="alter_time" label="限改时间" width="120" :formatter="formatColumnDate" align="center"></el-table-column> + <!-- <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> --> + </el-table-column> + <el-table-column label="整改情况" align="center"> + <el-table-column prop="ACCOMPLISHTIME" label="完成时间" width="110px" :formatter="formatColumnDate" align="center"></el-table-column> + <el-table-column prop="CALLBACKRESULT" label="复查结果" align="center"></el-table-column> + <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"></el-table-column> + <el-table-column prop="CALLBACKTIME" label="复查时间" width="120" :formatter="formatColumnDate" align="center"></el-table-column> + </el-table-column> + <el-table-column label="隐患处理状态" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.step =='1'">初始状态</span> + <span v-if="scope.row.step =='2'">整改中</span> + <span v-if="scope.row.step =='3'">复查中</span> + <span v-if="scope.row.step =='end'">处理结束</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_bankId" label="是否关联" align="center"> + <template slot-scope="scope"> + <span style ="color: red" + v-if="scope.row.DTRisk_bankId==0 || scope.row.DTRisk_bankId=='' || scope.row.DTRisk_bankId==null">未关联</span> + <span v-else>已关联</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_level" label="风险等级" align="center"></el-table-column> + <el-table-column prop="warningLevel" label="初始警情" align="center"></el-table-column> + <el-table-column prop="curWarningLevel" label="当前警情" align="center"></el-table-column> + <!-- <el-table-column prop="date" label="流程操作" align="center" fixed="right"> + <template slot-scope="scope"> + <el-button @click="handleClick(scope.row)" type="text" size="small">点击发送</el-button> + </template> + </el-table-column> --> + <el-table-column prop="date" label="操作" align="center" fixed="right"> + <template slot-scope="scope"> + <el-button @click="updateClick(scope.row)" type="text" size="small">编辑</el-button> + <el-button @click="deleteClick(scope.row)" type="text" size="small">删除</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> + + <!--批量复查弹窗--> + <el-dialog + :title="titleStr" + :visible.sync="dialogVisible" + :close-on-click-modal="false" + width="40%" + > + <el-form> + <el-row> + <el-checkbox style="width: 80px;height: 30px" :key="item.branch_id" v-for="item in YHBMList" + v-model="checked" + :label="item.branch_id">{{ + item.branch_name + }} + </el-checkbox> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center;"> + <el-button class="btn" size="small" type="primary" @click="submitForm()"> + 保存 + </el-button> + <el-button size="small" @click="close()">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + + </div> </template> - <script> +import {getPageList, inspect_do, draw_inferences_do} from "@/api/sgyhpczl/safetyHazardAccount"; +import {delDanger} from "@/api/sgyhpczl/hiddenDangerRegistration"; +import {danger_export_do} from "@/api/sgyhpczl/hiddenDangerRectification"; + + +import {initJCBM, initYHLX, initBC, initJCLB, initYHBM, initYHJB, initLlr} from "@/api/sgyhpczl/initSelect"; + export default { - name: "index" -} + data() { + return { + titleStr:"", + dialogVisible: false, + checked: [], + YHType: '0', + selectedList: [], + reList: [{label: "未关联", value: 0}], + llrList: [], + options: [], + form: {}, + buttonType: "", + JCDWList: [{label: "众泰煤焦化", value: 0}, {label: "上级单位", value: 1}], + JCBMList: [], + YHLXList: [], + BCList: [], + JCLBList: [], + YHBMList: [], + YHJBList: [], + tableData: [], + requestData: {}, + levelList:[{id:1,name:'低风险'},{id:2,name:'一般风险'},{id:3,name:'较大风险'},{id:4,name:'重大风险'}], + loading:false, + listQuery: { + page: 1, + limit: 10, + form: { + ht_community: "众泰煤焦化" + }, + }, + currentPage: 1, + pageSize: 10, + recordTotal: 0, + }; + }, + watch: { + "YHType": function (newVal, oldVal) { + if (newVal) { + this.listQuery.type = parseInt(newVal); + this.getPageList(); + } + }, + "dialogVisible": function (newVal, oldVal) { + this.checked = []; + } + }, + mounted() { + this.getPageList() + this.initYHLX() + this.initYHJB() + this.initBC() + this.initJCLB() + this.initLlr() + this.initYHBM() + }, + methods: { + close() { + this.dialogVisible = false; + }, + deleteBatch() { + if (this.selectedList == null || this.selectedList.length == 0) { + this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) + return + } + var ids = this.selectedList.map((obj) => { + return obj.id + }).join(",") + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + delDanger(ids).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + }); + }) + .catch(error => { + }); + }, + changeBox(val) { + this.selectedList = [] + val.forEach((item) => { + this.selectedList.push(item) + }) + }, + initLlr() { + initLlr().then(res => { + if (res.data.ok == 1) { + this.llrList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHBM() { + initYHBM().then(res => { + if (res.data.ok == 1) { + this.YHBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + changeJCDW(val) { + initJCBM(val).then(res => { + if (res.data.ok == 1) { + this.JCBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + checkTime() { + if (this.listQuery.form.check_dateStart != null && this.listQuery.form.check_dateStart != '') { + if (this.listQuery.form.check_dateEnd != null && this.listQuery.form.check_dateEnd != '') { + } else { + this.$message({type: 'error', message: "请选择检查结束时间", duration: 3000}) + return + } + + } + if (this.listQuery.form.check_dateEnd != null && this.listQuery.form.check_dateEnd != '') { + if (this.listQuery.form.check_dateStart != null && this.listQuery.form.check_dateStart != '') { + } else { + this.$message({type: 'error', message: "请选择检查开始时间", duration: 3000}) + return + } + } + if (this.listQuery.form.alter_timeStart != null && this.listQuery.form.alter_timeStart != '') { + if (this.listQuery.form.alter_timeEnd != null && this.listQuery.form.alter_timeEnd != '') { + } else { + this.$message({type: 'error', message: "请选择限改结束时间", duration: 3000}) + return + } + + } + if (this.listQuery.form.alter_timeEnd != null && this.listQuery.form.alter_timeEnd != '') { + if (this.listQuery.form.alter_timeStart != null && this.listQuery.form.alter_timeStart != '') { + } else { + this.$message({type: 'error', message: "请选择改开始时间", duration: 3000}) + return + } + } + }, + getPageList() { + this.listQuery.page = 1 + this.checkTime() + this.loading = true; + getPageList(this.listQuery).then(res => { + this.loading = false; + if (res.data.ok == 1) { + this.tableData = res.data.data.items + this.recordTotal = res.data.data.total + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + reset() { + this.listQuery.form = {ht_community: "众泰煤焦化"} + this.getPageList() + }, + handleSizeChange(val) { + this.listQuery.limit = val + this.getPageListForPagination(); + }, + handleCurrentChange(val) { + this.listQuery.page = val + this.getPageListForPagination(); + }, + getPageListForPagination() { + this.checkTime() + getPageList(this.listQuery).then(res => { + if (res.data.ok == 1) { + this.tableData = res.data.data.items + this.recordTotal = res.data.data.total + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHLX() { + initYHLX().then(res => { + if (res.data.ok == 1) { + this.YHLXList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHJB() { + initYHJB().then(res => { + if (res.data.ok == 1) { + this.YHJBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initBC() { + initBC().then(res => { + if (res.data.ok == 1) { + this.BCList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initJCLB() { + initJCLB().then(res => { + if (res.data.ok == 1) { + this.JCLBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + updateClick(row) { + this.$router.push({ + path: "/hiddenDangerAdd?id=" + row.id + "&route=safetyHazardAccount" + }) + }, + jump() { + this.$router.push({ + path: "/hiddenDangerAdd" + }) + }, + // 发送隐患单跳转 + handleClick(row) { + this.$router.push({ + path: "/hiddenDangerList?id=" + row.id, + }) + }, + //方法区 + formatDate(data) { + // 获取单元格数据 + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + }, + //方法区 + formatColumnDate(row, column) { + // 获取单元格数据 + let data = row[column.property] + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + }, + deleteClick(row) { + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + delDanger(row.id).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + }); + }) + .catch(error => { + }); + }, + base() { + this.$router.push({ + path: "/Dualbase" + }) + }, + supervision(type) { + if(type == '1'){ + this.titleStr = "督查督办"; + }else{ + this.titleStr = "举一反三"; + } + var selectDataList = this.$refs.pageTable.selection; + this.buttonType = type; + if (selectDataList.length != 1) { + this.$message({ + type: 'warning', + message: '请选择一条数据!' + }); + return false; + } else { + this.requestData.id = selectDataList[0].id; + this.dialogVisible = true; + + } + }, + submitForm() { + if (this.checked.length == 0) { + this.$message({ + type: 'warning', + message: '请勾选需要发送的部门!' + }); + return; + } + this.requestData.branchIds = this.checked.join(";"); + if (this.buttonType == '1') { + inspect_do(this.requestData).then(res => { + if (res.data.ok) { + this.$message({ + type: 'success', + message: res.data.msg + }); + this.dialogVisible = false; + this.getPageList(); + } else { + this.$message({ + type: 'error', + message: res.data.msg + }); + } + }) + } else { + var checkData = this.YHBMList.filter(n => { + return this.checked.indexOf(n.branch_id) != -1; + }) + var branchNames = ""; + checkData.forEach(n => { + branchNames += n.branch_name + ";"; + }) + this.requestData.branchNames = branchNames; + draw_inferences_do(this.requestData).then(res => { + if (res.data.ok) { + this.$message({ + type: 'success', + message: res.data.msg + }); + this.dialogVisible = false; + this.getPageList(); + } else { + this.$message({ + type: 'error', + message: res.data.msg + }); + } + }) + } + }, + showDetails(row){ + this.$router.push({ + path: "/dangerDetails", + query:{"id":row.id,"route":"/safetyHazardAccount"} + }) + }, + exportData() { + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); + requestData.export_type = 6; + //删除分页参数 + this.$delete(requestData, 'page') + this.$delete(requestData, 'limit') + danger_export_do(requestData).then(res => { + this.listLoading = false + var blob = new Blob([res.data]) + var downloadElement = document.createElement('a') + var href = window.URL.createObjectURL(blob) //创建下载的链接 + downloadElement.href = href + downloadElement.download = '安全隐患台账.xlsx' //下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() //点击下载 + document.body.removeChild(downloadElement) //下载完成移除元素 + window.URL.revokeObjectURL(href) //释放掉blob对象 + }).catch(err => { + console.log(err) + }) + }, + } +}; </script> - <style scoped> +.inquire { + display: flex; + justify-content: left; + flex-wrap: wrap; +} +.inquire .el-form-item { + padding: 0 30px; +} + +.title-center { + padding: 20px 0; +} + +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; +} + +.title-center /deep/ .el-radio-button:first-child .el-radio-button__inner { + border: none; +} + +.title-center /deep/ .el-radio-button__inner { + border: none; + border-radius: 0px; +} + +.title-center /deep/ .el-radio-button__orig-radio:checked + .el-radio-button__inner { + background-color: #034ea2; + background-color: #034ea2; +} + +.blue-font-color:hover{ + cursor: pointer; + color: blue; +} </style> + -- Gitblit v1.9.2