This commit is contained in:
xyc 2025-04-16 18:03:21 +08:00
parent 7f13e6cbcb
commit f4e040e0a8

View File

@ -8,7 +8,7 @@
</headers>
<!-- #endif -->
<!-- #endif -->
<u-loadmore :status="status" v-if="show == true"/>
<u-loadmore :status="status" v-if="show == true" />
</view>
<view class="bm-page">
<view class="bm-page-top">
@ -30,8 +30,14 @@
<view class="bm-page-info-title">
选择教练
</view>
<view class="d-s" @click="!jlId && (showjl = true)"
:style="{color: jlId ? '#999' : '', pointerEvents: jlId ? 'none' : ''}">
<view class="d-s" v-if="localCoachId"
:style="{color: localCoachId ? '#999' : '', pointerEvents: localCoachId ? 'none' : ''}">
<view class="" v-if="!jlName">请选择</view>
<view class="" v-else>{{ jlName }}</view>
<u-icon name="arrow-right" size="16" :color="jlId ? '#999' : ''"></u-icon>
</view>
<view class="d-s" @click="showjl = true" v-else
:style="{color: localCoachId ? '#999' : '', pointerEvents: localCoachId ? 'none' : ''}">
<view class="" v-if="!jlName">请选择</view>
<view class="" v-else>{{ jlName }}</view>
<u-icon name="arrow-right" size="16" :color="jlId ? '#999' : ''"></u-icon>
@ -151,13 +157,18 @@
</template>
<script>
import headers from '../../components/header/headers.vue'
import request from '@/utils/request.js'
import tabbar from '../../components/tabbar/tabbar.vue'
import upload from '@/utils/upload.js'
import {getCoachId, getLocalUserInfo,getStaffType,getToken} from '../../utils/auth'
import headers from '../../components/header/headers.vue'
import request from '@/utils/request.js'
import tabbar from '../../components/tabbar/tabbar.vue'
import upload from '@/utils/upload.js'
import {
getCoachId,
getLocalUserInfo,
getStaffType,
getToken
} from '../../utils/auth'
export default {
export default {
data() {
return {
titles: "报名",
@ -238,6 +249,7 @@ export default {
this.userinfo = getLocalUserInfo()
this.localStaffType = getStaffType()
this.localCoachId = getCoachId()
console.log('localCoachId', this.localCoachId);
},
onShow() {
this.getListAll()
@ -277,9 +289,9 @@ export default {
methods: {
// or
updateDisplayPrice() {
this.currentPrice = this.selectedPayType === 1
? this.rightInfoList.reserveMoney
: this.rightInfoList.price;
this.currentPrice = this.selectedPayType === 1 ?
this.rightInfoList.reserveMoney :
this.rightInfoList.price;
},
//
@ -293,7 +305,7 @@ export default {
},
tenantIdFlag: false
})
console.log('data',res.data)
console.log('data', res.data)
// 1. subject23
const filteredData = res.data.filter(coach =>
@ -319,7 +331,7 @@ export default {
];
if (this.localStaffType === '02' && this.localCoachId) {
console.log('123123',this.localStaffType)
console.log('123123', this.localStaffType)
console.log('321321', this.localCoachId)
console.log('coach', uniqueCoaches) // 使
const defaultCoach = uniqueCoaches.find(coach =>
@ -329,6 +341,8 @@ export default {
if (defaultCoach) {
this.jlName = defaultCoach.coachName;
this.jlId = defaultCoach.coachId;
} else {
this.localCoachId = null
}
}
},
@ -397,7 +411,7 @@ export default {
this.jlName = e.value[0].label; //
this.jlId = e.value[0].value.coachId; // ID
this.showjl = false;
console.log('jlId',this.jlId)
console.log('jlId', this.jlId)
},
jlcancel() {
this.showjl = false
@ -452,19 +466,31 @@ export default {
//
async validateForm() {
if (!this.sfzimg) {
uni.showToast({title: '请上传身份证照片', icon: 'error'});
uni.showToast({
title: '请上传身份证照片',
icon: 'error'
});
return false;
}
if (!this.phone || !this.name || !this.identity) {
uni.showToast({title: '请输入完整信息', icon: 'error'});
uni.showToast({
title: '请输入完整信息',
icon: 'error'
});
return false;
}
if (!this.isValidPhoneNumber(this.phone)) {
uni.showToast({title: '手机号不规范', icon: 'error'});
uni.showToast({
title: '手机号不规范',
icon: 'error'
});
return false;
}
if (!this.isValidIDNumber(this.identity)) {
uni.showToast({title: '身份证不规范', icon: 'error'});
uni.showToast({
title: '身份证不规范',
icon: 'error'
});
return false;
}
return true;
@ -478,7 +504,9 @@ export default {
try {
// 1.
if (!this.checkLogin()) {
uni.navigateTo({url: '/pages/login/login'});
uni.navigateTo({
url: '/pages/login/login'
});
return;
}
if (!await this.validateForm()) return;
@ -500,7 +528,10 @@ export default {
await this.createNewOrder();
} catch (error) {
if (!error.message.includes('cancel')) {
uni.showToast({title: error.message || '操作失败', icon: 'none'});
uni.showToast({
title: error.message || '操作失败',
icon: 'none'
});
}
} finally {
this.loading = false;
@ -647,17 +678,20 @@ export default {
}, */
async processExistingOrder() {
uni.showLoading({title: '准备支付...', mask: true});
uni.showLoading({
title: '准备支付...',
mask: true
});
try {
// 1.
const payType = this.selectedPayType;
const reserveMoney = payType === 1
? this.rightInfoList.reserveMoney
: this.rightInfoList.price;
const restMoney = payType === 1
? this.rightInfoList.price - reserveMoney
: 0;
const reserveMoney = payType === 1 ?
this.rightInfoList.reserveMoney :
this.rightInfoList.price;
const restMoney = payType === 1 ?
this.rightInfoList.price - reserveMoney :
0;
// 2.
const orderDetail = await this.getOrderDetail(this.orderId);
@ -789,7 +823,8 @@ export default {
resolve(res.errMsg === 'requestPayment:ok' ? 'success' : 'fail');
},
fail: (err) => {
resolve(err.errMsg === 'requestPayment:fail cancel' ? 'cancelled' : 'fail');
resolve(err.errMsg === 'requestPayment:fail cancel' ? 'cancelled' :
'fail');
}
});
});
@ -797,13 +832,16 @@ export default {
//
async createNewOrder() {
uni.showLoading({title: '创建订单中...', mask: true});
uni.showLoading({
title: '创建订单中...',
mask: true
});
try {
if (this.startPay === 1) {
const payType = this.selectedPayType;
const reserveMoney = payType === 1
? this.rightInfoList.reserveMoney
: this.rightInfoList.price;
const reserveMoney = payType === 1 ?
this.rightInfoList.reserveMoney :
this.rightInfoList.price;
this.payPrice = reserveMoney
await this.wxPayClick(
this.name,
@ -823,7 +861,7 @@ export default {
},
//
async generateOrderNo(){
async generateOrderNo() {
const res = await request({
url: '/small/jxInfo/generateOrderNo',
method: 'GET',
@ -926,10 +964,10 @@ export default {
if (this.localCoachId && this.localStaffType == '01') {
studentData.source = '01';
studentData.sourceUserId = getCoachId(); // IDID
}else if (this.localCoachId && this.localStaffType == '02') {
} else if (this.localCoachId && this.localStaffType == '02') {
studentData.source = '02';
studentData.sourceUserId = getCoachId(); // IDID
}else{
} else {
studentData.source = '03'; //
}
@ -962,7 +1000,7 @@ export default {
}, */
// users
updateSysUsersNickName(){
updateSysUsersNickName() {
request({
url: '/app-api/system/user/update',
method: 'PUT',
@ -977,7 +1015,10 @@ export default {
checkLogin() {
const token = uni.getStorageSync('App-Token');
if (!token) {
uni.showToast({title: '请先登录', icon: 'none'});
uni.showToast({
title: '请先登录',
icon: 'none'
});
return false;
}
return true;
@ -1062,11 +1103,11 @@ export default {
}
}
}
</script>
<style scoped lang="scss">
.bm-page {
.bm-page {
padding: 30rpx;
.bm-page-button {
@ -1214,30 +1255,30 @@ export default {
border-radius: 12rpx;
}
}
}
}
.content {
.content {
background: #f4f5f6;
// background: linear-gradient(180deg, #9ffcc5 0%, #84fcbc 14%, rgba(255, 255, 255, 0.84) 24%, rgba(255, 255, 255, 0.84) 100%);
height: 100vh;
}
}
.container {
.container {
width: 100%;
background: #f4f5f6;
box-sizing: border-box;
padding-top: 88px;
}
}
.onel {
.onel {
width: 18px;
height: 18px;
border-radius: 50%;
overflow: hidden;
border: 1px solid #8c8c8d;
}
}
.twol {
.twol {
width: 18px;
height: 18px;
border-radius: 50%;
@ -1248,14 +1289,14 @@ export default {
align-items: center;
justify-content: center;
color: #fff;
}
}
.d-s {
.d-s {
display: flex;
align-items: center;
}
}
.anniu {
.anniu {
width: 120px;
height: 35px;
border-radius: 4px;
@ -1265,22 +1306,22 @@ export default {
align-items: center;
justify-content: center;
font-size: 14px;
}
}
.popup-box {
.popup-box {
width: 300px;
border-radius: 10px;
background: #fff;
box-sizing: border-box;
padding: 10px;
}
}
.title_s {
.title_s {
font-weight: bold;
margin-bottom: 10px;
}
}
.clv {
.clv {
color: #fff;
background: #2C78F5;
width: 26px;
@ -1291,9 +1332,9 @@ export default {
align-items: center;
justify-content: center;
font-weight: bold;
}
}
.size-lv {
.size-lv {
margin-right: 35px;
}
}
</style>