详解Vue2 无限级分类(添加,删除,修改)


Posted in Javascript onMarch 07, 2017

本人对vue不是很懂,搜索了很多关于Vue2 无限级分类介绍,下面我来记录一下,有需要了解Vue2 无限级分类的朋友可参考。希望此文章对各位有所帮助。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Vue 树</title>
 <script src="https://unpkg.com/vue/dist/vue.js"></script>
 <style type="text/css">
 a{color: #333; text-decoration: none;}
 ul{padding-left: 15px;}
 </style>
</head>
<body>
 <div id="app">
  {{items}}
  <treelist v-for="(val, index) in items" :item="val" @remove="delItem(index)"></treelist>
 </div>
 <template id="treelist-template">
  <ul>
   <div style="padding:5px 0;">
    <a v-if="isFolder" @click="toggle()">[{{open ? '-' : '+'}}]</a>
    <a v-else style="color:#FFF;">[+]</a>
    <input type="number" style="width:80px;" v-model="item.sort">
    <input type="text" size="30" v-model="item.name" placeholder="岗位名称">
    <button type="button" @click="addChild()">添加</button>
    <button type="button" @click="$emit('remove')" v-if="!isFolder">删除</button>
   </div>
   <ul v-show="open" v-if="isFolder">
    <treelist v-for="(val, index) in item.children" :item="val" @remove="delItem(index)"></treelist>
   </ul>
  </ul>
 </template>
<script>
window.onload = function(){
 //treelist组件
 Vue.component('treelist', {
  template: '#treelist-template',
  props: {
   item: Object
  },
  data: function() {
   return {
    open: false
   }
  },

  computed: {
   isFolder: function() {
    return this.item.children && this.item.children.length
   }
  },

  methods: {
   toggle: function() {
    if (this.isFolder) {
     this.open = !this.open
    }
   },
   
   addChild: function() {
    /*添加内容但不同步到服务器*/
    if (!this.isFolder) {
       Vue.set(this.item, 'children', [])
     }
    this.open = true
    this.item.children.push({
     sort: 0,
     name: '',
     status: 1,
     parent_id: this.item['id']
    })
   },
   delItem: function(index){
     this.item['children'].splice(index, 1)
   }
  }
 })

 new Vue({
  el: '#app',
  data:{
   mydata: {},
   items: [
     {"id":"10","parent_id":"0","sort":"0","name":"其它","status":"0"},
     {"id":"12","parent_id":"0","sort":"0","name":"测试","status":"0"},
     {"id":"1","parent_id":"0","sort":"0","name":"水果","status":"0",
       "children":[
         {"id":"4","parent_id":"1","sort":"0","name":"香蕉","status":"0"}
       ]
     },
     {"id":"2","parent_id":"0","sort":"0","name":"饮料","status":"0",
       "children":[
         {"id":"5","parent_id":"2","sort":"0","name":"可乐","status":"0"},
         {"id":"6","parent_id":"2","sort":"0","name":"酒水","status":"0",
           "children":[
             {"id":"7","parent_id":"6","sort":"0","name":"啤酒","status":"0"}
           ]
         }
       ]
     },
     {"id":"3","parent_id":"0","sort":"0","name":"美食","status":"0",
       "children":[
         {"id":"8","parent_id":"3","sort":"0","name":"红烧鱼","status":"0"}
       ]
     }
   ]
  },

  methods: {
   add:function(){
    this.mydata['id'] = 100;//从服务器返回的ID号
    this.mydata['status'] = 0;
    this.mydata['parent_id'] = 0;
    this.items.push(this.mydata);
    this.mydata = {};
   },

   delItem: function(index){
     this.items.splice(index, 1)
   }
  }
 });
}

</script>
</body>
</html>

详解Vue2 无限级分类(添加,删除,修改)

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

Javascript 相关文章推荐
ASP.NET中基于JQUERY的高性能的TreeView补充
Feb 23 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
Jun 28 Javascript
jquery实现动态菜单的实例代码
Nov 28 Javascript
js中使用replace方法完成某个字符的转换
Aug 20 Javascript
使用javascript实现Iframe自适应高度
Dec 24 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
Sep 07 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
Jan 28 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 Javascript
详解vue组件通信的三种方式
Jun 30 Javascript
javascript 玩转Date对象(实例讲解)
Jul 11 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
Jan 17 Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 Javascript
js放到head中失效的原因与解决方法
Mar 07 #Javascript
Bootstrap媒体对象学习使用
Mar 07 #Javascript
angular十大常见问题
Mar 07 #Javascript
Bootstrap表单控件学习使用
Mar 07 #Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
Mar 07 #Javascript
Bootstrap进度条实现代码解析
Mar 07 #Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
Mar 07 #Javascript
You might like
一个程序下载的管理程序(三)
2006/10/09 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
详解Django框架中用context来解析模板的方法
2015/07/20 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
柯基袜:Corgi Socks
2017/01/26 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
安全生产实施方案
2014/02/23 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
主题教育活动总结
2014/05/05 职场文书
员工培训协议书
2014/09/15 职场文书
小学假期安全广播稿
2014/09/28 职场文书
微观世界观后感
2015/06/10 职场文书
学校标语口号大全
2015/12/26 职场文书
作文之亲情600字
2019/09/23 职场文书