| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import {
- defineStore
- } from 'pinia'
- import {
- ref
- } from 'vue'
- import {
- login,
- getInfo,
- logout
- } from '@/api/login.js'
- import {
- getUserInfo,getSession,setSession
- } from '@/utils/auth'
- import { reLogin,keepSession } from '@/api/login.js'
- export const useUserStore = defineStore('user', () => {
- const user = ref(getUserInfo()) // 用户信息
- const useId = ref(0) // staffId
- const timer = ref(true)
- function keep() {
- setTimeout(() => {
- if (timer.value) {
- keepSession().then(res=>{
- keep()
- })
- }
- }, 600000)
- }
- // 登录方法
- 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
- // setSession(res.session)
- reLogin(username.trim(), password).then((res)=>{
- if("ok"===res.data){
- setSession(res.cookies[0].split("=")[1].split(";")[0]);
- timer.value=true
- keep()
- }
- })
- 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] === "") {
- 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
- timer.value = false
- uni.clearStorageSync()
- resolve()
- }).catch(error => {
- reject(error)
- })
- // })
- }
- return {
- user,
- useId,
- Login,
- GetInfo,
- LogOut
- }
- })
|