import { checkXsXkApi, checkXkTfApi } from "@/api/base/xkApi"; import { checkXsJcApi } from "@/api/base/jcApi"; import { useUserStore } from "@/store/modules/user"; import { useDataStore } from "@/store/modules/data"; const userStore = useUserStore(); const dataStore = useDataStore(); // TODO: 记住测试的时候才默认使用第一个 const devFlag = false; /** * 页面工具类,主要在于处理抢课、就餐等页面逻辑跳转的处理 */ export const PageUtils = { /** * 跳转逻辑 * @param lxId 类型( JC: 就餐,816059832: 俱乐部,962488654: 兴趣课) * @param action 动作(jf: 缴费,tf: 退费) */ async toHome(lxId: string, action: string) { // 没有类型,则跳转首页 if (!lxId) { uni.reLaunch({ url: "/pages/base/home/index", }); return; } // 判断当前学生列表,如果大于1,则跳转学生选择页面 const xsList = userStore.getUser.xsList; if (devFlag) { userStore.setCurXs(xsList[0]); } else { if (xsList && xsList.length > 1 && (dataStore.getGlobal && dataStore.getGlobal.from == 'launch')) { uni.reLaunch({ url: "/pages/base/home/xsXz", }); return; } } // 判断业务逻辑,并跳转界面 await this.checkLogicPage(lxId, action); }, /** * 判断业务逻辑,并跳转界面 */ async checkLogicPage(lxId: string, action: string) { switch (lxId) { // 就餐逻辑单独处理 case "JC": { } break; // 默认当作 选课的选课类型ID(xkLxId)处理 default: { if (action === "jf") { await this.checkQkLogic(lxId); } else if (action === "tf") { await this.checkXkTfLogic(lxId); } } } }, /** * 判断抢课逻辑 * @param xklxId */ async checkQkLogic(xklxId: string) { const res: any = await checkXsXkApi({ xsId: userStore.getCurXs.id, njmcId: userStore.getCurXs.njmcId, xklxId: xklxId, }); console.log('checkQkLogic', res); if (res.resultCode != 1) { uni.showToast({ title: res.message, icon: 'none' }); uni.reLaunch({ url: "/pages/base/home/xsXz", }); return; } const result = res.result || {}; // 记录到缓存数据中 dataStore.setQk(result); // 状态判断 switch (result.xsXkStatus) { case 'WFB': { // KQK可抢课 uni.reLaunch({ url: "/pages/base/xk/qk/wks?xklxId=" + xklxId, }); } break; case 'KQK': { // KQK可抢课 uni.reLaunch({ url: "/pages/base/gzs/index?lxId=" + xklxId, }); } break; case 'QKZ': { // QKZ抢课中 uni.reLaunch({ url: "/pages/base/xk/qk/index?xklxId=" + xklxId, }); } break; case 'YQK': { // YQK已选课 uni.reLaunch({ url: "/pages/base/xk/pay/index?xklxId=" + xklxId, }); } break; case 'DZF': { // DZF待支付 uni.reLaunch({ url: "/pages/base/xk/pay/index?xklxId=" + xklxId, }); } break; case 'YZF': { // YZF已支付 uni.reLaunch({ url: "/pages/base/xk/pay/success?xklxId=" + xklxId, }); } break; } }, // 判断退费页面切换逻辑 async checkXkTfLogic(xklxId: string) { const res = await checkXkTfApi({ xsId: userStore.getCurXs.id, njmcId: userStore.getCurXs.njmcId, xklxId: xklxId, }); console.log('checkXkTfLogic', res); if (res.resultCode != 1) { uni.showToast({ title: res.message, icon: 'none', duration: 2000, }); uni.reLaunch({ url: "/pages/base/home/index", }); return; } const result = res.result || {}; // 记录到缓存数据中 dataStore.setTf(result); // 状态判断 switch (result.status) { case 'KTF': { // KTF可退费 uni.reLaunch({ url: "/pages/base/gzs/tf?lxId=" + xklxId, }); } break; case 'TFZ': { // TFZ退费中 uni.reLaunch({ url: "/pages/base/xk/tf/detail?xklxId=" + xklxId, }); } break; } }, }