修改人脸识别拍照图片质量和添加场馆灯管费用支付
This commit is contained in:
@ -62,6 +62,10 @@
|
|||||||
data: (e) => {
|
data: (e) => {
|
||||||
// self.imgSrc = path
|
// self.imgSrc = path
|
||||||
self.uploadFile(e.path, e.order_id)
|
self.uploadFile(e.path, e.order_id)
|
||||||
|
// const image = new Image();
|
||||||
|
// image.src = e.path;
|
||||||
|
// console.log("🚀 ~ image:", image)
|
||||||
|
|
||||||
// uni.redirectTo({
|
// uni.redirectTo({
|
||||||
// url: '/pages/order/cg-my-order'
|
// url: '/pages/order/cg-my-order'
|
||||||
// });
|
// });
|
||||||
|
|||||||
@ -139,8 +139,13 @@
|
|||||||
<button class="theme-btn pay-btn" @click="toInvoice(item.id)">去开票</button>
|
<button class="theme-btn pay-btn" @click="toInvoice(item.id)">去开票</button>
|
||||||
</block>
|
</block>
|
||||||
|
|
||||||
<!-- 在篮球场下且订单是已预约有个人脸录入 -->
|
<!-- 在网球场下且订单是已预约和进行中有个购买灯光 -->
|
||||||
<block v-if="item.order_status == 1 && ballType == 2 && item.face_status == 0">
|
<!-- <block v-if="(item.order_status == 1 || item.order_status == 2) && ballType == 1">
|
||||||
|
<button class="theme-btn pay-btn" @click="onBuyLight(item.id, item.room_id, item.ground_id, item.order_status)">购买灯光</button>
|
||||||
|
</block> -->
|
||||||
|
|
||||||
|
<!-- 在篮球场下且订单是已预约和进行中有个人脸录入 -->
|
||||||
|
<block v-if="(item.order_status == 1 || item.order_status == 2) && ballType == 2 && item.face_status == 0">
|
||||||
<button class="theme-btn pay-btn" @click="onTakePhoto(item.id)">人脸录入</button>
|
<button class="theme-btn pay-btn" @click="onTakePhoto(item.id)">人脸录入</button>
|
||||||
</block>
|
</block>
|
||||||
</block>
|
</block>
|
||||||
@ -604,6 +609,92 @@
|
|||||||
url: `/pages/order/invoice?order_id=${order_id}`
|
url: `/pages/order/invoice?order_id=${order_id}`
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 购买灯光
|
||||||
|
onBuyLight(order_id, room_id, ground_id, order_status) {
|
||||||
|
console.log("🚀 ~ order_status:", order_status)
|
||||||
|
if (order_status == 1) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '您已支付过灯光费用,是否再次支付?',
|
||||||
|
success: function() {
|
||||||
|
this.payLight(order_id, room_id, ground_id, order_status);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.payLight(order_id, room_id, ground_id, order_status);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
payLight(order_id, room_id, ground_id, order_status) {
|
||||||
|
let self = this;
|
||||||
|
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '您确定要购买灯光费用吗?',
|
||||||
|
success: function(o) {
|
||||||
|
if (o.confirm) {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '正在处理'
|
||||||
|
});
|
||||||
|
self._post(
|
||||||
|
'order.GroundOrder/addLightStoreOrder', {
|
||||||
|
order_id,
|
||||||
|
room_id,
|
||||||
|
ground_id,
|
||||||
|
content: ''
|
||||||
|
},
|
||||||
|
function(res) {
|
||||||
|
uni.hideLoading();
|
||||||
|
|
||||||
|
uni.showLoading({
|
||||||
|
title: '支付中'
|
||||||
|
});
|
||||||
|
const payId = res.data.id;
|
||||||
|
|
||||||
|
self._post(
|
||||||
|
'user.groundOrder/lightPay', {
|
||||||
|
order_id: payId,
|
||||||
|
},
|
||||||
|
function(pay) {
|
||||||
|
console.log("🚀 ~ pay:", pay)
|
||||||
|
uni.requestPayment({
|
||||||
|
provider: 'wxpay',
|
||||||
|
timeStamp: pay.data.payment.timeStamp,
|
||||||
|
nonceStr: pay.data.payment.nonceStr,
|
||||||
|
package: 'prepay_id=' + pay.data.payment.prepay_id,
|
||||||
|
signType: 'MD5',
|
||||||
|
paySign: pay.data.payment.paySign,
|
||||||
|
success: res => {
|
||||||
|
self.result = 'success'
|
||||||
|
uni.hideLoading();
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.showToast({
|
||||||
|
title: '支付成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}, 100);
|
||||||
|
},
|
||||||
|
fail: res => {
|
||||||
|
console.log("🚀 ~ pay error res:", res)
|
||||||
|
self.result = 'fail'
|
||||||
|
uni.hideLoading();
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.showToast({
|
||||||
|
title: '支付失败',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}, 100);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -55,8 +55,6 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="">您的订单已取消。期待下次有机会再为您服务!</view>
|
<view class="">您的订单已取消。期待下次有机会再为您服务!</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
<view class="dot-bg"></view>
|
<view class="dot-bg"></view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@ -108,12 +106,61 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
|
||||||
|
|
||||||
|
<!-- <view class="d-f a-i-c open-light" @click="buyLight" v-if="detail.order_status == 1 || detail.order_status == 2">
|
||||||
|
<image style="width: 48rpx;height: 48rpx;" src="https://xh.stnav.com/uploads/sport/light.png" ></image>
|
||||||
|
<view>购买灯光</view>
|
||||||
|
</view> -->
|
||||||
|
</template>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<!-- 购买灯光 -->
|
||||||
|
<view class="cg-order" style="margin-bottom: 20rpx;" v-if="detail.order_status == 1 || detail.order_status == 2 && ballType == 1">
|
||||||
|
<view class="cg-order-title d-f a-i-c open-light">
|
||||||
|
<!-- <image style="width: 48rpx;height: 48rpx;" src="https://xh.stnav.com/uploads/sport/light.png" ></image> -->
|
||||||
|
<view>购买灯光</view>
|
||||||
|
</view>
|
||||||
|
<view class="desc" v-for="(item, index) in detail.trade" :key="index">
|
||||||
|
<view class="fb" style="margin: 20rpx 0;">{{ index }}</view>
|
||||||
|
<view class="date-grid">
|
||||||
|
<view
|
||||||
|
v-for="(item2, index2) in item"
|
||||||
|
:key="index2"
|
||||||
|
:class="isSelected(index, index2) ? 'date-time-btn' : 'date-time-btn-normal'"
|
||||||
|
@click="toggleSelect(index, index2, item2.room_id)"
|
||||||
|
>
|
||||||
|
{{ item2.start_time }}-{{ item2.end_time }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="buy-checkout">
|
||||||
|
<view :class="payType == 'wxpay' ? 'item active' : 'item'" @tap="payTypeFunc('wxpay')" style="padding-bottom: 10rpx;">
|
||||||
|
<view class="d-s-c">
|
||||||
|
<view class="icon-box d-c-c mr10"><span class="icon iconfont icon-weixin"></span></view>
|
||||||
|
<text class="key">微信支付</text>
|
||||||
|
</view>
|
||||||
|
<view class="icon-box d-c-c"><span class="icon iconfont icon-xuanze"></span></view>
|
||||||
|
</view>
|
||||||
|
<view :class="payType == 'balance' ? 'item active' : 'item'" @tap="payTypeFunc('balance')">
|
||||||
|
<view class="d-s-c">
|
||||||
|
<view class="icon-box d-c-c mr10"><span class="icon iconfont icon-yue"></span></view>
|
||||||
|
<text class="key">平台余额</text>
|
||||||
|
</view>
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="mr10 dis" v-if="userAccount > 0">
|
||||||
|
<!-- <text class="key">余额支付:(剩余:{{balance}})</text> -->
|
||||||
|
{{ cardType() }}
|
||||||
|
</view>
|
||||||
|
<view class="icon-box d-c-c"><span class="icon iconfont icon-xuanze"></span></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="pay-light-btn" @click="getSelectedContent">确定并支付</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<!-- 适用场馆 -->
|
<!-- 适用场馆 -->
|
||||||
<view class="cg-store">
|
<view class="cg-store">
|
||||||
<view class="cg-store-title" @click="againReserve">适用场馆</view>
|
<view class="cg-store-title" @click="againReserve">适用场馆</view>
|
||||||
@ -290,6 +337,99 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</Popup>
|
</Popup>
|
||||||
|
|
||||||
|
<!-- 开灯弹窗 -->
|
||||||
|
<Popup :show="openLightPopup" radius="16rpx">
|
||||||
|
<view class="light-popup">
|
||||||
|
<view class="title">提示</view>
|
||||||
|
<view class="desc">
|
||||||
|
<view class="rule">请选择要开灯的场地</view>
|
||||||
|
<scroll-view scroll-y="true" enhanced="true" :show-scrollbar="false" style="height: 500rpx;">
|
||||||
|
<view class="desc" v-for="(item, index) in detail.trade" :key="index">
|
||||||
|
<view class="fb" style="margin: 20rpx 0;">{{ index }}</view>
|
||||||
|
<view class="date-grid">
|
||||||
|
<view
|
||||||
|
:class="isSelected(index, index2) ? 'date-time-btn' : 'date-time-btn-normal'"
|
||||||
|
v-for="(item2, index2) in item"
|
||||||
|
:key="index2"
|
||||||
|
@click="toggleSelect(index, index2, item2.room_id)"
|
||||||
|
>
|
||||||
|
{{ item2.start_time }}-{{ item2.end_time }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
|
<view class="btn">
|
||||||
|
<view class="btn1" @click="openLightPopup = false">取消</view>
|
||||||
|
<view class="btn2" @click="getSelectedContent">确定</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</Popup>
|
||||||
|
|
||||||
|
<!-- 会员卡选择弹窗 -->
|
||||||
|
<Popup :show="balancePopup" :width='750' :padding="0" type="bottom" backgroundColor="#fff" radius="32rpx 32rpx 0 0">
|
||||||
|
<view class="ww100 box-s-b pop-improt typeof pr">
|
||||||
|
<image style="width: 64rpx;height: 64rpx;position: absolute; top: 26rpx;right: 30rpx;" src="@/static/icon/close2.png" mode="" @click="closeBalancePopup"></image>
|
||||||
|
|
||||||
|
<view class="d-c-c pt44">
|
||||||
|
<text class="f34 fb">会员卡选择</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="bg-white card">
|
||||||
|
<view class="card-item" :class="currentType == 1 ? 'active' : ''" @click="currentType = 1">
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-title">白银会员卡</view>
|
||||||
|
</view>
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-balance">¥{{ userBalance.balance1 }}</view>
|
||||||
|
<view class="icon-box d-c-c card-checkout"><span class="icon iconfont icon-xuanze"></span></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="card-item" :class="currentType == 2 ? 'active' : ''" @click="currentType = 2">
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-title">黄金会员卡</view>
|
||||||
|
</view>
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-balance">¥{{ userBalance.balance2 }}</view>
|
||||||
|
<view class="icon-box d-c-c card-checkout"><span class="icon iconfont icon-xuanze"></span></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="card-item" :class="currentType == 3 ? 'active' : ''" @click="currentType = 3">
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-title">铂金会员卡</view>
|
||||||
|
</view>
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-balance">¥{{ userBalance.balance3 }}</view>
|
||||||
|
<view class="icon-box d-c-c card-checkout"><span class="icon iconfont icon-xuanze"></span></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="card-item" :class="currentType == 4 ? 'active' : ''" @click="currentType = 4">
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-title">钻石会员卡</view>
|
||||||
|
</view>
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-balance">¥{{ userBalance.balance4 }}</view>
|
||||||
|
<view class="icon-box d-c-c card-checkout"><span class="icon iconfont icon-xuanze"></span></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="card-item" :class="currentType == 5 ? 'active' : ''" @click="currentType = 5">
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-title">至尊会员卡</view>
|
||||||
|
</view>
|
||||||
|
<view class="d-f a-i-c">
|
||||||
|
<view class="card-balance">¥{{ userBalance.balance5 }}</view>
|
||||||
|
<view class="icon-box d-c-c card-checkout"><span class="icon iconfont icon-xuanze"></span></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="card-btn" @click="confirmCard">确定</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</Popup>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -331,12 +471,24 @@
|
|||||||
billPopup: false,
|
billPopup: false,
|
||||||
venue: {}, // 场馆
|
venue: {}, // 场馆
|
||||||
cancelOrderPopup: false,
|
cancelOrderPopup: false,
|
||||||
cancelReservePopup: false
|
cancelReservePopup: false,
|
||||||
|
openLightPopup: false,
|
||||||
|
selectedTimes: [], // 记录选中的时间项,格式:[{group: 0, idx: 1}, ...]
|
||||||
|
content: [], // 保存格式化后的多选结果
|
||||||
|
payType: 'wxpay', // 支付方式 wxpay\balance
|
||||||
|
balancePopup: false,
|
||||||
|
balance: {},
|
||||||
|
userBalance: {},
|
||||||
|
currentType: '', // 选择的会员卡类型
|
||||||
|
userAccount: 0,
|
||||||
|
userDiscount: 0
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
this.order_id = e.order_id;
|
this.order_id = e.order_id;
|
||||||
this.ballType = e.ballType || 1;
|
this.ballType = e.ballType || 1;
|
||||||
|
this.getRecharge()
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
/*获取订单详情*/
|
/*获取订单详情*/
|
||||||
@ -562,6 +714,327 @@
|
|||||||
} else if (type == 5) {
|
} else if (type == 5) {
|
||||||
return '至尊会员卡'
|
return '至尊会员卡'
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购买灯光前置条件
|
||||||
|
*/
|
||||||
|
buyLight() {
|
||||||
|
let self = this
|
||||||
|
if (self.detail.light_order == 1) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '您已支付过灯光费用,是否再次支付?',
|
||||||
|
success: function(res) {
|
||||||
|
console.log("🚀 ~ res:", res)
|
||||||
|
if (res.confirm) {
|
||||||
|
self.payLight()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
self.payLight()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 选择支付方式
|
||||||
|
payTypeFunc(n) {
|
||||||
|
this.payType = n;
|
||||||
|
if (n == 'balance') {
|
||||||
|
this.balancePopup = true;
|
||||||
|
} else {
|
||||||
|
// 切换到微信支付时还原价格
|
||||||
|
this.userAccount = 0;
|
||||||
|
this.userDiscount = 0;
|
||||||
|
this.currentType = '';
|
||||||
|
this.balancePopup = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 关闭余额支付弹窗
|
||||||
|
closeBalancePopup() {
|
||||||
|
this.payType = 'wxpay';
|
||||||
|
this.balancePopup = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
getRecharge() {
|
||||||
|
let self = this;
|
||||||
|
uni.showLoading({
|
||||||
|
title: '加载中'
|
||||||
|
});
|
||||||
|
// 获取充值
|
||||||
|
self._post(
|
||||||
|
'ground.ground/groundSetting',
|
||||||
|
{
|
||||||
|
app_id: self.getAppId(),
|
||||||
|
},
|
||||||
|
function(res) {
|
||||||
|
self.balance = res.data.lists.balance;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// 获取充值
|
||||||
|
self._post('user.index/detail', {
|
||||||
|
source: self.getPlatform()
|
||||||
|
}, function(res) {
|
||||||
|
console.log("🚀 ~ res:", res)
|
||||||
|
self.userBalance = res.data.userInfo;
|
||||||
|
self.loadding = false;
|
||||||
|
uni.hideLoading();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 确认选择充值卡
|
||||||
|
confirmCard() {
|
||||||
|
if (this.currentType == '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择会员卡类型',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.userBalance['balance' + this.currentType] <= 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '余额不足,请选择其他会员卡',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
this.userAccount = this.userBalance['balance' + this.currentType];
|
||||||
|
this.userDiscount = this.balance['discount' + this.currentType];
|
||||||
|
|
||||||
|
// this.payType = this.currentType;
|
||||||
|
// this.countPrice();
|
||||||
|
this.balancePopup = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
cardType() {
|
||||||
|
if (this.currentType == 1) {
|
||||||
|
return '白银会员卡'
|
||||||
|
} else if (this.currentType == 2) {
|
||||||
|
return '黄金会员卡'
|
||||||
|
} else if (this.currentType == 3) {
|
||||||
|
return '铂金会员卡'
|
||||||
|
} else if (this.currentType == 4) {
|
||||||
|
return '钻石会员卡'
|
||||||
|
} else if (this.currentType == 5) {
|
||||||
|
return '至尊会员卡'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
isSelected(groupIdx, idx) {
|
||||||
|
return this.selectedTimes.some(sel => sel.group === groupIdx && sel.idx === idx);
|
||||||
|
},
|
||||||
|
|
||||||
|
toggleSelect(groupIdx, idx, roomId) {
|
||||||
|
const found = this.selectedTimes.findIndex(sel => sel.group === groupIdx && sel.idx === idx);
|
||||||
|
if (found > -1) {
|
||||||
|
this.selectedTimes.splice(found, 1);
|
||||||
|
} else {
|
||||||
|
this.selectedTimes.push({ group: groupIdx, idx, roomId });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取选中的内容并提交
|
||||||
|
*/
|
||||||
|
getSelectedContent() {
|
||||||
|
let self = this
|
||||||
|
|
||||||
|
// 按照 roomId 分组 selectedTimes,生成指定格式
|
||||||
|
const result = [];
|
||||||
|
const trade = self.detail.trade || [];
|
||||||
|
const roomMap = {};
|
||||||
|
self.selectedTimes.forEach(sel => {
|
||||||
|
if (!roomMap[sel.roomId]) roomMap[sel.roomId] = [];
|
||||||
|
// 获取时间段
|
||||||
|
const item = trade[sel.group] && trade[sel.group][sel.idx];
|
||||||
|
if (item) {
|
||||||
|
roomMap[sel.roomId].push(`${item.start_time}-${item.end_time}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.keys(roomMap).forEach(roomId => {
|
||||||
|
result.push({ room_id: roomId, arr: roomMap[roomId].join(',') });
|
||||||
|
});
|
||||||
|
self.content = result;
|
||||||
|
|
||||||
|
if (self.detail.light_order == 1) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '您已支付过灯光费用,是否再次支付?',
|
||||||
|
success: function(res) {
|
||||||
|
console.log("🚀 ~ res:", res)
|
||||||
|
if (res.confirm) {
|
||||||
|
self.payLight()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '您确定要购买灯光费用吗?',
|
||||||
|
success: function(o) {
|
||||||
|
if (o.confirm) {
|
||||||
|
self.payLight()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
payLight() {
|
||||||
|
let self = this
|
||||||
|
|
||||||
|
if (self.content.length == 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择时间',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self.payType == '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择支付方式',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self.payType == 'balance' && self.currentType == '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择会员卡类型',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
uni.showLoading({
|
||||||
|
title: '正在处理'
|
||||||
|
});
|
||||||
|
self._post(
|
||||||
|
'order.GroundOrder/addLightStoreOrder', {
|
||||||
|
order_id: self.order_id,
|
||||||
|
room_id: '',
|
||||||
|
ground_id: self.detail.ground_id,
|
||||||
|
content: JSON.stringify(self.content)
|
||||||
|
},
|
||||||
|
function(res) {
|
||||||
|
uni.hideLoading();
|
||||||
|
|
||||||
|
uni.showLoading({
|
||||||
|
title: '支付中'
|
||||||
|
});
|
||||||
|
const payId = res.data.id;
|
||||||
|
|
||||||
|
if (self.payType == 'wxpay') {
|
||||||
|
self._post(
|
||||||
|
'user.groundOrder/lightPay', {
|
||||||
|
order_id: payId,
|
||||||
|
},
|
||||||
|
function(pay) {
|
||||||
|
console.log("🚀 ~ pay:", pay)
|
||||||
|
uni.requestPayment({
|
||||||
|
provider: 'wxpay',
|
||||||
|
timeStamp: pay.data.payment.timeStamp,
|
||||||
|
nonceStr: pay.data.payment.nonceStr,
|
||||||
|
package: 'prepay_id=' + pay.data.payment.prepay_id,
|
||||||
|
signType: 'MD5',
|
||||||
|
paySign: pay.data.payment.paySign,
|
||||||
|
success: res => {
|
||||||
|
self.openLightPopup = false;
|
||||||
|
self.selectedTimes = []
|
||||||
|
self.content = []
|
||||||
|
|
||||||
|
self.result = 'success'
|
||||||
|
uni.hideLoading();
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.showToast({
|
||||||
|
title: '支付成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}, 200);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
self.getData();
|
||||||
|
self.getRecharge();
|
||||||
|
}, 1500);
|
||||||
|
},
|
||||||
|
fail: res => {
|
||||||
|
self.openLightPopup = false;
|
||||||
|
self.selectedTimes = []
|
||||||
|
self.content = []
|
||||||
|
|
||||||
|
self.result = 'fail'
|
||||||
|
uni.hideLoading();
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.showToast({
|
||||||
|
title: '支付失败',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}, 200);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
self.getData();
|
||||||
|
self.getRecharge();
|
||||||
|
}, 1500);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else if (self.payType == 'balance') {
|
||||||
|
self._post(
|
||||||
|
'ground.ground/yueLightPay', {
|
||||||
|
order_id: payId,
|
||||||
|
pay_type: self.currentType
|
||||||
|
},
|
||||||
|
function(pay) {
|
||||||
|
if (pay.code == 1) {
|
||||||
|
self.openLightPopup = false;
|
||||||
|
self.selectedTimes = []
|
||||||
|
self.content = []
|
||||||
|
|
||||||
|
self.result = 'success'
|
||||||
|
uni.hideLoading();
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.showToast({
|
||||||
|
title: '支付成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}, 200);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
self.getData();
|
||||||
|
self.getRecharge();
|
||||||
|
}, 1500);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
self.openLightPopup = false;
|
||||||
|
|
||||||
|
console.log("🚀 ~ pay error res:", res)
|
||||||
|
self.result = 'fail'
|
||||||
|
uni.hideLoading();
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.showToast({
|
||||||
|
title: '支付失败',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}, 200);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
self.getData();
|
||||||
|
self.getRecharge();
|
||||||
|
}, 1500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -1002,6 +1475,19 @@ page {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.date-time-btn-normal {
|
||||||
|
width: 100%;
|
||||||
|
height: 60rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
background-color: #BBBFC7;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 26rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.notice-popup {
|
.notice-popup {
|
||||||
padding: 20rpx 0;
|
padding: 20rpx 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -1064,4 +1550,162 @@ page {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.light-popup {
|
||||||
|
padding: 20rpx 0;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #303133;
|
||||||
|
line-height: 50rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desc {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #303133;
|
||||||
|
line-height: 52rpx;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
font-size: 32rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 44rpx;
|
||||||
|
|
||||||
|
.btn1 {
|
||||||
|
width: 240rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
text-align: center;
|
||||||
|
background: #F6F7F8;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn2 {
|
||||||
|
width: 240rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
text-align: center;
|
||||||
|
background: #365A9A;
|
||||||
|
color: #FFFFFF;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.open-light {
|
||||||
|
border-radius: 16rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.buy-checkout {
|
||||||
|
border-radius: 16rpx;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
border-bottom: none;
|
||||||
|
border-radius: 2rpx;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.buy-checkout .item.active .iconfont.icon-xuanze {
|
||||||
|
color: #365A9A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
margin-top: 28rpx;
|
||||||
|
padding-bottom: 64rpx;
|
||||||
|
|
||||||
|
.card-item {
|
||||||
|
width: 690rpx;
|
||||||
|
height: 104rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
border: 2rpx solid #F4F4F4;
|
||||||
|
margin: 0 30rpx 20rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.card-title {
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #121212;
|
||||||
|
margin-right: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.discount {
|
||||||
|
width: 44rpx;
|
||||||
|
height: 44rpx;
|
||||||
|
line-height: 44rpx;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 100%;
|
||||||
|
background: #FF5951;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 30rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sale {
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-balance {
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #303133;
|
||||||
|
line-height: 42rpx;
|
||||||
|
margin-right: 28rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active {
|
||||||
|
border: 2rpx solid #FF5951;
|
||||||
|
background: #FFF4F4;
|
||||||
|
|
||||||
|
.card-checkout {
|
||||||
|
.iconfont{
|
||||||
|
color: #365A9A;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-btn {
|
||||||
|
width: 630rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
background: #365A9A;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
line-height: 90rpx;
|
||||||
|
text-align: center;
|
||||||
|
margin: 42rpx auto 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.pt44 {
|
||||||
|
padding-top: 44rpx;;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pay-light-btn {
|
||||||
|
width: 300rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
color: #303133;
|
||||||
|
margin: 0 auto;
|
||||||
|
border: 2rpx solid #C2C9D5;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="modal bottom-modal" :class="show ? 'show' : ''">
|
<view class="modal bottom-modal" :class="show ? 'show' : ''">
|
||||||
<camera flash="off" device-position="front" resolution="high" @stop="stop" @error="error"
|
<camera flash="off" device-position="front" resolution="low" @stop="stop" @error="error"
|
||||||
style="width: 100vw;height: 100vh; position: fixed;top: 0;left: 0;">
|
style="width: 100vw;height: 100vh; position: fixed;top: 0;left: 0;">
|
||||||
<cover-view class="cover">
|
<cover-view class="cover">
|
||||||
<cover-view class="cover-top cover-item">
|
<cover-view class="cover-top cover-item">
|
||||||
|
|||||||
Reference in New Issue
Block a user