《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第十二篇(完结篇):数据统计功能实现
🤟致敬读者
- 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉
📘博主相关
- 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息
文章目录
- 《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第十二篇(完结篇):数据统计功能实现
- 1. 使用echarts
- 1.1 提问ai
- 1.2 安装echarts
- 2. 折线图实现
- 2.1 提示词
- 2.2 src/views/DataStaticsView.vue
- 2.3 页面效果
- 3. 折线图优化
- 3.1 src/views/DataStaticsView.vue
- 3.2 优化后的页面效果
- 4. 项目源码(完结)
📃文章前言
- 🔷文章均为学习工作中整理的笔记。
- 🔶如有错误请指正,共同学习进步。
《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第十二篇(完结篇):数据统计功能实现
从零搭建Vue3项目实战,借助AI工具辅助学习和代码生成,零基础小白亦可轻松上手实现。
以下为系列篇所有文章:
《从零搭建Vue3项目实战》零基础入门系列第一篇:开发环境准备
《从零搭建Vue3项目实战》零基础入门系列第二篇:项目创建和初始化
《从零搭建Vue3项目实战》零基础入门系列第三篇:ElementPlus引入和应用
《从零搭建Vue3项目实战》零基础入门系列第四篇:登录页面实现
《从零搭建Vue3项目实战》零基础入门系列第五篇:登录页面优化及使用AI学习代码
《从零搭建Vue3项目实战》零基础入门系列第六篇:页面跳转功能实现(Router的引入和使用)
《从零搭建Vue3项目实战》零基础入门系列第七篇:菜单栏实现
《从零搭建Vue3项目实战》零基础入门系列第八篇:菜单栏优化和阶段项目源码
《从零搭建Vue3项目实战》零基础入门系列第九篇:用户管理功能实现
《从零搭建Vue3项目实战》零基础入门系列第十篇:商品管理功能实现
《从零搭建Vue3项目实战》零基础入门系列第十一篇:订单管理功能实现
《从零搭建Vue3项目实战》零基础入门系列第十二篇(完结篇):数据统计功能实现
《从零搭建Vue3项目实战》零基础入门一篇通关(AI辅助搭建Vue3+ElemntPlus后台管理项目)
系列文章均收录在前端vue3入门实战专栏中,可订阅专栏了解更多内容
数据统计使用echarts实现,使用柱状图来分析数据
使用以折线图为例实现功能
1. 使用echarts
1.1 提问ai
如何在vue3项目中使用echarts
根据ai回答,安装echarts
打开新的终端(Terminal)窗口,执行命令安装echarts
1.2 安装echarts
npm install echarts --save
注意:如果ai给出了数据统计页面的新代码,先不管,直接看下一步继续提问ai生成折线图
2. 折线图实现
使用echarts实现折线图,展示订单与日期
2.1 提示词
你是一名资深前端开发,现在已经使用vue3+elementplus搭建了一个基础项目,需要你来实现数据统计页面DataStatisticsView.vue组件中的代码,使用echarts中的折线图显示订单和时间,样式尽量美观
生成代码如下
2.2 src/views/DataStaticsView.vue
代码如下
<template>
<div>
<div ref="chart" style="width: 100%; height: 400px;"></div>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue';
import * as echarts from 'echarts';
const chart = ref(null);
// 模拟订单数据
const orders = [
{ time: '2023-10-01', count: 10 },
{ time: '2023-10-02', count: 15 },
{ time: '2023-10-03', count: 20 },
{ time: '2023-10-04', count: 25 },
{ time: '2023-10-05', count: 30 },
{ time: '2023-10-06', count: 35 },
{ time: '2023-10-07', count: 40 },
];
onMounted(() => {
const myChart = echarts.init(chart.value);
const option = {
title: {
text: '订单数量统计',
left: 'center',
textStyle: {
fontSize: 18,
fontWeight: 'bold',
},
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985',
},
},
},
xAxis: {
type: 'category',
data: orders.map(order => order.time),
axisLabel: {
interval: 0,
rotate: 45,
fontSize: 12,
},
},
yAxis: {
type: 'value',
name: '订单数量',
nameTextStyle: {
fontSize: 14,
},
axisLabel: {
formatter: '{value} 单',
},
},
series: [
{
name: '订单数量',
type: 'line',
data: orders.map(order => order.count),
smooth: true,
itemStyle: {
color: '#409EFF',
},
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{ offset: 0, color: 'rgba(64, 158, 255, 0.5)' },
{ offset: 1, color: 'rgba(64, 158, 255, 0)' },
],
global: false,
},
},
},
],
grid: {
left: '10%',
right: '10%',
bottom: '15%',
},
};
myChart.setOption(option);
});
</script>
<style scoped>
</style>
2.3 页面效果
页面效果如下
这个模拟的数据有点不太正常,每日都比前一日多,我们修改一下数据,将后面几个订单量减少一些
3. 折线图优化
修改后的代码如下
3.1 src/views/DataStaticsView.vue
代码
<template>
<div>
<div ref="chart" style="width: 100%; height: 400px;"></div>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue';
import * as echarts from 'echarts';
const chart = ref(null);
// 模拟订单数据
const orders = [
{ time: '2025-01-01', count: 10 },
{ time: '2025-01-02', count: 15 },
{ time: '2025-01-03', count: 20 },
{ time: '2025-01-04', count: 50 },
{ time: '2025-01-05', count: 20 },
{ time: '2025-01-06', count: 35 },
{ time: '2025-01-07', count: 16 },
];
onMounted(() => {
const myChart = echarts.init(chart.value);
const option = {
title: {
text: '订单数量统计',
left: 'center',
textStyle: {
fontSize: 18,
fontWeight: 'bold',
},
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985',
},
},
},
xAxis: {
type: 'category',
data: orders.map(order => order.time),
axisLabel: {
interval: 0,
rotate: 45,
fontSize: 12,
},
},
yAxis: {
type: 'value',
name: '订单数量',
nameTextStyle: {
fontSize: 14,
},
axisLabel: {
formatter: '{value} 单',
},
},
series: [
{
name: '订单数量',
type: 'line',
data: orders.map(order => order.count),
smooth: true,
itemStyle: {
color: '#409EFF',
},
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{ offset: 0, color: 'rgba(64, 158, 255, 0.5)' },
{ offset: 1, color: 'rgba(64, 158, 255, 0)' },
],
global: false,
},
},
},
],
grid: {
left: '10%',
right: '10%',
bottom: '15%',
},
};
myChart.setOption(option);
});
</script>
<style scoped>
</style>
3.2 优化后的页面效果
修改后的页面效果如下
4. 项目源码(完结)
CSDN下载:前端 vue3 vue3入门实战 从零搭建vue3+element-plus后台管理项目 阶段2项目源码
GitHub源码:
除此之外还可以按照上面的提问让ai生成饼状图、柱状图等
以上就是数据统计功能的实现内容
📜文末寄语
- 🟠关注我,获取更多内容。
- 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
- 🟢《全栈知识库》技术社区,集结全栈各领域开发者,期待你的加入。
- 🔵加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
- 🟣点击下方名片获取更多内容🍭🍭🍭👇