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="请选择机构部门"
 />
相关推荐
Мартин.3 分钟前
[Meachines] [Easy] Sea WonderCMS-XSS-RCE+System Monitor 命令注入
前端·xss
一 乐1 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
昨天;明天。今天。1 小时前
案例-表白墙简单实现
前端·javascript·css
数云界1 小时前
如何在 DAX 中计算多个周期的移动平均线
java·服务器·前端
风清扬_jd2 小时前
Chromium 如何定义一个chrome.settingsPrivate接口给前端调用c++
前端·c++·chrome
安冬的码畜日常2 小时前
【玩转 JS 函数式编程_006】2.2 小试牛刀:用函数式编程(FP)实现事件只触发一次
开发语言·前端·javascript·函数式编程·tdd·fp·jasmine
ChinaDragonDreamer2 小时前
Vite:为什么选 Vite
前端
小御姐@stella2 小时前
Vue 之组件插槽Slot用法(组件间通信一种方式)
前端·javascript·vue.js
GISer_Jing2 小时前
【React】增量传输与渲染
前端·javascript·面试
eHackyd2 小时前
前端知识汇总(持续更新)
前端