调整抢课等待问题

This commit is contained in:
ywyonui 2025-09-07 19:50:01 +08:00
parent c2396a8e71
commit 899c037ab6
2 changed files with 20 additions and 13 deletions

View File

@ -246,6 +246,11 @@ onMounted(() => {
}
});
//
defineExpose({
switchXk
});
</script>
<style lang="scss" scoped>

View File

@ -18,7 +18,7 @@
<!-- 可滚动的内容区域 -->
<view class="scrollable-content">
<!-- 显示课程列表 -->
<XkkcList :xk="curXk" :can-selected="true" @change="changeXkkc" />
<XkkcList :xk="curXk" :can-selected="true" @change="changeXkkc" ref="xkkcListRef" />
</view>
<!-- 底部报名按钮 - 固定部分 -->
@ -48,7 +48,6 @@ import { useDataStore } from "@/store/modules/data";
import { useDebounce } from "@/utils/debounce";
import dayjs from "dayjs";
import { PageUtils } from "@/utils/pageUtil";
import { hideLoading } from "@/utils/uniapp";
const { getCurXs, getUser, initWs, setWsCallback } = useUserStore();
const { setData, getFile } = useDataStore();
@ -60,6 +59,7 @@ const xklxId = ref("");
const curXs = computed(() => getCurXs);
const curXk = ref<any>({});
const selectedXkkcIds = ref<any>([]);
const xkkcListRef = ref<any>(null);
// isSubmitting useDebounce
const { isProcessing: isSubmitting, debounce } = useDebounce(2000);
@ -84,13 +84,20 @@ const checkEnrollmentStatus = (xk: any) => {
return false;
};
const clearXkkcSelected = () => {
selectedXkkcIds.value = [];
uni.setStorageSync("selectedXkkcIds", []);
}
//
const switchXk = (xk: any) => {
curXk.value = xk;
//
selectedXkkcIds.value = [];
uni.setStorageSync("selectedXkkcIds", []);
if (xkkcListRef.value) {
xkkcListRef.value.switchXk(xk);
}
//
if (checkEnrollmentStatus(xk)) {
return;
@ -156,18 +163,12 @@ const submit = debounce(async () => {
const res = await jzXkQkjApi(params);
if (res.resultCode === 1) {
selectedXkkcIds.value = [];
uni.setStorageSync("selectedXkkcIds", []);
setData(res.result);
xsFlag.value = true;
setTimeout(() => {
xsFlag.value = false;
}, 1000);
hideLoading();
uni.hideLoading();
//
uni.showLoading({ title: "抢课中,请稍后..." });
} else {
hideLoading();
uni.hideLoading();
uni.showToast({
title: res.message,
icon: "none",
@ -175,7 +176,7 @@ const submit = debounce(async () => {
PageUtils.toHome(xklxId.value);
}
} catch (error: any) {
hideLoading();
uni.hideLoading();
console.error('报名失败:', error);
uni.showToast({
title: error.message || "报名失败",
@ -201,8 +202,8 @@ onLoad((options:any) => {
// data
const dataObj = JSON.parse(res.data);
if (dataObj.action === 'qk') {
uni.hideLoading();
if (dataObj.code === 1 && dataObj.data === "qk") {
clearXkkcSelected();
PageUtils.toHome(xklxId.value);
} else if (dataObj.code === 2) { //
uni.showToast({
@ -216,6 +217,7 @@ onLoad((options:any) => {
icon: "none",
duration: 3000
});
clearXkkcSelected();
goBack();
}
}