对比新文件 |
| | |
| | | <template> |
| | | <div class="charts-cont"> |
| | | <div class="educate" :id="educate"> |
| | | |
| | | </div> |
| | | </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' |
| | | |
| | | |
| | | interface stateType { |
| | | } |
| | | export default defineComponent({ |
| | | name: 'educate', |
| | | components: {}, |
| | | props:{ |
| | | size: Number |
| | | }, |
| | | setup(props) { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | const educate = ref("eChartEdu" + Date.now() + Math.random()) |
| | | const state = reactive<stateType>({ |
| | | |
| | | }) |
| | | type EChartsOption = echarts.EChartsOption |
| | | // 隐患整改情况 |
| | | const initEducate =()=>{ |
| | | let dom = document.getElementById(educate.value); |
| | | let myChart = echarts.init(dom); |
| | | |
| | | let option: EChartsOption; |
| | | |
| | | option = { |
| | | color: ['#67F9D8', '#FFE434', '#56A3F1', '#FF917C'], |
| | | legend: { |
| | | top: '8%', |
| | | left: 'center', |
| | | itemWidth: fontSize(10), |
| | | itemHeight: fontSize(8), |
| | | textStyle:{ |
| | | color: '#fff', |
| | | fontSize: fontSize(11) |
| | | } |
| | | }, |
| | | radar: [ |
| | | { |
| | | indicator: [ |
| | | { name: '设计培训次数' }, |
| | | { name: '培训时间(小时)' }, |
| | | { name: '完成比例(%)' } |
| | | ], |
| | | center: ['50%', '60%'], |
| | | radius: fontSize(65), |
| | | startAngle: 90, |
| | | splitNumber: 4, |
| | | shape: 'circle', |
| | | axisName: { |
| | | formatter: '{value}', |
| | | color: '#428BD4', |
| | | fontSize: fontSize(10), |
| | | width: 20, |
| | | overflow: 'break' |
| | | }, |
| | | splitArea: { |
| | | areaStyle: { |
| | | color: ['#77EADF', '#26C3BE', '#64AFE9', '#428BD4'], |
| | | shadowColor: 'rgba(0, 0, 0, 0.1)', |
| | | shadowBlur: 10 |
| | | } |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: 'rgba(211, 253, 250, 0.8)' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | lineStyle: { |
| | | color: 'rgba(211, 253, 250, 0.8)' |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | type: 'radar', |
| | | emphasis: { |
| | | lineStyle: { |
| | | width: 4 |
| | | } |
| | | }, |
| | | data: [ |
| | | { |
| | | value: [100, 8, 0.4, -80, 2000], |
| | | name: '企业汇总' |
| | | }, |
| | | { |
| | | value: [60, 5, 0.3, -100, 1500], |
| | | name: '事业部A', |
| | | areaStyle: { |
| | | color: 'rgba(255, 228, 52, 0.6)' |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | ] |
| | | }; |
| | | |
| | | 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(() => { |
| | | initEducate(); |
| | | }); |
| | | |
| | | return { |
| | | educate, |
| | | Search, |
| | | fontSize, |
| | | ...toRefs(state) |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .charts-cont{ |
| | | width: 100%; |
| | | height: 100%; |
| | | position: relative; |
| | | |
| | | .educate{ |
| | | 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> |