From eafc031e3e6e48778d22b5455358273714944012 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期一, 05 九月 2022 09:53:16 +0800 Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt --- src/views/riskWarningSys/warningBigScreen/components/accident.vue | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 279 insertions(+), 0 deletions(-) diff --git a/src/views/riskWarningSys/warningBigScreen/components/accident.vue b/src/views/riskWarningSys/warningBigScreen/components/accident.vue new file mode 100644 index 0000000..9e3175d --- /dev/null +++ b/src/views/riskWarningSys/warningBigScreen/components/accident.vue @@ -0,0 +1,279 @@ +<template> + <div class="charts-cont"> + <div class="choose"> + <div :class="cur===1?'act':''" @click="changeTab(1)">月度</div> + <div :class="cur===2?'act':''" @click="changeTab(2)">年度</div> + </div> + <div v-show="cur===1" class="month" :id="accidentMonth"></div> + <div v-show="cur===2" class="month" :id="accidentYear"></div> + </div> +</template> + +<script lang="ts"> + import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, nextTick, onUnmounted} from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import { ElMessage } from 'element-plus' + import type { FormInstance, FormRules } from 'element-plus' + import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; + import * as echarts from "echarts"; + import '/@/theme/bigScreen.css' + + + interface stateType { + cur: number + } + export default defineComponent({ + name: 'accident', + components: {}, + props:{ + size: Number + }, + setup(props) { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const accidentMonth = ref("eChartFix" + Date.now() + Math.random()) + const accidentYear = ref("eChartFix" + Date.now() + Math.random()) + const state = reactive<stateType>({ + cur: 1 + }) + + const changeTab =(i)=>{ + state.cur = i + nextTick(()=>{ + initAccidentByYear(); + }) + } + type EChartsOption = echarts.EChartsOption + // 隐患整改情况 + const initAccidentByMonth =()=>{ + let dom = document.getElementById(accidentMonth.value); + let myChart = echarts.init(dom); + + let option: EChartsOption; + + option = { + tooltip: { + trigger: 'item' + }, + legend: { + top: '0', + left: 'center', + itemWidth: fontSize(10), + itemHeight: fontSize(8), + textStyle:{ + color: '#fff', + fontSize: fontSize(11) + } + }, + series: [ + { + name: '月度数据', + type: 'pie', + radius: ['45%', '70%'], + avoidLabelOverlap: false, + itemStyle: { + borderRadius: fontSize(4) + }, + label: { + show: false, + position: 'outer', + fontSize: fontSize(10), + color: '#ffffff', + textBorderWidth: 0, + width: fontSize(40), + overflow: 'break' + }, + // labelLine: { + // show: true, + // length: fontSize(10), + // length2: fontSize(10) + // }, + emphasis: { + label: { + show: true, + fontSize: fontSize(22), + fontWeight: 'bold' + } + }, + data: [ + { value: 1048, name: '特别重大事故' }, + { value: 735, name: '重大事故' }, + { value: 580, name: '较大事故' }, + { value: 484, name: '一般事故' }, + { value: 300, name: '未遂事故' } + ], + center: ['50%','60%'] + } + ] + }; + + option && myChart.setOption(option); + + window.addEventListener("resize",function (){ + myChart.resize(); + }); + } + // 隐患整改情况 + const initAccidentByYear =()=>{ + let dom = document.getElementById(accidentYear.value); + let myChart = echarts.init(dom); + + let option: EChartsOption; + + option = { + tooltip: { + trigger: 'item' + }, + legend: { + top: '0', + left: 'center', + itemWidth: fontSize(10), + itemHeight: fontSize(8), + textStyle:{ + color: '#fff', + fontSize: fontSize(11) + } + }, + series: [ + { + name: '年度数据', + type: 'pie', + radius: ['45%', '70%'], + avoidLabelOverlap: false, + itemStyle: { + borderRadius: fontSize(4) + }, + label: { + show: false, + position: 'outer', + fontSize: fontSize(10), + color: '#ffffff', + textBorderWidth: 0, + width: fontSize(40), + overflow: 'break' + }, + // labelLine: { + // show: true, + // length: fontSize(10), + // length2: fontSize(10) + // }, + emphasis: { + label: { + show: true, + fontSize: fontSize(22), + fontWeight: 'bold' + } + }, + data: [ + { value: 1048, name: '特别重大事故' }, + { value: 735, name: '重大事故' }, + { value: 580, name: '较大事故' }, + { value: 484, name: '一般事故' }, + { value: 300, name: '未遂事故' } + ], + center: ['50%','60%'] + } + ] + }; + + option && myChart.setOption(option); + + window.addEventListener("resize",function (){ + myChart.resize(); + }); + } + + + function fontSize(val){ + let nowClientWidth = document.documentElement.clientWidth; + return val * (nowClientWidth/1920) * Number(props.size); + } + + // 页面载入时执行方法 + onMounted(() => { + initAccidentByMonth(); + // initAccidentByYear(); + }); + + onUnmounted(() =>{ + }) + + return { + accidentMonth, + accidentYear, + Search, + changeTab, + fontSize, + ...toRefs(state) + }; + }, + }); +</script> + +<style scoped lang="scss"> + .charts-cont{ + width: 100%; + height: 100%; + padding: 5%; + position: relative; + + .choose{ + position: absolute; + right: 5%; + bottom: 20px; + z-index: 999; + display: flex; + align-items: center; + font-size: 0.75rem; + justify-content: space-between; + + div{ + padding: 2px 6px; + box-sizing: border-box; + color: rgba(17,254,238,.4); + border: 1px solid rgba(17,254,238,.4); + border-radius: 2px; + cursor: pointer; + } + div:hover{ + color: #11FEEE; + border: 1px solid #11FEEE; + } + .act{ + color: #11FEEE; + border: 1px solid #11FEEE; + } + } + .month{ + width: 100%; + height: 100%; + } + } + .home-container { + height: 100%; + overflow: hidden; + position: relative; + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + } +</style> -- Gitblit v1.9.2