From 6ef1b14f735acdc3ff77a50da1bb09a5bb983dcc Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期三, 28 五月 2025 17:37:06 +0800
Subject: [PATCH] location,userinfo
---
store/index.ts | 69 ++++++++++++++++++++++++++++++++++
1 files changed, 69 insertions(+), 0 deletions(-)
diff --git a/store/index.ts b/store/index.ts
new file mode 100644
index 0000000..fd4b0e4
--- /dev/null
+++ b/store/index.ts
@@ -0,0 +1,69 @@
+// stores/user.ts
+import { defineStore } from 'pinia'
+import { ref } from 'vue'
+import http from '@/plugins/http.js'
+import storage from '@/plugins/storage'
+import message from '@/plugins/message'
+import { WechatLoginData } from '@/types/index'
+
+
+export const useUserStore = defineStore('user', () => {
+ const hasLogin = ref(false)
+ const isBind = ref(false)
+
+ async function getCurrentInfo() {
+ // 模拟请求用户信息
+ console.log('获取当前用户信息')
+ // 这里你可以请求 /api/user/info 等接口获取用户数据
+ }
+
+ async function loginwx(data: WechatLoginData) {
+ const {
+ code,
+ imgurl = '',
+ nickname = '',
+ inviter = '',
+ phoneNumber = '',
+ purePhoneNumber = ''
+ } = data
+
+ const resp = await http.request('post', '/api/login/wechat', {
+ data: {
+ code,
+ imgurl,
+ nickname,
+ inviter,
+ phoneNumber,
+ purePhoneNumber
+ }
+ })
+
+ if (resp && resp.code === 0) {
+ isBind.value = true
+ storage.setItem('token', resp.data.access_token || '')
+ hasLogin.value = true
+
+ if (inviter) {
+ storage.removeItem('inviter')
+ storage.removeItem('inviterTime')
+ storage.removeItem('inviterName')
+ }
+
+ await getCurrentInfo()
+ } else {
+ message.showToast('登录失败:' + (resp?.msg || '未知错误'))
+ storage.removeItem('openid')
+ storage.removeItem('tel')
+ storage.removeItem('token')
+ }
+
+ return resp
+ }
+
+ return {
+ hasLogin,
+ isBind,
+ loginwx,
+ getCurrentInfo
+ }
+})
--
Gitblit v1.9.3