Commit dce82af3 by 谢中龙

超值卡,商城自提,导购登录缓存用户信息

parent c2e20f8e
......@@ -62,7 +62,10 @@
"pages/valueCardInfo/valueCardInfo",
"pages/myValueCard/myValueCard",
"pages/myValueCardInfo/myValueCardInfo",
"pages/valueCardRecords/valueCardRecords"
"pages/valueCardRecords/valueCardRecords",
"pages/chooseStore/chooseStore",
"pages/selfPickUpOrderList/selfPickUpOrderList",
"pages/selfPickUpOrderInfo/selfPickUpOrderInfo"
]
},
{
......@@ -114,5 +117,10 @@
"provider": "wx104a1a20c3f81ec2"
}
},
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将方便与查找您附近的门店信息"
}
},
"sitemapLocation": "sitemap81.json"
}
\ No newline at end of file
......@@ -30,6 +30,10 @@ Component({
type: Number,
value: 0,
},
valueCardNum : {
type: Number,
value: 0,
},
token: {
type: String,
observer(newVal) {
......@@ -52,6 +56,7 @@ Component({
memberActivateStatus: false,
integralNum: 0,
couponNum: 0,
valueCardNum: 0,
// baseUrl: '/assets/imgs/060610.png',
baseUrl: '#02bb70',
isAuthorization: false,
......@@ -111,6 +116,10 @@ Component({
toCouponList() {
wxService.router(`/pages/coupons/coupons`)
},
//我的超值卡
tapToMyValueCardPage(){
wxService.router(`/subPackage/page/pages/myValueCard/myValueCard`);
},
handleTtoActiveMemebr() {
if (wx.getStorageSync('_baseUserInfo')) {
wxService.openCard()
......
......@@ -51,10 +51,14 @@
<view class='point-number' style="color:{{personCenter.fontColor}};">{{integralNum}}</view>
<view class='point-desc' style="color:{{personCenter.fontColor}};">积分</view>
</view>
<view class='df-1 point' bindtap="toCouponList" wx:if="{{personCenter.coupon == 0}}">
<view class='df-1 point {{valueCardNum > 0 ? "person-right" : "" }}' bindtap="toCouponList" wx:if="{{personCenter.coupon == 0}}">
<view class='point-number' style="color:{{personCenter.fontColor}};">{{couponNum}}</view>
<view class='point-desc' style="color:{{personCenter.fontColor}};">优惠券</view>
</view>
<view class='df-1 point' bindtap="tapToMyValueCardPage" wx:if="{{valueCardNum > 0}}">
<view class='point-number' style="color:{{personCenter.fontColor}};">{{valueCardNum}}</view>
<view class='point-desc' style="color:{{personCenter.fontColor}};">超值卡</view>
</view>
</view>
<!--plus-->
<!-- <view class='df tc person-num' wx:if='{{currentMobile}}'>
......
......@@ -363,7 +363,24 @@ wxService.page({
})
},
checkAll: function () { // 全选
var cartList = this.data.cartList || []
var cartList = this.data.cartList || [];
let offLineProducts = [];
cartList.forEach((item,index) => {
if (item.productStatus == 0 || item.productStatus == 1 || item.productStatus == 3){
offLineProducts.push(item.productName);
}
});
if (offLineProducts.length > 0){
let toastText = offLineProducts.join(',');
wx.showToast({
title: '您购物车中商品:' + toastText + ' 已下架或不存在!',
icon : 'none'
});
return ;
}
if(!cartList.length) return false
if (this.data.checkAll) {
......
......@@ -37,6 +37,13 @@ wxService.page({
addressId: '', // 收货地址id
totalGoodsPrice : 0,
buyerRemark : '',//备注信息
currentType: 'delivery',//delivery 快递 selfPickUp 门店自提
storeInfo : {
storeName : '',
storeId : '',
storeAddress : '',
storeCode : ''
}
},
/**
......@@ -63,7 +70,65 @@ wxService.page({
}, () => {
this.initCitys()
// 地址列表
if (this.data.currentType == 'delivery'){
this.getAddressList()
}
else{
// 获取本地选择的门店信息
this.getLocalStoreInfo();
}
});
},
//获取本地选择的门店信息
getLocalStoreInfo(){
let storeInfo = wx.getStorageSync('choosedStoreInfo') ? wx.getStorageSync('choosedStoreInfo') : null;
console.log(storeInfo)
if (storeInfo){
this.data.storeInfo.storeId = storeInfo.id;
this.data.storeInfo.storeName = storeInfo.name;
this.data.storeInfo.storeAddress = storeInfo.storeFullAddress;
this.data.storeInfo.storeCode = storeInfo.code;
}
else{
this.data.storeInfo = {
storeName: '',
storeId : '',
storeAddress : '',
storeCode : '',
}
}
this.setData({
storeInfo: this.data.storeInfo
});
const { memberId } = wx.getStorageSync('_baseUserInfo');
const { trolleySku2Buy, checkByPremium } = this.data;
let params = { checkByPremium, trolleySku2Buy };
params.orderType = 4;
params.storeId = this.data.storeInfo.storeId;
this.calPreferentialPrice(params)
},
//切换tab
onTapChangeType(e){
let type = e.currentTarget.dataset.type;
this.setData({
currentType : type
});
if (type == 'delivery'){
this.getAddressList()
}
else{
this.getLocalStoreInfo();
}
},
//选择门店去
onTapSelectStore(){
wx.navigateTo({
url: '/subPackage/page/pages/chooseStore/chooseStore',
});
},
//订单备注输入
......@@ -133,6 +198,7 @@ wxService.page({
orderPrice: orderInitPrice - calCouponPrice + plusPrice
})
},
formSubmit(e) {
//判断是不是开卡了
if (this.data.orderingMustOpenCard){
......@@ -167,81 +233,85 @@ wxService.page({
return;
}
}
const { goodsAddress } = this.data
// 保存地址 && 支付
if (goodsAddress) {
if (!e.detail.value.name) {
wx.showToast({
title: `请输入姓名`,
icon: 'none'
})
return false;
}
if (!e.detail.value.phone) {
wx.showToast({
title: `请输入电话`,
icon: 'none'
})
return false;
}
if (!this.data.cityView) {
wx.showToast({
title: `请选择地区`,
icon: 'none'
})
return false;
}
if (!e.detail.value.address) {
wx.showToast({
title: `请输入详细地址`,
icon: 'none'
})
return false;
}
const { memberId } = wx.getStorageSync('_baseUserInfo')
this.setData({
params: {
userId: memberId,
name: e.detail.value.name,
phone: e.detail.value.phone,
province: this.data.params.province,
city: this.data.params.city,
district: this.data.params.district,
address: e.detail.value.address,
type: this.data.isSelect ? 1 : 0
//判断是不是快递配送
if (this.data.currentType == 'delivery'){
const { goodsAddress } = this.data
// 保存地址 && 支付
if (goodsAddress) {
if (!e.detail.value.name) {
wx.showToast({
title: `请输入姓名`,
icon: 'none'
})
return false;
}
});
wx.showLoading({
title: '加载中'
});
wxService.post(`/member/addressManage/save`, this.data.params).then(res => {
const { result } = res.data
if (result == 0) {
wx.hideLoading()
if (!e.detail.value.phone) {
wx.showToast({
title: `保存成功`,
title: `请输入电话`,
icon: 'none'
});
})
return false;
}
if (!this.data.cityView) {
wx.showToast({
title: `请选择地区`,
icon: 'none'
})
return false;
}
if (!e.detail.value.address) {
wx.showToast({
title: `请输入详细地址`,
icon: 'none'
})
return false;
}
this.data.addressId = res.data.data;
const { memberId } = wx.getStorageSync('_baseUserInfo')
this.setData({
params: {
userId: memberId,
name: e.detail.value.name,
phone: e.detail.value.phone,
province: this.data.params.province,
city: this.data.params.city,
district: this.data.params.district,
address: e.detail.value.address,
type: this.data.isSelect ? 1 : 0
}
});
this.setData({
addressId: this.data.addressId
});
wx.showLoading({
title: '加载中'
});
// 调起支付
this.handelGobuy()
}
})
} else {
// 调起支付
wxService.post(`/member/addressManage/save`, this.data.params).then(res => {
const { result } = res.data
if (result == 0) {
wx.hideLoading()
wx.showToast({
title: `保存成功`,
icon: 'none'
});
this.data.addressId = res.data.data;
this.setData({
addressId: this.data.addressId
});
// 调起支付
this.handelGobuy()
}
})
} else {
// 调起支付
this.handelGobuy()
}
}
else{
this.handelGobuy()
}
},
initCitys() {
let cityData = city.default;
......@@ -324,6 +394,7 @@ wxService.page({
break
}
},
//勾选购买vip时
handelChangeSelectVip() {
this.setData({
isSelect: !this.data.isSelect
......@@ -341,8 +412,18 @@ wxService.page({
let params = {
checkByPremium,
trolleySku2Buy,
addressId: addressId ? addressId : addressInfo.id // 微信地址 or 地址id
}
// 增加门店自提和快递配送判断
if (this.data.currentType == 'delivery') {
params.addressId = addressId ? addressId : addressInfo.id // 微信地址 or 地址id
params.orderType = 1;
}
else{
params.orderType = 4;
params.storeId = this.data.storeInfo.storeId;
}
this.calPreferentialPrice(params) // 重新计算优惠价
// 获取默认付费会员设置
this.getPremiumDefault()
......@@ -450,7 +531,7 @@ wxService.page({
couponSettingId,
addressId,
addressInfo,
defalutCouponId
defalutCouponId ,
} = this.data;
let finCouponName,finCouponId
......@@ -475,16 +556,35 @@ wxService.page({
[finCouponName]: finCouponId,
// couponId: couponId? couponId : defalutCouponId,
trolleySku2Buy,
addressId: addressId ? addressId : addressInfo.id // 微信地址 or 地址id
buyerRemark : this.data.buyerRemark,
}
//判断addressId是不是有
if (!params.addressId){
wx.showToast({
title: '请添加地址或选择地址',
icon : 'none'
})
return ;
//判断是快递下单还是自提下单
if (this.data.currentType == 'delivery'){
params.orderType = 1;
params.addressId = addressId ? addressId : addressInfo.id // 微信地址 or 地址id
//判断addressId是不是有
if (!params.addressId) {
wx.showToast({
title: '请添加地址或选择地址',
icon: 'none'
})
return;
}
}
else{
params.orderType = 4;
params.storeId = this.data.storeInfo.storeId;
params.storeCode = this.data.storeInfo.storeCode;
params.storeName = this.data.storeInfo.storeName;
if (!params.storeId){
wx.showToast({
title: '门店自提需要选择门店',
icon: 'none'
})
return;
}
}
this.getBill(params) // 下单
......@@ -493,7 +593,8 @@ wxService.page({
getBill(params) {
wx.showLoading({
title: '加载中'
})
});
const { isSelect} = this.data;
//增加订单备注信息
params.buyerRemark = this.data.buyerRemark;
......@@ -531,6 +632,7 @@ wxService.page({
const { memberId } = wx.getStorageSync('_baseUserInfo');
const { trolleySku2Buy, checkByPremium } = this.data;
let params = {checkByPremium, trolleySku2Buy};
params.orderType = 1;
wxService.post(`/member/addressManage/getall`, {
userId: memberId
......
......@@ -2,8 +2,17 @@
<wxs src="../../wxs/utils.wxs" module="utils" />
<view class="page-confirm-order">
<!-- 选择方式 -->
<view class="deliveryType">
<view class="de-type-item {{currentType == 'delivery' ? 'active' : ''}}" data-type="delivery" bindtap="onTapChangeType">快递配送</view>
<view class="de-type-item {{currentType == 'selfPickUp' ? 'active' : ''}}" data-type="selfPickUp" bindtap="onTapChangeType">门店自提</view>
</view>
<form bindsubmit="formSubmit">
<view class="address-wrap">
<!-- 快递地址 -->
<view class="address-wrap" wx:if="{{currentType == 'delivery'}}">
<block wx:if="{{goodsAddress}}">
<view class="address-section">
<input class="address-input" name="name" placeholder="请输入收货人姓名" />
......@@ -58,6 +67,26 @@
+ 使用微信地址
</view>
</view>
<!-- 自提门店地址 -->
<view class="pick-up" wx:if="{{currentType == 'selfPickUp'}}">
<view class="address-title">提货地址</view>
<view class="store-address" wx:if="{{storeInfo.storeId}}" bindtap="onTapSelectStore">
<view class="store-top">
<text>张江高科一店</text>
<image class="arrow-right" src="/assets/imgs/7_1_0/arrow-right.png" />
</view>
<view class="store-addr-info">上海市浦东新区张江高科祖冲之路2288弄3号楼5楼</view>
</view>
<!-- 未选择门店时 -->
<view class="store-address" wx:if="{{!storeInfo.storeId}}" bindtap="onTapSelectStore">
<view class="store-top">
<text>暂未选择门店,请先去选择门店</text>
<image class="arrow-right" src="/assets/imgs/7_1_0/arrow-right.png" />
</view>
</view>
</view>
<view class="address-line">
<image src="/assets/imgs/7_1_0/address-line.png" />
</view>
......@@ -90,10 +119,10 @@
<view class="vip-left">
<view class="left-top">
<image class="top-image" src="/assets/imgs/7_1_0/plus-icon-3x.png" />
<text>现在勾选成为vip,立领200元礼包</text>
<text>现在勾选成为vip,享受更多优惠</text>
</view>
<view class="left-bottom">
<text>vip可尊享9大权益</text>
<text>vip可尊享更多权益</text>
<!-- <image class="bottom-image" src="/assets/imgs/7_1_0/explain.png" /> -->
</view>
</view>
......@@ -155,16 +184,34 @@
</view>
</view>
</view>
<!-- <view class="total">
<text class="total-label">小计:</text>
<text class="total-numer">¥186</text>
</view> -->
<!-- <view class='buyer-remark'>
<!-- 配送方式 -->
<!-- <view class="deliveryType">
<view class="de-title">配送方式</view>
<view class="radio-item">
<view class="radio-container">
<view class="radio-tag"></view>
<text>快递配送</text>
</view>
</view>
<view class="radio-item">
<view class="radio-container">
<view class="radio-tag"></view>
<text>门店自提</text>
</view>
<view class="rg-sel-store">
<text>选择门店</text>
<image src="/assets/imgs/arrow-right.png" mode="aspectFit"></image>
</view>
</view>
</view> -->
<!-- 备注信息 -->
<view class='buyer-remark'>
<view class='remark-title'>备注信息</view>
<textarea placeholder='请输入您的备注信息,快递信息,订单备注。。。'
show-confirm-bar="{{true}}"
value='{{buyerRemark}}' bindinput='onBuyerRemarkInput'></textarea>
</view> -->
</view>
</view>
</view>
......
......@@ -213,6 +213,8 @@
position: fixed;
bottom: 0;
height: 88rpx;
z-index: 2;
background: #ffffff;
/* margin-top: 100rpx; */
}
.cost{
......@@ -324,7 +326,7 @@
.buyer-remark textarea{
border: solid 2rpx #eeeeee;
min-height: 120rpx;
min-height: 100rpx;
width: 100%;
box-sizing: border-box;
-webkit-box-sizing: border-box;
......@@ -332,4 +334,73 @@
font-size: 28rpx;
color: #333333;
border-radius: 6rpx;
}
.deliveryType{
box-sizing: border-box;
-webkit-box-sizing: border-box;
display: flex;
background: #f2f2f2;
}
.deliveryType .de-type-item{
flex: 0;
height: 80rpx;
min-width: 50%;
max-width: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #666666;
border-top: 4rpx solid #f2f2f2;
}
.deliveryType .de-type-item.active{
background: #ffffff;
color: #ff2222;
border-top: 4rpx solid #ff2222;
}
.pick-up{
box-sizing: border-box;
-webkit-box-sizing: border-box;
padding: 20rpx;
}
.pick-up .address-title{
font-size: 28rpx;
color: #333333;
}
.pick-up .store-address{
width: 100%;
height: auto;
padding: 20rpx 0;
box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.pick-up .store-address .store-top{
display: flex;
align-items: center;
justify-content: space-between;
font-size: 24rpx;
color: #333333;
margin-bottom: 8rpx;
}
.pick-up .store-address .store-top image{
flex: 0;
min-width: 13rpx;
max-width: 13rpx;
height: 21rpx;
}
.pick-up .store-address .store-addr-info{
font-size: 24rpx;
color: #333333;
}
.store-address:active{
opacity: 0.7;
}
\ No newline at end of file
......@@ -21,6 +21,7 @@ wxService.page({
renderPageOver: false, // 渲染页面结束
integralNum: 0,
couponNum: 0,
valueCardNum: 0,
isAllScreen: config.isAllScreen,
token: '',
isAuthorization: false,
......@@ -119,6 +120,8 @@ wxService.page({
}, () => {
// 积分数量
this.getMemberPointInfo()
//获取我的超值卡数
this.getMyValueCardNum();
// 优惠券数量
this.getMemberCouponInfo()
})
......@@ -166,6 +169,21 @@ wxService.page({
}
})
},
//查询超值卡数量
getMyValueCardNum() {
const { memberId } = wx.getStorageSync('_baseUserInfo')
if (memberId) {
wxService.post(`/merchant/superValueCard/miniProgram/valiCard/getQuantity?memberId=${memberId}`).then(res => {
if (res) {
let data = res.data.data ? res.data.data : 0;
this.data.valueCardNum = data;
this.setData({
valueCardNum: this.data.valueCardNum
});
}
});
}
},
// 查询优惠券数量
getMemberCouponInfo() {
wx.showLoading({
......
......@@ -5,7 +5,7 @@
<image-swiper image-data="{{pItem.rotationchart.images}}" bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}"/>
</view>
<view class="" wx:if="{{pItem.type == 2}}">
<person-center isVip="{{isVip}}" bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}" base-user-info="{{baseUserInfo}}" person-data="{{pItem.customer}}" integral-num="{{integralNum}}" coupon-num="{{couponNum}}" token="{{token}}"/>
<person-center isVip="{{isVip}}" bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}" base-user-info="{{baseUserInfo}}" person-data="{{pItem.customer}}" valueCardNum="{{valueCardNum}}" integral-num="{{integralNum}}" coupon-num="{{couponNum}}" token="{{token}}"/>
</view>
<view class="" wx:if="{{pItem.type == 3}}">
<pic-nav pic-nav="{{pItem.navigation.images}}" bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}" bind:updatePage="updatePage"/>
......
......@@ -273,7 +273,7 @@ wxService.page({
title: '加载中',
mask: true
})
const params = { status: status }
const params = { status: status,orderType:1 }
wxService.post(`/sale/trade/buyer/history?pageNum=${pageNo}&pageSize=${pageSize}`, params).then(res => {
if (res) {
const { result, data } = res.data
......
......@@ -21,6 +21,7 @@ wxService.page({
renderPageOver: false, // 渲染页面结束
integralNum: 0,
couponNum: 0,
valueCardNum : 0,
// isAllScreen: fullSucreen.isAllScreen
isAllScreen: config.isAllScreen,
token: '',
......@@ -153,6 +154,8 @@ wxService.page({
}, () => {
// 积分数量
this.getMemberPointInfo()
//超值卡数
this.getMyValueCardNum();
// 优惠券数量
this.getMemberCouponInfo()
})
......@@ -167,25 +170,7 @@ wxService.page({
isAuthorization: true
})
}
// if (baseUserInfo){
// this.setData({
// token: wx.getStorageSync('token'),
// baseUserInfo,
// // cardMember,
// isAuthorization: false
// })
// // 积分数量
// this.getMemberPointInfo()
// // 优惠券数量
// this.getMemberCouponInfo()
// } else {
// this.setData({
// isAuthorization: true
// })
// }
// 获取plus购买信息
// this.getPlusPurchase()
// 获取手机信息
wxService.getSystemInfo().then(res => {
this.setData({
......@@ -218,6 +203,21 @@ wxService.page({
}
})
},
//查询超值卡数量
getMyValueCardNum(){
const { memberId } = wx.getStorageSync('_baseUserInfo')
if(memberId){
wxService.post(`/merchant/superValueCard/miniProgram/valiCard/getQuantity?memberId=${memberId}`).then(res => {
if(res){
let data = res.data.data ? res.data.data : 0;
this.data.valueCardNum = data;
this.setData({
valueCardNum: this.data.valueCardNum
});
}
});
}
},
// 查询优惠券数量
getMemberCouponInfo() {
wx.showLoading({
......
......@@ -11,7 +11,7 @@
currentHasUserInfo="{{currentHasUserInfo}}"/>
</view>
<view class="" wx:if="{{pItem.type == 2}}">
<person-center isVip="{{isVip}}" bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}" base-user-info="{{baseUserInfo}}" person-data="{{pItem.customer}}" integral-num="{{integralNum}}" coupon-num="{{couponNum}}" token="{{token}}"/>
<person-center isVip="{{isVip}}" bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}" base-user-info="{{baseUserInfo}}" person-data="{{pItem.customer}}" integral-num="{{integralNum}}" valueCardNum="{{valueCardNum}}" coupon-num="{{couponNum}}" token="{{token}}"/>
</view>
<view class="" wx:if="{{pItem.type == 3}}">
<pic-nav
......
......@@ -38,6 +38,10 @@
"currentL": -1,
"list": []
},
"gamePlugin": {
"current": -1,
"list": []
},
"miniprogram": {
"current": 17,
"list": [
......@@ -514,10 +518,11 @@
"query": ""
},
{
"id": -1,
"id": 71,
"name": "超值卡详情",
"pathName": "subPackage/page/pages/valueCardInfo/valueCardInfo",
"query": ""
"query": "id=674573141175046144",
"scene": null
},
{
"id": -1,
......@@ -526,16 +531,37 @@
"query": ""
},
{
"id": -1,
"id": 73,
"name": "我的超值卡详情",
"pathName": "subPackage/page/pages/myValueCardInfo/myValueCardInfo",
"query": ""
"query": "id= 674651435027402752",
"scene": null
},
{
"id": -1,
"name": "超值卡记录",
"pathName": "subPackage/page/pages/valueCardRecords/valueCardRecords",
"query": ""
},
{
"id": -1,
"name": "选择门店",
"pathName": "subPackage/page/pages/chooseStore/chooseStore",
"query": "",
"scene": null
},
{
"id": -1,
"name": "自提订单列表",
"pathName": "subPackage/page/pages/selfPickUpOrderList/selfPickUpOrderList",
"query": "",
"scene": null
},
{
"id": -1,
"name": "自提订单详情",
"pathName": "subPackage/page/pages/selfPickUpOrderInfo/selfPickUpOrderInfo",
"scene": null
}
]
}
......
......@@ -197,7 +197,7 @@ wxService.page({
});
let type = this.data.coupon.currentCouponType;
wxService.post(`/marketing/shoppingguide/coupon/page4c?pageSize=3&pageNo=1`,{
couponName : '',
couponName : null,
type: type,
}).then(res => {
if(res){
......
......@@ -140,6 +140,7 @@ wxService.page({
wx.setStorageSync('token', r.data.data.token);
let qiyeLoginUserInfo = r.data.data;
wx.setStorageSync('guidBaseInfo', qiyeLoginUserInfo);
wx.setStorageSync('_baseUserInfo', qiyeLoginUserInfo);
wx.hideLoading();
wx.redirectTo({
url: '/shoppingGuid/page/pages/home/home',
......
// subPackage/page/pages/chooseStore/chooseStore.js
const wxService = require('../../../../utils/wxService')
const app = getApp()
wxService.page({
/**
* 页面的初始数据
*/
data: {
latitude: 31.22114,
longitude: 121.54409,
pageNo : 1,
totalPage :0,
pageSize : 10,
markers: [
// {
// id: 1,
// latitude: 31.22114,
// longitude: 121.54409,
// name: 'T.I.T 创意园',
// iconPath: '/assets/imgs/location.png'
// }
],
storeList : []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
wx.hideShareMenu();
},
//去下单
onTapToOrder(e){
let item = e.currentTarget.dataset.item;
wx.setStorageSync('choosedStoreInfo', item);
wx.navigateBack({
delta : 1
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
wx.showLoading({
title: '数据加载中..',
});
this.renderMap();
this.getMyLocation();
},
//获取我的位置
getMyLocation(){
let self = this;
wx.getLocation({
type: 'wgs84',
success(res) {
const latitude = res.latitude
const longitude = res.longitude;
self.setData({
latitude: latitude,
longitude: longitude,
},() => {
self.getStoreList();
});
}
})
},
//渲染地图
renderMap(){
this.mapCtx = wx.createMapContext('myMap');
},
//获取附近的门店列表
getStoreList(refresh){
let pageNo = this.data.pageNo,
pageSize = this.data.pageSize;
let latitude = this.data.latitude,
longitude = this.data.longitude;
let url = `/sale/selfDelivery/store/findCloseStorePageByStoreIds?latitude=${latitude}&longitude=${longitude}&pageNo=${pageNo}&pageSize=${pageSize }`;
wxService.post(url).then(res => {
if(res){
let list = res.data.data.content ? res.data.data.content : [];
this.data.totalPage = res.data.data.totalPages;
//处理marks
let markers = list.map(item => {
let addressArr = item.addressArea.split(',');
addressArr.push(item.addressDetail);
item.storeFullAddress = addressArr.join('');
item.businessTimeText = item.businessTime ? item.businessTime.split(',').join('-') : '暂无营业时间';
item.distanceText = item.distance ? parseFloat(item.distance).toFixed(2) : 0;
return {
id: item.id,
latitude: item.latitude,
longitude: item.longitude,
name: item.name,
iconPath: '/assets/imgs/location.png'
}
});
this.data.storeList = this.data.storeList.concat(list);
this.setData({
storeList: this.data.storeList,
markers: markers,
});
}
wx.hideLoading();
if (refresh){
wx.stopPullDownRefresh();
wx.showToast({
title: '刷新成功',
});
}
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
this.data.pageNo = 1;
this.data.totalPage = 0;
this.data.storeList = [];
this.getStoreList(true);
},
/**
* 页面上拉触底事件的处理函数
*/
onScrollViewReachBottom: function () {
const { pageNo, pageSize, totalPage } = this.data
if (pageNo < totalPage) {
this.data.pageNo ++ ;
this.getStoreList()
}
else{
if (pageNo > 1){
wx.showToast({
title: '没有更多数据了',
icon : 'none',
});
}
}
},
})
\ No newline at end of file
{
"navigationBarTitleText": "选择门店",
"enablePullDownRefresh": true,
"usingComponents": {
"empty": "../../../../component/empty/empty"
}
}
\ No newline at end of file
<!--subPackage/page/pages/chooseStore/chooseStore.wxml-->
<view class="main-container">
<!-- <view class="search-container">
<view class="input-box">
<input placeholder="搜索门店" ></input>
<view class="icon-search">
<icon type="search" size="18"></icon>
</view>
</view>
</view> -->
<!-- 地图 -->
<view class="map-container">
<map
id="myMap"
style="width: 100%; height: 300px;"
latitude="{{latitude}}"
scale="12"
longitude="{{longitude}}"
markers="{{markers}}"
show-location
></map>
</view>
<!-- 门店列表 -->
<scroll-view class="store-list" scroll-y="true" bindscrolltolower="onScrollViewReachBottom" >
<view wx:if="{{storeList.length > 0}}">
<view class="store-item"
wx:for="{{storeList}}"
wx:for-item="item"
wx:for-index="idx"
wx:key="*this">
<view class="lf-store-info">
<view class="title">{{item.name}}</view>
<view style="margin-top:5rpx;">距离您{{item.distanceText}}KM</view>
<view style="margin-top:5rpx;">{{item.storeFullAddress}}</view>
<view style="margin-top:5rpx;">营业时间:{{item.businessTimeText}}</view>
</view>
<view class="rg-to-buy" bindtap="onTapToOrder" data-item="{{item}}">去下单</view>
</view>
</view>
<!-- 空时 -->
<empty text="附近暂无门店~" wx:else/>
</scroll-view>
</view>
/* subPackage/page/pages/chooseStore/chooseStore.wxss */
page{
background: #f2f2f2;
box-sizing: border-box;
-webkit-box-sizing: border-box;
}
view{
box-sizing: border-box;
-webkit-box-sizing: border-box;
}
scroll-view{
box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.main-container{
display: flex;
flex-direction: column;
}
.search-container{
background: #ffffff;
padding: 30rpx;
flex: 0;
min-height: 130rpx;
max-height: 130rpx;
}
.search-container .input-box{
width: 100%;
height: 70rpx;
border: solid 1px #dddddd;
border-radius: 35rpx;
position: relative;
padding-right: 80rpx;
}
.search-container .input-box input{
height: 100%;
width: 100%;
padding: 0 20rpx;
font-size: 24rpx;
color: #333333;
}
.search-container .input-box .icon-search{
position: absolute;
right: 0;
top: 0;
width: 80rpx;
height: 70rpx;
display: flex;
align-items: center;
justify-content: center;
}
.search-container .input-box .icon-search:active{
opacity: 0.7;
}
.map-container{
width: 100%;
overflow: hidden;
flex: 0;
min-height: 500rpx;
max-height: 500rpx;
border-bottom: solid 1px #dddddd;
}
.store-list{
flex: 1;
height: calc(100vh - 500rpx);
/* overflow: hidden; */
/* overflow-y: auto; */
padding: 20rpx;
}
.store-list .store-item{
display: flex;
padding: 20rpx;
background: #ffffff;
margin-bottom: 20rpx;
align-items: center;
}
.store-list .store-item .lf-store-info{
flex: 1;
font-size: 24rpx;
color: #999999;
}
.store-list .store-item .lf-store-info .title{
font-size: 28rpx;
color: #333333;
font-weight: 550;
}
.store-list .store-item .rg-to-buy{
flex: 0;
min-width: 140rpx;
max-width: 140rpx;
height: 80rpx;
border-left: solid 2rpx #dddddd;
display: flex;
align-items: center;
justify-content: center;
color: #ff2222;
font-size: 28rpx;
font-weight: 550;
}
......@@ -8,13 +8,12 @@ wxService.page({
* 页面的初始数据
*/
data: {
no : '1212345645645782',
myCardsList : [
{ id: 1, isOpen: false, no: '12314545654545' },
{ id: 1, isOpen: false, no: '45456456456456' },
{ id: 1, isOpen: false, no: '85858582544585' },
{ id: 1, isOpen: false, no: '96335525252525' },
]
no : '',
pageNum : 1,
pageSize : 10,
totalPage : 0,
isNoData :false,
myCardsList : []
},
/**
......@@ -22,6 +21,7 @@ wxService.page({
*/
onLoad: function (options) {
wx.hideShareMenu();
this.getMyValueCardList();
},
/**
......@@ -35,6 +35,99 @@ wxService.page({
canvasIdErrorCallback(e){
},
//跳转到购买记录
onTapToBuyRecords(){
wx.navigateTo({
url: '/subPackage/page/pages/valueCardRecords/valueCardRecords',
});
},
//跳转到详情
onTapToInfoPage(e){
let item = e.currentTarget.dataset.item;
wx.navigateTo({
url: '/subPackage/page/pages/myValueCardInfo/myValueCardInfo?id=' + item.id,
});
},
//刷新no
onTapRefreshNo(e){
let supValCardId = e.currentTarget.dataset.id;
let index = e.currentTarget.dataset.index;
let url = `/merchant/superValueCard/miniProgram/getChangeCode?supValCardId=${supValCardId}`;
wxService.post(url).then(res => {
if (res) {
if (res.data.data){
let no = res.data.data;
this.data.no = no;
let canvasId = 'barcode' + index;
this.setData({
no: this.data.no
}, () => {
this.generatorBarCode(canvasId);
wx.showToast({
title: '刷新成功!',
});
});
}
else{
wx.showToast({
title: '刷新失败,请重试',
icon : ' none'
})
}
}
});
},
//获取我的超值卡列表
getMyValueCardList(){
const { member } = wx.getStorageSync('_baseUserInfo');
if (!member) {
wx.showToast({
title: '请先去登录',
icon: 'none'
})
return;
}
wx.showLoading({
title: '加载中..',
});
let memeberId = member.id,
pageNum = this.data.pageNum,
pageSize = this.data.pageSize;
let url = `/merchant/superValueCard/miniProgram/getPageList?memberId=${memeberId}&pageNum=${pageNum}&pageSize=${pageSize}`;
wxService.post(url).then(res => {
if(res){
let data = res.data.data ? res.data.data : [];
if(data.length == 0 && this.data.pageNum > 1){
this.data.isNoData = true;
}
else{
this.data.isNoData = false;
}
//buyAwayType 1 现金 2 积分
data.forEach(item => {
item.leftTimes = item.totalTimes - item.usedTimes;
item.isOpen = false;
item.no = item.supValCardCode ? item.supValCardCode : item.supValCardId;
item.id = item.supValCardId;
item.startTime = item.startTime.substring(0, 10);
item.endTime = item.endTime.substring(0,10);
});
this.data.myCardsList = this.data.myCardsList.concat(data);
this.setData({
myCardsList: this.data.myCardsList,
isNoData: this.data.isNoData
})
console.log(data)
}
wx.hideLoading();
});
},
//生成条形码
generatorBarCode(canvasId){
if (this.data.no){
......
......@@ -4,13 +4,13 @@
wx:for="{{myCardsList}}"
wx:for-item="item"
wx:for-index="idx"
wx:key="{{idx}}">
wx:key="*this">
<view class='card-top-info' bindtap='onTapShowMoreInfo' data-item="{{item}}" data-index="{{idx}}">
<image class='bg-image {{item.isOpen ? "expand" : "unexpand"}}'
src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/daogou.jpg'
src='{{item.backGroundUrl}}'
mode='widthFix'></image>
<view class='card-top-info-desc'>
<label>剩3次</label>
<label>剩{{item.leftTimes}}次</label>
<image class='qrcode' src='/assets/imgs/711_11.png' mode='aspectFit'></image>
</view>
</view>
......@@ -18,15 +18,21 @@
<view class='card-info-extro' wx:if="{{item.isOpen}}">
<view class='bar-code'>
<canvas canvas-id="{{'barcode' + idx}}" binderror="canvasIdErrorCallback" />
<view class='no'>{{no}}</view>
<view class='no'>
<text>{{no}}</text>
<view class="refresh" data-id="{{item.supValCardId}}" data-index="{{idx}}" bindtap="onTapRefreshNo">
<image src="/assets/imgs/icon_refresh.png"></image>
刷新
</view>
</view>
</view>
<view class='exp-info'>
<label>使用时间:</label>
<text>2020-01-10 至 2020-08-30</text>
<text>{{item.startTime}} 至 {{item.endTime}}</text>
</view>
<view class='exp-info'>
<label style='color:#76A1D5;'>查看详细使用说明</label>
<image src='/assets/imgs/icon_arrow_right.png' class='arrow-image' mode='aspectFit'></image>
<label style='color:#76A1D5;' data-item="{{item}}" bindtap="onTapToInfoPage">查看详细使用说明</label>
<image data-item="{{item}}" bindtap="onTapToInfoPage" src='/assets/imgs/icon_arrow_right.png' class='arrow-image' mode='aspectFit'></image>
<image class='unexpand-icon'
bindtap='onTapCloseExtro'
data-index="{{idx}}"
......@@ -35,5 +41,8 @@
</view>
</view>
</view>
</view>
<view class='no-more' wx:if="{{isNoData}}">-- 我也是有底线滴 --</view>
<!-- 底部购买记录 -->
<view class="buy-records" bindtap="onTapToBuyRecords">查看购买记录</view>
\ No newline at end of file
......@@ -3,6 +3,7 @@ page{
background: #ffffff;
box-sizing: border-box;
-webkit-box-sizing: border-box;
padding-bottom: 76rpx;
}
view{
......@@ -104,6 +105,26 @@ view{
color: #333333;
font-size: 32rpx;
letter-spacing: 2rpx;
display: flex;
align-items: center;
justify-content: center;
}
.my-value-card-list .my-value-card-item .card-info-extro .bar-code .no .refresh{
color: #76A1D5;
display: flex;
align-items: center;
font-size: 24rpx;
margin-left: 15rpx;
}
.my-value-card-list .my-value-card-item .card-info-extro .bar-code .no .refresh:active{
opacity: 0.7;
}
.my-value-card-list .my-value-card-item .card-info-extro .bar-code .no .refresh image{
width: 30rpx;
height: 30rpx;
}
.my-value-card-list .my-value-card-item .card-info-extro .exp-info{
......@@ -128,4 +149,33 @@ view{
top: 0;
width: 34rpx;
height: 34rpx;
}
.no-more{
width: 100%;
height: auto;
padding: 30rpx 0;
color: #999999;
font-size: 24rpx;
display: flex;
align-items: center;
justify-content: center;
}
.buy-records{
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 75rpx;
background: #ff3333;
color: #ffffff;
font-size: 24rpx;
display: flex;
justify-content: center;
align-items: center;
}
.buy-records:active{
opacity: 0.7;
}
\ No newline at end of file
......@@ -8,16 +8,18 @@ wxService.page({
* 页面的初始数据
*/
data: {
no: '1212345645645782',
supValCardId : null,
no: '',
valueCardInfo : {}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.data.supValCardId = options.id;
wx.hideShareMenu();
this.generatorBarCode();
this.getMyValueCardInfo();
},
/**
......@@ -26,13 +28,87 @@ wxService.page({
onShow: function () {
},
//获取我的超值卡详情
getMyValueCardInfo(){
let supValCardId = this.data.supValCardId;
let url = `/merchant/superValueCard/miniProgram/getDetail?supValCardId=${supValCardId}`;
wxService.post(url).then(res => {
if(res){
let obj = res.data.data;
obj.leftTimes = obj.totalTimes - obj.usedTimes;
// obj.
//处理图标显示问题
let arr = [];
for (let i = 0; i < obj.totalTimes; i ++){
let tempObj = {
icon: obj.checkFlagUrl,
};
arr.push(tempObj);
}
for (let j = 0; j < obj.leftTimes ; j ++){
arr[j].icon = obj.noCheckFlagUrl;
}
obj.icons = arr;
obj.startTime = obj.startTime.substring(0, 10);
obj.endTime = obj.endTime.substring(0,10);
if (obj.buyAwayType == 1){
obj.buyPriceText = parseFloat(obj.buyPrice/10/10).toFixed(2);
}
obj.activityDesc = obj.activityDesc ? JSON.parse(obj.activityDesc) : [];
let descArr = JSON.parse(JSON.stringify(obj.activityDesc));
descArr = descArr.filter(item => item.type != 1);
let tempArr = descArr.map(item => {
return item.value;
});
obj.descArr = tempArr;
this.data.valueCardInfo = obj;
this.setData({
valueCardInfo: this.data.valueCardInfo,
no: obj.supValCardCode
},() => {
this.generatorBarCode();
});
}
});
},
//刷新
onTapRefreshNo(){
let supValCardId = this.data.supValCardId;
let url = `/merchant/superValueCard/miniProgram/getChangeCode?supValCardId=${supValCardId}`;
wxService.post(url).then(res => {
if (res) {
if (res.data.data) {
let no = res.data.data;
this.data.no = no;
this.setData({
no: this.data.no,
},() => {
this.generatorBarCode();
wx.showToast({
title: '刷新成功!',
});
})
}
else {
wx.showToast({
title: '刷新失败,请重试',
icon: ' none'
})
}
}
});
},
//生成条形码
generatorBarCode() {
if (this.data.no) {
wxbarcode.barcode('barcode', this.data.no, 570, 100);
wxbarcode.barcode('barcode', this.data.no, 570, 140);
setTimeout(() => {
wxbarcode.barcode('barcode', this.data.no, 570, 100);
wxbarcode.barcode('barcode', this.data.no, 570, 140);
}, 200);
}
},
......
<!--subPackage/page/pages/myValueCardInfo/myValueCardInfo.wxml-->
<view class='my-card-info'>
<image src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/daogou.jpg' mode='widthFix'></image>
<label>剩3次</label>
<image src='{{valueCardInfo.backGroundUrl}}' mode='widthFix'></image>
<label>剩{{valueCardInfo.leftTimes}}次</label>
</view>
<view class='left-num-container'>
<view class='left-icons'>
<view class='icons'>
<image src='/assets/imgs/point/color.png' mode='aspectFit'></image>
<!-- 小于5时居中显示 -->
<view class='left-icons limit-5' wx:if="{{valueCardInfo.totalTimes <= 5}}">
<view class='icons'
wx:for="{{valueCardInfo.icons}}"
wx:for-item="item"
wx:for-index="idx"
wx:key="*this">
<image src='{{item.icon}}' mode='aspectFit'></image>
</view>
<view class='icons'>
<image src='/assets/imgs/point/color.png' mode='aspectFit'></image>
</view>
<view class='icons'>
<image src='/assets/imgs/point/color.png' mode='aspectFit'></image>
</view>
<view class='icons'>
<image src='/assets/imgs/point/color.png' mode='aspectFit'></image>
</view>
<view class='icons'>
<image src='/assets/imgs/point/color.png' mode='aspectFit'></image>
</view>
<view class='icons'>
<image src='/assets/imgs/point/color.png' mode='aspectFit'></image>
</view>
<view class='icons'>
<image src='/assets/imgs/point/no_color.png' mode='aspectFit'></image>
</view>
<view class='icons'>
<image src='/assets/imgs/point/no_color.png' mode='aspectFit'></image>
</view>
<view class='icons'>
<image src='/assets/imgs/point/no_color.png' mode='aspectFit'></image>
</view>
<view class='icons'>
<image src='/assets/imgs/point/no_color.png' mode='aspectFit'></image>
</view>
<!-- 大于5时左对齐 -->
<view class='left-icons' wx:else>
<view class='icons'
wx:for="{{valueCardInfo.icons}}"
wx:for-item="item"
wx:for-index="idx"
wx:key="*this">
<image src='{{item.icon}}' mode='aspectFit'></image>
</view>
</view>
<view class='bar-code-container'>
<canvas canvas-id="barcode" binderror="canvasIdErrorCallback" />
<view class='no'>{{no}}</view>
<view class='no'>
<text>{{no}}</text>
<view class="refresh" data-id="{{item.supValCardId}}" data-index="{{idx}}" bindtap="onTapRefreshNo">
<image src="/assets/imgs/icon_refresh.png"></image>
刷新
</view>
</view>
</view>
</view>
......@@ -47,23 +42,24 @@
<view class='card-info-body'>
<view class='card-desc-item'>
<view class='lf'>活动时间</view>
<view class='rg'>2020-01-02 至 2020-05-31</view>
<view class='rg'>{{valueCardInfo.startTime}} 至 {{valueCardInfo.endTime}}</view>
</view>
<view class='card-desc-item' wx:if="{{buyType == 1}}">
<view class='card-desc-item' wx:if="{{valueCardInfo.buyAwayType == 1}}">
<view class='lf'>现金支付</view>
<view class='rg'>¥25.00</view>
<view class='rg'>¥{{valueCardInfo.buyPriceText}}</view>
</view>
<view class='card-desc-item' wx:if="{{buyType == 2}}">
<view class='card-desc-item' wx:if="{{valueCardInfo.buyAwayType == 2}}">
<view class='lf'>积分兑换</view>
<view class='rg'>200积分</view>
<view class='rg'>{{valueCardInfo.buyIntegration}}积分</view>
</view>
<view class='card-desc-item'>
<view class='lf'>使用说明</view>
<view class='rg'>
<view class='list-item'> 1) 这个是说明1这个是说明1这个是说明1</view>
<view class='list-item'> 2) 这个是说明2这个是说明2这个是说明2</view>
<view class='list-item'> 3) 这个是说明2这个是说明2这个是说明2</view>
<view class='list-item'> 4) 这个是说明2这个是说明2这个是说明2</view>
<view class='list-item'
wx:for="{{valueCardInfo.descArr}}"
wx:for-item="item"
wx:for-index="idx"
wx:key="*this"> {{idx + 1}}、{{item}}</view>
</view>
</view>
</view>
......@@ -53,6 +53,10 @@ view{
flex-wrap: wrap;
}
.limit-5{
justify-content: center;
}
.left-num-container .left-icons .icons{
flex: 0;
min-width: 20%;
......@@ -80,7 +84,7 @@ view{
}
.left-num-container .bar-code-container canvas{
height: 100rpx;
height: 140rpx;
width: 100%;
}
......@@ -89,6 +93,26 @@ view{
color: #333333;
font-size: 32rpx;
letter-spacing: 2rpx;
display: flex;
align-items: center;
justify-content: center;
}
.left-num-container .bar-code-container .no .refresh{
color: #76A1D5;
display: flex;
align-items: center;
font-size: 24rpx;
margin-left: 15rpx;
}
.left-num-container .bar-code-container .no .refresh:active{
opacity: 0.7;
}
.left-num-container .bar-code-container .no .refresh image{
width: 30rpx;
height: 30rpx;
}
.card-info-body{
......
// subPackage/page/pages/selfPickUpOrderInfo/selfPickUpOrderInfo.js
const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util')
wxService.page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
{
"navigationBarTitleText": "自提订单详情",
"usingComponents": {}
}
\ No newline at end of file
<!--subPackage/page/pages/selfPickUpOrderInfo/selfPickUpOrderInfo.wxml-->
<view class="order-info-store">
<view class="header">
<view class="lf-info">
<image src="/assets/imgs/address.png" mode="aspectFit"></image>
张江高科一店
</view>
<view class="rg-btn">导航 <image src="/assets/imgs/arrow-right-red.png" mode="aspectFit"></image></view>
</view>
<view class="store-address">上海市浦东新区祖冲之路2288号天之骄子</view>
</view>
<!-- 订单商品 -->
<view class="order-goods">
<view class="order-status">
<view class="order-type"><view class="tips">自提</view>门店名称</view>
<text>待自提</text>
</view>
<view class="pro-wrap">
<block>
<view class="pro-list">
<image data-img="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg"
bindtap='onTapShowImg' class="pro-img"
src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode='aspectFit'/>
<view class="pro-info">
<view class="pro-name">商品免除跟那个短时</view>
<view class="pro-desc">规格是你的</view>
<view class="pro-price">
<text class="price">¥526</text>
<text class="number">x 1</text>
</view>
<!-- 退款信息 -->
<!-- <view class="refund-info">
<text class='refund-name'>退款</text>
<text>x 1</text>
</view> -->
</view>
</view>
<view class="pro-list">
<image data-img="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg"
bindtap='onTapShowImg' class="pro-img"
src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode='aspectFit'/>
<view class="pro-info">
<view class="pro-name">商品免除跟那个短时</view>
<view class="pro-desc">规格是你的</view>
<view class="pro-price">
<text class="price">¥526</text>
<text class="number">x 1</text>
</view>
<!-- 退款信息 -->
<!-- <view class="refund-info">
<text class='refund-name'>退款</text>
<text>x 1</text>
</view> -->
</view>
</view>
</block>
</view>
<!-- 优惠信息 -->
<view class="coupon-info">
<view>优惠:20元无门槛券</view>
<view>¥16</view>
</view>
<!-- 订单金额 -->
<view class="order-price">
共计<label>5</label>件商品,实付<label>¥380</label>
</view>
</view>
<!-- 订单其他信息 -->
<view class="order-time">
<view class="order-items">下单时间:2020-02-06 15:20:30</view>
<view class="order-items">自提时间:暂无</view>
</view>
<!-- 底部操作按钮 -->
<view class="bottom-btns">
<view class="bto-btn primary-red">确认收货</view>
<view class="bto-btn">申请退款</view>
<!-- <view class="bto-btn primary-red">立即支付</view> -->
<!-- <view class="bto-btn">取消订单</view> -->
</view>
\ No newline at end of file
/* subPackage/page/pages/selfPickUpOrderInfo/selfPickUpOrderInfo.wxss */
page{
background: #f2f2f2;
box-sizing: border-box;
-webkit-box-sizing: border-box;
padding: 20rpx;
padding-bottom: 102rpx;
}
view{
box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.order-info-store{
width: 100%;
height: auto;
background: #ffffff;
padding: 30rpx;
margin-bottom: 20rpx;
}
.order-info-store .header{
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10rpx;
}
.order-info-store .header .lf-info{
flex: 1;
display: flex;
align-items: center;
font-size: 28rpx;
color: #333333;
font-weight: 550;
}
.order-info-store .header .lf-info image{
width: 28rpx;
height: 28rpx;
margin-right: 5rpx;
}
.order-info-store .header .rg-btn{
flex: 0;
min-width: 110rpx;
max-width: 110rpx;
height: 52rpx;
border: solid 1px #ff2222;
color: #ff2222;
font-size: 24rpx;
border-radius: 26rpx;
display: flex;
align-items: center;
justify-content: center;
}
.order-info-store .header .rg-btn:active{
opacity: 0.7;
}
.order-info-store .header .rg-btn image{
width: 20rpx;
margin-left: 5rpx;
height: 24rpx;
}
.order-info-store .store-address{
font-size: 24rpx;
color: #666666;
}
.pro-wrap{
padding: 0rpx 30rpx;
background-color: #ffffff;
}
.choose-pro{
color: #757575;
font-size: 26rpx;
}
.pro-total-price{
font-size: 26rpx;
color: #333333;
}
.total-price{
color: #cb3c3c;
font-size: 28rpx;
}
.pro-list{
border-bottom: 1px solid #eeeeee;
padding:31rpx 0 25rpx;
display: flex;
}
.pro-list:last-child{
border-bottom: none;
}
.refund-info{
display: flex;
justify-content: space-between;
align-items: center;
font-size: 22rpx;
color: #cb3c3c;
margin-top: 5rpx;
opacity: 0.7;
}
.refund-info .refund-name{
color: #cb3c3c;
}
.pro-img{
width: 160rpx;
height: 160rpx;
vertical-align: top;
}
.pro-info{
display: inline-block;
margin-left: 28rpx;
vertical-align: top;
}
.pro-name{
font-size: 25rpx;
color: #333333;
width: 500rpx;
line-height:36rpx;
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
line-clamp: 1;
-webkit-box-orient: vertical;
}
.pro-desc{
font-size: 22rpx;
color: #999999;
margin-top: 10rpx;
}
.pro-price{
margin-top: 12rpx;
}
.price{
color: #cb3c3c;
font-size: 32rpx;
}
.number{
float: right;
font-size: 26rpx;
color: #808080;
}
.pro-sum{
padding: 0 20rpx 90rpx;
}
.order-goods{
background: #FFFFFF;
margin-bottom: 20rpx;
}
.order-goods .order-status{
display: flex;
align-items: center;
justify-content: space-between;
font-size: 24rpx;
color: #333333;
padding: 20rpx 30rpx;
padding-bottom: 0;
}
.order-goods .order-status .order-type{
display: flex;
align-items: center;
}
.order-goods .order-status .order-type .tips{
padding: 5rpx 6rpx;
font-size: 20rpx;
background: rgba(255,34,34,0.1);
color: #ff2222;
margin-right: 20rpx;
border-radius: 6rpx;
}
.order-goods .coupon-info{
padding: 20rpx 30rpx;
border-bottom: solid 2rpx #eeeeee;
display: flex;
align-items: center;
font-size: 24rpx;
justify-content: space-between;
color: #fa6d0d;
}
.order-goods .order-price{
padding: 30rpx;
font-size: 28rpx;
display: flex;
align-items: center;
justify-content: flex-end;
color: #999999;
}
.order-goods .order-price label{
color: #333333;
font-weight: 550;
}
/* 订单 */
.order-time{
background: #ffffff;
padding: 30rpx;
font-size: 28rpx;
color: #333333;
}
.order-time .order-items{
display: flex;
align-items: center;
margin-bottom: 10rpx;
}
.order-time .order-items :last-child{
margin-bottom: 0;
}
.bottom-btns{
position: fixed;
bottom: 0;
left: 0;
z-index: 2;
background: #ffffff;
width: 100%;
height: 100rpx;
display: flex;
padding: 0 30rpx;
align-items: center;
justify-content: flex-end;
font-size: 24rpx;
}
.bottom-btns .bto-btn{
width: 120rpx;
height: 60rpx;
border: solid 1px #dddddd;
border-radius: 4rpx;
margin-left: 20rpx;
display: flex;
align-items: center;
justify-content: center;
color: #666666;
background: #f2f2f2;
}
.bottom-btns .bto-btn:active{
opacity: 0.7;
}
.bottom-btns .bto-btn.primary-red{
border: solid 1px #ff2222;
color: #ff2222;
background: #ffffff;
}
\ No newline at end of file
// subPackage/page/pages/selfPickUpOrderList/selfPickUpOrderList.js
const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util')
wxService.page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
{
"navigationBarTitleText": "自提订单",
"usingComponents": {}
}
\ No newline at end of file
<!--subPackage/page/pages/selfPickUpOrderList/selfPickUpOrderList.wxml-->
<view class="order-list">
<view class="order-items">
<view class="top-order-store">
<view class="store-name">
<text>张江高科一店</text>
<image src="/assets/imgs/address.png" mode="aspectFit"></image>
</view>
<view class="order-status">待付款</view>
</view>
<view class="buy-goods-list">
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10023dc3fc71-4709-41fc-838a-f712e549dff1.jpeg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201912/20191229/100207011743-e8e6-4342-9375-d862904ed91b.jpg" mode="aspectFit"></image>
</view>
<view class="order-o-info">
<view>2020-02-06 15:25:30</view>
<view class="order-price">
共计3件商品,合计 <text>¥360.00</text>
</view>
</view>
<!-- 按钮 -->
<view class="operator">
<!-- <view class="order-btn">申请退款</view> -->
<view class="order-btn primary">立即支付</view>
<!-- <view class="order-btn primary">确认收货</view> -->
</view>
</view>
<view class="order-items">
<view class="top-order-store">
<view class="store-name">
<text>张江高科一店</text>
<image src="/assets/imgs/address.png" mode="aspectFit"></image>
</view>
<view class="order-status">待自提</view>
</view>
<view class="buy-goods-list">
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10023dc3fc71-4709-41fc-838a-f712e549dff1.jpeg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201912/20191229/100207011743-e8e6-4342-9375-d862904ed91b.jpg" mode="aspectFit"></image>
</view>
<view class="order-o-info">
<view>2020-02-06 15:25:30</view>
<view class="order-price">
共计3件商品,合计 <text>¥360.00</text>
</view>
</view>
<!-- 按钮 -->
<view class="operator">
<view class="order-btn">申请退款</view>
<!-- <view class="order-btn primary">立即支付</view> -->
<view class="order-btn primary">确认收货</view>
</view>
</view>
<view class="order-items">
<view class="top-order-store">
<view class="store-name">
<text>张江高科一店</text>
<image src="/assets/imgs/address.png" mode="aspectFit"></image>
</view>
<view class="order-status">已完成</view>
</view>
<view class="buy-goods-list">
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10023dc3fc71-4709-41fc-838a-f712e549dff1.jpeg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201912/20191229/100207011743-e8e6-4342-9375-d862904ed91b.jpg" mode="aspectFit"></image>
</view>
<view class="order-o-info">
<view>2020-02-06 15:25:30</view>
<view class="order-price">
共计3件商品,合计 <text>¥360.00</text>
</view>
</view>
<!-- 按钮 -->
<!-- <view class="operator">
<view class="order-btn">申请退款</view>
<view class="order-btn primary">立即支付</view>
<view class="order-btn primary">确认收货</view>
</view> -->
</view>
</view>
/* subPackage/page/pages/selfPickUpOrderList/selfPickUpOrderList.wxss */
page{
background: #f2f2f2;
box-sizing: border-box;
-webkit-box-sizing: border-box;
}
view{
box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.order-list{
padding: 20rpx;
}
.order-list .order-items{
background: #ffffff;
padding: 20rpx;
margin-bottom: 20rpx;
border-radius: 8rpx;
}
.order-list .order-items .top-order-store{
display: flex;
align-items: center;
justify-content: space-between;
font-size: 24rpx;
color: #333333;
margin-bottom: 10rpx;
}
.order-list .order-items .top-order-store .order-status{
flex: 0;
min-width: 140rpx;
max-width: 140rpx;
display: flex;
justify-content: flex-end;
align-items: center;
}
.order-list .order-items .top-order-store .store-name{
flex: 1;
display: flex;
align-items: center;
}
.order-list .order-items .top-order-store .store-name image{
width: 24rpx;
height: 24rpx;
}
.order-list .order-items .buy-goods-list{
padding: 20rpx 0;
width: 100%;
overflow: hidden;
overflow-x: auto;
}
.order-list .order-items .buy-goods-list image{
width: 120rpx;
height: 120rpx;
float: left;
margin-right: 20rpx;
}
.order-list .order-items .order-o-info{
width: 100%;
height: auto;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 24rpx;
color: #666666;
padding-bottom: 20rpx;
padding-top: 10rpx;
}
.order-list .order-items .order-o-info .order-price{
display: flex;
justify-content: flex-end;
align-items: center;
}
.order-list .order-items .order-o-info .order-price text{
color: #333333;
font-weight: 550;
}
.order-list .order-items .operator{
padding-top: 20rpx;
border-top: solid 1px #eeeeee;
display: flex;
justify-content: flex-end;
align-items: center;
}
.order-list .order-items .operator .order-btn{
width: 140rpx;
height: 60rpx;
border: solid 1px #eeeeee;
color: #333333;
display: flex;
align-items: center;
justify-content: center;
font-size: 24rpx;
margin-left: 20rpx;
border-radius: 4rpx;
}
.order-list .order-items .operator .order-btn.primary{
border: solid 1px #ff2222;
color: #ff2222;
}
\ No newline at end of file
......@@ -21,6 +21,7 @@ wxService.page({
renderPageOver: false, // 渲染页面结束
integralNum: 0,
couponNum: 0,
valueCardNum: 0,
// isAllScreen: fullSucreen.isAllScreen
isAllScreen: config.isAllScreen,
token: '',
......@@ -102,6 +103,8 @@ wxService.page({
}, () => {
// 积分数量
this.getMemberPointInfo()
//获取我的超值卡数
this.getMyValueCardNum();
// 优惠券数量
this.getMemberCouponInfo()
})
......@@ -166,6 +169,21 @@ wxService.page({
}
})
},
//查询超值卡数量
getMyValueCardNum() {
const { memberId } = wx.getStorageSync('_baseUserInfo')
if (memberId) {
wxService.post(`/merchant/superValueCard/miniProgram/valiCard/getQuantity?memberId=${memberId}`).then(res => {
if (res) {
let data = res.data.data ? res.data.data : 0;
this.data.valueCardNum = data;
this.setData({
valueCardNum: this.data.valueCardNum
});
}
});
}
},
// 查询优惠券数量
getMemberCouponInfo() {
wx.showLoading({
......
......@@ -7,7 +7,7 @@
<image-swiper image-data="{{pItem.rotationchart.images}}" bind:updatePage="updatePage" bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}"/>
</view>
<view class="" wx:if="{{pItem.type == 2}}">
<person-center bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}" base-user-info="{{baseUserInfo}}" person-data="{{pItem.customer}}" integral-num="{{integralNum}}" coupon-num="{{couponNum}}" token="{{token}}"/>
<person-center bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}" base-user-info="{{baseUserInfo}}" person-data="{{pItem.customer}}" valueCardNum="{{valueCardNum}}" integral-num="{{integralNum}}" coupon-num="{{couponNum}}" token="{{token}}"/>
</view>
<view class="" wx:if="{{pItem.type == 3}}">
<pic-nav pic-nav="{{pItem.navigation.images}}" bind:getAuth="_getUserInfo" currentHasUserInfo="{{currentHasUserInfo}}" bind:updatePage="updatePage"/>
......
......@@ -7,7 +7,7 @@ wxService.page({
* 页面的初始数据
*/
data: {
cardList: [{ id: 1 }, { id: 2 }, { id: 2 }]
cardList: []
},
/**
......@@ -15,6 +15,7 @@ wxService.page({
*/
onLoad: function (options) {
wx.hideShareMenu();
this.getValueCardList();
},
/**
......@@ -30,6 +31,32 @@ wxService.page({
url: '/subPackage/page/pages/valueCardInfo/valueCardInfo?id=' + item.id,
});
},
//获取有效活动列表
getValueCardList(refresh){
wx.showLoading({
title: '加载中..',
});
wxService.post(`/merchant/superValueCardActivity/miniProgram/getPageList`).then(res => {
if(res){
let list = res.data.data ? res.data.data : [];
this.data.cardList = list;
this.setData({
cardList: this.data.cardList
});
}
wx.hideLoading();
if(refresh){
setTimeout(() => {
wx.showToast({
title: '刷新成功',
});
wx.hideNavigationBarLoading();
wx.stopPullDownRefresh();
}, 300);
}
});
},
/**
......@@ -37,13 +64,7 @@ wxService.page({
*/
onPullDownRefresh: function () {
wx.showNavigationBarLoading();
setTimeout(() => {
wx.showToast({
title: '刷新成功',
});
wx.hideNavigationBarLoading();
wx.stopPullDownRefresh();
},1000);
this.getValueCardList(true);
},
/**
......
......@@ -4,10 +4,10 @@
wx:for="{{cardList}}"
wx:for-item="item"
wx:for-index="idx"
wx:key="{{idx}}"
wx:key="*this"
data-item="{{item}}"
bindtap='onTapToCardInfo'>
<image src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/daogou.jpg' mode='widthFix'></image>
<image src='{{item.listUrl}}' mode='widthFix'></image>
<view class='card-buy-btn'>立即抢购</view>
</view>
</view>
......
......@@ -7,8 +7,10 @@ wxService.page({
* 页面的初始数据
*/
data: {
id : null,
checked : false,
showModal : false,
valueCardInfo : {},
buyType : '2',//现金支付 2 积分兑换
},
......@@ -16,7 +18,10 @@ wxService.page({
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.data.id = options.id;
wx.hideShareMenu();
this.getValueCardActivityInfo();
},
/**
......@@ -25,6 +30,41 @@ wxService.page({
onShow: function () {
},
//获取活动详情
getValueCardActivityInfo(){
wx.showLoading({
title: '加载中..',
});
wxService.post(`/merchant/superValueCardActivity/miniProgram/getDetail?id=${this.data.id}`).then(res => {
if (res) {
let obj = res.data.data ? res.data.data : null;
if(obj){
obj.activityDesc = obj.activityDesc ? JSON.parse(obj.activityDesc) : [];
this.data.buyType = obj.payWayType;
obj.acPayMoney = parseFloat(obj.moneyAmount / 10 / 10).toFixed(2);
obj.startTime = obj.startTime.substring(0, 10);
obj.endTime = obj.endTime.substring(0,10);
//处理说明文本
let descArr = JSON.parse(JSON.stringify(obj.activityDesc));
descArr = descArr.filter(item => item.type != 1);
let tempArr = descArr.map(item => {
return item.value;
});
obj.descArr = tempArr;
this.data.valueCardInfo = obj;
this.setData({
buyType: this.data.buyType,
valueCardInfo: this.data.valueCardInfo
});
}
}
wx.hideLoading();
});
},
//修改选中状态
onTapSwitchChecked(){
this.data.checked = !this.data.checked;
......@@ -57,7 +97,76 @@ wxService.page({
return ;
}
const { member } = wx.getStorageSync('_baseUserInfo');
if(!member){
wx.showToast({
title: '请先去登录',
icon : 'none'
})
return ;
}
let memeberId = member.id,
storeId = member.storeId;
// storeId = '';
let activityId = this.data.id;
let url = '';
if (this.data.buyType == 1){
url = `/merchant/superValueCard/miniProgram/buy?activityId=${activityId}&memberId=${memeberId}&payType=1&storeId=${storeId}`;
}
else{
url = `/merchant/superValueCard/miniProgram/buy?activityId=${activityId}&memberId=${memeberId}&storeId=${storeId}`;
}
wxService.post(url).then(res => {
if(res.data.result == 0){
//现金支付
if (this.data.buyType == 1){
let data = res.data.data ? res.data.data : null;
if(data){
let wxParams = data.wxParams;
wx.requestPayment({
timeStamp: wxParams.timeStamp,
nonceStr: wxParams.nonceStr,
package: wxParams.package,
signType: wxParams.signType,
paySign: wxParams.paySign,
success : res => {
wx.showToast({
title: '支付成功!',
});
wx.showLoading({
title: '跳转中...',
});
setTimeout(() => {
wx.hideLoading();
wx.navigateTo({
url: '/subPackage/page/pages/myValueCard/myValueCard',
});
},500);
},
fail : error => {
wx.showToast({
title: '已取消支付',
icon : 'none'
});
}
})
}
}
else{
wx.showToast({
title: '购买成功!',
});
}
}
else{
wx.showToast({
title: '购买失败,请稍后再试!',
icon : 'none'
});
}
});
},
/**
* 页面相关事件处理函数--监听用户下拉动作
......
<!--subPackage/page/pages/valueCardInfo/valueCardInfo.wxml-->
<image src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/daogou.jpg' class='card-info' mode='widthFix'></image>
<image src='{{valueCardInfo.listUrl}}' class='card-info' mode='widthFix'></image>
<view class='card-info-body'>
<view class='card-title'>这是充值卡活动名城这是充值卡活动名城这是充值卡活动名城</view>
<view class='card-title'>{{valueCardInfo.activityName}}</view>
<view class='card-desc-item'>
<view class='lf'>活动时间</view>
<view class='rg'>2020-01-02 至 2020-05-31</view>
<view class='rg'>{{valueCardInfo.startTime}} 至 {{valueCardInfo.endTime}}</view>
</view>
<view class='card-desc-item' wx:if="{{buyType == 1}}">
<view class='lf'>现金支付</view>
<view class='rg'>¥25.00</view>
<view class='rg'>¥{{valueCardInfo.acPayMoney}}</view>
</view>
<view class='card-desc-item' wx:if="{{buyType == 2}}">
<view class='lf'>积分兑换</view>
<view class='rg'>200积分</view>
<view class='rg'>{{valueCardInfo.integrationAmount}}积分</view>
</view>
<view class='card-desc-item'>
<view class='lf'>使用说明</view>
<view class='rg'>
<view class='list-item'> 1) 这个是说明1这个是说明1这个是说明1</view>
<view class='list-item'> 2) 这个是说明2这个是说明2这个是说明2</view>
<view class='list-item'> 3) 这个是说明2这个是说明2这个是说明2</view>
<view class='list-item'> 4) 这个是说明2这个是说明2这个是说明2</view>
<view class='list-item'
wx:for="{{valueCardInfo.descArr}}"
wx:for-item="item"
wx:for-index="idx"
wx:key="*this"
> {{idx+1}}、{{item}}</view>
</view>
</view>
</view>
......@@ -35,7 +37,7 @@
</view>
<view class='explain'>
<label> 阅读并同意 </label>
<text bindtap='onTapViewRule'>《广东7-eleven超值卡规则》</text>
<text bindtap='onTapViewRule'>《超值卡规则》</text>
</view>
</view>
<view class='rg-button {{checked ? "" : "disabled"}}' bindtap='onTapBuy'>{{buyType == 1 ? "立即购买" : "立即兑换"}}</view>
......@@ -50,35 +52,7 @@
</view>
<view class='modal-body-con'>
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规则超值卡规则超值卡规则
超值卡规则超值卡规则超值卡规
<image src="{{valueCardInfo.ruleUrl}}" mode="widthFix"></image>
</view>
<view class='modal-body-bottom'>
......
......@@ -198,6 +198,10 @@ view{
color: #666666;
}
.rule-modal .modal-body .modal-body-con image{
width: 100%;
}
.rule-modal .modal-body .modal-body-bottom{
flex: 0;
min-height: 120rpx;
......
......@@ -7,7 +7,10 @@ wxService.page({
* 页面的初始数据
*/
data: {
records : [],
pageNum : 1,
pageSize : 10,
isNoMore : false
},
/**
......@@ -15,6 +18,7 @@ wxService.page({
*/
onLoad: function (options) {
wx.hideShareMenu();
this.getBuyRecordsList();
},
/**
......@@ -24,18 +28,72 @@ wxService.page({
},
//获取购买记录
getBuyRecordsList(refresh){
const { memberId } = wx.getStorageSync('_baseUserInfo');
if (!memberId) {
return;
}
let pageNum = this.data.pageNum,
pageSize = this.data.pageSize;
let url = `/merchant/superValueCard/miniProgram/buyRecord/getPageList?memberId=${memberId}&pageNum=${pageNum}&pageSize=${pageSize}`;
wxService.post(url).then(res => {
if(res){
let list = res.data.data ? res.data.data : [];
if (list.length == 0 && this.data.pageNum > 1){
this.data.isNoMore = true;
}
else {
this.data.isNoMore = false;
}
list.forEach(item => {
item.startTime = item.startTime.substring(0, 10);
item.endTime = item.endTime.substring(0,10);
if (item.buyAwayType == 1){
item.buyPriceText = parseFloat(item.buyPrice/10/10).toFixed(2);
}
});
this.data.records = this.data.records.concat(list);
this.setData({
isNoMore: this.data.isNoMore,
records: this.data.records
});
}
if(refresh){
wx.stopPullDownRefresh();
wx.showToast({
title: '刷新成功',
});
}
})
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
wx.stopPullDownRefresh();
this.data.pageNum = 1;
this.data.records = [];
this.data.isNoMore = false;
this.getBuyRecordsList(true);
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
if (!this.data.isNoMore){
this.data.pageNum ++ ;
this.getBuyRecordsList();
}
},
})
\ No newline at end of file
<!--subPackage/page/pages/valueCardRecords/valueCardRecords.wxml-->
<view class='records-list'>
<view class='records-item'>
<view class='records-list' wx:if="{{records.length != 0}}">
<view class='records-item'
wx:for="{{records}}"
wx:for-item="item"
wx:for-index="idx"
wx:key="*this">
<view class='records-item-lf'>
<view class='records-title'>买10送10券</view>
<view>2019-12-02 16:23:46</view>
<view class='records-title'>{{item.activityName}}</view>
<view class="records-desc">超值卡号:{{item.supValCardId}}</view>
<view class="records-desc">购买时间:{{item.payOrderTime}}</view>
<view class="records-desc">有效时间:{{item.startTime}} 至 {{item.endTime}}</view>
</view>
<view class='records-item-rg'>¥200</view>
</view>
<view class='records-item'>
<view class='records-item-lf'>
<view class='records-title'>买10送10券</view>
<view>2019-12-02 16:23:46</view>
</view>
<view class='records-item-rg'>¥200</view>
</view>
<view class='records-item'>
<view class='records-item-lf'>
<view class='records-title'>买10送10券</view>
<view>2019-12-02 16:23:46</view>
<view class='records-item-rg'>
<text wx:if="{{item.buyAwayType == 1}}">¥{{item.buyPriceText}}</text>
<text wx:if="{{item.buyAwayType == 2}}">{{item.buyIntegration}}积分</text>
</view>
<view class='records-item-rg'>¥200</view>
</view>
<view class='records-item'>
<view class='records-item-lf'>
<view class='records-title'>买10送10券</view>
<view>2019-12-02 16:23:46</view>
</view>
<view class='records-item-rg'>¥200</view>
</view>
</view>
<!-- <view class='no-more'>-- 我也是有底线滴 --</view> -->
<view class="no-data" wx:if="{{records.length == 0}}">暂无购买记录~</view>
<view class='no-more' wx:if="{{isNoMore}}">-- 我也是有底线滴 --</view>
......@@ -3,7 +3,6 @@ page{
background: #ffffff;
box-sizing: border-box;
-webkit-box-sizing: border-box;
padding-bottom: 100rpx;
}
view{
......@@ -23,7 +22,7 @@ view{
padding: 20rpx;
border-bottom: solid 2rpx #eeeeee;
display: flex;
align-items: center;
align-items: flex-start;
font-size: 24rpx;
color: #999999;
}
......@@ -37,6 +36,7 @@ view{
align-items: center;
color: #333333;
font-size: 28rpx;
font-weight: 550;
}
.records-list .records-item .records-item-lf{
......@@ -46,6 +46,13 @@ view{
.records-list .records-item .records-item-lf .records-title{
font-size: 28rpx;
color: #333333;
margin-bottom: 10rpx;
}
.records-desc{
font-size: 24rpx;
color: #999999;
margin-bottom: 4rpx;
}
......@@ -58,4 +65,12 @@ view{
display: flex;
align-items: center;
justify-content: center;
}
.no-data{
padding: 80rpx 0;
display: flex;
justify-content: center;
color: #999999;
font-size: 28rpx;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment