From 9354b25e495db5365374f222e368a13cbca9b47e Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期三, 17 八月 2022 14:23:26 +0800 Subject: [PATCH] 对接 --- src/views/goalManagement/targetStatistics/index.vue | 62 +++++++++++++++ src/api/goalManagement/index.ts | 8 ++ src/views/contingencyManagement/emergencyDrillStatistics/index.vue | 144 ++++++++++++++++++++++++++++++++++++ src/views/system/menu/component/menuDialog.vue | 2 4 files changed, 215 insertions(+), 1 deletions(-) diff --git a/src/api/goalManagement/index.ts b/src/api/goalManagement/index.ts index 06f5be6..0fc400b 100644 --- a/src/api/goalManagement/index.ts +++ b/src/api/goalManagement/index.ts @@ -330,6 +330,14 @@ url: '/minio/file/view?obj='+fileName, method: 'get', }) + }, + // 应急统计 + emergencyStat(params:object){ + return request({ + url:`/emergencyCount/emergencyDrillExecute/count`, + method: 'post', + data:params + }) } } } \ No newline at end of file diff --git a/src/views/contingencyManagement/emergencyDrillStatistics/index.vue b/src/views/contingencyManagement/emergencyDrillStatistics/index.vue new file mode 100644 index 0000000..dbe6adc --- /dev/null +++ b/src/views/contingencyManagement/emergencyDrillStatistics/index.vue @@ -0,0 +1,144 @@ +<template> + <div> + <div class="echart"> + <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%" /> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item size="default"> + <el-select v-model="form.type" placeholder="年/月" @change="eaclick" style="width:100%"> + <el-option label="年" :value="1" /> + <el-option label="月" :value="2" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div ref="main" style="width: 100%; height: 400px"></div> + </div> + </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 form = ref({ + type:1, + deptId:1 + }); + //部门 + const department = () => { + goalManagementApi() + .getTreedepartment() + .then((res) => { + if (res.data.code == 200) { + data.value = res.data.data; + } else { + ElMessage.error(res.data.msg); + } + }); + }; + const propse = { + label: 'depName', + children: 'children', + value: 'depId', + }; + const eaclick=()=>{ + listApi() + } + onMounted(() => { + listApi() + department(); + }); + const day=ref(0) + const listApi=()=>{ + goalManagementApi().emergencyStat(form.value).then(res=>{ + if(res.data.code==200){ + day.value=res.data.data.days + let date=[] + let names=[] + res.data.data.dataList.forEach(item => { + date.push(item.num) + names.push(item.name) + }); + init(date,names) + } + }) + } + const main = ref(); + const init = (data: any,names:any) => { + var myChart = echarts.init(main.value); + var option = { + tooltip: {}, + grid: { + left: '3%', + right: '4%', + bottom: '5%', + containLabel: true, + }, + xAxis: { + type: 'category', + data: names, + }, + yAxis: { + type: 'value', + name: '次数', + nameTextStyle: { + color: '#aaa', + nameLocation: 'start', + }, + }, + color: ['#6394f9'], + series: [ + { + data: data, + barWidth : 40, + type: 'bar', + }, + ], + }; + + myChart.setOption(option); + }; + const data = ref([]) + return { + form, + main, + init, + data, + department, + propse, + listApi, + eaclick, + day + }; + }, +}); +</script> +<style scoped> +.title{ + text-align: center; + padding: 20px 0; +} +.echart { + background-color: #fff; + border-radius: 5px; +} +.el-form { + padding: 20px 0; +} +</style> diff --git a/src/views/goalManagement/targetStatistics/index.vue b/src/views/goalManagement/targetStatistics/index.vue new file mode 100644 index 0000000..9098af9 --- /dev/null +++ b/src/views/goalManagement/targetStatistics/index.vue @@ -0,0 +1,62 @@ +<template> + <div> + <div ref="main" style="width: 100%; height: 400px"></div> + </div> +</template> +<script lang="ts"> +import { defineComponent, onMounted, ref } from 'vue'; +import * as echarts from 'echarts'; +import { ElMessage } from 'element-plus'; +export default defineComponent({ + setup() { + onMounted(() => { + init(); + }); + const main = ref(); + const init = () => { + var myChart = echarts.init(main.value); + var option = { + // title: { + // text: 'Referer of a Website', + // subtext: 'Fake Data', + // left: 'center', + // }, + tooltip: { + trigger: 'item', + }, + legend: { + orient: 'vertical', + left: 'left', + }, + series: [ + { + name: 'Access From', + type: 'pie', + radius: '100%', + data: [ + { value: 1048, name: 'Search Engine' }, + { value: 735, name: 'Direct' }, + { value: 580, name: 'Email' }, + { value: 484, name: 'Union Ads' }, + { value: 300, name: 'Video Ads' }, + ], + emphasis: { + itemStyle: { + shadowBlur: 10, + shadowOffsetX: 0, + shadowColor: 'rgba(0, 0, 0, 0.5)', + }, + }, + }, + ], + }; + + myChart.setOption(option); + }; + return { + main, + init, + }; + }, +}); +</script> diff --git a/src/views/system/menu/component/menuDialog.vue b/src/views/system/menu/component/menuDialog.vue index eb7e633..daf0dfc 100644 --- a/src/views/system/menu/component/menuDialog.vue +++ b/src/views/system/menu/component/menuDialog.vue @@ -85,7 +85,7 @@ <template #footer> <span class="dialog-footer"> <el-button @click="onCancel" size="default">取 消</el-button> - <el-button type="primary" v-throttle @click="onSubmit" size="default">{{ buttonName }}</el-button> + <el-button type="primary" @click="onSubmit" size="default">{{ buttonName }}</el-button> </span> </template> </el-dialog> -- Gitblit v1.9.2