马宇豪
2023-05-05 c819024e241b9f7c54cc3786373ad0d2998f2190
src/views/delayHiddenDangerRectification/rectificationDelayHiddenDanger.vue
@@ -1,13 +1,601 @@
<template>
    <div class="app-container">
        <div style="">
            <Titlename title="发送隐患单"></Titlename>
            <div class="whole-form">
                <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="150px" class="demo-ruleForm"
                         style="margin: 0 14% 0 16%;">
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="隐患编号" prop="name">
                                <el-input v-model="ruleForm.number" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="检查单位" prop="elementAName">
                                <el-select
                                    v-model="ruleForm.check_main_branch"
                                    :disabled="true"
                                    style="width: 100%"
                                >
                                </el-select>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="检查人" prop="region">
                                <el-input v-model="ruleForm.check_man" :disabled="true"></el-input>
                                <!--                                <el-select-->
                                <!--                                    v-model="ruleForm.elementAName"-->
                                <!--                                    :disabled="true"-->
                                <!--                                    style="width: 100%"-->
                                <!--                                >-->
                                <!--                                </el-select>-->
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="陪检人员" prop="name">
                                <el-input v-model="ruleForm.acc_man" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="检查时间" prop="name">
                                <el-date-picker
                                    v-model="ruleForm.check_date"
                                    type="date"
                                    :disabled="true"
                                    placeholder="选择日期"
                                    style="width: 100%">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <!--                            <el-form-item label="班次" prop="name">-->
                            <!--                                <el-input v-model="ruleForm.name"></el-input>-->
                            <!--                            </el-form-item>-->
                            <el-form-item label="班次" prop="elementAName">
                                <el-select
                                    v-model="ruleForm.check_class"
                                    :disabled="true"
                                    style="width: 100%"
                                >
                                </el-select>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="跟班、带班情况" prop="name">
                                <el-input v-model="ruleForm.class_situation" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="跟班、带班人员" prop="name">
                                <el-input v-model="ruleForm.class_man" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="22">
                            <el-form-item label="行走路线" prop="name">
                                <el-input type="textarea" v-model="ruleForm.route" class="multiline"
                                          :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="隐患单位" prop="name">
                                <!--<el-input v-model="ruleForm.name"></el-input>-->
                                <el-select
                                    v-model="ruleForm.ht_community"
                                    :disabled="true"
                                    style="width: 100%"
                                >
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="隐患部门" prop="name">
                                <!--                                <el-input v-model="ruleForm.name"></el-input>-->
                                <el-select
                                    v-model="ruleForm.ht_branch"
                                    :disabled="true"
                                    style="width: 100%"
                                >
                                </el-select>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="22">
                            <el-form-item label="隐患地点" prop="name">
                                <el-input type="textarea" v-model="ruleForm.address" class="multiline"
                                          :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="22">
                            <el-form-item label="隐患内容" prop="name">
                                <el-input type="textarea" v-model="ruleForm.ht_content" class="multiline"
                                          :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="隐患类别" prop="name">
                                <!--<el-input v-model="ruleForm.name"></el-input>-->
                                <el-select
                                    v-model="ruleForm.ht_typesub"
                                    :disabled="true"
                                    style="width: 100%"
                                >
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="隐患级别" prop="name">
                                <!--<el-input v-model="ruleForm.name"></el-input>-->
                                <el-select
                                    v-model="ruleForm.ht_level"
                                    :disabled="true"
                                    style="width: 100%"
                                >
                                </el-select>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="整改措施" prop="name">
                                <el-input v-model="ruleForm.measure" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="所需资金" prop="name">
                                <el-input v-model="ruleForm.name" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="限改时间" prop="name">
                                <!--<el-input v-model="ruleForm.name"></el-input>-->
                                <el-date-picker
                                    v-model="ruleForm.alter_time"
                                    type="date"
                                    :disabled="true"
                                    placeholder="选择日期"
                                    style="width: 100%">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="责任人" prop="name">
                                <el-input v-model="ruleForm.duty_officer" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="完成时间" prop="name">
                                <!--<el-input v-model="ruleForm.name"></el-input>-->
                                <el-date-picker
                                    v-model="ruleForm.ACCOMPLISHTIME"
                                    type="date"
                                    :disabled="true"
                                    placeholder="选择日期"
                                    style="width: 100%">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="整改完成情况" prop="name">
                                <el-input v-model="ruleForm.name" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="复查时间" prop="name">
                                <!--<el-input v-model="ruleForm.name"></el-input>-->
                                <el-date-picker
                                    v-model="ruleForm.CALLBACKTIME"
                                    type="date"
                                    :disabled="true"
                                    placeholder="选择日期"
                                    style="width: 100%">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="复查人" prop="name">
                                <el-input v-model="ruleForm.CALLBACKPERSON" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="复查结果" prop="name">
                                <el-input v-model="ruleForm.CALLBACKRESULT" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="整改次数" prop="name">
                                <el-input v-model="ruleForm.amendnum" :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="22">
                            <el-form-item label="危险源" prop="name">
                                <el-input type="textarea" v-model="ruleForm.dangerousSource" class="multiline"
                                          :disabled="true"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="风险等级" prop="name">
                                <!--                                <el-input v-model="ruleForm.name" :disabled="true"></el-input>-->
                                <el-select
                                    v-model="ruleForm.DTRisk_level"
                                    :disabled="true"
                                    style="width: 100%"
                                >
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="业务科室" prop="name">
                                <!--                                <el-input v-model="ruleForm.name" :disabled="true"></el-input>-->
                                <el-select
                                    v-model="ruleForm.Review"
                                    :disabled="true"
                                    style="width: 100%"
                                >
                                </el-select>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="22">
                            <el-form-item label="流程信息" prop="name">
                                <!--                                <el-input v-model="ruleForm.name" class="multiline" :disabled="true"></el-input>-->
                                <el-table
                                    :data="tableData"
                                    border
                                    style="width: 100%">
                                    <el-table-column
                                        prop="date"
                                        label="步骤"
                                        type="index"
                                        align="center"
                                       >
                                    </el-table-column>
                                    <el-table-column
                                        prop="realname"
                                        label="操作人"
                                        align="center"
                                        >
                                    </el-table-column>
                                    <el-table-column
                                        prop="create_time"
                                        label="处理时间"
                                        align="center"
                                        >
                                    </el-table-column>
                                    <el-table-column
                                        prop="city"
                                        label="审批意见"
                                        align="center"
                                        >
                                        <template slot-scope="scope">
                                            <span size="medium">{{ scope.row.content }}</span>
                                            <span v-for="item in scope.row.realFileName">
                                                <el-link  type="primary" @click="downloadFile(subFile(item))">
                                                    {{subFile(item)}}
                                                </el-link>
                                            </span>
<!--                                            <a v-for="item in scope.row.realFileName"-->
<!--                                               :href="scope.row.url+'/'+item">-->
<!--                                                {{ item.split("fileName=")[1] }}-->
<!--                                            </a>-->
                                        </template>
                                    </el-table-column>
                                    <el-table-column
                                        prop="ispass"
                                        label="流程信息"
                                        align="center"
                                        width="170">
                                    </el-table-column>
                                </el-table>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-form>
                <el-form :model="sendData" :rules="rules" ref="sendData" label-width="150px" class="demo-ruleForm"
                         style="margin: 0 14% 0 16%;">
                    <el-row>
                        <el-col :span="22">
                            <el-form-item label="发送流程" prop="name">
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="22">
                            <el-form-item label="下一步" prop="name">
                                发送到{{ ruleForm.check_main_branch + ruleForm.ht_branch }}
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="22">
                            <el-form-item label="是否同意延期:" prop="ispass">
                                <el-radio-group v-model="sendData.ispass">
                                    <el-radio :label="0">同意延期</el-radio>
                                    <el-radio :label="1">不同意</el-radio>
                                </el-radio-group>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ruleForm.safetyInspectionItemResult == 0">
                        <el-row>
                            <el-col :span="9">
                                <el-form-item label="限改时间" prop="alter_time">
                                    <el-date-picker
                                        v-model="sendData.alter_time"
                                        type="date"
                                        placeholder="选择日期"
                                        style="width: 100%">
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                    <div
                        v-else="ruleForm.safetyInspectionItemResult == 1">
                        <el-row>
                            <el-col :span="9">
                                <el-form-item label="限改时间" prop="alter_time">
                                    <el-date-picker
                                        disabled
                                        v-model="sendData.alter_time"
                                        type="date"
                                        placeholder="选择日期"
                                        style="width: 100%">
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="22">
                                <el-form-item label="备注" prop="desc1">
                                    <el-input class="textarea" type="textarea"
                                              v-model="sendData.dealContent"></el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                    <el-row>
                        <el-col :span="22">
                            <el-form-item style="text-align: center;">
                                <el-button class="btn" size="small" type="primary" @click="submitForm('sendData')">保存
                                </el-button>
                                <el-button size="small" @click="close()">关闭</el-button>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-form>
            </div>
        </div>
    </div>
</template>
<script>
    export default {
        name: "rectificationDelayHiddenDanger"
import Titlename from "../../components/Titlename/index.vue";
import {sendDangerNext, getDangerDetails, getWfRecordList} from "@/api/sgyhpczl/recheckCancellationNumber";
import {downloadFile} from "@/api/sgyhpczl/fileUtils";
export default {
    components: {Titlename},
    name: "rectificationDelayHiddenDanger",
    data() {
        return {
            ruleForm: {
                name: '',
                region: '',
                date1: '',
                date2: '',
                delivery: false,
                type: [],
                resource: '',
                value1: '',
                desc: '',
                rechecker: '',
                reviewTime: '',
                reviewResults: '',
                rechecker1: '',
                reviewTime1: '',
                reviewResults1: '',
                desc1: ''
            },
            rules: {
                alter_time: {required: true, message: '请填写复查时间', trigger: 'blur'},
            },
            sendData: {
                id: "",
                step: "1",
                ispass: 0,
                alter_time: "",
                dealContent: "",
            },
            tableData: [],
            fileList: [],
            // safetyInspectionItemResult:'0',
        };
    },
    mounted() {
        this.getDangerDetails();
        this.getWfRecordList()
    },
    watch: {
        "sendData.ispass": function (newVal, oldVal) {
            console.log(newVal)
            if (newVal == 0) {
                this.sendData.alter_time = this.ruleForm.extension;
            } else {
                this.sendData.alter_time = this.ruleForm.alter_time;
            }
        }
    },
    methods: {
        getDangerDetails() {
            getDangerDetails(this.$route.query.id).then(res => {
                var data = res.data;
                if (data.ok) {
                    this.ruleForm = data.data;
                    this.sendData.id = this.ruleForm.id;
                    this.sendData.alter_time = this.ruleForm.extension;
                    this.ruleForm.url = process.env.BASE_API;
                    this.ruleForm.callback_branch = data.data.check_main_branch
                    //this.ruleForm.ispass=0
                } else {
                    this.$message({type: 'error', message: "数据查询失败,请重试!", duration: 3000})
                }
            })
        },
        getWfRecordList() {
            getWfRecordList(this.$route.query.id).then(res => {
                var data = res.data;
                if (data.ok) {
                    this.tableData = data.data;
                } else {
                    this.$message({type: 'error', message: "数据查询失败,请重试!", duration: 3000})
                }
            })
        },
        submitForm(formName) {
            this.$refs[formName].validate((valid) => {
                if (valid) {
                    sendDangerNext(this.sendData).then(res => {
                        var msg = res.data.msg;
                        if (res.data.ok) {
                            this.$router.push({
                                path: "/delayHiddenDangerRectification",
                            })
                            this.$message({type: 'success', message: msg, duration: 3000})
                        } else {
                            this.$message({type: 'error', message: msg, duration: 3000})
                        }
                    })
                } else {
                    console.log('error submit!!');
                    return false;
                }
            });
        },
        handleRemove(file, fileList) {
            console.log(file, fileList);
        },
        handlePreview(file) {
            console.log(file);
        },
        beforeUpload(file) {
            var FileExt = file.name.replace(/.+\./, "");
            if (['jpg', 'png', 'bmp', 'gif', 'jpeg'].indexOf(FileExt.toLowerCase()) === -1) {
                this.$message({
                    type: 'warning',
                    message: '请上传后缀名为jpg、png、bmp、gif、jpeg的图片!'
                });
                return false;
            }
        },
        close() {
            this.$router.push({
                path: "/delayHiddenDangerRectification"
            })
        },
        subFile(fileName){
            return  fileName.substring(fileName.indexOf("fileName=")+9)
        },
        downloadFile(path){
            let params = {
                type: 0,
                fileName: path,
            };
            downloadFile(params).then((res) => {
                if(res.data.type=='text/json'){
                    const reader  = new FileReader();
                    reader.readAsText(res.data, 'utf-8');
                    reader.onload = e => {
                        this.$message({
                            type: "error",
                            message: JSON.parse(reader.result).msg,
                            duration: 3000,
                        });
                    }
                } else {
                    let blob = new Blob([res.data], {type: 'application/octet-stream'})
                    console.log(blob)
                    let blobUrl = window.URL.createObjectURL(blob)
                    let downloadElement = document.createElement('a')
                    downloadElement.href = blobUrl
                    downloadElement.download = path
                    document.body.appendChild(downloadElement)
                    downloadElement.click()
                    document.body.removeChild(downloadElement)
                    window.URL.revokeObjectURL(blobUrl)
                }
            });
        },
    }
}
</script>
<style scoped>
.app-container {
    padding: 20px;
    height: 850px;
    overflow-y: auto;
}
/deep/ .box {
    padding-top: 0;
}
/deep/ .multiline .el-input__inner {
    height: 62px;
}
/deep/ .textarea .el-textarea__inner {
    height: 80px;
    max-height: 80px;
    overflow-y: auto
}
/deep/ .textarea2 .el-textarea__inner {
    height: 100px;
    max-height: 100px;
    overflow-y: auto
}
.btn {
    background-color: #034ea2;
    border: 1px solid #034ea2;
}
/*.el-button:hover {*/
/*    background: #66b1ff;*/
/*    border-color: #66b1ff;*/
/*    color: #FFF;*/
/*}*/
</style>