# 标签页 Tabs
分隔内容上有关联但属于不同类别的数据集合。
# 基础用法
基础用法
基础的、简洁的标签页。
<title>基础用法</title>
<describe>基础的、简洁的标签页。</describe>
<template>
<hc-tabs v-model="activeName" @change="handleChange">
<hc-tab-pane label="协议信息" name="protocolInformation">协议信息content</hc-tab-pane>
<hc-tab-pane label="附属房产" name="affiliatedProperty">附属房产content</hc-tab-pane>
<hc-tab-pane label="权益人信息" name="equityInformation">权益人信息content</hc-tab-pane>
<hc-tab-pane label="付款情况" name="paymentSitustion">付款情况content</hc-tab-pane>
<hc-tab-pane label="销售变更" name="salesChange">销售变更content</hc-tab-pane>
<hc-tab-pane label="售后服务" name="afterSalesService">售后服务content</hc-tab-pane>
</hc-tabs>
</template>
<script>
export default {
props: ['slot-key'],
data () {
return {
activeName: 'protocolInformation'
}
},
methods: {
handleChange (e) {
console.log(e)
}
}
}
</script>
# 切换tab之前提示
协议信息content
before-leave
切换标签之前的钩子,若返回 false 或者返回 Promise 且被 reject,则阻止切换
<title>before-leave</title>
<describe>切换标签之前的钩子,若返回 false 或者返回 Promise 且被 reject,则阻止切换</describe>
<template>
<div>
<hc-tabs v-model="activeName" :before-leave="beforeLeave" @change="handleChange">
<hc-tab-pane v-for="(tab, index) in tabs"
:key="index"
:label="tab.label"
:name="tab.name"
>
</hc-tab-pane>
</hc-tabs>
<div class="content" v-if="activeName == 'protocolInformation'">
协议信息content
</div>
<div class="content" v-if="activeName == 'affiliatedProperty'">
附属房产content
</div>
<div class="content" v-if="activeName == 'equityInformation'">
权益人信息content
</div>
<div class="content" v-if="activeName == 'paymentSitustion'">
付款情况content
</div>
<div class="content" v-if="activeName == 'salesChange'">
销售变更content
</div>
<div class="content" v-if="activeName == 'afterSalesService'">
售后服务content
</div>
</div>
</template>
<script>
export default {
props: ['slot-key'],
data () {
return {
activeName: 'protocolInformation',
tabs: [
{
label: '协议信息',
name: 'protocolInformation'
},
{
label: '附属房产',
name: 'affiliatedProperty'
},
{
label: '权益人信息',
name: 'equityInformation'
},
{
label: '付款情况',
name: 'paymentSitustion'
},
{
label: '销售变更',
name: 'salesChange'
},
{
label: '售后服务',
name: 'afterSalesService'
},
]
}
},
methods: {
handleChange (e) {
console.log(e)
},
beforeLeave (activeName, oldActiveName) {
if (oldActiveName === "protocolInformation") {
return new Promise((resolve, reject) => {
this.$confirm("您还有数据未保存,是否离开当前页面?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
resolve();
})
.catch(() => {
reject();
});
});
}
},
}
}
</script>
# 属性及事件
# HcTabs 属性
属性 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
value | 当前输入的值,可配合 v-model 使用 | string | -- | -- |
before-leave | 切换标签之前的钩子,若返回 false 或者返回 Promise 且被 reject,则阻止切换 | Function(activeName, oldActiveName) | -- | -- |
# HcTabPane 属性
属性 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
label | 选项卡标题 | string | -- | -- |
name | 与选项卡绑定值 value 对应的标识符,表示选项卡别名换 | string | -- | -- |
# HcTabs 事件
事件 | 说明 | 回调参数 |
---|---|---|
change | 值改变时触发事件 | value |
input | 选中值时触发事件 | value |
登录
← 气泡卡片 Popover 图片 Image →