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

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

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

看效果
开发计划

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

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

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

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

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

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

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实现商品的详情页示例”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

(0)

相关推荐

  • 微信小程序实现滑动翻页效果(完整代码)

    这篇文章主要介绍了微信小程序实现滑动翻页效果,本文通过效果图展示实例代码讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 微信小程序实现滑动翻页效果,效果图如下所示: 源码: <vi ...

  • Vue实现简单图轮播效果

    Vue实现简单图轮播效果

  • 商品详情页

    店铺 客服 收藏 加入购物车 立即购买 1/5  详情

  • 小程序.我也不知道起什么名字

    shift+Alt+F格式化代码,随便启用一个就行 wxml 注意这些东西,后问都称之为组件 右击我的乱涂抹的地方,创建一个文件夹 建立一个文件夹,把照片拖动进去.以前不可以直接拖动 改个名字,不要问 ...

  • 两种轮播图实现方式

    最近做了一个网站,首页轮播图一直没有达到理想的效果,在网上找了两个实现方法,一个是用css自己实现,一个是用swiper插件,个人认为swiper做的还比较好用.这里只贴出主要的实现代码,想要看具体实 ...

  • 微信小程序商城开发/高端定制开发,源码重要性

    微信自从出现一直在影响着我们生活的方方面面,从简单的社交.到今天的便民生活服务:从简单的分享.到今天的微商城等等.对于很多中小型企业.甚至是个人商家来说,微信小程序商城可以说是相当方便了. 对于微信小 ...

  • (14条消息) 【系】微信小程序云开发实战坚果商城

    第 2-6 课:前端之商品详情实现 目录 开篇 [系]微信小程序云开发实战坚果商城-开篇 基础篇 [系]微信小程序云开发实战坚果商城-弹性盒子 [系]微信小程序云开发实战坚果商城-ES6 简单入门 [ ...

  • 微信小程序商城项目之多端版,前后端完全分离

    不装逼的程序员 今天 后端部分虽然是PHP的,但是我建议有研究精神的朋友完全可以重构成Java版本,自己搭建框架的能力也就锻炼出来了 新产品发布推荐 现已推出 [ 萤火商城多端版V2.0 ],新系统更 ...

  • 石桥码农:如何在本地基于 nideshop 架设一个微信小程序商城?

    目录 一.首先架构服务器端 二.创建数据库 三.尝试运行后端代码 四.配置数据库连接,与初始化数据 五.小程序这一端,下载.导入.运行 六.问题 架设完成后,产品相貌大概长这个样子: 是仿网易严选的小 ...

  • 企业商家究竟为何要选择微信小程序商城?

    随着微信平台的不断开放发展,微信小程序商城也在不断突破.那么就有很多人会问,是否有必要去做一个小程序商城呢?那么这里小编就来给大家分析几点,看为何值得大家去做? 微信小程序商城在用户体验上更加的人性化 ...

  • 餐饮小程序商城开发有什么好处呢?

    对于线下做餐饮的商家来讲,如今的实体门店生意越来越难做.那么对于这种情况,餐饮小程序商城的出现正好可以解决,但是它对商家究竟有什么好处呢? 1.高效率管理多店铺 目前餐饮店中很大一部分是连锁店,传统的 ...

  • 微信小程序商城分销效果怎么样

    商城小程序分销可以把流量直接转换成商业价值,因此商城分销也吸引了许多的关注.做商城小程序分销怎么样呢?商城分销的模式和流程都不太复杂,就算是没有接触过的人也是可以很快上手的. 什么是商城分销? 商城小 ...

  • 分销功能为微信小程序商城带来哪些优点?

    微信小程序商城的出现,让商家们看到了很多的发展商机.随着分销体系的加入,究竟可以给小程序带来哪些优点呢? 1.低成本 与其他营销方式相比,使用小程序商城进行宣传的成本会更低.分销功能植入小程序商城,商 ...

  • 小程序商城开发需要哪些步骤?

    微信小程序商城如今可以说是非常火,很多商家都想打造属于自己的小程序商城.那么对于小程序商城开发,都有哪些需要做的步骤呢? 1.制定发展目标 商家在做微信小程序商城之前,首先要搞清楚自己做的微信小程序有 ...