| | |
| | | <script setup> |
| | | import CommonTitle from '@/components/CommonTitle.vue'; |
| | | import { pxToRem } from '@/utils/rem'; |
| | | import overviewImg1 from '@/assets/images/home/homeRight/overview1.png'; |
| | | import overviewImg2 from '@/assets/images/home/homeRight/overview2.png'; |
| | | import overviewImg3 from '@/assets/images/home/homeRight/overview3.png'; |
| | | import overviewImg4 from '@/assets/images/home/homeRight/overview4.png'; |
| | | import overviewImg5 from '@/assets/images/home/homeRight/overview5.png'; |
| | | import overviewImg6 from '@/assets/images/home/homeRight/overview6.png'; |
| | | import completionLeft from '@/assets/images/home/homeRight/completionLeft.png'; |
| | | import * as echarts from 'echarts'; |
| | | import CommonDateTime from '@/components/CommonDateTime.vue'; |
| | | |
| | | const list = ref([ |
| | | { name: '待审核', value: 265, img: overviewImg1, color: '#FF8E8E' }, |
| | | { name: '待分拨', value: 266, img: overviewImg2, color: '#6FCAFF' }, |
| | | { name: '待处理', value: 262, img: overviewImg3, color: '#6FCAFF' }, |
| | | { name: '处理中', value: 262, img: overviewImg4, color: '#FFD509' }, |
| | | { name: '已完成', value: 246, img: overviewImg5, color: '#FF8E8E' }, |
| | | { name: '已完结', value: 262, img: overviewImg6, color: '#8EFFAC' }, |
| | | ]); |
| | | const value = ref(''); |
| | | const echartsRef = ref(''); |
| | | |
| | | const options = [ |
| | | { |
| | | value: 'Option1', |
| | | label: 'Option1', |
| | | }, |
| | | ]; |
| | | const option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow', |
| | | }, |
| | | }, |
| | | grid: { |
| | | top: '5%', |
| | | left: 0, |
| | | right: 0, |
| | | bottom: 0, |
| | | containLabel: true, |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | axisLabel: { |
| | | rotate: -45, // 旋转角度 |
| | | interval: 0, // 显示所有标签 |
| | | color: '#FFFFFF', |
| | | fontFamily: 'Source Han Sans CN, Source Han Sans CN', |
| | | fontWeight: 400, |
| | | fontSize: 10, |
| | | }, |
| | | data: ['暴露垃圾', '占道','暴露垃圾', '占道','暴露垃圾', '占道','暴露垃圾', '占道',], |
| | | }, |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'value', |
| | | axisLabel: { |
| | | interval: 0, // 显示所有标签 |
| | | color: '#FFFFFF', |
| | | fontFamily: 'Source Han Sans CN, Source Han Sans CN', |
| | | fontWeight: 400, |
| | | fontSize: 10, |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#ffffff', |
| | | }, |
| | | }, |
| | | splitLine: { |
| | | lineStyle: { |
| | | color: 'rgba(255, 255, 255, 0.1)', |
| | | type: 'dashed', // 设置为虚线 |
| | | }, |
| | | }, |
| | | }, |
| | | ], |
| | | series: [ |
| | | { |
| | | name: '待完成', |
| | | type: 'bar', |
| | | stack: 'Ad', |
| | | emphasis: { |
| | | focus: 'series', |
| | | }, |
| | | itemStyle: { |
| | | color: '#FF8E8E', // 设置颜色 |
| | | }, |
| | | data: [120, 132,120, 132,120, 132,120, 132,], |
| | | }, |
| | | { |
| | | name: '已完成', |
| | | type: 'bar', |
| | | stack: 'Ad', |
| | | emphasis: { |
| | | focus: 'series', |
| | | }, |
| | | data: [120, 132,120, 132,120, 132,120, 132,], |
| | | }, |
| | | { |
| | | name: '已完成1', |
| | | type: 'bar', |
| | | stack: 'Ad', |
| | | emphasis: { |
| | | focus: 'series', |
| | | }, |
| | | data: [120, 132,120, 132,120, 132,120, 132,], |
| | | }, |
| | | { |
| | | name: '已完成2', |
| | | type: 'bar', |
| | | stack: 'Ad', |
| | | emphasis: { |
| | | focus: 'series', |
| | | }, |
| | | data: [120, 132,120, 132,120, 132,120, 132,], |
| | | }, |
| | | { |
| | | name: '完成率', |
| | | type: 'line', |
| | | itemStyle: { |
| | | color: '#0CEBF7', // 设置颜色 |
| | | }, |
| | | lineStyle: { |
| | | width: 2, // 线条宽度 |
| | | type: 'solid', // 线条类型 |
| | | }, |
| | | symbol: 'circle', // 数据点符号 |
| | | symbolSize: 6, // 数据点符号大小 |
| | | emphasis: { |
| | | focus: 'series', |
| | | }, |
| | | data: [50, 55, 60, 65, 70, 75, 80, 85], // 示例数据,根据实际完成率计算 |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | const chart = echarts.init(echartsRef.value); |
| | | chart.setOption(option); |
| | | window.addEventListener('resize', () => { |
| | | chart.resize(); |
| | | }); |
| | | }); |
| | | </script> |
| | | |
| | | <template> |
| | | <CommonTitle title="事件概况" /> |
| | | <div class="eventOverview"></div> |
| | | <div :style="{ marginLeft: pxToRem(14) }"> |
| | | <div class="eventOverview"> |
| | | <div class="overviewData"> |
| | | <div class="totalBox"> |
| | | <div class="totalNumber">8096</div> |
| | | <div class="totalLabel">总事件数</div> |
| | | </div> |
| | | <div class="contentBox"> |
| | | <div class="overviewItem" v-for="item in list" :key="item.name"> |
| | | <div class="itemName"><img :src="item.img" alt="" />{{ item.name }}</div> |
| | | <div class="itemValue" :style="{ color: item.color }">{{ item.value }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <CommonDateTime class="dateTime" /> |
| | | |
| | | <el-select class="homeRightSelect" v-model="value" placeholder="请选择" size="large"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | |
| | | <div class="completion"> |
| | | <img class="completion-left-img" :src="completionLeft" /> |
| | | <div class="completion-text">事件类型完成率情况</div> |
| | | <div class="completion-separator"></div> |
| | | <img class="completion-left-img" :src="completionLeft" /> |
| | | </div> |
| | | |
| | | <div class="chart" ref="echartsRef"></div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped lang="scss"> |
| | | .homeRightSelect { |
| | | width: 356px; |
| | | :deep() { |
| | | .el-select__wrapper { |
| | | background: linear-gradient(90deg, #195bad 0%, rgba(25, 91, 173, 0) 100%); |
| | | min-height: 28px; |
| | | height: 28px; |
| | | box-shadow: none; |
| | | border: 1px solid #306fca; |
| | | } |
| | | |
| | | .el-select__placeholder { |
| | | font-family: Microsoft YaHei, Microsoft YaHei, serif; |
| | | color: #ffffff; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .eventOverview { |
| | | width: 390px; |
| | | height: hToV(445); |
| | | height: 445px; |
| | | background: linear-gradient( |
| | | 270deg, |
| | | #1f3e7a 0%, |
| | |
| | | ); |
| | | border-radius: 0px 0px 0px 0px; |
| | | opacity: 0.85; |
| | | margin: hToV(3) 0 0 0; |
| | | margin: 3px 0 0 0; |
| | | padding-top: 15px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | |
| | | .dateTime{ |
| | | width: 356px; |
| | | margin: 15px 0 8px 0; |
| | | } |
| | | |
| | | .overviewData { |
| | | width: 360px; |
| | | height: 122px; |
| | | background: url('@/assets/images/home/homeRight/overviewBg.png') no-repeat center / 100% 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding-left: 11px; |
| | | |
| | | .totalBox { |
| | | .totalNumber { |
| | | font-family: YouSheBiaoTiHei, YouSheBiaoTiHei; |
| | | font-weight: 400; |
| | | font-size: 26px; |
| | | color: #ffffff; |
| | | line-height: 30px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .totalLabel { |
| | | font-family: Source Han Sans CN, Source Han Sans CN; |
| | | font-weight: 400; |
| | | font-size: 14px; |
| | | color: #ffffff; |
| | | line-height: 20px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | |
| | | .contentBox { |
| | | width: 246px; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | gap: 13px 0; |
| | | font-family: Source Han Sans CN, Source Han Sans CN, serif; |
| | | font-weight: 400; |
| | | font-size: 14px; |
| | | color: #ffffff; |
| | | line-height: 14px; |
| | | |
| | | .overviewItem { |
| | | width: calc(100% / 3); |
| | | |
| | | .itemName { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 6px; |
| | | |
| | | img { |
| | | width: 16px; |
| | | height: 16px; |
| | | } |
| | | } |
| | | |
| | | .itemValue { |
| | | font-family: YouSheBiaoTiHei, YouSheBiaoTiHei, serif; |
| | | font-weight: 400; |
| | | font-size: 24px; |
| | | line-height: 18px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .completion { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | width: 356px; |
| | | height: 23px; |
| | | margin-top: 16px; |
| | | |
| | | &--left-img { |
| | | width: 16px; |
| | | height: 16px; |
| | | } |
| | | |
| | | &-text { |
| | | font-family: YouSheBiaoTiHei, YouSheBiaoTiHei, serif; |
| | | font-weight: 400; |
| | | font-size: 18px; |
| | | color: #ffffff; |
| | | line-height: 21px; |
| | | } |
| | | |
| | | &-separator { |
| | | width: 149px; |
| | | height: 0px; |
| | | border: 1px solid #4ca6ff; |
| | | opacity: 0.2; |
| | | } |
| | | } |
| | | |
| | | .chart { |
| | | width: 356px; |
| | | height: 190px; |
| | | } |
| | | } |
| | | </style> |