From 579d60b49ba34c1f4fcd5dd2dbc6a4c884560351 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Thu, 18 Jun 2026 16:43:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20DynamicColumn=E5=AD=90=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E5=AE=BD=E5=BA=A6=E8=A6=86=E7=9B=96=E4=B8=BA100%+=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=97=B4=E9=9A=99=E5=92=8C=E8=A6=86=E7=9B=96=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _fix_children: MutationObserver监听子控件添加,强制width:100%+minWidth:0 - 解决子控件cwidth设置的固定像素宽度超出grid cell导致重叠 - align-items:start防止grid items垂直拉伸 - col_cgap默认值统一为1(原构造函数设0.5但set_column_width用0.1) - 移除console.log调试输出 --- bricks/dynamiccolumn.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/bricks/dynamiccolumn.js b/bricks/dynamiccolumn.js index 569ecfa..e0a07b5 100644 --- a/bricks/dynamiccolumn.js +++ b/bricks/dynamiccolumn.js @@ -15,22 +15,34 @@ bricks.DynamicColumn = class extends bricks.Layout { opts.col_cwidth = 20; } } - opts.col_cgap = opts.col_cgap || 0.5; + opts.col_cgap = opts.col_cgap || 1; opts.mobile_cols = opts.mobile_cols|| 1; super(opts); this.set_style('display', 'grid'); - // this.set_column_width(); + this.set_style('align-items', 'start'); this.bind('on_parent', this.set_column_width.bind(this)); this.bind('resize', this.set_column_width.bind(this)); if (this.cwidth){ bricks.app.bind('charsize', this.set_column_width.bind(this)); } + // Watch for new children added and fix their width + this._observer = new MutationObserver(this._fix_children.bind(this)); + this._observer.observe(this.dom_element, {childList: true, subtree: false}); + } + _fix_children(){ + var children = this.dom_element.children; + for (var i=0; i