@@ -115,6 +120,9 @@
+
+
+
@@ -219,6 +227,7 @@ export default {
name: '',
phone: '',
age: undefined,
+ city: '',
address: '',
avatar: 'https://images.unsplash.com/photo-1535713875002-d1d0cf377fde',
openid: '',
@@ -276,6 +285,7 @@ export default {
name: '',
phone: '',
age: undefined,
+ city: '',
address: '',
avatar: 'https://images.unsplash.com/photo-1535713875002-d1d0cf377fde',
openid: '',
diff --git a/admin/client/src/views/dashboard/components/BarChart.vue b/admin/client/src/views/dashboard/components/BarChart.vue
index e4f859c..247f5fb 100644
--- a/admin/client/src/views/dashboard/components/BarChart.vue
+++ b/admin/client/src/views/dashboard/components/BarChart.vue
@@ -20,11 +20,11 @@ export default {
},
height: {
type: String,
- default: '300px'
+ default: '350px'
},
chartData: {
type: Object,
- default: () => ({ names: [], counts: [], title: '热门机构' })
+ default: () => ({ names: [], counts: [], title: '机构学员' })
}
},
data() {
@@ -50,9 +50,16 @@ export default {
const names = this.chartData.names || []
const counts = this.chartData.counts || []
- const title = this.chartData.title || '热门机构'
+ const title = this.chartData.title || '机构学员'
this.chart.setOption({
+ title: {
+ text: title,
+ textStyle: {
+ color: '#fff'
+ },
+ left: 'center'
+ },
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
@@ -60,7 +67,7 @@ export default {
}
},
grid: {
- top: 10,
+ top: 40,
left: '2%',
right: '2%',
bottom: '3%',
@@ -71,12 +78,34 @@ export default {
data: names,
axisTick: {
alignWithLabel: true
+ },
+ axisLabel: {
+ color: '#fff'
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff'
+ }
}
}],
yAxis: [{
type: 'value',
+ minInterval: 1, // Ensure integer ticks
axisTick: {
show: false
+ },
+ axisLabel: {
+ color: '#fff'
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ color: 'rgba(255, 255, 255, 0.1)'
+ }
}
}],
series: [{
@@ -85,7 +114,34 @@ export default {
stack: 'vistors',
barWidth: '60%',
data: counts,
- animationDuration: 6000
+ animationDuration: 6000,
+ itemStyle: {
+ color: function(params) {
+ const colorList = [
+ ['#4facfe', '#00f2fe'],
+ ['#43e97b', '#38f9d7'],
+ ['#fa709a', '#fee140'],
+ ['#a18cd1', '#fbc2eb'],
+ ['#ff9a9e', '#fecfef'],
+ ['#667eea', '#764ba2'],
+ ['#f093fb', '#f5576c'],
+ ['#8ec5fc', '#e0c3fc']
+ ];
+ const index = params.dataIndex % colorList.length;
+ const color = colorList[index];
+ return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ { offset: 0, color: color[0] },
+ { offset: 1, color: color[1] }
+ ]);
+ },
+ borderRadius: [4, 4, 0, 0] // Rounded top
+ },
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowColor: 'rgba(0,0,0,0.3)'
+ }
+ }
}]
})
}
diff --git a/admin/client/src/views/dashboard/components/LineChart.vue b/admin/client/src/views/dashboard/components/LineChart.vue
index bd7069c..225f469 100644
--- a/admin/client/src/views/dashboard/components/LineChart.vue
+++ b/admin/client/src/views/dashboard/components/LineChart.vue
@@ -68,6 +68,14 @@ export default {
boundaryGap: false,
axisTick: {
show: false
+ },
+ axisLabel: {
+ color: '#fff'
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff'
+ }
}
},
grid: {
@@ -87,10 +95,26 @@ export default {
yAxis: {
axisTick: {
show: false
+ },
+ axisLabel: {
+ color: '#fff'
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ color: 'rgba(255, 255, 255, 0.1)'
+ }
}
},
legend: {
- data: ['上周', '本周']
+ data: ['上周', '本周'],
+ textStyle: {
+ color: '#fff'
+ }
},
series: [{
name: '上周', itemStyle: {
@@ -98,7 +122,9 @@ export default {
color: '#FF005A',
lineStyle: {
color: '#FF005A',
- width: 2
+ width: 3,
+ shadowColor: 'rgba(255, 0, 90, 0.3)',
+ shadowBlur: 10
}
}
},
@@ -114,13 +140,27 @@ export default {
type: 'line',
itemStyle: {
normal: {
- color: '#3888fa',
+ color: '#00f2fe',
lineStyle: {
- color: '#3888fa',
- width: 2
+ color: '#00f2fe',
+ width: 3,
+ shadowColor: 'rgba(0, 242, 254, 0.3)',
+ shadowBlur: 10
},
areaStyle: {
- color: '#f3f8ff'
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [{
+ offset: 0, color: 'rgba(0, 242, 254, 0.3)' // 0% 处的颜色
+ }, {
+ offset: 1, color: 'rgba(0, 242, 254, 0)' // 100% 处的颜色
+ }],
+ global: false // 缺省为 false
+ }
}
}
},
diff --git a/admin/client/src/views/dashboard/components/MapChart.vue b/admin/client/src/views/dashboard/components/MapChart.vue
new file mode 100644
index 0000000..161b26d
--- /dev/null
+++ b/admin/client/src/views/dashboard/components/MapChart.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
diff --git a/admin/client/src/views/dashboard/components/PanelGroup.vue b/admin/client/src/views/dashboard/components/PanelGroup.vue
index 1cf6ebb..7aa814a 100644
--- a/admin/client/src/views/dashboard/components/PanelGroup.vue
+++ b/admin/client/src/views/dashboard/components/PanelGroup.vue
@@ -2,8 +2,8 @@