feat:add tree demo
This commit is contained in:
		@@ -24,7 +24,7 @@ export default {
 | 
			
		||||
      let matched = this.$route.matched.filter(item => item.name)
 | 
			
		||||
      const first = matched[0]
 | 
			
		||||
      if (first && first.name !== 'dashboard') {
 | 
			
		||||
        matched = [{ path: '/dashboard', meta: { title: 'dashboard' }}].concat(matched)
 | 
			
		||||
        matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched)
 | 
			
		||||
      }
 | 
			
		||||
      this.levelList = matched
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								src/icons/svg/tree.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/icons/svg/tree.svg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1511512690058" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3507" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M1013.703 693.345c6.865 6.865 10.297 14.874 10.297 24.027l0 205.944c0 9.916-3.432 18.115-10.297 24.599-6.865 6.483-15.255 9.725-25.171 9.725L782.588 957.64c-9.153 0-17.162-3.242-24.027-9.725-6.865-6.483-10.297-14.683-10.297-24.599L748.264 717.372c0-6.102 1.526-11.823 4.577-17.162s7.246-9.534 12.586-12.586 11.06-4.577 17.162-4.577l77.801 0L860.39 546.896c0-4.577-1.144-8.772-3.432-12.586s-5.339-6.865-9.153-9.153-8.009-3.432-12.585-3.432L543.464 521.725l0 161.323 77.801 0c9.153 0 17.162 3.432 24.027 10.297s10.297 14.874 10.297 24.027l0 205.944c0 6.102-1.526 11.823-4.577 17.162s-7.246 9.534-12.585 12.585-11.06 4.577-17.162 4.577L415.321 957.64c-6.102 0-11.823-1.526-17.162-4.577s-9.725-7.246-13.158-12.585-5.149-11.06-5.149-17.162L379.852 717.372c0-9.153 3.432-17.162 10.297-24.027s15.255-10.297 25.171-10.297l76.657 0L491.977 521.725 188.782 521.725c-7.628 0-13.92 2.479-18.878 7.437-4.958 4.958-7.437 10.869-7.437 17.734l0 136.152 77.801 0c9.916 0 18.115 3.432 24.599 10.297s9.725 14.874 9.725 24.027l0 205.944c0 9.916-3.242 18.115-9.725 24.599-6.483 6.483-14.683 9.725-24.599 9.725L34.324 957.64c-3.814 0-7.437-0.572-10.869-1.716-3.432-1.144-6.483-2.67-9.153-4.577-2.67-1.907-5.149-4.386-7.437-7.437-2.288-3.051-4.004-6.293-5.149-9.725C0.572 930.753 0 927.13 0 923.316L0 717.372c0-3.051 0.381-6.102 1.144-9.153s1.907-5.721 3.432-8.009 3.432-4.577 5.721-6.865 4.577-4.195 6.865-5.721 4.958-2.67 8.009-3.432 6.102-1.144 9.153-1.144l77.801 0L112.125 495.41c0-6.865 2.479-12.776 7.437-17.734s10.869-7.437 17.734-7.437l354.682 0L491.978 342.096l-76.657 0c-9.916 0-18.306-3.432-25.171-10.297s-10.297-14.874-10.297-24.027L379.853 101.828c0-9.916 3.432-18.306 10.297-25.171s15.255-10.297 25.171-10.297l205.944 0c6.102 0 11.823 1.716 17.162 5.149 5.339 3.432 9.534 7.818 12.585 13.158 3.051 5.339 4.577 11.06 4.577 17.162l0 205.944c0 9.153-3.432 17.162-10.297 24.027s-14.874 10.297-24.027 10.297l-77.801 0 0 128.143L885.56 470.24c7.628 0 13.92 2.479 18.878 7.437s7.437 10.869 7.437 17.734l0 187.638 76.657 0C998.448 683.048 1006.838 686.48 1013.703 693.345z" p-id="3508"></path></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 2.4 KiB  | 
@@ -21,6 +21,7 @@ import Layout from '../views/layout/Layout'
 | 
			
		||||
export const constantRouterMap = [
 | 
			
		||||
  { path: '/login', component: _import('login/index'), hidden: true },
 | 
			
		||||
  { path: '/404', component: _import('404'), hidden: true },
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    path: '/',
 | 
			
		||||
    component: Layout,
 | 
			
		||||
@@ -29,36 +30,42 @@ export const constantRouterMap = [
 | 
			
		||||
    hidden: true,
 | 
			
		||||
    children: [{
 | 
			
		||||
      path: 'dashboard',
 | 
			
		||||
      component: _import('dashboard/index'),
 | 
			
		||||
      meta: { title: 'dashboard', icon: 'dashboard' }
 | 
			
		||||
      component: _import('dashboard/index')
 | 
			
		||||
    }]
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    path: '/example',
 | 
			
		||||
    component: Layout,
 | 
			
		||||
    redirect: 'noredirect',
 | 
			
		||||
    redirect: '/example/table',
 | 
			
		||||
    name: 'Example',
 | 
			
		||||
    meta: { title: 'Example', icon: 'example' },
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: 'index',
 | 
			
		||||
        name: 'Form',
 | 
			
		||||
        component: _import('page/form'),
 | 
			
		||||
        meta: { title: 'Form', icon: 'form' }
 | 
			
		||||
        path: 'table',
 | 
			
		||||
        name: 'Table',
 | 
			
		||||
        component: _import('table/index'),
 | 
			
		||||
        meta: { title: 'Table', icon: 'table' }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'tree',
 | 
			
		||||
        name: 'Tree',
 | 
			
		||||
        component: _import('tree/index'),
 | 
			
		||||
        meta: { title: 'Tree', icon: 'tree' }
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    path: '/table',
 | 
			
		||||
    path: '/form',
 | 
			
		||||
    component: Layout,
 | 
			
		||||
    redirect: '/table/index',
 | 
			
		||||
    children: [{
 | 
			
		||||
      path: 'index',
 | 
			
		||||
      name: 'Table',
 | 
			
		||||
      component: _import('table/index'),
 | 
			
		||||
      meta: { title: 'Table', icon: 'table' }}
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: 'index',
 | 
			
		||||
        name: 'Form',
 | 
			
		||||
        component: _import('form/index'),
 | 
			
		||||
        meta: { title: 'Form', icon: 'form' }
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										71
									
								
								src/views/tree/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								src/views/tree/index.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-input placeholder="Filter keyword" v-model="filterText" style="margin-bottom:30px;"></el-input>
 | 
			
		||||
 | 
			
		||||
    <el-tree class="filter-tree" :data="data2" :props="defaultProps" default-expand-all :filter-node-method="filterNode" ref="tree2"></el-tree>
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  watch: {
 | 
			
		||||
    filterText(val) {
 | 
			
		||||
      this.$refs.tree2.filter(val)
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    filterNode(value, data) {
 | 
			
		||||
      if (!value) return true
 | 
			
		||||
      return data.label.indexOf(value) !== -1
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      filterText: '',
 | 
			
		||||
      data2: [{
 | 
			
		||||
        id: 1,
 | 
			
		||||
        label: 'Level one 1',
 | 
			
		||||
        children: [{
 | 
			
		||||
          id: 4,
 | 
			
		||||
          label: 'Level two 1-1',
 | 
			
		||||
          children: [{
 | 
			
		||||
            id: 9,
 | 
			
		||||
            label: 'Level three 1-1-1'
 | 
			
		||||
          }, {
 | 
			
		||||
            id: 10,
 | 
			
		||||
            label: 'Level three 1-1-2'
 | 
			
		||||
          }]
 | 
			
		||||
        }]
 | 
			
		||||
      }, {
 | 
			
		||||
        id: 2,
 | 
			
		||||
        label: 'Level one 2',
 | 
			
		||||
        children: [{
 | 
			
		||||
          id: 5,
 | 
			
		||||
          label: 'Level two 2-1'
 | 
			
		||||
        }, {
 | 
			
		||||
          id: 6,
 | 
			
		||||
          label: 'Level two 2-2'
 | 
			
		||||
        }]
 | 
			
		||||
      }, {
 | 
			
		||||
        id: 3,
 | 
			
		||||
        label: 'Level one 3',
 | 
			
		||||
        children: [{
 | 
			
		||||
          id: 7,
 | 
			
		||||
          label: 'Level two 3-1'
 | 
			
		||||
        }, {
 | 
			
		||||
          id: 8,
 | 
			
		||||
          label: 'Level two 3-2'
 | 
			
		||||
        }]
 | 
			
		||||
      }],
 | 
			
		||||
      defaultProps: {
 | 
			
		||||
        children: 'children',
 | 
			
		||||
        label: 'label'
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user