| | |
| | | <template> |
| | | <CommonTitle title="事件概况" /> |
| | | <div :style="{ marginLeft: pxToRem(14) }"> |
| | | <div class="eventOverview"> |
| | | <div class="overviewData"> |
| | | <div class="totalBox"> |
| | | <div class="totalNumber">{{ total }}</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" v-model="newTime" @change="dateChange" /> |
| | | |
| | | <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" alt="" /> |
| | | <div class="completion-text">事件类型完成率情况</div> |
| | | <div class="completion-separator"></div> |
| | | <img class="completion-left-img" :src="completionLeft" alt="" /> |
| | | </div> |
| | | |
| | | <div class="chart" ref="echartsRef"></div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <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 completionLeft from '@/assets/images/home/homeRight/completionLeft.png'; |
| | | import * as echarts from 'echarts'; |
| | | import CommonDateTime from '@/components/CommonDateTime.vue'; |
| | | import { |
| | | getJobEventBrokerLine, |
| | | getJobEventByStatus, |
| | | getJobEventTotal, |
| | | getJobNumBar, |
| | | getJobStatistics, |
| | | } from '@/api/home'; |
| | | import dayjs from 'dayjs'; |
| | | |
| | | const list = ref([ |
| | | { name: '待审核', value: 265, img: overviewImg1, color: '#FF8E8E' }, |
| | |
| | | { name: '已完结', value: 262, img: overviewImg6, color: '#8EFFAC' }, |
| | | ]); |
| | | const value = ref(''); |
| | | const echartsRef = ref(''); |
| | | const echartsRef = ref(null); |
| | | |
| | | const options = [ |
| | | { |
| | |
| | | label: 'Option1', |
| | | }, |
| | | ]; |
| | | const currenDate = dayjs().format('YYYY-MM-DD'); |
| | | const newTime = ref([currenDate, currenDate]); |
| | | const option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | |
| | | fontWeight: 400, |
| | | fontSize: 10, |
| | | }, |
| | | data: ['暴露垃圾', '占道','暴露垃圾', '占道','暴露垃圾', '占道','暴露垃圾', '占道',], |
| | | data: ['暴露垃圾', '占道', '暴露垃圾', '占道', '暴露垃圾', '占道', '暴露垃圾', '占道'], |
| | | }, |
| | | ], |
| | | yAxis: [ |
| | |
| | | itemStyle: { |
| | | color: '#FF8E8E', // 设置颜色 |
| | | }, |
| | | data: [120, 132,120, 132,120, 132,120, 132,], |
| | | data: [120, 132, 120, 132, 120, 132, 120, 132], |
| | | }, |
| | | { |
| | | name: '已完成', |
| | |
| | | emphasis: { |
| | | focus: 'series', |
| | | }, |
| | | data: [120, 132,120, 132,120, 132,120, 132,], |
| | | data: [120, 132, 120, 132, 120, 132, 120, 132], |
| | | }, |
| | | { |
| | | name: '已完成1', |
| | |
| | | emphasis: { |
| | | focus: 'series', |
| | | }, |
| | | data: [120, 132,120, 132,120, 132,120, 132,], |
| | | data: [120, 132, 120, 132, 120, 132, 120, 132], |
| | | }, |
| | | { |
| | | name: '已完成2', |
| | |
| | | emphasis: { |
| | | focus: 'series', |
| | | }, |
| | | data: [120, 132,120, 132,120, 132,120, 132,], |
| | | data: [120, 132, 120, 132, 120, 132, 120, 132], |
| | | }, |
| | | { |
| | | name: '完成率', |
| | |
| | | }, |
| | | ], |
| | | }; |
| | | const total = ref(0); |
| | | |
| | | const getData = () => { |
| | | const params = { |
| | | date_enum: 'TODAY', |
| | | // start_date: newTime.value[0], |
| | | // end_date: newTime.value[1] |
| | | }; |
| | | getJobEventByStatus(params).then(res => { |
| | | const resList = res?.data?.data || []; |
| | | resList.forEach(item => { |
| | | list.value.forEach(item1 => { |
| | | if (item1.name === item.name) { |
| | | item1.value = item.num; |
| | | } |
| | | }); |
| | | }); |
| | | }); |
| | | // todo 未对接 |
| | | getJobEventBrokerLine(params).then(res => {}); |
| | | }; |
| | | |
| | | const dateChange = value => { |
| | | console.log(value); |
| | | newTime.value = value; |
| | | getData(); |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | const chart = echarts.init(echartsRef.value); |
| | |
| | | window.addEventListener('resize', () => { |
| | | chart.resize(); |
| | | }); |
| | | getJobEventTotal().then(res => { |
| | | total.value = res?.data?.data || 0; |
| | | }); |
| | | getData(); |
| | | }); |
| | | </script> |
| | | |
| | | <template> |
| | | <CommonTitle title="事件概况" /> |
| | | <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%); |
| | |
| | | flex-direction: column; |
| | | align-items: center; |
| | | |
| | | .dateTime{ |
| | | .dateTime { |
| | | width: 356px; |
| | | margin: 15px 0 8px 0; |
| | | } |
| | |
| | | padding-left: 11px; |
| | | |
| | | .totalBox { |
| | | width: 77px; |
| | | |
| | | .totalNumber { |
| | | font-family: YouSheBiaoTiHei, YouSheBiaoTiHei; |
| | | font-weight: 400; |