鸿蒙项目云捐助第三十一讲云捐助项目云前台显示商品列表

鸿蒙项目云捐助第三十一讲云捐助项目云前台显示商品列表

前面完成了云数据库后台的商品批量添加,这里需要把数据放在分类导航页面中显示。

一、云前台显示商品列表

这里需要把商品列表显示在MyNavSliderBar的组件中,MyNavSliderBar组件是通过首页路由实现的,在项目进入首页后,点击底部导航时就进入了MyNavSliderBar的显示,首先在首页中引入商品列表的云数据类型文件js和json文件。代码如下图所示。

由于商品数据是远程华为云数据库获取过来的,这里首先初始化一个捐赠商品的列表。

点击首页中底部导航的按钮,实际就是改变Tabs选项卡的操作,这里Tabs选项卡组件可以通过onChange方法进行改变,在改变时,onChange方法根据传入的参数index来决定底部导航子项的索引,第一个底部导航的索引为0,第二个底部导航的索引为1,当底部导航的索引值为1,就可以通过cloud.database连接远程数据库。代码如下图所示。

代码中在onChange方法体中判断底部导航的索引值,当索引值为1时,通过cloud.database加载云数据库,这时加载数据库的zoneName为“three”,加载的数据类型objectTypeInfo的值是GoodsInfo,也就是捐赠商品信息表。定义好云数据库后,通过database.collection()方法获取colletion()连接,再调用collection()的query()查询方法,最后通过get()方法获取所有的数据。

当华为云数据库中的内容全部查询出来后得到的结果就是result,也就是获取的华为云数据库的捐赠商品列表,把result的结果赋给最初实例化的this.donation_lists变量,就得到到捐赠商品列表的数据。

在首页中点击Tabs的底部导航栏获取到捐赠商品列表this.donation_lists数据后,就通过在调用子组件时把捐赠商品的列表值传入其中。如下图所示。

这里将获取的this.donation_lists的数据传入到子组件MyNewSliderBar组件中,在MyNewSliderBar组件内部有两个部分,左边是导航分类的显示,右边是导航分类中捐赠商品列表的显示。在之前的章节中,首页的IndexCommponent首页组件中加载数据时本身就加载过分类数据。如下图所示。

这里把获取的分类数据传给MyNewSliderBar组件中就可以实现MyNewSliderBar左侧的导航数据。导入数据如下图所示。

当MyNewSliderBar的分页组件中导入分类数据和所有捐赠商品列表后,在MyNewSliderBar组件组件中需要通过@Prop的单向传递进行数据的接收,代码如下图所示。

在MyNewSliderBar组件中完成数据接收后,把this.sub_category的分类数据传给左侧的子组件,如下图所示。

代码中遍历左侧的this.sub_category分类数据,遍历后的子项myitem传入到左侧的子组件OtherSideBar中,子组件OtherSideBar的接收类型改变成左侧导航的类,如下图所示。

左边的List列表组件处理完成后,继续处理右侧的列表组件,由于华为云数据库中把捐赠列表分类id和捐赠商品id放在了一起,也就是category_id和course_id合并在一起,形成cate_couse_id,因此在进行循环处理右侧List列表中的组件时,原来使用的是双重循环,如下图所示。

在进行后续代码开发时,需要把定义的鸿蒙类Goods类进行修改,这里添加love_number的爱心数据,代码如下图所示。

还要注意,这个Goods类中的pic属性也需要改成string类型。这里修改Goods类中的pic属性如下图所示。

由于从华为云数据库中获取的代码是一层结构,而在之前离线布局分页数据中是二层嵌套结构,这里把一层结构的数据改造成二层嵌套结构的数据。首先定义一个初始化的改造的代码列表如下图所示。

接下来在加载数据库成功后对一层结构的数据进行改造,改造时首先遍历分类数据,先实例化一个GoodsCategory的捐赠商品分类的鸿蒙类。如下图所示。

实例化一个鸿蒙捐赠商品为后,在数据库中获取分类的cate_course_id数据,这里把cate_course_id数据使用“_”切分,切分后的数组第一个值就是category_id,也就是分类的id,当获取的分类id与当前循环的分类id相等时,由进行实例化Goods的捐赠商品类,这时把从数据库中获取的相关参数赋值到Goods的捐赠商品实例中。最后需要把实例化赋值的捐赠商品实例类加入到捐赠分类实例的courseList捐赠商品列表中。在处理分类过程中,每循环一次,就把当前商品的分类category_index实现加1的操作,最后把这个造出的每一个分类数据加入到之前定义的改变层次结构的donation_arrs的数组中。

在首页中完成二层嵌套数据构建后,再把构建好的数据传输到MyNewSliderBar中。如下图所示。

MyNewSliderBar对于从Index首页中传入的数据通过@Prop单向传递进行接收。代码如下图所示。

这里接收的this.sub_donations右侧列表数据将其展示到右侧的ForEach循环变量中,如下图所示。

调用this.sub_donatioins右侧列表数据后,在ForEach循环体的组件RightSliderBar中进行调用,这里需要修改RightSliderBar布局中元素名称。

在RightSliderBar中首先把原来的引用的资源类型改变成引用字符串类型,修改代码如下图所示。

这样在模拟器中,右边导航就可以正确显示了,如下图所示。

这样就实现了鸿蒙云捐助项目的加载云数据库捐赠商品的列表显示。后续还会带来鸿蒙项目云捐助在华为云上的精彩,欢迎关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/498661.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【brew安装失败】DNS 查询 raw.githubusercontent.com 返回的是 0.0.0.0

从你提供的 nslookup 输出看,DNS 查询 raw.githubusercontent.com 返回的是 0.0.0.0,这通常意味着无法解析该域名或该域名被某些 DNS 屏蔽了。这种情况通常有几个可能的原因: 可能的原因和解决方法 本地 DNS 问题: 有可能是你的本…

【SpringMVC】拦截器

拦截器(Interceptor)是一种用于动态拦截方法调用的机制。在 Spring MVC 中,拦截器能够动态地拦截控制器方法的执行过程。以下是请求发送与接收的基本流程: 当浏览器发出请求时,请求首先到达 Tomcat 服务器。Tomcat 根…

python使用PyQt5,整套,桌面应用

安装 安装 pip install PyQt55.7.1 pip install PyQtWebEngine1、创建窗口,按百分比划分 from PyQt5.QtGui import QGuiApplication from PyQt5.QtWidgets import QApplication, QWidget # 创建应用程序实例 app QApplication([]) # 创建主窗口 window QWidget(…

018-spring-基于aop的事务控制

1 先配置平台事务管理器 2 在配置 spring提供的advice 3 事务增强的aop 总结&#xff1a; 事务就是要做2个配置&#xff1a; <!-- 1 开启事务管理器 不同的框架对应不同的事务管理器 --> <bean id"transactionManager" class"org.springframework.j…

《向量数据库指南》——Milvus Cloud 2.5:Sparse-BM25引领全文检索新时代

Milvus Cloud BM25:重塑全文检索的未来 在最新的Milvus Cloud 2.5版本中,我们自豪地引入了“全新”的全文检索能力,这一创新不仅巩固了Milvus Cloud在向量数据库领域的领先地位,更为用户提供了前所未有的灵活性和效率。作为大禹智库的向量数据库高级研究员,以及《向量数据…

2025决战智驾:从中阶卷到L3,车企需要抓好一个数据闭环

作者 |王博 编辑 |德新 全国都能开之后&#xff0c;智驾继续走向哪里&#xff1f; 2024年末&#xff0c;大部分主流车企已经实现了无&#xff08;高精度&#xff09;图全国都能开。而第一梯队的玩家&#xff0c;从以规则为主的算法框架&#xff0c;向神经网络模型为主的新架构…

优化大肠杆菌菌株和发酵工艺以提高L-赖氨酸生产-文献精读94

Optimizing Escherichia coli strains and fermentation processes for enhanced L-lysine production: a review 优化大肠杆菌菌株和发酵工艺以提高L-赖氨酸生产&#xff1a;综述 对比酵母酵母中de novo生物合成啤酒花活性类黄酮黄腐醇-文献精读93-CSDN博客 赖氨酸是一种重要…

如何在 Ubuntu 22.04 上安装 Varnish HTTP 教程

简介 在本教程中&#xff0c;我们将学习如何在 Ubuntu 22.04 服务器上安装和配置 Varnish HTTP。 Varnish 是一款高性能的 HTTP 加速器&#xff0c;旨在提高内容密集型动态网站的速度。它通过将网页缓存在内存中来工作&#xff0c;从而减少 Web 服务器的负载&#xff0c;并显…

CPT203 Software Engineering 软件工程 Pt.5 软件测试(中英双语)

文章目录 8. 软件测试8.1 Testing&#xff08;测试&#xff09;8.1.1 A note of testing under the V & A framework8.1.2 The Basics8.1.3 The Goals8.1.4 The Stages 8.2 Developing testing&#xff08;开发测试&#xff09;8.2.1 Unit testing&#xff08;单元测试&…

STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计

SMEC88ST SDK开发包下载 目前市场上很多嵌入式产品方案都是可以破解复制的&#xff0c;主要是因为方案主芯片不具备防破解的功能&#xff0c;这就导致开发者投入大量精力、财力开发的新产品一上市就被别人复制&#xff0c;到市场上的只能以价格竞争&#xff0c;最后工厂复制的产…

springcloud各个组件介绍

Spring Cloud 是一系列框架的集合&#xff0c;它基于 Spring Boot 提供了在分布式系统&#xff08;如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话和集群状态&#xff09;中快速构建一些常见模式的工具。下面是对 Sprin…

AAAI 2025论文分享┆一种接近全监督的无训练文档信息抽取方法:SAIL(文中附代码链接)

本推文详细介绍了一篇上海交通大学乐心怡老师课题组被人工智能顶级会议AAAI 2025录用的的最新论文《SAIL: Sample-Centric In-Context Learning for Document Information Extraction》。论文的第一作者为张金钰。该论文提出了一种无需训练的、以样本为中心的、基于上下文学习的…

基于JSP的健身俱乐部会员管理系统的设计与实现【源码+文档+部署讲解】

基于JSP的健身俱乐部会员管理系统的设计与实现 摘 要 目前我国虽然己经开发出了应用计算机操作的健身俱乐部管理系统&#xff0c;但管理软件&#xff0c;管理方法和管理思想三者往往相脱节。造成我国健身俱乐部信息管理系统极端化的缺陷。在国外健身俱乐部已经有了一整套涉猎了…

2024 年度总结

时光荏苒&#xff0c;2024 年即将画上句号&#xff0c;回顾这一年的写博历程&#xff0c;有付出、有收获、有成长&#xff0c;也有诸多值得回味与反思的瞬间。 一、内容创作 主题涉猎&#xff1a;这一年&#xff0c;我致力于探索多样化的主题&#xff0c;以满足不同读者群体的…

SonarQube相关的maven配置及使用

一、maven 全局配置 <settings><pluginGroups><pluginGroup>org.sonarsource.scanner.maven</pluginGroup></pluginGroups><profiles><profile><id>sonar</id><activation><activeByDefault>true</acti…

Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用|数据分享...

全文链接&#xff1a;https://tecdat.cn/?p38708 分析师&#xff1a;Yuling Fang 信息时代的来临使得企业营销焦点从产品中心转向客户中心&#xff0c;客户关系管理成为企业的核心问题&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 客户关系管理的关键是客…

委外加工业务如何调整原材料的消耗-MIGO A11-后续调整

业务背景&#xff1a;用户反馈委外加工业务回收后&#xff0c;产品已经销售&#xff0c;但委外加工结算时要对原材料消耗时行调整。如果没有销售&#xff0c;准备采用收货冲销后重新收货&#xff0c;但现在已经是2024年最后一天了。。。销售业务已经做完。不可能再冲销。其实这…

工作中常用Vim的命令

Hi, 我是你们的老朋友&#xff0c;主要专注于嵌入式软件开发&#xff0c;有兴趣不要忘记点击关注【码思途远】 目录 0. ctags -R 1.认识 Vim的几种工作模式 2.高频使用命令 2.1 修改文件 2.2 关于行号 2.3 删除多行&#xff0c;删除部分 2.4 复制粘贴 2.5 光标移动 2.…

2、redis的持久化

redis的持久化 在redist当中&#xff0c;高可用的技术包括持久化&#xff0c;主从复制&#xff0c;哨兵模式&#xff0c;集群。 持久化是最简单的高可用的方法&#xff0c;作用就是备份数据。即将数据保存到硬盘&#xff0c;防止进程退出导致数据丢失。 redis持久化方式&…

QT----------常用界面组件的使用

一、QComboBox 类 主要功能&#xff1a;提供一个下拉列表&#xff0c;用户可以从中选择一个或多个选项。 #include <QApplication> #include <QComboBox> #include <QVBoxLayout> #include <QWidget> #include <QMessageBox>int main(int argc…