lct
Your Name
2022-08-23 3c647d3837f7a1c2c146b7d4c39a87174782215f
src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/rectify/index.vue
@@ -1,49 +1,25 @@
<template>
    <div class="app-container">
        <div style="margin: 15px">
            <div class="basic_search">
                <span>整改类型:</span>
                <el-select class="analyseUnit_box" v-model="filter.rectifyType" placeholder="整改类型" filterable>
                    <el-option v-for="item in rectifyTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                </el-select>
            </div>
            <div class="basic_search">
                <span>整改部门:</span>
                <el-select v-model="filter.rectifyDepId"  clearable filterable class="analyseUnit_box">
                    <el-option
                        v-for="item in departmentList"
                        :key="item.id"
                        :label="item.department"
                        :value="item.id"
                    ></el-option>
                </el-select>            </div>
            <span class="span-filter-label">单号</span>
            <el-input style="width: 140px" v-model="filter.filter.code" ></el-input>
            <span class="span-filter-label">状态</span>
            <el-select
                v-model="filter.filter.status"
                class="filter-item"
                clearable
                @clear="clearStatus"
                style="width:150px;margin-bottom: 10px">
                <el-option
                    v-for="item in reportStatus"
                    :key="item.key"
                    :label="item.value"
                    :value="item.key">
                </el-option>
            </el-select>
            <span class="span-filter-label">隐患等级</span>
            <el-select v-model="filter.filter.level"  clearable @clear="clearLevel" placeholder="请选择">
                <el-option
                    v-for="item in levels"
                    :key="item.key"
                    :label="item.value"
                    :value="item.key">
                </el-option>
            </el-select>
            <span class="span-filter-label">上报人</span>
            <el-input style="width: 160px" v-model="filter.filter.requestorName"></el-input>
            <span class="span-filter-label">隐患来源</span>
            <el-select v-model="filter.filter.source" clearable   placeholder="请选择">
                <el-option
                    v-for="item in sources"
                    :key="item.key"
                    :label="item.value"
                    :value="item.key">
                </el-option>
            </el-select>
            <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-search"
                       @click="queryHandle"/>
                       @click="queryHandle">搜索</el-button>
        </div>
        <div class="table_content">
            <el-table
@@ -55,37 +31,39 @@
                highlight-current-row
                style="width: 100%;"
            >
                <el-table-column type="index" label="序号" align="center" width="80"/>
                <el-table-column label="单号" prop="code" align="center" />
                <el-table-column label="状态" prop="status" align="center" >
                <el-table-column type="index" label="序号" width="60" />
                <el-table-column prop="rectifyDesc" label="整改内容说明" show-overflow-tooltip min-width="150px"></el-table-column>
                <el-table-column prop="rectifyTime" label="整改期限" show-overflow-tooltip min-width="200px">
                    <template slot-scope="scope">
                        <span >{{scope.row.status}}</span>
                        <span v-if="new Date(scope.row.rectifydeadline) < new Date() && scope.row.status  !== '已完成'" class="overdue-img">逾期</span>
                        <span>{{ scope.row.rectifyTime }}</span>
                        <span v-if="scope.row.dangerStatus === 2" class="overdue-img">逾期</span>
                        <span v-if="scope.row.dangerStatus === 9" class="overdue-img">逾期</span>
                    </template>
                </el-table-column>
                <el-table-column label="隐患等级" prop="level" align="center" >
                <el-table-column prop="rectifyType" label=" 整改类型" show-overflow-tooltip min-width="150px">
                    <template slot-scope="scope">
                        <el-tag :type="scope.row.level == '重大隐患'?'danger':'warning'">{{scope.row.level}}</el-tag>
                        {{ parseNumber(scope.row.rectifyType, '整改类型') }}
                    </template>
                </el-table-column>
                <el-table-column label="隐患来源" prop="source" align="center" >
                <el-table-column prop="liablePerson" label="整改责任人" show-overflow-tooltip min-width="150px"></el-table-column>
                <el-table-column prop="cost" label="整改资金" show-overflow-tooltip min-width="150px"></el-table-column>
                <el-table-column prop="dangerStatus" label="隐患整改状态" show-overflow-tooltip min-width="150px" align="center">
                    <template slot-scope="scope">
                        <span>{{sources.find(item=>item.key === scope.row.source).value}}</span>
                        <el-tag :type="scope.row.dangerStatus === 0 ? 'info' : scope.row.dangerStatus === 1 ? 'primary' : scope.row.dangerStatus === 2 ? 'warning' : scope.row.dangerStatus === 4 ? 'danger' : 'success'">
                            {{ parseNumber(scope.row.dangerStatus, '隐患整改状态') }}
                        </el-tag>
                    </template>
                </el-table-column>
                <el-table-column label="上报人" prop="requestor" align="center" />
                <el-table-column label="整改人" prop="rectifier" align="center" />
                <el-table-column label="整改期限" prop="rectifydeadline" align="center" >
                <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip min-width="150px"></el-table-column>
                <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip min-width="200px"></el-table-column>
                <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip min-width="150px"></el-table-column>
                <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip min-width="200px"></el-table-column>
                <el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width" fixed="right">
                    <template slot-scope="scope">
                        <span v-bind:class="{'overdue':new Date(scope.row.rectifydeadline) < new Date() && scope.row.status  !== '已完成'}">{{scope.row.rectifydeadline}}
                        </span>
                    </template>
                </el-table-column>
                <el-table-column label="创建时间" prop="createtime" align="center" />
                <el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width">
                    <template slot-scope="scope">
                        <el-button  type="text" @click="viewHandle(scope.row)">查看</el-button>
                        <el-button  type="text" @click="rectifyHandle(scope.row)" v-if="scope.row.status === '待整改' || scope.row.status === '驳回待整改'">整改</el-button>
                        <el-button type="text" @click="viewHandle('查看',scope.row)">查看</el-button>
                        <el-button type="text" v-show="scope.row.dangerStatus === 0 || scope.row.dangerStatus === 2" @click="viewHandle('整改', scope.row)">整改</el-button>
                        <el-button type="text" v-show="scope.row.dangerStatus === 0 || scope.row.dangerStatus === 2" @click="viewHandle('延期', scope.row)">延期</el-button>
                        <el-button type="text" style="color:red" @click="deleteById(scope.row)">删除</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -105,7 +83,7 @@
        </div>
        <report-view ref="reportView"></report-view>
        <rectify-dialog ref="rectifyDialog" @refresh = "hiddenDangerList"></rectify-dialog>
        <rectify-dialog ref="rectifyDialog" @refreshRectify = "hiddenDangerList"></rectify-dialog>
        <div style="clear: both;"></div>
    </div>
@@ -116,6 +94,7 @@
    import { hiddenDangerRectifyList } from '@/api/hiddenDanger';
    import reportView from "../components/reportView";
    import rectifyDialog from "./components/rectifyDialog";
    import {deleteHiddenDangerReport} from "../../../../../api/hiddenDanger";
    export default {
        name: "rectify",
@@ -129,37 +108,23 @@
                tableKey: 0,
                tableData:[],
                listLoading: false,
                levels:[
                    {"key":"URGENT","value":"重大隐患"},
                    {"key":"COMMON","value":"一般隐患"},
                departmentList: [],
                rectifyTypeList: [
                    { id: 1, name: '即查即改' },
                    { id: 2, name: '限期整改' }
                ],
                sources:[
                    {"key":1,"value":"隐患上报"},
                    {"key":2,"value":"巡检上报"},
                dangerStatusList: [
                    { id: 0, name: '整改中' },
                    { id: 1, name: '待验收' },
                    { id: 2, name: '延期整改' },
                    { id: 4, name: '超期未整改' },
                    { id: 9, name: '已验收' }
                ],
                reportStatus:[
                    {"key":"TORECTIFY","value":"待整改"},
                    {"key":"TOACCEPT","value":"整改待验收"},
                    {"key":"REJECTED","value":"驳回待整改"},
                    {"key":"COMPLETED","value":"已完成"},
                ],
                dataForm: {
                    id:'',
                    note: '',
                    level:'',
                    rectifynote:'',
                    rectifydeadline:'',
                    rectifymeasure:''
                },
                filter:{
                    pageIndex:1,
                    pageSize:10,
                    filter:{
                        status:null,
                        code:'',
                        requestorName:'',
                        level:null,
                    }
                    rectifyType: null,
                    rectifyDepId: null,
                }
            }
        },
@@ -172,8 +137,8 @@
                this.filter.pageIndex = 1
                this.hiddenDangerList()
            },
            viewHandle (row) {
                this.$refs.reportView.showDialog("查看",row)
            viewHandle (type,row) {
                this.$refs.rectifyDialog.showDialog(type,row)
            },
            rectifyHandle(row){
                this.$refs.rectifyDialog.show(row)
@@ -204,8 +169,8 @@
                hiddenDangerRectifyList(this.filter)
                    .then(res=>{
                        if (res.data.code === '200') {
                            this.tableData =  res.data.result.records
                            this.recordTotal =  res.data.result.total
                            this.tableData =  res.data.data
                            this.recordTotal =  res.data.count
                        }
                        else{
                            this.$message({message:  res.data.message, type: 'warning'});
@@ -221,6 +186,33 @@
                        this.listLoading = false
                    })
            },
            parseNumber (value, type) {
                if (type === '整改类型') {
                    return this.rectifyTypeList.find((item) => item.id === value).name;
                } else if (type === '隐患整改状态') {
                    return this.dangerStatusList.find((item) => item.id === value).name;
                }
            },
            deleteById(val){
                this.$confirm('删除此条信息,是否继续','提示',{
                    confirmButtonText:'确定',
                    cancelButtonText:'取消',
                    type:'warning',
                }).then(()=> {
                    deleteHiddenDangerReport({id:val.id}).then( ()=>{
                        this.hiddenDangerList()
                        this.$notify({
                            title:'成功',
                            message:'删除成功',
                            type:'success',
                            duration:2000,
                        })
                    })
                })
            },
            clearLevel(){
                this.filter.filter.level = null
            },
@@ -253,4 +245,14 @@
        padding: 1px 3px 0 3px;
    }
    .basic_search{
        display:inline-block;
        padding-bottom: 10px;
    }
    .analyseUnit_input{
        width:90%;
    }
    .analyseUnit_box{
        width:200px;
    }
</style>