更新日志
BunnyUI 组件库版本发布记录,按发布时间(新 → 旧)排列。当前最新版本 v2.4.0。
版本时间线
新增 多功能选择框组件(bny-select):单选 / 多选 / 树形单选 / 树形多选(父子联动 + 半选),支持禁用、分组、远程选项,推荐 ul 直接承载写法。
新增 上传组件(bny-upload):声明式上传,文件逐个独立上传。
新增 表格 cell-template 模板表达式:{{...}} 占位符支持三元 / 比较 / 拼接等 JS 表达式(data 即行对象),结果自动转义。
优化 表单清错改 form 级事件委托:动态生成的字段(如选择框值域)同样生效;各拓展样式选择器微调;新增本地片段预览服务(test/post-server.js)。
修复 属性组件操作表单控件"触发了但视觉没反应":手动交互过的复选框/输入框受浏览器 dirty 标志影响,attribute 变化不再同步视觉——写 checked/value/selected 后同步 DOM property,attr 全部操作与 attr-json 响应统一生效。
修复 下拉菜单/日期选择器点击其他按钮面板不关闭:全局关闭委托改捕获阶段,规避 tab/menu 等组件 stopPropagation 截断冒泡。
修复 表格 cell-template 选择器仅认 # 开头:.class 等任意选择器均可引用页面 template 元素;模板未命中告警并回退内联渲染,不再缓存空结果。
修复 图片分组预览点击非第一张闪现旧图:灯箱复用残留上一次 src,打开/翻页瞬间立即清空由骨架占位接管。
修复 表格行内大图拖住列表:刷新/翻页/搜索时旧图下载占满浏览器连接(图片移出 DOM 不立即取消下载),新列表请求被拖到旧图下完才发出——发请求前主动中断交换目标内未完成的图片下载释放连接(实测 3480ms → 81ms)。
修复 新建页签页面请求发两次:页签初始化分支内修改自身属性导致 afterProcessNode 重入、自动激活点击执行两遍——消费激活标记保证幂等。
文档 选择框/上传/表格演示页与说明同步(树形数据格式、模板表达式、选择器引用);README 组件清单补全。
新增 表格组件升级多功能表格(bny-table):JSON 渲染新增对象行(list/allList,按 page/pageSize 前端分页切片)与列模型(field/title/type/align/width),单元格按列声明类型渲染富内容——tag(map 值映射)、link(协议防护)、image(头像/圆形)、actions(操作按钮组)、template(占位符模板)、html:true / {__html}(受信任服务端内容逃生门)。
新增 表格内置分页:JSON 带 total 时表格后自动渲染分页条(allList 前端切片、点击页码自动重新请求);分页条构建/事件委托下沉为内置函数(bny.paginationBar / bny.setupPaginationDelegation),与分页组件共用同一实现;支持条数选择器(pg-page-sizes,如 "10,20,50",切换回第 1 页并携带 pageSize 重新请求);顺带修复分页条 pg-color/pg-model 属性未回写导致简洁模式与主题色不生效的问题。
新增 表格搜索与联动:table-filter 声明可过滤字段,请求 URL 同名参数做多条件本地过滤(AND 组合、total 同步,仅 allList 模式);分页条携带当前查询串,翻页/切条数自动保持搜索与筛选条件;文档新增"搜索与联动"章节(多条件搜索框配方)。
优化 表格排序补全:JSON 列模型声明 sortable/sort 即可排序(对象行生效);列配置 sortVal 指定排序取值字段(显示文案与排序值不同时使用);树形表格自动禁用排序(行序即层级从属,防止排序打乱父子结构)。
新增 表格操作按钮动作协议(actions):confirm 先弹确认框;url 请求无 target 默认刷回表格容器(同结构 JSON 整块刷新),target 可 swap 到指定容器;event 派发自定义事件(detail: {row, page})交由业务处理;仅输出白名单属性,拒绝 on* 注入。支持列级 group 按钮组(bny-btn-group)与动作 children"更多"弹出菜单(复用菜单组件垂直菜单观感收纳次要操作,菜单项走同一协议、执行后或点击外部自动关闭);操作列宽按内容自适应(table-layout: fixed 下渲染后自动回写列宽,不再压缩溢出)。
新增 表格长文本省略与完整内容查看:桌面端文本/链接列默认单行省略(行高统一不因长文本撑高),列配置 ellipsis: false 关闭(恢复换行)、true 对 template 等列强制开启;内容真实溢出的单元格右侧渲染放大镜图标(icon-zoomin,未溢出不渲染,图标字体与窗口尺寸变化自动校准);悬停溢出单元格由 tip 组件提示"点击展开",点击放大镜固定弹出完整内容,鼠标可移入气泡框选复制,且不触发链接跳转;再点一次/点击空白处/滚动收回;移动端卡片布局不做截断。
新增 表格加载骨架屏与渐显:加载/重载超过 200ms 未返回时自动在目标容器渲染表格形骨架(表头条 + 行条,复用骨架屏组件流光基类,行数取 table-page-size/pg-page-size),数据到位后骨架随内容交换替换、表格与内置分页条同拍渐显;快响应不显示骨架不闪烁,请求失败自动清理。
优化 表格"更多"弹出菜单改用菜单组件垂直菜单观感(白主题,暗色模式自动适配):menu.css 新增 .bny-menu 类别名供其他组件复用菜单样式(不初始化 bny-menu 扩展行为,组件原用法零影响);菜单项动作协议不变(confirm/url/event,点击外部或执行后自动关闭)。
文档 表格页新增"长文本省略与加载动画"章节,补全数据表格交互与加载行为说明、基础用法与移动端卡片布局说明。
文档 表格页新增"列类型"章节与单元格类型 API 表;分页组件回归纯分页条(pg-render-list 已移除,分页表格直接用表格内置分页);修复表格 JSON 属性表 color 字段笔误。
新增 属性管理扩展(bny-attr):对属性名/属性值的增删改查、追加、切换、改名(attr-rename)与多值替换(attr-replace);配合 htmx 事件与响应 JSON 驱动(批量取值 / attr-value 单值映射 / attr-json="path:期望" 条件触发);内置注入防护(拒绝 on* 事件属性与 javascript:/vbscript: 危险值);应用后派发 attr-applied 事件。
新增 表格树形(父子展开/折叠):children 任意层级嵌套、逐级缩进、点击箭头展开/收起整棵子树,移动端自动卡片式缩进。
新增 骨架屏扩展(bny-skeleton):自定义草图(skeleton-sketch 声明式组合)与自动克隆(skeleton-clone 根据真实结构生成骨架),配合 hx-indicator 或 attr-auto 常显。
优化 表格移动端新增顶部排序条,序列三态(升序/降序/默认)可恢复默认并持久化;轮播与图片预览(缩略图/灯箱)加载时默认骨架占位。
优化 导航栏(默认/手机端/侧边收缩态)与菜单点击外部自动收起。
修复 评分组件鼠标移入错乱;表格颜色演示属性名写错(table-tab→table-color);树形深层子行渲染为 [object Object];网格/图片占位尺寸与随机图不匹配的跳变。
文档 新增属性管理页与 API 表;表格补充树形示例;各组件示例与效果补全。
新增 Carousel 轮播组件(bny-carousel 扩展):元素触发与 JSON 响应触发;slide / fade / coverflow(异形 3D 覆盖流)三种切换效果;自动播放支持离散跳格与 smooth 丝滑连续滚动;手动拖拽(跟手 / 吸附 / 回弹 / 边界橡皮筋阻尼)、箭头、指示器、键盘操作与循环无缝环绕。
修复 修复:tab组件的更多菜单按钮格式
破坏性变更 组件属性统一重命名为组件名前缀(tooltip → tip、相关 data 属性同步迁移),升级时需更新 HTML。
新增 图片预览卡牌式堆叠分组(bny-image-group)及标签;SPA 扩展 CSRF 自动管理(支持 ThinkPHP __token__ / Laravel _token)与 X-Spa-Layout 请求头;更新日志页面及按版本下载。
优化 SPA 扩展 fetch 请求头统一收口至 getRequestHeaders();文档站样式与交互细节。
修复 Markdown XSS(区块代码危险标签被误删 + javascript:/vbscript: 协议绕过);深链访问保留文档站左侧菜单;移动端菜单按钮属性同步。
文档 完善 SPA 扩展文档(CSRF 自动管理章节、嵌套视口、ThinkPHP 示例);更新文档站多处细节。
新增 Markdown 外部拓展插件;输入框前缀/后缀组件;a 标签按钮适配;SPA 嵌套视口支持。
优化 文档站(修复 code 组件与 md 拓展问题);doc.css 样式细节。
新增 bny-spa 单页面应用外部扩展。
优化 SPA 扩展的 SEO/GEO head 同步;回到顶部暗黑模式;验证器;图片预览按钮样式。
修复 若干 bug。
文档 补全说明文档。
新增 bunny 图标;导航栏顶部栏与侧边栏;菜单组件颜色样式;字体大小样式;按钮组合样式;load 组件血条样式;公共样式类;颜色样式;grid 网格布局;滑块样式;form 选择框与表单样式。
优化 站点页面;下拉菜单;按钮组合;折叠面板;tab 样式与组件;文档页与首页;grid 布局;table 样式;表单;code;色调。
更新 index.html、nav.html、README.md、class.html、collapse.js、table.css、图标。
修复 页面组件弹出问题;按钮样式。
删除 dist 构建产物(改走调试目录);调整 .gitignore、新增 CNAME。
优化选项卡、导航栏与下拉菜单。
重构导航栏,优化下拉菜单与弹出框。
优化组件、弹出框与动画,更新弹出框与动画组件。
重构弹性盒子(flexbox),更新公共类。
重构菜单组件,新增下拉菜单与图标内容,更新模板与选项卡,删除选项卡部分功能。
新增组件功能并优化已有组件。
组件能力扩展与整体体验优化。
新增徽章组件,优化文档、滚动条、弹出框与导航栏样式。
新增动画组件,优化文档页面、卡片与页面 SEO。
新增导航栏与表单-开关组件,优化页面、图标、表格与整体风格,修复选择框禁用样式。
项目初始化:搭建图标、面板、弹出框、走马灯、提示、菜单、公共类等基础组件与样式,并修复页面代码。
