<template>
<div class="component-card-demo-wrap collapse-demo-column">
<div class="collapse-demo-actions">
<TsButton @click="isExpand = !isExpand">{{ isExpand ? '收起' : '展开' }}</TsButton>
<TsButton @click="addItem">添加内容</TsButton>
</div>
<TsCollapse v-model="isExpand" v-model:forceOnExpand="forceOnExpand">
<div class="collapse-demo-panel collapse-demo-panel--purple">
<ul class="collapse-demo-list">
<li v-for="(item, idx) in dynamicList" :key="idx">{{ item }}</li>
</ul>
</div>
</TsCollapse>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
import { TsButton, TsCollapse } from 'tui';
const isExpand = ref(false);
const dynamicList = ref(['列表项 1', '列表项 2', '列表项 3']);
const forceOnExpand = ref(false);
const addItem = () => {
dynamicList.value.push(`列表项 ${dynamicList.value.length + 1}`);
forceOnExpand.value = true;
};
</script>
<style scoped>
.collapse-demo-column {
flex-direction: column;
gap: 8px;
}
.collapse-demo-actions {
display: inline-flex;
column-gap: 8px;
}
.collapse-demo-panel {
margin-top: 8px;
padding: 16px;
background: #f5f5f5;
}
.collapse-demo-panel--purple {
background: #f3e5f5;
}
.collapse-demo-list {
margin: 0;
padding-left: 18px;
}
</style>