diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue index 58641630a38be56448bdb08fe8d59b5f27d8031a..67f5ed097a2c635f394f0901729216914e8b6386 100644 --- a/src/components/Breadcrumb/index.vue +++ b/src/components/Breadcrumb/index.vue @@ -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 } diff --git a/src/icons/svg/tree.svg b/src/icons/svg/tree.svg new file mode 100644 index 0000000000000000000000000000000000000000..11cedc04f92bd011a9efb617722f0942b1bf51fe --- /dev/null +++ b/src/icons/svg/tree.svg @@ -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> \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index cb2bffe97406ded6c2f4ce20e53bcaf2a7c2c7fb..2b78858cc474b034f31c34faa839d0f3b913ecba 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -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' } + } ] }, diff --git a/src/views/page/form.vue b/src/views/form/index.vue similarity index 100% rename from src/views/page/form.vue rename to src/views/form/index.vue diff --git a/src/views/tree/index.vue b/src/views/tree/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..2bfa69678d3c870b46553b68d0f8fa794a4c5bfb --- /dev/null +++ b/src/views/tree/index.vue @@ -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> +