Explorar el Código

包场优化、订单详情、搜索

学习?学个屁 hace 1 día
padre
commit
2e99b7d492

+ 55 - 12
src/pages/index/gymDetail/components/popup.vue

@@ -9,7 +9,7 @@
 						@click="sel_tab(item, index)">
 						<view class="today-time">{{ item.weekDayAndDate }}</view>
 						<view class="num">{{ item.noDayConcertsReservationNum || '0' }}场可订</view>
-						<view class="line" v-if="deteObj == index"></view>
+						<view class="line" v-if="deteSelIndex == index"></view>
 					</view>
 				</scroll-view>
 			</view>
@@ -85,11 +85,11 @@
 				<view class="p-price-card">
 					<view class="p-price">
 						<view class="text">商品总价(共{{ previewgymOrderDetail.timePeriod.length }}场)</view>
-						<view class="price"><text class="mini-text">¥</text>{{ previewgymOrderDetail.subtotal }}</view>
+						<view class="price"><text class="mini-text">¥</text>{{ previewgymOrderDetail.subtotal.toFixed(2) }}</view>
 					</view>
 					<view class="p-subtotal">
 						<text>小计</text>
-						<view class="total-price"><text class="mini-text">¥</text>{{ previewgymOrderDetail.totalPrice }}
+						<view class="total-price"><text class="mini-text">¥</text>{{ previewgymOrderDetail.totalPrice.toFixed(2) }}
 						</view>
 					</view>
 				</view>
@@ -117,7 +117,7 @@
 				<view style="height: 200rpx;"></view>
 				<view class="footer-pay">
 					<button hover-class="hover-style" @click="submitOrder">
-						<view class="btn-price"><text class="mini-text">¥</text>{{ previewgymOrderDetail.totalPrice }}
+						<view class="btn-price"><text class="mini-text">¥</text>{{ previewgymOrderDetail.totalPrice.toFixed(2) }}
 						</view>
 						<view class="btn-text">立即支付</view>
 					</button>
@@ -128,32 +128,70 @@
 </template>
 
 <script lang="ts" setup>
-import { ref, onMounted, computed } from 'vue';
+import { ref, onMounted, computed,watch } from 'vue';
 import { http } from '@/utils/http'
 import { TipsUtils, phoneHide, RouterUtils } from '@/utils/util';
 interface Props {
 	listData?: any;
 	itemList?: any;
-	deteObj?: any
+	deteObj?: any;
+	deteSelIndex?: any;
 }
 const props = withDefaults(defineProps<Props>(), {
 	listData: [],
 	itemList: [],
 	deteObj: null,
+	deteSelIndex: null,
 });
 const selectPopup = ref();
 const orderPopup = ref();
 onMounted(() => {
 })
+const emit = defineEmits(['change']);
+
+// 监听 props.deteObj 或 listData 变化,设置 weekDayDate 为匹配项的 weekDayDate
+
+watch(
+	[() => props.deteObj, () => props.listData, () => props.deteSelIndex],
+	([deteObj, listData, deteSelIndex]) => {
+		if (
+			listData &&
+			Array.isArray(listData.stadiumConcertsVOList) &&
+			typeof deteSelIndex === 'number' &&
+			listData.stadiumConcertsVOList[deteSelIndex]
+		) {
+			weekDayDate.value = listData.stadiumConcertsVOList[deteSelIndex].weekDayDate;
+		} else if (deteObj && deteObj.dateLabel && listData && Array.isArray(listData.stadiumConcertsVOList)) {
+			const match = listData.stadiumConcertsVOList.find(item => item.weekDayAndDate === deteObj.dateLabel);
+			weekDayDate.value = match ? match.weekDayDate : '';
+		} else {
+			weekDayDate.value = '';
+		}
+	},
+	{ immediate: true }
+);
+
 const open = () => {
-	selectPopup.value.open()
+	// 打开弹窗时赋值默认日期,优先根据deteSelIndex
+	if (
+		props.listData &&
+		Array.isArray(props.listData.stadiumConcertsVOList) &&
+		typeof props.deteSelIndex === 'number' &&
+		props.listData.stadiumConcertsVOList[props.deteSelIndex]
+	) {
+		weekDayDate.value = props.listData.stadiumConcertsVOList[props.deteSelIndex].weekDayDate;
+	} else if (props.deteObj && props.deteObj.dateLabel && props.listData && Array.isArray(props.listData.stadiumConcertsVOList)) {
+		const match = props.listData.stadiumConcertsVOList.find(item => item.weekDayAndDate === props.deteObj.dateLabel);
+		weekDayDate.value = match ? match.weekDayDate : '';
+	} else {
+		weekDayDate.value = '';
+	}
+	selectPopup.value.open();
 }
 defineExpose({
 	open
 })
-const emit = defineEmits(['change']);
-const weekDayDate=ref()
-weekDayDate.vaue = computed(() => props.listData.stadiumConcertsVOList?.[props.deteObj]);
+const weekDayDate=ref();
 const sel_tab = (e, i) => {
 	emit('change', e, i);
 	weekDayDate.value=e.weekDayDate
@@ -169,7 +207,8 @@ const selectItem = (item1, item2) => {
 			name: item1.sitePlaceName,
 			time: item2.startTime + '-' + item2.endTime,
 			price: item2.price,
-			id: item2.id
+			id: item2.id,
+			date: weekDayDate.value // 记录选择时的日期
 		});
 	}
 }
@@ -205,7 +244,11 @@ const get_previewOrderPlaceGymnasiumChartered = () => {
 	http.get('/order/previewOrderPlaceGymnasiumChartered', { data: { rulesId: result }, loading: true }).then((res) => {
 		previewgymOrderDetail.value = res.result
 		isopenDetail.value = true
-		orderFormData.value.productIds = res.result.timePeriod.map(item => `${item.id}|${weekDayDate.value}`).join(',')
+		orderFormData.value.productIds = res.result.timePeriod.map(item => {
+			// 找到 selArr 里对应的 item,取其 date
+			const sel = selArr.value.find(sel => sel.id === item.id);
+			return `${item.id}|${sel ? sel.date : weekDayDate.value}`;
+		}).join(',')
 		orderFormData.value.amount = res.result.timePeriod.length
 		setTimeout(() => {
 			selectPopup.value.close()

+ 11 - 8
src/pages/index/gymDetail/index.vue

@@ -100,7 +100,7 @@
 								:key="item.id" @click="open_popup(item, index)">
 								<view class="today">{{ item.dateLabel }}</view>
 								<view class="time">最早{{ item.startTime }}可订</view>
-								<view class="price">¥{{ item.sellingPrice }}起</view>
+								<view class="price">¥{{ item.sellingPrice.toFixed(2) }}起</view>
 							</view>
 							<view class="not-data" v-if="charteredList.timeSlot.length < 1">暂无可选时间</view>
 						</scroll-view>
@@ -124,8 +124,8 @@
 						</view> -->
 						<view class="price-info">
 							<view class="price">
-								<view class="">¥{{ item.sellingPrice }}</view>
-								<view class="">¥{{ item.originalPrice }}</view>
+								<view class="">¥{{ item.sellingPrice.toFixed(2) }}</view>
+								<view class="">¥{{ item.originalPrice.toFixed(2) }}</view>
 							</view>
 							<view class="price-btn"
 								@click="RouterUtils.to_page(`/pages/index/gymPay/index?type=1&placeId=${item.id}`)">抢购
@@ -171,8 +171,8 @@
 							{{ item.address }} {{ item.km || '--' }}km
 						</view>
 						<view class="price">
-							<view class="">¥{{ item.sellingPrice }}</view>
-							<view class="">¥{{ item.originalPrice }}</view>
+							<view class="">¥{{ item.sellingPrice.toFixed(2) }}</view>
+							<view class="">¥{{ item.originalPrice.toFixed(2) }}</view>
 						</view>
 						<view class="course-count">
 							{{ item.period }}课时 {{ item.startTime }}-{{ item.endTime }}
@@ -247,7 +247,7 @@
 		</view>
 	</view>
 	<view style="position: relative;z-index: 99999;">
-		<selPopup :listData="placedata" :itemList="selItems" :deteObj="dateIndex" @change="onchange" ref="openPopup" />
+		<selPopup :listData="placedata" :itemList="selItems" :deteObj="dateIndex" :deteSelIndex="selIndex" @change="onchange" ref="openPopup" />
 		<uni-popup ref="placeInfoPopup" :safe-area="false" type="bottom">
 			<view class="buyTips-box">
 				<view class="buyTips-title">购买须知</view>
@@ -309,8 +309,11 @@ const get_navheight = () => {
 
 // 打开选场弹窗
 const dateIndex = ref()
+const selIndex = ref()
 const open_popup = (e, i) => {
-	dateIndex.value = i
+	console.log(e);
+	selIndex.value = i
+	dateIndex.value = e
 	get_placeInfoDetail(categoryId.value, i)
 	openPopup.value?.open()
 }
@@ -500,7 +503,7 @@ const get_placeInfoDetail = (catId, dateIndex) => {
 
 const onchange = (e, i) => {
 	selItems.value = e.concertsVOList
-	dateIndex.value = i
+	selIndex.value = i
 }
 
 // 获取评价

+ 9 - 5
src/pages/index/gymPay/index.vue

@@ -7,7 +7,7 @@
 				<view class="shoping-info">
 					<view class="name">{{ previewCourseInfo.placeName||previewCourseInfo.name }}</view>
 					<view class="price-info">
-						<view class="price"><text class="mini-text">¥</text>{{ previewCourseInfo.sellingPrice }}</view>
+						<view class="price"><text class="mini-text">¥</text>{{ previewCourseInfo.sellingPrice.toFixed(2) }}</view>
 						<view class="price-stepper">
 							<view class="minus" @click="minusNum">-</view>
 							<input v-model="countTotal" disabled type="number" />
@@ -19,7 +19,7 @@
 			<view class="g-shoping-total">
 				<view class="total-price">
 					<view class="">商品总价(共1件)</view>
-					<view class="">¥{{ previewCourseInfo.sellingPrice }}</view>
+					<view class="">¥{{ previewCourseInfo.sellingPrice.toFixed(2) }}</view>
 				</view>
 				<view class="total-price">
 					<view class="">
@@ -27,13 +27,13 @@
 						<text v-if="buyType == 0 || placeId">团购优惠</text>
 					</view>
 					<view class="">-¥
-						<text v-if="buyType == 0 || placeId">{{ previewCourseInfo.discountPrice }}</text>
+						<text v-if="buyType == 0 || !placeId">{{ previewCourseInfo.discountPrice }}</text>
 						<text v-else>{{ (previewCourseInfo.originalPrice - previewCourseInfo.sellingPrice).toFixed(2) }}</text>
 					</view>
 				</view>
 			</view>
 			<view class="subtotal">小计 ¥{{
-				previewCourseInfo.subtotal ? previewCourseInfo.subtotal : previewCourseInfo.sellingPrice }}</view>
+				previewCourseInfo.subtotal ? previewCourseInfo.subtotal.toFixed(2)  : previewCourseInfo.sellingPrice.toFixed(2) }}</view>
 		</view>
 		<!-- 课程进入 -->
 		<view class="r-insurance" v-for="item in insureIdList" :key="item.id">
@@ -329,8 +329,12 @@ const minusNum = () => {
 
 const addNum = () => {
 	if (buyType.value == 1) return TipsUtils.tips_toast('试听课程不支持多个购买')
+	if(courseId.value){
 	get_checkCourseLimitNum(countTotal.value + 1)
-	orderFormData.value.amount = countTotal.value + 1
+	}else{
+		countTotal.value++
+	}
+	orderFormData.value.amount = countTotal.value
 }
 
 const get_checkCourseLimitNum = (targetNum) => {

+ 2 - 1
src/pages/index/index.vue

@@ -141,7 +141,7 @@
 								</view>
 								<view class="tag" v-for="(tag,index) in item.list">{{tag}}</view>
 							</view>
-							<view class="ascription">{{item.orgName}}</view>
+							<view class="ascription textHidden">{{item.orgName}}</view>
 							<view class="sign textHidden">{{item.teachingPhilosophy}}</view>
 						</view>
 						<view class="type-icon">
@@ -800,6 +800,7 @@
 					}
 
 					.ascription {
+						max-width: 360rpx;
 						font-size: 24rpx;
 						color: #222222;
 					}

+ 7 - 7
src/pages/index/searchPage/components/instructor.vue

@@ -14,15 +14,15 @@
 						<view class="name-tag">
 							<view class="name">
 								<view class="">
-									<text>{{ item.name }}</text>
+									<text class="textHidden" style="width: 130rpx;">{{ item.name }}</text>
 								</view>
 								<image v-if="index % 2 === 0" src="/src/static/name_bg.png" mode=""></image>
 								<image v-else src="/src/static/name_bg1.png" mode=""></image>
 							</view>
-							<view class="tag">篮球</view>
+							<view class="tag" v-for="(tag,index) in item.list">{{tag}}</view>
 						</view>
-						<view class="ascription">{{ item.orgName }}</view>
-						<view class="sign">{{ item.teachingPhilosophy }}</view>
+						<view class="ascription textHidden">{{ item.orgName }}</view>
+						<view class="sign textHidden">{{ item.teachingPhilosophy }}</view>
 					</view>
 					<view class="type-icon">
 						<image src="/src/static/hot-icon2.png" mode=""></image>
@@ -82,7 +82,7 @@ const props = withDefaults(defineProps<Props>(), {
 			border-radius: 32rpx;
 			padding: 20rpx;
 			width: 670rpx;
-			height: 480rpx;
+			max-height: 480rpx;
 		}
 
 		.i-info {
@@ -94,7 +94,6 @@ const props = withDefaults(defineProps<Props>(), {
 				width: 150rpx;
 				height: 150rpx;
 				border-radius: 32rpx;
-				// background: #FFB8F9;
 				padding: 4rpx;
 				position: relative;
 
@@ -151,12 +150,13 @@ const props = withDefaults(defineProps<Props>(), {
 				}
 
 				.ascription {
+					max-width: 360rpx;
 					font-size: 24rpx;
 					color: #222222;
 				}
 
 				.sign {
-					max-width: 300rpx;
+					max-width: 360rpx;
 					margin-top: 20rpx;
 					font-weight: bold;
 					font-size: 24rpx;

+ 1 - 0
src/pages/index/searchPage/index.vue

@@ -136,6 +136,7 @@
 		sel_index.value = e.value
 		tagsVal.value=e.tagsVal
 		sel_btn.value=0
+		searchList.value=[]
 		get_dictType(e.value || 0)
 		get_searchInfo(e.tagsVal)
 	}

+ 112 - 31
src/pages/index/toBeUsed/index.vue

@@ -17,7 +17,7 @@
 			<view class="booking-btn">立即预约</view>
 		</view>
 		<!-- 场地 -->
-		<view class="c-scheduled-card" v-if="orderPageInfo?.orderType == 0||orderPageInfo?.orderType==1">
+		<view class="c-scheduled-card" v-if="orderPageInfo?.orderType == 0 || orderPageInfo?.orderType == 1">
 			<view class="title">预定信息</view>
 			<view class="schedule-address">
 				<view class="text">场馆</view>
@@ -27,7 +27,7 @@
 				<view class="text">场次</view>
 				<view class="">
 					<view class="time-box" v-for="item in orderDetailInfo?.proInfoList" :key="item.id">
-						<view class="time">{{item.useDateStr}} {{ item.frameTimeStr }} {{ item.productName }}</view>
+						<view class="time">{{ item.useDateStr }} {{ item.frameTimeStr }} {{ item.productName }}</view>
 						<view class="status" v-if="orderPageInfo?.orderType == 1">已退款</view>
 					</view>
 				</view>
@@ -49,20 +49,31 @@
 				<image class="shoping-img" :src="orderDetailInfo?.appCourses?.cover" mode="">
 				</image>
 				<view class="shoping-info">
-					<view class="name">{{ orderDetailInfo?.appCourses?.name }}</view>
+					<view class="name">{{ orderDetailInfo?.appCourses?.name ||
+						orderDetailInfo?.proInfoList[0].productName
+					}} &nbsp;<text style="font-weight: normal;color: #AAAAAA;font-size: 22rpx;">x{{
+							orderDetailInfo?.proInfoList?.length }}</text></view>
+					<!-- refundType:退款类型;0可退/到期自动退 1限时退 2不可退" -->
+					<view class="shoping-refund" v-if="orderDetailInfo?.runType == 0">全天</view>
+					<view class="shoping-refund" v-else>
+						{{ DateUtils.formatDateToHHmm(orderDetailInfo?.createTime) + '-' +
+							DateUtils.formatDateToHHmm(orderDetailInfo?.endTime) }}
+					</view>
+					<view class="shoping-refund">{{ orderDetailInfo?.refundType == 2 ? '不支持退款' : '随时退·过期退' }}</view>
 					<view class="shoping-price" @click="pricePopup.open()">
-						<view class="price">¥{{ orderDetailInfo?.totalPrice }}</view>
+						<view class="price">¥{{ orderDetailInfo?.totalPrice.toFixed(2) }}</view>
 						<view class="text">
 							<text>实付</text>
 							<text class="mini-text">¥</text>
-							<text class="price-big">{{ orderDetailInfo?.price }}</text>
+							<text class="price-big">{{ orderDetailInfo?.price.toFixed(2) }}</text>
 							<zzx-icon name="ashRight" size="10"></zzx-icon>
 						</view>
 					</view>
 				</view>
 			</view>
 			<view class="t-shoping-address"
-				@click="RouterUtils.to_page(`/pages/index/verificationRecord/index?orderId=${orderDetailInfo?.id}&proInfoList=${JSON.stringify(orderDetailInfo?.proInfoList)}`)">
+				@click="RouterUtils.to_page(`/pages/index/verificationRecord/index?orderId=${orderDetailInfo?.id}&proInfoList=${JSON.stringify(orderDetailInfo?.proInfoList)}`)"
+				v-if="orderPageInfo?.orderType == 5">
 				<view class="address">上课地点:{{ orderDetailInfo?.courseSiteAddress }}</view>
 				<view class="course-time">
 					<text>{{ orderDetailInfo?.appCourses?.classNum }}课时
@@ -71,13 +82,14 @@
 					<zzx-icon name="ashRight" size="10"></zzx-icon>
 				</view>
 			</view>
-			<view class="t-invite">
+			<view class="t-invite" v-if="orderPageInfo?.orderType == 5">
 				邀请好友报名
 			</view>
 		</view>
 		<!-- 待使用展示 -->
-		<view class="t-qrcode-card" v-if="orderPageInfo?.orderType == 2 || orderPageInfo?.orderType == 0|| orderPageInfo?.orderType == 5|| orderPageInfo?.orderType == 1">
-			<block v-if="orderDetailInfo?.orSchoolCourse!=1">
+		<view class="t-qrcode-card"
+			v-if="orderPageInfo?.orderType == 2 || orderPageInfo?.orderType == 0 || orderPageInfo?.orderType == 5 || orderPageInfo?.orderType == 1">
+			<block v-if="orderDetailInfo?.orSchoolCourse != 1">
 				<view class="qrcode-box">
 					<view class="item-qrcode">
 						<uv-qrcode ref="qrcode" size="100px" :value="orderDetailInfo?.id"></uv-qrcode>
@@ -89,7 +101,8 @@
 			<view class="t-todeused">
 				<view class="todeused">
 					<view class="text">待使用</view>
-					<view class="time" v-if="orderDetailInfo?.appCourses?.endTime||orderDetailInfo?.endTime">{{ orderDetailInfo?.appCourses?.endTime||orderDetailInfo?.endTime }} 到期</view>
+					<view class="time" v-if="orderDetailInfo?.appCourses?.endTime || orderDetailInfo?.endTime">{{
+						orderDetailInfo?.appCourses?.endTime || orderDetailInfo?.endTime }} 到期</view>
 				</view>
 				<view class="order-num" v-for="item in orderDetailInfo?.proInfoList" :key="item.id">
 					<text>{{ item.ticketNo }}&nbsp;&nbsp; {{ item.userName }}</text>
@@ -114,7 +127,7 @@
 			</view>
 		</view>
 		<!-- 学校场地预定订单详情展示 -->
-		<view class="t-scheduled-card" v-if="orderPageInfo?.orderType == 2">
+		<!-- <view class="t-scheduled-card" v-if="orderPageInfo?.orderType == 2">
 			<view class="s-title">预定信息</view>
 			<view class="t-scheduled-list">
 				<view class="item-list">
@@ -134,11 +147,11 @@
 					<view class="list-right">杨锦新 赵四儿</view>
 				</view>
 			</view>
-		</view>
+		</view> -->
 		<view class="t-address-card">
 			<view class="address">
 				<zzx-icon name="location"></zzx-icon>
-				<view class="">{{ orderDetailInfo?.courseSiteAddress||orderDetailInfo?.schoolAddress }}</view>
+				<view class="">{{ orderDetailInfo?.courseSiteAddress || orderDetailInfo?.schoolAddress }}</view>
 			</view>
 			<view class="nav-info">
 				<view class="nav" @click="open_map">
@@ -161,17 +174,32 @@
 				<zzx-icon name="ashRight" size="12"></zzx-icon>
 			</view> -->
 		</view>
-		<view class="t-use-card" v-if="orderPageInfo?.orderType == 0">
+		<view class="t-use-card" v-if="orderPageInfo?.orderType == 0 || orderPageInfo?.orderType == 5">
 			<view class="use-tips">
 				<view class="title">参赛意外险</view>
-				<view class="text">实际付款:6元(3元/份×2)</view>
-			</view>
-			<view class="check-all">
-				<text>查看详情</text>
-				<zzx-icon name="ashRight" size="12"></zzx-icon>
+				<view class="t-use-insureOrder">
+					<view class="insureOrder-title">被保人</view>
+					<view class="insureOrder-text" v-if="orderDetailInfo?.insureOrderInfoList">
+						{{ orderDetailInfo?.insureOrderInfoList.length }}人(<text
+							v-for="name in orderDetailInfo?.insureOrderInfoList"
+							:key="name.id">{{ name.familyUserName }}、</text>)</view>
+				</view>
+				<view class="t-use-insureOrder">
+					<view class="insureOrder-title">生效时间</view>
+					<view class="insureOrder-text" v-if="orderDetailInfo?.insureOrderInfoList">
+						{{ orderDetailInfo?.insureOrderInfoList[0].assertStartTime?.slice(0, 10) }}至{{
+							orderDetailInfo?.insureOrderInfoList[0].assertEndTime?.slice(0, 10) }}
+					</view>
+				</view>
+				<view class="t-use-insureOrder">
+					<view class="insureOrder-title">保费总金额</view>
+					<view class="insureOrder-text" v-if="orderDetailInfo?.insureOrderInfoList">¥{{
+						orderDetailInfo?.insureOrderInfoList.length * orderDetailInfo?.insureOrderInfoList[0].money }}
+					</view>
+				</view>
 			</view>
 		</view>
-		<view class="t-use-card" v-if="orderPageInfo?.orderType == 2">
+		<view class="t-use-card" v-if="orderPageInfo?.orderType == 5">
 			<view class="use-tips t-contract-list">
 				<view class="title">电子合同</view>
 				<view class="text contract-list">
@@ -199,7 +227,7 @@
 			</view>
 			<view class="info-list">
 				<view class="item-left">手机号码</view>
-				<view class="item-right">{{ orderDetailInfo?.phoneNumber||orderDetailInfo?.phone }}</view>
+				<view class="item-right">{{ orderDetailInfo?.phoneNumber || orderDetailInfo?.phone }}</view>
 			</view>
 			<view class="info-list">
 				<view class="item-left">订单编号</view>
@@ -324,21 +352,50 @@ onLoad((option) => {
 onMounted(() => {
 	getOrderDetailInfo()
 })
-const download_qrcode = () => {//下载二维码
+const download_qrcode = () => { //下载二维码,增加授权判断
+	// #ifdef MP-WEIXIN
+	uni.authorize({
+		scope: 'scope.writePhotosAlbum',
+		success() {
+			uni.showLoading()
+			qrcode.value.save({
+				success: (res: any) => {
+					uni.hideLoading()
+					TipsUtils.tips_toast('下载成功')
+				},
+				fail: (err: any) => {
+					console.log(err, '下载失败');
+					uni.hideLoading()
+				}
+			});
+		},
+		fail() {
+			uni.showModal({
+				title: '提示',
+				content: '需要授权保存到相册,是否去设置?',
+				success: (res: any) => {
+					if (res.confirm) {
+						uni.openSetting();
+					}
+				}
+			});
+		}
+	});
+	// #endif
+	// #ifndef MP-WEIXIN
 	uni.showLoading()
 	qrcode.value.save({
-		success: (res) => {
+		success: (res: any) => {
 			uni.hideLoading()
 			TipsUtils.tips_toast('下载成功')
 		},
-		fail: (err) => {
+		fail: (err: any) => {
 			console.log(err);
-
 			uni.hideLoading()
 		}
 	});
+	// #endif
 }
-
 const refund_btn = () => {
 	RouterUtils.to_page('/pages/index/refundDetail/index')
 }
@@ -409,7 +466,7 @@ const getQueryWaitSignList = (orderId: string) => {
 }
 
 
-const checkSign = (e) => {
+const checkSign = (e: any) => {
 	get_UserIdentityInfo(e.familyId)
 }
 
@@ -631,14 +688,20 @@ const getSignUrl = (signFlowId: string) => {
 				color: #222222;
 			}
 
+			.shoping-refund {
+				margin-top: 10rpx;
+				font-size: 24rpx;
+				color: #AAAAAA;
+			}
+
 			.shoping-price {
 				display: flex;
 				align-items: center;
 				justify-content: space-between;
 
 				.price {
-					font-weight: bold;
-					font-size: 32rpx;
+					font-weight: 600;
+					font-size: 30rpx;
 					color: #FB5B5B;
 				}
 
@@ -649,8 +712,8 @@ const getSignUrl = (signFlowId: string) => {
 					}
 
 					.price-big {
-						font-weight: 800;
-						font-size: 48rpx;
+						font-weight: 600;
+						font-size: 30rpx;
 						color: #FB5B5B;
 					}
 				}
@@ -854,6 +917,24 @@ const getSignUrl = (signFlowId: string) => {
 			font-size: 28rpx;
 			color: #AAAAAA;
 		}
+
+		.t-use-insureOrder {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			width: 660rpx;
+			margin-top: 20rpx;
+
+			.insureOrder-title {
+				font-size: 28rpx;
+				color: #AAAAAA;
+			}
+
+			.insureOrder-text {
+				font-size: 28rpx;
+				color: #222222;
+			}
+		}
 	}
 
 	.t-contract-list {

+ 2 - 2
src/pages/index/training/index.vue

@@ -19,9 +19,9 @@
 				<view class="t-course">
 					<view class="c-title textHidden">{{item.name}}</view>
 					<view class="c-address" v-if="item.km">{{item.address}} | {{item.km.toFixed(2)}}km</view>
-					<view class="c-price">¥25.9
+					<view class="c-price">¥{{ item.sellingPrice.toFixed(2) }}
 						<text v-if="item.priceType==0"
-							style="font-size: 22rpx;color: #AAAAAA;text-decoration: line-through;">¥23.2</text>
+							style="font-size: 22rpx;color: #AAAAAA;text-decoration: line-through;">¥{{ item.originalPrice.toFixed(2) }}</text>
 					</view>
 					<view class="c-ratio">已售{{item.saleNum||'0'}} {{item.goodRate}}%好评</view>
 					<view class="c-class">{{item.coursesNum}}课时 {{item.startTime}}-{{item.endTime}}</view>

+ 15 - 2
src/utils/http/index.ts

@@ -211,12 +211,25 @@ uni.addInterceptor('request', {
 uni.addInterceptor('request', {
   success: (res) => {
     const data = res.data as HttpResponse
-    if (data.code !== 200) {
+    if (data.code === 401) {
+      uni.showToast({
+        title: data.message || '登录已失效,请重新登录',
+        icon: 'none',
+        duration: 2000
+      })
+      setTimeout(() => {
+       uni.clearStorage()
+      }, 500)
+      return {
+        ...res,
+        errMsg: `Token失效: ${data.message}`,
+        data: null
+      }
+    } else if (data.code !== 200) {
       uni.showToast({
         title: data.message || '请求失败',
         icon: 'none'
       })
-      // 返回自定义错误对象,触发fail回调
       return {
         ...res,
         errMsg: `业务错误: ${data.message}`,