springboot+vue+mybatisplus项目实战-学生成绩管理系统16

661 篇文章 3 订阅
112 篇文章 0 订阅

store

actions.js

//vuex的异步调用方法

export default {

    //保存用户
    setUserInfo(context,params){
        context.commit('SET_USER_INFO',params);
    },
    //新增页签tab
    addTab(context,tab){
        context.commit('ADD_TAB',tab);
    },
    //关闭页签tab
    closeTab(context,tabName){
        context.commit('CLOSE_TAB',tabName);
    },
    //保存学生列表
    setStudentList(context,studentList){
        context.commit('SET_STUDENT_LIST',studentList);
    },
    //获取学生列表
    getStudentList(context){
        context.commit('GET_STUDENT_LIST');
    },
    //清除一切
    clearAll(context){
        context.commit('CLEAR_USER_INFO');
        context.commit('CLEAR_TAB');
    }
}

getters.js

//getters其实就是对state数据的加工再处理,类似computed
export default {
    //常规写法,函数方式
    //获取用户信息
    userInfo(state){
        // let userInfo = state.userInfo;
        // if(!userInfo) {
        //     userInfo = window.localStorage.getItem('access-user');
        // }
        return state.userInfo;
    },
    //简化写法,获取已打开的页签tab
    openedTabs: state => state.openedTabs,
    //获取学生列表
    studentList: state => state.studentList,
}

index.js

import Vue from 'vue' //引入vue
import Vuex from 'vuex' //引入vuex
import state from './state' // 分别引入 state,getters,mutations,action1
import getters from './getters'
import mutations from './mutations'
import actions from './actions1'

Vue.use(Vuex)

export default new Vuex.Store({
  // state: {
  // },
  // getters: {
  // },
  // mutations: {
  // },
  // actions: {
  // },
  // modules: {
  // }
  //注册加入
  state,
  getters,
  mutations,
  actions,
})

mutations.js

import {saveItem, removeItem,clearAll} from '@/storage'
import {USER_TOKEN_KEY,USER_TABS_KEY} from '@/config/Constants'
import {doGet} from '@/network/request'

export default {
    //保存user
    SET_USER_INFO(state,data){
        state.userInfo = data;
        //window.localStorage.setItem('access-user',JSON.stringify(data));
        saveItem(USER_TOKEN_KEY,data.token);
    },
    //清除用户
    CLEAR_USER_INFO(state) {
        state.userInfo = '';
        clearAll();
    },
    //新增tab
    ADD_TAB(state,data){
        //判断state中是否已存在tab
        let exist = state.openedTabs.some(obj => obj.path === data.path);
        if(!exist){
            //不存在
            state.openedTabs.push(data);
        }
        saveItem(USER_TABS_KEY,state.openedTabs);
    },
    //关闭tab
    CLOSE_TAB(state,tabName){
        //过滤
        state.openedTabs = state.openedTabs.filter(item => item.path !== tabName);
        removeItem(USER_TABS_KEY);
        saveItem(USER_TABS_KEY,state.openedTabs);
    },
    //清除tab
    CLEAR_TAB(state){
        state.openedTabs = [];
        removeItem(USER_TABS_KEY);
    },
    //保存学生列表
    SET_STUDENT_LIST(state,data){
        state.studentList = data;
    },
    //获取学生列表
    GET_STUDENT_LIST(state){
        if(state.studentList <= 0){
            doGet({
                url:'/student/findAll'
            }).then(res=>{
                state.studentList = res.data;
            })
        }
    }
}

state.js

import {getItem} from "@/storage";
import {USER_INFO_KEY, USER_TABS_KEY} from "@/config/Constants";

const state = {
    //修复bug
    userInfo: getItem(USER_INFO_KEY) ? JSON.parse(getItem(USER_INFO_KEY)) : { id: -1,userName: ''},
    //打开的tabs数组
    openedTabs: getItem(USER_TABS_KEY) ? JSON.parse(getItem(USER_TABS_KEY)) : [
        {
            //当前tab对应的router路径
            path: '/index',
            //tab的标题
            text: '首页',
            //当前tab对应的router的全路径,包含参数
            fullPath: '/index'
        }
    ],
    //学生列表
    studentList:[]
};

export default state

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾米大王

有你的支持,我会更有动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值