lct
Your Name
2022-08-23 3c647d3837f7a1c2c146b7d4c39a87174782215f
src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/accept/index.vue
@@ -1,21 +1,20 @@
<template>
    <div class="app-container">
        <div style="margin: 15px">
            <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.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.rectifierName"></el-input>
            <div class="basic_search">
                <span>验收人:</span>
                <el-select v-model="filter.checkAcceptPersonid"  clearable filterable class="analyseUnit_box">
                    <el-option
                        v-for="item in userList"
                        :key="item.id"
                        :label="item.realname"
                        :value="item.id"
                    ></el-option>
                </el-select>
            </div>
            <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
@@ -27,35 +26,38 @@
                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="requestor" align="center" />
                <el-table-column label="上报时间" prop="createtime" align="center" />
                <el-table-column label="整改人" prop="rectifier" align="center" />
                <el-table-column label="整改期限"   prop="rectifydeadline" 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 v-bind:class="{'overdue':new Date(scope.row.rectifydeadline) < new Date() && scope.row.status  !== '已完成'}">{{scope.row.rectifydeadline}}
                        </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="rectifytime" align="center" />
                <el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width">
                <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">
                        <el-button  type="text" @click="viewHandle(scope.row)">查看</el-button>
                        <el-button  type="text" @click="acceptHandle(scope.row)" v-if="scope.row.status === '整改待验收'">验收</el-button>
                        <el-button type="text" @click="viewHandle('查看',scope.row)">查看</el-button>
                        <el-button type="text"  v-show="scope.row.dangerStatus === 1" @click="checkDialog(scope.row)">验收</el-button>
<!--                        <el-button type="text" style="color:red" @click="deleteById(scope.row)">删除</el-button>-->
                    </template>
                </el-table-column>
            </el-table>
@@ -74,142 +76,194 @@
            />
        </div>
        <accept-dialog ref="accept" @refreshCheck="hiddenDangerList"></accept-dialog>
        <report-view ref="reportView"></report-view>
        <accept-dialog ref="acceptDialog" @refresh="hiddenDangerList"></accept-dialog>
        <rectify-dialog ref="rectifyDialog" @refresh = "hiddenDangerList"></rectify-dialog>
        <div style="clear: both;"></div>
    </div>
</template>
<script>
    import { checkBtnPermission} from "@/utils/permission";
    import { hiddenDangerAcceptList} from '@/api/hiddenDanger';
    import reportView from "../components/reportView";
    import acceptDialog from "./components/acceptDialog";
import { checkBtnPermission} from "@/utils/permission";
import { hiddenDangerRectifyList } from '@/api/hiddenDanger';
import reportView from "../components/reportView";
import rectifyDialog from "../rectify/components/rectifyDialog";
import {deleteHiddenDangerReport, hiddenDangerAcceptList} from "../../../../../api/hiddenDanger";
import {safetyInspectionItemName} from "../../../../../api/safetySelfInspection";
import AcceptDialog from "./components/acceptDialog";
    export default {
        name: "confirm",
        components: {
            reportView,
            acceptDialog,
        },
        data() {
            return {
                recordTotal: 0,
                tableKey: 0,
                tableData:[],
                listLoading: true,
                levels:[
                    {"key":"URGENT","value":"紧急"},
                    {"key":"COMMON","value":"一般"},
                ],
                dataForm: {
                    id:'',
                    note: '',
                    level:'',
                    rejectnote:'',
                },
                filter:{
                    pageIndex:1,
                    pageSize:10,
                    filter:{
                        code:'',
                        level:null,
                        rectifierName:'',
                    }
                }
export default {
    name: "rectify",
    components: {
        AcceptDialog,
        reportView,
        rectifyDialog,
    },
    data() {
        return {
            recordTotal: 0,
            tableKey: 0,
            tableData:[],
            userList:[],
            listLoading: false,
            departmentList: [],
            rectifyTypeList: [
                { id: 1, name: '即查即改' },
                { id: 2, name: '限期整改' }
            ],
            dangerStatusList: [
                { id: 0, name: '整改中' },
                { id: 1, name: '待验收' },
                { id: 2, name: '延期整改' },
                { id: 4, name: '超期未整改' },
                { id: 9, name: '已验收' }
            ],
            filter:{
                pageIndex:1,
                pageSize:10,
                checkAcceptPersonid: null,
            }
        },
        created() {
            this.hiddenDangerList();
        },
        methods: {
            queryHandle: function () {
                this.filter.pageIndex = 1
                this.hiddenDangerList()
            },
            viewHandle: function (row) {
                this.$refs.reportView.showDialog("查看",row)
            },
            acceptHandle(row){
                this.$refs.acceptDialog.showDialog(row)
            }  ,
            handleSizeChange: function (val) {
                this.filter.pageSize = val
                this.filter.pageIndex = 1
                this.hiddenDangerList()
            },
            handleCurrentChange: function (val) {
                this.filter.pageIndex = val
                this.hiddenDangerList()
            },
            getBtnPermission(btnType) {
                return checkBtnPermission(this.userType, btnType)
            },
            downloadHandle(fileurl){
                window.open(fileurl, '_blank');
            },
            handleChange(file, fileList) {
                this.fileList = fileList
            },
            hiddenDangerList(){
                this.listLoading = true
                hiddenDangerAcceptList(this.filter)
                    .then(res=>{
                        if (res.data.code === '200') {
                            this.tableData =  res.data.result.records
                            this.recordTotal =  res.data.result.total
                        }
                        else{
                            this.$message({message: res.data.message, type: 'warning'});
                        }
                    })
                    .catch(err=>{
                        console.log(err)
                        this.$message({message: '接口错误', type: 'warning'});
                    })
                    .finally(()=>{
                        this.listLoading = false
                    })
            },
            clearLevel(){
                this.filter.filter.level = null
            }
        }
    },
    created() {
        this.hiddenDangerList();
        this.getUser()
    },
    methods: {
        queryHandle: function () {
            this.filter.pageIndex = 1
            this.hiddenDangerList()
        },
        checkDialog(row){
            this.$refs.accept.showDialog(row)
        },
        viewHandle (type,row) {
            this.$refs.rectifyDialog.showDialog(type,row)
        },
        rectifyHandle(row){
            this.$refs.rectifyDialog.show(row)
        },
        handleSizeChange: function (val) {
            this.filter.pageSize = val
            this.filter.pageIndex = 1
            this.hiddenDangerList()
        },
        handleCurrentChange: function (val) {
            this.filter.pageIndex = val
            this.hiddenDangerList()
        },
        getBtnPermission(btnType) {
            return checkBtnPermission(this.userType, btnType)
        },
        downloadHandle(fileurl){
            window.open(fileurl, '_blank');
        },
        async getUser(){
            let res = await safetyInspectionItemName()
            if(res.data.code === '200'){
                this.userList = res.data.result
            }else{
                this.$message({
                    message:res.data.message,
                    type:'warning'
                })
            }
        },
        hiddenDangerList(){
            this.listLoading = true
            hiddenDangerAcceptList(this.filter)
                .then(res=>{
                    if (res.data.code === '200') {
                        this.tableData =  res.data.data
                        this.recordTotal =  res.data.count
                    }
                    else{
                        this.$message({message:  res.data.message, type: 'warning'});
                    }
                })
                .catch(err=>{
                    console.log(err)
                    this.$message({message: '接口错误', type: 'warning'});
                })
                .finally(()=>{
                    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
        },
        clearStatus(){
            this.filter.filter.status = null
        },
    }
}
</script>
<style scoped>
    .overdue{
        color: red;
    }
    .overdue-img{
        position: absolute;
        background-color: #f56c6c;
        border-radius: 4px;
        color: #fff;
        display: inline-block;
        font-size: 12px;
        height: 21px;
        line-height: 18px;
        text-align: center;
        white-space: nowrap;
        border: 1px solid #fff;
        transform: scale(0.8);
        padding: 1px 3px 0 3px;
    }
.overdue{
    color: red;
}
.overdue-img{
    position: absolute;
    background-color: #f56c6c;
    border-radius: 4px;
    color: #fff;
    display: inline-block;
    font-size: 12px;
    height: 21px;
    line-height: 18px;
    text-align: center;
    white-space: nowrap;
    border: 1px solid #fff;
    transform: scale(0.8);
    padding: 1px 3px 0 3px;
}
.basic_search{
    display:inline-block;
    padding-bottom: 10px;
}
.analyseUnit_input{
    width:90%;
}
.analyseUnit_box{
    width:200px;
}
</style>