You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
4.0 KiB
JavaScript

import { defineStore } from 'pinia'
import api from '@/api/index'
// import config from '../config'
// useStore 可以是 useUser、useCart 之类的任何东西
// 第一个参数是应用程序中 store 的唯一 id
export const useStore = defineStore('main2', {
state: () => {
return {
// 所有这些属性都将自动推断其类型
isLogin: false,
userInfo:null,
access_token:'',
historySearchWords:'',
course_detail_id:0,
timer:null,
surplus_seconds:null,// 倒计时
test_time:0,//测试用时
test_timer:null,
total_score:0,
status_bar_height: 0,
debounceTimer:null,
systemInfo:null,
cartList:[],
cartChange:false,
remark_text:'',
address:''
}
},
actions:{
//应用初始化,在这里获取必要的基础信息
appInit() {
//获取设备信息
const { statusBarHeight } = uni.getSystemInfoSync();
this.status_bar_height = statusBarHeight
},
countdownFunc(minutes){ // 计时
this.surplus_seconds = minutes*60
},
saveToken(token){ // 保存token
uni.setStorage({
key: 'access_token',
data: token,
success: function () {
console.log('token was saved');
}
});
},
saveVisitState(){ // 保存浏览状态
uni.setStorage({
key: 'visitState',
data: 1,
success: function () {
console.log('visitState was saved');
}
});
},
checkLogin(){ // 检查是否登录
let access_token = uni.getStorageSync('access_token')
// let visitState = uni.getStorageSync('visitState')
console.log(access_token)
if(access_token) {
this.access_token = access_token
this.isLogin = true
this.getUserInfo()
}
// else{
// if(!visitState) {
// // uni.navigateTo({
// // url:`/pages/user/login`
// // });
// }
// }
},
async getUserInfo() {// 获取用户信息
const _this = this
//测试
// 拦截器
// uni.addInterceptor('request',{
// complete(res) {
// // console.log('拦截信息:',res)
// if(res.data.data.tag === 'user') { // user接口
// // console.log('interceptor-complete',res)
// if(res.data.code === 1) {
// _this.userInfo = res.data.data.user
// }
// if(res.data.code === 7 ) { // token过期 清除token缓存
// _this.access_token = ''
// _this.isLogin = false
// uni.removeStorageSync('access_token');
// uni.removeStorageSync('visitState');
// }
// if(res.header.authorization) {
// _this.saveToken(res.header.authorization)
// _this.isLogin = true
// }
// uni.removeInterceptor('request')
// }
// }
// })
//测试 结束
const res = await api.getUserInfo()
// console.log('用户信息:',res)
if(res.code == 1) {
this.userInfo = res.data
uni.setStorageSync('userInfo',res.data);
}
// else if(res.code == 7){ // token过期 清除token缓存
// this.access_token = ''
// this.isLogin = false
// uni.removeStorageSync('access_token');
// uni.removeStorageSync('visitState');
// }
},
logout() { // 登出
this.userInfo = null
this.isLogin = false
uni.removeStorageSync('access_token');
uni.removeStorageSync('visitState');
},
clearStorageFunc() { // 清除倒计时缓存
uni.removeStorageSync('surplus_seconds')
uni.removeStorageSync('test_time')
uni.removeStorageSync('saved_right_indexs_storage') // 清除正确题目的提交记录
},
toLogin() { // 跳转登录页
uni.navigateTo({
url:'/pages/user/login'
});
},
showMsg(msg,type){
uni.showToast({
title: msg,
icon :type || 'none',
duration: 2000
});
},
async getCartList(){
const res = await api.getCartList()
// console.log(res)
if(res.code === 1) {
// if(res.data.length >0) {
this.cartList = res.data
// cart_list.value = res.data
// }
}
}
}
})