vue封装下拉框组件

vue文件

vue 复制代码
<template>
  <el-select clearable
             :collapse-tags="collapseTags"
             :multiple="multiple"
             v-bind="$attrs"
             :placeholder="placeholder"
             :spellcheck="false"
             style="width: 100%"
             v-on="$listeners"
  >
    <el-option v-for="item in options" :key="item.itemCode" :label="item.label" :value="item.value"/>
  </el-select>
</template>

<script>


import {getDictItemByDictCode} from "@/api/dictItemManagement";

export default {
  name: 'HmSelectCode',
  props: {
    codeid: {
      type: String,
      required: false,
      default: '',
    },
    multiple: {
      type: Boolean,
      required: false,
      default: false,
    },
    collapseTags: {
      type: Boolean,
      required: false,
      default: true,
    },
    placeholder: {
      type: String,
      required: false,
      default: '',
    }
  },
  data() {
    return {
      title: '组件标题',
      currentDesc: '',
      // 组件内输入框的值
      currentValue: '',
      options: [],
    }
  },
  mounted() {
    if (!this.codeid) return
    //调用后端接口
    getDictItemByDictCode(this.codeid).then(res => {
      this.options = []
      res.data.forEach((value1,) => {
        const option = {value: value1.itemCode, label: value1.itemName}
        this.options.push(option)
      })
    })
  },
  methods: {
    init() {
    },
  },
}
</script>

main.js

js 复制代码
import HmSelectCode from './components/HmSelectCode'
Vue.component('HmSelectCode', HmSelectCode)

使用

vue 复制代码
<HmSelectCode 
                v-model="queryForm.isDepartment" 
                codeid="sys_isDepartment" 
                placeholder="请选择机构部门"
 />
相关推荐
代码游侠8 小时前
应用——Linux FrameBuffer图形显示与多线程消息系统项目
linux·运维·服务器·开发语言·前端·算法
小二·9 小时前
Python Web 开发进阶实战:Flask 项目中的表单验证、错误处理与用户体验优化
前端·python·flask
天荒地老笑话么9 小时前
IntelliJ IDEA 运行 Tomcat 报错:Please, configure Web Facet first!
java·前端·tomcat·intellij-idea
王五周八9 小时前
html转化为base64编码的pdf文件
前端·pdf·html
神色自若9 小时前
vue3 带tabs的后台管理系统,切换tab标签后,共用界面带参数缓存界面状态
前端·vue3
мо仙堡杠把子ご灬9 小时前
微前端架构实践:避免Vuex模块重复注册的崩溃陷阱
前端
叫我:松哥9 小时前
基于机器学习的地震风险评估与可视化系统,采用Flask后端与Bootstrap前端,系统集成DBSCAN空间聚类算法与随机森林算法
前端·算法·机器学习·flask·bootstrap·echarts·聚类
呆头鸭L9 小时前
用vue3+ts+elementPlus+vite搭建electron桌面端应用
前端·vue.js·electron
aPurpleBerry9 小时前
React Hooks(数据驱动、副作用、状态传递、状态派生)
前端·react.js·前端框架
IT_陈寒9 小时前
2025年React生态最新趋势:我从Redux迁移到Zustand后性能提升40%的心得
前端·人工智能·后端