编程 Element Plus 2.14.7 CHANGELOG 笔记:quarter picker、input-otp 与 dev 分支的 Node/pnpm 口径

2026-10-11 00:04:10

Element Plus 2.14.7 CHANGELOG 笔记:quarter picker、input-otp 与 dev 分支的 Node/pnpm 口径

项目信息

以下按版本倒序,保留版本号、组件名、字段名与 PR 号,便于对 CHANGELOG 定位。

CHANGELOG 分组解读

2.14.7 (2026-09-30)

Bug fixes:

  • Build:恢复发布包时的 workspace 上下文(#24934)
  • Components [time-picker]:清空时避免触发两次 change(#24841)
  • Improvement(components):[image-viewer] 添加 grab 光标(#24903)

2.14.6 (2026-09-18)

Features:

  • Components [text] 增加 isTruncated 暴露(#24822)

Bug fixes:

  • [table] 多选过滤器延迟到确认时生效(#24749)
  • [form] 零标签宽度不再警告(#24820)
  • [select/v2] 避免循环标签宽度计算(#24743)
  • [upload] 保留拖拽目录路径(#24838)
  • 防止日期选择器重复键盘处理(#24860)
  • [loading] 内存泄漏(#24865)

2.14.5 (2026-08-21)

Features:

  • [date-picker] 增加 quarter picker(#24490)
  • Theme-chalk 暴露 form item margin bottom 变量(#24752)

Bug fixes:

  • [form-item] 验证消息添加 alert role(#24680)
  • [input] 向屏幕阅读器暴露字数限制(#24679)
  • [date-picker] 面板中保持 disabled-date 响应式(#24708)
  • [textarea] 防止 Firefox 中 autosize 滚动重置(#24724)
  • [date-picker] 移除 quarters 的键盘导航(#24726)
  • [loading] Chrome 上 loading spinner 抖动(#24737)
  • [tabs] SSR 环境设置默认值导致 tab 闪烁(#24742)
  • [select] 匹配 input wrapper 过渡(#24709)
  • [tree-v2] 清空 keys 后同步 checked 状态(#24756)

2.14.4 (2026-08-07)

Features:

  • [notification] 增加 progress 和 pauseOnHover 选项(#24565)

Bug fixes:

  • Directives:mouseup 后停止重复点击(#24573)
  • [input/select] 防止 box-shadow 噪声(#24619)
  • [autocomplete] 重新聚焦时清空陈旧建议(#24621)
  • [popover] 省略 gpuAcceleration 默认值(#24636)
  • [table] 停止修改父级的 filtered-value(#24594)
  • [upload] 稳定文件列表重排过渡(#24609)
  • [space] 克隆 spacer vnode(#24647)
  • [date-picker] 修正输入时间格式(#24574)
  • [scrollbar] 在 transition 和 animation 结束时更新组件(#24508)
  • [input] 切换密码可见性时触发 change(#24342)
  • [table] 避免 header 卸载后 null theadRef 访问(#24668)
  • [loading] 避免 innerHTML 和 children 冲突(#24675)

Refactors:

  • 规范化 *-class 和 *-style props(#24418)
  • [popover] 用 props 替代 attrs 以获得更好的类型推断(#24571)

2.14.3 (2026-07-10)

Features:

  • [transfer] 增加虚拟滚动支持(#24367)
  • Play:启用 bundledDev(#24542)

Bug fixes:

  • [input-otp] 修正字段 line-height(#24467)
  • [input-otp] 继承表单尺寸(#24466)
  • Style [drawer] 导入时包含 popup lockscreen 样式(#24494)

2.14.2 (2026-06-12)

Features:

  • [table] 增加 getHalfSelectionRows 方法(#24348)

Bug fixes:

  • [tree-v2] 允许 falsy current keys(#24364)
  • [calendar] 正确验证跨年日期范围(#24327)
  • [input-otp] 避免触摸设备上的粘滞 hover(#24374)
  • [select/v2] 仅 multiple 时隐藏空 input-wrapper(#24177)
  • [tour] 传入 current prop 时确保受控(#19675)
  • [time-select] 守卫无效时间值(#24329)

2.14.1 (2026-05-29)

Features:

  • [tabs] 支持触摸滚动(#24292)

Bug fixes:

  • [date-picker-panel] 防止过早 range fix(#24011)
  • [tree-v2] 节点点击前获取 current key(#24232)
  • [text] 布局变化后刷新截断 title(#24233)
  • [date-picker-panel] 在调整范围时遵守 disabledDate(#24085)
  • [cascader] 防止重复根懒加载调用(#24269)
  • [tree] 懒加载时遵守 check-strictly(#24267)
  • [message-box] 两个按钮都隐藏时隐藏 btns 容器(#24283)
  • [select/v2] iOS 点击监听(#24033)
  • [config-provider] 保留零 zIndex(#24331)

Refactors:

  • [table] 组件泛型化(#24201)
  • [table] 改进 emits 类型(#24245)
  • [table] 使用 UseTooltipProps 处理 overflow tooltip(#24278)

2.14.0 (2026-05-08)

Features:

  • [date-picker] 为 range-picker 增加 singlePanel(#19498)
  • [input-number] 增加 tabindex prop(#23582)
  • [tree/tree-v2/tree-select] setChecked 支持深度检查(#23591)
  • [input-otp] 新组件(#23634)
  • [input-number] 增加 formatter 和 parser props(#23271)
  • [select/select-v2] 增加 end-reached 事件(#23806)
  • [autocomplete] 增加 popper-options 和 show-arrow props(#24109)
  • [cascader] 支持 virtual-scroll & fitInputWidth & height & item-size(#23877)
  • [message-box] 传递 action-handlers 到 vnode(#23901)
  • style properties 支持 Boolean 值(#24165)

Bug fixes:

  • 依赖与工具链:@docsearch/css 到 v4(#24000)、@docsearch/js v4(#24001)、typescript 到 v6(#24026)、typescript 到 ~6.0.3(#24125)、globals ^17.5.0(#24133)、components-helper ^2.2.0(#24127)、@types/lodash ^4.17.24(#24126)、eslint-plugin-prettier ^5.5.5(#24124)、prettier ^3.8.3(#24129)、typescript-eslint ^8.59.0(#24130)、markdown-it ^14.1.1(#24138)、tinyglobby ^0.2.16(#24139)、eslint-plugin-vue ^10.9.0(#24128)
  • [message] VNode message 缺少 content wrapper(#23352)
  • Style [form-item] 移除尾部 inline margin(#23671)
  • [virtual-list] scrollbar-always-on 失去响应式(#24064)
  • [input] 切换清除图标时防止布局偏移(#23661)
  • [input] 调整大小时避免边框闪烁(#24078)
  • [segmented] 更新 options 后 bg 位置错误(#24101)
  • dts:tree-v2 中一些类型声明缺失(#24116)
  • [table] 防止陈旧高度回调(#24118)
  • [select] options 变化后正确显示已选标签(#24036)
  • [table] 树形数据父子选择不匹配(#23596)
  • [input] 调整 textarea 大小时图标和计数定位错误(#24115)
  • [dialog] 调整窗口大小时边界错误(#24172)
  • [splitter] 初始尺寸为零时展开面板(#24200)
  • Build:为所有非入口文件生成正确 DTS(#24179)

Refactors:

  • 移除表单验证失败的 console 噪音(#23663)
  • [select/v2] 移除不必要的 computed(#24058)
  • Types:从 vue 导入 MaybeRef 而不是 @vueuse/core(#24068)
  • 移除 el-teleport(#23219)
  • [menu-item] 将 index 属性设为 required(#20453)
  • [cascader] 用 useSlots 替换 defineSlots(#24114)

2.13.7 (2026-04-10)

Features:

  • [input] 增加 count-graphemes(#12041)
  • [dialog] 将点击的 dialog 带到前面(#23863)
  • [input] 暴露 passwordVisible(#23921)
  • [button] link/text 支持自定义颜色(#24005)

Bug fixes:

  • csstype 类型 ts 错误(#23887)
  • [checkbox] model 为 null 时重置选择状态(#23856)
  • Hooks [use-timeout] 避免 SSR 中使用 window(#23907)
  • [time-picker] is-range 时允许通过键盘清空时间(#23878)
  • [cascader] 空查询时触发 before-filter(#23898)
  • [form] 动态字段重置陈旧 props(#23706)
  • [scrollbar] resize 时同步偏移(#23853)
  • [table-v2] 增加 slot 类型(#23948)
  • [table] 布局变化时残留行背景(#23961)
  • Build:兼容泛型组件(#23968)
  • [cascader] 防止 ArrowDown 选中第一个叶子节点(#23954)
  • [scrollbar] 浮点数边界检测错误(#23971)
  • deps:@eslint/markdown v8(#23985)
  • [select/v2] 防止修改 mousedown 时 blur 关闭(#23969)
  • [message] 修复 offset 位置异常(#23988)
  • globals v17(#23992)、eslint-plugin-jsonc v3(#23991)、consola v3(#23997)、eslint-plugin-unicorn v64(#23998)、@pnpm/logger v5(#23987)、eslint monorepo 到 v10 大版本(#24002)

2.13.6 (2026-03-20)

Features:

  • [slider] 允许 step 设为 "mark"(#23685)
  • [input] 增加 password-icon slot(#23772)
  • [color-picker-panel] hue-slider-class/style props(#23499)
  • [input] textarea 支持 inputmode(#23813)

Bug fixes:

  • [tooltip] disabled 切换后同步 visible(#23738)
  • [mention] 移除包含分割的整个输入(#23753)
  • [tab] 浮点数边界检测(#23774)
  • [table] 展开行无法用数组方法更新(#23761)
  • [tree-v2] defaultExpandedKeys 变化时更新展开状态(#23557)
  • [select] 快速切换下拉时 options prop 列表数据丢失(#23780)
  • [select] persistent 为 false 时允许空标签(#23809)
  • [popper] 内容尺寸变化时更新 popover 样式(#23802)
  • [tabs] 浮点数边界检测(#23776)
  • [use-composition] 韩语输入组合(#23831)
  • [select/select-v2] options 中有数据时避免隐藏下拉(#23838)
  • [tabs] 滚轮滚动体验(#23775)
  • [tag] slot 中的 icon 导致文字换行(#23725)

2.13.3 (2026-02-28)

Features:

  • Utils [dom] 增加 ShadowDom 支持(#23235)
  • [button] 增加 dashed prop(#22738)
  • [time-select] 增加 name prop(#23633)
  • [config-provider] 增加 table config(#23610)
  • [select/select-v2] 增加 tag-tooltip 配置对象 prop(#23556)
  • Utils 增加 setPropsDefaults 方法(#23612)

Bug fixes(部分):

  • [watermark] 修正 fontWeight 类型(#23641)
  • [textarea] Firefox 意外页面滚动(#23606)
  • [form] 支持嵌套 FormRules(#23668)
  • [affix] 更新逻辑导致无限循环(#23599)
  • [form/form-item] 初始值和 reset 函数(#23597)等

2.13.2 (2026-01-30)

Features:

  • Build 增加 supply-validator-plugin(#23458)
  • [table] 增加 row-expandable prop(#23140)
  • [drawer] 暴露 DrawerInstance(#23544)

2.13.1 (2026-01-09)

Features:

  • [color-picker] 增加 clearable prop 和 clear 事件(#22999)
  • [calendar] 增加 controller-type 和 formatter props(#23045)
  • [message-box] 增加 confirmButtonType 和 cancelButtonType(#23193)
  • [virtual-list] Windows/ubuntu 上鼠标滚轮横向滚动(#22168)
  • [avatar-group] 新组件(#23211)
  • [upload] 增加 directory prop(#23265)
  • [form] 增加 setInitialValues 和 setInitialValue(#23013)
  • [dropdown-item] 增加 icon slot(#23300)
  • [timeline] 支持 mode prop(#22929)

dev 分支工程口径

来源:package.json(dev 分支)。

  • packageManager:pnpm@12.10.1
  • engines.node:>= 22.13.0
  • typecheck 用 vue-tsc,版本 =3.1.5
  • ESLint:^10.12.0
  • 测试:vitest ^5.0.3、happy-dom ^20、jsdom 16.4.0
  • typescript 走 catalog;prettier 走 catalog
  • devDependencies 含:@vitejs/plugin-vue、@vitejs/plugin-vue-jsx、@vue/test-utils、puppeteer ^25、resize-observer-polyfill、rimraf

dependencies:

  • @element-plus/icons-vue ^2.3.2
  • @floating-ui/dom(catalog)
  • @popperjs/core(catalog)
  • @vueuse/core
  • async-validator ^4.2.5
  • dayjs ^1.11.20
  • lodash ^4.18.1
  • lodash-es
  • lodash-unified
  • memoize-one ^6
  • normalize-wheel-es ^1.2.0

scripts:

  • dev=pnpm -C play dev
  • test=vitest
  • build=internal/build start
  • build:theme=packages/theme-chalk
  • docs:dev/build/serve
  • gen=scripts/gc.sh
  • typecheck:web=vue-tsc -p tsconfig.web.json

lint-staged 对 *.{vue,js,ts,jsx,tsx,md,json,scss} 跑 eslint --fix 与 prettier。

升级取舍

  • [input-otp] 是 2.14.0 的新组件(#23634),2.14.2 到 2.14.3 连续修了 line-height、表单尺寸继承、触摸设备 hover 等细节。
  • [date-picker] 在 2.14.5 加入 quarter picker(#24490),同一版本移除 quarters 的键盘导航(#24726);2.14.0 还给 range-picker 加了 singlePanel(#19498)。
  • [table] 在 2.14.1 做组件泛型化(#24201)、改进 emits 类型(#24245)、改用 UseTooltipProps(#24278),类型层面会比 2.13.x 更容易暴露问题。
  • 工程侧 engines.node >= 22.13.0、vue-tsc =3.1.5、typescript 在 2.14.0 已到 v6(#24026、#24125),CI 和本地需要对齐。
  • 2.14.0 还移除了 el-teleport(#23219),并把 [menu-item] 的 index 属性设为 required(#20453)。
复制全文 生成海报 ElementPlus Vue 组件库 前端工程

推荐文章

程序员茄子在线接单