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 相关文章推荐
Some tips of wmi scripting in jscript (1)
Apr 03 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
Nov 27 Javascript
javascript基于HTML5 canvas制作画箭头组件
Jun 25 Javascript
jquery实现浮动的侧栏实例
Jun 25 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
Jul 04 Javascript
jQuery自制提示框tooltip改进版
Aug 01 Javascript
vue.js加载新的内容(实例代码)
Jun 01 Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
vue组件命名和props命名代码详解
Sep 01 Javascript
node静态服务器实现静态读取文件或文件夹
Dec 03 Javascript
js实现踩五彩块游戏
Feb 08 Javascript
微信小程序实现通讯录列表展开收起
Nov 18 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
PHP设计模式 注册表模式
2012/02/05 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
移动web开发之touch事件实例详解
2018/01/17 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
python3设计模式之简单工厂模式
2017/10/17 Python
python如何删除文件中重复的字段
2019/07/16 Python
Django实现文件上传下载功能
2019/10/06 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
世界最大的票务市场:viagogo
2017/02/16 全球购物
红领巾心向党广播稿
2014/01/19 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
openstack中的rpc远程调用的方法
2021/07/09 Python
Python Django项目和应用的创建详解
2021/11/27 Python