update Table cell render

update Table cell render
This commit is contained in:
梁灏 2017-03-09 15:03:05 +08:00
parent 486d4fda19
commit c0b2524da0
3 changed files with 41 additions and 42 deletions

View file

@ -1,10 +1,12 @@
<template> <template>
<Table width="550" border :columns="columns2" :data="data3"></Table> <Table width="550" :content="self" border :columns="columns2" :data="data3"></Table>
</template> </template>
<script> <script>
export default { export default {
name: 'vvv',
data () { data () {
return { return {
self: this,
columns2: [ columns2: [
{ {
title: '姓名', title: '姓名',
@ -43,7 +45,7 @@
fixed: 'right', fixed: 'right',
width: 120, width: 120,
render () { render () {
return `<Button type="text" size="small">查看</Button><Button type="text" size="small">编辑</Button>`; return `<i-button type="text" size="small" @click.native="handleClick">查看</i-button><i-button type="text" size="small">编辑</i-button>`;
} }
} }
], ],
@ -56,32 +58,37 @@
city: '朝阳区', city: '朝阳区',
zip: 100000 zip: 100000
}, },
{ // {
name: '张小刚', // name: '',
age: 25, // age: 25,
address: '北京市海淀区西二旗', // address: '西',
province: '北京市', // province: '',
city: '海淀区', // city: '',
zip: 100000 // zip: 100000
}, // },
{ // {
name: '李小红', // name: '',
age: 30, // age: 30,
address: '上海市浦东新区世纪大道', // address: '',
province: '上海市', // province: '',
city: '浦东新区', // city: '',
zip: 100000 // zip: 100000
}, // },
{ // {
name: '周小伟', // name: '',
age: 26, // age: 26,
address: '深圳市南山区深南大道', // address: '',
province: '广东', // province: '广',
city: '南山区', // city: '',
zip: 100000 // zip: 100000
} // }
] ]
} }
},
methods: {
handleClick () {
console.log(123)
}
} }
} }
</script> </script>

View file

@ -55,25 +55,17 @@
const _oldParentChildLen = $parent.$children.length; const _oldParentChildLen = $parent.$children.length;
// $parent.$compile(cell); // todo ready // $parent.$compile(cell); // todo ready
const _newParentChildLen = $parent.$children.length; const _newParentChildLen = $parent.$children.length;
if (_oldParentChildLen !== _newParentChildLen) { // if render normal html node, do not tag if (_oldParentChildLen !== _newParentChildLen) { // if render normal html node, do not tag
this.uid = $parent.$children[$parent.$children.length - 1]._uid; // tag it, and delete when data or columns update this.uid = $parent.$children[$parent.$children.length - 1]._uid; // tag it, and delete when data or columns update
} }
this.$el.innerHTML = ''; this.$el.innerHTML = '';
// this.$el.appendChild(cell);
let methods = {}; let methods = {};
let $_parent = this.$parent; Object.keys($parent).forEach(key => {
while($_parent != null && $_parent._name != '<Table>'){
$_parent = $_parent.$parent;
}
if ($_parent) {
Object.keys($_parent).forEach(key => {
const func = this.$parent.$parent.$parent[`${key}`]; const func = this.$parent.$parent.$parent[`${key}`];
if(typeof(func) === 'function' &&func.name === 'boundFn'){ if(typeof(func) === 'function' &&func.name === 'boundFn'){
methods[`${key}`] = func; methods[`${key}`] = func;
} }
}); });
}
const res = Vue.compile(cell.outerHTML); const res = Vue.compile(cell.outerHTML);
const compt = new Vue({ const compt = new Vue({
render: res.render, render: res.render,

View file

@ -53,7 +53,7 @@ const iview = {
Badge, Badge,
Breadcrumb, Breadcrumb,
BreadcrumbItem: Breadcrumb.Item, BreadcrumbItem: Breadcrumb.Item,
// iButton: Button, iButton: Button,
Button, Button,
ButtonGroup: Button.Group, ButtonGroup: Button.Group,
Card, Card,