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>
<Table width="550" border :columns="columns2" :data="data3"></Table>
<Table width="550" :content="self" border :columns="columns2" :data="data3"></Table>
</template>
<script>
export default {
name: 'vvv',
data () {
return {
self: this,
columns2: [
{
title: '姓名',
@ -43,7 +45,7 @@
fixed: 'right',
width: 120,
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: '朝阳区',
zip: 100000
},
{
name: '张小刚',
age: 25,
address: '北京市海淀区西二旗',
province: '北京市',
city: '海淀区',
zip: 100000
},
{
name: '李小红',
age: 30,
address: '上海市浦东新区世纪大道',
province: '上海市',
city: '浦东新区',
zip: 100000
},
{
name: '周小伟',
age: 26,
address: '深圳市南山区深南大道',
province: '广东',
city: '南山区',
zip: 100000
}
// {
// name: '',
// age: 25,
// address: '西',
// province: '',
// city: '',
// zip: 100000
// },
// {
// name: '',
// age: 30,
// address: '',
// province: '',
// city: '',
// zip: 100000
// },
// {
// name: '',
// age: 26,
// address: '',
// province: '广',
// city: '',
// zip: 100000
// }
]
}
},
methods: {
handleClick () {
console.log(123)
}
}
}
</script>

View file

@ -53,27 +53,19 @@
const cell = document.createElement('div');
cell.innerHTML = template;
const _oldParentChildLen = $parent.$children.length;
// $parent.$compile(cell); // todo ready
// $parent.$compile(cell); // todo ready
const _newParentChildLen = $parent.$children.length;
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.$el.innerHTML = '';
// this.$el.appendChild(cell);
let methods = {};
let $_parent = this.$parent;
while($_parent != null && $_parent._name != '<Table>'){
$_parent = $_parent.$parent;
}
if ($_parent) {
Object.keys($_parent).forEach(key => {
const func = this.$parent.$parent.$parent[`${key}`];
if(typeof(func) === 'function' &&func.name === 'boundFn'){
methods[`${key}`] = func;
}
});
}
Object.keys($parent).forEach(key => {
const func = this.$parent.$parent.$parent[`${key}`];
if(typeof(func) === 'function' &&func.name === 'boundFn'){
methods[`${key}`] = func;
}
});
const res = Vue.compile(cell.outerHTML);
const compt = new Vue({
render: res.render,

View file

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