项目初始化
This commit is contained in:
33
src/stores/modules/meter.js
Normal file
33
src/stores/modules/meter.js
Normal file
@@ -0,0 +1,33 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { generateUUID } from '@/utils/tools.js'
|
||||
|
||||
export const useMeterStore = defineStore('meter', {
|
||||
state: () => ({
|
||||
udid: ''
|
||||
}),
|
||||
actions: {
|
||||
initUdid() {
|
||||
var udid = window.localStorage.getItem('UDID')
|
||||
if (!udid) {
|
||||
udid = generateUUID();
|
||||
window.localStorage.setItem("UDID", udid);
|
||||
}
|
||||
this.setUdid(udid)
|
||||
},
|
||||
setUdid(udid) {
|
||||
this.udid = udid
|
||||
},
|
||||
getUdid() {
|
||||
return this.udid
|
||||
},
|
||||
getSudid() {
|
||||
var typedArray = new Uint8Array(this.udid.match(/[\da-f]{2}/gi).map(function (h) {
|
||||
return parseInt(h, 16)
|
||||
}));
|
||||
const sudid = btoa(String.fromCharCode.apply(null, typedArray)).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
||||
|
||||
return sudid
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
72
src/stores/modules/user.js
Normal file
72
src/stores/modules/user.js
Normal file
@@ -0,0 +1,72 @@
|
||||
|
||||
import { login, logout, getInfo } from '@/api/login'
|
||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
||||
import { defineStore } from 'pinia'
|
||||
|
||||
const useUserStore = defineStore(
|
||||
'user',
|
||||
{
|
||||
state: () => ({
|
||||
token: getToken(),
|
||||
name: '',
|
||||
avatar: '',
|
||||
roles: '',
|
||||
}),
|
||||
actions: {
|
||||
// 登录
|
||||
async login(userInfo) {
|
||||
try {
|
||||
const { username, password } = userInfo;
|
||||
const trimmedUsername = username.trim();
|
||||
|
||||
const res = await login(trimmedUsername, password);
|
||||
const { token, user } = res.data;
|
||||
localStorage.setItem('userData', JSON.stringify(user));
|
||||
setToken(token);
|
||||
this.token = token;
|
||||
|
||||
} catch (error) {
|
||||
console.error('登录失败:', error);
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
// 获取用户信息
|
||||
getInfo() {
|
||||
return new Promise((resolve, reject) => {
|
||||
try {
|
||||
const userData = localStorage.getItem('userData');
|
||||
|
||||
if (!userData) {
|
||||
return reject(new Error('未找到用户数据'));
|
||||
}
|
||||
const parsedData = JSON.parse(userData);
|
||||
if (!parsedData) {
|
||||
return reject(new Error('用户数据格式无效'));
|
||||
}
|
||||
resolve(parsedData);
|
||||
} catch (error) {
|
||||
console.error('获取用户信息失败:', error);
|
||||
reject(error instanceof Error ? error : new Error('解析用户数据失败'));
|
||||
}
|
||||
});
|
||||
},
|
||||
// 退出系统
|
||||
async logOut() {
|
||||
try {
|
||||
await logout();
|
||||
this.token = '';
|
||||
this.roles = '';
|
||||
removeToken();
|
||||
} catch (error) {
|
||||
console.error('退出登录失败:', error);
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
//判断是否登录
|
||||
checkLogin() {
|
||||
return !!getToken();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
export default useUserStore
|
||||
Reference in New Issue
Block a user