使用ant-design-vue,自己实现一个时间选择表,如图
<a-table :pagination="false" :columns="columns" :data-source="dataSource":scroll="scroll">
<span v-for="(col, idx) in ['day0', 'day1', 'day2','day3','day4', 'day5','day6', ]" :key="idx"
:slot="col"slot-scope="day">
<div class="board board-null" v-if="disable">--</div>
<div v-else>
<div v-if="EXPIRED">已过期</div>
<div v-else-if="SELECTED">已占用</div>
<div v-else>
<div v-show="UN_SELECTED" >可选</div>
<div v-show="MY_SELECTED"> 已选</div>
</div>
</div>
</span>
</a-table>
运行代码有如下警告:
意思大概就是说,性能上考虑,不建议v-for和slot同时用在同一个标签上,
好吧,我按照提示把两个功能做了拆分
<a-table :pagination="false" :columns="columns" :data-source="dataSource":scroll="scroll">
<span v-for="(col, idx) in ['day0', 'day1', 'day2','day3','day4', 'day5','day6', ]" :key="idx" >
<template :slot="col" slot-scope="day">
<div class="board board-null" v-if="disable">--</div>
<div v-else>
<div v-if="EXPIRED">已过期</div>
<div v-else-if="SELECTED">已占用</div>
<div v-else>
<div v-show="UN_SELECTED" >可选</div>
<div v-show="MY_SELECTED"> 已选</div>
</div>
</div>
</template>
</span>
</a-table>
运行后是没有警告了,然鹅,表格里啥也没有了,因为a-table的子元素必须是slot才能展示出来,而我所有列是一样的,没必要写多个slot,所以v-for也是要有的,这两个就只能在一起了。
各位大佬,有什么好的组合方式的话,欢迎指教
网友评论