From c819024e241b9f7c54cc3786373ad0d2998f2190 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期五, 05 五月 2023 08:55:46 +0800 Subject: [PATCH] 修改 --- src/views/hiddenDangerManagement/index.vue | 709 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 705 insertions(+), 4 deletions(-) diff --git a/src/views/hiddenDangerManagement/index.vue b/src/views/hiddenDangerManagement/index.vue index 998609e..74d30e6 100644 --- a/src/views/hiddenDangerManagement/index.vue +++ b/src/views/hiddenDangerManagement/index.vue @@ -1,13 +1,714 @@ <template> + <div class="app-container"> + <el-form ref="form" :inline="true" class="inquire" :model="form" label-width="80px"> + <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-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_branch" style="width:202px"></el-input> + </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.qdJyfsId" placeholder="请选择"> + <el-option + v-for="item in YHLYList" + :key="item.value" + :label="item.label" + :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_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-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="7"> + <el-radio-group v-model="listQuery.form.alter_status"> + <el-radio-button v-for="item in statusList" :label="item.value" :key="item.value" + @change.native="getPageList"></el-radio-button> + </el-radio-group> + </el-col> + <el-col :span="10"> + <el-form ref="form" :inline="true" :model="form" label-width="100px"> + <!-- <el-form-item label="EXCEL导入">--> + <!-- <el-input v-model="form.name" placeholder="未选择文件"></el-input>--> + <!-- </el-form-item>--> + <el-form-item> + <!-- <el-button type="primary" size="small" class="btns"--> + <!-- >选择文件--> + <!-- </el-button--> + <!-- >--> + + <el-upload action="" :auto-upload="false" :multiple="false" :show-file-list="false" + :on-change="uploadByJsqd" style="display: inline;" :file-list="fileList" + > + <el-button + type="primary" + class="btns" + size="small" + v-show="buttomShow" + icon="el-icon-bottom" + >导入 + </el-button + > + </el-upload> + + <el-button + type="primary" + class="btns" + size="small" + v-show="buttomShow" + @click="downTemplate" + icon="el-icon-download" + >下载模板 + </el-button + > + </el-form-item> + </el-form> + </el-col> + <el-col :span="7" style="text-align: right"> + <el-button + class="btns" + type="primary" + size="small" + v-show="buttomShow" + @click="fillRectification()" + >填写整改 + </el-button + > + <el-button + class="btns" + type="primary" + size="small" + @click="fillInspector()" + >填写督查 + </el-button + > + <el-button + class="btns" + type="primary" + size="small" + v-show="!buttomShow" + @click="revoke()" + >撤销 + </el-button + > + <el-button class="btns" type="primary" icon="el-icon-plus" @click="jump" size="small" + v-show="buttomShow" + >添加 + </el-button + > + <el-button size="small" @click="deleteBath" v-show="buttomShow" + >批量删除 + </el-button + > + + </el-col> + </el-row> + <el-table :data="tableData" ref="dataTable" style="width: 100%" 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="ht_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 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"></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="级别" width="100" align="center"></el-table-column> + </el-table-column> + <el-table-column label="整改计划" align="center"> + <el-table-column prop="measure" label="整改措施" width="150" align="center"></el-table-column> + <!-- <el-table-column 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="限改时间" :formatter="formatColumnDate" width="120" + align="center"> + <template slot-scope="scope"> + <div v-if="new Date(scope.row.alter_time).getTime()>new Date().getTime()" slot="reference" class="name-wrapper">{{ + formatDate(scope.row.alter_time) + }} + </div> + <div style="background-color: orange;height: 50px;line-height: 50px" v-if="new Date(scope.row.alter_time).getTime()<new Date().getTime()" slot="reference" class="name-wrapper">{{ + formatDate(scope.row.alter_time) + }} + </div> + </template> + </el-table-column> + <!-- <el-table-column label="级别" align="center"> </el-table-column> --> + </el-table-column> + <el-table-column label="整改情况" align="center"> + <el-table-column prop="ACCOMPLISHTIME" label="完成时间" :formatter="formatColumnDate" width="120" + align="center"></el-table-column> + <!-- <el-table-column label="复查结果" align="center"> </el-table-column> --> + <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"></el-table-column> + <el-table-column prop="CALLBACKTIME" label="复查时间" :formatter="formatColumnDate" width="120" + align="center"></el-table-column> + </el-table-column> + <!-- <el-table-column label="隐患处理状态" align="center"> </el-table-column> --> + <el-table-column prop="DTRisk_bankId" label="是否关联" align="center" > + <template slot-scope="scope"> + <span + v-if="scope.row.DTRisk_bankId==0 || scope.row.DTRisk_bankId=='' || scope.row.DTRisk_bankId==null" style="color: red">未关联</span> + <span v-else>已关联</span> + </template> + </el-table-column> + <!-- <el-table-column label="风险等级" align="center"> </el-table-column> --> + <el-table-column label="初始警情" align="center" prop="warningLevel"></el-table-column> + <el-table-column label="当前警情" align="center" prop="curWarningLevel"></el-table-column> + <!-- <el-table-column label="流程操作" align="center"> </el-table-column> --> + <el-table-column label="基本操作" align="center" fixed="right"> + <template slot-scope="scope"> + <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button> + <el-button type="text" @click="handleDelete(scope.row)" 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> + </div> </template> - <script> - export default { - name: "INDEX" +import { + getPageList, + self_export_do, + self_import_do, + self_del_do, + self_revoke, + self_template, +} from "@/api/sgyhpczl/hiddenDangerManagement"; +import {initJCBM, initYHLX, initBC, initJCLB, initYHBM, initYHJB, initReformStatus} from "@/api/sgyhpczl/initSelect"; + +export default { + data() { + return { + buttomShow: true, + fileList: [], + statusList: [], + options: [], + form: {}, + value1: "", + radio1: "未整改", + reList: [{label: "未关联", value: 0}], + JCDWList: [{label: "众泰煤焦化", value: 0}, {label: "上级单位", value: 1}], + JCBMList: [], + YHLXList: [], + YHLYList: [{label: '自查录入', value: 1}, {label: '举一反三', value: 2}], + BCList: [], + JCLBList: [], + YHBMList: [], + YHJBList: [], + tableData: [], + loading:false, + listQuery: { + page: 1, + limit: 10, + form: { + alter_status: '未整改' + }, + }, + currentPage: 1, + pageSize: 10, + recordTotal: 0, + }; + }, mounted() { + this.getPageList() + this.initYHLX() + this.initYHJB() + this.initBC() + this.initJCLB() + this.initReformStatus() + }, + watch: { + "listQuery.form.alter_status": function (newVal, oldVal) { + console.log(newVal) + if (newVal == "整改完成") { + this.buttomShow = false; + } else { + this.buttomShow = true; + } + } + }, + methods: { + initReformStatus() { + initReformStatus().then(res => { + if (res.data.ok == 1) { + this.statusList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + changeYHDW(val) { + 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 = {} + 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}) + } + }) + }, + jump() { + this.$router.push({ + path: "/fillRectificationAdd" + }) + }, + handleClick(row){ + this.$router.push({ + path: "/fillRectificationAdd", + query:row + }) + }, + fillRectification() { + var checkData = this.$refs.dataTable.selection; + if (checkData.length < 1) { + this.$message({type: 'warning', message: "请选择勾选需要填写的数据!", duration: 3000}) + return; + } + this.$router.push({ + path: "/fillRectification", + query: {"checkData": checkData} + }) + }, + fillInspector() { + var checkData = this.$refs.dataTable.selection; + if (checkData.length < 1) { + this.$message({type: 'warning', message: "请选择勾选需要填写的数据!", duration: 3000}) + return; + } + this.$router.push({ + path: "/fillInspector", + query: {"checkData": checkData} + }) + window.open(href, '_blank'); + }, + exportData() { + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); + //删除分页参数 + this.$delete(requestData, 'page') + this.$delete(requestData, 'limit') + self_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) + }) + }, + downTemplate() { + //删除分页参数 + self_template().then(res => { + 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) + }) + }, + + + //文件发生改变就会触发的事件 导入 + uploadByJsqd(file) { + //判断是否符合beforeAvatarUpload方法中的条件 + if (this.beforeAvatarUpload(file)) { + this.fileList.name = file.name + this.fileList.url = '' + var formdata = new FormData() + formdata.append('file', file.raw) + //importDevice:请求接口 formdata:传递参数 + self_import_do(formdata).then((res) => { + if (res.data.ok) { + this.$message({type: 'success', message: res.data.msg, duration: 3000}) + this.getPageList()//调用表格方法,刷新页面 + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + } + }, + //文件校验方法 + beforeAvatarUpload(file) { + // 通过split方法和fileArr方法获取到文件的后缀名 + let fileArr = file.name.split('.') + let suffix = fileArr[fileArr.length - 1] + //只能导入.xls和.xlsx文件 + if (!/(xls|xlsx)/i.test(suffix)) { + this.$message({type: 'error', message: "文件格式不正确", duration: 3000}) + + return false + } + return true + }, + + revoke() { + var checkData = this.$refs.dataTable.selection; + if (checkData.length < 1) { + this.$message({type: 'warning', message: "请勾选需要撤销的数据!", duration: 3000}) + return; + } + var revokeIds = ""; + checkData.forEach(n => { + revokeIds += n.id + ","; + }) + revokeIds = revokeIds.substring(0, revokeIds.length - 1); + this.$confirm('确认要撤销吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then((res) => { + console.log(res); + self_revoke(revokeIds).then(res => { + if (res.data.ok) { + this.$message({type: 'success', message: res.data.msg, duration: 3000}) + this.getPageList()//调用表格方法,刷新页面 + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }) + }, + + deleteBath() { + var checkData = this.$refs.dataTable.selection; + if (checkData.length < 1) { + this.$message({type: 'warning', message: "请勾选需要删除的数据!", duration: 3000}) + return; + } + var deleteIds = ""; + checkData.forEach(n => { + deleteIds += n.id + ","; + }) + deleteIds = deleteIds.substring(0, deleteIds.length - 1); + this.$confirm('确认要删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then((res) => { + console.log(res); + self_del_do(deleteIds).then(res => { + if (res.data.ok) { + this.$message({type: 'success', message: res.data.msg, duration: 3000}) + this.getPageList()//调用表格方法,刷新页面 + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }) + }, + //方法区 + 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() + ' ' + }, + handleDelete(row){ + this.$confirm('确认要删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then((res) => { + self_del_do(row.id).then(res => { + if (res.data.ok) { + this.$message({type: 'success', message: res.data.msg, duration: 3000}) + this.getPageList()//调用表格方法,刷新页面 + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }) + }, + showDetails(row){ + //hiddenDangerManagement + this.$router.push({ + path: "/dangerDetails", + query: {"id": row.id, "route": "/hiddenDangerManagement"} + }) + } } +}; </script> - <style scoped> +.inquire { + display: flex; + justify-content: left; + flex-wrap: wrap; +} +.inquire .el-form-item { + padding: 0 46px; +} + +.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; +} +.blue-font-color:hover{ + cursor: pointer; + color: blue; +} +.title-center /deep/ .el-radio-button__orig-radio:checked + .el-radio-button__inner { + background-color: #034ea2; + background-color: #034ea2; +} </style> + -- Gitblit v1.9.2