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.

85 lines
2.7 KiB
JavaScript

import Taro from "@tarojs/taro";
import dayjs from "dayjs";
import { createSlice } from "@reduxjs/toolkit";
import { setStorageSync, getStorageSync } from "../../utils/traoAPI";
const userInfoReducer = createSlice({
name: "userInfo", // store的名字
initialState: {
id: "", // 用户ID
mobile: "",
nickname: "",
headimg: "",
birthday: dayjs().format("YYYY-MM-DD"), // 生日
province: "", // 省
provinceId: "",
city: "", // 市
cityId: "",
area: "", // 区
areaId: "",
token: "", // token
credit: 0, // 积分
expireCredit: 0, // 过期积分
integralText: "",
},
reducers: {
setMobile(state, { payload }) {
state.mobile = payload;
},
setNickname(state, { payload }) {
state.nickname = payload;
},
setHeadimg(state, { payload }) {
state.headimg = payload;
},
userRefresh(state, { payload }) {
state.id = payload.id || "001";
state.mobile = payload.mobile || "";
state.nickname = payload.nickname || "";
state.headimg = payload.headimg || "";
state.birthday = payload.birthday || "";
state.province = payload.province || "";
state.provinceId = payload.provinceId || "";
state.city = payload.city || "";
state.cityId = payload.cityId || "";
state.area = payload.area || "";
state.areaId = payload.areaId || "";
state.token = payload.token || "";
state.credit = payload.credit || 0;
state.expireCredit = payload.expireCredit || 0;
state.integralText = payload.integralText || "";
Taro.setStorageSync("mobile", state.mobile);
// Taro.setStorageSync("token", state.token);
},
tokenRefresh(state, { payload }) {
state.id = payload.id || "001";
state.mobile = payload.mobile || "";
state.nickname = payload.nickname || "";
state.headimg = payload.headimg || "";
state.birthday = payload.birthday || "";
state.province = payload.province || "";
state.provinceId = payload.provinceId || "";
state.city = payload.city || "";
state.cityId = payload.cityId || "";
state.area = payload.area || "";
state.areaId = payload.areaId || "";
state.token = payload.token || "";
state.credit = payload.credit || 0;
state.expireCredit = payload.expireCredit || 0;
state.integralText = payload.integralText || "";
Taro.setStorageSync("mobile", state.mobile);
// 设置token和过期时间
let expires = new Date().getTime() + 43200000;
setStorageSync("token", state.token, expires);
},
},
});
export const { setMobile, setNickname, setHeadimg, userRefresh, tokenRefresh } =
userInfoReducer.actions;
export default userInfoReducer.reducer;