diff --git a/src/components/m-parent.vue/m-child.vue b/src/components/m-parent.vue/m-child.vue index baae21a7c..dea23e856 100644 --- a/src/components/m-parent.vue/m-child.vue +++ b/src/components/m-parent.vue/m-child.vue @@ -45,11 +45,29 @@ export default { return; } - const index = parentVM.$slots.default ? parentVM.$slots.default.indexOf(this.$vnode) : -1; - if (~index) + if (!parentVM.$slots.default || !parentVM.$slots.default.length) { + parentVM.itemVMs.push(this); + return; + } + + const defaultSlots = parentVM.$slots.default; + const currentSlotIndex = defaultSlots.indexOf(this.$vnode); + if (currentSlotIndex === -1) { + parentVM.itemVMs.push(this); + return; + } + + // 根据 slot.default 位置,进行插入 + const index = parentVM.itemVMs.findIndex((itemVM) => { + const slotIndex = defaultSlots.indexOf(itemVM.$vnode); + return slotIndex > currentSlotIndex; + }); + + if (index !== -1) { parentVM.itemVMs.splice(index, 0, this); - else + } else { parentVM.itemVMs.push(this); + } }); !this.groupVM && this.$contact(this.$options.groupName, (groupVM) => { diff --git a/src/components/u-date-picker.vue/index.vue b/src/components/u-date-picker.vue/index.vue index 600b32485..7a8cb1eae 100644 --- a/src/components/u-date-picker.vue/index.vue +++ b/src/components/u-date-picker.vue/index.vue @@ -377,6 +377,7 @@ export default { .root { display: inline-block; position: relative; + max-width: 100%; /* 防止表格等小的地方超出区域 */ width: var(--datepicker-input-width); } diff --git a/src/components/u-date-picker.vue/range.vue b/src/components/u-date-picker.vue/range.vue index c74d5f0be..9ab05812f 100644 --- a/src/components/u-date-picker.vue/range.vue +++ b/src/components/u-date-picker.vue/range.vue @@ -412,6 +412,7 @@ export default { .root { display: inline-block; position: relative; + max-width: 100%; /* 防止表格等小的地方超出区域 */ width: var(--datepicker-range-input-width); } diff --git a/src/components/u-form.vue/item.vue b/src/components/u-form.vue/item.vue index b3f8e2eca..5dc8d287f 100644 --- a/src/components/u-form.vue/item.vue +++ b/src/components/u-form.vue/item.vue @@ -279,10 +279,23 @@ export default { .root[layout="block"] > .field { vertical-align: top; } -.root[layout="center"]{ +.root[layout="center"] { display: flex; align-items: center; } + +.root[layout="center"] .label { + flex-shrink: 0; +} + +.root[layout="center"] .field { + flex: 1; +} + +.root[layout="center"] .wrap { + width: 100%; +} + .root[layout="end"]{ display: flex; align-items: flex-end; diff --git a/src/components/u-modal.vue/index.vue b/src/components/u-modal.vue/index.vue index fe2b4048d..2e7cf15f3 100644 --- a/src/components/u-modal.vue/index.vue +++ b/src/components/u-modal.vue/index.vue @@ -9,7 +9,7 @@ leave-active-class="animate__animated animate__fadeOutUpSmall animate__fast">