diff --git a/src/components/Form/AutoDataForm/index.vue b/src/components/Form/AutoDataForm/index.vue index 0619469e7..a63d32739 100644 --- a/src/components/Form/AutoDataForm/index.vue +++ b/src/components/Form/AutoDataForm/index.vue @@ -163,5 +163,6 @@ export default { return true } } + } diff --git a/src/components/Form/FormGroupHeader/index.vue b/src/components/Form/FormGroupHeader/index.vue index 82821ec22..87b92008e 100644 --- a/src/components/Form/FormGroupHeader/index.vue +++ b/src/components/Form/FormGroupHeader/index.vue @@ -1,7 +1,13 @@ @@ -20,16 +26,61 @@ export default { type: Object, default: () => ({}) } + }, + data() { + return { + isVisible: true + } + }, + computed: { + iconClass() { + return this.isVisible ? 'el-icon-arrow-down' : 'el-icon-arrow-up' + } + }, + methods: { + toggle() { + this.isVisible = !this.isVisible + this.toggleSiblingVisibility() + }, + toggleSiblingVisibility() { + // 当前 form-group-header 的 DOM 元素 + const formGroupHeader = this.$refs.formGroup + if (!formGroupHeader) return + + // 找到当前 form-group-header 的下一个兄弟节点 + let sibling = formGroupHeader.nextElementSibling + + // 循环隐藏或显示直到找到下一个 form-group-header + while (sibling && !sibling.classList.contains('form-group-header')) { + sibling.style.display = this.isVisible ? '' : 'none' + sibling = sibling.nextElementSibling + } + } } }