页面

详情页

购物车页

实现功能

详情页

1.数据的获取,详情页的轮播图,商品的参数,商品的配置等。
这里的数据获取仍然是采用后台的数据

request.request({url: `/goods?id=` + option.id}).then(response => {this.data.swiperImages = response.data[0].goods_header;this.data.describe.title = response.data[0].goods_describe_title;this.data.describe.smallTitle = response.data[0].goods_describe_smallTitle;this.data.describe.date = response.data[0].goods_describe_date;this.data.icons = response.data[0].goods_collocation;}).catch(error => {console.log(error)})

2.产生订单,将的商品型号,配置,颜色,数量和服务等信息生成订单。

这里的商品参数,不仅仅是简单的数据获取,它还涉及到一些数据的初始化,例如已选区域在进入详情页的默认数据,送至区域的默认地址等

request.request({url: `/goodsCollocation?id=` + option.id}).then(response => {console.log(response)this.response = response;this.goodMessage = response.data[0].goodsCollocation_product[0].product + ' ' +response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].version + ' ' +response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].goodsCollocation_color[0].color;this.showGoodMessage = this.goodMessage + ' x' + this.num;this.tempGoodMessage = this.goodMessage;this.sall = response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].price -response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].discounts +response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].goodsCollocation_color[0].price -response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].goodsCollocation_color[0].discounts;this.totalPrice = this.sall;if (response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].discounts != 0 &&response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].goodsCollocation_color[0].discounts != 0) {this.price = response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].price +response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].goodsCollocation_color[0].price;} else {this.price = 0;}this.pruduct = response.data[0].goodsCollocation_product;for (var i = 0; i < this.pruduct.length; i++) {var tempProduction = {value: i,text: this.pruduct[i].product}this.production.push(tempProduction);}// uni-app 的数据选择插件的数据具有严格的数据格式,将后台获取的数据格式化for (var i = 0; i < this.pruduct[0].goodsCollocation_version.length; i++) {var temp = {value: i,text: this.pruduct[0].goodsCollocation_version[i].version}this.version.push(temp);}for (var i = 0; i < this.pruduct[0].goodsCollocation_version[0].goodsCollocation_color.length; i++) {var temp = {value: i,text: this.pruduct[0].goodsCollocation_version[0].goodsCollocation_color[i].color}this.color.push(temp);}for (var i = 0; i < response.data[0].goodsCollocation_server.length; i++) {var temp = {value: i,text: response.data[0].goodsCollocation_server[i].server}this.server.push(temp);}}).catch(error => {console.log(error)})

这个选择的页面可以分为三个区域,上方的信息展示,中间选择商品属性,下方的按钮。
上方的信息展示在数据的获取时就做了信息的初始化。

this.goodMessage = response.data[0].goodsCollocation_product[0].product + ' ' +response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].version + ' ' +response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].goodsCollocation_color[0].color;this.showGoodMessage = this.goodMessage + ' x' + this.num;this.tempGoodMessage = this.goodMessage;this.sall = response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].price -response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].discounts +response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].goodsCollocation_color[0].price -response.data[0].goodsCollocation_product[0].goodsCollocation_version[0].goodsCollocation_color[0].discounts;this.totalPrice = this.sall;

中间选择商品属性区域的数据采用的是嵌套数组,这里为 3 层。
第 1 层:商品的型号 Redmi Note 11 Pro 和 Redmi Note 11 Pro +
第 2 层:商品的配置 以 Redmi Note 11 Pro + 为例 6+128G 8+128G 8+256G
第 2 层:商品的颜色 以 Redmi Note 11 Pro + 为例 6+128G 颜色有 迷雾森林 神秘黑镜
8+128G 时光之紫 迷雾森林 神秘黑镜
第 2 层 和 第 3 层 的数据还附带 价格 和 折扣 这两种属性。

const goodsCollocationSchema = new Schema({goodsCollocation_id: {type: Schema.Types.ObjectId},// 第 1 层goodsCollocation_product: [{product: {type: String},image: {type: String,default: ''},// 第 2 层goodsCollocation_version: [{version: String,price: Number,discounts: Number,// 第 3 层goodsCollocation_color: [{color: String,price: Number,discounts: Number}],}],}],goodsCollocation_server: [{server: String,price: Number}]},{timestamps: {createdAt: "create_time",updatedAt: "update_time",},}
);

在选择商品的不同属性时,商品的价格,商品的总价格,商品的数量,商品的展示信息,商品的订单信息都会发生变化。


这里主要就是修改价格和订单信息,分为两个函数。

setPrice: function(a, b, c) {this.sall = this.response.data[0].goodsCollocation_product[a].goodsCollocation_version[b].price -this.response.data[0].goodsCollocation_product[a].goodsCollocation_version[b].discounts +this.response.data[0].goodsCollocation_product[a].goodsCollocation_version[b].goodsCollocation_color[c].price -this.response.data[0].goodsCollocation_product[a].goodsCollocation_version[b].goodsCollocation_color[c].discounts;if (this.response.data[0].goodsCollocation_product[this.productionValue].goodsCollocation_version[this.versionValue].discounts != 0 ||this.response.data[0].goodsCollocation_product[this.productionValue].goodsCollocation_version[this.versionValue].goodsCollocation_color[this.colorValue].discounts != 0) {this.price = this.response.data[0].goodsCollocation_product[this.productionValue].goodsCollocation_version[this.versionValue].price +this.response.data[0].goodsCollocation_product[this.productionValue].goodsCollocation_version[this.versionValue].goodsCollocation_color[this.colorValue].price;} else {this.price = 0;}this.totalPrice = this.sall;},setMessage: function(a, b, c, d) {this.goodMessage = this.response.data[0].goodsCollocation_product[a].product + ' ' +this.response.data[0].goodsCollocation_product[a].goodsCollocation_version[b].version + ' ' +this.response.data[0].goodsCollocation_product[a].goodsCollocation_version[b].goodsCollocation_color[c].color;this.showGoodMessage = this.goodMessage + ' x' + d},

(注:这里的方法必须 函数名:funcation(){} 格式去写,否则报错)

订单页

1.订单数据的获取与展示。
2.购买商品数量与总价的计算与展示。

展示时的价格为商品的单价,计算时为商品的实际价值,例如,加了一个168的碎屏险价格为1867元,
总金额=选中的商品的实际价值*商品数量

getNum:function(){this.numAll=0;this.data.forEach(item=>{if(item.checked===true){this.numAll+=item.order_num;}})},getPrice:function(){this.priceAll=0;this.data.forEach(item=>{if(item.checked===true){this.priceAll=this.priceAll+item.order_num*item.order_totalPrice;}})},

Bug解决

1.分类页面bug解决
data 中的数据划分出来,改为 3 个数组,这也需要改变页面的数据渲染格式。
点击左侧竖向导航,获取对应数据和 type ,根据 type 的值,展示右侧的页面(暂未更改)。

源码

Github:Github:https://github.com/hrbust1914010305/uni-app-shop
uniAppShopOver.zip

uni-app 小项目开发 仿小米商城 后端提供数据3相关推荐

  1. uni-app 小项目开发 仿小米商城

    uni-App Shop 开发计划 实现前端框架的搭建. 使用数据库进行数据的模拟. 前后端建立连接. 开发工具 HBuilderX 主要功能 商品的展示. 商品详情. 加入购物车. 用户信息. Gi ...

  2. uni-app 小项目开发 仿小米商城 前端开发2

    实现 顶部搜索框下的导航栏及点击分类进行换页. 推荐页的轮播图搭建. 推荐页面中的分类导航. 以组件的方式实现商品的展示. 实现方法 主要采用uni-app组件进行搭建.uni-app链接:https ...

  3. 21小时精通微信小程序开发(仿猫眼电影App、微信小程序问答)

    21小时精通微信小程序开发(仿猫眼电影App.微信小程序问答) 网盘地址:https://pan.baidu.com/s/1GTpPX4A1U-w_3i6k7lLztQ 密码: 5pcz 备用地址(腾 ...

  4. 微信小程序开发-仿今日头条(二)

    该仿今日头条的文章系列如下: 微信小程序-仿今日头条客户端 微信小程序开发-仿今日头条(二) 转载请标明:https://blog.csdn.net/yangjianbo456/article/det ...

  5. 中医养生APP小程序开发 了解传统文化传承医学经典

    中国文化博大精深,中国传统文化更是历史久远,一直到几千年后的今天很多传统文化依然对我们现在的生活有着重大的影响,比如中医.随着人们对健康关注度的提高,很多人把目光投向了追本溯源的中医上,企图通过中医养 ...

  6. 100个vc小项目开发:二、一步一点设计音乐播放器 [I]

    100个vc小项目开发:二.一步一点设计音乐播放器 [源码解读] 文章作者: July 软件来源:开源 ================== 1.有不正之处,恳请指正. 2.本文贴出的是关键实现代码部 ...

  7. 智慧停车APP小程序开发前景及开发方案

    一 智慧停车APP开发前景 1.供需智能匹配,解决信息不对称问题 2.智能化管理,减少人工物力成本,提升停车场收益及形象. 3.节省等待时间,快速满足用户需求 二 智慧停车APP小程序开发解决方案 1 ...

  8. 在线教育APP小程序系统开发 教培行业一站式解决方案

    移动互联网如今已经深入到我们生活的方方面面,教育行业也不例外.如今市面上的在线教育APP小程序系统开发大受欢迎,很多学校.培训机构等都争相开发应用软件,以求通过全新的模式来满足不断扩大的市场需求,为用 ...

  9. 尚硅谷微信小程序开发 仿网易云音乐App 小程序 后端接口服务器搭建

    目录 小程序学习 视频相关的教程文档与笔记分享 配套服务器 源码地址: 接口使用说明文档 接口列表 启动服务 测试服务启动OK网页 http://localhost:3000/test.html​编辑 ...

最新文章

  1. Java中图形界面重绘方法
  2. 干货|2018年中国智能硬件行业现状与发展趋势报告
  3. CF1142C U2
  4. linux光盘安装yum,[转载]将linux安装光盘配置为一个本地yum源
  5. How to resolve ASSERTION_FAILED error when you register the odata service expose
  6. java c 引用区别_Java的引用c++的引用和C指针的区别
  7. mysql常用加密方法_MYSQL 加密的 3 类方法
  8. 华为机试HJ6:质数因子
  9. 当启动vue项目安装依赖时报错
  10. python没有pygame_Python菜鸟快乐游戏编程_pygame
  11. C# PDF转图片(JPG,Png)
  12. 品牌 read.php,优网科技高级程序员关于PHP优化知识分享
  13. 用python绘制叠加等边三角形_python 叠加等边三角形的绘制
  14. 图虫:科技赋能图片版权领域创新发展
  15. SpringBoot 就这一篇全搞定
  16. 机器学习进阶 day4
  17. h5压缩图片 亲测有效
  18. Kafka可视化管理工具kafka-manager部署安装和使用-已更名为CMAK
  19. java面试微信交流群-欢迎你的加入
  20. <<计算机操作系统(慕课版)>>第三章参考答案

热门文章

  1. 软考-信息技术发展(二)
  2. 解压 *.gz文件 gzip压缩
  3. web开发——3.数据模型概念
  4. linux查看网关gateway
  5. discuz要什么系统服务器,Discuz! Q安装,服务器要求详细说明
  6. 如何在Matlab中得到透明背景的图片?
  7. FHDe2Net-ECCV2020
  8. 宝塔安装MongoDB
  9. excel离散度图表怎么算_“excel怎么做离散分析“EXCEL中AVEDEV计算离散度是什么?...
  10. H5摇一摇遇到的问题