From b3d89f70b2fefd7438eec61f7662da30ff8923c1 Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期五, 15 三月 2024 14:35:46 +0800 Subject: [PATCH] feat:道路数据接口 --- src/views/daoAnOffice/right/analysis/index.vue | 184 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 164 insertions(+), 20 deletions(-) diff --git a/src/views/daoAnOffice/right/analysis/index.vue b/src/views/daoAnOffice/right/analysis/index.vue index 85010c9..1305d5d 100644 --- a/src/views/daoAnOffice/right/analysis/index.vue +++ b/src/views/daoAnOffice/right/analysis/index.vue @@ -1,4 +1,5 @@ <!-- 浜ら�氬畨鍏ㄥ舰鍔跨爺鍒ゅ垎鏋� --> + <template> <RightTitle title="浜ら�氬畨鍏ㄥ舰鍔跨爺鍒ゅ垎鏋�"> <template #top> @@ -9,11 +10,12 @@ </div> </div> </template> + <template #content> <div class="charts-container"> <div id="analysisChart" ref="analysisChart"></div> <div class="type-select-container" v-show="isShowSelect"> - <el-select v-model="typeValue" class="select-style" @change="setConfig"> + <el-select v-model="typeValue" popper-class="type-select" class="select-style" @change="setConfig"> <el-option v-for="item in testData1" :key="item.name" :label="item.name" :value="item.name" /> </el-select> </div> @@ -46,6 +48,7 @@ { itemIndex: 2, name: '琛楅亾缁熻', isActive: false }, ]); +// 鏌辩姸鍥炬暟鎹� const testData = ref([ { name: '濂庡厜濉旇閬�', state1: 1400, state2: 3533, state3: 2316 }, { name: '钂查槼琛楅亾', state1: 1820, state2: 4281, state3: 3064 }, @@ -58,38 +61,61 @@ { name: '鐏屽彛琛楅亾', state1: 972, state2: 2124, state3: 1500 }, ]); +// 鎶樼嚎鏁版嵁 const testData1 = ref([ { name: '閮芥睙鍫板競', - state: { '2023-1': 1000, '2023-2': 2000, '2023-3': 1233,'2023-4': 2132, '2023-5': 2999 }, - state2: { '2023-1': 12312, '2023-2': 2312, '2023-3': 2111,'2023-4': 2132, '2023-5': 2999 } + state: { '2023-1': 1000, '2023-2': 2000, '2023-3': 1233, '2023-4': 2132, '2023-5': 2999 }, + state2: { '2023-1': 12312, '2023-2': 2312, '2023-3': 2111, '2023-4': 2132, '2023-5': 2999 } }, { name: '濂庡厜濉旇閬�', - state: { '2023-1': 21, '2023-2': 12, '2023-3': 224,'2023-4': 662, '2023-5': 71 }, - state2: { '2023-1': 12312, '2023-2': 21, '2023-3': 2111,'2023-4': 2132, '2023-5': 2999 } + state: { '2023-1': 21, '2023-2': 12, '2023-3': 224, '2023-4': 662, '2023-5': 71 }, + state2: { '2023-1': 12312, '2023-2': 21, '2023-3': 2111, '2023-4': 2132, '2023-5': 2999 } }, { name: '钂查槼琛楅亾', - state: { '2023-1': 1000, '2023-2': 2131, '2023-3': 1233,'2023-4': 2132, '2023-5': 3211 }, - state2: { '2023-1': 12312, '2023-2': 23123, '2023-3': 2111,'2023-4': 2132, '2023-5': 2999 } + state: { '2023-1': 1000, '2023-2': 2131, '2023-3': 1233, '2023-4': 2132, '2023-5': 3211 }, + state2: { '2023-1': 12312, '2023-2': 23123, '2023-3': 2111, '2023-4': 2132, '2023-5': 2999 } }, { name: '鑱氭簮闀�', - state: { '2023-1': 1000, '2023-2': 500, '2023-3': 1111,'2023-4': 2132, '2023-5': 2999 }, - state2: { '2023-1': 12312, '2023-2': 2222, '2023-3': 2111,'2023-4': 2132, '2023-5': 2999 } + state: { '2023-1': 1000, '2023-2': 500, '2023-3': 1111, '2023-4': 2132, '2023-5': 2999 }, + state2: { '2023-1': 12312, '2023-2': 2222, '2023-3': 2111, '2023-4': 2132, '2023-5': 2999 } }, { name: '閾舵潖琛楅亾', - state: { '2023-1': 1000, '2023-2': 2000, '2023-3': 1233,'2023-4': 2132, '2023-5': 12 }, - state2: { '2023-1': 1231, '2023-2': 121, '2023-3': 123,'2023-4': 321, '2023-5': 2999 } + state: { '2023-1': 1000, '2023-2': 2000, '2023-3': 1233, '2023-4': 2132, '2023-5': 12 }, + state2: { '2023-1': 1231, '2023-2': 121, '2023-3': 123, '2023-4': 321, '2023-5': 2999 } }, { name: '鐭崇緤闀�', - state: { '2023-1': 1000, '2023-2': 8334, '2023-3': 1233,'2023-4': 123, '2023-5': 0 }, - state2: { '2023-1': 12312, '2023-2': 512, '2023-3': 241,'2023-4': 2132, '2023-5': 2999 } + state: { '2023-1': 1000, '2023-2': 8334, '2023-3': 1233, '2023-4': 123, '2023-5': 0 }, + state2: { '2023-1': 12312, '2023-2': 512, '2023-3': 241, '2023-4': 2132, '2023-5': 2999 } + }, + { + name: '榫欐睜闀�', + state: { '2023-1': 1000, '2023-2': 8334, '2023-3': 1233, '2023-4': 123, '2023-5': 0 }, + state2: { '2023-1': 12312, '2023-2': 512, '2023-3': 241, '2023-4': 2132, '2023-5': 2999 } + }, + { + name: '澶╅┈闀�', + state: { '2023-1': 1000, '2023-2': 8334, '2023-3': 1233, '2023-4': 123, '2023-5': 0 }, + state2: { '2023-1': 12312, '2023-2': 512, '2023-3': 241, '2023-4': 2132, '2023-5': 2999 } + }, + { + name: '鐜夊爞琛楅亾', + state: { '2023-1': 1000, '2023-2': 8334, '2023-3': 1233, '2023-4': 123, '2023-5': 0, '2023-6': 123, '2023-7': 21 }, + state2: { '2023-1': 12312, '2023-2': 512, '2023-3': 241, '2023-4': 2132, '2023-5': 2999 } + }, + { + name: '鐏屽彛琛楅亾', + state: { '2023-1': 1000, '2023-2': 8334, '2023-3': 1233, '2023-4': 123, '2023-5': 0 }, + state2: { '2023-1': 12312, '2023-2': 512, '2023-3': 241, '2023-4': 2132, '2023-5': 2999, '2023-6': 61, '2023-7': 12 } }, ]); + +// 褰撳墠閫夐」 let acitveData = ref(testData1.value[0]); @@ -123,7 +149,30 @@ ] }, - tooltip: {}, + tooltip: { + show: true, + trigger: 'axis', + backgroundColor: '#000001cc', + borderWidth: 0, + textStyle: { + color: '#4D76B0', + fontSize: 16 + }, + axisPointer: { + type: 'shadow', + lable: { + color: '#000000' + } + }, + padding: [20, 25], + formatter: function (params) { + let temp = params[0].name + '<br/>'; + params.forEach(element => { + temp += element.seriesName + ':' + `<span style="color:${getColor(element.componentIndex)}">${element.value[`state${element.componentIndex + 1}`]}</span>` + '<br/>'; + }); + return temp; + } + }, grid: { left: 0, right: 0, @@ -135,8 +184,31 @@ dimensions: ['name', 'state1', 'state2', 'state3'], source: testData.value }, - xAxis: { type: 'category', axisTick: false }, - yAxis: {}, + xAxis: { + type: 'category', + axisTick: false, + axisLabel: { + fontSize: 14, + color: '#4D76B0', + margin: 15 + }, + axisLine: { + lineStyle: { + color: '#4d76b033' + } + } + }, + yAxis: { + axisLabel: { + fontSize: 14, + color: '#4D76B0', + }, + splitLine: { + lineStyle: { + color: '#4d76b033' + } + } + }, series: [ { type: 'bar', @@ -255,9 +327,25 @@ tooltip: { show: true, trigger: 'axis', + backgroundColor: '#000001cc', + borderWidth: 0, + textStyle: { + color: '#4D76B0', + fontSize: 16 + }, axisPointer: { type: 'shadow', - + lable: { + color: '#000000' + } + }, + padding: [20, 25], + formatter: function (params) { + let temp = params[0].name + '<br/>'; + params.forEach(element => { + temp += element.seriesName + ':' + `<span style="color:${element.componentIndex === 1 ? '#2bb06d' : '#cfb249'}">${element.value}</span>` + '<br/>'; + }); + return temp; } }, grid: { @@ -269,10 +357,31 @@ }, xAxis: { type: 'category', - data: Object.keys(acitveData.value.state) + data: Object.keys(acitveData.value.state), + axisLabel: { + fontSize: 14, + color: '#4D76B0', + margin: 15 + }, + + axisTick: false, + axisLine: { + lineStyle: { + color: '#4d76b033' + } + } }, yAxis: { - type: 'value' + type: 'value', + axisLabel: { + fontSize: 14, + color: '#4D76B0' + }, + splitLine: { + lineStyle: { + color: '#4d76b033' + } + } }, series: [ { @@ -299,6 +408,12 @@ } +// 棰滆壊 +const getColor = (index) => { + let colorList = ['#00a8d9', '#cfb249', '#2bb06d']; + return colorList[index % colorList.length]; +} + // 鎸傝浇 onMounted(() => { echartObject = echarts.init(analysisChart.value); @@ -320,6 +435,7 @@ border: 1px solid rgba(47, 91, 157, 0.8); flex-shrink: 0; color: #5B83BD; + font-family: 'PingFang SC'; } .select-active { @@ -362,4 +478,32 @@ .el-input__inner { color: #4481DD; } -}</style> \ No newline at end of file +} +</style> + +<style lang="scss"> + +.el-popper { + background-color: rgba(21, 56, 105, 0.8) !important; + border-color: transparent !important; +} +.el-popper.is-light .el-popper__arrow::before { + background-color: rgba(21, 56, 105, 0.8) !important; + border-color: transparent !important; +} +.el-scrollbar__view { + padding: 0 !important; +} +.el-select-dropdown__item { + color: #5B83BD; +} + +.el-select-dropdown__wrap { + padding: 0 !important; +} + +.el-select-dropdown__item.hover, +.el-select-dropdown__item:hover { + background-color: #203f64 !important; +} +</style> \ No newline at end of file -- Gitblit v1.8.0