Vue自定义多选组件使用详解


Posted in Javascript onSeptember 08, 2020

本文实例为大家分享了Vue自定义多选组件使用的具体代码,供大家参考,具体内容如下

子组件(选项卡)

checkBoxCard.vue

<template>
 <div class="checkBoxCard">
  <div :class="`box ${check && 'boxCheck'}`" @click="checked(), updateData()">
   {{ name }}
  </div>
 </div>
</template>

<script>
export default {
 name: "checkBoxCard",
 props: {
  name: String,
  checkIndex: {
   type: Number,
   default: null,
  },
 },
 data() {
  return {
   radio: 0,
   check: false,
   radioName: "",
   list: [],
  };
 },
 methods: {
  checked() {
   if (this.radio == 1) {
    this.check = false;
    this.radio = 0;
   } else if (this.radio == 0) {
    this.check = true;
    this.radio = 1;
   }
  },
  updateData() {
   if (this.radio == 1) {
    this.radioName = this.name;
   } else if (this.radio == 0) {
    this.radioName = "";
   }
   this.$emit("updateSurveyData", this.radioName, this.checkIndex);
  },
 },
 mounted() {},
 created() {},
};
</script>

<style lang="scss" scoped>
.checkBoxCard {
 margin-right: 15px;
 display: inline-block;
 margin-top: 10px;
}
.boxCheck {
 color: rgba(183, 37, 37, 1);
 background: bisque;
}
.box {
 border: 0.55px solid #eee;
 padding: 5px 10px;
 font-size: 3.73333vw;
 border-radius: 10px;
}
</style>

父组件

checkBox.vue

<template>
 <div class="checkBox">
  <div class="title">
   选择
  </div>

  <div class="card">  
    <CheckBoxCard
     v-for="item in list"
     :key="item.value"
     :name="item.name"
     :checkIndex="item.value"
     @updateSurveyData="updateSurveyData"
    />
  </div>
 </div>
</template>

<script>
import CheckBoxCard from "./checkBoxCard";
export default {
 name: "checkBox",
 components: {
  CheckBoxCard,
 },
 data: function () {
  return {
   list: [
    { value: 0, name: "选项1" },
    { value: 1, name: "选项2" },
    { value: 2, name: "选项3" },
    { value: 3, name: "选项4" },
    { value: 4, name: "选项5" },
    { value: 5, name: "选项6" },
    { value: 6, name: "其他" },
   ],
   name: "",
    checkList: [],
  };
 },
 methods: {
  updateSurveyData(question, index) {
   this.checkList[index] = question;
    console.log(this.checkList.filter((x) => x != ""));
   console.log(this.checkList.filter((x) => x != "").join());
  },
 },
 created() {},
};
</script>

<style scoped>
.checkBox {
 padding: 5.33333vw 4vw;
 border-bottom: 0.55px solid #eee;
 background: white;
}

.title {
 text-align: left;
 color: #323233;
 font-size: 3.73333vw;
 padding-bottom: 10px;
 line-height: 30px;
}
</style>

效果图

Vue自定义多选组件使用详解

Vue自定义多选组件使用详解

Vue自定义多选组件使用详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javaScript 判断字符串是否为数字的简单方法
Jul 25 Javascript
jquery单行文字向上滚动效果示例
Mar 06 Javascript
Javascript中3种实现继承的方法和代码实例
Aug 12 Javascript
JavaScript实现继承的4种方法总结
Oct 16 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
Dec 08 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
May 16 Javascript
jQuery实现查找最近父节点的方法
Jun 23 Javascript
Windows安装Node.js报错:2503、2502的解决方法
Oct 25 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
Sep 25 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
Apr 15 Javascript
Angular+ionic实现折叠展开效果的示例代码
Jul 29 Javascript
uniapp实现横向滚动选择日期
Oct 21 Javascript
vue项目中微信登录的实现操作
Sep 08 #Javascript
关于element-ui表单中限制输入纯数字的解决方式
Sep 08 #Javascript
快速解决element的autofocus失效问题
Sep 08 #Javascript
vue axios请求成功却进入catch的原因分析
Sep 08 #Javascript
JavaScript数组类型Array相关的属性与方法详解
Sep 08 #Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
Sep 08 #Javascript
vue等两个接口都返回结果再执行下一步的实例
Sep 08 #Javascript
You might like
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
基于jquery的Repeater实现代码
2010/07/17 Javascript
Seajs的学习笔记
2014/03/04 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
JS实现放烟花效果
2020/03/10 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
python redis存入字典序列化存储教程
2020/07/16 Python
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
最新的互联网创业计划书
2014/01/10 职场文书
迅雷Cued工作心得体会
2014/01/27 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
售后服务承诺函格式
2015/01/21 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers