首頁 >微信小程式 >小程式開發 >微信小程式商城開發之動態API把商品分類(程式碼)

微信小程式商城開發之動態API把商品分類(程式碼)

不言
不言原創
2018-08-16 16:59:135513瀏覽

這篇文章帶給大家的內容是關於微信小程式商城開發之動態API把商品分類(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

看效果


#商品分類.gif

#開發計畫

1、商品分類頁面佈局

2、呼叫動態API取得資料並載入

#3、點選商品分類跳轉相關商品集合

#依據商品ID取得商品詳情API資料模型

瀏覽:https://100boot.cn/ 選擇微商城案例,如下圖所示:


#商品分類API.jpg

下方還有詳細的資料模型可以查看喔!

classify.wxml

#
<!--主盒子-->
<view class="container">
  <!--左侧栏-->
  <view class="nav_left">
    <block wx:for="{{classifyItems}}">
      <!--当前项的id等于item项的id,那个就是当前状态-->
      <!--用data-index记录这个数据在数组的下标位置,使用data-id设置每个item的id值,供打开2级页面使用-->
      <view class="nav_left_items {{curNav == item.id ? &#39;active&#39; : &#39;&#39;}}" bindtap="switchRightTab" data-index="{{index}}" data-id="{{item.id}}">
          {{item.name}}
        </view>
    </block>
  </view>
  <!--右侧栏-->
  <view class="nav_right">
    <!--如果有数据,才遍历项-->
    <view wx:if="{{classifyItems[curIndex].ishaveChild}}">
      <block wx:for="{{classifyItems[curIndex].shopClassifyDtoList}}">
        <view class="nav_right_items">
        <!--界面跳转 -->
          <navigator url="/pages/classifyGoods/classifyGoods?classifyId={{item.id}}">
            <image src="{{item.imgUrl}}"></image>
            <text>{{item.name}}</text>
          </navigator>
        </view>
      </block>
    </view>
    <!--如果无数据,则显示数据-->
    <view class="nodata_text" wx:else>该分类暂无数据</view>
  </view>
</view>

classify .wxss

/* pages/classify/classify.wxss */
page{  
  background: #f5f5f5;  
}  
/*总体主盒子*/  
.container {  
  position: relative;  
  width: 100%;  
  height: 100%;  
  background-color: #fff;  
  color: #939393;  
}
 /*左侧栏主盒子*/  
.nav_left{  
  /*设置行内块级元素*/  
  position: absolute;   
  /* display: inline-block;     */
  width: 25%;  
  height: 100%;  
  /*主盒子设置背景色为灰色*/  
  background: #f5f5f5;  
  text-align: center;  
  left: 0;
  top:0;
}  
/*左侧栏list的item*/  
.nav_left .nav_left_items{  
    height: 40px;   
   line-height: 40px;   
   padding: 6px 0;   
   border-bottom: 1px solid #dedede;   
   font-size: 14px;   
}  
/*左侧栏list的item被选中时*/  
.nav_left .nav_left_items.active{  
  /*背景色变成白色*/  
  background: #fff;  
  color: #f0145a; 
}  
/*右侧栏主盒子*/  
.nav_right{  
  /*右侧盒子使用了绝对定位*/  
  position: absolute;  
  top: 0;  
  right: 0;  
  flex: 1;  
  /*宽度75%,高度占满,并使用百分比布局*/  
  width: 75%;  
  height: 1000px;  
  padding: 10px;  
  box-sizing: border-box;  
  background: #fff;  
}  
/*右侧栏list的item*/  
.nav_right .nav_right_items{  
  /*浮动向左*/  
  float: left;  
  /*每个item设置宽度是33.33%*/  
  width: 33.33%;  
  height: 120px;  
  text-align: center;  
}  
.nav_right .nav_right_items image{  
  /*被图片设置宽高*/  
  width: 60px;  
  height: 60px;  
  margin-top: 15px;  
}  
.nav_right .nav_right_items text{  
  /*给text设成块级元素*/  
  display: block;  
  margin-top: 15px;  
  font-size: 14px;  
  color: black;
  /*设置文字溢出部分为...*/  
  overflow: hidden;  
  white-space: nowrap;  
  text-overflow: ellipsis;  
} 
.nodata_text
{
  color: black;
  font-size: 14px;  
  text-align: center;  
}
.left_cate {
  display: flex;  
  flex-direction: row;  
  /*每个高30px*/  
  height: 40px;  
  /*垂直居中*/  
  line-height: 40px;  
  /*再设上下padding增加高度,总高42px*/  
  padding: 6px 0;  
  /*只设下边线*/  
  border-bottom: 1px solid #dedede;  
  /*文字14px*/  
  font-size: 14px; 
  background: #fff;  
  color: #f0145a; 
}
 .separate {
  background-color: #f0145a;
  width: 10rpx;
  z-index: 10;
}

classify.js

##

const ajax = require(&#39;../../utils/ajax.js&#39;);
const utils = require(&#39;../../utils/util.js&#39;);
Page({
  /**
   * 页面的初始数据
   */
  data: {
    classifyItems:[],
    curNav: 1,
    curIndex: 0
  },
  //事件处理函数  
  switchRightTab: function (e) {
    // 获取item项的id,和数组的下标值  
    let id = e.target.dataset.id,
      index = parseInt(e.target.dataset.index);
    // 把点击到的某一项,设为当前index  
    this.setData({
      curNav: id,
      curIndex: index
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this;
    that.classifyShow();
  },
  classifyShow: function (success) {
    var that = this;
    ajax.request({
      method: &#39;GET&#39;,
      url: &#39;classify/getShopClassifyList?key=&#39; + utils.key,
      success: data => {
        that.setData({
          classifyItems: data.result
        })
        console.log(data.result)
      }
    })
  },
})

相關推薦:

#微信小程式商城開發之動態API實作特賣商品的串流版面程式碼

#微信小程式商城開發之動態API實現商品的詳情頁的程式碼(下)

以上是微信小程式商城開發之動態API把商品分類(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn