From dc9e27e4b1be668edf8e6f5974b29799d0580e60 Mon Sep 17 00:00:00 2001 From: Zenon <jianglei19940909@126.com> Date: Tue, 30 Jan 2018 09:58:25 +0800 Subject: [PATCH] 1.fix bug (#431) * 1.fix bug 2.update treeTable readme 3.update args name in treetable/eval.js * 1.treeTable animate --- src/components/TreeTable/eval.js | 6 +++--- src/components/TreeTable/index.vue | 14 ++++++++++++-- src/components/TreeTable/readme.md | 6 +++--- src/views/example/table/treeTable/customEval.js | 6 +++--- .../example/table/treeTable/customTreeTable.vue | 5 +++-- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/components/TreeTable/eval.js b/src/components/TreeTable/eval.js index dfaac808..d9b89e1c 100644 --- a/src/components/TreeTable/eval.js +++ b/src/components/TreeTable/eval.js @@ -4,11 +4,11 @@ */ 'use strict' import Vue from 'vue' -export default function treeToArray(data, expandedAll, parent = null, level = null) { +export default function treeToArray(data, expandAll, parent = null, level = null) { let tmp = [] Array.from(data).forEach(function(record) { if (record._expanded === undefined) { - Vue.set(record, '_expanded', expandedAll) + Vue.set(record, '_expanded', expandAll) } let _level = 1 if (level !== undefined && level !== null) { @@ -21,7 +21,7 @@ export default function treeToArray(data, expandedAll, parent = null, level = nu } tmp.push(record) if (record.children && record.children.length > 0) { - const children = treeToArray(record.children, expandedAll, record, _level) + const children = treeToArray(record.children, expandAll, record, _level) tmp = tmp.concat(children) } }) diff --git a/src/components/TreeTable/index.vue b/src/components/TreeTable/index.vue index 4ec22447..c33fc886 100644 --- a/src/components/TreeTable/index.vue +++ b/src/components/TreeTable/index.vue @@ -58,7 +58,7 @@ export default { tmp = this.data } const func = this.evalFunc || treeToArray - const args = this.evalArgs ? Array.concat([tmp], this.evalArgs) : [tmp, this.expandAll] + const args = this.evalArgs ? Array.concat([tmp, this.expandAll], this.evalArgs) : [tmp, this.expandAll] return func.apply(null, args) } }, @@ -66,7 +66,7 @@ export default { showRow: function(row) { const show = (row.row.parent ? (row.row.parent._expanded && row.row.parent._show) : true) row.row._show = show - return show ? '' : 'display:none;' + return show ? 'animation:treeTableShow 1s;-webkit-animation:treeTableShow 1s;' : 'display:none;' }, // 切换下级是否展开 toggleExpanded: function(trIndex) { @@ -80,6 +80,16 @@ export default { } } </script> +<style rel="stylesheet/css"> + @keyframes treeTableShow { + from {opacity: 0;} + to {opacity: 1;} + } + @-webkit-keyframes treeTableShow { + from {opacity: 0;} + to {opacity: 1;} + } +</style> <style lang="scss" rel="stylesheet/scss" scoped> $color-blue: #2196F3; diff --git a/src/components/TreeTable/readme.md b/src/components/TreeTable/readme.md index 1db26006..2a3b5af8 100644 --- a/src/components/TreeTable/readme.md +++ b/src/components/TreeTable/readme.md @@ -70,11 +70,11 @@ #### evalArgs 解析函数的参数,是一个数组 - **请注意,自定义的解析函数参数第一个为this.data,你不需要在evalArgs填写。** *this.data为需要解析的数据* + **请注意,自定义的解析函数参数第一个为this.data,第二个参数为, this.expandAll,你不需要在evalArgs填写。一定记住,这两个参数是强制性的,并且位置不可颠倒** *this.data为需要解析的数据,this.expandAll为是否默认展开* - 如你的解析函数需要的参数为`(this.data,1,2,3,4)`,那么你只需要将`[1,2,3,4]`赋值给`evalArgs`就可以了 + 如你的解析函数需要的参数为`(this.data, this.expandAll,1,2,3,4)`,那么你只需要将`[1,2,3,4]`赋值给`evalArgs`就可以了 - 如果你的解析函数参数只有一个`(this.data)`,那么就可以不用填写evalArgs了 + 如果你的解析函数参数只有`(this.data, this.expandAll)`,那么就可以不用填写evalArgs了 具体可参考[*customEval.js*](https://github.com/PanJiaChen/vue-element-admin/blob/master/src/views/example/table/treeTable/customEval.js)的函数参数和[customTreeTable](https://github.com/PanJiaChen/vue-element-admin/blob/master/src/views/example/table/treeTable/customTreeTable.vue)的`evalArgs`属性值 diff --git a/src/views/example/table/treeTable/customEval.js b/src/views/example/table/treeTable/customEval.js index 6eac3928..73badb68 100644 --- a/src/views/example/table/treeTable/customEval.js +++ b/src/views/example/table/treeTable/customEval.js @@ -4,12 +4,12 @@ */ 'use strict' import Vue from 'vue' -export default function treeToArray(data, parent, level, expandedAll, item) { +export default function treeToArray(data, expandAll, parent, level, item) { const marLTemp = [] let tmp = [] Array.from(data).forEach(function(record) { if (record._expanded === undefined) { - Vue.set(record, '_expanded', expandedAll) + Vue.set(record, '_expanded', expandAll) } let _level = 1 if (level !== undefined && level !== null) { @@ -40,7 +40,7 @@ export default function treeToArray(data, parent, level, expandedAll, item) { } tmp.push(record) if (record.children && record.children.length > 0) { - const children = treeToArray(record.children, record, _level, expandedAll, item) + const children = treeToArray(record.children, expandAll, record, _level, item) tmp = tmp.concat(children) } }) diff --git a/src/views/example/table/treeTable/customTreeTable.vue b/src/views/example/table/treeTable/customTreeTable.vue index 773b7fdd..4ebf428a 100644 --- a/src/views/example/table/treeTable/customTreeTable.vue +++ b/src/views/example/table/treeTable/customTreeTable.vue @@ -5,7 +5,7 @@ <a href="https://github.com/PanJiaChen/vue-element-admin/tree/master/src/components/TreeTable" target="_blank">Documentation</a> </el-tag> - <tree-table :data="data" :evalFunc="func" :evalArgs="args" border> + <tree-table :data="data" :evalFunc="func" :evalArgs="args" :expandAll="expandAll" border> <el-table-column label="事件"> <template slot-scope="scope"> <span style="color:sandybrown">{{scope.row.event}}</span> @@ -48,6 +48,7 @@ export default { data() { return { func: treeToArray, + expandAll: false, data: { id: 1, @@ -123,7 +124,7 @@ export default { } ] }, - args: [null, null, true, 'timeLine'] + args: [null, null, 'timeLine'] } }, methods: {