1、修复静态资源文件加载失败的问题
2、添加抢课成功补选的功能
This commit is contained in:
parent
95fba54fac
commit
5fef0a1855
@ -15,7 +15,7 @@
|
||||
<view class="course-name">{{ item.kcmc }}</view>
|
||||
<view class="course-teacher">开课老师:{{ item.jsName }}</view>
|
||||
<view class="course-location">上课地点:{{ item.kcdd }}</view>
|
||||
<view class="course-price"
|
||||
<view class="course-price" v-if="(item.kcje || item.jfje) > 0"
|
||||
>金额:<text class="price-value">¥{{ item.kcje || item.jfje }}</text></view
|
||||
>
|
||||
</view>
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
</view>
|
||||
<view v-if="xkkc.isSelected" class="selected-mark">
|
||||
<uni-icons
|
||||
type="checkbox-filled"
|
||||
:type="xkkc.isDisabled ? 'locked' : 'checkbox-filled'"
|
||||
color="#3FBF72"
|
||||
size="22"
|
||||
></uni-icons>
|
||||
@ -47,7 +47,7 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, watch } from "vue";
|
||||
import { useDataStore } from "@/store/modules/data";
|
||||
const { setKcData } = useDataStore();
|
||||
const { setKcData, getQk } = useDataStore();
|
||||
|
||||
// 接收外部传入属性并设置默认值
|
||||
const props = withDefaults(defineProps<{
|
||||
@ -64,9 +64,12 @@ const emit = defineEmits(['change'])
|
||||
// 学生列表数据
|
||||
const xkkcList = ref<any>([]);
|
||||
|
||||
// 已经选课的清单数据
|
||||
const xkQdList = ref<any>([]);
|
||||
|
||||
// 切换选课课程
|
||||
const toggleSelection = (xkkc: any) => {
|
||||
if (!props.canSelected) {
|
||||
if (!props.canSelected || xkkc.isDisabled) {
|
||||
return;
|
||||
}
|
||||
// 获取本地存储的已选课程ID数组
|
||||
@ -190,23 +193,34 @@ const switchXk = (xk: any) => {
|
||||
if (!props.canSelected) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取本地存储的已选课程ID数组
|
||||
let selectedXkkcIds = uni.getStorageSync("selectedXkkcIds") || [];
|
||||
|
||||
let newSelectedXkkcIds: string[] = [];
|
||||
|
||||
for (let i = 0; i < xkkcList.value.length; i++) {
|
||||
const xkkc = xkkcList.value[i];
|
||||
|
||||
// 只检查本地存储的已选课程
|
||||
if (selectedXkkcIds.includes(xkkc.id)) {
|
||||
xkkc.isSelected = true;
|
||||
newSelectedXkkcIds.push(xkkc.id);
|
||||
} else {
|
||||
xkkc.isSelected = false;
|
||||
if (xkQdList.value.length > 0) {
|
||||
for (let i = 0; i < xkkcList.value.length; i++) {
|
||||
const xkkc = xkkcList.value[i];
|
||||
// 只检查本地存储的已选课程
|
||||
if (xkQdList.value.includes(xkkc.id)) {
|
||||
xkkc.isSelected = true;
|
||||
xkkc.isDisabled = true;
|
||||
} else {
|
||||
xkkc.isSelected = false;
|
||||
xkkc.isDisabled = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 获取本地存储的已选课程ID数组
|
||||
let selectedXkkcIds = uni.getStorageSync("selectedXkkcIds") || [];
|
||||
for (let i = 0; i < xkkcList.value.length; i++) {
|
||||
const xkkc = xkkcList.value[i];
|
||||
// 只检查本地存储的已选课程
|
||||
if (selectedXkkcIds.includes(xkkc.id)) {
|
||||
xkkc.isSelected = true;
|
||||
newSelectedXkkcIds.push(xkkc.id);
|
||||
} else {
|
||||
xkkc.isSelected = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uni.setStorageSync("selectedXkkcIds", newSelectedXkkcIds);
|
||||
emit("change", newSelectedXkkcIds);
|
||||
}
|
||||
@ -218,10 +232,19 @@ watch(() => props.xk, (newVal) => {
|
||||
}
|
||||
});
|
||||
|
||||
// 初始化
|
||||
if (props.xk && (props.xk.xkkcs || props.xk.xkkcList)) {
|
||||
switchXk(props.xk);
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
const qk = getQk || {};
|
||||
const qkQdList = qk.xkqdList || [];
|
||||
xkQdList.value = [];
|
||||
qkQdList.forEach((qd: any) => {
|
||||
xkQdList.value.push(qd.xkkcId);
|
||||
});
|
||||
// 初始化
|
||||
if (props.xk && (props.xk.xkkcs || props.xk.xkkcList)) {
|
||||
switchXk(props.xk);
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
@ -25,16 +25,32 @@
|
||||
|
||||
</view>
|
||||
<template #bottom>
|
||||
<!-- <view class="white-bg-color py-5">
|
||||
<view class="white-bg-color py-5">
|
||||
<view class="flex-row items-center pb-10 pt-5">
|
||||
<u-button
|
||||
<u-button v-if="showFlag"
|
||||
text="返回"
|
||||
class="ml-15 mr-7"
|
||||
:plain="true"
|
||||
@click=""
|
||||
@click="goBack"
|
||||
/>
|
||||
<u-button v-else
|
||||
text="返回"
|
||||
class="ml-15 mr-15"
|
||||
:plain="true"
|
||||
color="#2879ff"
|
||||
text-color="#ffffff"
|
||||
@click="goBack"
|
||||
/>
|
||||
<u-button v-if="showFlag"
|
||||
text="补选报名"
|
||||
class="ml-7 mr-15"
|
||||
:plain="true"
|
||||
color="#2879ff"
|
||||
text-color="#ffffff"
|
||||
@click="goXk"
|
||||
/>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</template>
|
||||
</BasicLayout>
|
||||
</template>
|
||||
@ -47,6 +63,7 @@ import { getXsXkListApi } from "@/api/base/xkApi";
|
||||
import { useUserStore } from "@/store/modules/user";
|
||||
import { useDataStore } from "@/store/modules/data";
|
||||
import { useCommonStore } from "@/store/modules/common";
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
const { getCurXs } = useUserStore();
|
||||
const { getQk } = useDataStore();
|
||||
@ -54,16 +71,38 @@ const { getAllXkkcLx } = useCommonStore();
|
||||
|
||||
const dataList = ref<any>([]);
|
||||
|
||||
const qk = computed(() => getQk || {});
|
||||
const showFlag = ref(false);
|
||||
|
||||
// 返回首页
|
||||
const goBack = () => {
|
||||
uni.reLaunch({ url: "/pages/base/home/index" });
|
||||
};
|
||||
|
||||
// 跳转到抢课
|
||||
const goXk = () => {
|
||||
uni.reLaunch({
|
||||
url: "/pages/base/xk/qk/index?xklxId=" + qk.value.xklxId,
|
||||
});
|
||||
};
|
||||
|
||||
const loadYxXkList = async (xklxId:string) => {
|
||||
const qk = getQk || {};
|
||||
if (qk.xklxId === xklxId) {
|
||||
dataList.value = qk.xkqdList;
|
||||
console.log('loadYxXkList', qk.xkqdList);
|
||||
showFlag.value = false;
|
||||
const now = dayjs();
|
||||
if (qk.value.xklxId === xklxId) {
|
||||
dataList.value = qk.value.xkqdList || [];
|
||||
const xkList = qk.value.xkList || [];
|
||||
xkList.forEach((xk:any) => {
|
||||
// 检查当前时间是否在选课时间范围内
|
||||
const startTime = dayjs(xk.xkkstime);
|
||||
const endTime = dayjs(xk.xkjstime);
|
||||
if (xk.kxNum > dataList.value.length
|
||||
&& now.isAfter(startTime)
|
||||
&& now.isBefore(endTime)) {
|
||||
qk.value.xsXkStatus = "KQK";
|
||||
showFlag.value = true;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
const resLx = await getAllXkkcLx();
|
||||
const lxList = resLx.result;
|
||||
|
||||
@ -204,6 +204,12 @@ onLoad((options:any) => {
|
||||
uni.hideLoading();
|
||||
if (dataObj.code === 1 && dataObj.data === "qk") {
|
||||
PageUtils.toHome(xklxId.value);
|
||||
} else if (dataObj.code === 2) { // 课程提示
|
||||
uni.showToast({
|
||||
title: dataObj.message,
|
||||
icon: "none",
|
||||
duration: 3000
|
||||
});
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: dataObj.message,
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import { BASE_WS_URL } from "@/config";
|
||||
import { hideLoading, showLoading } from "@/utils/uniapp";
|
||||
|
||||
export interface WebSocketReturn {
|
||||
reconnect: () => void,
|
||||
@ -11,13 +10,25 @@ let isLoading = false
|
||||
|
||||
function heartbeatState(state: boolean) {
|
||||
if (!state) {
|
||||
if (!isLoading) {
|
||||
showLoading({ title: '网络异常,重新连接中' })
|
||||
if (isLoading) {
|
||||
// 使用顶部提示代替中间loading
|
||||
uni.showToast({
|
||||
title: '网络异常,重新连接中...',
|
||||
icon: 'none',
|
||||
position: 'top',
|
||||
duration: 2000
|
||||
});
|
||||
}
|
||||
isLoading = true
|
||||
}
|
||||
if (state) {
|
||||
hideLoading()
|
||||
if (state && isLoading) {
|
||||
// 隐藏提示
|
||||
uni.showToast({
|
||||
title: '连接已恢复',
|
||||
icon: 'success',
|
||||
position: 'top',
|
||||
duration: 1000
|
||||
});
|
||||
isLoading = false
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,7 +7,6 @@ import AutoStylePlugin from "./plugin/vite-plugin-autoStyle";
|
||||
import {HOMEAGENT} from "./src/config";
|
||||
|
||||
export default defineConfig({
|
||||
base: './', // 添加这行,确保使用相对路径
|
||||
server: {
|
||||
proxy: {
|
||||
"/base": {
|
||||
@ -17,7 +16,6 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
port: 5139,
|
||||
host: true, // 允许外部访问
|
||||
},
|
||||
plugins: [
|
||||
//c 为class 例如 class="wi-10"
|
||||
@ -61,16 +59,5 @@ export default defineConfig({
|
||||
'@': resolve(__dirname, './src'),
|
||||
'#': resolve(__dirname, './types')
|
||||
}
|
||||
},
|
||||
// 添加构建优化配置
|
||||
build: {
|
||||
rollupOptions: {
|
||||
output: {
|
||||
manualChunks: {
|
||||
'vendor': ['vue', 'pinia'],
|
||||
'uni': ['@dcloudio/uni-app', '@dcloudio/uni-h5']
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user