zhashaonan %!s(int64=6) %!d(string=hai) anos
pai
achega
8e54a0f470

+ 9 - 0
app.wxss

@@ -86,6 +86,9 @@ page {
 .f40 {
   font-size: 40rpx;
 }
+.ml4 {
+  margin-left: 4rpx;
+}
 .ml8 {
   margin-left: 8rpx;
 }
@@ -113,6 +116,9 @@ page {
 .mt4 {
   margin-top: 4rpx;
 }
+.mt5 {
+  margin-top: 5rpx;
+}
 .mt8 {
   margin-top: 8rpx;
 }
@@ -152,6 +158,9 @@ page {
 .col2B2B2B {
   color: #2B2B2B;
 }
+.cole73636 {
+  color: #E73636;
+}
 .coleb4e4f {
   color: #EB4E4F
 }

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
areas.js


+ 19 - 7
config.js

@@ -6,20 +6,32 @@ let api = "http://a.lrlz.com/mobile/index.php";
 // let api = "http://192.168.0.200/mobile/index.php";
 
 
-function getReq(data, callback, fail) {
+function getReq(data, callback, method) {
   let options = {
-    client_type: 'ios'
-    // client_type: 'mini'
+    // client_type: 'ios'
+    client_type: 'mini'
   }
   data = Object.assign({}, options, data);
   let session_id = wx.getStorageSync('session_id');
+
+  let header = {
+    'content-type': 'application/json', // 默认值
+    'Cookie': 'MPHPSESSID=' + session_id
+  }
+
+  if(method == 'POST') {
+    header = {
+      'content-type': 'application/x-www-form-urlencoded', // 数据转换成 query string 
+      'Cookie': 'MPHPSESSID=' + session_id
+    }
+  }
+
+
   return wx.request({
     url: api,
     data,
-    header: {
-      'content-type': 'application/json', // 默认值
-      'Cookie': 'MPHPSESSID=' + session_id
-    },
+    method: method || 'GET',
+    header,
     success(res) {
       callback(res.data)
     },

BIN=BIN
image/bonus/advert.png


BIN=BIN
image/bonus/detail_bg.png


BIN=BIN
image/bonus/icon_king.png


BIN=BIN
image/bonus/king.png


+ 10 - 21
pages/addAddress/addAddress.js

@@ -1,5 +1,6 @@
 // pages/addAddress/addAddress.js
 const getReq = require('./../../config.js').getReq
+import trees from '../../areas.js'
 let appInstance = getApp()
 Page({
 
@@ -48,7 +49,14 @@ Page({
         city_id: options.city_id
       })
     }
-    this.getDatas()
+    this.setData({
+      show: false,
+      tree: trees,
+      citys: trees[0].children,
+      districts: trees[0].children[0].children
+    })
+    // this.getDatas()
+    
   },
   toggleChecked() {
     this.setData({
@@ -72,34 +80,16 @@ Page({
     })
   },
   getDatas() {
-    // wx.showLoading({
-    //   title: '加载中',
-    // })
     var self = this
     getReq({
       act: 'app_update',
       op: 'area',
       curpage: 1
     }, function (res) {
-      // wx.hideLoading()
       if (res.code == 200) {
-        let tree
-        if(appInstance.globalData.arrayTree.length) {
-          tree = appInstance.globalData.arrayTree
-        }
-        else {
-          tree = self.arrayToTree(res.datas.areas)
-          appInstance.setArrayTree(tree)
-        }
-        // wx.hideLoading()
         self.setData({
-          areas: res.datas.areas,
-          tree,
-          citys: tree[0].children,
-          districts: tree[0].children[0].children,
-          show: false
+          show: false,
         })
-        
       }
       else {
         wx.showToast({
@@ -223,7 +213,6 @@ Page({
     }, function (res) {
       wx.hideLoading()
       if (res.code == 200) {
-        console.log(res);
         let address_id = res.datas.address_id
         self.setDefault(res, name, phone, area_info, address, address_id)
       }

+ 1 - 2
pages/addAddress/addAddress.wxml

@@ -32,8 +32,7 @@
   </view>
 
   <view class="info_cell-wrap bacfff">
-    <!-- <view class="info_cell"> -->
-        <view class="align_center f28" style="min-height: 112rpx;">
+      <view class="align_center f28" style="min-height: 112rpx;">
       <view class="info_cell_lable">详细地址:</view>
       <view class="info_cell_content align_center">
          <textarea  class="address_input" wx:if="{{!show}}" style="padding: 10rpx 0;" placeholder="请输入详细地址" auto-height bindinput="bindKeyInput" data-value="address" value="{{bindAddress}}"/> 

+ 4 - 1
pages/components/blockItem/blockItem.js

@@ -21,9 +21,12 @@ Component({
   },
 
   ready() {
-    if (!(this.properties.special_datas).hasOwnProperty('fcodes')){
+
+    if (!this.properties.special_datas || !(this.properties.special_datas).hasOwnProperty('fcodes')){
       return;
     }
+
+
     const fcodes = this.properties.special_datas.fcodes;
     const goods_id = this.properties.item_data.data;
     const summery = this.properties.summery;

+ 2 - 1
pages/components/blocks/goods_item/goods_item.js

@@ -24,7 +24,8 @@ Component({
       {
         discounts: discounts_price,
         bonus_price: parseFloat(getSummeryGoods.bonus_price),
-        goods_price: parseFloat(getSummeryGoods.goods_price)
+        goods_price: parseFloat(getSummeryGoods.goods_price),
+        goods_lowest_price: parseFloat(getSummeryGoods.goods_lowest_price)
       }
     )
     this.setData({

+ 11 - 47
pages/components/blocks/goods_item/goods_item.wxml

@@ -1,53 +1,17 @@
 <view class="goods_item" wx:if="{{goods}}">
-<navigator url="/pages/details/details?goods_id={{goods.goods_id}}" hover-class="navigator-hover"> 
-  <view class='goods_thumbnail'>
-      <image class='img'  mode='scaleToFill' src="{{goods.goods_image_url}}"></image>
-      <!-- <view class='opgoods' wx:if="{{goods.is_opgoods}}">{{goods.opgoods_shortdesc}}</view> -->
+  <navigator url="/pages/details/details?goods_id={{goods.goods_id}}" hover-class="navigator-hover">
+    <view class='goods_thumbnail'>
+      <image class='img' mode='scaleToFill' src="{{goods.goods_image_url}}"></image>
       <view class='goods_desc one_line_hidden'>
-          <text>{{goods.goods_jingle}}</text>
-      </view>
-  </view>
-  <view class='goods_box'>
-    <!-- <view class="goods_msg"> </view> -->
-      <view class='goods_name one_line_hidden'>{{goods.goods_mobile_name}}</view>
-          
-      
-      <!-- <view class='goods_desc'>
-          <text>{{goods.goods_jingle}}</text>
-      </view> -->
-   
-    <view class="goods_price col333">
-      <view class="align_center"><text class="f22">员工价</text><text class="f22 t_bold colD45">¥</text><text class="f30 ft_bold colD45">{{goods.goods_lowest_price}}</text></view>
-      <view class="col666 line-through ml20 tm_price">天猫价¥{{goods.goods_price}}</view>
-    </view>
-
-    <!-- <view class="goods_price" wx:if="{{goods.act_type == 0}}">
-      <view>
-        <text class="current_price">¥{{goods.bonus_price}}</text>
-      </view>
-      <view class='deduction'>
-        <view class="original_price">专柜价{{goods.goods_price}}</view>
-        <text class="discount">{{goods.bonus_price == 0 ? "红包全额抵扣" : "红包抵"+goods.discounts+"元"}}</text>
+        <text>{{goods.goods_jingle}}</text>
       </view>
     </view>
-    <view class="goods_price" wx:if="{{goods.act_type == 1}}">
-      <view>
-        <text class="current_price">¥{{goods.bonus_price}}</text>
-      </view>
-      <view>
-        <text class="original_price">专柜价{{goods.goods_price}}</text>
-        <text class="discount">红包抵{{goods.goods_price - goods.bonus_price}}元</text>
+    <view class='goods_box'>
+      <view class='goods_name one_line_hidden'>{{goods.goods_mobile_name}}</view>
+      <view class="goods_price col333">
+        <view class="align_center"><text class="f22">员工价</text><text class="f22 t_bold colD45">¥</text><text class="f30 ft_bold colD45">{{goods.goods_lowest_price}}</text></view>
+        <view class="col666 line-through ml20 tm_price">天猫价¥{{goods.goods_price}}</view>
       </view>
     </view>
-    <view class="goods_price" wx:if="{{goods.act_type == 2}}">
-      <view>
-        <text class="current_price">¥{{goods['goods_promotion_price']}}</text>
-      </view>
-      <view>
-        <text class="original_price">专柜价{{goods.goods_price}}</text>
-        <text class="discount">红包抵{{goods.goods_price - goods.bonus_price}}元</text>
-      </view>
-    </view>   -->
-  </view>
-</navigator>  
-</view>
+  </navigator>
+</view>

+ 1 - 1
pages/components/blocks/goods_item/goods_item.wxss

@@ -112,7 +112,7 @@
 .tm_price {
   font-size: 18rpx;
   height: 42rpx;
-  line-height: 42rpx;
+  line-height: 46rpx;
 }
 
 

+ 25 - 0
pages/components/blocks/twoColumns/twoColumns.js

@@ -0,0 +1,25 @@
+// pages/components/blocks/twoColumns/twoColumns.js
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    summary: {
+      type: Object
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+
+  }
+})

+ 4 - 0
pages/components/blocks/twoColumns/twoColumns.json

@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}

+ 18 - 0
pages/components/blocks/twoColumns/twoColumns.wxml

@@ -0,0 +1,18 @@
+<!--pages/components/blocks/twoColumns/twoColumns.wxml-->
+<view class="goods_item">
+  <navigator url="/pages/details/details?goods_id={{summary.goods_id}}" hover-class="navigator-hover">
+    <view class='goods_thumbnail'>
+      <image class='img' src="{{summary.goods_image_url}}"></image>
+      <view class='goods_desc one_line_hidden'>
+        <text>{{summary.goods_jingle}}</text>
+      </view>
+    </view>
+    <view class='goods_box'>
+      <view class='goods_name one_line_hidden'>{{summary.goods_mobile_name}}</view>
+      <view class="goods_price col333">
+        <view class="align_center"><text class="f22">员工价</text><text class="f22 t_bold colD45">¥</text><text class="f30 ft_bold colD45">{{summary.goods_lowest_price}}</text></view>
+        <view class="col666 line-through ml20 tm_price">天猫价¥{{summary.goods_price}}</view>
+      </view>
+    </view>
+  </navigator>
+</view>

+ 2 - 0
pages/components/blocks/twoColumns/twoColumns.wxss

@@ -0,0 +1,2 @@
+/* pages/components/blocks/twoColumns/twoColumns.wxss */
+@import "../goods_item/goods_item.wxss"

+ 12 - 23
pages/details/details.js

@@ -14,7 +14,6 @@ Page({
     goodsIdMap: '',
     bundleList: '', // 套餐
     getOneSummary: [],
-    webViewUrl: '',
     indicatorDots: true,
     vertical: false,
     autoplay: true,
@@ -46,17 +45,9 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
-    let webViewUrl = `https://passport.lrlz.com/mobile/index.php?act=goods_common&op=detail&goods_id=${options.goods_id}&client_type=ios`
     this.setData({
-      webViewUrl,
       options_goods_id: options.goods_id
     })
-    setInterval(() => {
-      this.setData({
-        countTime: --this.data.countTime
-      })
-    }, 1000);
-
     this.getDatas(options.goods_id)
     var that = this;
     getReq({
@@ -96,10 +87,7 @@ Page({
             goodsIdMap.set(item['goods_id'], item)
           });
         }
-
-
         let oneSummary = self.getOneSummary(res.datas.summary, goods_id)
-        console.log('oneSummary', oneSummary);
         let bundleList = ''
         if (oneSummary['have_bundle']) {
           let bundlingMap = new Map()
@@ -137,10 +125,17 @@ Page({
     })
   },
   getOneSummary(sumarys, goods_id) {
-    let getOneSummary = sumarys.filter((item, index) => {
-      return item.goods_id == goods_id
+    let getOneSummary 
+     sumarys.find((item, index) => {
+      if(item.goods_id == goods_id) {
+        item['bonus_price'] = parseFloat(item['bonus_price'])
+        item['goods_promotion_price'] = parseFloat(item['goods_promotion_price'])
+        item['goods_price'] = parseFloat(item['goods_price'])
+        getOneSummary = item
+      return true
+      }
     })
-    return getOneSummary[0]
+    return getOneSummary
   },
   secSku(e) {
     let goodsId = e.currentTarget.dataset.goodsid
@@ -291,12 +286,6 @@ Page({
     }
 
   },
-  toWebView() {
-    let webViewUrl = encodeURIComponent(this.data.webViewUrl)
-    wx.navigateTo({
-      url: `/pages/webView/webView?url=${webViewUrl}`
-    })
-  },
   animation_flag(e) {
     let cartOrBuy = e.currentTarget.dataset.cartorbuy || 'none'
     let flag = e.currentTarget.dataset.flag
@@ -428,7 +417,6 @@ Page({
       quantity: 1,
       bl_id
     }, function (res) {
-      wx.hideLoading()
       if (res.code == 200) {
         wx.showToast({
           icon: 'none',
@@ -446,7 +434,6 @@ Page({
     })
   },
   swiperImgLoad(e) {
-    wx.hideLoading()
     if (this.data.swiperHeight) return;
     let swiperHeight = e.detail.height / e.detail.width * 750
     this.setData({
@@ -477,10 +464,12 @@ Page({
         animation_flag: false
       })
       setTimeout(() => {
+        console.log('appError:', this.data.options_goods_id);
         this.getDatas(this.data.options_goods_id)
       }, 1500)
     }
     if (app.globalData.backLogin) {
+      console.log('backLogin:', this.data.getOneSummary.goods_id);
       this.getDatas(this.data.getOneSummary.goods_id);
     }
   },

+ 2 - 2
pages/details/details.wxml

@@ -138,13 +138,13 @@
         </view>
         <view class="align_center">
           <text class="f24 col333 mr10">{{datas.common_info.comments_rate}}</text>
-          <block wx:for="{{starSrcs}}" wx:key="*this">
+          <block wx:for="{{starSrcs}}" wx:for-index="idx" wx:key="idx" >
             <image class="star" src="{{item}}"></image>
           </block>
         </view>
       </view>
 
-      <block wx:for="{{comments}}" wx:key="*this" wx:for-index="index">
+      <block wx:for="{{comments}}" wx:key="index" wx:for-index="index">
         <view class="comments_item">
           <view>
             <view class="align_center member_avatar">

+ 3 - 1
pages/login/login.js

@@ -86,8 +86,10 @@ Page({
             let len = getCurrentPages().length
             let prev = getCurrentPages()[len - 2]
             if (prev['route'].indexOf('/pandaBonus/pandaBonus') != -1) {
+              let { type_sn } = prev.options
+              console.log(type_sn);
               wx.redirectTo({
-                url: "/pages/pandaBonus/pandaBonus"
+                url: `/pages/pandaBonus/pandaBonus?type_sn=${type_sn}`
               })
               return
             }

+ 129 - 50
pages/pandaBonus/pandaBonus.js

@@ -15,9 +15,15 @@ Page({
     reveive_info: '',
     binded_info: [], // 领取列表
     msg: '',
-    testsn: '59801536315351351916'
+    testsn: '59801536315351351916',
+    mineid: '',
+    type_sn: '',
+    message_flag: false,
+    input_msg: '',
+    result_msg: '留言',
+    summarys: false
   },
-//bonus_state: 'unstart'// 未开始 
+  //bonus_state: 'unstart'// 未开始 
 
 
   /**
@@ -34,27 +40,33 @@ Page({
     // 55511536307147470142 手气王 一个 随机
 
     // 74561536308128119414 他人领取 点击查看详情
-    if (!app.globalData.userInfo) {
-      wx.navigateTo({
-        url: `/pages/login/login`
-      });
-      return;
-    }
+    // let { type_sn } = options
+    // if (!app.globalData.userInfo) {
+    //   wx.navigateTo({
+    //     url: `/pages/login/login`
+    //   });
+    //   return;
+    // }
 
     console.log('onload');
     let params = {
       act: 'bonusex',
       op: 'open',
-      type_sn: this.data.testsn
+      // type_sn
+      // type_sn: '59801536315351351916'
+      type_sn: '50351536576369995082'
     }
     this.getDatas(params)
+    this.setData({
+      // type_sn
+    })
   },
   detail() {
     console.log('---detail----');
     let params = {
       act: 'bonusex',
       op: 'detail',
-      type_sn: this.data.testsn
+      type_sn: this.data.type_sn
     }
     this.getDatas(params)
   },
@@ -63,20 +75,21 @@ Page({
     let params = {
       act: 'bonusex',
       op: 'grab',
-      type_sn: this.data.testsn
+      // type_sn: this.data.type_sn
+      type_sn: '50351536576369995082'
     }
     this.getDatas(params)
   },
   getDatas(params) {
     let self = this
-    
-    getReq(params, function(res) {
-      if(res.code == 200) {
+
+    getReq(params, function (res) {
+      if (res.code == 200) {
         console.log('params:', params);
         console.log(res);
         let { type_info, bonus_state } = res.datas
-        if(bonus_state == 'unstart')  {
-        // bonus_state: unstart 活动未开始
+        if (bonus_state == 'unstart') {
+          // bonus_state: unstart 活动未开始
           let { send_start_date } = type_info
           self.countTime(params, send_start_date)
           self.setData({
@@ -84,7 +97,7 @@ Page({
           })
           return
         }
-        else if(bonus_state == 'open') {
+        else if (bonus_state == 'open') {
           // open 活动开始, 可以点击, 红包金额有 固定, 随机
           self.setData({
             type_info,
@@ -92,13 +105,21 @@ Page({
           })
           return
         }
-        else if(bonus_state == 'detail') {
+        else if (bonus_state == 'detail') {
           // 已点开状态, 详情
-          let { avatars, mine_bonus } = res.datas
-          let { sender_id,  relayer_id} = type_info
+          let { avatars, mine_bonus, mineid, summarys } = res.datas
+          let { sender_id, relayer_id } = type_info
 
           let sender_head_src = self.senderHead(relayer_id, sender_id, avatars)
           let reveive_info = self.receiveInfo(type_info) // 展示领取信息
+          if(summarys) {
+            summarys = summarys.map(item => {
+              item['goods_lowest_price'] = parseFloat(item['goods_lowest_price'])
+              item['goods_price'] = parseFloat(item['goods_price'])
+              return item
+            })
+          }
+          console.log('summarys:', summarys);
 
           //领取列表
           let binded_info = []
@@ -114,11 +135,13 @@ Page({
             bonus_state,
             mine_bonus,
             reveive_info,
-            binded_info
+            binded_info,
+            mineid: mineid.toString(),
+            summarys
           })
-          return 
+          return
         }
-        else if(bonus_state == 'over') {
+        else if (bonus_state == 'over') {
           console.log('over');
           let { msg } = res.datas
           self.setData({
@@ -127,7 +150,7 @@ Page({
           })
           return
         }
-        else if(bonus_state == 'end') {
+        else if (bonus_state == 'end') {
           console.log('end');
           self.setData({
             type_info,
@@ -162,10 +185,10 @@ Page({
   },
   // 判断手气最佳
   isKing(type_info, bonus_value) {
-    let { total_num, binded_num, send_type, max_amount} = type_info
-    if (send_type != 1)return false;
-    if (parseInt(total_num) != parseInt(binded_num))return false;
-    if (parseInt(max_amount * 100) != parseInt(bonus_value * 100))return false;
+    let { total_num, binded_num, send_type, max_amount } = type_info
+    if (send_type != 1) return false;
+    if (parseInt(total_num) != parseInt(binded_num)) return false;
+    if (parseInt(max_amount * 100) != parseInt(bonus_value * 100)) return false;
     return true
   },
 
@@ -181,34 +204,34 @@ Page({
 
   senderHead(relayer_id, sender_id, avatars) {
     let sender_head_src = '../../image/bonus/female.png'
-    if(relayer_id > 0) {
+    if (relayer_id > 0) {
       sender_head_src = avatars[relayer_id]['avatar']
     }
-    else if(sender_id > 0) {
+    else if (sender_id > 0) {
       sender_head_src = avatars[sender_id]['avatar']
     }
-    
+
     return sender_head_src
   },
   receiveInfo(type_info) {
-    let { total_num, binded_num} = type_info
-    if(total_num == binded_num) {
+    let { total_num, binded_num } = type_info
+    if (total_num == binded_num) {
       // 红包领完了
-      let timestr = `${total_num}个红包,${this.bindedTime(type_info['binded_period'])}` 
+      let timestr = `${total_num}个红包,${this.bindedTime(type_info['binded_period'])}`
       return timestr
     }
     else {
       let timestr = `领取 ${binded_num}/${total_num}`
       let isEndTime = this.isEnd(type_info['send_end_date'])
       if (isEndTime == false) {
-        timestr += ',点击右上角继续分享此红包'
+        timestr += '点击右上角继续分享此红包'
       }
       return timestr
     }
   },
   isEnd(send_end_date) {
     let sendDate = parseInt(send_end_date)
-    if (sendDate === 0){
+    if (sendDate === 0) {
       return false
     }
     else {
@@ -229,7 +252,7 @@ Page({
     let mins = parseInt(period / min)
     period = period % min
 
-    if(period > 0) {
+    if (period > 0) {
       mins += 1
     }
 
@@ -243,7 +266,7 @@ Page({
     if (mins > 0) {
       timestr += `${mins}分钟`
     }
-    timestr += '领完'
+    timestr += '领完'
     return timestr
 
   },
@@ -251,7 +274,7 @@ Page({
 
   countTime(params, send_start_date) {
     let times = parseInt(send_start_date - new Date().getTime() / 1000)
-    if(times <= 0) {
+    if (times <= 0) {
       console.log(times);
       // wx.redirectTo({
       //   url: '/pages/pandaBonus/pandaBonus'
@@ -260,11 +283,11 @@ Page({
       return
     }
     let h = Math.floor(times / 3600)
-        h = this.zero(h)
+    h = this.zero(h)
     let m = Math.floor((times / 60) % 60)
-        m = this.zero(m)
+    m = this.zero(m)
     let s = times % 60
-        s = this.zero(s)
+    s = this.zero(s)
     let renderCount = [h.split(''), m.split(''), s.split('')]
     this.setData({
       renderCount
@@ -275,7 +298,7 @@ Page({
 
   },
   zero(n) {
-    n =  n >= 10 ? n.toString() : '0' + n
+    n = n >= 10 ? n.toString() : '0' + n
     return n
   },
   open() {
@@ -284,47 +307,102 @@ Page({
     })
     this.grab()
   },
+  bindKeyInput(e) {
+    let value = e.detail.value
+    this.setData({
+      input_msg: value
+    })
+  },
+  message_tap(e) {
+    let { flag } = e.currentTarget.dataset
+    console.log(e);
+    this.setData({
+      message_flag: flag
+    })
+  },
+  send_msg() {
+    let self = this
+    let result_msg = this.trim(this.data.input_msg)
+    if (!result_msg) return;
+
+    let params = {
+      act: 'bonusex',
+      op: 'comment',
+      comment: result_msg,
+      bonus_sn: this.data.mine_bonus['bonus_sn']
+    }
+    getReq(params, function (res) {
+      console.log(res);
+      if (res.code == 200) {
+        self.setData({
+          message_flag: false,
+          result_msg
+        })
+      }
+      else {
+        wx.showToast({
+          icon: 'none',
+          title: 'error',
+          duration: 2000
+        })
+        self.setData({
+          message_flag: false,
+          input_msg: ''
+        })
+      }
+    }, 'POST')
+
+
+
+
+
+
+  },
+  trim(str) {
+    str = str.replace(/\s+/g, "")
+    return str
+  },
 
   /**
    * 生命周期函数--监听页面初次渲染完成
    */
   onReady: function () {
-  
+
   },
 
   /**
    * 生命周期函数--监听页面显示
    */
   onShow: function () {
-  
+
   },
 
   /**
    * 生命周期函数--监听页面隐藏
    */
   onHide: function () {
-  
+
   },
 
   /**
    * 生命周期函数--监听页面卸载
    */
   onUnload: function () {
-  
+
   },
 
   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
   onPullDownRefresh: function () {
-  
+
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
   onReachBottom: function () {
-  
+
   },
 
   /**
@@ -332,9 +410,10 @@ Page({
    */
   onShareAppMessage: function () {
     let imageUrl = '../../image/share_bonus.png'
+    let { type_sn } = this.data
     return {
       title: `点一下,你和TA都有红包!`,
-      path: `/pages/pandaBonus/pandaBonus`,
+      path: `/pages/pandaBonus/pandaBonus?type_sn=${type_sn}`,
       imageUrl: imageUrl
     }
   }

+ 6 - 1
pages/pandaBonus/pandaBonus.json

@@ -1 +1,6 @@
-{}
+{
+  "component": true,
+  "usingComponents": {
+    "twoColumns":"../components/blocks/twoColumns/twoColumns"
+  }
+}

+ 59 - 48
pages/pandaBonus/pandaBonus.wxml

@@ -71,11 +71,11 @@
     <view class="bg_content">
       <image class="top_bg" src="../../image/bonus/top_bg.png"></image>
       <view class="mgs_bottom pos_rel over">
-          <view class="f56">{{msg}}</view>
-        </view>
-        <view class="look" catchtap="detail">查看领取详情></view>  
+        <view class="f56">{{msg}}</view>
+      </view>
+      <view class="look" catchtap="detail">查看领取详情></view>
     </view>
-    
+
     <view class="bottom_pro">
       <view class="line_h30">独家运营70多个知名化妆品品牌的天猫官方旗舰店</view>
       <view class="flex_center ht30">
@@ -85,18 +85,18 @@
     </view>
   </view>
 
-   <view class="default_container" wx:if="{{bonus_state == 'end'}}">
+  <view class="default_container" wx:if="{{bonus_state == 'end'}}">
     <view class="dot_left"></view>
     <view class="dot_right"></view>
     <image class="cloud_left" src="../../image/bonus/cloud.png"></image>
     <image class="cloud_right" src="../../image/bonus/cloud.png"></image>
     <view class="bg_content">
       <image class="top_bg" src="../../image/bonus/top_bg.png"></image>
-        <view class="msg_box pos_rel">
-          <view class="name">{{type_info['sender_name']}}</view>
-          <view class="msg mt20">该红包已过期。如已领取,</view>
-          <view class="msg">请在熊猫美妆APP中“我的红包”中查看~</view>
-        </view>
+      <view class="msg_box pos_rel">
+        <view class="name">{{type_info['sender_name']}}</view>
+        <view class="msg mt20">该红包已过期。如已领取,</view>
+        <view class="msg">请在熊猫美妆APP中“我的红包”中查看~</view>
+      </view>
     </view>
     <view class="bottom_pro">
       <view class="line_h30">独家运营70多个知名化妆品品牌的天猫官方旗舰店</view>
@@ -108,28 +108,6 @@
   </view>
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
   <!-- 红包未开封(活动未开始 未开启,已过期) -->
   <!-- <view class="default_container" wx:if="{{bonus_state == 'unstart' || bonus_state == 'open' || bonus_state == 'over'}}">
     <view class="dot_left"></view>
@@ -196,9 +174,9 @@
 
   <!-- 开了后的样式 , 即为 details -->
   <view class="grab_container" wx:if="{{bonus_state == 'detail'}}">
-    <view class="pos_rel">
-      <image class="common_bg" src="https://passport.lrlz.com/data/resource/mobile/bonus/imgaes/content_bg.png"></image>
-      <view class="top_title">熊猫美妆</view>
+    <view class="pos_rel" style="height: 182rpx;">
+      <image class="common_bg" src="../../image/bonus/detail_bg.png"></image>
+      <view class="top_title">熊猫美妆红包</view>
       <image class="sender_head" src="{{sender_head_src}}"></image>
     </view>
     <view class="grab_header">
@@ -208,41 +186,74 @@
       <view class="grab_prompt">{{type_info['type_bless']}}</view>
     </view>
 
-    <view class="mt30" wx:if="{{mine_bonus}}">
-      <view class="f28"><text class="grab_bonus_price">{{mine_bonus['bonus_value']}}</text>元</view>
-    </view>
-
-    <view class="receive_info tb_line">{{reveive_info}}</view>
+    <view class="grab_bonus_price flex_center" wx:if="{{mine_bonus}}">{{mine_bonus['bonus_value']}}<text class="ml4 f30">元</text></view>
+    
+    <view class="receive_info tb_line mt60">{{reveive_info}}</view>
 
     <block wx:if="{{binded_info.length}}">
       <view class="receive_list">
         <view class="receive_item" wx:for="{{binded_info}}" wx:for-index="idx" wx:key="idx">
           <image class="personal_image" src="{{item['avatar']}}"></image>
           <view class="personal_content">
-            <view class="item_paragraph f26 col333"><text>{{item['user_name']}}</text></view>
-            <view class="item_paragraph f22 col333 mt10" wx:if="{{item['discount'] != 0}}">
+            <view class="item_paragraph f30 col333"><text>{{item['user_name']}}</text></view>
+            <view class="item_paragraph f24 col666" wx:if="{{item['discount'] != 0}}">
               <text>已累计节省{{item['discount']}}元</text>
             </view>
-            <view class="item_paragraph f22 col333 mt10" wx:if="{{item['user_comment']}}">
+            <view class="item_paragraph f24 col666" wx:if="{{item['user_comment']}}">
               <text>{{item['user_comment']}}</text>
             </view>
+            <block wx:else>
+              <view wx:if="{{item['user_id'] == mineid}}" class="item_paragraph f24 {{result_msg == '留言' ? 'col2c71c6' : 'col666'}}" catchtap="message_tap" data-flag="true">{{result_msg}}</view>
+            </block>
           </view>
 
           <view class="text_right">
-            <view class="f26 col333">{{item['bonus_value']}}元</view>
-            <view class="f22 mt10 col666">{{item['format_time']}}</view>
-            <view wx:if="{{item['is_king']}}" style="color: #ffad4a;" class="align_center f22">
-              <image class="icon_king" src="../../image/bonus/icon_king.png"></image>手气最佳
-            </view>
+            <view class="item_paragraph f30 col333">{{item['bonus_value']}}元</view>
+            <view wx:if="{{item['is_king']}}" class="item_paragraph f24 cole73636">
+                <image class="icon_king" src="../../image/bonus/king.png"></image>手气最佳
+              </view>
+            <view class="item_paragraph f24 col666">{{item['format_time']}}</view>
+            
           </view>
         </view>
       </view>
     </block>
 
+    <!-- 热卖商品 -->
+
+    <block wx:if="{{summarys}}">
+      <view class="receive_info tb_line mt20">热卖商品</view>
+      <view class="hot_summarys">
+        <block wx:for="{{summarys}}" wx:for-item="summary" wx:for-index="idx" wx:key="idx">
+          <twoColumns summary="{{summary}}"></twoColumns>
+        </block>
+      </view>
+    </block>
+
 
 
     <image class="briefing_address" src="../../image/bonus/advert.png"></image>
   </view>
 
 
+
+
+
+
+
+
+  <!--留言弹窗 -->
+
+  <view class="message_modal" wx:if="{{message_flag == 'true'}}">
+    <view class="modal_bg" catchtouchstart="message_tap" data-flag="false"></view>
+    <view class="message_content">
+      <textarea class="message_info" auto-focus="true" placeholder="写下你想说的话" bindinput="bindKeyInput"></textarea>
+      <view class="btn_group flex_center">
+        <view class="cancel_btn r_line" catchtap="message_tap" data-flag="false">取消</view>
+        <view class="submit_btn" catchtap="send_msg">发送</view>
+      </view>
+    </view>
+  </view>
+
+
 </view>

+ 119 - 38
pages/pandaBonus/pandaBonus.wxss

@@ -156,44 +156,47 @@
   -webkit-overflow-scrolling: touch;
   /* height: 100%; */
   text-align: center;
-  background: #FFFAF5;
+  background: #fff;
   position: relative;
   /* color: #ffe7b8; */
 }
 .common_bg {
   width: 100%;
-  height: 190rpx;
+  height: 182rpx;
 }
 .top_title {
   position: absolute;
+  height: 80rpx;
+  line-height: 80rpx;
   z-index: 1;
   left: 0;
-  top: 16rpx;
+  top: 30rpx;
   width: 100%;
-  font-size: 34rpx;
+  font-size: 36rpx;
   font-weight: bold;
-  color: #FDD9AA;
+  color: #FFEEA6 ;
 }
 .sender_head {
   position: absolute;
   z-index: 1;
   left: 50%;
   bottom: 0;
-  margin-left: -60rpx;
-  margin-bottom: -60rpx;
-  width: 120rpx;
-  height: 120rpx;
-  border-radius: 50%;
+  margin-left: -50rpx;
+  margin-bottom: -50rpx;
+  width: 100rpx;
+  height: 100rpx;
+  border-radius: 6rpx;
 }
 
 .grab_header {
-  margin-top: 80rpx;
+  margin-top: 70rpx;
   padding: 0 30rpx;
 }
 .grab_bonus_name {
-  color: #454545;
-  font-size: 32rpx;
+  color: #333;
+  font-size: 30rpx;
   font-weight: bold;
+  line-height: 45rpx;
 }
 .icon_pin {
   position: relative;
@@ -203,23 +206,26 @@
   height: 30rpx;
 }
 .grab_prompt {
-  margin-top: 20rpx;
-  font-size: 28rpx;
-  color: #7E7E7E;
+  margin-top: 5rpx;
+  font-size: 24rpx;
+  color: #666;
+  line-height: 45rpx;
 }
 
 .grab_bonus_price {
-  font-size: 114rpx;
-  vertical-align: sub;
-  color: #444444;
+  margin-top: 25rpx;
+  height: 98rpx;
+  font-size: 70rpx;
+  /* vertical-align: sub; */
+  color: #E73636;
 }
 .receive_info {
-  margin-top: 20rpx;
-  padding: 0 30rpx;
-  height: 80rpx;
-  line-height: 100rpx;
-  background: #FAF6F1;
-  font-size: 28rpx;
+  padding: 30rpx 30rpx 10rpx;
+  height: 45rpx;
+  line-height: 45rpx;
+  background: #f4f4f4;
+  font-size: 24rpx;
+  color: #666;
   text-align: left;
 }
 .tb_line {
@@ -248,22 +254,18 @@
   position: absolute;
   z-index: 1;
   content: '';
-  left: 30rpx;
+  left: 0;
   right: 0;
   bottom: 0;
   height: 1px;
   background: #d9d9d9;
   transform: scaleY(.5);
 }
-.receive_item:last-child:after {
-  width: 0;
-  height: 0;
-}
 .personal_image {
   width: 80rpx;
   height: 80rpx;
-  border-radius: 50%;
-  margin-right: 28rpx;
+  border-radius: 4rpx;
+  margin-right: 25rpx;
 }
 .personal_content {
   flex: 1;
@@ -274,16 +276,17 @@
 .item_paragraph {
   display: flex;
   align-items: center;
+  height: 45rpx;
   /* justify-content: space-between; */
 }
 .briefing_address {
-  width: 670rpx;
-  height: 60rpx;
-  margin: 48rpx auto 30rpx;
+  width: 660rpx;
+  height: 50rpx;
+  margin: 58rpx auto 30rpx;
 }
 .icon_king {
-  width: 30rpx;
-  height: 30rpx;
+  width: 28rpx;
+  height: 24rpx;
   margin-right: 10rpx;
 }
 .look {
@@ -294,4 +297,82 @@
   text-align: center;
   font-size: 28rpx;
   color: #ffe7b8;
-}
+}
+.message_modal{
+  position: fixed;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  z-index: 999;
+}
+.modal_bg {
+  position: absolute;
+  z-index: 1;
+  width: 100%;
+  height: 100%;
+  background: rgba(0,0,0,.6);
+}
+.message_content {
+  position: absolute;
+  top: 160rpx;
+  left: 100rpx;
+  right: 100rpx;
+  background: #fff; 
+  border-radius: 10rpx; 
+  z-index: 10;
+}
+.message_info {
+  width:100%;
+  height: 160rpx; 
+  padding: 20rpx;
+  box-sizing: border-box;
+  font-size: 24rpx;
+}
+.btn_group {
+  position: relative;
+}
+.btn_group::after {
+  position: absolute;
+  content: '';
+  left: 0;
+  top: 0;
+  z-index: 2;
+  width: 100%;
+  height: 1px;
+  background: #d9d9d9;
+  transform: scaleY(.5);
+}
+.cancel_btn, .submit_btn {
+  text-align: center;
+  height: 80rpx;
+  line-height: 80rpx;
+  flex: 1;
+  font-size: 32rpx;
+}
+.submit_btn {
+  color: #EB4E4F
+}
+.r_line {
+  position: relative;
+}
+.r_line::after {
+  position: absolute;
+  content: '';
+  right: 0;
+  top: 0;
+  bottom: 0;
+  width: 1px;
+  background: #d9d9d9;
+  transform: scaleX(.5);
+}
+.hot_summarys {
+  width:750rpx;
+  display:flex;
+  flex:1;
+  flex-wrap:wrap;
+  text-align: left;
+}
+.col2c71c6 {
+  color: #2C71C6;
+}

+ 8 - 2
pages/person/person.js

@@ -143,9 +143,15 @@ Page({
     // wx.navigateTo({
     //   url: `/pages/shareBonus/shareBonus?url=${url}`
     // })
-
+    // 94811536567748006532 苗哥本地测试
+    // 64031536573511654235
     wx.navigateTo({
-      url: `/pages/pandaBonus/pandaBonus`
+      // url: `/pages/pandaBonus/pandaBonus?type_sn=58971536559275350675`
+      // url: `/pages/pandaBonus/pandaBonus?type_sn=94811536567748006532`
+      url: `/pages/pandaBonus/pandaBonus?type_sn=59801536315351351916`
+
+
+      // url: `/pages/pandaBonus/pandaBonus?type_sn=64031536573511654235` // 测试领取过期红包, 删除信息不显示
     })
   },
   shareWebview() {

+ 12 - 59
pages/shopCart/shopCart.js

@@ -15,6 +15,7 @@ Page({
     special_datas: {},
     prop_special: [],
     summery: [],
+    canShow: false
   },
   onLoad: function () {
 
@@ -36,72 +37,27 @@ Page({
       summery: []
     });
     this.req_datas();
-    // this.getDatas()
-
-    // this.getFavorite()
+    this.getFavorite()
 
   },
   getFavorite() {
     let self = this
-    let session_id = wx.getStorageSync('session_id')
-    wx.request({
-      url:  "https://passport.lrlz.com/mobile/index.php",
-      data: {
-        act: 'member_bonus',
-        op: 'match_goodsex',
-        curpage: 1,
-        client_type: 'ios'
-      },
-      header: {
-        'content-type': 'application/json', // 默认值
-        'Cookie': 'MPHPSESSID=' + session_id
-      },
-      success(res) {
-        console.log(res);
-      }})
-
-
-    // getReq({
-    //   act: 'member_bonus',
-    //   op: 'match_goodsex',
-    //   curpage: 1
-    // }, function (res) {
-    //   console.log(res);
-    //   if (res.code == 200) {
-    //     console.log(res)
-    //     let special_datas = res.datas
-    //     let prop_special = res.datas.special_list
-    //     let summery = res.datas.summary
-    //     self.setData({
-    //       special_datas,
-    //       prop_special,
-    //       summery
-    //     })
-    //   }
-    // })
-  },
-  getDatas() {
-    let self = this;
-    wx.showLoading({
-      title: '加载中',
-    })
-
     getReq({
-      act: 'cart',
-      op: 'list',
-      minest_cartid: self.data.curpage
+      act: 'member_bonus',
+      op: 'match_goodsex',
+      curpage: 1
     }, function (res) {
       if (res.code == 200) {
-        wx.hideLoading()
-        let { cart_list, summary, bundling } = res.datas
-        let n_cart_list = self.getCartList(cart_list, summary, bundling)
+        let special_datas = res.datas
+        let prop_special = res.datas.special_list
+        let summery = res.datas.summary
         self.setData({
-          n_cart_list
+          special_datas,
+          prop_special,
+          summery
         })
-
       }
     })
-
   },
   getCartList(cart_list, summary, bundling) {
     let summaryMap = new Map()
@@ -132,10 +88,6 @@ Page({
         let cart_list = res.datas.cart_list;
 
         let bundling = res.datas.bundling
-        // let { cart_list, summary, bundling } = res.datas
-        // let n_cart_list = self.getCartList(cart_list, summary, bundling)
-
-
         let summary = [];
         if (cart_list.length <= 0) {
           self.setData({
@@ -164,6 +116,7 @@ Page({
         }
         else {
           self.setData({
+            canShow: true,
             hasmore: false
           })
         }

+ 75 - 69
pages/shopCart/shopCart.wxml

@@ -1,5 +1,5 @@
 <import src="../components/template/loadAnimation/loadAnimation.wxml" />
-<template is="shopcartLoad" wx:if="{{loadAnimation}}"/>
+<template is="shopcartLoad" wx:if="{{loadAnimation}}" />
 
 <view style='background:#fff;' wx:if="{{summary.length <= 0}}">
   <view class='flex_center'>
@@ -14,91 +14,97 @@
 </view>
 <view class='cart_list'>
   <block wx:for="{{cart_list}}" wx:key="*this">
-  <!-- 套餐情况下循环 -->
-  <block wx:if="{{item['bl_id'] > 0}}">
-    <view class="mb10">
-    <view class="bundl_title">{{item['bl_name']}}</view>
-    <view class='cart_item'>
-      <icon class='cancal_btn' type="cancel" size="22" color="#333" bindtap='cancal_cart' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}"></icon>
-      <view class='check_btn' data-goodsid="{{item['goods_id']}}" bindtap='goods_checked'>
-        <block wx:if="{{item['checked']}}">
-          <icon type="success" size="21" color="#333"></icon>
-        </block>
-        <block wx:else>
-          <view class="icon_empty"></view>
-        </block>
-      </view>
-
-      <view>
-        <view class="align_center mb20" wx:for="{{item['goods']}}" wx:for-index="bl_index" wx:for-item="bl_item" wx:key="bl_index">
-          <view class='goods_image' catchtap="toDetails" data-goodsid="{{bl_item['goods_id']}}">
-            <image mode='scaleToFill' src="{{bl_item['goods_summary']['goods_image_url']}}"></image>
+    <!-- 套餐情况下循环 -->
+    <block wx:if="{{item['bl_id'] > 0}}">
+      <view class="mb10">
+        <view class="bundl_title">{{item['bl_name']}}</view>
+        <view class='cart_item'>
+          <icon class='cancal_btn' type="cancel" size="22" color="#333" bindtap='cancal_cart' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}"></icon>
+          <view class='check_btn' data-goodsid="{{item['goods_id']}}" bindtap='goods_checked'>
+            <block wx:if="{{item['checked']}}">
+              <icon type="success" size="21" color="#333"></icon>
+            </block>
+            <block wx:else>
+              <view class="icon_empty"></view>
+            </block>
           </view>
-          <view class='goods_content' catchtap="toDetails" data-goodsid="{{bl_item['goods_id']}}">
-            <view class='goods_name one_line_hidden'>{{bl_item['goods_summary']['goods_mobile_name']}}</view>
-            <view class='goods_spec one_line_hidden'>{{bl_item['goods_summary']['goods_spec']}}</view>
-            <view class='goods_price'>
-              <text class="bonus_price">¥{{bl_item['bl_goods_price']}}</text>
-              <text class="original_price">天猫价{{bl_item['goods_summary']['goods_price']}}</text>
+
+          <view>
+            <view class="align_center mb20" wx:for="{{item['goods']}}" wx:for-index="bl_index" wx:for-item="bl_item" wx:key="bl_index">
+              <view class='goods_image' catchtap="toDetails" data-goodsid="{{bl_item['goods_id']}}">
+                <image mode='scaleToFill' src="{{bl_item['goods_summary']['goods_image_url']}}"></image>
+              </view>
+              <view class='goods_content' catchtap="toDetails" data-goodsid="{{bl_item['goods_id']}}">
+                <view class='goods_name one_line_hidden'>{{bl_item['goods_summary']['goods_mobile_name']}}</view>
+                <view class='goods_spec one_line_hidden'>{{bl_item['goods_summary']['goods_spec']}}</view>
+                <view class='goods_price'>
+                  <text class="bonus_price">¥{{bl_item['bl_goods_price']}}</text>
+                  <text class="original_price">天猫价{{bl_item['goods_summary']['goods_price']}}</text>
+                </view>
+              </view>
             </view>
           </view>
+          <view class='num_handle align_center'>
+            <text class='handle_btn' bindtap='goods_num_handle' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}"
+              data-function='minus' data-num="{{item['goods_num']}}">-</text>
+            <block>
+              <text class='num'>{{item['goods_num']}}</text>
+            </block>
+            <text class='handle_btn' bindtap='goods_num_handle' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}"
+              data-function='add' data-num="{{item['goods_num']}}">+</text>
+          </view>
         </view>
+        <view class="bundle_price"><text>套装价:</text><text class="ft_bold col333">¥{{item['bl_price']}}</text> <text class="line-through col666 ml10">天猫价{{item['totalPrice']}}</text></view>
       </view>
-      <view class='num_handle align_center'>
-        <text class='handle_btn' bindtap='goods_num_handle' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}" data-function='minus' data-num="{{item['goods_num']}}">-</text>
-        <block>
-          <text class='num'>{{item['goods_num']}}</text>
-        </block>
-        <text class='handle_btn' bindtap='goods_num_handle' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}" data-function='add' data-num="{{item['goods_num']}}">+</text>
-      </view>
-    </view>
-    <view class="bundle_price"><text>套装价:</text><text class="ft_bold col333">¥{{item['bl_price']}}</text> <text class="line-through col666 ml10">天猫价{{item['totalPrice']}}</text></view>
-  </view>
-  </block>
+    </block>
 
-  <!-- 非套餐情况下循环 -->
-  <block wx:if="{{item['bl_id'] == 0}}">
-    <view class='cart_item mb10'>
-      <icon class='cancal_btn' type="cancel" size="22" color="#333" bindtap='cancal_cart' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}"></icon>
-      <view class='check_btn' data-goodsid="{{item['goods_id']}}" bindtap='goods_checked'>
-        <block wx:if="{{item['checked']}}">
+    <!-- 非套餐情况下循环 -->
+    <block wx:if="{{item['bl_id'] == 0}}">
+      <view class='cart_item mb10'>
+        <icon class='cancal_btn' type="cancel" size="22" color="#333" bindtap='cancal_cart' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}"></icon>
+        <view class='check_btn' data-goodsid="{{item['goods_id']}}" bindtap='goods_checked'>
+          <block wx:if="{{item['checked']}}">
             <icon type="success" size="21" color="#333"></icon>
           </block>
           <block wx:else>
             <view class="icon_empty"></view>
           </block>
-      </view>
-      <view class='goods_image' catchtap="toDetails" data-goodsid="{{item['goods_id']}}">
-        <image mode='scaleToFill' src="{{item['goods_summary']['goods_image_url']}}"></image>
-      </view>
-      <view class='goods_content' catchtap="toDetails" data-goodsid="{{item['goods_id']}}">
-        <view class='goods_name one_line_hidden'>{{item['goods_summary']['goods_mobile_name']}}</view>
-        <view class='goods_spec one_line_hidden'>{{item['goods_summary']['goods_spec']}}</view>
-        <view class='goods_price'>
-          <text class="bonus_price" wx:if="{{item['goods_summary']['act_type'] == 0}}">¥{{item['goods_summary']['bonus_price']}}</text>
-          <text class="original_price" wx:if="{{item['goods_summary']['act_type'] == 2}}">天猫价{{item['goods_summary']['goods_promotion_price']}}</text>
+        </view>
+        <view class='goods_image' catchtap="toDetails" data-goodsid="{{item['goods_id']}}">
+          <image mode='scaleToFill' src="{{item['goods_summary']['goods_image_url']}}"></image>
+        </view>
+        <view class='goods_content' catchtap="toDetails" data-goodsid="{{item['goods_id']}}">
+          <view class='goods_name one_line_hidden'>{{item['goods_summary']['goods_mobile_name']}}</view>
+          <view class='goods_spec one_line_hidden'>{{item['goods_summary']['goods_spec']}}</view>
+          <view class='goods_price'>
+            <text class="bonus_price" wx:if="{{item['goods_summary']['act_type'] == 0}}">¥{{item['goods_summary']['bonus_price']}}</text>
+            <text class="original_price" wx:if="{{item['goods_summary']['act_type'] == 2}}">天猫价{{item['goods_summary']['goods_promotion_price']}}</text>
+          </view>
+        </view>
+        <view class='num_handle'>
+          <text class='handle_btn' bindtap='goods_num_handle' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}"
+            data-function='minus' data-num="{{item['goods_num']}}">-</text>
+          <block>
+            <text class='num'>{{item['goods_num']}}</text>
+          </block>
+          <text class='handle_btn' bindtap='goods_num_handle' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}"
+            data-function='add' data-num="{{item['goods_num']}}">+</text>
         </view>
       </view>
-      <view class='num_handle'>
-        <text class='handle_btn' bindtap='goods_num_handle' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}" data-function='minus' data-num="{{item['goods_num']}}">-</text>
-        <block>
-          <text class='num'>{{item['goods_num']}}</text>
-        </block>
-        <text class='handle_btn' bindtap='goods_num_handle' data-goodsid="{{item['goods_id']}}" data-cartid="{{item['cart_id']}}" data-function='add' data-num="{{item['goods_num']}}">+</text>
-      </view>
-    </view>
-  
+
+    </block>
   </block>
-</block>
-  <view class='clear_fixed'></view>
-</view>
 
-<!-- 猜你喜欢 -->
-<view v-if="{{prop_special.length}}">
-  <view class="text_center l_height42 f30 col333">-猜你喜欢-</view>
-  <blockList prop_special="{{prop_special}}" summery="{{summery}}" special_datas="{{special_datas}}"> </blockList>
 </view>
 
+<!-- 猜你喜欢 -->
+<block wx:if="{{canShow}}">
+  <view wx:if="{{prop_special.length}}" class="mt20">
+    <view class="text_center l_height42 f30 col333">-猜你喜欢-</view>
+    <blockList prop_special="{{prop_special}}" summery="{{summery}}" special_datas="{{special_datas}}"> </blockList>
+  </view>
+</block>
+<view class='clear_fixed'></view>
 
 <view class="handle_fixed">
   <view class="all_check_btn" bindtap='all_checked'>