import useUserInfo from './useUserInfo' import Taro, { useDidShow, useRouter } from '@tarojs/taro' import { GetWxUserInfoApi, GetAdminUserInfoApi, GetPhoneNumberApi, BindingCompanyApi } from '@/api/user' import useLoginRequest from './useLoginRequest' import { SHARE_SCENE } from '@/common/enum' import { GetShortCodeApi } from '@/api/share' import { alert } from '@/common/common' import { LoginApi } from '@/api/login' import { IMG_CND_Prefix } from '@/common/constant' import { formatImgUrl } from '@/common/fotmat' export default () => { const { setUserInfo, setAdminUserInfo, setSortCode, userInfo } = useUserInfo() useDidShow(() => { checkLogin() }) //登录请求 const { login } = useLoginRequest() // const {fetchData:login} = LoginApi() const wxLogin = async () => { try { await login() getAdminUserInfo() } catch (e) { console.log('登录失败::', e) } } //获取用户信息 const { fetchData: useFetchData } = GetAdminUserInfoApi() const getAdminUserInfo = async () => { let res = await useFetchData() res.data.avatar_url = res.data.avatar_url ? res.data.avatar_url : formatImgUrl('/user/avatar.png') setAdminUserInfo({ ...res.data }) getShortCode(res.data.user_id) } //登录加checkLogin检查 const checkLogin = () => { return new Promise(async (reslove) => { if (!userInfo.token) { await wxLogin() reslove(true) } else { //这个东西不要打开,checkSession有调用频率问题 // Taro.checkSession({ // success: async () => { // reslove(true) // if(!userInfo.adminUserInfo) getAdminUserInfo() // }, // fail: async () => { // await wxLogin() // reslove(true) // } // }) } }) } //获取用户头像等信息数据 const { fetchData: fetchDataUserInfo } = GetWxUserInfoApi() const getSelfUserInfo = async () => { return new Promise((reslove, reject) => { if (userInfo.adminUserInfo?.is_authorize_name) { reslove(true) return true } Taro.getUserProfile({ desc: '用于完善会员资料', success: async (res) => { if (!userInfo.session_key) { await wxLogin() } const user_res = await fetchDataUserInfo({ session_key: userInfo.session_key, raw_data: res.rawData, signature: res.signature, encrypted_data: res.encryptedData, iv: res.iv, }) if (user_res.success) { setUserInfo({ ...user_res.data }) getAdminUserInfo() reslove(true) } else { reject(user_res.msg) } }, fail: (e) => { console.log('授权失败::', e) reject(e.errMsg) }, }) }) } //获取手机号码 const { fetchData: fetchDataUserPhone } = GetPhoneNumberApi() const { fetchData: fetchBindingCompany } = BindingCompanyApi() const getPhoneNumber = (code) => { return new Promise(async (reslove, reject) => { if (userInfo.adminUserInfo?.is_authorize_phone) { reslove(true) return true } const res = await fetchDataUserPhone({ code }) if (res.success) { setUserInfo({ ...userInfo.userInfo, phone: res.data.phone_number }) await fetchBindingCompany() getAdminUserInfo() reslove(res.data) } else { reject(res.msg) } }) } //获取分享码(右上角分享码) const { SharePage } = SHARE_SCENE const { fetchData: fetchDataShortCode } = GetShortCodeApi() const getShortCode = async (user_id) => { const { data: resPage } = await fetchDataShortCode({ share_user_id: user_id, type: SharePage.value }) setSortCode({ ...userInfo.sort_code, shareShortPage: { title: '打造面料爆品 专注客户服务', code: resPage.md5_key, img: IMG_CND_Prefix + '/mall/share_img_01.png' }, }) } return { checkLogin, wxLogin, getSelfUserInfo, getPhoneNumber, userInfo, getAdminUserInfo, } }