feat(用户信息): 添加汇邦云用户信息支持
在用户类型中新增ab98Name和ab98FaceImg字段 添加设置汇邦云用户名和头像的方法 修改页面展示逻辑以优先显示汇邦云用户信息 在登录流程中自动设置汇邦云用户信息
This commit is contained in:
parent
c319a349e8
commit
b08660e137
|
|
@ -26,6 +26,10 @@ export interface WxUserDTO {
|
|||
updateTime?: string;
|
||||
/** 备注 */
|
||||
remark?: string;
|
||||
/** 汇邦云用户名 */
|
||||
ab98Name?: string;
|
||||
/** 汇邦云用户头像 */
|
||||
ab98FaceImg?: string;
|
||||
}
|
||||
|
||||
/** 动态码响应数据 */
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ import type { ShopEntity } from '@/api/shop/types'
|
|||
import ProductContainer from './components/product-container.vue';
|
||||
import { generateDynamicCode, mpCodeToOpenId } from '@/api/users'
|
||||
import { toHttpsUrl } from '@/utils'
|
||||
import { useAb98UserStore } from '@/pinia/stores/ab98-user'
|
||||
import { storeToRefs } from 'pinia'
|
||||
|
||||
definePage({
|
||||
style: {
|
||||
|
|
@ -19,6 +21,7 @@ definePage({
|
|||
const wxStore = useWxStore()
|
||||
const productStore = useProductStore()
|
||||
const cartStore = useCartStore()
|
||||
const ab98UserStore = useAb98UserStore()
|
||||
|
||||
// 显示选择商店列表
|
||||
const showShopList = ref<boolean>(true)
|
||||
|
|
@ -34,6 +37,11 @@ onMounted(async () => {
|
|||
mpCodeToOpenId(loginRes.code).then((wxUser) => {
|
||||
console.log('wxUser:', wxUser);
|
||||
wxStore.setOpenid(wxUser.data.openid);
|
||||
wxStore.setWxUserDTO(wxUser.data);
|
||||
if (wxUser.data.ab98UserId) {
|
||||
ab98UserStore.setAb98UserName(wxUser.data.ab98Name || wxUser.data.nickName || '')
|
||||
ab98UserStore.setAb98UserFaceImg(wxUser.data.ab98FaceImg || '')
|
||||
}
|
||||
generateDynamicCode(wxUser.data.openid).then((dynamicCode) => {
|
||||
console.log('dynamicCode:', dynamicCode);
|
||||
}).catch((e) => {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,11 @@ const wxStore = useWxStore()
|
|||
const ab98UserStore = useAb98UserStore()
|
||||
|
||||
const { balance, useBalance, balanceLimit, name: qyName, ab98User } = storeToRefs(wxStore)
|
||||
const { name: userName, sex: userSex, face_img } = storeToRefs(ab98UserStore)
|
||||
const { name: userName, face_img } = storeToRefs(ab98UserStore);
|
||||
const { wxUserDTO } = storeToRefs(wxStore);
|
||||
|
||||
|
||||
(globalThis as any).ab98UserStore = ab98UserStore;
|
||||
|
||||
const name = computed(() => {
|
||||
return userName.value || qyName.value || '未知用户'
|
||||
|
|
@ -111,13 +115,13 @@ const handleGenerateDynamicCode = async () => {
|
|||
<view class="avatar-wrapper">
|
||||
<image
|
||||
class="avatar"
|
||||
:src="userAvatar"
|
||||
:src="wxUserDTO?.ab98FaceImg"
|
||||
mode="aspectFill"
|
||||
@click="handleLogout"
|
||||
/>
|
||||
</view>
|
||||
<view class="user-details">
|
||||
<view class="user-name">{{ name }}</view>
|
||||
<view class="user-name">{{ wxUserDTO?.ab98Name || wxUserDTO?.nickName }}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
|
|
|||
|
|
@ -70,6 +70,16 @@ export const useAb98UserStore = defineStore("ab98User", () => {
|
|||
uni.setStorageSync(STORAGE_KEYS.LOGIN_CODE, encodeURIComponent(loginCode))
|
||||
}
|
||||
|
||||
const setAb98UserName = (value: string) => {
|
||||
name.value = value
|
||||
uni.setStorageSync(STORAGE_KEYS.NAME, encodeURIComponent(value))
|
||||
}
|
||||
|
||||
const setAb98UserFaceImg = (value: string) => {
|
||||
face_img.value = value
|
||||
uni.setStorageSync(STORAGE_KEYS.FACE, encodeURIComponent(value))
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空用户敏感信息
|
||||
* @description 用于用户登出或会话过期时
|
||||
|
|
@ -128,7 +138,9 @@ export const useAb98UserStore = defineStore("ab98User", () => {
|
|||
setTel,
|
||||
setIsLogin,
|
||||
clearUserInfo,
|
||||
setTokenLogin
|
||||
setTokenLogin,
|
||||
setAb98UserName,
|
||||
setAb98UserFaceImg
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { getOpenIdApi, getBalanceApi, qyLogin, getBalanceByQyUserid, fakeQyLogin
|
|||
import { ab98UserDTO, GetBalanceResponse } from "@/api/shop/types"
|
||||
import { useAb98UserStore } from "./ab98-user"
|
||||
import { defineStore } from "pinia"
|
||||
import { WxUserDTO } from "@/api/users/types"
|
||||
|
||||
|
||||
export const useWxStore = defineStore("wx", () => {
|
||||
|
|
@ -37,6 +38,8 @@ export const useWxStore = defineStore("wx", () => {
|
|||
// handleWxCallback 是否完成
|
||||
const isHandleWxCallbackComplete = ref<boolean>(false);
|
||||
|
||||
const wxUserDTO = ref<WxUserDTO | null>(null);
|
||||
|
||||
// 设置 openid
|
||||
const setOpenid = (id: string) => {
|
||||
openid.value = id
|
||||
|
|
@ -160,7 +163,7 @@ export const useWxStore = defineStore("wx", () => {
|
|||
name.value = res.data.name;
|
||||
qyUserId.value = res.data.qyUserId;
|
||||
if (res.data.ab98User) {
|
||||
setAb98User(res.data.ab98User);
|
||||
// setAb98User(res.data.ab98User);
|
||||
}
|
||||
}
|
||||
isHandleWxCallbackComplete.value = true
|
||||
|
|
@ -179,11 +182,14 @@ export const useWxStore = defineStore("wx", () => {
|
|||
return true;
|
||||
}
|
||||
|
||||
const setWxUserDTO = (userDTO: WxUserDTO | null) => {
|
||||
wxUserDTO.value = userDTO;
|
||||
}
|
||||
|
||||
return { code, state, openid, corpid, userid, balance, useBalance,
|
||||
balanceLimit, isCabinetAdmin, corpidLogin, name, ab98User, qyUserId, isFakeQyLogin,
|
||||
isHandleWxCallbackComplete, setOpenid, setBalance, handleWxCallback, setIsCabinetAdmin,
|
||||
refreshBalance, setAb98User, fakeQyLogin, waitForHandleWxCallbackComplete }
|
||||
isHandleWxCallbackComplete, wxUserDTO, setOpenid, setBalance, handleWxCallback, setIsCabinetAdmin,
|
||||
refreshBalance, setAb98User, fakeQyLogin, waitForHandleWxCallbackComplete, setWxUserDTO }
|
||||
})
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue