调整抢课等待问题
This commit is contained in:
parent
c2396a8e71
commit
899c037ab6
@ -246,6 +246,11 @@ onMounted(() => {
|
||||
}
|
||||
});
|
||||
|
||||
// 暴露接口给外部调用
|
||||
defineExpose({
|
||||
switchXk
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user