第一次提交

This commit is contained in:
wangxiaowei
2025-06-11 10:21:51 +08:00
commit 52932d54b1
2341 changed files with 185283 additions and 0 deletions

321
pages/order/cashier.vue Normal file
View File

@ -0,0 +1,321 @@
<template>
<view :data-theme="theme()" :class="theme() || ''">
<view class="tc buy-checkout-top">
<view class="f32 mb20">待支付</view>
<view class="redA8 f60 fb">{{ payPrice || '0.00' }}</view>
</view>
<view class="buy-checkout p-0-30">
<view v-for="(item, index) in checkedPay" :key="index">
<view v-if="item == 20" :class="pay_type == 20 ? 'item active' : 'item'" @tap="payTypeFunc(20)">
<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 v-if="item == 30" :class="pay_type == 30 ? 'item active' : 'item'" @tap="payTypeFunc(30)">
<view class="d-s-c">
<view class="icon-box d-c-c mr10"><span class="icon iconfont icon-zhifubao"></span></view>
<text class="key">支付宝支付</text>
</view>
<view class="icon-box d-c-c"><span class="icon iconfont icon-xuanze"></span></view>
</view>
</view>
<view v-if="hasBanlance" class="item">
<view class="d-s-c">
<view class="icon-box d-c-c mr10"><span class="icon iconfont icon-yue"></span></view>
<text class="key">余额抵扣(剩余{{ balance }})</text>
</view>
<switch :color="getTheme()" style="transform:scale(0.7);margin-right: -20rpx;" :checked="balanceType" @change="switch2Change" />
</view>
</view>
<view class="bottom-btn" @click="submit"><button type="default">立即支付</button></view>
</view>
</template>
<script>
import { pay } from '@/common/pay.js';
export default {
data() {
return {
balance: '',
balanceType: false,
type: 0,
loading: true,
order_id: 0,
/* 0创建订单;10 20保证金 30直播充值 40充值 50预售定金 60尾款*/
order_type: 0,
pay_type: 20,
checkedPay: [],
payPrice: ''
};
},
computed: {
hasBanlance() {
if (this.order_type == 40 || this.balance <= 0) {
return false;
}
let n = this.checkedPay.indexOf(10);
if (n == -1) {
return false;
} else {
return true;
}
}
},
onLoad(e) {
let self = this;
// #ifdef MP
wx.enableAlertBeforeUnload({
message: '您的订单如在规定时间内未支付将被取消,请尽快完成支付',
success: function(res) {
// uni.reLaunch({
// ulr: '/pages/order/order-detail?order_id=' + self.order_id
// })
console.log('方法注册成功:', res);
},
fail: function(errMsg) {
console.log('方法注册失败:', errMsg);
}
});
// #endif
this.order_id = decodeURIComponent(e.order_id);
if (e.order_type) {
this.order_type = e.order_type;
}
this.getData();
},
onBackPress(options) {
if (this.order_type != 20 &&this.order_type != 30 && this.order_type != 40) {
if (options.from === 'navigateBack') {
console.log();
return true;
}
this.back();
return true;
}
},
methods: {
back() {
let self = this;
uni.showModal({
title: '提示',
content: '您的订单如在规定时间内未支付将被取消,请尽快完成支付',
cancelText: '继续支付',
confirmText: '确认离开',
success: function(res) {
if (res.confirm) {
uni.reLaunch({
ulr: '/pages/order/order-detail?order_id=' + self.order_id
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
getTheme() {
let name = this.theme();
let color = '#ff5704';
switch (name) {
case 'theme0':
color = '#ff5704';
break;
case 'theme1':
color = '#19ad57';
break;
case 'theme2':
color = '#ffcc00';
break;
case 'theme3':
color = '#33a7ff';
break;
case 'theme4':
color = '#e4e4e4';
break;
case 'theme5':
color = '#c8ba97';
break;
case 'theme6':
color = '#623ceb';
break;
}
return color;
},
getData() {
let self = this;
self.loading = true;
uni.showLoading({
title: '加载中'
});
let url = 'user.order/pay';
if (self.order_type == 20) {
url = 'supplier.index/pay';
}
if (self.order_type == 30) {
url = 'plus.live.plan/pay';
}
if (self.order_type == 40) {
url = 'balance.plan/pay';
}
if (self.order_type == 50) {
url = 'plus.advance.Order/pay';
}
let params = {
order_id: self.order_id,
pay_source: self.getPlatform()
};
self._get(url, params, function(res) {
self.loading = false;
let list = [];
res.data.payTypes.forEach(item => {
list.push(item * 1);
});
self.checkedPay = list;
self.payPrice = res.data.payPrice;
self.balance = res.data.balance || '';
if (self.checkedPay[0] != 10) {
self.pay_type = self.checkedPay[0] || self.checkedPay[1] || 20;
} else {
self.pay_type = self.checkedPay[1] || self.checkedPay[0];
}
uni.hideLoading();
});
},
switch2Change(e) {
this.balanceType = e.detail.value;
},
submit() {
let self = this;
self.loading = true;
uni.showLoading({
title: '加载中'
});
let url = 'user.order/pay';
if (self.order_type == 20) {
url = 'supplier.index/pay';
}
if (self.order_type == 40) {
url = 'balance.plan/pay';
}
if (self.order_type == 30) {
url = 'plus.live.plan/pay';
}
if (self.order_type == 50) {
url = 'plus.advance.Order/pay';
}
let use_balance = self.balanceType == true ? 1 : 0;
if (self.payPrice == 0) {
use_balance = 1;
}
let params = {
order_id: self.order_id,
pay_source: self.getPlatform(),
payType: self.pay_type,
use_balance: use_balance
};
self._post(url, params, function(res) {
self.loading = false;
uni.hideLoading();
pay(res, self, self.paySuccess, self.payError);
});
},
paySuccess(result) {
let self = this;
console.log(self.order_type);
if (self.order_type == 30 || self.order_type == 40) {
self.showSuccess('支付成功', function() {
console.log('back');
// #ifndef H5
uni.navigateBack({
delta: 1 //返回层数2则上上页
});
// #endif
// #ifdef H5
history.go(-1);
// #endif
});
return;
} else if (self.order_type == 20) {
self.showSuccess('支付成功', function() {
self.gotoPage('/pages/user/my_shop/my_shop', 'reLaunch');
});
return;
} else if (self.order_type == 50) {
self.showSuccess('支付成功', function() {
self.gotoPage('/pages/order/myorder', 'reLaunch');
});
return;
} else {
self.gotoPage('/pages/order/pay-success/pay-success?order_id=' + result.data.order_id, 'reLaunch');
return;
}
},
payError(result) {
let self = this;
let url = '/pages/order/myorder';
if (self.order_type == 30 || self.order_type == 40) {
// #ifndef H5
uni.navigateBack({
delta: parseInt(1)
});
// #endif
// #ifdef H5
history.go(-1);
// #endif
} else if (self.order_type == 20) {
self.gotoPage('/pages/user/my_shop/my_shop', 'redirect');
} else if (self.order_type == 50) {
self.gotoPage('/pages/order/myorder', 'redirect');
} else {
self.gotoPage('/pages/order/myorder', 'redirect');
}
},
payTypeFunc(n) {
this.pay_type = n;
}
}
};
</script>
<style lang="scss">
.buy-checkout-top {
padding: 100rpx 0;
}
.buy-checkout {
.item {
background-color: #ffffff;
margin-bottom: 28rpx;
box-shadow: 0rpx 13rpx 27rpx 0rpx rgba(172, 172, 172, 0.09);
border-bottom: none;
border-radius: 2rpx;
}
}
.bottom-btn {
position: fixed;
bottom: 0;
@include background_color('background_color');
@include font_color('text_color2');
width: 100%;
padding-bottom: env(safe-area-inset-bottom);
}
.bottom-btn > button {
width: 100%;
height: 116rpx;
@include background_color('background_color');
@include font_color('text_color2');
border: none;
border-radius: 0;
font-size: 35rpx;
font-weight: bold;
display: flexd;
justify-content: center;
align-items: center;
line-height: 116rpx;
}
</style>