微信产品详情php源码,微信小程序商城开发之动态API实现商品的详情页的代码(上)...

本文介绍如何在微信小程序中开发商品详情页,包括布局实现(商品图片轮播、价格和描述、商品详情展示)、动态加载商品数据API,并提供详细代码示例。在`onLoad`函数中通过商品ID获取商品详情,使用`ajax`请求数据并展示在页面上。
摘要由CSDN通过智能技术生成

本篇文章给大家带来的内容是关于微信小程序商城开发之动态API实现商品的详情页的代码(上) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

看效果

fc293e8e1143d2a9f43a0d0730d63949.gif

开发计划

1、实现商品详情页面布局(这篇实现3个模块,头部商品图片轮播、商品价格和商品描述、商品详情展示)

2、根据用户点击不同的商品请求API动态加载数据

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

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

51c01a8ce376039f9a94c829898a7574.png

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

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

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

71e2b22137b923e4abe862e776933e7a.png

detail.wxml

{{goods.title}}

¥{{goods.price}}

原价¥{{goods.privilegePrice}}

商品详情

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)

}

})

},

})

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值