Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
VueElementTemplate
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
HireTest
VueElementTemplate
Commits
dbf96389
Commit
dbf96389
authored
8 years ago
by
Pan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refine dynamictable example
parent
aaa64a8c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
121 additions
and
28 deletions
+121
-28
dynamictable.vue
src/views/example/table/dynamictable.vue
+9
-28
fixedThead.vue
src/views/example/table/dynamictable/fixedThead.vue
+61
-0
unfixedThead.vue
src/views/example/table/dynamictable/unfixedThead.vue
+51
-0
No files found.
src/views/example/table/dynamictable.vue
View file @
dbf96389
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<div
class=
"filter-container"
>
<div
style=
'margin:0 0 5px 20px'
>
固定表头 按照表头顺序排序
</div>
<el-checkbox-group
v-model=
"formThead"
>
<fixed-thead/>
<el-checkbox
label=
"apple"
>
apple
</el-checkbox>
<el-checkbox
label=
"banana"
>
banana
</el-checkbox>
<div
style=
'margin:30px 0 5px 20px'
>
不固定表头 按照点击顺序排序
</div>
<el-checkbox
label=
"orange"
>
orange
</el-checkbox>
<unfixed-thead/>
</el-checkbox-group>
</div>
<el-table
:data=
"tableData"
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"名称"
width=
"180"
>
</el-table-column>
<el-table-column
:key=
'fruit'
v-for=
'(fruit,index) in formThead'
:label=
"fruit"
>
<template
scope=
"scope"
>
{{
scope
.
row
.
list
[
index
].
value
}}
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
fixedThead
from
'./dynamictable/fixedThead'
import
unfixedThead
from
'./dynamictable/unfixedThead'
export
default
{
export
default
{
data
()
{
components
:
{
fixedThead
,
unfixedThead
}
return
{
tableData
:
[{
name
:
'水果'
,
list
:
[{
name
:
'apple'
,
value
:
10
},
{
name
:
'banana'
,
value
:
20
},
{
name
:
'orange'
,
value
:
20
}]
},
{
name
:
'水果2'
,
list
:
[{
name
:
'apple2'
,
value
:
12
},
{
name
:
'banana2'
,
value
:
22
},
{
name
:
'orange'
,
value
:
20
}]
}],
formThead
:
[
'apple'
,
'banana'
]
}
}
};
};
</
script
>
</
script
>
This diff is collapsed.
Click to expand it.
src/views/example/table/dynamictable/fixedThead.vue
0 → 100644
View file @
dbf96389
<
template
>
<div
class=
"app-container"
>
<div
class=
"filter-container"
>
<el-checkbox-group
v-model=
"checkboxVal"
>
<el-checkbox
label=
"apple"
>
apple
</el-checkbox>
<el-checkbox
label=
"banana"
>
banana
</el-checkbox>
<el-checkbox
label=
"orange"
>
orange
</el-checkbox>
</el-checkbox-group>
</div>
<el-table
:data=
"tableData"
:key=
'key'
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"fruitName"
width=
"180"
></el-table-column>
<el-table-column
:key=
'fruit'
v-for=
'(fruit,index) in formThead'
:label=
"fruit"
>
<template
scope=
"scope"
>
{{
scope
.
row
.
list
[
index
].
value
}}
</
template
>
</el-table-column>
</el-table>
</div>
</template>
<
script
>
const
defaultFormThead
=
[
'apple'
,
'banana'
];
// 默认选中项
export
default
{
data
()
{
return
{
tableData
:
[
{
name
:
'fruit1'
,
list
:
[
{
name
:
'apple1'
,
value
:
10
},
{
name
:
'banana1'
,
value
:
20
},
{
name
:
'orange1'
,
value
:
20
}
]
},
{
name
:
'fruit2'
,
list
:
[
{
name
:
'apple2'
,
value
:
12
},
{
name
:
'banana2'
,
value
:
22
},
{
name
:
'orange2'
,
value
:
20
}
]
}
],
key
:
1
,
// table key
formTheadOptions
:
[
'apple'
,
'banana'
,
'orange'
],
// 可选择表头
checkboxVal
:
defaultFormThead
,
// checkboxVal
formThead
:
defaultFormThead
// 默认表头
}
},
watch
:
{
checkboxVal
(
valArr
)
{
this
.
formThead
=
this
.
formTheadOptions
.
filter
(
i
=>
valArr
.
indexOf
(
i
)
>=
0
);
this
.
key
=
this
.
key
+
1
;
// 为了保证table 每次都会重渲 (牺牲性能保证效果,当然也可以不用)
}
}
};
</
script
>
This diff is collapsed.
Click to expand it.
src/views/example/table/dynamictable/unfixedThead.vue
0 → 100644
View file @
dbf96389
<
template
>
<div
class=
"app-container"
>
<div
class=
"filter-container"
>
<el-checkbox-group
v-model=
"formThead"
>
<el-checkbox
label=
"apple"
>
apple
</el-checkbox>
<el-checkbox
label=
"banana"
>
banana
</el-checkbox>
<el-checkbox
label=
"orange"
>
orange
</el-checkbox>
</el-checkbox-group>
</div>
<el-table
:data=
"tableData"
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"fruitName"
width=
"180"
>
</el-table-column>
<el-table-column
:key=
'fruit'
v-for=
'(fruit,index) in formThead'
:label=
"fruit"
>
<template
scope=
"scope"
>
{{
scope
.
row
.
list
[
index
].
value
}}
</
template
>
</el-table-column>
</el-table>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
tableData
:
[
{
name
:
'fruit1'
,
list
:
[
{
name
:
'apple1'
,
value
:
10
},
{
name
:
'banana1'
,
value
:
20
},
{
name
:
'orange1'
,
value
:
20
}
]
},
{
name
:
'fruit2'
,
list
:
[
{
name
:
'apple2'
,
value
:
12
},
{
name
:
'banana2'
,
value
:
22
},
{
name
:
'orange2'
,
value
:
20
}
]
}
],
formThead
:
[
'apple'
,
'banana'
]
}
}
};
</
script
>
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment