mirror of
https://gitee.com/java110/WechatOwnerService.git
synced 2026-02-24 05:46:04 +08:00
475 lines
12 KiB
Vue
475 lines
12 KiB
Vue
<template>
|
|
<view>
|
|
<scroll-view scroll-y>
|
|
<view class="block__title">订单信息</view>
|
|
<form>
|
|
<view class="cu-list menu">
|
|
<view class="cu-item">
|
|
<view class="content">
|
|
<text class="text-b">{{bookparams.cgName}}</text>
|
|
</view>
|
|
</view>
|
|
<view class="cu-item">
|
|
<view class="content">
|
|
<text class="text-grey">预约日期</text>
|
|
</view>
|
|
<view class="action">
|
|
<text class="text-grey text-sm">{{bookparams.bookDate}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="block__title">场地信息</view>
|
|
<view class="cu-list menu" v-for="(item,index) in this.bookList" :key="index">
|
|
<view class="cu-item">
|
|
<view class="content">
|
|
<text class="text-grey">{{item.changdiName}}</text>
|
|
</view>
|
|
<view class="action">
|
|
<text class="text-grey text-sm">{{HoursStr(item.hours) }}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
</form>
|
|
</scroll-view>
|
|
<view class=" bg-white border flex cu-form-group" style="position: fixed;width: 100%;bottom: 0;">
|
|
|
|
<view class="title">总计:
|
|
<text class="solid-bottom text-xxl text-price text-red">{{totalMoney}}</text>
|
|
</view>
|
|
<view class="btn-group">
|
|
<!-- #ifdef H5 || MP-WEIXIN -->
|
|
<!-- cu-btn bg-red shadow-blur lgplus sharp -->
|
|
<button @click="onPayFee()" class="cu-btn round bg-blue"
|
|
style="background-color: #1cbbb4;">提交订单</button>
|
|
<!-- #endif -->
|
|
<!-- #ifdef APP-PLUS -->
|
|
<button @click="_payWxApp()" class="cu-btn round bg-blue"
|
|
style="background-color: #1cbbb4;">提交订单</button>
|
|
<!-- #endif -->
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
// pages/fee/payParkingFee.js
|
|
import context from '../../lib/java110/Java110Context.js';
|
|
const constant = context.constant;
|
|
import url from '@/constant/url.js'
|
|
|
|
import vcDiscount from '@/components/vc-discount/vc-discount.vue'
|
|
import vcUserAccount from '@/components/vc-user-account/vc-user-account.vue'
|
|
|
|
|
|
// #ifdef H5
|
|
|
|
const WexinPayFactory = require('../../factory/WexinPayFactory.js');
|
|
|
|
// #endif
|
|
|
|
// #ifdef APP-PLUS
|
|
import {
|
|
getPayInfo
|
|
} from '../../factory/WexinAppPayFactory.js'
|
|
// #endif
|
|
|
|
import {
|
|
addMonth,
|
|
formatDate,
|
|
date2String,
|
|
dateSubOneDay
|
|
} from '../../lib/java110/utils/DateUtil.js';
|
|
import {getUserName,getUserTel} from '../../api/user/userApi.js'
|
|
|
|
export default {
|
|
components: {
|
|
vcDiscount,
|
|
vcUserAccount
|
|
},
|
|
data() {
|
|
return {
|
|
bookparams: [], // 订场信息
|
|
bookList: [], // 订场列表
|
|
switchA: false, // 选择微信支付开关
|
|
totalMoney: 0, //
|
|
canPay: "f",
|
|
ownerInfo: [], //
|
|
link: "", // 注册者电话
|
|
appUserName: "", // 注册者名称
|
|
};
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function(options) {
|
|
this.loadOwenrInfo();
|
|
context.onLoad(options);
|
|
// #ifdef MP-WEIXIN
|
|
let accountInfo = uni.getAccountInfoSync();
|
|
this.appId = accountInfo.miniProgram.appId;
|
|
// #endif
|
|
// #ifdef H5
|
|
this.appId = uni.getStorageSync(constant.mapping.W_APP_ID)
|
|
// #endif
|
|
let _fee = JSON.parse(options.fee);
|
|
this.bookparams = _fee;
|
|
this.bookList = JSON.parse(_fee.bookList);
|
|
// debugger
|
|
for (var col = 0; col < this.bookList.length; col++) {
|
|
this.totalMoney = (Number(this.totalMoney) + Number(this.bookList[col].cdMoney)).toFixed(2);
|
|
}
|
|
if (Number(this.totalMoney).toFixed(2) == Number(this.bookparams.totalMoney).toFixed(2)) {
|
|
this.canPay = "t";
|
|
}
|
|
},
|
|
onShow() {},
|
|
methods: {
|
|
loadOwenrInfo: function() {
|
|
let _that = this;
|
|
// debugger
|
|
context.getOwner(function(_ownerInfo) {
|
|
console.log('用户信息');
|
|
console.log(_ownerInfo);
|
|
_that.ownerInfo = _ownerInfo;
|
|
});
|
|
},
|
|
|
|
SwitchA(e) {
|
|
this.switchA = e.detail.value
|
|
},
|
|
// 时间转换
|
|
HoursStr(hours) {
|
|
let hourSlot = hours + ":00-" + (Number(hours) + 1) + ":00";
|
|
return hourSlot;
|
|
},
|
|
onFeeMonthChange: function(e) {
|
|
console.log(e);
|
|
},
|
|
onFeeMonthCancel: function(e) {
|
|
this.showFeeMonth = false;
|
|
},
|
|
_payWxApp: function(_data) {
|
|
// debugger
|
|
console.log('_payWxApp');
|
|
if (this.canPay == "t") {
|
|
let _receivedAmount = this.receivableAmount;
|
|
wx.showLoading({
|
|
title: '支付中'
|
|
});
|
|
|
|
let _tradeType = 'APP';
|
|
let _objData = {
|
|
cycles: this.feeMonth,
|
|
communityId: this.communityId,
|
|
feeId: this.feeId,
|
|
feeName: '物业费',
|
|
receivedAmount: _receivedAmount,
|
|
tradeType: _tradeType,
|
|
appId: this.appId,
|
|
endTime: this.formatEndTime,
|
|
couponList: this.couponList
|
|
};
|
|
context.request({
|
|
url: constant.url.preOrder,
|
|
header: context.getHeaders(),
|
|
method: "POST",
|
|
data: _objData,
|
|
//动态数据
|
|
success: function(res) {
|
|
console.log("微信支付",res)
|
|
if (res.statusCode == 200 && res.data.code == '0') {
|
|
let data = res.data; //成功情况下跳转
|
|
|
|
let obj = {};
|
|
let orderInfo = {};
|
|
// #ifdef MP-WEIXIN
|
|
obj = {
|
|
appid: data.appId,
|
|
noncestr: data.nonceStr,
|
|
package: 'Sign=WXPay', // 固定值,以微信支付文档为主
|
|
partnerid: data.partnerid,
|
|
prepayid: data.prepayid,
|
|
timestamp: data.timeStamp,
|
|
sign: data.sign // 根据签名算法生成签名
|
|
}
|
|
// #endif
|
|
// #ifdef APP-PLUS
|
|
obj = getPayInfo(data);
|
|
// #endif
|
|
|
|
// 第二种写法,传对象字符串
|
|
orderInfo = JSON.stringify(obj)
|
|
uni.requestPayment({
|
|
provider: 'wxpay',
|
|
orderInfo: orderInfo, //微信、支付宝订单数据
|
|
success: function(res) {
|
|
uni.showToast({
|
|
title: "支付成功",
|
|
duration: 2000
|
|
});
|
|
uni.reLaunch({
|
|
url: '../../pages/appointment/myBoomList',
|
|
fail (error) {
|
|
console.log(error)
|
|
}
|
|
});
|
|
},
|
|
fail: function(err) {
|
|
console.log('fail:' + JSON.stringify(err));
|
|
}
|
|
});
|
|
wx.hideLoading();
|
|
return;
|
|
}
|
|
if (res.statusCode == 200 && res.data.code == '100') {
|
|
let data = res.data; //成功情况下跳转
|
|
uni.showToast({
|
|
title: "支付成功",
|
|
duration: 2000
|
|
});
|
|
setTimeout(function() {
|
|
uni.reLaunch({
|
|
url: '../../pages/appointment/myBoomList',
|
|
fail (error) {
|
|
console.log(error)
|
|
}
|
|
});
|
|
}, 2000)
|
|
|
|
return;
|
|
}
|
|
|
|
wx.hideLoading();
|
|
wx.showToast({
|
|
title: "缴费失败",
|
|
icon: 'none',
|
|
duration: 2000
|
|
});
|
|
},
|
|
fail: function(e) {
|
|
wx.hideLoading();
|
|
wx.showToast({
|
|
title: "服务器异常了",
|
|
icon: 'none',
|
|
duration: 2000
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
wx.showLoading({
|
|
title: '支付失败'
|
|
});
|
|
}
|
|
},
|
|
onPayFee: function() {
|
|
// debugger
|
|
let _that = this;
|
|
if (this.canPay == "t") {
|
|
let totalMoney = this.totalMoney;
|
|
wx.showLoading({
|
|
title: '支付中'
|
|
});
|
|
let _tradeType = 'JSAPI';
|
|
|
|
// debugger
|
|
let spacesList = [];
|
|
for (var col = 0; col < this.bookList.length; col++) {
|
|
let hoursData = this.bookList[col].hours;
|
|
let sId = this.bookList[col].spaceId;
|
|
let openTimes = [];
|
|
let inList = false;
|
|
for (var cola = 0; cola < spacesList.length; cola++) {
|
|
if (sId == spacesList[cola].spaceId) {
|
|
// debugger;
|
|
openTimes = spacesList[cola].openTimes;
|
|
inList = true;
|
|
break;
|
|
}
|
|
}
|
|
openTimes.push({
|
|
hours: hoursData
|
|
});
|
|
|
|
if (!inList) {
|
|
spacesList.push({
|
|
spaceId: sId,
|
|
openTimes
|
|
});
|
|
}
|
|
}
|
|
|
|
let _objData = {
|
|
"business": "venueReservation",
|
|
"tradeType": _tradeType,
|
|
"communityId": this.ownerInfo.communityId,
|
|
"spaces": JSON.stringify(spacesList),
|
|
"personName": getUserName(),
|
|
"personTel": getUserTel(),
|
|
"payWay": "2",
|
|
"state": "S",
|
|
"remark": "",
|
|
"appointmentTime": this.bookparams.bookDate
|
|
};
|
|
//{"spaceId":"102022093043260007","personName":"wuxw","personTel":"18909711443","appointmentTime":"01:00","receivableAmount":"10","receivedAmount":"10","payWay":"2","state":"S","remark":"123","appointmentDate":"2022-09-01","communityId":"2022081539020475"}
|
|
console.log('_objData');
|
|
context.request({
|
|
url: url.unifiedPayment,
|
|
header: context.getHeaders(),
|
|
method: "POST",
|
|
data: _objData,
|
|
//动态数据
|
|
success: function(res) {
|
|
console.log("微信支付2",res)
|
|
// debugger
|
|
if (res.statusCode == 200 && res.data.code == '0') {
|
|
let data = res.data; //成功情况下跳转
|
|
// #ifdef MP-WEIXIN
|
|
uni.requestPayment({
|
|
'timeStamp': data.timeStamp,
|
|
'nonceStr': data.nonceStr,
|
|
'package': data.package,
|
|
'signType': data.signType,
|
|
'paySign': data.sign,
|
|
'success': function(res) {
|
|
console.log("微信支付22",res)
|
|
uni.showToast({
|
|
title: "支付成功",
|
|
duration: 2000
|
|
});
|
|
uni.reLaunch({
|
|
url: '../../pages/appointment/myBoomList',
|
|
fail (error) {
|
|
console.log(error)
|
|
}
|
|
});
|
|
},
|
|
'fail': function(res) {
|
|
console.log('fail:' + JSON.stringify(res));
|
|
}
|
|
});
|
|
// #endif
|
|
// #ifdef H5
|
|
WexinPayFactory.wexinPay(data, function() {
|
|
uni.showToast({
|
|
title: "支付成功",
|
|
duration: 2000
|
|
});
|
|
uni.reLaunch({
|
|
url: '../../pages/appointment/myBoomList',
|
|
fail (error) {
|
|
console.log(error)
|
|
}
|
|
});
|
|
});
|
|
// #endif
|
|
wx.hideLoading();
|
|
return;
|
|
}
|
|
if (res.statusCode == 200 && res.data.code == '100') {
|
|
let data = res.data; //成功情况下跳转
|
|
uni.showToast({
|
|
title: "支付成功",
|
|
duration: 2000
|
|
});
|
|
setTimeout(function() {
|
|
uni.reLaunch({
|
|
url: '../../pages/appointment/myBoomList',
|
|
fail (error) {
|
|
console.log(error)
|
|
}
|
|
});
|
|
}, 2000)
|
|
|
|
return;
|
|
} else if (res.data.code == '404') {
|
|
debugger
|
|
let tipsIndex = res.data.msg.indexOf("已经被预约");
|
|
if (tipsIndex>=0){
|
|
let tips = _that.HoursStr(res.data.msg.substr(0, tipsIndex))+"\n\r" + res.data.msg
|
|
.substr(tipsIndex, res.data.msg.length - tipsIndex);
|
|
|
|
wx.showToast({
|
|
title: "缴费失败:" + tips,
|
|
icon: 'none',
|
|
duration: 4000
|
|
});
|
|
}else{
|
|
wx.showToast({
|
|
title: "缴费失败:" + res.data.msg,
|
|
icon: 'none',
|
|
duration: 4000
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: "缴费失败:" + res.data.msg,
|
|
icon: 'none',
|
|
duration: 2000
|
|
});
|
|
}
|
|
wx.hideLoading();
|
|
},
|
|
fail: function(e) {
|
|
wx.hideLoading();
|
|
wx.showToast({
|
|
title: "服务器异常了",
|
|
icon: 'none',
|
|
duration: 2000
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
debugger
|
|
wx.showLoading({
|
|
title: '支付失败'
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
<style>
|
|
.ppf_item{
|
|
padding: 0rpx 0rpx 0rpx 0rpx;
|
|
}
|
|
|
|
.block__title {
|
|
margin: 0;
|
|
font-weight: 400;
|
|
font-size: 14px;
|
|
color: rgba(69,90,100,.6);
|
|
padding: 40rpx 30rpx 20rpx;
|
|
}
|
|
|
|
.button_up_blank{
|
|
height: 40rpx;
|
|
}
|
|
|
|
.block__bottom{
|
|
height: 180rpx;
|
|
}
|
|
.fee-last {
|
|
margin-bottom: 200upx;
|
|
}
|
|
|
|
.cu-btn.lgplus {
|
|
padding: 0 20px;
|
|
font-size: 18px;
|
|
height: 100upx;
|
|
|
|
}
|
|
|
|
.cu-btn.sharp {
|
|
border-radius: 0upx;
|
|
}
|
|
|
|
.line-height {
|
|
line-height: 100upx;
|
|
}
|
|
</style>
|