Commit e6591ad0 by chunhong.mu

fix(qqqf-mp): 修复登录页导入错误和小程序存储适配器问题

login/index.vue 改用项目内 login-service 替代未导出的 wechatLoginService
http.ts 新增 UniStorage 适配器解决小程序无 localStorage 问题
移除 App.vue 中废弃的 UICore.setupSdk 调用
login.vue 更新服务导入路径
parent a059e658
<script lang="ts" setup>
import { ClientId, PassportTokenController, UICore, uniAdapter } from "@common/sdk"
import { PassportTokenController } from "@common/sdk"
import { onLaunch } from "@dcloudio/uni-app"
import { sdk } from "@/api/http"
......@@ -9,10 +9,6 @@ onLaunch(() => {
})
function sdkInit() {
UICore.setupSdk(sdk.core, {
client: ClientId.Hrs100WechatMiniApp,
config: uniAdapter,
})
const token = PassportTokenController.hasToken()
if (token) {
sdk.core.loginByToken({
......
import { SdkCore, uniAdapter } from "@common/sdk"
import { PassportTokenController, SdkCore, uniAdapter } from "@common/sdk"
import { LoginService } from "@common/sdk/services/login-service"
import { VerifyService } from "@common/sdk/services/verify-service"
import { config } from "@/config"
class Sdk extends SdkCore {
......@@ -9,4 +11,44 @@ class Sdk extends SdkCore {
const sdk = new Sdk()
export { sdk }
// 小程序 Storage 适配器(替代 localStorage)
class UniStorage implements Storage {
get length() {
const info = uni.getStorageInfoSync()
return info.keys.length
}
clear() {
uni.clearStorageSync()
}
getItem(key: string) {
try {
return uni.getStorageSync(key) || null
} catch {
return null
}
}
key(_index: number) {
const info = uni.getStorageInfoSync()
return info.keys[_index] || null
}
removeItem(key: string) {
uni.removeStorageSync(key)
}
setItem(key: string, value: string) {
uni.setStorageSync(key, value)
}
}
// 设置小程序存储实例(替代 localStorage)
PassportTokenController.setupStorage(new UniStorage())
// 创建服务实例(依赖注入 SDK)
const loginService = new LoginService(sdk)
const verifyService = new VerifyService(sdk)
export { loginService, sdk, verifyService }
......@@ -43,9 +43,10 @@
</template>
<script lang="ts" setup>
import { PassportTokenController, wechatLoginService } from "@common/sdk"
import { PassportTokenController } from "@common/sdk"
import { onLoad } from "@dcloudio/uni-app"
import { ref } from "vue"
import { miniProgramBindPhone } from "@/api/login-service"
import { config } from "@/config"
const agree = ref(false)
......@@ -96,9 +97,10 @@ async function doWxLogin(e: any) {
})
})
// 调用绑定手机号登录接口
const result = await wechatLoginService.miniProgramBindPhone(
const result = await miniProgramBindPhone(
config.mpAppid || "",
code,
config.clientId,
e.detail.encryptedData,
e.detail.iv,
)
......
......@@ -141,9 +141,10 @@
<script lang="ts" setup>
import type { VerifyImageResult } from "@common/sdk"
import { loginService, PassportTokenController, verifyService } from "@common/sdk"
import { PassportTokenController } from "@common/sdk"
import { onLoad } from "@dcloudio/uni-app"
import { computed, reactive, ref } from "vue"
import { loginService, verifyService } from "@/api/http"
const activeTab = ref<"sms" | "password">("sms")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment