feat(table): 新增 toolbar 插槽, 支持自定义工具栏
This commit is contained in:
parent
08a2ca219d
commit
b9943cc264
@ -121,4 +121,65 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
:::
|
||||
|
||||
::: demo
|
||||
|
||||
<template>
|
||||
<lay-table :columns="columns" :dataSource="dataSource">
|
||||
<template v-slot:toolbar>
|
||||
<lay-button>新增</lay-button>
|
||||
<lay-button>删除</lay-button>
|
||||
</template>
|
||||
<template v-slot:username="{ data }"> {{data.username}} </template>
|
||||
<template v-slot:password="{ data }"> {{data.password}} </template>
|
||||
<template v-slot:operator="{ data }">
|
||||
<lay-button >修改</lay-button>
|
||||
<lay-button type="primary">删除</lay-button>
|
||||
</template>
|
||||
</lay-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ref } from 'vue'
|
||||
|
||||
export default {
|
||||
setup() {
|
||||
|
||||
const columns = [
|
||||
{
|
||||
title:"账户",
|
||||
width:"200px",
|
||||
slot:"username",
|
||||
key:"username"
|
||||
},{
|
||||
title:"密码",
|
||||
width: "180px",
|
||||
slot:"password",
|
||||
key:"password"
|
||||
},{
|
||||
title:"年龄",
|
||||
width: "180px",
|
||||
key:"age"
|
||||
},{
|
||||
title:"操作",
|
||||
width: "180px",
|
||||
customSlot:"operator",
|
||||
key:"operator"
|
||||
}
|
||||
]
|
||||
|
||||
const dataSource = [
|
||||
{username:"root", password:"root", age:"18"},
|
||||
{username:"woow", password:"woow", age:"20"}
|
||||
]
|
||||
|
||||
return {
|
||||
columns,
|
||||
dataSource
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
:::
|
@ -5,6 +5,11 @@
|
||||
class="layui-form layui-border-box layui-table-view layui-table-view-1"
|
||||
>
|
||||
<div class="layui-table-tool">
|
||||
<div class="layui-table-tool-temp">
|
||||
<div class="layui-btn-container">
|
||||
<slot name="toolbar"></slot>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-table-tool-self">
|
||||
<div class="layui-inline" title="筛选列" lay-event="LAYTABLE_COLS">
|
||||
<i class="layui-icon layui-icon-cols"></i>
|
||||
@ -71,7 +76,6 @@
|
||||
</td>
|
||||
|
||||
<template v-for="column in columns" :key="column">
|
||||
|
||||
<template v-if="column.customSlot">
|
||||
<td>
|
||||
<div
|
||||
@ -82,7 +86,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</template>
|
||||
|
||||
|
||||
<template
|
||||
v-else
|
||||
v-for="(value, key, index) in data"
|
||||
@ -100,7 +104,6 @@
|
||||
</div>
|
||||
</td>
|
||||
</template>
|
||||
|
||||
</template>
|
||||
</tr>
|
||||
</template>
|
||||
@ -109,7 +112,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="page" class="layui-table-page">
|
||||
<lay-page :total="page.total" :limit="page.limit" @jump="change" showPage showLimit showSkip></lay-page>
|
||||
<lay-page
|
||||
:total="page.total"
|
||||
:limit="page.limit"
|
||||
@jump="change"
|
||||
showPage
|
||||
showLimit
|
||||
showSkip
|
||||
></lay-page>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -130,7 +140,7 @@ const emit = defineEmits(['change'])
|
||||
const slot = useSlots()
|
||||
const slots = slot.default && slot.default()
|
||||
|
||||
const change = function(page: any){
|
||||
emit('change',page)
|
||||
const change = function (page: any) {
|
||||
emit('change', page)
|
||||
}
|
||||
</script>
|
Loading…
Reference in New Issue
Block a user