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