| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import {
- defineStore
- } from 'pinia'
- import {
- ref
- } from 'vue'
- import {
- login,
- getInfo,
- logout
- } from '@/api/login.js'
- import {
- getUserInfo
- } from '@/utils/auth'
- export const useUserStore = defineStore('user', () => {
- const user = ref(getUserInfo()) // 用户信息
- const useId = ref(0) // staffId
- // 登录方法
- function Login(userInfo) {
- const username = userInfo.username
- const password = userInfo.password
- return new Promise((resolve, reject) => {
- login(username.trim(), password)
- .then(res => {
- useId.value = res.returnParams.useId // 设置staffId
- user.value = res.returnParams
- // setToken(res.token)
- resolve(res)
- })
- .catch(error => {
- reject(error)
- })
- })
- }
- function GetInfo(index) {
- const roleIndex = index || 0
- return new Promise((resolve, reject) => {
- getInfo(useId.value).then(res => {
- const source = res.returnParams[roleIndex]
- Object.keys(source).forEach(key => {
- // 目标对象没有该属性或者该属性为 null,则赋值
- if (!(key in user.value) || user.value[key] === null) {
- user.value[key] = source[key] === undefined ? user.value[key] : source[key];
- }
- });
- // 保存 用户信息
- uni.setStorageSync('userInfo', user.value)
- resolve(res)
- })
- .catch(error => {
- reject(error)
- })
- })
- }
- function LogOut() {
- return new Promise((resolve, reject) => {
- // logout().then(() => {
- user.value = {}
- useId.value = 0
- uni.clearStorageSync()
- resolve()
- }).catch(error => {
- reject(error)
- })
- // })
- }
- return {
- user,
- useId,
- Login,
- GetInfo,
- LogOut
- }
- })
|