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参数的小问题
Mar 02 Javascript
javascript操作cookie_获取与修改代码
May 21 Javascript
js 刷新页面的代码小结 推荐
Apr 02 Javascript
js confirm()方法的使用方法实例
Jul 13 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
Nov 30 Javascript
简要了解jQuery移动web开发的响应式布局设计
Dec 04 Javascript
JavaScript对象参数的引用传递
Jan 14 Javascript
jQuery实现动态文字搜索功能
Jan 05 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
Mar 22 Javascript
Vue页面跳转动画效果的实现方法
Sep 23 Javascript
vue里input根据value改变背景色的实例
Sep 29 Javascript
vue-cli构建vue项目的步骤详解
Jan 27 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
使用PHP实现生成HTML静态页面
2015/11/18 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
js+css简单实现网页换肤效果
2015/12/29 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
gulp解决跨域的配置文件问题
2017/06/08 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
python中eval与int的区别浅析
2019/08/11 Python
Python计算IV值的示例讲解
2020/02/28 Python
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
师范生个人推荐信
2013/11/29 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
2016年清明节寄语
2015/12/04 职场文书