作者 朱振飞

开放商城

1 <scroll-view scroll-y="true" style="height:100%" bindscroll="scroll" scroll-top="{{scrollTop}}" bindscrolltolower="loadMore"> 1 <scroll-view scroll-y="true" style="height:100%" bindscroll="scroll" scroll-top="{{scrollTop}}" bindscrolltolower="loadMore">
2 <view class='page'> 2 <view class='page'>
3 <view class='top'> 3 <view class='top'>
4 - <navigator class='search_box' url="/pages/search/search"> 4 + <navigator class='search_box' url="/packageA/pages/search/search">
5 <image src='/images/search.png' class='search_icon'></image> 5 <image src='/images/search.png' class='search_icon'></image>
6 <input class='real_search' placeholder='搜索您想要的商品'></input> 6 <input class='real_search' placeholder='搜索您想要的商品'></input>
7 </navigator> 7 </navigator>
@@ -57,7 +57,7 @@ @@ -57,7 +57,7 @@
57 <view class="active flexone"> 57 <view class="active flexone">
58 <view wx:for="{{activity}}" class="actbox" wx:key="" bindtap="seeactive" data-id="{{item.id}}"> 58 <view wx:for="{{activity}}" class="actbox" wx:key="" bindtap="seeactive" data-id="{{item.id}}">
59 <view class="activeitem"> 59 <view class="activeitem">
60 - <image src="{{item.image}}"></image> 60 + <image src="{{item.image}}" mode="widthFix"></image>
61 </view> 61 </view>
62 <view class="activename">{{item.name}}</view> 62 <view class="activename">{{item.name}}</view>
63 </view> 63 </view>
@@ -359,15 +359,15 @@ image { @@ -359,15 +359,15 @@ image {
359 } 359 }
360 360
361 .activeitem { 361 .activeitem {
362 - width: 215rpx;  
363 - height: 220rpx; 362 + width: 220rpx;
  363 + /* height: 220rpx; */
364 font-size: 0; 364 font-size: 0;
365 display: flex; 365 display: flex;
366 justify-content: center; 366 justify-content: center;
367 align-items: center; 367 align-items: center;
368 border-radius: 16rpx; 368 border-radius: 16rpx;
369 margin-right: 24rpx; 369 margin-right: 24rpx;
370 - margin: 0 auto; 370 + margin: 16rpx auto;
371 } 371 }
372 372
373 .activeitem image { 373 .activeitem image {
@@ -375,13 +375,16 @@ image { @@ -375,13 +375,16 @@ image {
375 } 375 }
376 376
377 .actbox { 377 .actbox {
378 - width: 218rpx; 378 + /* width: 218rpx; */
  379 + flex: 1;
379 display: flex; 380 display: flex;
380 justify-content: center; 381 justify-content: center;
381 flex-direction: column; 382 flex-direction: column;
382 align-items: center; 383 align-items: center;
383 margin-right: 16rpx; 384 margin-right: 16rpx;
384 - 385 +}
  386 +.actbox:last-child{
  387 + margin-right: 0;
385 } 388 }
386 389
387 image { 390 image {
@@ -7,6 +7,7 @@ Page({ @@ -7,6 +7,7 @@ Page({
7 data: { 7 data: {
8 info:[], 8 info:[],
9 item:'', 9 item:'',
  10 + detail:{},
10 sel:0 11 sel:0
11 }, 12 },
12 // 获取页面信息 13 // 获取页面信息
@@ -19,7 +20,8 @@ Page({ @@ -19,7 +20,8 @@ Page({
19 app.post(url,params).then((res)=>{ 20 app.post(url,params).then((res)=>{
20 console.log(res) 21 console.log(res)
21 this.setData({ 22 this.setData({
22 - info: res.msg.kuaidi 23 + info: res.msg.kuaidi,
  24 + detail:res.msg
23 }) 25 })
24 this.setData({ 26 this.setData({
25 item: res.msg.kuaidi[0] 27 item: res.msg.kuaidi[0]
1 <!-- 商品 --> 1 <!-- 商品 -->
2 <view class="block"> 2 <view class="block">
3 -<view> 3 + <view>
4 <!-- <view class="show_good"> 4 <!-- <view class="show_good">
5 <image src="{{item.kuaidi.product_image}}" mode="aspectFill"/> 5 <image src="{{item.kuaidi.product_image}}" mode="aspectFill"/>
6 <view class="dai" wx:if="{{item.kuaidi.State==0}}">待取件</view> 6 <view class="dai" wx:if="{{item.kuaidi.State==0}}">待取件</view>
@@ -12,29 +12,36 @@ @@ -12,29 +12,36 @@
12 12
13 <!-- 物流 --> 13 <!-- 物流 -->
14 <view class="logistics"> 14 <view class="logistics">
15 - <view class="info" >  
16 - <view class="right" wx:for="{{info}}" wx:key='' bindtap="selectinfo" data-index="{{index}}">  
17 - <view class="name {{sel==index?'selactive':''}}">{{item.kuaidi.name}}</view>  
18 - <view class="order_num {{sel==index?'selactive':''}}">快递单号:{{item.kuaidi.LogisticCode}}</view> 15 + <view class="address_info" wx:if="{{info.length>1}}">【收获地址】{{detail.address_area}}{{detail.address_address}} {{detail.address_mobile}}
19 </view> 16 </view>
20 - 17 + <view class="info" wx:for="{{info}}" wx:key='' bindtap="selectinfo" data-index="{{index}}">
  18 + <view class="right">
  19 + <view class="name">
  20 + <text>{{item.kuaidi.name}} {{item.kuaidi.LogisticCode}}</text>
  21 + <text class="copyAction" bindtap="copy" data-num="{{item.kuaidi.LogisticCode}}">复制</text>
  22 + </view>
  23 + <view class="pack">当前快递含有{{item.kuaidi.State}}个商品</view>
21 </view> 24 </view>
22 -  
23 <view class="order_box"> 25 <view class="order_box">
24 - <view class="order_item" wx:for="{{item.kuaidi.Traces}}" wx:key="index"> 26 + <!-- <view class="order_item" wx:for="{{item.kuaidi.Traces}}" wx:key="index"> -->
  27 + <view class="order_item" >
25 <view class="time_box"> 28 <view class="time_box">
26 - <view class="date">{{item.AcceptTime}}</view> 29 + <view class="date">item.AcceptTime11111</view>
27 </view> 30 </view>
28 <view class="status_img"> 31 <view class="status_img">
29 <image src="/images/icon_62.png" /> 32 <image src="/images/icon_62.png" />
30 <view class="line" /> 33 <view class="line" />
31 </view> 34 </view>
32 <view class="status_info"> 35 <view class="status_info">
33 - <view class="status_word">{{item.Remark?item.Remark:''}}</view>  
34 - <view class="status_word">{{item.AcceptStation}}</view> 36 + <!-- <view class="status_word">{{item.Remark?item.Remark:''}}111111</view>
  37 + <view class="status_word">{{item.AcceptStation}}11111111111</view> -->
  38 + <view class="status_word">111111</view>
  39 + <view class="status_word">11111111111</view>
35 </view> 40 </view>
36 </view> 41 </view>
37 </view> 42 </view>
  43 + <view class="look_more" wx:if="{{item.kuaidi.Traces.length>2}}" bindtap="lookMoreInfo" data-index='{{index}}'>点击查看更多物流详情</view>
  44 + </view>
  45 + </view>
38 </view> 46 </view>
39 -</view>  
40 </view> 47 </view>
@@ -29,18 +29,17 @@ page { @@ -29,18 +29,17 @@ page {
29 29
30 .logistics { 30 .logistics {
31 width: 686rpx; 31 width: 686rpx;
32 - background: rgba(255, 255, 255, 1);  
33 border-radius: 10px; 32 border-radius: 10px;
34 margin: 20rpx auto 0; 33 margin: 20rpx auto 0;
35 } 34 }
36 35
37 .info { 36 .info {
38 width: 100%; 37 width: 100%;
  38 + background: #FFF;
39 padding: 30rpx 32rpx; 39 padding: 30rpx 32rpx;
  40 + margin-bottom:20rpx;
40 box-sizing: border-box; 41 box-sizing: border-box;
41 - display: flex;  
42 align-items: center; 42 align-items: center;
43 - border-bottom: 1px solid #ccc;  
44 overflow-x: scroll 43 overflow-x: scroll
45 } 44 }
46 45
@@ -51,14 +50,18 @@ page { @@ -51,14 +50,18 @@ page {
51 margin-right: 20rpx; 50 margin-right: 20rpx;
52 } 51 }
53 .right{ 52 .right{
54 - width:400rpx; 53 + width:100%;
55 margin-right: 30rpx; 54 margin-right: 30rpx;
  55 + padding: 10px 0;
  56 +
56 } 57 }
57 .name{ 58 .name{
58 font-size: 30rpx; 59 font-size: 30rpx;
59 font-family: PingFang SC; 60 font-family: PingFang SC;
60 font-weight: 400; 61 font-weight: 400;
61 color: rgba(19, 26, 46, 1); 62 color: rgba(19, 26, 46, 1);
  63 + display: flex;
  64 + justify-content: space-between;
62 } 65 }
63 66
64 /* .info .right { 67 /* .info .right {
@@ -174,3 +177,21 @@ page { @@ -174,3 +177,21 @@ page {
174 .dai{ 177 .dai{
175 margin-left:20rpx; 178 margin-left:20rpx;
176 } 179 }
  180 +.copyAction{
  181 + color: #a59696;
  182 +}
  183 +.address_info{
  184 + color: #666;
  185 + margin-bottom: 20px;
  186 + margin-top: 20px;
  187 +}
  188 +.look_more{
  189 + color: #a59696;
  190 + font-size: 24rpx;
  191 + text-align: center;
  192 +}
  193 +.pack{
  194 + color: #bdb7b7;
  195 + font-size: 24rpx;
  196 + margin-top: 8rpx;
  197 +}
@@ -8,6 +8,7 @@ Page({ @@ -8,6 +8,7 @@ Page({
8 success: false, 8 success: false,
9 fail: false, 9 fail: false,
10 name: '', 10 name: '',
  11 + choudanNum:0,
11 addressId: 0, 12 addressId: 0,
12 tel: '', 13 tel: '',
13 area: '', 14 area: '',
@@ -35,35 +36,71 @@ Page({ @@ -35,35 +36,71 @@ Page({
35 let index = e.currentTarget.dataset.index 36 let index = e.currentTarget.dataset.index
36 let id = e.currentTarget.dataset.id 37 let id = e.currentTarget.dataset.id
37 let check = e.currentTarget.dataset.check 38 let check = e.currentTarget.dataset.check
38 - let coudan = this.data.coudan  
39 - let coudan_arr = this.data.coudan_arr 39 + let coudan = this.data.coudan||[]
  40 + let coudan_arr = this.data.coudan_arr||[]
  41 + let price = e.currentTarget.dataset.price;
  42 + let price2 = e.currentTarget.dataset.price2;
  43 +
40 if (type == 1) { 44 if (type == 1) {
  45 + if(this.data.info.choudan*100<(price*100)){
  46 + wx.showToast({
  47 + title: '当前剩余积分不足,请重新挑选',
  48 + icon:'none'
  49 + })
  50 + return
  51 + }
41 num++ 52 num++
42 } else { 53 } else {
43 num-- 54 num--
44 if (num < 0) { 55 if (num < 0) {
  56 + num = 0;
45 return 57 return
46 } 58 }
47 } 59 }
48 - that.setData({  
49 - [`info.coudanProduct[${index}].num`]: num 60 +
  61 + if (num<1) {
  62 + coudan.forEach((item, index) => {
  63 + if (item.id == id) {
  64 + coudan.splice(index, 1)
  65 + coudan_arr.splice(index, 1)
  66 + }
50 }) 67 })
51 - if (check) { 68 + } else {
  69 + if(type==1&&num==1){
  70 + //选中
  71 + coudan.push({
  72 + id: id,
  73 + num: num
  74 + })
  75 + coudan_arr.push({
  76 + id: id,
  77 + num: num,
  78 + price: Number(price),
  79 + price2:Number(price2)
  80 + })
  81 + }else{
52 coudan.forEach((item, index) => { 82 coudan.forEach((item, index) => {
53 if (item.id == id) { 83 if (item.id == id) {
54 item.num = num 84 item.num = num
55 coudan_arr[index].num = num 85 coudan_arr[index].num = num
56 } 86 }
57 }) 87 })
58 - this.get_choudan()  
59 } 88 }
  89 +
  90 + }
  91 + that.setData({
  92 + coudan: coudan,
  93 + coudan_arr: coudan_arr,
  94 + [`info.coudanProduct[${index}].num`]: num
  95 + // [`info.coudanProduct[${index}].check`]: check
  96 + })
  97 + this.get_choudan()
60 }, 98 },
61 // 计算凑单费用 99 // 计算凑单费用
62 get_choudan() { 100 get_choudan() {
63 let coudan_arr = this.data.coudan_arr 101 let coudan_arr = this.data.coudan_arr
64 let choudan_money = 0; 102 let choudan_money = 0;
65 -  
66 - 103 + let num = 0
67 for (let obj of coudan_arr) { 104 for (let obj of coudan_arr) {
68 console.log(obj) 105 console.log(obj)
69 console.log(obj.price2) 106 console.log(obj.price2)
@@ -74,14 +111,13 @@ Page({ @@ -74,14 +111,13 @@ Page({
74 console.log(222) 111 console.log(222)
75 choudan_money = (obj.price * 100 * obj.num) / 100 + choudan_money 112 choudan_money = (obj.price * 100 * obj.num) / 100 + choudan_money
76 } 113 }
  114 + num = num+obj.num
77 } 115 }
78 116
79 - console.log(typeof (choudan_money))  
80 - console.log(choudan_money)  
81 -  
82 -  
83 this.setData({ 117 this.setData({
84 - choudan_money: choudan_money*100 118 + choudan_money: choudan_money*100,
  119 + choudanNum:num,
  120 + 'info.choudan': this.data.info.syjf - choudan_money
85 // choudan_money: Math.floor(choudan_money* 100) / 100 121 // choudan_money: Math.floor(choudan_money* 100) / 100
86 }) 122 })
87 }, 123 },
@@ -167,9 +203,11 @@ Page({ @@ -167,9 +203,11 @@ Page({
167 } 203 }
168 app.post(url, params).then((res) => { 204 app.post(url, params).then((res) => {
169 console.log('99999', res, Number(res.msg.total)) 205 console.log('99999', res, Number(res.msg.total))
170 - 206 + res.msg.syjf = res.msg.choudan - res.msg.yunfei
  207 + res.msg.choudan = res.msg.choudan - res.msg.yunfei
171 res.msg.total = Number(res.msg.total * 100) 208 res.msg.total = Number(res.msg.total * 100)
172 res.msg.yunfei = Number(res.msg.yunfei * 100) 209 res.msg.yunfei = Number(res.msg.yunfei * 100)
  210 +
173 let total = (res.msg.total + res.msg.yunfei).toFixed("1"); 211 let total = (res.msg.total + res.msg.yunfei).toFixed("1");
174 console.log(total) 212 console.log(total)
175 213
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 <view class="address_box" wx:if="{{info.address}}" bindtap="add_address"> 3 <view class="address_box" wx:if="{{info.address}}" bindtap="add_address">
4 <view class="name">{{info.address.name}} 4 <view class="name">{{info.address.name}}
5 <text>{{info.address.tel}}</text> 5 <text>{{info.address.tel}}</text>
  6 + <text>{{info.address.b_tel||""}}</text>
6 </view> 7 </view>
7 <view class="address"> 8 <view class="address">
8 <image class="tips_img" src="/images/icon_54.png" /> 9 <image class="tips_img" src="/images/icon_54.png" />
@@ -26,7 +27,7 @@ @@ -26,7 +27,7 @@
26 <view class='recommend' wx:if="{{info.coudanProduct.length>0}}"> 27 <view class='recommend' wx:if="{{info.coudanProduct.length>0}}">
27 <view class='re_one'>*您支付后还剩{{info.choudan}}积分为您推荐了以下凑单产品!</view> 28 <view class='re_one'>*您支付后还剩{{info.choudan}}积分为您推荐了以下凑单产品!</view>
28 <scroll-view class='re_goods' scroll-x scroll-left="0"> 29 <scroll-view class='re_goods' scroll-x scroll-left="0">
29 - <view class='re_item' wx:for='{{info.coudanProduct}}' wx:key='index' bindtap='chooseGoods' data-index="{{index}}" data-id="{{item.id}}" data-num="{{item.num?item.num:1}}" data-check='{{item.check}}' data-price='{{item.price}}' data-price2="{{item.price2}}"> 30 + <view class='re_item' wx:for='{{info.coudanProduct}}' wx:key='index' data-index="{{index}}" data-id="{{item.id}}" data-num="{{item.num?item.num:1}}" data-check='{{item.check}}' data-price='{{item.price}}' data-price2="{{item.price2}}">
30 <view class='re_re_item {{item.check?"active":""}}'> 31 <view class='re_re_item {{item.check?"active":""}}'>
31 <view class='triangle' wx:if='{{item.check}}'> 32 <view class='triangle' wx:if='{{item.check}}'>
32 <image src='/images/bingo.png' class='bingo'></image> 33 <image src='/images/bingo.png' class='bingo'></image>
@@ -42,9 +43,9 @@ @@ -42,9 +43,9 @@
42 43
43 <!-- 数量操作 --> 44 <!-- 数量操作 -->
44 <view class="num_box"> 45 <view class="num_box">
45 - <image class="num_btn" src="/images/reduce.png" data-check='{{item.check}}' wx:if="{{item.num}}" data-index="{{index}}" data-id="{{item.id}}" data-type="0" data-num="{{item.num?item.num:0}}" catchtap="num_change" /> 46 + <image class="num_btn" src="/images/reduce.png" data-check='{{item.check}}' wx:if="{{item.num}}" data-index="{{index}}" data-id="{{item.id}}" data-type="0" data-num="{{item.num?item.num:0}}" catchtap="num_change" data-price='{{item.price}}' data-price2="{{item.price2}}" />
46 <text wx:if="{{item.num}}" >{{item.num?item.num:0}}</text> 47 <text wx:if="{{item.num}}" >{{item.num?item.num:0}}</text>
47 - <image class="num_btn" src="/images/add.png" data-check='{{item.check}}' data-index="{{index}}" data-id="{{item.id}}" data-type="1" data-num="{{item.num?item.num:0}}" catchtap="num_change" /> 48 + <image class="num_btn" src="/images/add.png" data-check='{{item.check}}' data-index="{{index}}" data-id="{{item.id}}" data-type="1" data-num="{{item.num?item.num:0}}" catchtap="num_change" data-price='{{item.price}}' data-price2="{{item.price2}}" />
48 </view> 49 </view>
49 </view> 50 </view>
50 </view> 51 </view>
@@ -76,7 +77,7 @@ @@ -76,7 +77,7 @@
76 <!-- <text>{{choudan_money?choudan_money + info.total + info.yunfei*100/100: info.total + info.yunfei*100/100}}积分</text> --> 77 <!-- <text>{{choudan_money?choudan_money + info.total + info.yunfei*100/100: info.total + info.yunfei*100/100}}积分</text> -->
77 <text>{{choudan_money?(choudan_money + info.total + info.yunfei)/100: (info.total + info.yunfei)/100}}积分</text> 78 <text>{{choudan_money?(choudan_money + info.total + info.yunfei)/100: (info.total + info.yunfei)/100}}积分</text>
78 </view> 79 </view>
79 - <view class="num">共{{info.totalnum}}件</view> 80 + <view class="num">共{{info.totalnum + choudanNum}}件</view>
80 </view> 81 </view>
81 <concat/> 82 <concat/>
82 83
@@ -115,9 +115,9 @@ page { @@ -115,9 +115,9 @@ page {
115 } 115 }
116 116
117 .re_one { 117 .re_one {
118 - font-size: 26rpx; 118 + font-size: 30rpx;
119 font-family: PingFang SC; 119 font-family: PingFang SC;
120 - font-weight: 400; 120 + font-weight: 600;
121 line-height: 36rpx; 121 line-height: 36rpx;
122 color: rgba(242, 0, 0, 1); 122 color: rgba(242, 0, 0, 1);
123 padding: 0 10rpx; 123 padding: 0 10rpx;
@@ -43,7 +43,7 @@ Page({ @@ -43,7 +43,7 @@ Page({
43 //查看物流 43 //查看物流
44 look_logistics(e) { 44 look_logistics(e) {
45 wx.navigateTo({ 45 wx.navigateTo({
46 - url: '/pages/logistics/logistics?order=' + e.currentTarget.dataset.d 46 + url: '/packageA/pages/logistics/logistics?order=' + e.currentTarget.dataset.d
47 }) 47 })
48 }, 48 },
49 //查看订单详情 49 //查看订单详情
@@ -85,7 +85,7 @@ Page({ @@ -85,7 +85,7 @@ Page({
85 let type=e.currentTarget.dataset.type; 85 let type=e.currentTarget.dataset.type;
86 if(type==1){ 86 if(type==1){
87 wx.navigateTo({ 87 wx.navigateTo({
88 - url: '/pages/shop_detail/shop_detail?id=' + id 88 + url: '/packageA/pages/shop_detail/shop_detail?id=' + id
89 }) 89 })
90 }else{ 90 }else{
91 wx.navigateTo({ 91 wx.navigateTo({
@@ -98,7 +98,7 @@ Page({ @@ -98,7 +98,7 @@ Page({
98 98
99 getmorelist(){ 99 getmorelist(){
100 let that = this 100 let that = this
101 - let url = '/activity/get_detail'; 101 + let url = '/activity/get_product';
102 let data = { 102 let data = {
103 activity_id:that.data.activeid, 103 activity_id:that.data.activeid,
104 page: that.data.page, 104 page: that.data.page,
@@ -106,7 +106,7 @@ Page({ @@ -106,7 +106,7 @@ Page({
106 order:that.data.order, 106 order:that.data.order,
107 107
108 } 108 }
109 - app.postk(url, data, "POST").then((r) => { 109 + app.post(url, data, "POST").then((r) => {
110 console.log(r) 110 console.log(r)
111 that.setData({ 111 that.setData({
112 activelist: that.data.activelist.concat(r.msg) 112 activelist: that.data.activelist.concat(r.msg)
@@ -99,7 +99,7 @@ page { @@ -99,7 +99,7 @@ page {
99 } 99 }
100 .real_goods { 100 .real_goods {
101 width: 750rpx; 101 width: 750rpx;
102 - margin: 0 auto; 102 + margin: 50rpx auto 0;
103 background: #f9f9f9; 103 background: #f9f9f9;
104 display: flex; 104 display: flex;
105 flex-wrap: wrap; 105 flex-wrap: wrap;
@@ -134,6 +134,10 @@ page { @@ -134,6 +134,10 @@ page {
134 display: flex; 134 display: flex;
135 align-items: center; 135 align-items: center;
136 justify-content: space-between; 136 justify-content: space-between;
  137 + position: fixed;
  138 + top: 0;
  139 + left: 0;
  140 + z-index: 15;
137 } 141 }
138 142
139 .select_item { 143 .select_item {