vue设置全局枚举

简介:提交表单时经常用到枚举,获取数据类表时也要用枚举分解状态

思路:

1、请求后台接口获取枚举,保存进localStorage和vueX,每次进入时从localStorage获取枚举保存进vueX,不用反复请求

2、从Store获取枚举设置方法分解枚举,通常用于表格状态

3、利用mixin把枚举混入全局实例,这样可以在全局使用枚举

实现:

1、获取枚举

复制代码
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    enum: {},//全局枚举 从后台获取
  },
  getters: {
    getEnumData(state) {
      return state.enum
    },
  },
  mutations: {//获取枚举列表
    getEnum(state, data) {
      state.enum = data
    },
  },
})
复制代码

2、全局设置分解方法和枚举

复制代码
import Vue from 'vue'
import store from '@/store'
import { mapGetters } from 'vuex'
//全局过滤选择器的枚举
function mapLabel(value, key) {
    // 显示公共enumLabel
    const data = store.state.enum
    if (key && data[key]) {
        return (
            data[key].find((e) => e.value === value) || {
                label: value,
            }
        ).label
    } else return 'no enum'
}
Vue.filter('mapLabel', mapLabel)
//全局获取枚举对象
Vue.mixin({
    computed: {
        ...mapGetters({
            '$enum': 'getEnumData'
        })
    }
})
复制代码

 

posted @   Pavetr  阅读(2371)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示