vue的select下拉框多选项-multiple属性

简介: vue的select下拉框多选项-multiple属性

最近在使用vue-element-admin这个后台管理框架开源模板在做一个管理后台,使用起来其实还挺方便的,大部分的组件源码里面都已经写好了,用的时候只需要把源码拿出来修改修改,也就成了。

这里记录一下开发过程中遇到的一些功能。

今天记录一个select下拉框单选或者多选项,支持删除的功能

其实很简单的,需要添加一个属性

为el-select设置multiple属性即可启用多选

饿了么这个框架的文档给的十分的全面,

组件是非常的丰富的

 


<template>
  <el-select v-model="value1" multiple placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
  <el-select
    v-model="value2"
    multiple
    collapse-tags
    style="margin-left: 20px;"
    placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>
<script>
  export default {
    data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value1: [],
        value2: []
      }
    }
  }
</script>

实际应用的demo,参考代码index.vue

<template>
  <div class="tab-container">
    <el-form
      ref="dataForm"
      label-position="left"
      label-width="90px"
      style="width: 400px; margin-left:50px;"
    >
      <el-form-item label="题目">
        <el-input type="textarea" :rows="2" v-model="nextProjectForm.questionContent"></el-input>
      </el-form-item>
      <el-form-item label="正确答案" prop="correctAnswer">
        <el-input v-model="nextProjectForm.correctAnswer" />
      </el-form-item>
      <el-form-item label="其他答案1" prop="otherAnswer1">
        <el-input v-model="nextProjectForm.otherAnswer1" />
      </el-form-item>
      <el-form-item label="其他答案2" prop="otherAnswer2">
        <el-input v-model="nextProjectForm.otherAnswer2" />
      </el-form-item>
      <el-form-item label="其他答案3" prop="otherAnswer3">
        <el-input v-model="nextProjectForm.otherAnswer3" />
      </el-form-item>
      <el-form-item label="所属年级">
        <el-select
          v-model="nextProjectForm.userGrades"
          class="filter-item"
          placeholder="选择年级"
          multiple
          style="width: 311px; "
        >
          <el-option
            v-for="item in tabMapOptions"
            :key="item.key"
            :label="item.label"
            :value="item.key"
          />
        </el-select>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button type="primary" @click="createData()">确定</el-button>
    </div>
  </div>
</template>
<script>
//调用接口
import { saveSubject } from "@/api/content";
export default {
  data() {
    return {
      gradeSelect: "",
      tabMapOptions: [
        { label: "幼儿园", key: "kinderGarten" },
        { label: "一年级", key: "firstGrade" },
        { label: "二年级", key: "twoGrade" },
        { label: "三年级", key: "threeGrade" },
        { label: "四年级", key: "fourGrade" },
        { label: "五年级", key: "fiveGrade" },
        { label: "六年级", key: "sixGrade" },
      ],
      nextProjectForm: {
        questionContent: "",
        correctAnswer: "",
        otherAnswer1: "",
        otherAnswer2: "",
        otherAnswer3: "",
        userGrades: [],
        questionCategory: "",
      },
    };
  },
  methods: {
    //添加增加题目
    async createData() {
      let form = null;
      form = this.nextProjectForm;
      const params = form;
      const res = await saveSubject(params);
      console.log(res);
      if (res.code === "0000") {
        this.$message({
          type: "info",
          message: "保存成功",
        });
        return;
      }
      this.$message({
        type: "error",
        message: "保存失败",
      });
    },
  },
};
</script>
<style scoped>
.tab-container {
  margin: 30px;
}
</style>

api

import request from '@/utils/request'
//保存题目分类接口
export async function saveSubjectCategory(data) {
  const res = await request({
    url: '/question/saveQuestionCategory',
    method: 'post',
    data
  })
  return res
}

 

当select下拉框选择其中一个数据的时候,传到后端的参数

 

 

当select下拉框选择其中多个数据的时候,传到后端的参数

 

 

相关文章
|
6天前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
51 1
|
16天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
2月前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
48 1
vue学习第一章
|
2月前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
34 1
|
2月前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
40 1
vue学习第四章
|
2月前
|
JavaScript 前端开发 算法
vue学习第7章(循环)
欢迎来到瑞雨溪的博客,一名热爱JavaScript和Vue的大一学生。本文介绍了Vue中的v-for指令,包括遍历数组和对象、使用key以及数组的响应式方法等内容,并附有综合练习实例。关注我,将持续更新更多优质文章!🎉🎉🎉
32 1
vue学习第7章(循环)
|
2月前
|
JavaScript 前端开发
vue学习第九章(v-model)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生,自学前端2年半,正向全栈进发。此篇介绍v-model在不同表单元素中的应用及修饰符的使用,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
35 1
vue学习第九章(v-model)
|
2月前
|
JavaScript 前端开发 开发者
vue学习第十章(组件开发)
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文深入讲解Vue组件的基本使用、全局与局部组件、父子组件通信及数据传递等内容,适合前端开发者学习参考。持续更新中,期待您的关注!🎉🎉🎉
48 1
vue学习第十章(组件开发)

热门文章

最新文章