| @@ -1,7 +1,7 @@ | |||
| { | |||
| "pages": [ | |||
| "pages/spellDetail/index", | |||
| "pages/index/index", | |||
| "pages/spellDetail/index", | |||
| "pages/spellGroup/mySpellGroup/index", | |||
| "pages/spellGroup/spellGroup", | |||
| "pages/complete/index", | |||
| @@ -2,6 +2,7 @@ | |||
| var config = require("../../config/config.js"); | |||
| const Http = require("../../utils/HttpBasics"); | |||
| const imgurl = require("../../utils/imgurl"); | |||
| const {spellStatus} = require("../../utils/spell"); | |||
| Page({ | |||
| /** | |||
| @@ -11,15 +12,103 @@ Page({ | |||
| tuanzhang: imgurl.tuanzhang.url, | |||
| spellBg: imgurl.spellBg.url, | |||
| position: imgurl.position.url, | |||
| paramData:null, | |||
| data:null, | |||
| clock: "00", | |||
| day: "00", | |||
| hour: "00", | |||
| min: "00", | |||
| sec: "00", | |||
| spellStatusList: spellStatus | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面加载 | |||
| */ | |||
| onLoad: function (options) { | |||
| console.log(this.data.spellStatusList,7777777) | |||
| this.setData({ | |||
| paramData:options | |||
| }) | |||
| this.getDetail(options) | |||
| }, | |||
| /** | |||
| * 拼团状态字段转换 | |||
| */ | |||
| changeSatus(status){ | |||
| console.log(spellStatus,8888888) | |||
| return spellStatus.filter(item=>item.value==status)[0].name; | |||
| }, | |||
| // 时间格式化输出,如11:03 25:19 每1s都会调用一次 | |||
| dateformat(micro_second) { | |||
| // 总秒数 | |||
| var second = Math.floor(micro_second / 1000); | |||
| // 天数 | |||
| var day = Math.floor(second / 3600 / 24) < 10 ? "0" + Math.floor(second / 3600 / 24) : Math.floor(second / 3600 / 24); | |||
| // 小时 | |||
| var hr = Math.floor(second / 3600 % 24) < 10 ? "0" + Math.floor(second / 3600 % 24) : Math.floor(second / 3600 % 24); | |||
| // 分钟 | |||
| var min = Math.floor(second / 60 % 60) < 10 ? "0" + Math.floor(second / 60 % 60) : Math.floor(second / 60 % 60); | |||
| // 秒 | |||
| var sec = Math.floor(second % 60) < 10 ? "0" + Math.floor(second % 60) : Math.floor(second % 60); | |||
| // return day + "天" + hr + "小时" + min + "分钟" + sec + "秒"; | |||
| return { | |||
| a1: day, | |||
| b1: hr, | |||
| c1: min, | |||
| d1: sec | |||
| } | |||
| }, | |||
| countdown(end_time) { | |||
| let that = this; | |||
| var EndTime = end_time; | |||
| var NowTime = new Date().getTime(); | |||
| var total_micro_second = EndTime - NowTime || []; | |||
| // 渲染倒计时时钟 | |||
| let obj = that.dateformat(total_micro_second); | |||
| if (total_micro_second > 0) { | |||
| that.setData({ | |||
| clock: obj, | |||
| day: obj.a1, | |||
| hour: obj.b1, | |||
| min: obj.c1, | |||
| sec: obj.d1, | |||
| }) | |||
| } else { | |||
| that.setData({ | |||
| clock: "00", | |||
| day: "00", | |||
| hour: "00", | |||
| min: "00", | |||
| sec: "00", | |||
| }) | |||
| } | |||
| setTimeout(function () { | |||
| total_micro_second -= 1000; | |||
| that.countdown(end_time); | |||
| }, 1000) | |||
| }, | |||
| getDetail(){ | |||
| let that = this; | |||
| Http.get({ | |||
| url: config.api.queryOrderGroupStatus, | |||
| data: { | |||
| orderId: this.data.paramData.orderId, | |||
| couponId: this.data.paramData.couponId, | |||
| id: this.data.paramData.orderGroupId | |||
| } | |||
| }).then(res => { | |||
| console.log(res,555555555) | |||
| let data=res.data; | |||
| data.status=that.changeSatus(data.status); | |||
| that.countdown(data.expiredDate); | |||
| data.salePrice = (data.salePrice/100).toFixed(2) | |||
| that.setData({ | |||
| data:res.data | |||
| }) | |||
| }); | |||
| }, | |||
| /** | |||
| * 生命周期函数--监听页面初次渲染完成 | |||
| */ | |||
| @@ -2,13 +2,13 @@ | |||
| <view class='container'> | |||
| <view class='status'> | |||
| <view class='status-top'> | |||
| <view class='p-status'>拼团中</view> | |||
| <view class='p-status'>{{data.status}}</view> | |||
| <view class='p-text'>结束</view> | |||
| <view class='p-time'>09</view> | |||
| <view class='p-time'>{{sec}}</view> | |||
| <view class='p-mao'>:</view> | |||
| <view class='p-time'>59</view> | |||
| <view class='p-time'>{{min}}</view> | |||
| <view class='p-mao'>:</view> | |||
| <view class='p-time'>23</view> | |||
| <view class='p-time'>{{hour}}</view> | |||
| <view class='p-text'>剩余</view> | |||
| </view> | |||
| <view class='status-center'> | |||
| @@ -37,25 +37,40 @@ | |||
| <view class='position-icon'> | |||
| <image src='{{position}}'></image> | |||
| </view> | |||
| <view class='position'>广场地址:北京市朝阳区东三环中路123号</view> | |||
| <view class='position'>广场地址:{{data.addr}}</view> | |||
| </view> | |||
| </view> | |||
| <view class='detail'> | |||
| <view class='detail-top'> | |||
| <view class='detail-top01'> | |||
| <image src='{{spellBg}}'></image> | |||
| <image src='{{data.coverImg}}'></image> | |||
| </view> | |||
| <view class='detail-top02'> | |||
| <view class='title'>100元拼团券</view> | |||
| <view class='des'>是打发士大夫撒旦</view> | |||
| <view class='title'>{{data.title}}</view> | |||
| <view class='des'>{{data.subTitle}}</view> | |||
| </view> | |||
| <view class='detail-top03'> | |||
| <view class='detail-p-price'>{{data.salePrice}}元</view> | |||
| <view class='detail-p-name'>拼团价</view> | |||
| <view class='detail-p-price'>19.00元</view> | |||
| </view> | |||
| </view> | |||
| <view class='detail-bottom'></view> | |||
| <view class='detail-bottom'> | |||
| <view class='b-unit'>元</view> | |||
| <view class='b-price'>{{data.salePrice}}</view> | |||
| <view class='b-name'>实付款</view> | |||
| </view> | |||
| </view> | |||
| <view class='order'> | |||
| <view class='order-list'> | |||
| <view class='order-title'>订单编号:</view> | |||
| <view class='order-text'>{{paramData.orderId}}</view> | |||
| </view> | |||
| <view class='order-list'> | |||
| <view class='order-title'>团单编号:</view> | |||
| <view class='order-text'>{{data.orderGroupId}}</view> | |||
| </view> | |||
| </view> | |||
| <view class='edit'> | |||
| <button class='share user-motto' id="shareBtn" open-type="share">邀请好友拼团</button> | |||
| </view> | |||
| <view class='order'></view> | |||
| <view class='edit'></view> | |||
| </view> | |||
| @@ -116,7 +116,7 @@ page { | |||
| } | |||
| .status-bottom{ | |||
| width: 100%; | |||
| height: 72rpx; | |||
| height: auto; | |||
| overflow: hidden; | |||
| } | |||
| .position-icon{ | |||
| @@ -147,6 +147,7 @@ page { | |||
| width: 100%; | |||
| height: auto; | |||
| overflow: hidden; | |||
| padding-bottom: 12rpx; | |||
| } | |||
| .detail-top01{ | |||
| float: left; | |||
| @@ -179,4 +180,98 @@ page { | |||
| } | |||
| .detail-top03{ | |||
| float: left; | |||
| padding-top: 170rpx; | |||
| width: 230rpx; | |||
| } | |||
| .detail-p-name{ | |||
| float: right; | |||
| font-size:26rpx; | |||
| font-family:PingFang-SC-Medium; | |||
| font-weight:500; | |||
| color:rgba(134,134,134,1); | |||
| line-height:44rpx; | |||
| } | |||
| .detail-p-price{ | |||
| float: right; | |||
| font-size:26rpx; | |||
| font-family:PingFang-SC-Medium; | |||
| font-weight:500; | |||
| color:rgba(51,51,51,1); | |||
| } | |||
| .detail-bottom{ | |||
| border-top: 1rpx solid #F9F9F9; | |||
| width: 100%; | |||
| overflow: hidden; | |||
| height: 86rpx; | |||
| } | |||
| .b-unit{ | |||
| float: right; | |||
| font-size:24rpx; | |||
| font-family:PingFang-SC-Medium; | |||
| font-weight:500; | |||
| color:rgba(237,63,46,1); | |||
| margin-top: 36rpx; | |||
| } | |||
| .b-price{ | |||
| float: right; | |||
| font-size:40rpx; | |||
| font-family:PingFang-SC-Medium; | |||
| font-weight:500; | |||
| color:rgba(237,63,46,1); | |||
| margin-top: 18rpx; | |||
| } | |||
| .b-name{ | |||
| float: right; | |||
| font-size:26rpx; | |||
| font-family:PingFang-SC-Medium; | |||
| font-weight:500; | |||
| color:rgba(51,51,51,1); | |||
| margin-right: 6rpx; | |||
| margin-top: 34rpx; | |||
| } | |||
| .order{ | |||
| width: 690rpx; | |||
| padding:10rpx 28rpx; | |||
| margin: 30rpx auto 0; | |||
| box-sizing: border-box; | |||
| background:rgba(255,255,255,1); | |||
| border-radius:15rpx; | |||
| } | |||
| .order-list{ | |||
| height: 55rpx; | |||
| } | |||
| .order-title{ | |||
| line-height: 55rpx; | |||
| float: left; | |||
| font-size:26rpx; | |||
| font-family:PingFang-SC-Medium; | |||
| font-weight:500; | |||
| color:rgba(51,51,51,1); | |||
| } | |||
| .order-text{ | |||
| float: right; | |||
| text-align: right; | |||
| line-height: 55rpx; | |||
| font-size:26rpx; | |||
| font-family:PingFang-SC-Medium; | |||
| font-weight:500; | |||
| color:rgba(134,134,134,1); | |||
| } | |||
| .user-motto { | |||
| border: 0; | |||
| width:650rpx; | |||
| height:85rpx; | |||
| background:linear-gradient(90deg,rgba(248,85,45,1) 0%,rgba(241,60,66,1) 0%,rgba(248,86,46,1) 100%); | |||
| box-shadow:0px 8rpx 8rpx 1rpx rgba(242,61,65,0.32); | |||
| border-radius:43rpx; | |||
| font-size:36rpx; | |||
| font-family:PingFang-SC-Medium; | |||
| font-weight:500; | |||
| color:rgba(254,254,254,1); | |||
| line-height: 85rpx; | |||
| margin-top: 200rpx; | |||
| } | |||
| .user-motto::after { | |||
| border: none; | |||
| } | |||
| @@ -140,7 +140,7 @@ Page({ | |||
| }) | |||
| .then(res => { | |||
| wx.navigateTo({ | |||
| url: `/pages/spellDetail/index?orderId=${orderId}&couponId=${_this.data.data.couponId}` | |||
| url: `/pages/spellDetail/index?orderId=${orderId}&couponId=${_this.data.data.couponId}&orderGroupId=${res.data.orderGroupId}` | |||
| }); | |||
| }) | |||
| .catch(err => { | |||
| @@ -12,6 +12,7 @@ Page({ | |||
| mybargain: false, | |||
| list: [], | |||
| lists: [], | |||
| myLists:[], | |||
| page: 1, // 设置加载的第几次,默认是第一次 | |||
| pageSize: 10, //返回数据的个数 | |||
| searchLoadingComplete: false, //“没有数据”的变量,默认false,隐藏 | |||
| @@ -26,6 +26,27 @@ | |||
| <view class='right-text'>已拼27</view> | |||
| </view> | |||
| </view> | |||
| <view class='sepll-list' wx:for="{{lists}}" wx:key="{{index}}" data-couponId='{{item.couponId}}' data-id='{{item.id}}' bindtap='invite'> | |||
| <view class='spell-left'> | |||
| <image src='{{item.coverImg}}'></image> | |||
| </view> | |||
| <view class='spell-center'> | |||
| <view class='tilte'>{{item.title}}</view> | |||
| <view class='remark'>{{item.subTitle}}</view> | |||
| <view class='spell-num'>{{item.pressLimitNum+'人团'}}</view> | |||
| <view class='price'> | |||
| <view class='price01'> | |||
| <view class='price-num'>{{item.salePriceStr}}</view> | |||
| <view class='price-unit'>元</view> | |||
| </view> | |||
| <view class='price02'>{{item.priceStr}}</view> | |||
| </view> | |||
| </view> | |||
| <view class='spell-right'> | |||
| <view class='right-button'>去拼团</view> | |||
| <view class='right-text'>已拼27</view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class='bottom'> | |||
| <view class='bottom-left' bindtap="getSpellList" style="background:{{flag=='bargaingoods'?'#FF7250':'#F3453A'}}">拼团商品</view> | |||
| @@ -0,0 +1,21 @@ | |||
| const spellStatus=[ | |||
| { | |||
| name:'拼团中', | |||
| value:10 | |||
| }, | |||
| { | |||
| name: '拼团成功', | |||
| value: 11 | |||
| }, | |||
| { | |||
| name: '拼团已过期', | |||
| value: 12 | |||
| }, | |||
| { | |||
| name: '拼团失败', | |||
| value: 13 | |||
| } | |||
| ] | |||
| module.exports={ | |||
| spellStatus | |||
| } | |||