iview/examples/routers/table.vue

404 lines
15 KiB
Vue
Raw Normal View History

2019-08-27 09:42:40 +08:00
<template>
2019-12-19 20:06:01 +08:00
<div style="margin: 100px;">
2020-01-10 11:12:49 +08:00
<!-- <Table border ref="selection" :columns="columns5" :data="data2"></Table>-->
2020-01-07 22:27:00 +08:00
<Divider></Divider>
2020-01-06 17:32:29 +08:00
<Table
border
highlight-row
2020-01-12 13:33:48 +08:00
content-menu
2020-01-06 17:32:29 +08:00
@on-current-change="occ"
@on-row-click="orc"
2020-01-06 17:35:50 +08:00
@on-row-dblclick="ordc"
@on-select="os"
@on-select-cancel="osc"
2020-01-08 09:37:34 +08:00
@on-select-all="osa"
@on-select-all-cancel="osac"
2020-01-12 13:33:48 +08:00
@on-contextmenu="ocm"
2020-01-06 17:32:29 +08:00
ref="selection"
:columns="columns4"
:data="data1"
2020-01-10 11:12:49 +08:00
row-key="id"
:load-data="loadData"
>
2020-01-06 11:17:09 +08:00
<template slot-scope="{ row }" slot="age">
<strong>{{row.age}}</strong>
</template>
</Table>
2020-01-06 16:14:09 +08:00
<br><br>
2020-01-10 11:12:49 +08:00
<Button @click="addData">添加数据</Button>
<Button @click="addData2">添加数据2</Button>
2019-12-19 20:06:01 +08:00
<Button @click="handleSelectAll(true)">Set all selected</Button>
<Button @click="handleSelectAll(false)">Cancel all selected</Button>
2019-08-27 09:42:40 +08:00
</div>
</template>
<script>
export default {
data () {
return {
2019-09-20 20:00:00 +08:00
columns4: [
2020-01-06 16:14:09 +08:00
// {
// type: 'index',
// width: 60,
// align: 'center'
// },
2019-08-27 09:42:40 +08:00
{
2019-12-19 20:06:01 +08:00
type: 'selection',
width: 60,
align: 'center'
2019-09-20 20:00:00 +08:00
},
{
title: 'Name',
key: 'name',
2019-12-19 20:06:01 +08:00
tree: true
2019-08-27 09:42:40 +08:00
},
{
title: 'Age',
2020-01-08 21:13:57 +08:00
key: 'age',
2020-01-09 09:59:28 +08:00
sortable: true,
filters: [
{
label: 'Greater than 180',
value: 1
},
{
label: 'Less than 180',
value: 2
}
],
filterMultiple: false,
filterMethod (value, row) {
if (value === 1) {
return row.age > 180;
} else if (value === 2) {
return row.age < 180;
}
}
2019-08-27 09:42:40 +08:00
},
2020-01-03 14:18:33 +08:00
{
title: 'Date',
key: 'date'
},
2019-08-27 09:42:40 +08:00
{
title: 'Address',
2020-01-09 09:59:28 +08:00
key: 'address',
filters: [
{
label: 'New York',
value: 'New York'
},
{
label: 'London',
value: 'London'
},
{
label: 'Sydney',
value: 'Sydney'
}
],
filterMethod (value, row) {
return row.address.indexOf(value) > -1;
}
2019-08-27 09:42:40 +08:00
}
],
data1: [
{
2020-01-06 11:17:09 +08:00
id: '100',
2019-08-27 09:42:40 +08:00
name: 'John Brown',
2020-01-09 09:59:28 +08:00
age: 118,
2019-09-20 20:00:00 +08:00
address: 'New York No. 1 Lake Park',
2020-01-07 22:27:00 +08:00
date: '2016-10-03',
_disabled: true,
2020-01-10 11:12:49 +08:00
level: 0,
2020-01-12 09:28:49 +08:00
_loading: false,
children: []
2019-08-27 09:42:40 +08:00
},
{
2020-01-06 11:17:09 +08:00
id: '101',
2019-08-27 09:42:40 +08:00
name: 'Jim Green',
2020-01-09 09:59:28 +08:00
age: 224,
2019-09-20 20:00:00 +08:00
address: 'London No. 1 Lake Park',
2019-12-19 20:06:01 +08:00
date: '2016-10-01',
2020-01-06 11:17:09 +08:00
_showChildren: true,
2020-01-08 09:37:34 +08:00
_disabled: false,
2020-01-08 21:13:57 +08:00
level: 0,
2019-12-19 20:06:01 +08:00
children: [
2019-09-20 20:00:00 +08:00
{
2020-01-06 11:17:09 +08:00
id: '10100',
2019-12-19 20:06:01 +08:00
name: '张三',
2020-01-08 21:13:57 +08:00
age: 235,
2019-12-19 20:06:01 +08:00
address: '发动机莲富大厦放假了开始的',
2020-01-08 21:13:57 +08:00
date: '2016-10-01',
level: 1
2019-09-20 20:00:00 +08:00
},
{
2020-01-06 11:17:09 +08:00
id: '10101',
2019-12-19 20:06:01 +08:00
name: '李四',
2020-01-08 21:13:57 +08:00
age: 129,
2019-12-19 20:06:01 +08:00
address: '风刀霜剑分离的思路开发',
2020-01-08 21:13:57 +08:00
date: '2016-10-02',
level: 1
2019-09-20 20:00:00 +08:00
},
{
2020-01-06 11:17:09 +08:00
id: '10102',
2019-12-19 20:06:01 +08:00
name: '王五',
2020-01-08 21:13:57 +08:00
age: 290,
2019-12-19 20:06:01 +08:00
address: '分离的付款就说个就是范德萨发生',
date: '2016-10-03',
2020-01-06 11:17:09 +08:00
_showChildren: true,
2020-01-08 21:13:57 +08:00
level: 1,
2019-09-20 20:00:00 +08:00
children: [
{
2020-01-06 11:17:09 +08:00
id: '10102100',
2019-12-19 20:06:01 +08:00
name: '赵六',
2020-01-09 09:59:28 +08:00
age: 111,
2019-12-19 20:06:01 +08:00
address: '梵蒂冈人太热疼我',
2020-01-08 21:13:57 +08:00
date: '2016-10-05',
level: 2
2019-09-20 20:00:00 +08:00
},
{
2020-01-06 11:17:09 +08:00
id: '10102101',
2019-12-19 20:06:01 +08:00
name: '丁八',
2020-01-08 21:13:57 +08:00
age: 272,
2019-12-19 20:06:01 +08:00
address: '法第三方的范德萨范德萨发送到',
date: '2016-10-06',
2020-01-06 11:17:09 +08:00
_showChildren: true,
2020-01-08 21:13:57 +08:00
level: 2,
2019-09-20 20:00:00 +08:00
children: [
{
2020-01-06 11:17:09 +08:00
id: '10102101100',
2019-12-19 20:06:01 +08:00
name: '第九',
2020-01-08 21:13:57 +08:00
age: 123,
2019-12-19 20:06:01 +08:00
address: '9梵蒂冈人太热疼我',
2020-01-08 09:37:34 +08:00
date: '2016-10-07',
2020-01-08 21:13:57 +08:00
_disabled: true,
level: 3
2019-09-20 20:00:00 +08:00
},
{
2020-01-06 11:17:09 +08:00
id: '10102101101',
2019-12-19 20:06:01 +08:00
name: '第十',
2020-01-08 21:13:57 +08:00
age: 254,
2019-12-19 20:06:01 +08:00
address: '10法第三方的范德萨范德萨发送到',
2020-01-08 21:13:57 +08:00
date: '2016-10-08',
level: 3
2019-12-19 20:06:01 +08:00
},
2019-09-20 20:00:00 +08:00
]
2019-12-19 20:06:01 +08:00
},
2019-09-20 20:00:00 +08:00
]
}
]
},
{
2020-01-06 11:17:09 +08:00
id: '102',
2019-12-19 20:06:01 +08:00
name: 'Joe Black',
2020-01-09 09:59:28 +08:00
age: 130,
2019-12-19 20:06:01 +08:00
address: 'Sydney No. 1 Lake Park',
2020-01-07 22:27:00 +08:00
date: '2016-10-02',
2020-01-08 09:37:34 +08:00
_disabled: false,
2020-01-10 11:12:49 +08:00
level: 0,
2020-01-12 09:28:49 +08:00
_showChildren: false,
2020-01-10 11:12:49 +08:00
children: [
{
id: '10200',
name: '张三3',
age: 235,
address: '发动机莲富大厦放假了开始的',
date: '2016-10-01',
level: 1
},
{
id: '10201',
name: '张三4',
age: 235,
address: '发动机莲富大厦放假了开始的',
date: '2016-10-01',
level: 1
},
]
2019-09-20 20:00:00 +08:00
},
2020-01-12 13:09:22 +08:00
{
id: '103',
name: 'Jon Snow',
age: 126,
address: 'Ottawa No. 2 Lake Park',
date: '2016-10-04',
_disabled: true,
level: 0
}
2020-01-07 22:27:00 +08:00
],
columns5: [
{
type: 'selection',
width: 60,
align: 'center'
},
{
title: 'Name',
key: 'name'
},
{
title: 'Age',
2020-01-08 21:13:57 +08:00
key: 'age',
2020-01-09 09:59:28 +08:00
sortable: true,
filters: [
{
label: 'Greater than 25',
value: 1
},
{
label: 'Less than 25',
value: 2
}
],
filterMultiple: false,
filterMethod (value, row) {
if (value === 1) {
return row.age > 25;
} else if (value === 2) {
return row.age < 25;
}
}
2020-01-07 22:27:00 +08:00
},
{
title: 'Address',
2020-01-09 09:59:28 +08:00
key: 'address',
filters: [
{
label: 'New York',
value: 'New York'
},
{
label: 'London',
value: 'London'
},
{
label: 'Sydney',
value: 'Sydney'
}
],
filterMethod (value, row) {
return row.address.indexOf(value) > -1;
}
2020-01-07 22:27:00 +08:00
}
],
data2: [
{
name: 'John Brown',
age: 18,
address: 'New York No. 1 Lake Park',
date: '2016-10-03',
_disabled: true,
},
{
name: 'Jim Green',
age: 24,
address: 'London No. 1 Lake Park',
date: '2016-10-01',
_disabled: true
},
{
name: 'Joe Black',
age: 30,
address: 'Sydney No. 1 Lake Park',
date: '2016-10-02',
_disabled: true
},
{
name: 'Jon Snow',
age: 26,
address: 'Ottawa No. 2 Lake Park',
date: '2016-10-04',
_disabled: true
2019-09-20 20:00:00 +08:00
}
2019-12-19 20:06:01 +08:00
]
2019-08-27 09:42:40 +08:00
}
},
methods: {
2019-12-19 20:06:01 +08:00
handleSelectAll (status) {
this.$refs.selection.selectAll(status);
2020-01-06 16:14:09 +08:00
},
occ (n, o) {
2020-01-06 17:32:29 +08:00
// console.log(n);
// console.log(o);
},
orc (data, index) {
2020-01-06 17:35:50 +08:00
// console.log(data);
// console.log(index);
},
ordc (data, index) {
// console.log(data);
// console.log(index);
},
os (s, r) {
2020-01-08 09:37:34 +08:00
// console.log(s);
// console.log(r);
},
osc (s, r) {
console.log(s);
console.log(r);
2020-01-08 09:37:34 +08:00
},
osa (s) {
console.log(s);
},
osac (s) {
console.log(s);
2020-01-10 11:12:49 +08:00
},
ocm (s, e) {
2020-01-12 13:33:48 +08:00
console.log(s);
console.log(e);
2020-01-12 13:33:48 +08:00
},
2020-01-10 11:12:49 +08:00
loadData (item, callback) {
setTimeout(() => {
const data = [
{
id: '10000',
name: '张三1',
age: 123,
address: '1发动机莲富大厦放假了开始的',
date: '2016-10-01'
},
{
id: '10001',
name: '张三2',
age: 124,
address: '2发动机莲富大厦放假了开始的',
date: '2016-10-02'
},
];
callback(data);
2020-01-12 10:42:20 +08:00
}, 1000);
2020-01-10 11:12:49 +08:00
},
addData () {
const d = this.data1[3];
d.children = [
{
id: '10000',
name: '张三1',
age: 123,
address: '1发动机莲富大厦放假了开始的',
date: '2016-10-01'
},
{
id: '10001',
name: '张三2',
age: 124,
address: '2发动机莲富大厦放假了开始的',
date: '2016-10-02'
}
];
this.$set(this.data1, 3, d);
},
addData2 () {
this.data1.push({
id: '104',
name: 'Jon Snow4',
age: 124,
address: 'Ottawa No. 2 Lake Park',
date: '2016-10-04',
_disabled: true,
level: 0
})
2019-08-27 09:42:40 +08:00
}
}
}
</script>