zhaojiale
2022-08-18 375b6acbd3a8f9cf51f967b09ecd09eccd1a12f3
统计 事故统计
已添加1个文件
已修改2个文件
195 ■■■■■ 文件已修改
src/api/goalManagement/index.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/accidentManagementSystem/accidentStatistics/index.vue 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyDrillStatistics/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/goalManagement/index.ts
@@ -386,5 +386,13 @@
                data:params
            })
        },
        // 统计  事故快报
        accidentReportCount(params:any){
            return request({
                url:"/accidentCount/accidentReport/count",
                method:"post",
                data:params
            })
        },
    }
}
src/views/accidentManagementSystem/accidentStatistics/index.vue
对比新文件
@@ -0,0 +1,182 @@
<template>
    <div class="system-user-container">
        <el-card shadow="hover">
            <div class="system-user-search mb15">
                <el-form ref="ruleFormRef" size="default" label-width="80px" :inline="true">
                    <el-row :gutter="35">
                        <el-col :xs="24" :sm="4" :md="4" :lg="4" :xl="4" class="mb20">
                            <el-form-item prop="telephone" label="选择年月">
                                <el-radio-group v-model="params.type" class="w100">
                                    <el-radio :label="2">年</el-radio>
                                    <el-radio :label="1">月</el-radio>
                                </el-radio-group>
                            </el-form-item>
                        </el-col>
                        <el-col :xs="24" :sm="4" :md="4" :lg="4" :xl="4" class="mb20">
                            <el-form-item v-if="params.type==2" prop="telephone" label="选择年">
                                <el-date-picker
                                        v-model="params.year"
                                        :disabled="disabled"
                                        type="year"
                                        class="w100"
                                        value-format="YYYY"
                                        placeholder="选择日期时间"
                                />
                            </el-form-item>
                            <el-form-item v-if="params.type==1" prop="telephone" label="选择月">
                                <el-date-picker
                                        v-model="params.realMonth"
                                        :disabled="disabled"
                                        type="month"
                                        class="w100"
                                        value-format="YYYY-MM"
                                        placeholder="选择日期时间"
                                />
                            </el-form-item>
                        </el-col>
                        <el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8" class="mb20">
                            <el-button size="default" type="primary" class="ml10" @click="emergencySuppliesCount"> 查询</el-button>
                        </el-col>
                    </el-row>
                </el-form>
                <div class="echarts" ref="echarts1">
                </div>
            </div>
        </el-card>
    </div>
</template>
<script lang="ts">
    import { defineComponent, onMounted, ref } from 'vue';
    import * as echarts from 'echarts';
    import { ElMessage } from 'element-plus';
    import { goalManagementApi } from '/@/api/goalManagement';
    import { toNamespacedPath } from 'path/posix';
    export default defineComponent({
        setup() {
            const params = ref({
                level:'',
                type:2,
                year:'2022',
                month:'',
                realMonth:''
            })
            const list = ref([])
//加载数据
            const emergencySuppliesCount = () => {
                if(params.value.type==2){
                    params.value.month=''
                }
                if(params.value.type==1){
                    params.value.year=params.value.realMonth.split('-')[0]
                    params.value.month=params.value.realMonth.split('-')[1]
                }
                goalManagementApi()
                    .accidentReportCount(params.value)
                    .then((res) => {
                        if (res.data.code == 200) {
                            var newList = []
                            for(var a = 0;a<res.data.data.length;a++){
                                newList.push(
                                    {
                                        name:res.data.data[a].name+":"+res.data.data[a].num,
                                        value:res.data.data[a].num,
                                        deathNum: res.data.data[a].deathNum,
                                        economicLoss: res.data.data[a].economicLoss,
                                        minorInjuryNum: res.data.data[a].minorInjuryNum,
                                        seriousInjuryNum: res.data.data[a].seriousInjuryNum
                                    }
                                )
                            }
                            list.value = newList;
                            initPies()
                        } else {
                            ElMessage.error(res.data.msg);
                        }
                    });
            };
            const echarts1 = ref()
            const initPies = () => {
                var myChart = echarts.init(echarts1.value);
                myChart.clear()
                var option = {
                    tooltip: {
                        trigger: 'item',
                        textStyle:{
                            fontSize:18
                        },
                        formatter(params){
                            for(var x in params){
                                return params.data.name.split(':')[0] +":"+params.data.value+'<br />'+
                                    '死亡人数:'+params.data.deathNum+'<br />'+
                                    '轻伤人数:'+params.data.minorInjuryNum+'<br />'+
                                    '重伤人数:'+params.data.seriousInjuryNum+'<br />'+
                                    '经济损失:'+params.data.economicLoss+'<br />'
                            }
                        }
                    },
                    legend: {
                        top: '5%',
                        left: 'center',
                        icon: "circle",
                        formatter: function(param){
                            param=param.split(":");
                            return [param[0]+':'+param[1]].join("");
                        },
                    },
                    series: [
                        {
                            name: '事故等级分布',
                            type: 'pie',
                            radius: ['40%', '70%'],
                            avoidLabelOverlap: false,
                            itemStyle: {
                                borderRadius: 10,
                                borderColor: '#fff',
                                borderWidth: 2
                            },
                            label: {
                                show: false,
                                position: 'center'
                            },
                            emphasis: {
                                label: {
                                    show: false,
                                    fontSize: '40',
                                    fontWeight: 'bold'
                                }
                            },
                            labelLine: {
                                show: false
                            },
                            data: list.value
                        }
                    ]
                };
                myChart.setOption(option, true);
            };
            onMounted(() => {
                emergencySuppliesCount()
            });
            return {
                params,
                list,
                emergencySuppliesCount,
                initPies,
                echarts1
            }
        }
    })
</script>
<style scoped>
.echarts{
    width: 500px;
    height: 400px;
}
</style>
src/views/contingencyManagement/emergencyDrillStatistics/index.vue
@@ -4,11 +4,6 @@
            <h2 class="title">距上次应急演练结束{{day}}天</h2>
            <el-form :model="form" label-width="20px">
                <el-row>
                    <!-- <el-col :span="5" :offset="1">
                        <el-form-item>
                            <el-date-picker v-model="form.date" format="YYYY-MM-DD" type="date" placeholder="应急演练时间" style="width: 100%" />
                        </el-form-item>
                    </el-col> -->
                    <el-col :span="4" :offset="15">
                        <el-form-item size="default">
                            <el-tree-select v-model="form.deptId" :data="data" @change="eaclick" placeholder="选择部门" :props="propse"  style="width: 100%" />