【山竹记账前端-vue】16.制作 echarts 图表
大纲链接 §
[toc]
1. 创建统计图表页面,封装 DateTabsLayout ⇧
由于记账页和统计图表页的 tab 分类都为日期,并且切换和将日期传参到插槽组件中的逻辑相同,即可以统一封装为
DateTabsLayout.tsx
- 仅仅是插槽
ItemSummary和ChartsSummary展示的内容不同,入参都为开始日期和结束日期
@/components/layout/DateTabsLayout.tsx
|
|
- 保证渲染动态节点的数据必须是响应式的,比如
ref、reactive、computed即代码中遍历渲染的itemTabList数据 v-model绑定的数据也必须是响应式的,比如ref、reactive的整体或其中某个属性、可读写的computed值
@/modules/items/CustomDateRangeOverlay.tsx
|
|
- 取消时恢复上一次记录的值,就必须另外声明响应式变量
lastStarDate和lastEndDate - 限制弹出框高度大小适应范围
h-[clamp(340px,35vh,400px)]的样式 - 暂时缺少日期验证逻辑:结束时间必须大于开始时间
@/components/tab/SwitchTabs.tsx
|
|
- 将标签选择机制从
tabName改为tabId - 将
selected的 prop 重命名为selectedTabId - 将
update:selected事件改为update:selectedTabId - 内部比较逻辑统一使用
tabId进行匹配,tabName仅用来展示tab文本 - 其他逻辑不变
- 内部必须使用默认插槽接收
ItemTab组件,ItemTab组件必须有tabId和tabName属性 - 拿到默认插槽的子组件数组,遍历判断是否为
ItemTab或是v-fgt,递归拍平返回子组件数组并渲染defaultSlotTabs
- 内部必须使用默认插槽接收
- 需要重构引用它的相关组件
@src/views/ItemCreate.tsx
重构
@/views/ItemListView.tsx
|
|
创建统计图表页面
@/views/StatisticsView.tsx
|
|
- 如果需要将一个组件传参到子组件内部的话,直接使用插槽,代替通过使用外部参数
props来传一个组件,后者需要声明组件类型- 还可以定义好插槽执行函数的参数,即作用域插槽
default: ({ start, end }: { start: string; end: string }) => (<Xxx startDate={start} endDate={end} />)
- 子组件消费插槽时,传递实参
{_ctx.slots?.default?.({ start: tabItem.start, end: tabItem.end })}
2. 实现 select 控件 ⇧
3. 用 echarts 实现折线图 ⇧
4. 用 echarts 实现饼图 ⇧
5. 用 echarts 实现柱状图 ⇧
6. 重构:封装三个图表组件 ⇧
·未完待续·
参考文章
相关文章
- 无
- 作者: Joel
- 文章链接:
- 版权声明
- 非自由转载-非商用-非衍生-保持署名