import { Apis } from '@/gen/Apis' import { defineStore } from 'pinia' import { ref } from 'vue' import { getApiLoading } from '../libraries/apiLoading' const wxAppId='wxa191e69e5e77acca' //小程序id type DataType = { user?: { id: number username: string } orgs?: { id?: number; name?: string }[] selectedOrg?: { id?: number; name?: string; is_show_procedure?: number } work_info?:{session_key:string,openid:string}, environment?:string } export const useWeAppAuthStore = defineStore('we_app_auth', () => { const loading = ref(true) const hasError = ref(false) const data = ref({ user: { id: 0, username: '' }, work_info: { session_key:'', openid:'' }, environment: "" }) function login(app: any) { uni.login({ provider: 'weixin', //使用微信登录 success: function (loginRes) { console.log(loginRes) getWXToken(app, loginRes.code) } }) } const getWXToken = (app: any, code: string) => { Apis.Login.Auth.Login({ code: code, app_id: wxAppId }) .then(res => { console.log('登录', res?.data) data.value.user = res.data?.user loading.value = false uni.setStorageSync(import.meta.env.VITE_ACCESS_TOKEN_KEY, res?.data?.token?.token) app?.appContext.config.globalProperties.$isResolve() }) .catch(() => { loading.value = false hasError.value = true }) } function me() { getApiLoading(Apis.Login.Auth.Me, {}).then(res => { data.value.user = res.data.user console.log('me', res.data) loading.value = false hasError.value = false }) } //小程序快捷绑定 const handleUserLogin = async (from_data: { code?: string phone?: string phone_validate_code?: string }) => { getApiLoading(Apis.Login.Auth.BindPhoneNumber, { app_id: wxAppId, ...from_data }).then(res => { uni.navigateBack({delta:1}) me() }) } return { loading, hasError, data, login, me, handleUserLogin, } })