商品小程序(6.商品详情)

目录

  • 一、获取商品详情数据
  • 二、渲染商品详情页的UI结构
    • 1、渲染轮播图区域
    • 2、实现轮播图预览效果
    • 3、渲染商品信息区域
    • 4、渲染商品详情信息
    • 5、解决商品价格闪烁的问题
  • 三、渲染详情页底部的商品导航区域
    • 1、渲染商品导航区域的UI结构
    • 2、点击跳转到购物车页面

本章主要完成商品详情页面的前端编写:主要页面为分包下的goods-detail页面

在这里插入图片描述

一、获取商品详情数据

还是先来看看后端api端口的url,以及参数,返回数据样式

在这里插入图片描述
在这里插入图片描述

请求数据前面写个很多次了,不多赘述

<script>export default {data() {return {goods_info: {}};},onLoad(options) {const goods_id = options.goods_idthis.getGoodsDetail(goods_id)},methods: {getGoodsDetail(goods_id){const {data : res} = await uni.request({url: 'https://api-hmugo-web.itheima.net/api/public/v1/goods/detail?goods_id=' + goods_id,method: 'GET'})if(res.meta.status !== 200){return uni.showToast({title: '数据请求失败!',duration: 1500,icon: 'none',})}this.goods_info = res.message}}}
</script>

二、渲染商品详情页的UI结构

1、渲染轮播图区域

前面轮播图也是做过了,具体的一些组件中的参数也不多介绍,直接使用,鼠标悬停上去也有翻译

根据返回结果,主要变量结构中的pics 下的 pics_big大图

	<view><!-- 轮播图区域 --><swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" :circular="true"><swiper-item v-for="(item, i) in goods_info.pics" :key="i"><image :src="item.pics_big"></image></swiper-item></swiper></view>

渲染UI结构

<style lang="scss">
swiper {height: 750rpx;image {width:100%;height:100%;}
}
</style>

在这里插入图片描述

2、实现轮播图预览效果

为轮播图中的image图片绑定click事件处理函数

在这里插入图片描述

在methods中定义preview事件处理函数用于点击预览大图(用uni自带的previewImage浏览图片)

			preview(i) {uni.previewImage({current: i,urls: this.goods_info.pics.map(x => x.pics_big)})}

点击商品轮播图图片进入预览图

在这里插入图片描述

3、渲染商品信息区域

在与轮播图同级的view下创建商品信息的UIview

		<!-- 商品信息区域 --><view class="goods-info-box"><!-- 商品价格 --><view class="price">¥{{goods_info.goods_price}}</view><!-- 商品信息主体区域 --><view class="goods-info-body"><!-- 商品的名字 --><view class="goods-name">{{goods_info.goods_name}}</view><!-- 收藏 --><view class="favi"><uni-icons type="star" size="18" color="gray"></uni-icons><text>收藏</text></view></view><!-- 运费 --><view class="yf">快递: 免运费</view></view>

美化UI

.goods-info-box {padding: 10px;padding-right: 0;.price {color: #C00000;font-size: 18px;margin: 10px 0;}.goods-info-body {display: flex;justify-content: space-between;.goods-name{font-size: 13px;margin-right: 10px;}.favi{width: 120px;font-size: 12px;display: flex;flex-direction: column;align-items: center;justify-content: center;border-left: 1px solid #efefef;color: gray;}}.yf{font-size: 12px;color: gray;margin: 10px 0;}
}

在这里插入图片描述

4、渲染商品详情信息

在页面结构中,使用rich-text组件,将带有html标签的内容渲染为小程序的页面结构(轮播图,商品详情的同级)

		<!-- 商品详情信息 --><rich-text :node="goods_info.goods_introduce"></rich-text>

修改getGoodsDetail方法,从而解决图片底部空白间隙的问题
在这里插入图片描述

解决.webp格式图片在ios设备无法正常显示问题

在这里插入图片描述

在这里插入图片描述

5、解决商品价格闪烁的问题

在这里插入图片描述

三、渲染详情页底部的商品导航区域

1、渲染商品导航区域的UI结构

基于uni-ui提供的goodsnav组件来实现商品导航区域的效果

在data中,通过options和buttongroup两个数组,来声明商品导航组件的按钮配置对象:

		data() {return {goods_info: {},// 左侧按钮组的配置对象options: [{icon: 'shop',text: '店铺'}, {icon: 'cart',text: '购物车',info: 2}],// 右侧按钮组的配置对象buttonGroup: [{text: '加入购物车',backgroundColor: '#ff0000',color: '#fff'}, {text: '立即购买',backgroundColor: '#ffa200',color: '#fff'					}]};},

使用uni-goods-nav商品导航组件

		<!-- 商品导航组件区域 --><view class="goods_nav"><uni-goods-nav :fill="true"  :options="options" :buttonGroup="buttonGroup"  @click="onClick" @buttonClick="buttonClick" /></view>

美化商品导航,并使他固定在底部

.goods_nav {position: fixed;bottom: 0;left: 0;width: 100%;
}

在这里插入图片描述

2、点击跳转到购物车页面

在这里插入图片描述
点击左下角购物车按钮,跳转购物车页面

在这里插入图片描述

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

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

相关文章

大数据框架ElasticSearch学习网站,让你的技能瞬间升级!

介绍&#xff1a;Elasticsearch是一个分布式、免费和开放的搜索和分析引擎&#xff0c;它适用于所有类型的数据&#xff0c;包括文本Elasticsearch是一个分布式、免费和开放的搜索和分析引擎&#xff0c;它适用于所有类型的数据&#xff0c;包括文本、数字、地理空间、结构化和…

DVenom:一款功能强大的Shellcode加密封装和加载工具

关于DVenom DVenom是一款功能强大的Shellcode加密封装和加载工具&#xff0c;该工具专为红队研究人员设计&#xff0c;可以帮助红队成员通过对Shellcode执行加密封装和加载实现反病毒产品的安全检测绕过。 功能介绍 1、支持绕过某些热门反病毒产品&#xff1b; 2、提供了多种…

解决uniapp打包成apk后uni.getStorageSync获取不到值

uniapp写的项目&#xff0c;在hbuilderx中云打包成apk后我在登录存储的token死都获取不到&#xff0c;导致后续接口请求头没有token连接不到接口&#xff0c;只有运行到手机或者模拟器还有打包成apk后是获取不到&#xff0c;其他的小程序还有网页都可以获取到 试过了很多种方法…

美洽获评2023年度“最佳数字化服务商”,产品优势赋能企业智能转型

日前&#xff0c;由知名学习交流平台人人都是产品经理举办的“2023年度评选”活动圆满落幕&#xff0c;美洽凭借在企业服务领域的技术实力与优秀实践成果脱颖而出&#xff0c;入围年度产品评选榜单&#xff0c;获评2023年度“最佳数字化服务商”。 人人都是产品经理成立于2010年…

什么是负载均衡?什么情况下又会用到负载均衡

什么是负载均衡 在大型的网络应用中&#xff0c;使用多台服务器提供同一个服务是常有的事。平均分配每台服务器上的压力、将压力分散的方法就叫做负载均衡。 [利用 DNS来实现服务器流量的负载均衡&#xff0c;原理是“给网站访问者随机分配不同ip”] 什么情况下会用到负载均…

js逆向第9例:猿人学第2题-js混淆-动态cookie1

题目2:提取全部5页发布日热度的值,计算所有值的加和,并提交答案 (感谢蔡老板为本题提供混淆方案) 既然题目已经给出了cookie问题,那就从cookie入手,控制台找到数据请求地址 可以看到如下加密字符串m类似md5,后面跟着时间戳 m=45cc41dcdb15159ebb50564635f8e362|1704301…

使用PowerJob做任务调度模块

最近项目中使用了PowerJob做任务调度模块&#xff0c;感觉这个框架真香&#xff0c;今天我们就来深入了解一下新一代的定时任务框架——PowerJob&#xff01; 简介 PowerJob是基于java开发的企业级的分布式任务调度平台&#xff0c;与xxl-job一样&#xff0c;基于web页面实现…

PLC三相电动机Y-▲启动控制程序示例

一、三相电动机星三角启动接法。 二、因为电动机在启动的时候启动电流非常的大&#xff0c;所以在启动时采用星型接法&#xff0c;也就是Y型接法&#xff0c;也就是图上的KM1和KM2接通&#xff0c;目的为了减小启动电流&#xff0c;采用Y型接法的启动电流是原来电流的1/3 三、启…

WPS/PPT插件-大珩助手免费功能更新-特殊字符

扩展特殊格式下特殊字符&#xff0c;增加200多个常用特殊字符&#xff0c;可直接点击插入。 PPT大珩助手 1.7.6 1、提供素材库功能&#xff0c;可实现一键保存素材&#xff0c;支持对选中的形状&#xff0c;支持一键替换素材&#xff0c;保留原素材的尺寸和位置&#xff0c;…

Linux第17步_安装SSH服务

secure shell protocol简称SSH。 目的&#xff1a;在进行数据传输之前&#xff0c;SSH先对联级数据包通过加密技术进行加密处理&#xff0c;然后再进行数据传输&#xff0c;确保数据传输安全。 1、在安装前&#xff0c;要检查虚拟机可以上网&#xff0c;否则可能会导致安装失…

开源分布式任务调度系统DolphinScheduler本地部署与远程访问

文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问&#xff0c;结合内…

PPT插件-大珩助手-文字整理功能介绍

删空白行 删除文本中的所有空白行 清理编号 删除文本中的段落编号 清理格式 删除文本中的换行、空格符号 清理艺术 删除文本的艺术字效果 清理边距 删除文本框与文字之间的间隙 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件&#xff0c;它是一款功能强大且实…