You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
7.2 KiB
188 lines
7.2 KiB
|
2 months ago
|
import fetch from '../common/httpRequest'
|
||
|
|
|
||
|
|
// #ifndef VUE3
|
||
|
|
import Vue from 'vue'
|
||
|
|
import Vuex from 'vuex'
|
||
|
|
|
||
|
|
Vue.use(Vuex)
|
||
|
|
|
||
|
|
const store = new Vuex.Store({
|
||
|
|
// #endif
|
||
|
|
|
||
|
|
// #ifdef VUE3
|
||
|
|
import {
|
||
|
|
createStore
|
||
|
|
} from 'vuex'
|
||
|
|
const store = createStore({
|
||
|
|
// #endif
|
||
|
|
state: {
|
||
|
|
// 用户令牌 项目调用接口用
|
||
|
|
token: uni.getStorageSync("hiver_token") || "",
|
||
|
|
// 是否登录 项目中改为真实登录信息判断,如token
|
||
|
|
isLogin: uni.getStorageSync("hiver_token") ? true : false,
|
||
|
|
// app版本
|
||
|
|
version: "1.0.0",
|
||
|
|
// 用户ID
|
||
|
|
userId: "",
|
||
|
|
// 用户名
|
||
|
|
username: "",
|
||
|
|
// 手机号
|
||
|
|
mobile: "",
|
||
|
|
// 登录后跳转的页面路径 + 页面参数
|
||
|
|
returnUrl: "",
|
||
|
|
// 当前是否有网络连接
|
||
|
|
networkConnected: true,
|
||
|
|
// 在线状态
|
||
|
|
isOnline: true,
|
||
|
|
// 用户昵称
|
||
|
|
nickname: "",
|
||
|
|
// 头像
|
||
|
|
avatar: "",
|
||
|
|
// 类型 0 店主 1 店长 2 店员 3 物流 4 普通用户 5 Vip用户(预留)
|
||
|
|
type: 0,
|
||
|
|
// 描述
|
||
|
|
description: "这家伙很懒…",
|
||
|
|
// 当前店铺 0为默认店铺 否则为商铺ID
|
||
|
|
shopIndex: 0,
|
||
|
|
// 商铺名称
|
||
|
|
shopName: "",
|
||
|
|
// 商铺所属区域
|
||
|
|
region: "",
|
||
|
|
// 当前设备
|
||
|
|
platform: ""
|
||
|
|
},
|
||
|
|
mutations: {
|
||
|
|
// login(state, payload) {
|
||
|
|
// if (payload) {
|
||
|
|
// state.token = payload.token
|
||
|
|
// }
|
||
|
|
// state.isLogin = true
|
||
|
|
// },
|
||
|
|
logout(state) {
|
||
|
|
state.userId = ""
|
||
|
|
state.token = ""
|
||
|
|
state.isLogin = false
|
||
|
|
state.username = ""
|
||
|
|
state.mobile = ""
|
||
|
|
state.returnUrl = ""
|
||
|
|
state.isOnline = false
|
||
|
|
state.nickname = ""
|
||
|
|
state.avatar = ""
|
||
|
|
state.type = 0
|
||
|
|
state.description = "这家伙很懒…"
|
||
|
|
state.shopIndex = 0
|
||
|
|
state.shopName = ""
|
||
|
|
state.platform = ""
|
||
|
|
uni.setStorageSync("hiver_token", "")
|
||
|
|
},
|
||
|
|
setReturnUrl(state, returnUrl) {
|
||
|
|
state.returnUrl = returnUrl
|
||
|
|
},
|
||
|
|
networkChange(state, payload) {
|
||
|
|
state.networkConnected = payload.isConnected
|
||
|
|
},
|
||
|
|
setOnline(state, payload) {
|
||
|
|
state.isOnline = state.isOnline
|
||
|
|
},
|
||
|
|
setUserInfo(state, payload) {
|
||
|
|
state.userId = payload.userId
|
||
|
|
state.username = payload.username
|
||
|
|
state.mobile = payload.mobile
|
||
|
|
state.nickname = payload.nickname
|
||
|
|
state.avatar = payload.avatar
|
||
|
|
state.type = payload.type
|
||
|
|
state.description = payload.description
|
||
|
|
|
||
|
|
},
|
||
|
|
setShopIndex(state, payload) {
|
||
|
|
state.shopIndex = payload.shopIndex || payload.id
|
||
|
|
state.shopName = payload.shopName
|
||
|
|
state.region = payload.region
|
||
|
|
},
|
||
|
|
setPlatform(state, payload) {
|
||
|
|
state.platform = payload.platform
|
||
|
|
}
|
||
|
|
},
|
||
|
|
actions: {
|
||
|
|
getOnlineStatus: async function ({
|
||
|
|
commit,
|
||
|
|
state
|
||
|
|
}) {
|
||
|
|
return await new Promise((resolve, reject) => {
|
||
|
|
// #ifndef MP-WEIXIN
|
||
|
|
resolve(true)
|
||
|
|
// #endif
|
||
|
|
// #ifdef MP-WEIXIN
|
||
|
|
if (state.isOnline) {
|
||
|
|
resolve(state.isOnline)
|
||
|
|
} else {
|
||
|
|
fetch.request("/app/common/userInfo", "GET", {}, false, true, true).then((
|
||
|
|
res) => {
|
||
|
|
if (res.code == 200 && res.result != null && res
|
||
|
|
.result != undefined && res.result.user != null &&
|
||
|
|
res.result.user != undefined) {
|
||
|
|
commit('setOnline', {
|
||
|
|
isOnline: true
|
||
|
|
})
|
||
|
|
// 更新基础信息
|
||
|
|
resolve(true)
|
||
|
|
} else {
|
||
|
|
commit('setOnline', {
|
||
|
|
isOnline: false
|
||
|
|
})
|
||
|
|
// 要求重新登录
|
||
|
|
resolve(false)
|
||
|
|
}
|
||
|
|
}).catch((res) => {
|
||
|
|
reject(false)
|
||
|
|
})
|
||
|
|
}
|
||
|
|
// #endif
|
||
|
|
})
|
||
|
|
},
|
||
|
|
getUserInfo: async function ({
|
||
|
|
commit,
|
||
|
|
state
|
||
|
|
}) {
|
||
|
|
return await new Promise((resolve, reject) => {
|
||
|
|
fetch.request("/app/common/userInfo", "GET", {}, false, true, true).then((
|
||
|
|
res) => {
|
||
|
|
if (res.code == 200 && res.result != null && res
|
||
|
|
.result != undefined && res.result.user != null &&
|
||
|
|
res.result.user != undefined) {
|
||
|
|
commit('setUserInfo', {
|
||
|
|
userId: res.result.user.id,
|
||
|
|
username: res.result.user.username,
|
||
|
|
mobile: res.result.user.mobile,
|
||
|
|
nickname: res.result.user.nickname,
|
||
|
|
avatar: res.result.user.avatar,
|
||
|
|
type: res.result.user.type,
|
||
|
|
description: res.result.user.description
|
||
|
|
})
|
||
|
|
if (res.result.shops != null &&
|
||
|
|
res.result.shops != undefined && res.result.shops.length > 0) {
|
||
|
|
commit('setShopIndex', {
|
||
|
|
shopIndex: res.result.shops[0].id,
|
||
|
|
shopName: res.result.shops[0].shopName,
|
||
|
|
region: res.result.shops[0].region
|
||
|
|
})
|
||
|
|
}
|
||
|
|
// 更新基础信息
|
||
|
|
resolve(res.result.user.type)
|
||
|
|
} else {
|
||
|
|
commit('logout')
|
||
|
|
// 要求重新登录
|
||
|
|
uni.redirectTo({
|
||
|
|
url: '/package2/login/login'
|
||
|
|
});
|
||
|
|
resolve(false)
|
||
|
|
}
|
||
|
|
}).catch((res) => {
|
||
|
|
reject(false)
|
||
|
|
})
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
})
|
||
|
|
|
||
|
|
export default store
|