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