# kube-form-tab
kube-form-tab 优化了 tab 的切换模式,也可以更方便的使用 v-model 关联组件状态,数组内所有数据均为mutable,可以被绑定到子组件上,方便表单结构和数据结构的统一。
# Demo
示例
实时数据观测:
# v-model
list: Array<Object>
# Props
props | description | default |
---|---|---|
disabled | 隐藏增删 | false |
titleKey | tab名对应的key值 | undefined |
tabKey | tab的具名插槽名 | undefined |
dataTemplate | 对象模板 | () => ({}) |
initRequired | 初始化一个 | true |
errorPrefix | 报错名前缀 | '' |
# Slots
具名插槽
# tab 上的具名插槽
[
{ title: 'xxxx', tab: 'bbbb' },
{ title: 'pppp', tab: 'qqqqq' },
] // 数据
对应的表格中会创建两个具名插槽,分别对应对tab头和tab页的插槽
<tempate>
<kube-tab
v-model="tabs"
title-key="title"
tab-key="tab">
<template #[`bbbb.tab`]="{ model }">
<!-- tab 头 -->
</teamplte>
<template #bbbb="{ model, state }">
<!-- tab 页 -->
</teamplte>
<template #qqqqq="{ model, state }">
<!-- tab 页 -->
</teamplte>
</kube-tab>
</template>
# demo.vue
<template>
<div>
<kube-tab
v-model="tabs"
:data-template="getDefault"
>
<template slot-scope="{ model: row, errorPrefix }">
<u-form label-size="small" style="margin-top: 20px">
<u-form-item label="a">
<u-input v-model="row.a" />
</u-form-item>
<u-form-item label="b">
<u-input v-model="row.b" />
</u-form-item>
<u-form-item label="c">
<u-input v-model="row.c" />
</u-form-item>
</u-form>
</template>
</kube-tab>
<demo-visualize-data v-model="tabs" />
</div>
</template>
<script>
import kubeTab from '@kubecube/common/kube-form-tab/index.vue'
export default {
components: {
kubeTab
},
data() {
return {
tabs: [],
}
},
methods: {
getDefault() {
return {
a: '',
b: '',
c: '',
}
}
}
}
</script>
<style>
</style>