From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 04 三月 2025 08:39:55 +0800 Subject: [PATCH] 修改作业等级名称 --- src/views/riskWarningSys/warningBigScreen/components/profession.vue | 178 +++++++++++++++++++++++++++++------------------------------ 1 files changed, 88 insertions(+), 90 deletions(-) diff --git a/src/views/riskWarningSys/warningBigScreen/components/profession.vue b/src/views/riskWarningSys/warningBigScreen/components/profession.vue index ed926bf..fcd1347 100644 --- a/src/views/riskWarningSys/warningBigScreen/components/profession.vue +++ b/src/views/riskWarningSys/warningBigScreen/components/profession.vue @@ -1,27 +1,27 @@ <template> <div class="charts-cont"> -<!-- <div class="pro" :id="pro">--> + <div class="pro" :id="pro"> -<!-- </div>--> - <dv-active-ring-chart :config="config" style="width:100%;height:100%" /> + </div> +<!-- <dv-active-ring-chart :config="config" style="width:100%;height:100%" />--> </div> </template> <script lang="ts"> import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted} 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' + import {riskWarningApi} from "/@/api/riskWarning"; interface stateType { + proData: [] } export default defineComponent({ name: 'profession', @@ -29,96 +29,93 @@ props:{ size: Number }, - setup(props) { + setup(props,context) { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); const pro = ref("eChartPro" + Date.now() + Math.random()) const state = reactive<stateType>({ - config:{ - data: [ - { - name: '持证人员', - value: 55 - }, - { - name: '非持证人员', - value: 120 + proData: [] + }) + + const getUserCount = async () => { + let res = await riskWarningApi().getUserCount(); + if (res.data.code === '200') { + state.proData = res.data.data + initPro(state.proData) + context.emit('getData',state.proData) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + + type EChartsOption = echarts.EChartsOption + // 隐患整改情况 + const initPro =(data)=>{ + let dom = document.getElementById(pro.value); + let myChart = echarts.init(dom); + let option: EChartsOption; + option = { + tooltip: { + trigger: 'item' + }, + legend: { + top: '0', + left: 'center', + textStyle:{ + color: '#999', + fontSize: fontSize(11) } - ], - radius: '65%', - activeRadius: '60%', - color: ['#FAC858','#EE6666'], - lineWidth: fontSize(25), - digitalFlopStyle: { - fontSize: 16, - fill: '#fff' - } - } - }) - // type EChartsOption = echarts.EChartsOption - // // 隐患整改情况 - // const initPro =()=>{ - // let dom = document.getElementById(pro.value); - // let myChart = echarts.init(dom); - // - // let option: EChartsOption; - // - // option = { - // tooltip: { - // trigger: 'item' - // }, - // legend: { - // top: '0', - // left: 'center', - // textStyle:{ - // color: '#fff', - // fontSize: fontSize(11) - // } - // }, - // series: [ - // { - // name: 'Access From', - // type: 'pie', - // radius: ['45%', '70%'], - // avoidLabelOverlap: false, - // itemStyle: { - // borderRadius: 4 - // }, - // label: { - // show: true, - // position: 'outer', - // fontSize: fontSize(12), - // color: '#ffffff', - // textBorderWidth: 0, - // width: 30, - // overflow: 'break' - // }, - // labelLine: { - // show: true, - // length: 10, - // length2: 10 - // }, - // emphasis: { - // label: { - // show: true, - // fontSize: fontSize(22), - // fontWeight: 'bold' - // } - // }, - // data: [ - // { value: 1048, name: '持证人员' }, - // { value: 735, name: '非持证人员' } - // ], - // center: ['50%','55%'] - // } - // ] - // }; - // - // option && myChart.setOption(option); - // window.addEventListener("resize",function (){ - // myChart.resize(); - // }); - // } + }, + series: [ + { + name: '人员专业度分布', + type: 'pie', + radius: ['45%', '70%'], + avoidLabelOverlap: false, + itemStyle: { + borderRadius: 2 + }, + label: { + show: true, + position: 'outer', + fontSize: fontSize(8), + color: '#999', + textBorderWidth: 0, + width: 30, + overflow: 'break' + }, + labelLine: { + show: true, + length: 10, + length2: 10 + }, + emphasis: { + label: { + show: true, + fontSize: fontSize(22), + fontWeight: 'bold' + } + }, + data: data.map(i=>{ + const obj = { + name: i.name, + value: i.count + } + return obj + }), + center: ['50%','55%'] + } + ] + }; + + 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); @@ -126,6 +123,7 @@ // 页面载入时执行方法 onMounted(() => { + getUserCount() }); return { -- Gitblit v1.9.2