diff --git a/src/pages/base/jl/detail.vue b/src/pages/base/jl/detail.vue index c632716..b48e3dc 100644 --- a/src/pages/base/jl/detail.vue +++ b/src/pages/base/jl/detail.vue @@ -165,7 +165,7 @@ async function submitRelay() { } showLoading('提交中...'); try { - const res = await relayFinishApi(params); + const res:any = await relayFinishApi(params); hideLoading(); if (res && res.resultCode === 1 ) { uni.showToast({title: '接龙成功', icon: 'success'}); @@ -193,6 +193,14 @@ onLoad(async (options) => { if (options && options.id) { noticeId.value = options.id; isLoading.value = true; + if (options.openId) { + // 检查登录状态 + const isLoggedIn = await userStore.loginByOpenId(options.openId); + if (!isLoggedIn) { + console.log("用户未登录,跳过处理"); + return; + } + } // 1. 获取接龙详情(新接口) try { const detailRes = await getByJlIdApi({ jlId: noticeId.value }); diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 980b095..4f7eec8 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -1,5 +1,5 @@ import { defineStore } from "pinia"; -import { authenticationApi, loginCode, loginPass, weChatLogin } from "@/api/system/login"; +import { authenticationApi, loginCode, loginPass, weChatLogin, checkOpenId } from "@/api/system/login"; import { AUTH_KEY } from "@/config"; import { imagUrl } from "@/utils"; import { useWebSocket } from '@/utils/webSocket/webSocket' @@ -135,6 +135,34 @@ export const useUserStore = defineStore({ console.log(e) } }, + async loginByOpenId(openId: string) { + try { + // 先校验当前登录的用户的openid,如果和传入的openid匹配,直接返回true + if (this.userdata && this.userdata.openId && openId && this.userdata.openId === openId) { + return true; + } + // 如果当前登录的用户的openid和传入的openid不匹配,则调用checkOpenId接口进行校验 + const res = await checkOpenId({ + openId, + appCode: "JS", + }); + if (res.resultCode == 1 && res.result) { + this.afterLoginAction(res.result); + return true; + } else { + uni.reLaunch({ + url: "/pages/system/login/login", + }); + return false; + } + } catch (e) { + console.log(e); + uni.reLaunch({ + url: "/pages/system/login/login", + }); + return false; + } + }, /** * @description: 登录成功后的操作 */