From 375b6acbd3a8f9cf51f967b09ecd09eccd1a12f3 Mon Sep 17 00:00:00 2001
From: zhaojiale <631455805@qq.com>
Date: 星期四, 18 八月 2022 17:53:29 +0800
Subject: [PATCH] 统计 事故统计
---
src/views/accidentManagementSystem/accidentStatistics/index.vue | 182 +++++++++++++++++++++++++++++++++++++++++++++
src/api/goalManagement/index.ts | 8 ++
src/views/contingencyManagement/emergencyDrillStatistics/index.vue | 5 -
3 files changed, 190 insertions(+), 5 deletions(-)
diff --git a/src/api/goalManagement/index.ts b/src/api/goalManagement/index.ts
index 806f59e..3c20344 100644
--- a/src/api/goalManagement/index.ts
+++ b/src/api/goalManagement/index.ts
@@ -386,5 +386,13 @@
data:params
})
},
+ // 统计 事故快报
+ accidentReportCount(params:any){
+ return request({
+ url:"/accidentCount/accidentReport/count",
+ method:"post",
+ data:params
+ })
+ },
}
}
\ No newline at end of file
diff --git a/src/views/accidentManagementSystem/accidentStatistics/index.vue b/src/views/accidentManagementSystem/accidentStatistics/index.vue
new file mode 100644
index 0000000..1337225
--- /dev/null
+++ b/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>
\ No newline at end of file
diff --git a/src/views/contingencyManagement/emergencyDrillStatistics/index.vue b/src/views/contingencyManagement/emergencyDrillStatistics/index.vue
index d9134b7..fed25d7 100644
--- a/src/views/contingencyManagement/emergencyDrillStatistics/index.vue
+++ b/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%" />
--
Gitblit v1.9.2