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