| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- 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'
- import $modal from '@/plugins/modal.js'
- import config from '@/config.js'
- export const useUserStore = defineStore('user', () => {
- const user = ref(getUserInfo()) // 用户信息
- const useId = ref(0) // staffId
- const timer = ref(true) //定时器
- function keep() {
- keepSession().then(res => {
- setTimeout(() => {
- if (timer.value) {
- keep()
- }
- }, 600000)
- })
- }
- // 登录方法
- function Login(userInfo) {
- let username = userInfo.username
- const password = userInfo.password
- const loginInfo = {
- username,
- password
- }
- return new Promise((resolve, reject) => {
- if (username.includes('@')) {
- username = username.split('@')[0]
- }
- username = username.trim() + '@' +config.companyCode // 强制使用配置的公司代码
- login(username, password)
- .then(res => {
- useId.value = res.returnParams.useId // 设置staffId
- // user.value = res.returnParams
- //保存账号密码
- uni.setStorageSync('loginInfo', loginInfo)
- if (config.saas != 1) { // 多租户时需要携带公司代码
- username = username.split('@')[0] // 获取session时不需要公司代码
- }
- reLogin(username, 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
- if (useId.value == 0) {
- useId.value = uni.getStorageSync('userInfo').useId
- }
- return new Promise((resolve, reject) => {
- getInfo(useId.value).then(res => {
- if ("Exception" == res.returnMsg) {
- $modal.msgError(res.returnParams)
- reject(res.returnParams)
- }
- user.value = res.returnParams[roleIndex]
- // 保存 用户信息
- 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
- }
- })
|