Merge remote-tracking branch 'origin/master'

# Conflicts:
#	pagesA/register/index.vue
This commit is contained in:
xyc 2025-04-16 17:44:32 +08:00
commit 7f13e6cbcb
9 changed files with 1274 additions and 1227 deletions

View File

@ -55,9 +55,10 @@
gogogo(id) {
this.actindex = id;
if (id == 1) {
uni.reLaunch({
/* uni.switchTab({
url: '/newPages/newIndex/index'
})
}) */
uni.switchTab({ url: '/newPages/newIndex/index' });
}
if (id == 2) {
uni.reLaunch({
@ -65,10 +66,11 @@
})
}
if (id == 3) {
uni.reLaunch({
/* uni.switchTab({
// url: '/pages/my/my'
url: '/newPages/my/index'
})
}) */
uni.switchTab({ url: '/newPages/my/index' });
}
if (id == 4) {
uni.showToast({

View File

@ -3,7 +3,7 @@ module.exports = {
// baseUrl: 'https://vue.ruoyi.vip/prod-api',
imagesUrl: 'http://122.51.230.86:9000',
// baseUrl: 'http://localhost:48080',
// baseUrl: 'https://www.nuoyunr.com',
baseUrl: 'http://192.168.1.27:48080',
appId:'wx684fc832e96cee65',
appSecret:'d1fecac806c5f3cd9aca9f3d5c3759c7',

View File

@ -195,6 +195,7 @@
flex-direction: column;
padding: 0 20rpx;
box-sizing: border-box;
}
}
.messageItem {

View File

@ -102,7 +102,7 @@
</view>
</view>
<tabbar :msg='msg'></tabbar>
<!-- <tabbar :msg='msg'></tabbar> -->
<u-popup round="20" :show="showQrCode" @close="closeQrCode" mode="center" zoom="false" @open="openQrCode">
<view style="padding: 50rpx 50rpx 20rpx 50rpx">
<canvas id="qrcode" canvas-id="qrcode" style="width: 300rpx;height: 300rpx"/>
@ -175,7 +175,9 @@ export default {
},
onShow() {
if (getToken()) {
// this.findSelfInfo()
this.selfInfoLocal = getLocalUserInfo()
this.getUserInfo()
this.systemInfo()
}
},

View File

@ -37,15 +37,14 @@
</view>
<view class="itemContent">
<!-- 使用 scroll-view 包裹 SchoolInfo 组件 -->
<scroll-view class="school-scroll-view" scroll-y @scrolltolower="onReachBottomCus" refresher-enabled
@refresherrefresh="onRefresherrefresh" :refresher-triggered="isTriggered">
<scroll-view class="school-scroll-view" scroll-y>
<SchoolInfo style="" v-for="(school, index) in schoolList" :key="index" :schoolInfo="school"
@click="goSchoolDetail(school)" />
</scroll-view>
</view>
</view>
<tabbar :msg='msg'></tabbar>
<!-- <tabbar :msg='msg'></tabbar> -->
</view>
</template>
@ -106,6 +105,7 @@
};
},
onLoad(query) {
console.log('query', query)
// setInviteId('JLPXF1')
// this.getTenantIdByInviteId()
this.getSwiperList()
@ -117,10 +117,10 @@
//code
setInviteId(theRequest['inviteId'])
this.getTenantIdByInviteId()
//
// uni.reLaunch({
// url: '/pages/login/login'
// })
/* //先登
uni.reLaunch({
url: '/pages/login/login'
}) */
} else {
removeInviteId()
removeCoachId()
@ -146,7 +146,7 @@
uniqueCode: getInviteId()
}
}).then(res => {
console.log(123, res.data)
console.log(123)
if (res.data != null) {
this.qTenantId = res.data.tenantId
this.qCoachId = res.data.userId
@ -164,6 +164,7 @@
})
},
getList() {
console.log('getInviteId', getInviteId())
const params = {
pageNo: this.pageNo,
pageSize: this.pageSize,
@ -249,7 +250,7 @@
method: 'GET'
}).then(res => {
res.data.forEach(item => {
item.swiperPicture = this.imageUrl + item.swiperPicture
item.swiperPicture = this.imageUrl + '/' + item.swiperPicture
})
this.swiperList = res.data
})
@ -402,6 +403,7 @@
display: flex;
flex-direction: column;
row-gap: 20rpx;
margin-bottom: 200rpx;
}
.top_ {

View File

@ -99,11 +99,9 @@
}
],
"subPackages": [
{
"subPackages": [{
"root": "pagesA",
"pages": [
{
"pages": [{
"path": "appointmentAdd/index",
"style": {
"enablePullDownRefresh": true,
@ -199,7 +197,23 @@
"pages": []
}
],
"tabBar": {
"color": "#999999", //
"selectedColor": "#2c78f5", //
"list": [{
"pagePath": "newPages/newIndex/index",
"text": "首页",
"iconPath": "static/imgs/homeone.png",
"selectedIconPath": "static/imgs/hometwo.png"
},
{
"pagePath": "newPages/my/index",
"text": "我的",
"iconPath": "static/imgs/myone.png",
"selectedIconPath": "static/imgs/mytwo.png"
}
]
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",

View File

@ -184,8 +184,9 @@ export default {
};
},
onLoad(options) {
console.log('options', options)
this.userInfo = getLocalUserInfo()
this.getUserOrderDetails()
// this.getUserOrderDetails()
this.process.subject = options.subject
this.opTenantId = options.tenantId
this.opCourseType = options.courseType
@ -200,6 +201,8 @@ export default {
this.process.userId = this.userInfo.id
this.process.coachId = options.coachId
this.process.userName = options.nickname
this.process.tenantId = options.tenantId
this.getCourseCompleteStatus();
},
onReady() {
//
@ -325,33 +328,35 @@ export default {
});
},
getUserOrderDetails() {
request({
url: '/app-api/small/drive/school-course-order/page',
method: 'GET',
params: {
userId: this.userInfo.id,
paymentStatus: '2',
ifEnd: 0,
},
tenantIdFlag: false
}).then(res => {
this.orderList = res.data.records;
if (res.data.records.length > 0) {
const tempData = res.data.records[0]
if (this.process.subject != 2 && this.process.subject != 3) {
this.process.courseId = tempData.courseId
}
// getUserOrderDetails() {
// request({
// url: '/app-api/small/drive/school-course-order/page',
// method: 'GET',
// params: {
// userId: this.userInfo.id,
// paymentStatus: '2',
// ifEnd: false,
// tenantId: 180,
// },
// tenantIdFlag: false
// }).then(res => {
// console.log('123123', res)
// this.orderList = res.data.records;
// if (res.data.records.length > 0) {
// const tempData = res.data.records[0]
// if (this.process.subject != 2 && this.process.subject != 3) {
// this.process.courseId = tempData.courseId
// }
if (this.process.subject != 2 && this.process.subject != 3) {
this.courseType = tempData.courseType
}
// if (this.process.subject != 2 && this.process.subject != 3) {
// this.courseType = tempData.courseType
// }
this.process.tenantId = tempData.tenantId
this.getCourseCompleteStatus()
}
});
},
// this.process.tenantId = tempData.tenantId
// this.getCourseCompleteStatus()
// }
// });
// },
getCourseCompleteStatus() {
request({
@ -362,10 +367,15 @@ export default {
courseId: this.process.courseId,
}
}).then(res => {
console.log('res123',res)
this.courseCompleteStatusList = res.data.records
if (this.courseCompleteStatusList.length > 0) {
const subject2 = this.courseCompleteStatusList.find(item => item.subject === 2)
const subject3 = this.courseCompleteStatusList.find(item => item.subject === 3)
const subject1Or4 = this.courseCompleteStatusList.find(item => item.subject === 1 || item.subject === 4)
if (subject1Or4) {
this.courseType = subject1Or4.courseType
}
if (subject2?.status === '2' && subject3?.status === '2') {
this.subjectColumns = [['科目一', '科目四']]
@ -383,7 +393,8 @@ export default {
},
saveData() {
if (!this.process.userId || !this.process.subject || !this.process.examScore || !this.process.examStatus || !this.process.examTime) {
console.log('process', this.process)
if (!this.process.userId || !this.process.subject || this.process.examScore === null || this.process.examStatus === null || !this.process.examTime) {
uni.showToast({title: '信息填写不完整', icon: 'none'});
return;
}
@ -396,24 +407,23 @@ export default {
},
saveDataOne() {
if (this.process.subject === 1 && this.courseCompleteStatusList.length <= 0) {
uni.showToast({title: '请联系驾校人员', icon: 'none'});
uni.showToast({title: '请联系驾校人员!', icon: 'none'});
return;
}
if (this.process.subject === 4 && this.courseCompleteStatusList.length <= 0) {
uni.showToast({title: '请联系驾校人员', icon: 'none'});
uni.showToast({title: '请联系驾校人员!', icon: 'none'});
return;
}
const postData = {
...this.process, // process
userName: this.userInfo.nickname,
remark: this.process.remark,
images: this.fileList?.map(item => item.url).join(',') || '',
}
// this.process.images = this.fileList?.map(item => item.url).join(',') || '';
if (!this.process.userId || !this.process.subject || !this.process.examScore || !this.process.examStatus || !this.process.examTime) {
if (!this.process.userId || !this.process.subject || this.process.examScore === null || this.process.examStatus === null || !this.process.examTime) {
uni.showToast({title: '信息填写不完整', icon: 'none'});
return;
}
@ -447,7 +457,6 @@ export default {
fraction: this.process.examScore,
ifPass: this.process.examStatus,
id: this.batchItemId,
userName: this.userInfo.nickname,
remark: this.process.remark,
images: this.fileList?.map(item => item.url).join(',') || '',
}
@ -456,7 +465,7 @@ export default {
this.process.fraction = this.process.examScore
this.process.ifPass = this.process.examStatus
this.process.images = this.fileList?.map(item => item.url).join(',') || ''; */
if (!this.process.userId || !this.process.subject || !this.process.examScore || !this.process.examStatus || !this.process.examTime) {
if (!this.process.userId || !this.process.subject || this.process.examScore === null || this.process.examStatus === null || !this.process.examTime) {
uni.showToast({title: '信息填写不完整', icon: 'none'});
return;
}

View File

@ -15,7 +15,7 @@
<view
class="box_5 flex-col" v-for="(item, index) in examList"
:key="index"
:style="{ height: ((item.subject != 2 && item.subject != 3) || getButtonInfo(item).text === '1') ? '230rpx' : 'auto' }">
:style="{ height: ((item.subject != 2 && item.subject != 3) || (getButtonInfo(item).text === '1' || getButtonInfo(item).text === '2')) ? '230rpx' : 'auto' }">
<view class="block_3 flex-row justify-between">
<view class="text-group_1 flex-col justify-between">
@ -45,9 +45,8 @@
<text class="text_8">考试地址</text>
<text class="text_9">{{ item.addr }}</text>
</view>
<view class="block_5 flex-row" v-if="(item.subject == 2 || item.subject == 3) && getButtonInfo(item).text !== '1'">
<view class="block_5 flex-row" v-if="(item.subject == 2 || item.subject == 3) && (getButtonInfo(item).text !== '1' && getButtonInfo(item).text !== '2')">
<view class="text-wrapper_4 flex-col" @click="handleButtonClick(item)" >
<text class="text_10">{{ getButtonInfo(item).text }}</text>
</view>
</view>
@ -153,13 +152,12 @@ export default {
//
onEnterScoreClick() {
if (this.courseList.length > 0) {
console.log('123123123', this.courseList)
this.pickerColumns = this.courseList.map(item => ({
label: item.courseName,
value: item.courseId
}));
this.pickerShow = true;
} else if (this.courseList.length === 1) {
this.goToScoreEntry(this.courseList[0]);
} else {
this.$u.toast("暂无课程信息");
}
@ -174,7 +172,7 @@ export default {
this.getProcess(selectedCourse.courseId).then(processData => {
if (!processData || processData.length === 0) {
uni.showToast({
title: '请联系驾校负责人',
title: '暂无课程进度信息',
icon: 'none'
});
return;
@ -201,10 +199,14 @@ export default {
//
goToScoreEntry(course) {
console.log('course', course)
/* uni.navigateTo({
url: `/pagesA/examinationAdd/index?courseId=${course.value}&courseType=${course.courseType}&userId=${course.userId}&tenantId=${course.tenantId}&coachId=${course.coachUserId}`
}); */
this.$u.route({
url: '/pagesA/examinationAdd/index',
params: {
courseId: course.value,
courseId: course.courseId,
courseType: course.courseType,
userId: course.userId,
tenantId: course.tenantId,
@ -242,7 +244,10 @@ export default {
userId: this.userInfo.id,
}
}).then(res => {
this.examList = res.data
// this.examList = res.data
this.examList = res.data.sort((a, b) => {
return a.subject - b.subject;
});
// this.getExamTwoList()
this.isTriggered = false
})
@ -267,6 +272,7 @@ export default {
url: '/app-api/small/drive/school-course-order/getCourseByLoginUser',
method: 'GET'
}).then(res => {
console.log('课程', res)
this.courseList = res.data
})
},
@ -318,7 +324,7 @@ export default {
if (item.fraction == null) {
return {text: '成绩录入', type: 'input'}
} else if (!item.ifPass) {
return {text: '考试未通过', type: 'failed'}
return {text: '2', type: 'failed'}
} else if (!item.ifEvaluate) {
return {text: '开始评价', type: 'evaluate'}
}else {

View File

@ -155,12 +155,7 @@
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 {getCoachId, getLocalUserInfo,getStaffType,getToken} from '../../utils/auth'
export default {
data() {
@ -282,13 +277,62 @@
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;
},
//
async getListAll() {
this.columnjl = []
let res = await request({
url: '/app-api/dl-drive-school-coach-small/queryCoachByCourseId',
method: 'GET',
params: {
courseId: this.courseId,
},
tenantIdFlag: false
})
console.log('data',res.data)
// 1. subject23
const filteredData = res.data.filter(coach =>
coach.subject === '2' || coach.subject === '3'
);
// 2. - coachId
const uniqueCoaches = [];
const coachIds = new Set(); // 使SetcoachId
filteredData.forEach(coach => {
if (!coachIds.has(coach.coachId)) {
coachIds.add(coach.coachId);
uniqueCoaches.push(coach);
}
});
this.columnjl = [
uniqueCoaches.map(coach => ({
label: coach.coachName,
value: coach
}))
];
if (this.localStaffType === '02' && this.localCoachId) {
console.log('123123',this.localStaffType)
console.log('321321', this.localCoachId)
console.log('coach', uniqueCoaches) // 使
const defaultCoach = uniqueCoaches.find(coach =>
String(coach.coachId) === String(this.localCoachId)
);
console.log('111222333', defaultCoach)
if (defaultCoach) {
this.jlName = defaultCoach.coachName;
this.jlId = defaultCoach.coachId;
}
}
},
/* async getListAll() {
this.columnjl = []
let res = await request({
url: '/app-api/dl-drive-school-coach-small/queryCoachByCourseId',
@ -304,6 +348,16 @@
const filteredData = res.data.filter(coach =>
coach.subject === '2' || coach.subject === '3'
);
// - coachId
const uniqueCoaches = [];
const coachIds = new Set();
filteredData.forEach(coach => {
if (!coachIds.has(coach.coachId)) {
coachIds.add(coach.coachId);
uniqueCoaches.push(coach);
}
});
this.columnjl = [
filteredData.map(coach => ({
@ -325,25 +379,8 @@
this.jlId = defaultCoach.coachId;
}
}
},
/* async getListAll() {
this.columnjl = []
let res = await request({
url: '/app-api/dl-drive-school-coach-small/list',
method: 'GET',
params: {
tenantId: this.tenantId,
},
tenantIdFlag: false
})
this.columnjl = [
res.data.map(coach => ({
label: coach.name,
value: coach
}))
];
}, */
getsexindex(index) {
this.sex = index
},
@ -358,8 +395,9 @@
jlconfirm(e) {
console.log('e', e)
this.jlName = e.value[0].label; //
this.jlId = e.value[0].value.userId; // ID
this.jlId = e.value[0].value.coachId; // ID
this.showjl = false;
console.log('jlId',this.jlId)
},
jlcancel() {
this.showjl = false
@ -414,31 +452,19 @@
//
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;
@ -452,9 +478,7 @@
try {
// 1.
if (!this.checkLogin()) {
uni.navigateTo({
url: '/pages/login/login'
});
uni.navigateTo({url: '/pages/login/login'});
return;
}
if (!await this.validateForm()) return;
@ -476,10 +500,7 @@
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;
@ -626,20 +647,17 @@
}, */
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);
@ -771,8 +789,7 @@
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');
}
});
});
@ -780,16 +797,13 @@
//
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,
@ -963,10 +977,7 @@
checkLogin() {
const token = uni.getStorageSync('App-Token');
if (!token) {
uni.showToast({
title: '请先登录',
icon: 'none'
});
uni.showToast({title: '请先登录', icon: 'none'});
return false;
}
return true;