详解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 相关文章推荐
javascript 导出数据到Excel(处理table中的元素)
Dec 18 Javascript
jquery的extend和fn.extend的使用说明
Jan 09 Javascript
新发现一个骗链接的方法(js读取cookies)
Jan 11 Javascript
jquery插件开发方法(初学者)
Feb 03 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
Jun 05 Javascript
JQuery解析XML的方法小结
Apr 02 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
Jun 20 Javascript
JQuery手速测试小游戏实现思路详解
Sep 20 Javascript
jQuery动态生成的元素绑定事件操作实例分析
May 04 jQuery
Vue学习笔记之计算属性与侦听器用法
Dec 07 Javascript
js中调用微信的扫描二维码功能的实现代码
Apr 11 Javascript
vue实现标签云效果的示例
Nov 09 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
很好用的PHP数据库类
2009/05/27 PHP
drupal 代码实现URL重写
2011/05/04 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
JavaScript replace(rgExp,fn)正则替换的用法
2010/03/04 Javascript
jquery 3D球状导航的文章分类
2010/07/06 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
js 实现 input type=&quot;file&quot; 文件上传示例代码
2013/08/07 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
Python 字符串定义
2009/09/25 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
python下载微信公众号相关文章
2019/02/26 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
如何判断计算机可能已经中马
2013/03/22 面试题
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
毕业留言寄语大全
2014/04/10 职场文书
运动会标语
2014/06/21 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
病危通知单
2015/04/17 职场文书
党支部季度考核意见
2015/06/02 职场文书
办公室管理规章制度
2015/08/04 职场文书