Commit c0b2524da03637a5d552b804054824392facb888
1 parent
486d4fda
update Table cell render
update Table cell render
Showing
3 changed files
with
41 additions
and
42 deletions
Show diff stats
examples/routers/table.vue
1 | 1 | <template> |
2 | - <Table width="550" border :columns="columns2" :data="data3"></Table> | |
2 | + <Table width="550" :content="self" border :columns="columns2" :data="data3"></Table> | |
3 | 3 | </template> |
4 | 4 | <script> |
5 | 5 | export default { |
6 | + name: 'vvv', | |
6 | 7 | data () { |
7 | 8 | return { |
9 | + self: this, | |
8 | 10 | columns2: [ |
9 | 11 | { |
10 | 12 | title: '姓名', |
... | ... | @@ -43,7 +45,7 @@ |
43 | 45 | fixed: 'right', |
44 | 46 | width: 120, |
45 | 47 | render () { |
46 | - return `<Button type="text" size="small">查看</Button><Button type="text" size="small">编辑</Button>`; | |
48 | + return `<i-button type="text" size="small" @click.native="handleClick">查看</i-button><i-button type="text" size="small">编辑</i-button>`; | |
47 | 49 | } |
48 | 50 | } |
49 | 51 | ], |
... | ... | @@ -56,32 +58,37 @@ |
56 | 58 | city: '朝阳区', |
57 | 59 | zip: 100000 |
58 | 60 | }, |
59 | - { | |
60 | - name: '张小刚', | |
61 | - age: 25, | |
62 | - address: '北京市海淀区西二旗', | |
63 | - province: '北京市', | |
64 | - city: '海淀区', | |
65 | - zip: 100000 | |
66 | - }, | |
67 | - { | |
68 | - name: '李小红', | |
69 | - age: 30, | |
70 | - address: '上海市浦东新区世纪大道', | |
71 | - province: '上海市', | |
72 | - city: '浦东新区', | |
73 | - zip: 100000 | |
74 | - }, | |
75 | - { | |
76 | - name: '周小伟', | |
77 | - age: 26, | |
78 | - address: '深圳市南山区深南大道', | |
79 | - province: '广东', | |
80 | - city: '南山区', | |
81 | - zip: 100000 | |
82 | - } | |
61 | +// { | |
62 | +// name: '张小刚', | |
63 | +// age: 25, | |
64 | +// address: '北京市海淀区西二旗', | |
65 | +// province: '北京市', | |
66 | +// city: '海淀区', | |
67 | +// zip: 100000 | |
68 | +// }, | |
69 | +// { | |
70 | +// name: '李小红', | |
71 | +// age: 30, | |
72 | +// address: '上海市浦东新区世纪大道', | |
73 | +// province: '上海市', | |
74 | +// city: '浦东新区', | |
75 | +// zip: 100000 | |
76 | +// }, | |
77 | +// { | |
78 | +// name: '周小伟', | |
79 | +// age: 26, | |
80 | +// address: '深圳市南山区深南大道', | |
81 | +// province: '广东', | |
82 | +// city: '南山区', | |
83 | +// zip: 100000 | |
84 | +// } | |
83 | 85 | ] |
84 | 86 | } |
87 | + }, | |
88 | + methods: { | |
89 | + handleClick () { | |
90 | + console.log(123) | |
91 | + } | |
85 | 92 | } |
86 | 93 | } |
87 | 94 | </script> | ... | ... |
src/components/table/cell.vue
... | ... | @@ -53,27 +53,19 @@ |
53 | 53 | const cell = document.createElement('div'); |
54 | 54 | cell.innerHTML = template; |
55 | 55 | const _oldParentChildLen = $parent.$children.length; |
56 | -// $parent.$compile(cell); // todo 这里无法触发 ready 钩子 | |
56 | + // $parent.$compile(cell); // todo 这里无法触发 ready 钩子 | |
57 | 57 | const _newParentChildLen = $parent.$children.length; |
58 | - | |
59 | 58 | if (_oldParentChildLen !== _newParentChildLen) { // if render normal html node, do not tag |
60 | 59 | this.uid = $parent.$children[$parent.$children.length - 1]._uid; // tag it, and delete when data or columns update |
61 | 60 | } |
62 | 61 | this.$el.innerHTML = ''; |
63 | -// this.$el.appendChild(cell); | |
64 | 62 | let methods = {}; |
65 | - let $_parent = this.$parent; | |
66 | - while($_parent != null && $_parent._name != '<Table>'){ | |
67 | - $_parent = $_parent.$parent; | |
68 | - } | |
69 | - if ($_parent) { | |
70 | - Object.keys($_parent).forEach(key => { | |
71 | - const func = this.$parent.$parent.$parent[`${key}`]; | |
72 | - if(typeof(func) === 'function' &&func.name === 'boundFn'){ | |
73 | - methods[`${key}`] = func; | |
74 | - } | |
75 | - }); | |
76 | - } | |
63 | + Object.keys($parent).forEach(key => { | |
64 | + const func = this.$parent.$parent.$parent[`${key}`]; | |
65 | + if(typeof(func) === 'function' &&func.name === 'boundFn'){ | |
66 | + methods[`${key}`] = func; | |
67 | + } | |
68 | + }); | |
77 | 69 | const res = Vue.compile(cell.outerHTML); |
78 | 70 | const compt = new Vue({ |
79 | 71 | render: res.render, | ... | ... |