升级日志

根据组件/指令/插件/模块等进行过滤……

2.4.2

  • 🐞
    重构了 Button 组件以解决在动态切换 disabled / loading 属性时过渡动效丢失的问题。
  • 🐞
    修复了 veui-loaderglobal 选项没有正确处理 string 类型配置的问题。

2.4.1

  • 🐞
    修复了 sideEffects 配置错误导致依赖组件类型判断的逻辑失效的问题。

2.4.0🪆 Nesting Dolls

  • 💡
    新增全局布局组件 Layout / Header / Sidebar / Footer / Content
  • 🐞
    修复了 Badge 组件的 max prop 没有正常响应全局设置的问题。

2.3.4

  • 🐞
    修正了单选 Select / Cascader 组件在有已选项时,展开下拉浮层可能导致页面滚动位置跳动的问题。

2.3.3

  • 🐞
    修正了动态添加/移除 Column 组件时可能导致顺序不正确的问题。
  • 🐞
    修正了 Select 组件在非受控模式下下拉菜单中当前激活项显示不正确的问题。
  • 🧪
    Calendar 组件新增了实验性的 ui 样式 display

2.3.2

  • ⚠️

    将对 dls-icons-vue 的依赖更新为 2.0.0。其中:

    • quality-circle 图标重命名为 grade-circle
    • full-square 图标重命名为 full-circle
  • 🐞
    修正了 Cascader 组件在复选模式下搜索框位置不正确的问题。
  • 🐞
    修正了 Table 组件通栏展开行、footer 行高度不正确的问题。

2.3.1

  • 💡
    优化了下拉浮层展开时列表滚动到激活项的功能,避免可见的闪动。
  • 💡
    在滚动锁定开启时尝试使用原生的 scrollbar-gutter 来避免页面内容整体抖动。
  • 💡
    优化了 v-drag.sort 指令在 Safari 下在 transform 容器内拖动时拖动元素初始样式的覆盖场景。
  • 🐞
    修正了 v-tooltip 指令提示内容没有实时响应式更新的问题。
  • 🐞
    升级了 Loading 组件的加载动效,避免了在 Chrome 下可能由于动画不同步造成的闪动。

2.3.0🏍️ Motorcycle

  • ⚠️
    Pagination 组件默认不展示每页数量选择器。
  • 💡
    Autocomplete 组件的 strict prop 行为对齐到 Input 组件的 strict prop,不再表示限制只能选择 datasource 中的值。
  • 💡
    废弃 Autocomplete 组件的 suggest 事件,当用户采纳建议时额外触发新增的 select 事件。
  • 💡
    Autocomplete 组件新增 maxlength prop 来限制值的长度。
  • 💡
    Pagination 组件新增 show-total / show-page-size / show-goto prop 来分别指定是否显示项目总数/每页条数/跳转到指定页。将 goto prop 废弃并重命名为 show-goto
  • 💡
    v-tooltip 指令新增修饰符 overflow,用来指定仅当目标元素内容发生溢出时才显示悬浮提示。
  • 💡
    Column 组件新增 tooltip prop,用于指定某列内容溢出时展示的悬浮提示文本。
  • 🐞
    修正大部分输入型组件的一些事件无法作为表单校验的触发器。涉及组件包括: Autocomplete / Checkbox / Input / Radio / Switch / Textarea
  • 🐞
    修正 Uploader 组件继续上传按钮的样式问题。
  • 🐞
    修正 Carousel 组件切换时报错的问题。
  • 🐞
    优化搜索类组件对 Unicode 代理对与 Zero Width Joiner (U+200D) 的支持。
  • 🐞
    修正 Table 组件的自定义 CSS 属性 --dls-table-cell-lines / --dls-table-head-cell-lines 默认值没有设置为 1 的问题。

2.2.1

  • ⚠️
    Anchor 组件的 target-offset / sticky-offset 使用数值时不再作为比例系数,而是作为绝对 px 值。
  • 💡
    Anchor 组件的 target-offset / sticky-offset 支持传入如 '10%' 格式的字符串,用于支持比例系数。
  • 🐞
    修正 Button 组件在 Safari 浏览器上的样式问题。
  • 🐞
    修正 DatePicker 组件在 Safari 浏览器上点击快捷方式报错的问题。
  • 🧪
    Table 组件的自定义 CSS 属性 --dls-table-cell-lines / --dls-table-head-cell-lines 默认值更新为 1,可以通过设置为 auto 来设置自适应高度。

2.2.0🪗 Accordion

  • 💡
    Accordion / Collapse 组件新增 ui 样式 simple / basic / strong / bordered / borderless / dull
  • 💡
    Accordion / Collapse 组件新增 toggle-position prop,用于自定义展开/收起箭头的位置。
  • 💡
    Collapse 组件新增 title-after 插槽,用于自定标题后缀内容。
  • 💡
    Popover 组件新增 title prop 与 title 插槽,用于自定义标题内容。
  • 💡
    Popover 组件新增 foot / ok-label / cancel-label prop 与 foot 插槽,用于开启底部操作区并自定义操作按钮文本。
  • 🐞
    修正 Tabs 组件销毁过程中触发数据变化的问题。
  • 🐞
    修正 Anchor 组件在滚动容器的 CSS scroll-behaviorsmooth 时下点击项目导致的滚动会进一步影响激活项的问题。
  • 🐞
    修正 Anchor 组件的容器样式可能导致进入/退出吸附状态时抖动的问题。
  • 🐞
    去除了 Anchor 组件初始状态的自动滚动,以避免和浏览器的默认行为冲突。
  • 🐞
    修正 Table 组件在切换 selectable / expandable 时没有更新布局的问题。
  • 🧪
    Table 组件新增自定义 CSS 属性 --dls-table-cell-lines / --dls-table-head-cell-lines,用于指定显示固定内容/表头行数的表格。
  • 🧪
    Accordion 组件新增自定义 CSS 属性 --dls-accordion-gutter,用于自定义折叠面板间距。

2.1.7

  • 💡
    Link 组件新增全局配置项 link.routerLink,用于在路由模式下允许使用除了 <router-link> 以外的组件,比如在 Nuxt 项目下使用 <nuxt-link>
  • 🐞
    修正 Progress 组件的状态一致性问题。
  • 🐞
    修正 Uploader 组件的 convert-response 无法通过 ConfigProvider 组件进行局部配置的问题。
  • 🐞
    修正 Textarea / Calendar / Input 组件在 Safari 下的样式问题。
  • 🐞
    修正 DatePicker 组件的下拉浮层在溢出视口时没有正确左右翻转的问题。
  • 🐞
    修正 v-tooltip 指令在目标元素销毁时可能没有消失的问题。

2.1.6

  • 💡
    Tooltip / Popover 组件新增 aim-center prop,用来支持浮层箭头始终指向目标元素中心的模式。
  • 💡
    RadioButtonGroup / CheckButtonGroup 组件新增 ui 选项 stable,来实现多行显示多个按钮组时更整齐的视觉效果。
  • 🐞
    修正 Tabs 组件在路由模式下 active 数据可能没有正确响应路由变化的问题。
  • 🐞
    修正 Tabs 组件在移除最后一个标签页时 active 计算不正确的问题。
  • 🐞
    修正 DatePicker 组件的 placeholder 类型描述漏掉 Array 的问题。
  • 🐞
    修正 Table 组件固定列 z-index 过低可能导致被滚动内容穿透的问题。
  • 🧪
    RadioButtonGroup / CheckButtonGroup 组件分别新增自定义 CSS 属性 --dls-radio-button-min-width / --dls-checkbox-button-min-width,用于自定义组内按钮项的最小宽度。

2.1.5

  • 🐞
    修正 Tabs 组件在路由模式下可能会没有正常激活标签项的问题。
  • 🐞
    CheckButtonGroup / RadioButtonGroup 组件的样式 token 升级到最新版本,以解决无法与最新版本 less-plugin-dls 共同工作的问题。
  • 🐞
    修正 RadioGroup 组件未实现可受控功能的问题。
  • 🧪
    Field 组件新增自定义 CSS 属性 --dls-field-label-width,用于自定义表单项文字标签列的宽度。

2.1.4

  • 🐞
    修正了 veui/dist/locale.*.esm.js 没有被标记入 sideEffects 配置的问题。

2.1.3

  • 💡
    RadioGroup / CheckboxGroup / RadioButtonGroup / CheckboxButtonGroup 新增 Popover 弹层提示支持。新增数据源 desc 字段及对应的 desc 作用域插槽。
  • 💡
    支持搜索的组件 Autocomplete / Cascader / SearchBox / Select / Dropdownmatch prop 返回值现在在仅有一段匹配时可以直接返回 [number, number]
  • 🐞
    修正了 locale 包的 ESM 打包版本没有引用 VEUI 的 ESM 版本的问题。
  • 🐞
    修正了 DatePicker 组件清除功能有时不正常的问题。
  • 🐞
    修正了 Select / Dropdown 组件可能出现两个滚动条的样式问题。
  • 🐞
    修正了 Table 在无边框样式下组件固定列阴影处有 1px 偏差的问题。

2.1.2

  • 💡

    veui-theme-dls-icons 新增产出文件:

    • dist/icons.esm.js ESM 版本。

2.1.1

  • ⚠️
    组件 Autocompletematch prop 参数签名从 (item, keyword, ancestors) 变更为 (item, keyword, { ancestors })
  • ⚠️
    Carousel 组件的 indicator-alignment prop 重命名为 indicator-align
  • 💡

    RadioButtonGroup / CheckButtonGroup 新增 ui 样式 simple,并支持跨行样式。

  • 💡

    Button 组件现在可以在禁用状态下响应除了 click 以外的事件,并可以接收焦点。

  • 💡

    为支持搜索的组件 Autocomplete / Cascader / SearchBox / Select / Dropdown 新增 match / filter prop。

    • match 函数签名:(item, keyword, { ancestors }) => boolean | Array<[number, number]> 以支持自定义高亮逻辑;
    • filter 函数签名:(item, keyword, { ancestors, offsets }) => boolean 以支持自定义搜索命中逻辑。

2.1.0🌰 Chestnut

  • 💡

    新增了 ConfigProvider 组件,用于对局部组件进行全局配置的自定义。

  • 💡

    Carousel 组件进行了功能、样式升级:

    • indicator prop 新增 bar / dot 值,用于指定播放指示器的样式类型。其中 bar 用于替换之前的 radioradio 也保持兼容支持)。
    • 新增了 effect prop,用于指定轮播切换效果,其中 fade 仅在切换组个数与同时显示个数相同时生效。
    • 新增了 vertical prop,用于支持纵向布局的轮播。
    • 新增了 indicator-alignment prop,用于支持指示器的相对于布局方向的位置。
    • 新增了 indicator-position prop,用于支持指示器显示在轮播容器的内部/外部。
    • 新增了 controls-position prop,用于支持切换按钮相对于布局方向的位置。
    • 新增了 slide-aspect-ratio prop,用于指定每个轮播项的纵横比。
    • 新增了视频轮播项的支持,并新增 options prop 用于指定不同轮播项类型的默认配置。
    • 新增了 slides-per-view prop,用于指定同时显示多少个轮播项。
    • 新增了 slides-per-group prop,用于指定每次前后切换的一组包含多少个轮播项。
  • 🧪

    Carousel 组件新增自定义 CSS 属性:

    • --dls-carousel-slide-gutter:轮播项的间距;
    • --dls-carousel-transition-duration:轮播一次切换的持续时间。
  • 🐞
    修正了 Switch 组件加载状态没有使用 Loading 组件的问题。

2.0.6

  • 🐞
    优化了 DialogDrawerLightbox 等触发模态层组件释放滚动锁定的逻辑,已避免模态层关闭时进行路由跳转可能导致解锁逻辑没有执行的问题。

2.0.5

  • 🐞
    修复 Input 组件开启 trim 后无法输入带空格的文本的问题。

2.0.4

  • 🐞
    修复 Uploader 组件遗漏的服务端渲染时的异常。

2.0.3

  • 💡
    Input 组件新增 trim prop,用来给输入值清除前后的空格。
  • 🐞
    修复 Checkbox 组件初始化时触发全局点击事件的问题。
  • 🐞
    修复 Textarea 组件在 autoresize 时,当最初渲染在隐藏容器内展现后高度不正确的问题。

2.0.2

  • 💡

    在 UMD 版本输出中新增整体注册功能,将自动注册所有组件并启用 VEUI 的所有插件。

    使用方法

    <div id="app">
      <v-button ui="primary">OK</v-button>
    </div>
    
    Vue.use(veui, { prefix: 'v' }) // prefix 可选,默认为 `veui`
    
    new Vue({
      el: '#app'
    })
    
  • 🐞
    修正了 Uploader 组件在 SSR 环境下异常的问题。
  • 🐞
    修正了 Uploader 组件渲染的文件列表可能超过 max-count 定义的上限的问题。
  • 🐞
    修正了 options 参数在 toast 插件调用时没有正常生效的问题。
  • 🐞
    修正了 veui-theme-dls 单独打包输出的样式顺序问题。
  • 🐞
    修正了 Tag 组件在深色背景下显示效果不符合预期的问题。

2.0.1

  • 🐞
    修正了 Menu 组件 item-label slot 范围过大的问题。

2.0.0📅 Calendar

  • ⚠️
    移除了 Table 组件的 keys prop,请使用 key-field prop 代替。
  • ⚠️
    移除了 Tag 组件的 closable prop 和 close 事件,请分别使用 removable prop 和 remove 事件代替。
  • ⚠️
    移除了 Uploader 组件的 extensions prop,请使用 accept prop 代替。
  • ⚠️
    移除了 Uploader 组件的 uploadFiles 方法,并将 triggerUpload 方法更名为 startUpload
  • ⚠️
    移除了 v-drag 指令的 draggable 选项,请使用 disabled 选项代替。
  • ⚠️
    移除了 v-drag.sort 指令的 callback 选项,请使用 sort 选项代替。
  • ⚠️
    移除了校验规则的 message 自定义模板的 %{arg} 语法,请使用 {arg} 语法代替。
  • 🐞
    修复了 Uploader 组件列表切换动效不正确的问题。

2.0.0-rc.5

  • 🐞
    修正了 Nav 组件从当前项目移动到下拉浮层会导致当前项目关闭的问题。
  • 🐞
    修正了 Table 组件的过滤器下拉浮层出现两个滚动条的问题。
  • 🐞
    修正了 veui 公共模块导出可能出现组件未定义的情况。
  • 🐞
    修正了部分组件的语言配置未打包到 UMD 版本输出的问题。
  • 🐞
    修正了 rc.4 版本错误引入 Dropdown 组件的 strong 样式。

2.0.0-rc.4

  • 💡

    veui 产出中新增文件:

    • dist/veui.js UMD 版本,包含中英文语言包。
    • dist/veui.esm.js ESM 版本,不包含中英文语言包。
    • dist/locale.en-US.esm.js 英文语言包。
    • dist/locale.zh-Hans.esm.js 中文语言包。
  • 💡

    veui-theme-dls 产出中新增文件:

    • dist/dls.js UMD 版本,Baidu DLS 主题包。
    • dist/dls.esm.js ESM 版本,Baidu DLS 主题包。
  • 💡

    veui 的公共模块导出调整为:

    ESM

    import {
      Button, // components
      config, i18n, validation, // managers
      useControllable, useSearchable, // mixins
      $alert, $confirm, $prompt, $toast, // plugins
      drag, outside, resize, nudge, longpress, tooltip // directives
    } from 'veui'
    

    全局对象

    <script src="/path/to/vue.js"></script>
    <script src="/path/to/veui/dist/veui.js"></script>
    <script src="/path/to/veui-theme-dls/dist/dls.js"></script>
    <script>
    const { Button, i18n, outside } = window.veui
    </script>
    
  • 🐞
    Dropdown 组件现在支持 ui="strong text"
  • 🐞
    修正了 Dialog 组件的 draggable prop 失效的问题。
  • 🐞
    修正了 Drawer 组件的 overlay-class prop 没有正确输出的问题。
  • 🐞
    修正了 v-drag 指令在非使用 target 选项非受控拖动时失效的问题。
  • 🐞
    修正了 v-drag.sort 在 Safari 下容器有 transform 时产生偏移的问题。
  • 🐞
    修正了 Uploader 组件按住图片拖拽排序时失效的问题。

2.0.0-rc.3

  • ⚠️
    v-drag.sort 指令的 callback 选项重命名为 sort。参数从 (toIndex: number, fromIndex: number) 修改为 (fromIndex: number, toIndex: number)。同时排序回调不再需要关心移动动画的完成状态。
  • ⚠️
    v-drag 指令的 draggable 选项被 disabled 选项取代,默认值为 false
  • ⚠️
    移除全局配置项 drag.prefix
  • 💡
    v-drag 指令新增选项 handle,可用于指定拖动的“把手”元素。
  • 🐞
    修正 Lightbox 组件可能产生重复 key 的问题。

2.0.0-rc.2

  • 🐞
    修正 NumberInput 组件无法正常清空的问题。

2.0.0-rc.1

  • 💡
    Popover / Tooltip / AlertBox / ConfirmBox / PromptBox / Dialog / Select / Dropdown / Lightbox / DatePicker / TimePicker / SearchBox / Cascader / CascaderPane 等组件新增 overlay-style prop,用于自定义浮层样式。
  • 💡
    Link 组件现在支持绑定通用的鼠标、键盘事件,无需使用 .native 修饰符。
  • 🐞
    修复 Nav 组件项目在光标悬浮状态下的样式问题。
  • 🐞
    修复 Select 组件的 slot prop 中缺失 close 方法的问题。
  • 🐞
    修复 NumberInput 组件在非法值的基础上使用步进操作产生 NaN 的问题。
  • 🐞
    修复 Radio 组件在有相同 name 的组件时,因为其它同组组件被选中导致的 DOM 状态与组件状态不同步的问题。
  • 🧪
    Select / Dropdown / SearchBox / Cascader 新增 --dls-dropdown-max-display-items 配置支持,见 2.0.0-rc.0 版本实验性功能说明。

2.0.0-rc.0

  • ⚠️
    v-drag.sort 指令的 callback 函数参数 (toIndex, fromIndex) 中的 toIndex 参数含义变更,从原来的“移动到 toIndex 前”变更成“移动到 toIndex 处”。
  • 💡
    Overlay / Autocomplete 等组件新增 overlay-style prop,用于自定义浮层样式。
  • 💡
    新增 v-tooltip 指令,用于指定全局共享的浮层提示。
  • 💡
    优化了 v-drag.sort 的移动触发交互,使拖动排序更顺畅。
  • 🐞
    修复 modal 类型浮层的 focus trap 功能。
  • 🧪

    新增支持通过给浮层设置 CSS 自定义属性 --dls-dropdown-max-display-items 来设置 Autocomplete 组件下拉浮层最大显示项目数,超出此高度将触发滚动。(给浮层设置样式可通过 overlay-class / overlay-style prop 的方式。)

    使用示例

    <!-- 配置最多显示 6 个选项(为提高在溢出且隐藏滚动条环境中的可访问性, -->
    <!-- 实际最大高度为 6.5 个选项的高度以提示更多选项的存在) -->
    <veui-dropdown :overlay-style="{ '--dls-dropdown-max-display-items': 6 }" .../>
    

2.0.0-beta.33

  • 💡

    新增了部分组件的文案配置 prop(#750),具体包括:

    • Dialog / Drawer / ConfirmBox / PromptBox 组件新增 ok-label / cancel-label prop;
    • AlertBox 组件新增 ok-label prop;
    • Tabs 组件新增 add-label prop;
    • Transfer 组件新增 candidate-title / selected-title prop。
  • 💡

    AlertBox / ConfirmBox / PromptBox 均补齐 disabled / loading prop,与 Dialog 组件对齐。

2.0.0-beta.32

  • 💡
    Overlay 组件内容现在仅会在 open 状态下渲染,以提高渲染性能。
  • 💡
    优化了 Table 组件内容溢出时的阴影样式。
  • 🐞
    修正 CarouselLightbox 组件的项目插槽,从 default 修正为 item。修正 Lightbox 组件的 desc 插槽。
  • 🐞
    修正不同尺寸 Cascader 组件的样式问题。
  • 🐞
    修正 SearchBoxTable 筛选等下拉场景没有高度限制的问题。
  • 🐞
    修正 file 类型 Uploader 组件会发起预览网络请求的问题。

2.0.0-beta.31

  • 💡
    新增 CascaderCascaderPane 组件。
  • 💡
    Dialog 组件新增 disabled 属性,用于控制确定按钮的启用/禁用。
  • 🐞
    修正 Select 组件在 s / xs 尺寸下多选标签的样式。
  • 🐞
    修正 Lightbox 组件在 Safari 下无法正常显示内容的问题。
  • 🐞
    修正 Uploader 组件在 request-modecustom 时没有对返回值调用 convertResponse 的问题。(#800)
  • 🐞
    修正 SearchBox 在显示搜索提示时按下 enter 没有触发 search 事件的问题。(#806)
  • 🐞
    修正 Carousel 组件尺寸不能通过最外层元素进行调整的问题。(#811)

2.0.0-beta.30

  • 💡

    Tree / Transfer 组件新增 merge-checked prop,用于对节点勾选的冗余信息进行合并。支持的值如下:

    • keep-all:默认值,选中值中包含所有勾选状态的节点。
    • upwards:尽量向上合并,当某个节点下所有节点均勾选时仅保留该节点本身。
    • downwards:尽量向下合并,仅保留叶子节点。
  • 💡

    Tree 组件的被禁用的子节点现在允许切换展开/收起。

  • 💡

    Tree 组件新增支持对于没有 value 的节点,根据 name 字段控制展开收起及节点选择(非勾选)状态,用来支持受控切换这两类状态且不出现在已勾选的输出值中(仅作为分组节点使用)。

  • 💡

    Transfer 组件的 candidate-head / candidate-title / selected-head / selected-title 插槽中新增了 count 插槽属性,分别表示备选数量和已选数量。

  • 🐞
    修复 Tree 组件禁用逻辑,现在被禁用的节点的所有子节点也将被禁用。
  • 🐞
    修复 Transfer 节点在禁用时会受“全选”/“清空”操作影响选择状态的问题。
  • 🐞
    修复 Transfer 在搜索/过滤后全选会选中所有数据而非过滤后数据的问题。
  • 🐞
    修正 Select 组件“未选择”状态的判断逻辑,现在 null / undefined / [] 均视为未选状态。
  • 🐞
    修正 babel-plugin-veui 在改写 import 时没有更新 local binding 导致 JSX 插件误判组件名为字符串的问题。

2.0.0-beta.29

  • 💡
    Overlay 组件在层叠顺序变化时将触发 orderchange 事件。
  • 🐞
    修复 Transfer 组件可以通过批量选择切换禁用项的问题。

2.0.0-beta.28

  • 💡
    Uploader 组件新增 sortable prop,支持上传文件的拖拽排序。
  • 💡
    Transfer 组件新增 candidate slot,用于替换整个待选面板的内容。
  • 🐞
    $confirm 插件在同步回调时不再显示 loading 状态。
  • 🐞
    修复了 Select 组件无法通过键盘 focus 的问题。
  • 🐞
    修复了 RadioButtonGroup 通过方向键切换选项时可能报错的问题。
  • 🐞
    修复了 Link 组件引用了错误的 event 对象的问题。
  • 🐞
    修正了 Select 下拉浮层在出现内部滚动时,下层选项组展开定位不符合预期的问题。

2.0.0-beta.27

  • ⚠️
    SelectDropdown 组件的 trigger slot 属性中 props 被重命名为 attrs,用来表达需要输出到 DOM 元素上的属性。
  • 💡
    Column 组件新增 filter-optionsfilter-multiple prop,用于开启内置的下拉筛选并设置单选/多选。
  • 💡
    Column 组件的 filter-value prop 可以支持 true 以外的其它属性,在使用内置下拉筛选时对应下拉选项的 value 值。当值为 null 时,用来指定筛选未激活的状态。
  • 💡
    Column 组件新增 filter-title prop,用于指定下拉筛选的标题说明。
  • 💡
    Dropdown 组件的 trigger slot 新增作用域参数 expanded / toggle,用于获取/切换下拉菜单的展开状态。
  • 🐞
    修复了 less-plugin-dls 版本依赖错误的问题。

2.0.0-beta.26

  • ⚠️
    已移除 Uploader 组件的 compat prop,不再兼容 string 类型的 value
  • 💡
    Uploader 组件大幅重构,并拆分组件实现。
  • 💡
    Uploader 组件新增 key-field prop,用于指定 value 数组项的唯一键的键名。默认为 'key'
  • 💡
    Uploader 组件的 value 数组项新增唯一键字段,用于数据回填时的定位到准确的位置。
  • 💡
    Uploader 组件新增 multiple prop,用于指定 value 的数据类型是否为数组。如果 multipletrue,即使 maxCount1value 仍为数组类型。而当指定了大于 1max-count 值,即使 multiplefalse 也不会生效,value 始终为数组。
  • 💡
    Uploader 组件新增 after-pick 函数 prop,用于新增在选择完文件后执行定的 hook 逻辑。
  • 🐞
    修正了 Table 组件没有正确处理非可排序列的标题交互状态导致可能报错的问题。

2.0.0-beta.25

  • 💡
    v-drag 指令增加 sort 类型,用于容器内元素列表的拖动排序。
  • 💡
    Progress 组件在进度条模式下支持新增的属性 indeterminate,用于展示不确定进度的情况。
  • 🐞
    修复 Uploader 组件的 max-size 校验在 iframe 上传模式下失效的问题。
  • 🐞
    file 类型的 Uploader 在 iframe 上传模式下提供正常的进度条展示(不确定进度)。

2.0.0-beta.24

  • 💡
    Column 组件新增 filter-value prop,用来指定表格列的筛选值。当前仅支持在发生过筛选后设置为 true
  • 💡
    Column 组件新增 filter slot,用来指定自定义筛选下拉浮层内容。
  • 🐞
    修正 RadioGroup / CheckboxGroup 组件样式可能错误触发容器发生溢出滚动的问题。
  • 🐞
    Link 组件的 to prop 现在可以正常使用绝对路径了。
  • 🐞
    修正 Radio / Checkbox / Switch 组件在点击时会触发两次 click 事件的问题。

2.0.0-beta.23

  • ⚠️
    已移除实验性全局配置项 modal.scrollLockMode,原因是保留滚动位置时无法保证屏幕不发生瞬间闪烁。
  • 🐞
    修正 Overlay 组件在有开启 inline / local prop 的父级 Overlay 时报错的问题。
  • 🐞
    修正 Uploader 组件在单文件模式下外部修改文件列表不正常的问题。

2.0.0-beta.22

  • 🐞
    修正 Uploader 组件插槽参数中字段缺失 status 的问题。
  • 🐞
    修正遗漏 shopping-cartfilm 图标的问题。

2.0.0-beta.21

  • 💡

    Dialog 触发滚动锁定时,新增实验性全局配置项 modal.scrollLockMode,可选值为 safe / advanced

    详细说明

    滚动锁定用来处理在出现全屏遮罩时,滚动行为透传到上层滚动容器的问题。目前的主流方案都使用 overflow: hidden 将上层滚动容器锁定,但当滚动条可见时,切换时会导致容器内部的尺寸发生变化进而发生抖动,故通常方案将在容器上添加一个额外的与滚动条宽度相同的 padding-right 来保持内部布局的稳定,也就是 safe 模式下采取的行为。但当视口发生滚动时,隐藏其滚动条将使得视口尺寸发生变化,固定定位元素的相对参考位置也会发生变化,会对这部分元素产生滚动条宽度的抖动。如果想避免这一现象,可以全局配置 modal.scrollLockModeadvanced,将采取另一种锁定策略,将 <body> 元素固定定位到撑满视口并 overflow: hidden,从而使视口不会发生内容溢出,同时强制 <html> 使用 overflow: scroll,保证视口滚动条依然展示,以达到视口内内容的稳定。但这种模式下同样可能对本身相对 <body> 元素底部绝对定位的元素产生副作用。使用时可以测试两种不同的模式后自行选择。

  • 🐞
    修正 Uploader 组件插槽参数中字段缺失的问题。
  • 🐞
    修正 Select 组件在校验错误状态下的样式问题(#758)。

2.0.0-beta.20

  • 💡
    Table 组件现在在整个表头区域内点击都会触发排序(如果开启了排序功能),内部可获取焦点的元素(被认为可以触发其它交互)除外。
  • 🐞
    修正 Uploader 组件后缀名校验不正确的问题。
  • 🐞
    修正 Tooltip 组件内容可能溢出容器的问题。
  • 🐞
    修正 Link 组件在新标签/窗口打开链接(通过 Ctrl/Shift/ + 鼠标点击或链接包含 target="_blank" 时)时,原标签/窗口内容发生跳转的问题。

2.0.0-beta.19

  • 🐞
    更新 dls-icons-vue 依赖,修正图标 treeshake 逻辑没有正常生效的问题。

2.0.0-beta.18

  • 🐞
    修正 veui-theme-dls-icons 图标没有更新的问题。

2.0.0-beta.17

  • 💡
    Column 组件新增 desc prop,可用来在表头通过 Popover 输出额外说明。同时新增对应的 desc 插槽,来自定义 Popover 组件的内容。
  • 💡
    Tabs 组件新增 eager prop,将提前渲染未激活的标签面板内容。
  • 🐞
    修正 Uploader 组件在图片/视频上传时底栏操作时间遗漏回调参数的问题。
  • 🐞
    修正 Tabs 组件有时无法滚动到最后的问题。

2.0.0-beta.16

  • 🐞
    修正 Tabs 组件在移除标签项时激活状态切换不正确的问题。

2.0.0-beta.15

  • 💡
    Lightbox 组件新增 options prop,允许指定视频项播放时的 muted / autoplay / controls 等配置。
  • 💡
    Uploader 组件新增 preview-options prop,允许指定预览时调用的 Lightbox 的配置。
  • 🐞
    修正 Uploader 组件在图片、视频上传状态下的预览图标。
  • 🐞
    修正 Uploader 组件有时没有正确处理图片预览的问题。
  • 🐞
    修正 Uploader 组件在某一上传项第二次上传/校验失败后无法展示失败理由的问题。
  • 🐞
    修正 Lightbox 未处理初始化时焦点导致打开后初始状态下键盘切换项目失效的问题。
  • 🐞
    修正 Pagination 组件在没有传入 to prop 时,点击跳转到 x 页后没有触发 redirect 事件的问题。

2.0.0-beta.14

  • 🐞
    修正 veui 没有正确标注 dls-graphics 依赖类型的问题。

2.0.0-beta.13

  • 🐞
    修正 veui-loader 没有正确标注 magic-string 依赖类型的问题。

2.0.0-beta.12

  • ⚠️
    Uploader 组件新增了 m / s 两种 ui 属性值,默认尺寸有所增大。
  • 💡

    新增了 Lightbox 组件。

  • 💡

    Dropdown / Select / SearchBox / DatePicker / TimePicker / Autocomplete 组件新增可受控 prop expandedtoggle 事件,用来控制其下拉浮层的展开/收起。

  • 💡

    Table 组件新增 loading prop,展示“加载中”状态。

  • 💡

    Table / Column 组件新增 allowed-orders prop,支持定制允许的顺序。

  • 💡

    Select 组件新增 trigger 插槽,用于自定义下拉触发区域。

  • 💡

    Select 组件新增 selected 插槽,用于自定义下拉按钮已选项回填内容的展示。

    label 插槽的区别

    label 插槽仅针对收起状态下的已选项回填内容,而 selected 插槽包括了展开状态下的已选项回填内容。

  • 💡

    Uploader 组件新增了 type prop 的可选值 video / media,用来支持视频上传的场景。

  • 💡

    Uploader 组件新增了 entries prop,内置了多入口操作的功能,类型和 controls 的返回值相同。

  • 💡

    Loading 组件添加了新的动效。

  • 🐞
    修正 Progress 组件偶尔会由于浏览器编码识别错误显示了错误内容的问题。
  • 🐞
    修正 RadioGroup 组件和 CheckboxGroup 组件在内容换行时显示不正确的问题。
  • 🐞
    修正 SearchBox 组件按下 enter 时触发表单提交的问题。
  • 🐞
    修正 Select 组件在清空时将禁用的选项一同清空的问题。

2.0.0-beta.11

  • 💡
    Uploader 组件的 upload 自定义函数 prop 中的第二个参数增加 oncancel: Function 字段,可在自定义上传逻辑中主动取消上传。对于“重新上传”场景,取消后将恢复为之前已经上传的文件。
  • 🐞
    修复从外部改变 Uploader 组件的 value prop 导致渲染不正确的问题。
  • 🐞
    修复了 Dialog 组件在关闭时也可能抛出 cancel 事件的问题。
  • 🐞
    修复了 NumberInput 组件在右键点击调节按钮时会触发连续调整的问题。

2.0.0-beta.10

  • 🐞
    修复上个版本 Overlay 组件 target 更新逻辑引入的导致 match-width 在第一次浮层展开时失效的问题。
  • 🐞
    修正 Form 组件没有正确通过 Fieldname prop 进行识别的问题。
  • 🐞
    修正 Accordion 组件无限重渲染的问题。

2.0.0-beta.9

  • 💡
    DatePicker 组件新增 parse prop 用于指定如何从输入值解析日期对象。
  • 💡
    DatePicker 组件新增 selectstart / selectprogress 事件,用于对外同步日期范围选择的过程信息。
  • 💡
    Calendar / DatePicker 组件的 disabeldDate prop 在日期范围选择过程中,新增第二个参数,表示当前第一个选择日期。
  • 💡
    Input / Textarea 组件新增 prop get-length,用于自定义计算已输入字符串长度的逻辑。
  • 🐞
    修复 Schedule 组件快捷选项由于引用被修改导致的数据混乱。
  • 🐞
    修复了 Dialog / Table 组件在极端条件下触发 Firefox 图层合成 bug 的问题。
  • 🐞
    Overlay 组件现在不仅在初始化时查找 target 对应元素,而是在每次显示时均查找,使得定位逻辑不再依赖对应元素的渲染顺序。
  • 🐞
    修正了 Select 组件中已选的 disabled 选项可以被删除的问题。
  • 🐞
    修正了 Select 组件中内联 Optiondisabled prop 不生效的问题。

2.0.0-beta.8

  • 💡
    Uploader 组件的插槽 button-label 现在对图片上传也生效(默认为添加图片图标)。
  • 💡
    去除了所有输入组件、按钮默认的 vertical-align: middle 样式。
  • 🐞
    修正 Transfer 组件无法正常删除父级选项的问题。
  • 🐞
    修正 Input 组件在 Firefox 下无法正常输入的问题。
  • 🐞
    修复 Dialog 内容在极端场景下触发 Firefox 图层合成 bug 的问题。
  • 🐞
    默认为可搜索的 Select 中的 Input 关闭了原生 autocomplete 功能,以避免原生浮层与 Select 下拉浮层重叠的问题。

2.0.0-beta.7

  • 🐞
    修复 Tab 面板内容没有正确响应外部数据变化的问题。
  • 🐞
    修复 CheckboxGroup 选项间距不正确的问题。

2.0.0-beta.6

  • ⚠️
    veui-theme-dls-icons 中的 plus-square-circlestorage 图标名称分别修正为 plus-squaresave
  • 💡
    CheckboxGroupCheckButtonGroup 组件的 items prop 项目支持传入 exclusive: true 来指定当前项为排它选项,即选择后将取消其它选中项。
  • 💡
    CheckboxGroupCheckButtonGroup 组件新增 empty-value prop,用来指定在用户取消所有复选项时需要重新选中的项目,需要配合新增的 exclusive 使用。
  • 💡
    ButtonGroupui 增加可选值 basic
  • 🐞
    修正 Slider 组件值为 0 时渲染不正常的问题。

2.0.0-beta.5

  • 🐞
    修复 Select 组件中使用了废弃的 Tag 组件接口的问题。
  • 🐞
    修复 Dropdown 组件焦点状态不会在关闭后自动清除的问题。
  • 🐞
    修复 DatePicker 组件浮层位置无法指定的问题。
  • 🐞
    修复图标按钮内图标的边距问题。
  • 🐞
    修复 Table 组件表头图标颜色错误的问题。
  • 🐞
    修复 Menu 组件顶层导航项的字重。

2.0.0-beta.4

  • ⚠️
    Tag 组件的 closable prop 重命名为 removable
  • ⚠️
    Tag 组件的 close 事件重命名为 remove
  • 💡
    NumberInput 组件增加 parse / format prop,用来对输入的内容进行格式化输出。
  • 💡
    Tag 组件增加 removed prop,可以通过外部控制是否被移除。

2.0.0-beta.3

  • ⚠️
    veui-theme-dls-icons 中,triangle-up / triangle-right / triangle-down / triangle-left 分别重命名为 caret-up / caret-right / caret-down / caret-left
  • 💡
    所有支持 v-model / .sync 的 prop 现在均支持完全受控模式。
  • 💡
    Input 组件增加 placeholder 插槽。
  • 💡
    Select 组件的 label 插槽现在可以对 multiplesearchable 的状态生效了。
  • 🐞
    修复 Icon 组件 namenull 时报错的问题。
  • 🐞
    修复 Select / Slider / Tabs / InputGroup / Collapse 等组件样式细节。
  • 🐞
    修复 Label 组件 for prop 不支持传入组件/元素的问题。

2.0.0-beta.2

  • ⚠️
    移除 veui-theme-one-icons
  • 💡
    允许 CheckButtonGroup 配置 icons.check 来指定已选项的图标。
  • 🐞
    修复多数组件内的图标按钮样式。
  • 🐞
    修复 DatePickerTextarea 的样式问题。

2.0.0-beta.1

  • 💡
    基于 dls-icons-vue 重新实现了 veui-theme-dls-icons
  • 💡
    RadioButton 组件的 value prop 支持可受控模式。
  • 🐞
    修复了全局 config 模块可能进入无限递归的问题。

2.0.0-beta.0

  • ⚠️

    veui-theme-dls 对组件的 ui prop 进行了调整,见下表。

    组件删除新增
    Button-normal / basic / aux / square
    Dropdown-basic / normal
    Fieldmicro / tiny / small / largexs / s / m / l
    Table-compact / loose / normal
    Tabs-simple / strong
    Tagborderlessbordered

    其中,按钮默认样式变为 normal,原默认样式现对应为 basic

  • ⚠️

    ButtonGroup / RadioGroup / CheckboxGroup / RadioButtonGroup / CheckButtonGroup 组件的每个项目的作用域插槽从 default 更名为 item。后续使用时需要用 <template #item="...">...</template> 自定义项目内容。

  • ⚠️

    移除了 GridContainer 组件的 flex prop,默认行容器均使用 flex 布局,不再按条件指定。

  • ⚠️

    移除了 Input 组件的 prepend / append 插槽,并将 before / after 插槽移入 Input 内部。原有的前后组合的场景请使用 InputGroup 组件进行组合输入型组件使用。

  • ⚠️

    NumberInput 组件的 prepend / append 插槽重命名为 before / after

  • ⚠️

    Progress 组件的 append 插槽重命名为 after

  • ⚠️

    Tree 组件的 item-prepend / item-append 插槽重命名为 item-before / item-after

  • 💡
    将整体设计切换到了 D20 版本。
  • 💡
    新增 Nav 组件。
  • 💡
    Alert 组件的 default / extra 插槽增加参数 close,可用来控制提示的关闭。
  • 💡
    Alert 组件的 extra 插槽增加参数 message
  • 💡
    Form 组件新增 actions 插槽,用来放置操作按钮。
  • 💡
    Icon 组件的 name prop 支持直接传入组件定义进行渲染,此时只支持 spin 属性。
  • 💡
    OptionGroup 组件的 option-tag prop 支持传入 function,来根据选项数据动态生成内部 Option / OptionGroup 使用的标签。
  • 💡
    Tree 组件的 item / item-before / item-after / item-label 增加参数 expandedparents
  • 💡
    Tree 组件新增 include-indeterminate prop,用来指定半选状态的节点是否被计入 checked 结果中。
  • 🐞
    修复了 Menu 组件的键盘导航功能。

2.0.0-alpha.21

  • 🐞
    修正 Uploader 组件 invalid 事件参数中丢失错误 type 字段的问题。

2.0.0-alpha.20

  • 💡
    Uploader 组件新增 invald 事件,在文件校验失败、选择的文件数量超过最大数量限制时触发,回调参数为包含错误信息的数组。
  • 💡
    Uploader 组件的 failure 事件的第一个回调参数文件对象增加字段 message,表示错误信息。

2.0.0-alpha.19

  • 🐞
    修正 NumberInput 在输入值被 min / max 裁切时没有正确同步变更的问题。

2.0.0-alpha.18

  • 🐞
    修正 Uploaderiframe 模式并且已选文件数量达到 max-count 的情况下,没有正确上传文件的问题。
  • 🐞
    修正 Uploaderiframe 模式下,反复上传文件列表最后一个文件的问题。

2.0.0-alpha.17

  • 💡
    toast 插件调用后返回值从 void 修改为 function 类型,调用后将关闭该条提示,可用于自行控制 Toast 关闭时机。
  • 🐞
    修正 Alert 组件调用 extra 插槽的方式,使得不管单条/多条情况下可以使用同样方式调用。
  • 🐞
    修正 Alert 组件数据变化时当前索引值可能溢出的问题。

2.0.0-alpha.16

  • 💡
    Checkbox 组件的 checked prop 支持可受控模式。
  • 🐞
    修复了 OptionGroup 组件在使用内联写法时,动态数据源可能导致渲染结果不正确的问题。
  • 🐞
    修复了 OptionGroup 组件的 before / after slot 在配合 v-slot 语法结合动态数据源时在数据变化后消失的问题。

2.0.0-alpha.15

  • 💡
    Overlay 组件新增了 local prop,值为 true 时浮层将不被移到 <body> 元素下并且脱离全局浮层顺序管理。
  • 🐞
    修复了 Overlay 组件没有正确销毁的问题。
  • 🐞
    修复了 InputGroup 组件在子组件指定了自定义的 class 时样式可能不正确的问题。

2.0.0-alpha.14

  • 💡
    Calendar 组件的 selected prop 支持可受控模式。
  • 💡
    Carousel 组件的 index prop 支持可受控模式。
  • 💡
    TimePicker 组件的 value prop 支持可受控模式。
  • 💡
    Dropdown 组件新增 slot trigger,用于自定义下拉触发区域。
  • 💡
    Dropdown 组件默认 slot 新增参数 close 函数,用来在自定义下拉内容区时需要关闭下拉浮层时调用。
  • 💡
    Overlay 组件新增 local prop,用来指定不将浮层移动到 document.body 下,脱离全局浮层管理。
  • 🐞
    修复了 Popover 组件的 ui prop 不生效的问题。
  • 🐞
    修复了 Tabs 组件在销毁时依然触发 active 变化的问题(#659)。
  • 🐞
    修正了 Tabs 组件在 Safari 下的样式问题。
  • 🐞
    Menu 组件使用路由的 path 来计算当前激活的项目,而不是 fullPath

2.0.0-alpha.13

  • 💡
    Autocomplete 组件新增了 option-label 插槽。
  • 💡
    OptionGroup 组件新增 before / after 插槽,用于在 popup 模式下在新开浮层上下插入自定义内容。
  • 🐞
    修复了 Tab 组件的 label 等 prop 更新时视图没有同步更新的问题。
  • 🐞
    修复了 Menu 组件数据源在 SSR 环境下无限循环的问题。
  • 🐞
    修复了 Anchor 组件在 SSR 环境下访问 DOM 的问题。

2.0.0-alpha.12

  • 🐞
    veui 现在在 babel-plugin-veuipeerDependencies 中,以免多版本共存时 babel-plugin-veui 无法找到正确的 veui 版本。
  • 🐞
    修复了 Menu 组件非受控模式下第一次没有正确同步当前路由状态的问题。
  • 🐞
    修复了 Calendar 组件 disabled-date prop 对显示在本月的前后月日期未生效的问题(#644)。
  • 🐞
    现在 ButtonGroup 组件只有在按钮项 value 为字符串时抛出同名事件,避免在非字符串类型时报错。
  • 🐞
    去除了多选 Select 组件已选项默认滚动入可视区域的行为(因为可能有多个已选项)。
  • 🐞
    修正了开启搜索功能的 Dropdown 组件搜索栏和选项区域同时滚动的问题,搜索栏现在固定在下拉菜单顶端。

2.0.0-alpha.11

  • ⚠️

    移除了 babel-preset-veui

  • ⚠️

    移除了 veui-theme-one

  • ⚠️

    移除了 Tabs 组件的 index prop,现在控制激活标签页只能使用 active prop,并支持可受控模式。

    使用指南

    使用 active prop 与 change 事件完全外部控制激活状态
    <veui-tabs :active="active" @change="tab => active = tab.name">
      <veui-tab label="A" name="a">Content A</veui-tab>
      <veui-tab label="B" name="b">Content B</veui-tab>
      <veui-tab label="C" name="c">Content C</veui-tab>
    </veui-tabs>
    
    使用 active.sync 双向同步激活状态
    <veui-tabs :active.sync="active">
      <veui-tab label="A" name="a">Content A</veui-tab>
      <veui-tab label="B" name="b">Content B</veui-tab>
      <veui-tab label="C" name="c">Content C</veui-tab>
    </veui-tabs>
    
    激活状态完全由组件内部控制
    <veui-tabs>
      <veui-tab label="A">Content A</veui-tab>
      <veui-tab label="B">Content B</veui-tab>
      <veui-tab label="C">Content C</veui-tab>
    </veui-tabs>
    
  • ⚠️

    Tabs 组件的 tabs-extra slot 更名为 extra,且仅包括提示区域的内容,不包括添加按钮。

  • ⚠️

    移除了 Tabs 组件的 tabs-extra-labeltabs-extra-tip slot。

  • ⚠️

    Tabs 组件的 tab-item scoped slot 现在包含整个按钮/链接,方便替换为自定义实现。

  • ⚠️

    移除了Tabs 组件的 tab-item-extra scoped slot,removableTab 组件始终显示移除按钮。

  • ⚠️

    Tabs 组件在路由模式下,不再自动输出 <router-view> 组件,需要通过 Tabdefault slot 或 Tabs 新增的 panel slot 中进行输出。

    使用指南

    (嵌套)路由模式

    在之前的版本,如果 Tab 组件的 default slot 未传入任何内容,路由模式下 VEUI 会自动在标签内容容器内渲染 <router-view>。这导致在不使用嵌套路由时或是希望灵活控制 <router-view> 位置时产生额外的问题。所以在这个版本中移除了这个逻辑,用户可以使用 Tabspanel slot 来统一在标签内容容器中输出 <router-view>,也可以在某些 Tabdefault slot 中输出 <router-view> 及额外内容来覆盖全局的 panel slot,甚至可以将 <router-view> 输出到其它任意合适的位置。

    <veui-tabs>
      <veui-tab label="A" to="content/a"/>
      <veui-tab label="B" to="content/b"/>
      <veui-tab label="C" to="content/c">
        <h3>Content C</h3>
        <router-view/>
      </veui-tab>
      <template #panel>
        <router-view/>
      </template>
    </veui-tabs>
    
  • 💡

    新增了 Tabs 组件的 tab-label scoped slot,用于仅自定义标签项内容。

  • 💡

    新增 Tabs 组件的 panel slot,用于指定标签下方面板内的自定义内容。

  • 💡

    新增 Tabs 组件的 change 事件,回调参数为 tab 对像,包含 namelabeltostatus 等字段。

  • 💡

    新增 Tab 组件的 item slot,用于自定义标签内容,与 Tabs 组件的 tab-item 对应,优先级更高。

  • 💡

    新增 Tab 组件的 label slot,用于自定义标签内容,与 Tabs 组件的 tab-label 对应,优先级更高。

    使用指南

    自定义标签项内容

    可以使用 Tabstab-item scoped slot 来自定义所有标签项的内容,也可以使用 Tabitem scoped slot 来自定义单个标签项内容(单个内容将覆盖整体的内容)。

    <veui-tabs>
      <veui-tab label="A">
        Content A
        <template #item="tab">
          <button
            type="button"
            class="foo-btn"
            :disabled="tab.disabled"
            v-bind="tab.attrs"
            @click="tab.activate"
          >
            {{ `${tab.label} ${tab.active ? '✅' : '' }` }}
          </button>
        </template>
      </veui-tab>
      <veui-tab label="B">Content B</veui-tab>
      <veui-tab label="C">Content C</veui-tab>
    </veui-tabs>
    

    如果只想定义文本区域的内容(不需重写点击激活等逻辑),请使用 Tabstab-labelTablabel scoped slot,用法类似。

    <veui-tabs>
      <veui-tab label="A">
        Content A
        <template #label="tab">Content A {{ `${tab.active ? '✅' : '' }` }}</template>
      </veui-tab>
      <veui-tab label="B">Content B</veui-tab>
      <veui-tab label="C">Content C</veui-tab>
    </veui-tabs>
    
  • 🐞
    修复了 Transfer 组件删除已选项时报错的问题。
  • 🐞
    修复了 Transfer 组件和 Tree 组件在被禁用状态下依然可以添加已选项的问题。
  • 🐞
    修复了悬浮触发的 Tooltip 组件可能被错误关闭的问题。
  • 🐞
    修复了在局部输出全局样式时没有正确处理 Anchor 浮层的问题。
  • 🐞
    修复了 Overlay 组件没有响应 inline prop 变化的问题。
  • 🐞
    修复了 NumberInput 组件在 strong 模式下最大最小值没有正确工作的问题。

2.0.0-alpha.10

  • ⚠️

    使用 Uploaderupload prop 自定义上传过程时,参数中的回调函数 onload / onprogress / onerror 中第一个参数 file 被移除,原来提供上传结果、进度或错误信息的第二个参数成为第一个参数。

    迁移指南

    原回调方法
    function upload (file, { onload, onprogress, onerror }) {
      const xhr = new XMLHttpRequest()
      xhr.upload.onprogress = e => onprogress(file, e)
      xhr.onload = () => {
        onload(file, JSON.parse(xhr.responseText))
      }
      xhr.onerror = e => onerror(file, e)
    
      // ……实际上传操作……
    }
    
    新回调方法
    function upload (file, { onload, onprogress, onerror }) {
      const xhr = new XMLHttpRequest()
      xhr.upload.onprogress = e => onprogress(e)
      xhr.onload = () => {
        onload(JSON.parse(xhr.responseText))
      }
      xhr.onerror = e => onerror(e)
    
      // ……实际上传操作……
    }
    
  • 💡
    Uploader 使用 upload prop 自定义上传过程时,如果返回一个函数,该函数将在用户操作取消或上传组件销毁时被调用,用来中断自定义上传过程。
  • 💡
    Uploader 没有通过文件类型校验、文件大小校验和自定义校验的文件现在会以上传失败的状态出现在文件列表中。
  • 💡
    Uploader 新增 prop picker-position,支持图片上传模式下控制上传按钮始终保持在列表最前面还是最后面。
  • 💡
    Uploader 新增可供外部调用的方法 addFiles,支持通过函数直接添加并上传文件。
  • 💡
    Menu 组件新增了 icon / before / after 三个插槽。
  • 🐞
    修复了使用 tabs-extra 插槽时由于插槽位置错误可能引起报错的问题。
  • 🐞
    修正了 Menu 组件图标尺寸错误的问题。
  • 🐞
    调整了部分输入组件的样式,解决了在为组件最外层元素设置宽度后内部组件没有匹配尺寸的问题。
  • 🐞
    修正了 Table 组件在初始数据为空时(比如异步加载),滚动事件监听器没有正常初始化导致内容加载后,表头与内容横向滚动不同步的问题。

2.0.0-alpha.9

  • 🐞
    修复了仍有部分局部输出全局样式对浮层不生效的问题。😭
  • 🐞
    修正了入口文件导出没有与最新组件列表同步的问题。
  • 🐞
    修正了 Schedule 组件 tooltip 提示可能失效的问题。

2.0.0-alpha.8

  • 💡
    DatePicker 组件的 selected prop 支持可受控模式。
  • 🐞
    修复了局部输出全局样式对浮层不生效的问题。

2.0.0-alpha.7

  • ⚠️
    移除了 Button 组件的 loading 插槽。
  • 💡

    veui-theme-dls 新增了 @veui-root-element 变量,支持局部输出全局样式的功能。

    使用指南

    可以配置全局 Less 变量 @veui-root-element 为目标区域的元素名(这里必须是自定义元素),此时所有全局样式规则会自动调整到只针对该类元素内部生效,比如:

    @veui-root-element: v-app;
    

    此时输出的全局样式都会带上 v-app 前缀,如:

    v-app button,
    v-app [type="button"],
    v-app [type="reset"],
    v-app [type="submit"] {
      -webkit-appearance: button;
    }
    
    为什么要使用自定义元素?

    如果允许自定义前缀使用 ID 或类选择器、或者其它复合选择器,将会使全局样式的特异性过高,超过 VEUI 组件样式的特异性(比如 #app button > .veui-button),导致组件样式被全局 normalize 之类的样式覆盖,产生不符合预期的结果。而由于组件至少有一级类选择器,所以在这里我们只要合理使用自定义元素,就可以有效避免样式覆盖的问题。

  • 🐞
    修复了 Table 组件初始时表头和内容列有时错位的问题。
  • 🐞
    修正了 Menu 引入了错误的尖角图标的问题。

2.0.0-alpha.6

  • ⚠️
    删除了 Drawer 组件的 backdrop-closable prop,新增 outside-closable prop 来控制点击组件外区域时是否关闭。
  • ⚠️
    移除了 Sorter 组件,仅在 Table 内部使用。
  • ⚠️
    Table 组件带边框的样式修改为依赖新增 prop bordered,而非通过 ui="bordered" 指定,并且当存在单元格合并(包括表格内容合并和嵌套表头时)必须输出带边框样式。
  • 💡
    新增 Menu 组件。
  • 💡
    指令式调用 Toast 组件时,支持传入自定义的渲染函数以输出非纯文本内容。
  • 💡
    Table 组件新增列分组(输出嵌套表头)功能支持。
  • 💡
    Table 组件新增固定列功能支持。
  • 💡
    Dialog 组件在 modal 模式下,新增滚动锁定功能支持。
  • 🐞
    修复了 Toast 组件的进入动画。
  • 🐞
    修复了 Input 组件在非 WebKit 浏览器下报错的问题。
  • 🐞
    修复了 SearchBox 组件的 role 属性输出。

2.0.0-alpha.5

  • 🐞
    修复了 Drawer 组件没有正确支持 overlay-class prop 的问题。
  • 🐞
    修正了 DatePicker 组件没有根据 week-start prop 处理快捷选项的问题。

2.0.0-alpha.4

  • ⚠️
    Uploader 组件调整为适配 DLS 实现,新增了插槽 upload 支持图片模式下自定义上传区域,移除 type-invald / size-invalid / count-overflow / extra-operation 这四个插槽,移除 prop progress,移除 ui 选项 horizontal
  • ⚠️
    用来接入多个版本 VEUI 的 babel-plugin-veuiveui-loadername 选项重命名为 alias
  • ⚠️
    Tree 组件的 item-click prop 被移除,现在点击内容区域的行为修改为:selectable 时切换选中,否则 checkable 时切换勾选,否则在有子节点时切换展开收起。
  • 💡

    Uploader 组件新增了 validator prop,支持自定义的异步校验功能。

  • 💡

    Uploader 组件新增了 controls prop,支持在图片模式下自定义可对文件进行的操作。

  • 💡

    veui-loaderbabel-plugin-veuiname 选项改名为 alias

  • 💡

    TooltipPopover 新增了 autofocus prop,允许在 interactive 不为 false 时在打开时自动聚焦内容。

  • 💡

    InputTextarea 新增了 maxlength prop,用来指定最长的字符数限制。

  • 💡

    InputTextarea 新增了 strict prop,用来指定是否允许在字符数到达 maxlength 限制时继续输入。

  • 💡

    新增 babel-plugin-veui/rewrite,可以将指定路径下对 veui 的依赖根据 alias 参数重写。

    例子

    对于一个典型的同时引入两个版本 VEUI 的项目,babel.config.js 内容建议如下:

    module.exports = {
      presets: ["@vue/app"],
      plugins: ["veui", ["veui", { name: "veui-next" }, "veui-next"], "lodash"],
      overrides: [
        {
          test: [/veui-theme-dls/],
          plugins: [["babel-plugin-veui/lib/rewrite", { alias: "veui-next" }]]
        }
      ]
    };
    
  • 🐞
    修正了 veui-loader 读取到非用户依赖版本的 veui 版本的问题。
  • 🐞
    修正了 veui-loader 会对用户依赖版本 veui 生效而  非仅仅对指定别名的包生效的问题。
  • 🐞
    修复 DatePicker 组件 shortcut 样式不正确的问题。
  • 🐞
    修复 Uploader 组件在有文件未上传完成的情况下,上传新文件会重复上传未上传完的文件的问题。
  • 🐞
    修复 Option 聚焦时可能错误引发滚动的问题。
  • 🐞
    修复了部分样式未按类名前缀变量进行输出的问题。
  • 🐞
    修复了对 date-fns 模块引用了错误路径的问题。

2.0.0-alpha.3

  • ⚠️
    DatePicker 组件不再支持 shortcuts-positionpanel prop,并删除对应的全局配置项 datepicker.shortcutsPosition
  • 💡
    veui-loaderbabel-plugin-veui 增加了自定义 veui 别名的功能,以允许项目同时使用多个版本的 VEUI,帮助顺利从 veui@1veui@2 进行切换。详细用法见 #596。
  • 💡
    新增 InputGroup 组件。
  • 💡
    Label 组件增加了 for prop,用于显式指定被激活的输入组件。
  • 💡
    Input / NumberInput / TimePicker / Textarea / Autocomplete 组件增加 invalid prop,使其处于错误状态。
  • 💡
    Autocomplete / Dropdown / Input / SearchBox / TimePicker 组件新增 clear 事件。(#591)
  • 💡
    Dialog / Drawer / Embedded / PromptBox 新增 loading prop,默认使确认按钮处于加载状态。
  • 💡
    PromptBox 增加 invalid prop,会使内部的输入框处于错误状态。
  • 💡
    现在 confirm / prompt 的 manager 与插件中,ok / cancel 选项函数返回 false 或返回的 Promise resolve false 时,将阻止对话框关闭。
  • 💡
    现在 prompt 的 manager 与插件中,ok / cancel 选项函数会接收到输入框当前值作为第一个参数。(#593)
  • 💡
    DatePicker / Calendar 组件样式更新到 DLS 版本。
  • 💡
    DatePicker 组件新增全局配置项 datepicker.monthRangePlaceholderdatepicker.yearRangePlaceholder
  • 💡
    Calendar 组件 viewchange 事件参数中新增该事件触发面板的 index 数据。
  • 💡
    DatePicker / Calendar 组件支持月份/年份的范围选择。
  • 💡
    Calendar 组件支持月份/年份的多选。
  • 💡
    可搜索的 Select 组件现在在输入过程中会对外触发 input 事件并携带输入内容。
  • 💡
    Select 新增作用域插槽 tag,用来自定义多选情况下已选项的内容。
  • 🐞
    修复 Slider 组件分段模式下两端缺少 marker 的问题。
  • 🐞
    修复 Transfer 组件中搜索功能没有正确随组件设置禁用的问题。
  • 🐞
    修复 Columnhead / foot 插槽数据更新失效的问题。
  • 🐞
    优化了 Select / Dropdown 组件的键盘操作。
  • 🐞
    优化了 NumberInput 组件的显示。
  • 🐞
    修复 Textareaplaceholder 没有生效的问题。
  • 🐞
    修复 SearchBox 在未触发下拉提示时按下 enter 也不触发 submit 事件的问题。

2.0.0-alpha.2

  • ⚠️
    Searchbox 组件更名为 SearchBox。同时组件内部所有的 class 中的 searchbox 亦被更名为 search-box。如果在样式代码中进行过定制,请进行全局替换。
  • 💡
    Switch 组件增加了 on-labeloff-label prop 以及 content 作用域插槽,支持在内部输出提示文字或其它内容。
  • 💡
    重写了 overlay manager,修复了输出的 z-index 无限制上涨的问题。
  • 💡
    新增了全局配置项 managers.overlay,可以注入其它实例接管浮层管理逻辑。
  • 💡
    调整了耦合组件的关联机制,现在 ColumnTab 等组件可以被封装在其它组件内,填充入 TableTabs 等的插槽中使用。
  • 💡
    Dialog 新增了 footless prop,用于不输出默认的底部操作栏。
  • 🐞
    修复 Tabs 组件有时为激活 tab 的操作设置了错误参数的问题。
  • 🐞
    修复 Schedule 组件合并选择范围时可能出现的问题。
  • 🐞
    修正了大量样式细节。

2.0.0-alpha.1

  • 💡
    补充了 veui-theme-dls-icons 中缺失的图标。

2.0.0-alpha.0

  • ⚠️
    用 Popper.js 替代了 Tether。Overlay 组件的 options prop(以及多个组件的 overlay-options prop)现在都对应于 Popper.js 的 options 参数Overlayposition prop 在之前的版本就已经兼容了 Popper.js 的语法,所以如果之前就以 Popper.js 风格进行描述,则无需调整。见 #574
  • ⚠️
    Input 组件的 before / after slot 重命名为 prepend / append,新的 before / after 位置在输入框外部。并且新增了 before-label / after-label 两个 slot。见 #502
  • ⚠️
    NumberInput 组件的 before / after slot 重命名为 prepend / append。见 #502
  • ⚠️
    移除 Alert 组件的 close-label 属性。
  • ⚠️
    Pagination 组件根据新的设计不再支持总数显示。
  • ⚠️
    移除已废弃的 Pager 组件,请使用 Pagination 组件代替。
  • ⚠️
    移除 Progress 组件已废弃的 precision prop,请使用 decimal-place prop 代替。
  • ⚠️
    移除 Progress 组件已废弃的 state prop,请使用 status prop 代替。
  • ⚠️
    移除 Progress 组件已废弃的 auto-succeed prop,请使用 autosucceed prop 代替。
  • ⚠️
    移除 Schedule 组件已废弃的 shortcuts-displayexpand / collapse,请使用 inline / popup 代替。
  • ⚠️
    移除 OptionGroup 组件已废弃的 positionpopout,请使用 popup 代替。
  • ⚠️
    移除 Tooltip 组件已废弃的 custom prop,请使用 trigger: 'custom' 代替。
  • ⚠️
    移除 Tree 组件已废弃的 expands prop,请使用 expanded 代替。
  • ⚠️
    移除 Uploader 组件已废弃的 auto-upload prop,请使用 autoupload prop 代替。
  • ⚠️
    Uploader 组件响应数据中的 statusreason 字段被移除,请使用 successmessage 代替。见 1.0.0-alpha.19 的迁移指南。
  • 💡
    支持在编译时指定组件 class 前缀。具体自定义方式见 #573
  • 💡
    新增了 veui-theme-dls 主题并将大部分组件调整为适配 DLS 实现。
  • 💡
    新增了 Loading 组件。
  • 💡
    新增了 Collapse 组件。
  • 💡
    新增了 Accordion 组件。
  • 💡
    新增了 Badge 组件。
  • 💡
    新增了 TimePicker 组件。
  • 💡
    新增了 Drawer 组件。
  • 💡
    新增了 Embedded 组件。
  • 💡
    新增了 Anchor 组件。
  • 💡
    Overlay / Dialog 组件新增了 inline prop,允许内联在内容中进行渲染。
  • 💡
    Overlay 组件新增了 match-width prop,允许对于相对指定元素定位时,以目标元素宽度为浮层最小宽度。
  • 💡
    Progress 组件新增了 append slot。
  • 💡
    Alert 组件新增了 titleextra slot。
  • 🐞
    修复 Select 组件中 Option 没有传入 label 时对应 slot 不渲染的问题。
  • 🐞
    修复 Select 内联写法时部分 slot 不生效的问题。
  • 🐞
    修复 Select 内联写法时 trigger prop 不生效的问题。

1.0.0-alpha.32

  • ⚠️
    Select / Input / Checkbox / Radio / Switch 组件现在不会在外部数据发生变化后触发更新时抛出 inputchange 事件。当需要始终同步数据时,则需使用 v-model 进行绑定。
  • 💡
    outside 指令判断元素位置时增加了 Portal 逻辑的支持,如果 Portal 入口在指定范围内,则被其移动的元素也将视为在指定范围内。
  • 🐞
    修复 Uploader 组件在 iframe 模式下,提交过程中被销毁时没有正确移除 <iframe><form> 的情况。

1.0.0-alpha.31

  • ⚠️
    修正 Uploader 组件中 file / uploading / failure 三个作用域插槽参数。由 { file: { name, src, status, index } } 修正为 { name, src, status, index }
  • 💡
    drag 指令现在仅在鼠标左键按下时才触发拖动。
  • 💡
    drag 指令的 dragend 回调参数中新增 cancel 方法,可用来撤消最近一次拖动(恢复到 dragstart 之前的位置)。

1.0.0-alpha.30

  • 💡
    ButtonGroup 的点击事件增加最后一个参数为原生事件对象。
  • 💡
    增加 Autocomplete 组件。
  • 💡
    增加 Drawer 组件(缺样式)。
  • 💡
    增加 Tag 组件(缺样式)。
  • 🐞
    Dropdown 组件现在可以正确支持不同尺寸。
  • 🐞
    修复 Input 组件占位符有时没有正确清除的问题。
  • 🐞
    修复 NumberInput 有时无法正确输入的问题。
  • 🐞
    修复 Searchbox 组件在 readonly 状态下会触发提示的问题。

1.0.0-alpha.29

  • 🐞
    修正 RegionPicker 组件浮层不能正常关闭的问题。
  • 🐞
    修正 Tooltip 组件的 v-outside 参数类型问题导致有时无非正常关闭。
  • 🐞
    修正 Schedule 组件没有正确处理 readonlydisableddisabled-hour prop 的问题。
  • 🐞
    修正 Schedule 组件的 label 插槽 from 参数错误的问题。

1.0.0-alpha.28

  • 🐞
    修正 npm 包没有正确发布的问题。

1.0.0-alpha.27

  • 🐞
    修正 babel-plugin-veui 可能阻断后续插件执行的问题。(#469)

1.0.0-alpha.26

  • 🐞
    修正 Tree 组件 item-label slot 没有正常渲染的问题。
  • 🐞
    修正 longpress 指令 repeat 参数的默认值为 false
  • 🐞
    修正 resize 指令没有正确处理 leading 参数的问题。
  • 🐞
    修正 outside 指令没有准确判断参数是否变更的问题。
  • 🐞
    修正 Breadcrumb 组件初始值为 null 时报错的问题。

1.0.0-alpha.25

  • ⚠️
    Checkboxindeterminate prop 不再支持 .sync,始终由外部控制。
  • ⚠️
    Switchchange 事件将在数据更新完毕后触发。
  • 💡
    支持多个 Checkboxv-model 绑定到同一个数组时自动组成复选框组。
  • 💡
    Textarea 新增 select-on-focus prop。
  • 🐞

    修复了部分原生 <button> 未设置 type="button" 的问题。

  • 🐞

    修正了 CheckboxRadioSwitch 组件中原生 <input> 状态没有正确同步的问题,以触发 CSS 中正确的伪类样式。

  • 🐞

    修正了带下拉浮层的组件的 ARIA 标注,使浮层拥有正确的从属关系。

  • 🐞

    修正了组合组件时可能发生未正确继承 ui prop 的问题。

  • 🐞

    修复了 Schedule 组件在拖动选取多日时段时,selected 中可能共享同一数组实例的问题。

  • 🐞

    优化了 InputNumberInputTextarea 的属性透传机制,现在未被识别为 prop 的属性都会正确输出到原生 <input><textarea> 元素上。

  • 🐞

    优化了原生事件透传机制,原生元素触发的事件将可以被外层组件直接透传。涉及的组件为 ButtonCheckboxRadioSwitchInputNumberInputTextarea

    相关事件包括:

    auxclickclickcontextmenudblclickmousedownmouseentermouseleavemousemovemouseovermouseoutmouseupselectwheelkeydownkeypresskeyupfocusblurfocusinfocusout

1.0.0-alpha.24

  • 💡
    CalendarDatePicker 组件增加 prop type,以支持月份/年份选择。
  • 💡
    Transfer 组件实现了 focus 方法。
  • 💡
    优化了 Tree 的键盘导航及 ARIA 标注。
  • 💡
    优化了 Chrome 下自动填充时的样式。
  • 🐞
    修正 Transfer 组件已选项不能从外部正确更新的问题。
  • 🐞
    修正 Tablecolspan 在动态显示列时计算不正确的问题。
  • 🐞
    修正 Uploader 提示样式可能被截断的问题。

1.0.0-alpha.23

  • ⚠️
    Tree 组件的 expands prop 更名为 expandedexpands 被废弃,将在 1.0.0 移除。
  • ⚠️
    RadioCheckboxchange 事件将在数据更新完毕后触发。
  • 💡
    Overlay 组件增加 prop position
  • 💡
    FilterPanel 组件增加 prop title
  • 💡
    Tree 组件的 itemitem-label slot 作用域参数现在包含每个节点数据项的所有字段。
  • 💡
    Transfer 组件的 candidate-itemselected-itemcandidate-item-labelselected-item-label slot 作用域参数现在包含每个节点数据项的所有字段。
  • 🐞
    修正 Overlay 组件 prop 类型导致 SSR 报错的问题。
  • 🐞
    修正 Searchbox 组件 suggestions prop 类型为 Array<string> 时,replace-on-select 设置无效的问题。
  • 🐞
    修正 veui-theme-one-icons 中图标的 fill & stroke
  • 🐞
    修正 Transter 组件的 selected-item-label 插槽在 selected-show-mode'flat' 时无效的问题。
  • 🐞
    修正 Transfer 组件更新 datasource 时候选项没有正确更新的问题。
  • 🐞
    修正 Schedule 时段合并逻辑在从 0:00 开始时失效的问题。

1.0.0-alpha.22

  • ⚠️
    Progress 组件的 auto-succeed prop 更名为 autosucceedauto-succeed 被废弃,将在 1.0.0 移除。
  • 💡
    Pagination 组件支持不传入 to prop,完全使用事件进行交互。
  • 💡
    Dialog 组件的所有插槽传入作用域参数 close 函数。
  • 🐞
    修复了 Buttontargetprops 的同步问题。
  • 🐞
    修正了 PromptBox 回车确认时事件重复触发的问题。
  • 🐞
    修正了 CheckboxGroupCheckButtonGroup 组件初始值为 null 时报错的问题。
  • 🐞
    修正了 CalendarSchedule 组件范围选择初始值为 null 时计算错误的问题。
  • 🐞
    修正了 AlerBoxTabs 组件存在硬编码文本的问题。
  • 🐞
    修正了 SelectOptionGroup 在使用内联组件时,作用域插槽没有生效的问题。
  • 🐞
    修正了 Textarea 在显示行号且不自动扩展时,行号滚动不同步的问题。
  • 🐞
    修正了 Tooltip 组件的在 target / trigger 改变时重新绑定事件的逻辑。

1.0.0-alpha.21

  • 🐞
    修复了 NumberInputvaluelocalValue 的同步问题。
  • 🐞
    修正了 Overlay 组件 target prop 类型声明在 SSR 下报错的问题。
  • 🐞
    修正了内部滚动模式的 Table 组件在系统有滚动条时的表头宽度。
  • 🐞
    修正了用 row prop 指定 Textarea 组件高度时在 IE 下无视行高的问题。
  • 🐞
    修正了 Alert 组件图标在 IE 下没有垂直居中的问题。
  • 🐞
    修正了 Slider 组件在有多按钮时在 IE 下不能正常工作的问题。
  • 🐞
    修正了 TreeDatePicker 有时在鼠标操作时误显示聚焦样式的问题。
  • 🐞
    修复了 Tabs 中使用 offsetWidth 的精度问题导致 activeindex 切换失效的问题。

1.0.0-alpha.20

  • 💡
    Searchbox 新增了 suggestions-beforesuggestions-after 两个插槽。
  • 💡
    Searchbox 提示层只在选择选项后关闭,如果点击自定义插槽而非默认的选择选项时,提示层不再自动关闭。
  • 💡
    在控制台警告中增加了组件层级信息。
  • 💡
    Tree / FilterPanel / Transfer 组件的增加了键盘交互。
  • 💡
    为所有支持聚焦或激活操作的组件添加了 focusactivate 方法。
  • 💡
    对于使用路由模式的 TabsTab 组件,新增函数 prop matches(current, to) 来允许指定自定义的激活状态判断,不再需要手动在 Tabs 组件中控制 indexTab 组件的 matches 逻辑优先于上层 Tabs 组件中的 matches
  • 💡
    增加了全局配置项 tabs.matches 来允许全局自定义 Tab 组件 matches prop 的默认值。
  • 💡
    使用了更为显著的聚焦样式。
  • 🐞
    修复了 Overlay 组件的 target prop 类型。
  • 🐞
    修正了主模块没有导出 OptionGroup 组件的问题。
  • 🐞
    提前判断是否需要修正复选框 indeterminate 兼容性,而非在用到的组件 mounted 以后才判断,避免模拟的点击触发了已经定义的事件监听器。
  • 🐞
    去除了多余的类型判断,修复 min / max 规则失效的问题。

1.0.0-alpha.19

  • ⚠️

    Uploader 组件上传请求响应经过 convert-response 函数转换后,需要提供给组件执行后续操作的数据结构有所调整。目前仍然兼容老版本格式,但将在 1.0.0 移除。

    迁移指南

    原数据格式

    成功:

    { "status": "success", "name": "...", "src": "..." }
    

    失败:

    { "status": "failure", "reason": "..." }
    
    新数据格式

    成功:

    { "success": true, "name": "...", "src": "..." }
    

    失败:

    { "success": false, "message": "..." }
    
  • ⚠️

    移除了 managers/configmergemergeDefaults 方法,现在对于 Object 类型的配置项需要提供完整值。

  • ⚠️

    Breadcrumb 组件的 default 作用域插槽重命名为 item,因为 Vue 实际的 fallback 逻辑,所以避免使用同名的 slot 和 scoped slot。

  • 💡
    新增了 I18N 支持,外置了所有文案,并添加了组件级别对应的 zh-Hansen-US locale。
  • 💡
    veui-loader 新增支持通过 locale 选项配置要自动引入的语言包。
  • 💡
    veui-loader 新增支持通过 global 选项配置全局引入的模块。
  • 💡
    managers/config 模块的配置现在为响应式数据,支持在组件渲染后进行全局修改。
  • 💡
    Field 组件对应的数据字段名现在默认优先取 name prop,且可以被 field prop 覆盖。
  • 💡
    rule 模板占位符由 ${...} 变更为 {...},以方便在模板字符串中进行书写。老语法仍然保持兼容。
  • 💡
    CalendarDatePickerSchedule 的范围合并逻辑现在默认为“智能”模式,当用户从已选项开始选择范围时,将从整体已选范围中去除当前选区;当从未选项开始选择时,则将当前选区并入整体。
  • 💡
    Table 组件新增 prop scroll,用来限定内容滚动区域的最大高度,设置时会使得表格的头/脚固定。
  • 💡
    Table 组件新增 prop expandableexpanded,用来支持行展开,且新增作用域插槽 sub-row
  • 💡
    Column 组件新增作用域插槽 sub-row
  • 💡
    Link 组件新增 prop reltarget,当 target_blank 时自动为 rel 增加 noopener 值,以增强安全性。
  • 💡
    将所有图标替换为了新版「标局」图标并拆分为新的 veui-theme-one-icons 包。原 veui-theme-one/icons 下的图标依然保留。
  • 🐞
    修正了 GridContainer 的左右边距计算。
  • 🐞
    修正了 Link 组件在默认模式下 disabled 未起效的问题。
  • 🐞
    修正了 Uploader 组件 remove 事件的回调参数 file 提供了错误的文件的问题。
  • 🐞
    修正了未注册的 ui 值不能直接输出的问题(#378)。

1.0.0-alpha.18

  • ⚠️
    对 Vue-Awesome 的依赖升级到 3.1.2。如果之前有在项目中直接使用 vue-awesome@2 的,需要升级到最新版,否则无法混用 VEUI 与 VueAwesome 的图标。
  • ⚠️
    Tooltip 组件的 custom prop 被废弃,将在 1.0.0 移除。替代方式为:将 trigger prop 指定为 custom 来使用自定义逻辑控制打开及关闭。
  • ⚠️
    Pagination 组件内部所有的 class 中的 pager 被更名为 pagination。如果在样式代码中进行过定制,请进行全局替换。
  • ⚠️
    Uploader 组件的 progress prop 的 'number' 取值被替换为 'percent''detail',分别表示显示百分比及显示进度详情。进度详情将以 `${loaded}KB/${total}KB` 的形式输出。
  • ⚠️
    Uploader 组件的 prop convert-response 函数必须返回转换后的数据对象。
  • 💡
    增加主题包为组件部件指定 ui 的功能,同时组件现在将自动继承父组件中可继承的 ui 字段,并更新了 veui-theme-one 中所有相应的部分。
  • 💡
    Breadcrumb 组件的 scoped slot default 新增参数 index
  • 💡
    Button 组件增加 ui 选项 dark
  • 💡
    rulevalidate 方法现在可以传入额外的上下文的数据,比如在 Field 验证时传入整个 Formdata
  • 🐞
    修正 GridContainer 没有正确发布的问题。
  • 🐞
    修复 Slider 组件在有 step 时的选择逻辑,由向下选取点改为就近取点,且修正了 min 值非 0 时的逻辑。
  • 🐞
    修复 Uploader 组件无法正确获取全局配置的 uploader.convertResponse 函数的问题。

1.0.0-alpha.17

  • ⚠️
    Dialog 组件预设 uitop 更名为 high
  • ⚠️
    Button 组件再 loading 状态下将保留 slot 内容,不再强行设置为 '加载中……'
  • ⚠️
    删除了 $confirm$prompt 插件本来就无效的带状态唤起接口。
  • 💡
    增加 longpress 指令。
  • 💡
    Dropdown 组件增加了 trigger prop,来指定何时展开下拉框。
  • 💡
    Dropdown 组件增加了 split prop,来允许拆分指令按钮与下拉切换按钮。
  • 💡
    Button 组件增加了 mouseenter / mouseleave 事件。
  • 💡
    NumberInput 组件支持长按调整值。
  • 💡
    增加了 GridContainer / GridRow / GridColumn 组件。
  • 💡
    Progress 组件增加了预设 uifluid,自适应容器宽度。
  • 💡
    Dialog 组件增加了预设 uismall / large / auto,用于指定预设宽度。
  • 💡
    Overlay / Dialog / AlertBox / ConfirmBox / PromptBox 组件增加了 afterclose 事件。
  • 💡
    调整了 alert / confirm / prompt / toast 插件的接口,现在 $alert / $confirm / $prompt / $toast 均可直接作为函数调用。
  • 🐞
    修复 Tabs 组件移除标签时可能产生的问题。
  • 🐞
    修正 ConfirmBox 没有正确触发事件的问题。

1.0.0-alpha.16

  • 💡
    增加了 babel-preset-veui,简化了引入 VEUI 一起进行转译所需的步骤。
  • 💡
    引入 date-fns 替换了对 moment 的依赖。
  • 🐞
    修复了 DatePicker 组件 panel prop 默认值错误的问题。
  • 🐞
    修正 Alert 组件样式。
  • 🐞
    修正 Breadcrumb 组件样式。

1.0.0-alpha.15

  • ⚠️

    因为 less@2 依赖的包存在安全漏洞,故此次升级将对 less 的依赖升级到了 ^3.8.0,对 less-plugin-est 的依赖升级到了 ^3.0.0

    迁移指南

    1. 更新 lessless-plugin-est 的版本;
    2. 如果使用 vue-cliwebpack 模板初始化项目,请按如下方式修改 build/utils.js 文件:
    -    less: generateLoaders('less'),
    +    less: generateLoaders('less', { javascriptEnabled: true }),
    
  • ⚠️

    Dialog 组件现在默认会在点击默认的按钮及按下 esc 键时关闭并通过 .sync 修饰符同步外部数据。并且新增 before-close 函数 prop 来处理需要阻止对话框关闭的情况。增加 default / foot slot 的 slot 参数 close,用来在重写组件 slot 时调用关闭逻辑。

    迁移指南

    对于重写 foot slot 处理关闭逻辑的使用方式,不会受新逻辑影响。

    对于监听 ok / cancel 事件并直接关闭对话框时,亦不受此改动影响。当需要阻止对话框关闭时,需要使用新增的 before-close 函数 prop。

    before-close prop 对应的函数类型为 function(type: string): boolean=|Promise<boolean=>type 将会是 Dialog 组件关闭操作的类型,默认情况下会有 okcancel。返回值可以是一个 boolean,也可以是一个 resolve booleanPromise,用来处理可能需要异步决定对话框关闭状态的情况。返回值或 resolve 值非 false 时才会关闭对话框。例如,如果我们要异步处理 ok,而对 cancel 直接关闭,可以按如下方式处理:

    <veui-dialog :open.sync="dialogOpen" :before-close="submit"
      >...</veui-dialog
    >
    
    methods: {
      submit (type) {
        if (type === 'ok') {
          return axios.post('/item/create', {/* ... */})
            .then(({ id, error }) => {
              if (error) {
                this.showError(error)
                return false // resolve `false` 将阻止对话框关闭
              }
            })
        }
        // resolve 但不返回 `false` 时会关闭对话框
      },
      // ...
    }
    

    对于需要重写 slot(例如添加底部按钮等)的情况,可以使用新增的 slot 参数 close,类型为 function(type: string): void,使用者只需要在合适的时机自行调用 close 函数即可,type 默认支持 ok / cancel 并会透传到 before-close 的流程中。例如:

    <veui-dialog :open.sync="dialogOpen" :before-close="submit">
      ...
      <template slot="foot" slot-scope="{ close }"
        ><button @click="close">OK</button></template
      >
    </veui-dialog>
    
  • ⚠️

    Pagination 组件的 redirect 事件回调参数从 ({ page, event }) 调整为 (page, event)

  • ⚠️

    调整 FilterPanel 组件和 Tree 组件的对外接口参数名,统一将 options / option 更名为 items / item

  • ⚠️

    调整 resize 指令的默认每次都触发回调,增加 throttle / debounce / leading 三个 modifier。

  • ⚠️

    通过 prompt manager 以指令式调用输入弹框功能时,现在返回的 Promise 在确认提交与取消时 resolve 的值分别是字符串和 null,与原生全局 prompt 方法一致(原来是 { isOk: true, value }false)。

  • ⚠️

    Button 组件加载中的文本修改为默认 slot 的内容。

  • ⚠️

    调整 rule 出错信息变量模板匹配语法从 %{ruleValue} 修为 ${ruleValue},旧语法将在 1.0.0 移除。

  • ⚠️

    Alert 组件新增 closable prop,默认为 false,显式指定后才会显示关闭按钮/文本,而非原来的始终显示关闭按钮/文本。

  • ⚠️

    Alert 组件的 close-text prop 更名为 close-labelclose-text 将在 1.0.0 移除。

  • 💡
    Uploader 组件增加自定义上传模式。request-mode 新增可选值 custom,设置为该值时,支持通过新增的 prop upload 自定义上传函数。
  • 💡
    Uploader 组件增加切换动画。
  • 💡
    Steps 组件的 click 事件回调参数增加原生事件对象 event,现为 (index, event)
  • 💡
    Overlay 组件浮层根元素上现在增加了对 overlay.overlayClass 全局配置项对应类名的输出。
  • 💡
    Switch 组件现在会透传与 Checkbox 组件一致的原生 DOM 事件。
  • 💡
    Toast 组件增加 prop open,支持 .sync
  • 💡
    Toast 组件增加 slot default
  • 💡
    Toast 组件增加全局配置 toast.duration
  • 🐞
    修复了 Uploader 组件 iframe 模式中上传失败后重试时没有上传文件的问题。
  • 🐞
    修复了 Uploader 组件初始化后丢失 namesrc 以外的自定义属性丢失的问题。
  • 🐞
    修复了 Overlay 组件中寻找最近父级浮层时,可能跨过太多层级的问题。
  • 🐞
    修复了 FilterPanel 组件在不展示搜索框的时候,内容区域高度不正确的问题。
  • 🐞
    修复了 Field 组件内部输入组件交互时数据同步导致校验不正确的问题。
  • 🐞
    修复了 Tabs 组件使用 label slot 时的事件绑定问题。
  • 🐞
    修复了 Input 组件父级设置值为 null 后,仅格式化本地值为 '',未同步 '' 至父级的问题。
  • 🐞
    去除了 Steps 组件的多余外边距。
  • 🐞
    去除了 Progress 组件多余的内边距。
  • 🐞
    修正了 Progress 组件的 auto-succeed prop 的逻辑。
  • 🐞
    修正了 NumberInput 组件的 min / max prop 有时失效的问题。
  • 🐞
    修正了 Alert 组件多消息导航和关闭按钮不会同时显示的问题。
  • 🐞
    修正了 alert / confirm / prompt plugin 不能正常工作的问题。
  • 🐞
    修复了 Table 组件 foot slot 的渲染。

1.0.0-alpha.14

  • ⚠️
    Progress 组件的 state prop 更名为 statusstate 将在 1.0.0 移除。
  • ⚠️
    Schedule 组件的 shortcuts-display prop 值 expand / collapse 分别更名为 inline / popup。旧的值将在 1.0.0 移除。
  • ⚠️
    Schedule 组件的 header slot 更名为 header-content,新 header slot 现在包括顶部内容的整个容器。
  • 💡
    RegionPicker 组件的 datasource prop 中的 id 字段重命名为 value,但 id 依然保留,优先使用 value
  • 💡
    优化了 outside 指令解析数字值的逻辑。
  • 💡
    Pagination 组件内的 Select 组件新增了 overlay-class 定义,方便自定义样式。
  • 💡
    优化了 SwitchStepsScheduleTableFieldset 等组件的可访问性,实现了键盘交互。
  • 🐞
    修复了更多在计算浮层层级过程中有时会导致死循环的场景。
  • 🐞
    去除了 dropdown mixin 中多余的默认 overlay-options 约束条件,修正某些场景下的浮层展开的默认方向。
  • 🐞
    修复了 Input 组件初始值为 null 时使用输入法会失效的问题。
  • 🐞
    现在 Searchbox 组件在 suggestions 变化时会自动更新浮层位置。
  • 🐞
    修复了点击 Label 组件激活同 Field 下的输入组件时,没有考虑组件禁用/只读状态的问题。

1.0.0-alpha.13

  • ⚠️
    CheckboxSwitch 组件新增 prop model,对应 v-modelchecked prop 不再对应 v-model,而是支持 .sync
  • ⚠️
    CheckboxRadioSwitch 组件新增 input 事件用于 v-modelchange 事件参数抛出当前的 checked 值,仅在用户切换时触发。
  • ⚠️
    Calendar 组件的 selectstart 事件抛出的参数格式从 [Date] 修改为 Date,表示选择的起始日期,去除多余的数组。
  • ⚠️
    移除 DatePicker 组件的 placeholderBeginplaceholderEnd prop 及相应的 slot placeholder-beginplaceholder-end,以及全局配置 datepicker.placeholderBegindatepicker.placeholderEnd。取而代之的是,增加配置项 datepicker.rangePlaceholder,并总是响应外部设置的 placeholder prop。默认状态下,会根据 range prop 来显示 datepicker.placeholderdatepicker.rangePlaceholder 的值。
  • ⚠️
    DatePicker 组件的 date scoped slot 现在会透传给内部的 Calendar 的同名 scoped slot,不再表示已选择日期区域。原来已选择位置的 scoped slot 重命名为 selected,为范围选择时;类型为 Datedate 字段废弃,取而代之的是三个类型为 number 的字段:yearmonth0 表示一月)、date;增加参数字段 position,起止日期分别对应 fromto
  • ⚠️
    Carousel 组件的轮播项内容现在完全在 scoped slot item 内部,不再在外部添加行内图片背景样式,方便自定义非图片类型的轮播项。
  • 💡
    veui-loader 支持 webpack 4,resolve 路径逻辑调整为异步。
  • 💡
    RegionPicker 添加了键盘导航和 WAI-ARIA 支持。
  • 💡
    BreadcrumbItemLink 组件的 to prop 支持使用 Object 格式(以传递具名路由对象)。
  • 💡
    DatePicker 组件增加 today prop,和 Calendar 对应 prop 一致。
  • 💡
    DatePicker 组件的 format prop 现在可以传入函数,签名为 function(Date): string
  • 💡
    DatePicker 组件的 shortcuts 配置中,to 字段新增默认值 0
  • 💡
    Input 组件新增 WebKit 自动填充状态的判断,优化样式。
  • 💡
    Tabs 新增 ui 值 block,并带动画效果。
  • 💡
    Tab 组件新增 status prop。
  • 💡
    Tab 组件在路由模式下会自动渲染 <router-view>
  • 💡
    [*] Tab 组件的 prop to 现在可以使用相对路径。
  • 💡
    resize 指令底层升级,切换到 resize-detecor,并增加 debounce 优化。
  • 💡
    RadioGroupCheckboxGroupRadioButtonGroupCheckButtonGroup 组件的默认 scoped slot 参数增加 index 表示选项序号。
  • 💡
    numeric 校验规则现在禁止多余的 0 开头的字符串值。
  • 💡
    Select 组件的 scoped slot label 现在作用域绑定到完整的已选中的 options 项,而非 { label }
  • 🐞
    修复了上一版本中引入的浮层 autofocus 失效的问题。
  • 🐞
    修复了上一版本中引入的在计算浮层层级过程中有时会导致死循环的问题。
  • 🐞
    修复了 Textarea 组件初始 valuenull 时的问题。
  • 🐞
    修复了 Input 组件在 SSR 时报错的问题。
  • 🐞
    input 类型组件的错误状态通过组件数据进行传递,而不仅仅依赖于外层 Fieldclass
  • 🐞
    修复了 Tab 使用路由模式时设置 name prop 会出错的问题。
  • 🐞
    修复了 Tableupdate:selected 事件有时未正确抛出的问题。
  • 🐞
    修复了 Progress 组件 prop 校验的问题。
  • 🐞
    修复了 OptionGroup 组件未将 disabled 传递给 Option 组件的问题。

1.0.0-alpha.12

  • ⚠️

    Uploader 组件在 maxCount 的值是 1 的情况下,value 的默认类型从字符串改成对象,可以通过设置 prop compattruevalue 的类型设置为字符串兼容旧版本。compat 模式未来不会移除,但不建议使用。

    迁移指南

    Uploadermax-count1 时的 value prop 数据类型修改为对象,和多文件时的数组项相同。需要兼容原字符串数据格式时,需要设置 compat prop 为 true

    <veui-uploader compat ... />
    
  • ⚠️

    修改了 Radio 组件的 v-model 语义,现在机制和 Vue.js 对原生 <input type="radio"> 的处理保持一致。

    迁移指南

    此版本前的 Radio 组件的 v-model 对应 checked 属性,但由于之前的版本中存在多个同 nameRadio 组件时,被取消选中的单选框并不会响应数据变化,导致实际 v-model 并不完全可用。新版本在使用 v-model 的场景下修复了这个问题,并把逻辑和 Vue.js 对原生元素的处理方式进行了对齐。

    <veui-radio value="html" name="lang" v-model="lang" />
    <veui-radio value="css" name="lang" v-model="lang" />
    <veui-radio value="javascript" name="lang" v-model="lang" />
    

    通过将多个 Radio 组件的 v-model 绑定到同一个数据项,即可完成数据的双向绑定。注意,仍然建议使用 name 属性来正确表达分组。这将会影响元素的可访问性。

    同时,更建议使用 RadioGroup 组件来实现单选组,因为它会有更简单的 API 和可访问性。

  • ⚠️

    移除 Input 组件的 type prop 对 textarea 的支持。

    迁移指南

    使用 Textarea 组件进行替代:

    <veui-textarea v-model="value" ... />
    
  • ⚠️

    OptionGroupposition 属性的 popout 值重命名为了 popup(与 aria-haspopup 保持一致)。将在 1.0.0 移除对 popout 的支持。

  • ⚠️

    Progress 组件的 precision prop 重命名为和 NumberInput 一致的 decimal-placeprecision 将在 1.0.0 移除。

  • 💡

    babel-plugin-veui 支持在 import 时为组件添加前缀,方便直接使用快捷写法定义组件的 components 选项。默认支持 veui-v- 两种前缀。

    <template>
    <div>
      <veui-button>确定 <v-icon name="check"></veui-button>
    </div>
    </template>
    <script>
    import { VeuiButton, VIcon } from 'veui'
    
    export default {
      name: 'my-component',
      components: {
        VeuiButton,
        VIcon
      }
    }
    </script>
    
  • 💡

    NumberInput 新增 max / min prop,优先从直接父组件 Field 的 prop rule 中继承 max / min rule 的值。

  • 💡

    Input 新增 clearable prop,提供清除输入内容的功能;补充 placeholder prop 对 IE9 的支持。

  • 💡

    Uploader 组件的事件 successfailureremove 增加参数:当前处理文件的序号。

  • 💡

    Uploader 组件在重新上传的时候不再触发 remove 事件。

  • 💡

    增加了 SelectDropdownCarouselPaginationProgress 等组件的 WAI-ARIA 支持。

  • 🐞
    修复了 Textarea 触发事件时没有正确处理 this 的问题。
  • 🐞
    修复了 NumberInput 在只读状态下可以用键盘上下键调整值的问题。
  • 🐞
    修复了 outside 指令设置 delay 时未清除定时器的问题。
  • 🐞
    修复了浮层 z-index 未更新完毕就展现造成的闪动问题。

1.0.0-alpha.11

  • 🐞
    修复了 config/uiTypes.js 命中 npmignore 规则被过滤的问题。

1.0.0-alpha.10

  • ⚠️

    AlertBox 组件,之前只能通过 ui prop 传递类型信息( success / error / info ),现在和 Toast 保持风格统一,使用 type prop 传递类型信息。

    迁移指南

    对于非如下两种情况的用户,本次变更并不产生影响。

    1. 所有直接使用 AlertBox 的情况下,需要将如 ui="success" 修改为 type="success" 的方式进行指定。

    2. 对于主题包的作者,需要将原来针对如 [ui~="success"] 编写的样式,修改为 .veui-alert-box-success

  • ⚠️

    [预告] Input 组件的 type prop 将在下个版本去除对 textarea 的支持,请使用 Textarea 组件代替。

  • 💡
    新增了 NumberInput 组件。
  • 💡
    Input 增加了 before / after slot,提供扩展的空间。
  • 💡
    Select 增加了 filter prop,用来过滤下拉内容。
  • 💡
    OptionGroup 增加了 position prop,用来指定在弹出菜单中显示。
  • 💡
    Option 增加了 hidden prop。
  • 💡
    Overlay 增加了 locate 事件,在位置发生变化时触发(时机为 tetherreposition 事件)。
  • 💡
    Searchbox 组件增加 suggest-trigger prop,用来指定推荐列表的弹出时机;增加 suggest 事件,当需要显示推荐列表时触发。
  • 💡
    Fieldrules 中增加 priority 的配置,用来覆盖当前内置的规则优先级。
  • 💡
    icons mixin 并入 ui
  • 💡
    支持配置 ui prop 项的元数据,以支持进一步校验及根据 ui 值配置图标。
  • 💡
    Progress 组件硬编码在组件代码中的尺寸解耦到 veui-theme-one 中,现在组件可以从主题包的 JS 模块中注入预定义的样式参数。
  • 💡
    Uploader 组件的 image 模式在图片的遮罩层上增加 scoped-slot extra-operation;在上传项目前后分别增加 file-beforefile-after 两个 scoped slot。
  • 💡
    Uploader 组件增加 prop order,配置新上传文件的插入顺序。
  • 🐞
    uiTypes 定制了选项合并策略,并修正了 Select 组件在 uiTypes 中声明的 input 被 mixin 中加入的 select 覆盖的问题。
  • 🐞
    去除了 Link 组件中错误注册组件的代码。
  • 🐞
    修复了关闭非 modalDialogFocusManager 报错的问题。
  • 🐞
    修复了 FocusManagertrap 模式下会自动聚焦最后一个元素的问题。
  • 🐞
    修复了 Textarea 组件在 IE9 下的兼容性问题。
  • 🐞
    修复了 Field 组件使用 slotclass 判断遗漏的问题。
  • 🐞
    修复了 pattern / numeric 校验规则的优先级,使 pattern 置于 numeric 之后。
  • 🐞
    去除了 rule 校验失败信息中包含部分校验成功的无用信息。
  • 🐞
    去除了 Input 部分过时的 prop。

1.0.0-alpha.9

  • ⚠️

    将对 Vue 的依赖更新到 ^2.5.13。这使得使用 scoped slot 时,scope 需要改写为 slot-scope。由于 VEUI 内部已经使用 slot-scope,所以该版本无法与 vue@2.5.0 之前的版本一同使用。

    迁移指南

    请检查项目中所有用到

    <template slot="..." scope="...">...</template>
    

    的地方,统一替换为:

    <template slot="..." slot-scope="...">...</template>
    

    同时,由于 vue@2.5.3 修改了 slot 的逻辑,所以当代码中存在使用

    <template slot="..."></template>
    

    的写法来将 slot 内容置空时,现在会自动使用定义 slot 时备用内容填充而非置空,暂时的方法是使用一个零宽空格(&#8203;)来填充。

  • 💡
    TabsButtonGroupDialogCalendar 等数十个组件增加了键盘导航及 WAI-ARIA 支持。
  • 💡
    新增 Slider 组件。
  • 💡
    新增 nudge 指令。
  • 💡
    新增 OptionGroup 组件。
  • 💡
    SelectDropdown 组件支持直接组件内嵌写法。
  • 💡
    SelectDropdown 组件支持键盘导航。
  • 🐞
    对话框现在可以整体获取焦点,避免点击无焦点区域后接收不到键盘事件的问题。
  • 🐞
    修正了 PromptBox 默认样式。
  • 🐞
    修正了 RadioGroup 的聚焦样式。
  • 🐞
    修复 Textarea 组件在显示行号模式下高度设置的问题。
  • 🐞
    修复 drag 指令的问题,防止在移动后窗口大小变化后产生的位置错误。
  • 🐞
    修复了 Pagination 组件在翻页按钮禁用时点击后依然抛出事件的问题。

1.0.0-alpha.8

  • 💡
    增加了焦点管理模块。
  • 💡
    Overlay 组件增加 autofocusmodal 两个 prop,分别用来指定浮层是否需要抢占焦点、以及是否将后续焦点移动限制在浮层内。
  • 💡
    Dialog 组件增加 escapable prop,允许对话框通过按下 esc 键关闭。
  • 💡
    AlertBoxConfirmBoxPromptBox 增加了键盘交互(#216)。
  • 💡
    增加了 Input 组件的 tinymicro 尺寸样式。
  • 🐞
    修复了 Select 组件下拉菜单展开后自动将选中项滚动到可视范围时可能引起页面滚动的问题。
  • 🐞
    babel-plugin-veuiveui-loader 内不再冗余生成组件列表,组件列表信息随 veui 包发布。

1.0.0-alpha.7

  • ⚠️

    将对 wicg-focus-ring@2.x 的依赖更新为 focus-visible + classlist-polyfill,并且移入了 veui-theme-onedependencies。使用 veui-theme-one 且需兼容 IE9 的项目需要同时引入这两个模块。同时 veui-theme-one 中的 .focus-ring 也均已升级为 .focus-visible

    迁移指南

    • 在主模块中删除 `import 'wicg-focus-ring';

    • 安装上述包后,将引入语句替换为:

      import "classlist-polyfill";
      import "focus-visible";
      
  • ⚠️

    去除了 veui-theme-oneAlert 组件默认的上下 margin

  • ⚠️

    Column 组件的 scoped slot headfoot 现在变更为 slot。

  • ⚠️

    删除 veui-theme-dux

  • ⚠️

    删除 Field 组件 prop rules 默认可选表单校验规则 maxByteminByte

  • 💡
    新增 Textarea 组件。
  • 💡
    Column 组件新增 prop span,用来指定行/列方向合并单元格的逻辑。
  • 💡
    Column 组件的默认 scoped slot 传入的参数现在会将列表项的数据展开,不需要多加一层 item 进行访问(与其它类似数据源的组件一致,需注意数据源对象中不能使用 item / index 作为属性名)。
  • 💡
    Table 组件新增 prop key-field,指明用哪一个 field 作为表格数据的键。当 Tableselectable 时,可以用来指定选择列纵向合并单元格的逻辑需要参照的列,以及选择逻辑返回的值来自哪一列。
  • 💡
    优化 Column 组件注册到 Table 的逻辑,支持在模板中通过 v-forv-if 等动态配置,并且将注册过程移入 created 生命周期以支持服务端渲染。
  • 💡
    Breadcrumb 组件 routes 数据项的文本域重命名为 label,保留了 text 的用法进行兼容。
  • 💡
    Uploader 组件增加 statuschange 事件,用于表单提交的时候校验是否还有文件正在上传或上传失败。
  • 💡
    Uploader 组件增加 prop data-type,用于指明回调的内容的格式。
  • 💡
    Uploader 组件 prop name 现在有默认值 file
  • 💡
    Field 组件优化交互式校验规则显示顺序。
  • 💡
    Field prop rules 校验规则的出错消息支持传入函数。
  • 💡
    Select 组件被选中的选项现在会在浮层展开时自动滚动到可视范围。
  • 🐞
    修复 Schedule 组件状态未与 selected prop 同步的问题。
  • 🐞
    修复 Tabs 组件在仅指定 active 时会导致无法切换的问题。
  • 🐞
    修复 Tooltip 组件在 target 变化时会自动显示的问题。
  • 🐞
    Uploader 组件的 value 不再包含正在上传中或上传失败的文件,不再包含 status等内部变量。
  • 🐞
    修复 Uploader 组件 accept prop 判断后缀的错误。
  • 🐞
    修复 resize 指令在 target 元素被移动过后丢失目标 document 的问题。
  • 🐞
    修复大小比较规则的提示信息。
  • 🐞
    修复使用 Popper 风格设置浮层 position 时解析不正确的问题。

1.0.0-alpha.6

  • 🐞
    修复 RegionPicker 末层数据项禁用不生效的问题。
  • 🐞
    修复 Tabs 组件样式,解耦硬编码的图标,优化内容溢出更新视图的计算逻辑。
  • 🐞
    修复全局配置无法读取函数配置项的问题。
  • 🐞
    修复全局浮层管理模块计算 zIndex 错误的问题。

1.0.0-alpha.5

  • ⚠️
    Select 用名为 option-label 的 scoped slot 替代了原来的 option。原来的 option 现在为整个选项的内容,包括文本和图标等。
  • 💡
    新增 resize 指令。
  • 💡
    Tabs 组件中的 Tab 元素不再需要强制配置 name prop。
  • 💡
    Alert 组件显示多条消息时,增加当前消息索引/总消息数的展示。
  • 💡
    调整 Alert 组件默认 slot 范围,同时新增默认 scoped slot。
  • 💡
    RegionPicker 组件支持数据项的禁用。
  • 🐞
    修复 Tabs 组件中 Tab 元素的渲染顺序和 prop 同步问题。
  • 🐞
    修复 Searchbox 组件在按 enter 后自动触发表单提交的问题。
  • 🐞
    修复 Overlay 组件中判断组件类型错误的问题。
  • 🐞
    Calendar 组件在时间段选择过程中,如果 selected 发生变更,现在会自动清除半选状态。
  • 🐞
    修复 veui-loader 在 Windows 下生成路径错误的问题。
  • 🐞
    修复 Uploader 组件文件名没有去掉 fakepath 前缀的问题。
  • 🐞
    修复 Uploader 组件没有正确使用 name prop 的问题。

1.0.0-alpha.4

  • ⚠️

    重构了 babel-plugin-veuiveui-loader 的逻辑,以支持服务端渲染时首屏样式的抽取。

    迁移指南

    • 删除 build/vue-loader.conf.jspreLoaders 中的 veui-loader 配置;

    • .babelrc 中的 veui 插件配置删除,整个只保留字符串 'veui'

    • build/webpack.base.conf.js 中,重新配置 veui-loader

    {
      test: /\.vue$/,
      loader: 'veui-loader',
      enforce: 'pre',
      options: {
        modules: [
          {
            package: 'veui-theme-one',
            fileName: '${module}.less'
          },
          {
            package: 'veui-theme-one',
            fileName: '${module}.js',
            transform: false
          }
        ]
      },
      include: [resolve('veui'), resolve('vue-awesome')]
    }
    
  • ⚠️

    Pager 组件重命名为 Pagination。暂时保留兼容,Pager 将在 1.0.0 移除。

  • 🐞
    修正了 Carousel 组件 slot 的位置。

1.0.0-alpha.3

  • 🐞
    统一所有内部依赖版本。

1.0.0-alpha.2

  • 🐞
    修复主题包 peerDependencies 中的 veui 版本号。

1.0.0-alpha.1

  • ⚠️
    主题包 veui-theme-x 重命名为正式名称 veui-theme-one
  • 💡
    新增 Tree 组件。
  • 💡
    新增 FilterPanel 组件。
  • 💡
    新增 Transfer 组件。
  • 💡
    新增 Schedule 组件。
  • 💡
    babel-plugin-veui 增加了类似 babel-plugin-lodash 的功能,以减小打包体积。
  • 💡
    Tabs 组件支持在传入的 slot 内容中动态切换内部的 Tab 元素,增加预设的添加删除按钮。
  • 💡
    outside 指令新增 excludeSelf 参数,使判断仅对 refs 生效。
  • 💡
    outside 指令新增 mousedownmouseup 的支持。
  • 💡
    Tooltip 组件新增 interactive prop,控制浮层是否可交互。
  • 💡
    Calendar 组件新增 scoped slot date
  • 🐞
    修复 Calendar 组件在选择范围时错误切换视图的问题。
  • 🐞
    CheckboxRadio 组件现在可以在未绑定数据时进行交互。
  • 🐞
    修复 Chrome 62 起给按钮默认添加圆角的问题。

0.3.3

  • ⚠️
    Uploader 本地校验失败的 slot 名修改为 type-invalidsize-invalid
  • 💡
    config 模块支持对对象配置的 mergemergeDefaults 操作。
  • 💡
    为调用了 Overlay 组件的元素增加了指定 overlay-options 的功能。
  • 💡
    新增了 Carousel 组件。
  • 🐞
    修复 config 模块参数重载错误的问题。
  • 🐞
    修复 Uploader 禁用 input 导致上传失败的问题。
  • 🐞
    修复了 RegionPicker 浮层有时会闪动的问题。

0.3.2

  • 🐞
    修正 Calendar 单元格的文字颜色、背景色相关样式。
  • 🐞
    修复上个版本完善 outside 指令时引入的问题。

0.3.1

  • 💡
    Tooltip 增加延时隐藏的 prop hide-delay
  • 🐞
    修复不引入 ButtonGroup 时,CheckButtonGroupRadioButtonGroup 部分样式丢失的问题。

0.3.0

  • ⚠️
    规范化所有公用组件文件名、组件 name、组件 DOM 容器 class 的命名规则,所有非首位的大写字母在转换为小写后增加 - 进行分隔。修改清单见 #122
  • ⚠️
    移除了 BreadCrumb 组件的 prop routers
  • ⚠️
    Pager 组件 to 默认值修改为 ''(空字符串),以进入 Link 的无跳转逻辑。
  • ⚠️
    移除了 Pager 组件的 prop pageTotal
  • ⚠️
    Radiobox 组件重命名为 Radio
  • ⚠️
    RadioboxGroup 组件重命名为 RadioGroup
  • ⚠️
    Button 组件的 aux 风格 ui 现在是默认样式,原有的默认样式更名为 secondary
  • ⚠️
    为组件支持了 :focus-ring 的 polyfill,需要使用方自行引入。详见 #121
  • ⚠️
    优化了 Uploader 组件的部分 prop、slot 的命名。详见 #133
  • ⚠️
    Uploader 的 prop accept 现在需要按规范书写,。详见此处
  • 💡
    增加了统一 UI 样式包,暂定名 veui-theme-x
  • 💡
    将所有图标移入样式包分别管理。
  • 💡
    Uploader 的 prop maxSize 现在支持形如 '100KB' 的字符串作为值。
  • 💡
    Table 增加 select-mode prop,用于提供单选模式。
  • 💡
    增加 ButtonGroup 组件。
  • 💡
    增加 RadioButtonGroup 组件。
  • 💡
    增加 CheckButtonGroup 组件。
  • 💡
    增加 Sorter 组件。
  • 💡
    增加 Progress 组件(限 theme-x)。
  • 💡
    所有有单一浮层逻辑的组件,新增 prop overlay-class,最终渲染到 Overlay 实例的 DOM class 上,方便外部区分浮层归属。
  • 🐞
    修复 RegionPicker 浮层在特殊情况下显示上的问题。
  • 🐞
    修复 Dropdownuilink 时的样式。

0.2.4

  • ⚠️
    Table 组件的 select 事件将在 selected prop 更新后触发,select 事件在全选时增加 null 值作为当前选择项的数据,参数列表修改为和单选时一致。
  • 💡
    增加 veui-loader,确保只在 Webpack 能够 resolve 样式文件时 babel-plugin-veui 才注入样式 import 语句。
  • 💡
    改善 ButtonTable 组件的样式。
  • 💡
    Link 组件增加 fallback prop,用于指定无链接时渲染的容器标签名。
  • 💡
    Steps 添加路由支持。
  • 💡
    Select 组件选项值现在支持 ''(空字符串)或 0
  • 💡
    Select 组件添加未命名分组样式。
  • 💡
    Switch 组件增加描述及默认 slot。
  • 💡
    Searchbox 组件增加 clearable prop,suggestions scoped slot 以及 select 事件,suggestions 支持字符串数组。
  • 🐞
    修正 indeterminate 状态 Checkbox 的浏览器兼容性。
  • 🐞
    修正 RegionPicker 无法响应外部 selected 变化的问题。

0.2.3

  • 🐞
    修复 0.2.2 版本 npm 包的问题。

0.2.2

  • ⚠️
    SearchBox 重命名为 Searchbox
  • 💡
    增加 $alert$confirm$prompt 插件。
  • 💡
    增加 RegionPicker 组件。
  • 💡
    增加 Steps 组件。
  • 💡
    去除 BreadcrumbTableTabs 中对 Vue 内部函数的依赖。
  • 💡
    Overlay 组件增加 open.sync 支持。
  • 🐞
    修复 outside 指令重复添加事件绑定的问题。
  • 🐞
    修复 Calendar 组件年份选择视图前后选择不正确的问题。

0.2.1

  • 💡
    增加了 SearchBox 组件。
  • 💡
    Select 组件增加了 clearable prop,可以根据 placeholder 生成首选项以清除之前的选择。
  • 💡
    优化了 Button 中元素的对齐方式。
  • 💡
    增加了 Pager 每页显示数和默认选项的全局配置。
  • 💡
    重命名 Pagerpage-total prop 为 total,旧名称仍然兼容,未来版本可能删除。
  • 🐞
    修复 Select 组件有分组时子选项无法正常选择的问题。
  • 🐞
    修复了 Tooltip 组件在循环中绑定 target 的问题。
  • 🐞
    修复了 Table 组件 slot no-data 失效的问题。
  • 🐞
    修复了 Table 组件在选择时会修改未添加 .syncselected prop 的问题。
  • 🐞
    修复了 Pager 在没有数据时下一页按钮没有禁用的问题。

0.2.0

  • 💡
    项目转为 mono-repo 的组织方式,使用 lerna 进行管理。
  • 💡
    将样式代码独立为单独的包 veui-theme-dux
  • 💡
    使用 babel-plugin-veui 识别、改写对组件的引用,无缝引入可配置的样式文件包。
  • 💡
    增加 FormFieldFieldset 组件。
  • 💡
    根据表单逻辑修改了输入型控件 disabled / readonly 的实际生效方式,最终生效的值更改为计算属性 realDisalbed / realReadonly
  • 💡
    增加 TabsTab 组件。
  • 💡
    增加 Switch 组件。
  • 💡
    Checkbox 新增 true-valuefalse-value prop,调整相应逻辑。
  • 💡
    增加指令式调用 alert / confirm / prompt 的功能。
  • 💡
    Pager 组件新增 pageSizes prop,用来指定可选的页数。

0.1.3

  • 💡
    BreadCrumb 组件的 routers prop 重命名为 routes,后续版本会将 routers 移除。
  • 💡
    小幅重构 Table 组件代码。
  • 🐞
    修复 Icon 组件嵌套失效的问题。
  • 🐞
    修正 Table 组件样式中行高不准确的问题。