本文使用 前端封装字典 介绍

话不多说直接上代码

CurdDict.js

const CurdDict = {
  data() {
    //判断组件是否定义了curdDictTypes字典数组
    if (this.$options !== undefined && this.$options.curdDictTypes !== undefined && this.$options.curdDictTypes !== null) {
      return {
        //防止后期方便使用
        curdDictTypes: this.$options.curdDictTypes,
        //字典数组 此处将结构都定义出来,方便敲代码的时候有字段提示
        curdDictList: [{
          type: "",
          list: [{
            label: "",
            value: ""
          }]
        }]
      }
    }
  },
  created() {
    //判断组件是否定义了curdDictTypes字典数组
    if (this.$options !== undefined && this.$options.curdDictTypes !== undefined && this.$options.curdDictTypes !== null) {
      //清空
      this.$set(this, "curdDictList", [])
      //网络请求
      let curdDict = this.doHttpGetCurdDict(this.curdDictTypes);
      //设置值
      this.$set(this, "curdDictList", curdDict)
    }
  },
  methods: {
    //网络请求
    doHttpGetCurdDict(types) {
      console.log(types)
      return [
        {
          type: "user_type",
          list: [
            {
              label: "普通用户",
              value: "1"
            },
            {
              label: "管理员",
              value: "2"
            }
          ]
        }
      ]
    }
  }
}
export default CurdDict; 

main.js
引入刚刚的js

import CurdDict from "@/utils/dict/CurdDict";
Vue.mixin( CurdDict )

image

直接在组件data上面加上以下代码就行了

curdDictTypes : ["user_type"],

image-1675223947156

效果如下
image-1675224264404
image-1675224321513