From d1448cb0ef10f358bb7bddb4e1ec268515e0b787 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 15 七月 2025 11:46:57 +0800
Subject: [PATCH] 项目初始化

---
 store/modules/user.js |   70 +++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/store/modules/user.js b/store/modules/user.js
new file mode 100644
index 0000000..161ab41
--- /dev/null
+++ b/store/modules/user.js
@@ -0,0 +1,70 @@
+import { ACCESS_TOKEN } from '@/store/mutation-types'
+import storage from '@/utils/storage'
+import * as LoginApi from '@/api/login'
+import * as UserApi from '@/api/user'
+
+// 鐧婚檰鎴愬姛鍚庢墽琛�
+const loginSuccess = (commit, { token }) => {
+  // 杩囨湡鏃堕棿30澶�
+  const expiryTime = 30 * 86400
+  // 淇濆瓨tokne鍜寀serId鍒扮紦瀛�
+  storage.set(ACCESS_TOKEN, token, expiryTime)
+  // 璁板綍鍒皊tore鍏ㄥ眬鍙橀噺
+  commit('SET_TOKEN', token)
+}
+
+export const state = {
+  // 鐢ㄦ埛璁よ瘉token
+  token: '',
+  // 鐢ㄦ埛淇℃伅
+  userInfo: null
+}
+
+export const mutations = {
+  SET_TOKEN: (state, value) => {
+    state.token = value
+  },
+  SET_USER: (state, value) => {
+    state.userInfo = value
+  },
+}
+
+export const actions = {
+
+  // 鐢ㄦ埛鐧诲綍(鏅�氱櫥褰�: 杈撳叆璐﹀彿銆佸瘑鐮佸拰楠岃瘉鐮�)
+  Login({ commit }, data) {
+    return new Promise((resolve, reject) => {
+      LoginApi.login(data, { custom: { catch: true } }).then(response => {
+          const result = response;
+          loginSuccess(commit, result)
+          resolve(response)
+        }).catch(reject)
+    })
+  },
+
+  // 鐢ㄦ埛淇℃伅
+  Info({ commit, state }) {
+    return new Promise((resolve, reject) => {
+      if (state.userInfo) {
+        return resolve(state.userInfo)
+      }
+      UserApi.getInfo().then(response => {
+        const result = response;
+        commit('SET_USER', result)
+        resolve(response)
+      }).catch(reject)
+    })
+  },
+
+  // 閫�鍑虹櫥褰�
+  Logout({ commit }, data) {
+    return new Promise((resolve, reject) => {
+      LoginApi.logout(data, { custom: { catch: true } }).then(response => {
+        storage.remove(ACCESS_TOKEN)
+        commit('SET_TOKEN', '')
+        resolve(response)
+      }).catch(reject)
+    })
+  }
+
+}

--
Gitblit v1.9.3