cqf
2022-05-20 41755a32f967e546271c0ebcb59bad8f0d269ecf
src/views/summaryPotentialSafetyHzards/index.vue
@@ -1,144 +1,158 @@
<template>
<div>
    <div class="whole_top">
        <el-form ref="form" :inline="true" :model="form" label-width="100px">
           <div class="top">
              <div class="select">
                  <el-form-item>
                    <el-select v-model="value1"  multiple placeholder="请选择" style="color: red">
                        <el-option
                            v-for="item in options"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                        </el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item>
                    <el-select v-model="value2"  multiple placeholder="请选择" style="color: red">
                        <el-option
                            v-for="item in options"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                        </el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item>
                    <el-select v-model="value3"  multiple placeholder="请选择" style="color: red">
                        <el-option
                            v-for="item in options"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                        </el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item>
                    <el-select v-model="value4"  multiple placeholder="请选择" style="color: red">
                        <el-option
                            v-for="item in options"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                        </el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item>
                    <el-select v-model="value5"  multiple placeholder="请选择" style="color: red">
                        <el-option
                            v-for="item in options"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                        </el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item>
                    <el-select v-model="value6"  multiple placeholder="请选择" style="color: red">
                        <el-option
                            v-for="item in options"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                        </el-option>
                    </el-select>
                  </el-form-item>
              </div>
              <el-form-item>
                <el-radio-group v-model="radio" style="padding: 20px 0;">
                    <el-radio :label="1">按隐患部门</el-radio>
                    <el-radio :label="2">按专业</el-radio>
                    <el-radio :label="3">按级别</el-radio>
                    <el-radio :label="4">按检查类别</el-radio>
                    <el-radio :label="5">按检查单位(上级单位)</el-radio>
                    <el-radio :label="6">按检查单位(本部单位)</el-radio>
                </el-radio-group>
              </el-form-item>
              <el-radio-group v-model="radio">
                  <el-radio :label="1">按隐患部门</el-radio>
                  <el-radio :label="2">按专业</el-radio>
                  <el-radio :label="3">按级别</el-radio>
                  <el-radio :label="4">按检查类别</el-radio>
                  <el-radio :label="5">按检查单位(上级单位)</el-radio>
                  <el-radio :label="6">按检查单位(本部单位)</el-radio>
              </el-radio-group>
           </div>
            <div class="center" style="text-align: center;padding-top: 10px;">
                <el-form-item label="检查时间:">
                    <el-date-picker
                        v-model="time"
                        type="daterange"
                        range-separator="至"
                        start-placeholder="开始日期"
                        end-placeholder="结束日期">
                    </el-date-picker>
                </el-form-item>
                <el-form-item>
                    <el-button  class="btn" size="small" type="primary" @click="close()"
                    >汇总</el-button>
                    <el-button  class="btn" size="small" type="primary" @click="close()"
                    >导出Excel</el-button>
                </el-form-item>
    <div>
        <div class="whole_top">
            <el-form ref="form" :inline="true" :model="form" label-width="100px">
                <div class="top">
                    <div class="select">
                        <el-form-item>
                            <el-select v-model="form.ht_branch" multiple placeholder="请选择隐患部门" style="color: red">
                                <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>
                            <el-select v-model="form.ht_typesub" multiple placeholder="请选择隐患专业" style="color: red">
                                <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>
                            <el-select v-model="form.ht_level" multiple placeholder="请选择隐患级别" style="color: red">
                                <el-option
                                    v-for="item in YHJBList"
                                    :key="item.value"
                                    :label="item.value"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <el-form-item>
                            <el-select v-model="form.checktype" multiple placeholder="请选择检查类型" style="color: red">
                                <el-option
                                    v-for="item in JCLBList"
                                    :key="item.value"
                                    :label="item.label"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <el-form-item>
                            <el-select v-model="form.ht_community" multiple placeholder="请选择上级检查单位"
                                       style="color: red">
                                <el-option
                                    v-for="item in SJLBList"
                                    :key="item.value"
                                    :label="item.value"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <el-form-item>
                            <el-select v-model="form.check_branch" multiple placeholder="请选择本部检查单位"
                                       style="color: red">
                                <el-option
                                    v-for="item in JCBMList"
                                    :key="item.value"
                                    :label="item.value"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </div>
                    <el-form-item label="统计类别">
                        <el-radio-group v-model="form.x_axis" style="padding: 0px 0;">
                            <el-radio label="ht_branch">按隐患部门</el-radio>
                            <el-radio label="ht_typesub">按专业</el-radio>
                            <el-radio label="ht_level">按级别</el-radio>
                            <el-radio label="checktype">按检查类别</el-radio>
                            <el-radio label="ht_community">按检查单位(上级单位)</el-radio>
                            <el-radio label="check_branch">按检查单位(本部单位)</el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <el-form-item label="汇总类别">
                        <el-radio-group v-model="form.y_axis">
                            <el-radio label="ht_branch">按隐患部门</el-radio>
                            <el-radio label="ht_typesub">按专业</el-radio>
                            <el-radio label="ht_level">按级别</el-radio>
                            <el-radio label="checktype">按检查类别</el-radio>
                            <el-radio label="ht_community">按检查单位(上级单位)</el-radio>
                            <el-radio label="check_branch">按检查单位(本部单位)</el-radio>
                        </el-radio-group>
                    </el-form-item>
                </div>
                <div class="center" style="text-align: center;padding-top: 10px;">
                    <el-form-item label="检查时间:">
                        <el-date-picker
                            v-model="time"
                            type="daterange"
                            range-separator="至"
                            start-placeholder="开始日期"
                            end-placeholder="结束日期">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item>
                        <el-button class="btn" size="small" type="primary" @click="queryData"
                        >汇总
                        </el-button>
                        <el-button class="btn" size="small" type="primary" @click="close()"
                        >导出Excel
                        </el-button>
                    </el-form-item>
                </div>
            </el-form>
            <el-table
                :data="tableData"
                style="width: 100%">
                <el-table-column align="center" label="众泰煤焦化-安全隐患台帐">
                    <el-table-column
                        prop="y_label"
                        label="隐患部门\隐患专业"
                        align="center">
                    </el-table-column>
                    <el-table-column
                        v-for="item in tableData[0].items"
                        :label="item.x_label"
                        align="center">
                        <template slot-scope="scope">
                            <span @click="showYHList(scope.row,item)" class="clickSpan">
                                {{ getRowNum(scope.row, item.x_label) }}
                            </span>
                        </template>
                    </el-table-column>
                </el-table-column>
            </el-table>
            <div style="color: #c5021a;margin-top: 20px;">
                <div>温馨提示:</div>
                <div>点选可查询隐患详情。</div>
            </div>
        </el-form>
        <el-table
            :data="tableData"
            style="width: 100%">
            <el-table-column align="center" label="众泰煤焦化-安全隐患台帐">
                <el-table-column
                    prop="name"
                    label="隐患部门\隐患专业"
                    align="center">
                </el-table-column>
                <el-table-column
                    prop="province"
                    label="采掘"
                    align="center">
                </el-table-column>
                <el-table-column
                    prop="city"
                    label="生产"
                    width="120"
                    align="center">
                </el-table-column>
                <el-table-column
                    prop="address"
                    label="合计"
                    width="300"
                    align="center">
                </el-table-column>
            </el-table-column>
        </el-table>
        <div style="color: #c5021a;margin-top: 20px;">
            <div>温馨提示:</div>
            <div>点选可查询隐患详情。</div>
        </div>
    </div>
</div>
</template>
<script>
import {
    initJCBM,
    initYHLX,
    initBC,
    initJCLB,
    initYHBM,
    initYHJB,
    initLlr,
    initReformStatus
} from "@/api/sgyhpczl/initSelect";
import {danger_summary} from "@/api/sgyhpczl/summaryPotentialSafetyHzards";
export default {
    name: "index",
    data() {
@@ -166,58 +180,257 @@
            value5: [],
            value6: [],
            radio: 3,
            time: '',
            tableData: [{
                name: '财务部',
                province: '1',
                city: '4',
                address: '1'
            }, {
                name: '党委副书记',
                province: '0',
                city: '2',
                address: '0'
            }, {
                name: '众泰煤焦化',
                province: '2',
                city: '3',
                address: '1'
            }, {
                name: '王小虎',
                province: '3',
                city: '9',
                address: '2'
            }]
            TJType: "ht_typesub",
            HZType: "ht_branch",
            time: [],
            tableData: [
                {}
            ],
            form: {
                x_axis: "ht_typesub",
                y_axis: "ht_branch"
            },
            JCDWList: [{label: "众泰煤焦化", value: 0}, {label: "上级单位", value: 1}],
            JCBMList: [],
            YHLXList: [],
            BCList: [],
            JCLBList: [],
            SJLBList: [],
            YHBMList: [],
            YHJBList: [],
            YHZTList: [],
            startDate: "",
            endDate: "",
        }
    },
    mounted() {
        this.initYHLX()
        this.initYHJB()
        this.initBC()
        this.initJCLB()
        this.initLlr()
        this.initYHBM()
        this.initYHZT()
        this.initJCBM()
        this.initSJJCBM()
        let startDate = this.getCurrentMonthFirst();
        let endDate = this.getCurrentMonthLast();
        this.time.push(startDate, endDate);
        this.queryData();
    },
    methods: {
        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})
                }
            })
        },
        initYHZT() {
            initReformStatus().then(res => {
                if (res.data.ok == 1) {
                    this.YHZTList = 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})
                }
            })
        },
        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})
                }
            })
        },
        initJCBM() {
            initJCBM(0).then(res => {
                if (res.data.ok == 1) {
                    this.JCBMList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        initSJJCBM() {
            initJCBM(1).then(res => {
                if (res.data.ok == 1) {
                    this.SJLBList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        queryData() {
            let requestData = {};
            let selectData = []
            for (const queryElement in this.form) {
                if (queryElement != "x_axis" && queryElement != "y_axis") {
                    if (this.form[queryElement] != null && this.form[queryElement] != '') {
                        let searchCloumn = {
                            "field": queryElement,
                            "value": this.form[queryElement].join(','),
                            "type": "IN"
                        }
                        selectData.push(searchCloumn);
                    }
                } else {
                    requestData[queryElement] = this.form[queryElement];
                }
            }
            let timeSearchCloumn = {
                "field": "check_date",
                "value": this.time[0] + "至" + this.time[1],
                "type": "DAT"
            }
            selectData.push(timeSearchCloumn)
            requestData.query_condition = selectData;
            danger_summary(requestData).then(res => {
                if (res.data.ok == 1) {
                    this.tableData = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        getCurrentMonthFirst() {
            var date = new Date();
            date.setDate(1);
            var month = parseInt(date.getMonth() + 1);
            var day = date.getDate();
            if (month < 10) {
                month = '0' + month
            }
            if (day < 10) {
                day = '0' + day
            }
            return date.getFullYear() + '-' + month + '-' + day;
        },
        getCurrentMonthLast() {
            var date = new Date();
            var currentMonth = date.getMonth();
            var nextMonth = ++currentMonth;
            var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
            var oneDay = 1000 * 60 * 60 * 24;
            var lastTime = new Date(nextMonthFirstDay - oneDay);
            var month = parseInt(lastTime.getMonth() + 1);
            var day = lastTime.getDate();
            if (month < 10) {
                month = '0' + month
            }
            if (day < 10) {
                day = '0' + day
            }
            return date.getFullYear() + '-' + month + '-' + day;
        },
        getRowNum(row, str) {
            var data = row.items.find(n => n.x_label == str);
            return data.value
        },
        showYHList(row,item){
            var searchData = {};
            searchData[this.form.x_axis] = item.x_label;
            searchData[this.form.y_axis] = row.y_label;
            let requestData = {};
            let selectData = []
            for (const queryElement in this.form) {
                if (queryElement != "x_axis" && queryElement != "y_axis") {
                    if (this.form[queryElement] != null && this.form[queryElement] != '') {
                        let searchCloumn = {
                            "field": queryElement,
                            "value": this.form[queryElement].join(','),
                            "type": "IN"
                        }
                        selectData.push(searchCloumn);
                    }
                } else {
                    requestData[queryElement] = this.form[queryElement];
                }
            }
            searchData.query_condition = selectData;
            this.$router.push({
                path: "/summaryList",
                query: {"searchData": searchData}
            })
        }
    }
}
</script>
<style scoped>
.top{
.top {
    padding: 10px 5px;
    background: #e4edf4;
}
/*下拉框图标隐藏*/
.whole_top .select /deep/ .el-input__suffix-inner .is-reverse{
.whole_top .select /deep/ .el-input__suffix-inner .is-reverse {
    display: none;
}
.whole_top .select /deep/ .el-input__suffix-inner .el-icon-arrow-up{
.whole_top .select /deep/ .el-input__suffix-inner .el-icon-arrow-up {
    display: none;
}
/*设下拉框颜色*/
.select /deep/.el-input__inner {
.select /deep/ .el-input__inner {
    border: 1px solid #c5dbec;
    font-weight: bold;
    background: #dfeffc;
/*.el-icon-circle-close*/
    /*.el-icon-circle-close*/
}
.whole_top .select /deep/.el-select .el-input__inner:focus {
.whole_top .select /deep/ .el-select .el-input__inner:focus {
    color: #e6860b;
}
.select /deep/ .is-focus .el-select__tags-text{
.select /deep/ .is-focus .el-select__tags-text {
    color: #000000;
}
/*下拉框选值之后的样式*/
.select /deep/ .el-tag.el-tag--info {
    background-color: transparent;;
@@ -225,24 +438,33 @@
    font-weight: bold;
    color: #e6860b;
}
/*placeholder颜色修改*/
.whole_top ::-webkit-input-placeholder {
    color: #000000;
}
.whole_top :-moz-placeholder {
    color: #000000;
}
.whole_top ::-moz-placeholder{
.whole_top ::-moz-placeholder {
    color: #000000;
}
.whole_top :-ms-input-placeholder {
    color: #000000;
}
/*日期*/
/deep/ .el-date-editor .el-range-separator{
/deep/ .el-date-editor .el-range-separator {
    width: auto;
}
.btn{
.clickSpan:hover{
    cursor: pointer;
}
.btn {
    background-color: #034ea2;
    border: 1px solid #034ea2;
}