生活随笔
收集整理的這篇文章主要介紹了
vue js table colspan rowspan
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
需求,要寫(xiě)一個(gè)菜單權(quán)限表。需要做到單元格合并,本來(lái)用的antd-vue的表格,然后構(gòu)造customRender,總感覺(jué)有點(diǎn)本末倒置,其實(shí)自己實(shí)現(xiàn),更快,而且想改哪里,改哪里。下面是寫(xiě)這個(gè)功能前的測(cè)試demo。
效果圖
代碼
<template
><div
class="class-table"><div
class="table-wrapper"><div
class="tabel-container"><table
><thead
><tr
><th v
-for="(week, index) in weeks" :key
="index">{{ '周' + digital2Chinese(index
+ 1, 'week') }}</th
></tr
></thead
><tbody
><tr v
-for="(item, index) in classTableData" :key
="index"><td v
-for="(week, index) in weeks" :key
="index" :colspan
="item[week].colspan" :rowspan
="item[week].rowspan" v
-show
="item[week].colspan !== 0 && item[week].rowspan !== 0">{{ item
[week
].name
|| '-' }}<div style
="margin-top: 5px">{{ item
[week
].colspan
}} |
{{ item
[week
].rowspan
}}</div
></td
></tr
></tbody
></table
></div
></div
></div
>
</template
><script
>
export default {data() {return {weeks
: ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'],classTableData
: [{classesTime
: '08:00-09:00',monday
: { name
: 'CSS', rowspan
: 1, colspan
: 2 },tuesday
: { name
: 'JS', rowspan
: 1, colspan
: 0 },wednesday
: { name
: 'VUE', rowspan
: 1, colspan
: 3 },thursday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 0 },friday
: { name
: 'REACT', rowspan
: 1, colspan
: 0 },saturday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },sunday
: { name
: 'REACT', rowspan
: 2, colspan
: 1 },},{classesTime
: '09:00-10:00',monday
: { name
: 'DATA', rowspan
: 1, colspan
: 1 },tuesday
: { name
: 'CSS', rowspan
: 1, colspan
: 1 },wednesday
: { name
: 'REACT', rowspan
: 1, colspan
: 1 },thursday
: { name
: 'JS', rowspan
: 1, colspan
: 1 },friday
: { name
: 'REACT', rowspan
: 1, colspan
: 1 },saturday
: { name
: 'DATA', rowspan
: 1, colspan
: 1 },sunday
: { name
: 'REACT', rowspan
: 0, colspan
: 1 },},{classesTime
: '10:00-11:00',monday
: { name
: 'DATA', rowspan
: 1, colspan
: 1 },tuesday
: { name
: 'CSS', rowspan
: 1, colspan
: 1 },wednesday
: { name
: 'DATA', rowspan
: 1, colspan
: 1 },thursday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },friday
: { name
: 'DATA', rowspan
: 1, colspan
: 1 },saturday
: { name
: 'JS', rowspan
: 1, colspan
: 1 },sunday
: { name
: 'VUE', rowspan
: 1, colspan
: 1 },},{classesTime
: '11:00-12:00',monday
: { name
: '', rowspan
: 1, colspan
: 1 },tuesday
: { name
: 'VUE', rowspan
: 1, colspan
: 1 },wednesday
: { name
: 'CSS', rowspan
: 1, colspan
: 1 },thursday
: { name
: 'VUE', rowspan
: 1, colspan
: 1 },friday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },saturday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },sunday
: { name
: 'DATA', rowspan
: 1, colspan
: 1 },},{classesTime
: '13:00-14:00',monday
: { name
: 'DATA', rowspan
: 1, colspan
: 1 },tuesday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },wednesday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },thursday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },friday
: { name
: '', rowspan
: 1, colspan
: 1 },saturday
: { name
: 'JS', rowspan
: 1, colspan
: 1 },sunday
: { name
: 'REACT', rowspan
: 1, colspan
: 1 },},{classesTime
: '14:00-15:00',monday
: { name
: 'REACT', rowspan
: 1, colspan
: 1 },tuesday
: { name
: 'JS', rowspan
: 1, colspan
: 1 },wednesday
: { name
: 'CSS', rowspan
: 1, colspan
: 1 },thursday
: { name
: 'REACT', rowspan
: 1, colspan
: 1 },friday
: { name
: '語(yǔ)文', rowspan
: 1, colspan
: 1 },saturday
: { name
: 'CSS', rowspan
: 1, colspan
: 1 },sunday
: { name
: 'JS', rowspan
: 1, colspan
: 1 },},{classesTime
: '15:00-16:00',monday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },tuesday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },wednesday
: { name
: '語(yǔ)文', rowspan
: 1, colspan
: 1 },thursday
: { name
: 'JQUERY', rowspan
: 1, colspan
: 1 },friday
: { name
: 'DATA', rowspan
: 1, colspan
: 1 },saturday
: { name
: 'JS', rowspan
: 1, colspan
: 1 },sunday
: { name
: '', rowspan
: 1, colspan
: 1 },},],tableShow
: false,}},created() {},methods
: {digital2Chinese(num, identifier) {const character
= ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二']return identifier
=== 'week' && (num
=== 0 || num
=== 7) ? '日' : character
[num
]},},
}
</script
><style lang
="less" scoped
>
.class
-table
{.table
-wrapper
{width
: 100%;height
: 100%;overflow
: auto
;}.tabel
-container
{margin
: 7px
;table
{table
-layout
: fixed
;width
: 100%;thead
{background
-color
: #
67a1ff
;th
{color
: #fff
;line
-height
: 17px
;font
-weight
: normal
;}}tbody
{background
-color
: #eaf2ff
;td
{color
: #
677998;line
-height
: 12px
;}}th
,td
{width
: 60px
;padding
: 12px
2px
;font
-size
: 12px
;text
-align
: center
;border
: 1px solid grey
;}tr td
:first
-child
{color
: #
333;.period
{font
-size
: 8px
;}}}}
}
</style
>
備注:表格數(shù)據(jù)參考這位博主:vue實(shí)現(xiàn)table課程表
總結(jié)
以上是生活随笔為你收集整理的vue js table colspan rowspan的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。