doum
2025-09-28 9ab109b9ee96e7ff2bf2b935a044aee5842a3ddc
admin/src/store/index.js
@@ -1,10 +1,13 @@
import Vue from 'vue'
import Vuex from 'vuex'
import router from '../router'
Vue.use(Vuex)
const state = {
  // 登录用户信息
  userInfo: null,
  tableHeightNew: 300,
  primaryColor: '#2080f7',
  // 首页
  homePage: null,
  // 菜单
@@ -14,10 +17,18 @@
    // 是否收起
    collapse: false
  },
  //tags数组
  tags:[],
  //tagsview标签显示隐藏
  isCollapse:false
  topMenuCurrent: {
  },
  topMenuList: {
    // 菜单列表
    list: [],
    // 是否收起
    collapse: false
  },
  // tags数组
  tags: [],
  // tagsview标签显示隐藏
  isCollapse: false
}
const mutations = {
@@ -37,45 +48,66 @@
      ...data
    }
  },
  setTableHeightNew: (state, data) => {
    state.tableHeightNew = data
  },
  clearUserInfo: (state) => {
    state.userInfo = null
  },
  // 设置首页路由信息
  setHomePage (state, homePage) {
    state.homePage = homePage
  },
  // 设置首页路由信息
  setTopMenuCurrent (state, current) {
    console.log("setTopMenuCurrent",current)
    if(current.id !== state.topMenuCurrent.id){
      state.topMenuList.list.forEach(item => {
        console.log(item.id, item.id)
        if (current.id == item.id) {
          state.topMenuCurrent = current
          state.menuData.list = item.children
        }
      })
    }
  },
  // 重置菜单
  resetMenus: (state) => {
    state.topMenuId=null
    state.menuData.list = []
  },
  //  tags
  pushtags(state,val){
    //如果等于-1说明tabs不存在那么插入,否则什么都不做
    //findindex找角标,循环判断一下,如果等于那么就代表有相同的,就不必添加,如果找不到那就是-1.就添加
    let result = state.tags.findIndex(item => item.label === val.label)
    if (result === -1) {
      state.tags.push({...val, keepAlive: false})
  pushtags (state, val) {
    // 如果等于-1说明tabs不存在那么插入,否则什么都不做
    // findindex找角标,循环判断一下,如果等于那么就代表有相同的,就不必添加,如果找不到那就是-1.就添加
    // state.tags = [{ ...val, keepAlive: false }]
    const result = state.tags.findIndex(item => item.index === val.index)
      if (result === -1) {
      state.tags.push({ ...val, keepAlive: false })
    } else {
      state.tags[result]= {...val, keepAlive: true}
      state.tags[result] = { ...val, keepAlive: false }
    }
    // result === -1 ? state.tags.push(val) : (state.tags[result]==val)
  },
  //关闭标签
  closeTab(state, val) {
    //同上,找角标,然后用角标的位置对应删除一位。splice:这是数组的删除方法
    let result = state.tags.findIndex(item => item.label === val.label)
  // 关闭标签
  closeTab (state, val) {
    // 同上,找角标,然后用角标的位置对应删除一位。splice:这是数组的删除方法
    const result = state.tags.findIndex(item => item.index === val.index)
    state.tags.splice(result, 1)
  },
  //关闭所有tagsview标签
  cleartagsview(state,val){
    //清空数组
    state.tags=[]
    //跳转到首页,val接受传过来的当前路由
    if(val !== "/index"){
      router.push({path:"/index"})
  // 关闭所有tagsview标签
  cleartagsview (state, val) {
    // 清空数组
    state.tags = []
    // 跳转到首页,val接受传过来的当前路由
    if (val !== '/index') {
      router.push({ path: '/index' })
    }
  },
  //改变tagsview显示隐藏
  changeisshow(state){
    state.isCollapse=!state.isCollapse
  // 改变tagsview显示隐藏
  changeisshow (state) {
    state.isCollapse = !state.isCollapse
  }
}
const actions = {}