温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

微信小程序商城开发之动态API实现商品的详情页示例

发布时间:2021-01-28 13:55:31 来源:亿速云 阅读:286 作者:小新 栏目:移动开发

这篇文章主要介绍了微信小程序商城开发之动态API实现商品的详情页示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

看效果

微信小程序商城开发之动态API实现商品的详情页示例

开发计划

1、实现商品详情页面布局(这篇实现3个模块,头部商品图片轮播、商品价格和商品描述、商品详情展示)
2、根据用户点击不同的商品请求API动态加载数据

根据商品ID获取商品详情API数据模型

访问:https://100boot.cn/ 选择微商城案例,如下图所示:

微信小程序商城开发之动态API实现商品的详情页示例

下方还有详细的数据模型可以查看哦!

home.js 增加跳转商品详情事件

上一篇还记得我们做了商品点击查看详情的事件采集吗?那么再加上跳转商品详情页功能,如下图所示:

微信小程序商城开发之动态API实现商品的详情页示例

detail.wxml
<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">   <block wx:for="{{goods.imgUrls}}">     <swiper-item>       <image src="{{item}}" src="{{item}}" bindtap="previewImage" mode="widthFix"></image>     </swiper-item>   </block></swiper><!--商品价格和商品描述--><view><view class="product-name-wrap">     {{goods.title}}  </view>   <view class="product-price-wrap">       <view>         <p class="product-price-new">¥{{goods.price}}</p>           <p class="product-price-old">原价¥{{goods.privilegePrice}}</p>        </view>   </view></view>  <view class="details">    <scroll-view scroll-y="true">     <text>商品详情</text>     <block wx:for-items="{{goods.detailImg}}" wx:key="name">        <image class="image_detail" src="{{item}}" mode="widthFix"/>      </block>     <view class="temp"></view>   </scroll-view>  </view>
detail.wxss
page {       display: flex;       flex-direction: column;       height: 100%; } /* 直接设置swiper属性 */ swiper {       /* height: 500rpx; */     height: 750rpx; } swiper-item image {       width: 100%;       height: 100%; } /**商品价格**/ .product-price-wrap{           display: flex;       justify-content:space-between;/**两边对齐**/     flex-direction: row;       flex-wrap: wrap;       margin:5px 5px;   /* border:1rpx solid red;   */ }  .product-price-wrap .product-price-new{       color: red;       font-size: 40rpx;       margin: 10rpx; } .product-price-wrap .product-price-old{       color: #888;       text-decoration: line-through;       padding-left: 5px;       font-size: 12px;       line-height:30px;       font-weight:300; } .product-name-wrap{       margin: 0px 10px;         font-size: 14px;         color: #404040; } .details{        padding: 0 5px 0 5px;  } .detail {       display: flex;       flex-direction: column;       margin-top: 15rpx;       margin-bottom: 0rpx;    } .detail .title {       font-size: 40rpx;       margin: 10rpx;       color: black;       text-align: justify;       height: 100rpx; } .detail .price {       color: red;       font-size: 40rpx;       margin: 10rpx; } .line_flag {       width: 80rpx;       height: 1rpx;       display: inline-block;       margin: 20rpx auto;       background-color: gainsboro;       text-align: center; } .line {       width: 100%;       height: 2rpx;       display: inline-block;       margin: 20rpx 0rpx;       background-color: gainsboro;       text-align: center; } .detail-nav {       display: flex;       flex-direction: row;       align-items: center;       float: left;       background-color: #fff;       position: fixed;       bottom: 0;       right: 0;       z-index: 1;       width: 100%;       height: 100rpx; } .button-green {       background-color: #4caf50; /* Green */ } .button-red {       background-color: #f44336; /* 红色 */ } .button-addCar {       background-color: #f44336; /* 红色 */     width: 100%; } .image_detail {       width: 100%;  /* height: 750rpx; */ } .detail-nav image {       width: 70rpx;       height: 50rpx;       margin: 20rpx 40rpx; } .line_nav {       width: 5rpx;       height: 100%;       background-color: gainsboro; } /* 占位 */ .temp {       height: 100rpx; }
detail.js
const ajax = require('../../utils/ajax.js'); const utils = require('../../utils/util.js'); var imgUrls = [];  var detailImg = []; var goodsId = null; var goods = null; Page({  /**    * 页面的初始数据    */   data: {         isLike: true,         showDialog: false,         goods:null,         indicatorDots: true, //是否显示面板指示点     autoplay: true, //是否自动切换     interval: 3000, //自动切换时间间隔,3s     duration: 1000, //  滑动动画时长1s   },  //预览图片   previewImage: function (e) {         var current = e.target.dataset.src;     wx.previewImage({               current: current, // 当前显示图片的http链接           urls: this.data.imgUrls // 需要预览的图片http链接列表       })   },    /**    * 生命周期函数--监听页面加载    */   onLoad: function (options) {         var that = this;     goodsId = options.goodsId;         console.log('goodsId:' + goodsId);    //加载商品详情     that.goodsInfoShow();   },   goodsInfoShow: function (success) {         var that = this;     ajax.request({           method: 'GET',           url: 'goods/getGoodsInfo?key=' + utils.key+'&goodsId=' + goodsId,           success: data => {                 var goodsItem = data.result;                 for (var i = 0; i < goodsItem.shopGoodsImageList.length; i++) {             imgUrls[i] = goodsItem.shopGoodsImageList[i].imgUrl;           }                 var details = goodsItem.details.split(";");                 for (var j = 0; j < details.length; j++) {            detailImg[j] = details[j];         }         goods = {                       imgUrls: imgUrls,                       title: goodsItem.name,                       price: goodsItem.price,                       privilegePrice: goodsItem.privilegePrice,                       detailImg: detailImg,                       imgUrl: goodsItem.imgUrl,                       buyRate: goodsItem.buyRate,                       goodsId: goodsId,                       count:1,                       totalMoney: goodsItem.price,         }                  that.setData({                       goods : goods         })                 console.log(goods.title)       }     })   }, })

感谢你能够认真阅读完这篇文章,希望小编分享的“微信小程序商城开发之动态API实现商品的详情页示例”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI