From 19ac1b34467114e31453886d81dd7b9b21e33609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 2 Feb 2024 17:48:21 +0800 Subject: [PATCH 01/45] fix(input-number): fix change event triggering mechanism (#2915) --- .../components/input-number/input-number.tsx | 58 ++++--------------- 1 file changed, 12 insertions(+), 46 deletions(-) diff --git a/packages/web-vue/components/input-number/input-number.tsx b/packages/web-vue/components/input-number/input-number.tsx index a7d662c36..aef93e8aa 100644 --- a/packages/web-vue/components/input-number/input-number.tsx +++ b/packages/web-vue/components/input-number/input-number.tsx @@ -336,40 +336,15 @@ export default defineComponent({ const stringValue = getStringValue(finalValue); if (finalValue !== valueNumber.value || _value.value !== stringValue) { _value.value = stringValue; + emit('update:modelValue', finalValue); } - - emit('update:modelValue', finalValue); }; - watch( - () => props.min, - (newVal) => { - const _isMin = - isNumber(valueNumber.value) && valueNumber.value <= newVal; - if (isMin.value !== _isMin) { - isMin.value = _isMin; - } - const isExceedMinValue = - isNumber(valueNumber.value) && valueNumber.value < newVal; - if (isExceedMinValue) { - handleExceedRange(); - } - } - ); watch( - () => props.max, - (newVal) => { - const _isMax = - isNumber(valueNumber.value) && valueNumber.value >= newVal; - if (isMax.value !== _isMax) { - isMax.value = _isMax; - } - - const isExceedMaxValue = - isNumber(valueNumber.value) && valueNumber.value > newVal; - if (isExceedMaxValue) { - handleExceedRange(); - } + () => [props.max, props.min], + () => { + handleExceedRange(); + updateNumberStatus(valueNumber.value); } ); @@ -421,10 +396,12 @@ export default defineComponent({ if (isNumber(Number(value)) || /^(\.|-)$/.test(value)) { _value.value = props.formatter?.(value) ?? value; updateNumberStatus(valueNumber.value); + + emit('input', valueNumber.value, _value.value, ev); if (props.modelEvent === 'input') { emit('update:modelValue', valueNumber.value); + emit('change', valueNumber.value, ev); } - emit('input', valueNumber.value, _value.value, ev); } }; @@ -433,23 +410,12 @@ export default defineComponent({ }; const handleChange = (value: string, ev: Event) => { - const finalValue = getLegalValue(valueNumber.value); - const stringValue = getStringValue(finalValue); - if (finalValue !== valueNumber.value || _value.value !== stringValue) { - _value.value = stringValue; - updateNumberStatus(finalValue); + if (ev instanceof MouseEvent && !value) { + return; } - nextTick(() => { - if (isNumber(props.modelValue) && props.modelValue !== finalValue) { - // TODO: verify number - _value.value = getStringValue(props.modelValue); - updateNumberStatus(props.modelValue); - } - }); - - emit('update:modelValue', finalValue); - emit('change', finalValue, ev); + handleExceedRange(); + emit('change', valueNumber.value, ev); }; const handleBlur = (ev: FocusEvent) => { From da9613a65dcbfcff2fc314bbf4cba04ddceb81d8 Mon Sep 17 00:00:00 2001 From: MacroBen <42233756+ben1289@users.noreply.github.com> Date: Fri, 2 Feb 2024 18:44:56 +0800 Subject: [PATCH 02/45] fix(watermark): fix font color does not take effect (#2942) Closes #2941 --- packages/web-vue/components/watermark/watermark.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/web-vue/components/watermark/watermark.tsx b/packages/web-vue/components/watermark/watermark.tsx index 09f0b3440..e6b659c1c 100644 --- a/packages/web-vue/components/watermark/watermark.tsx +++ b/packages/web-vue/components/watermark/watermark.tsx @@ -144,10 +144,12 @@ export default defineComponent({ const contents = computed(() => isArray(props.content) ? props.content : [props.content] ); - const color = computed(() => - props.font?.color ?? theme.value === 'dark' - ? 'rgba(255, 255, 255, 0.15)' - : 'rgba(0, 0, 0, 0.15)' + const color = computed( + () => + props.font?.color ?? + (theme.value === 'dark' + ? 'rgba(255, 255, 255, 0.15)' + : 'rgba(0, 0, 0, 0.15)') ); // Watermark position related From 3f0f3b6180d9677c586052d4162a1e2c4a06f29b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 2 Feb 2024 18:45:59 +0800 Subject: [PATCH 03/45] fix(table): fix virtual table list not displaying empty state (#2949) --- packages/web-vue/components/table/table.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/web-vue/components/table/table.tsx b/packages/web-vue/components/table/table.tsx index 4cbe14458..056739aa8 100644 --- a/packages/web-vue/components/table/table.tsx +++ b/packages/web-vue/components/table/table.tsx @@ -2102,7 +2102,7 @@ export default defineComponent({ )} - {isVirtualList.value ? ( + {isVirtualList.value && flattenData.value.length ? ( From a13b612aed4f726eefc326c168ffb85f22e2cce0 Mon Sep 17 00:00:00 2001 From: wangchen Date: Fri, 2 Feb 2024 19:04:12 +0800 Subject: [PATCH 04/45] release version --- packages/web-vue/CHANGELOG.md | 11 +++++++++++ packages/web-vue/CHANGELOG.zh-CN.md | 11 +++++++++++ packages/web-vue/components/input-number/CHANGELOG.md | 9 +++++++++ .../components/input-number/CHANGELOG.zh-CN.md | 9 +++++++++ packages/web-vue/components/table/CHANGELOG.md | 9 +++++++++ packages/web-vue/components/table/CHANGELOG.zh-CN.md | 9 +++++++++ packages/web-vue/components/watermark/CHANGELOG.md | 9 +++++++++ .../web-vue/components/watermark/CHANGELOG.zh-CN.md | 9 +++++++++ packages/web-vue/package.json | 2 +- 9 files changed, 77 insertions(+), 1 deletion(-) diff --git a/packages/web-vue/CHANGELOG.md b/packages/web-vue/CHANGELOG.md index 7744dd3a3..193a9aa5d 100644 --- a/packages/web-vue/CHANGELOG.md +++ b/packages/web-vue/CHANGELOG.md @@ -2,6 +2,17 @@ changelog: true ``` +## 2.54.4 + +`2024-02-02` + +### 🐛 BugFix + +- **table:** fix virtual table list not displaying empty state ([#2949](https://github.com/arco-design/arco-design-vue/pull/2949)) +- **watermark:** Fix font color does not take effect ([#2942](https://github.com/arco-design/arco-design-vue/pull/2942)) +- **input-number:** Fix change event triggering mechanism ([#2915](https://github.com/arco-design/arco-design-vue/pull/2915)) + + ## 2.54.3 `2024-01-19` diff --git a/packages/web-vue/CHANGELOG.zh-CN.md b/packages/web-vue/CHANGELOG.zh-CN.md index b07458d88..e2b8932ca 100644 --- a/packages/web-vue/CHANGELOG.zh-CN.md +++ b/packages/web-vue/CHANGELOG.zh-CN.md @@ -2,6 +2,17 @@ changelog: true ``` +## 2.54.4 + +`2024-02-02` + +### 🐛 问题修复 + +- **table:** 修复表格虚拟列表下不显示 empty 问题 ([#2949](https://github.com/arco-design/arco-design-vue/pull/2949)) +- **watermark:** 修复字体颜色不生效问题 ([#2942](https://github.com/arco-design/arco-design-vue/pull/2942)) +- **input-number:** 修复 change 事件触发逻辑 ([#2915](https://github.com/arco-design/arco-design-vue/pull/2915)) + + ## 2.54.3 `2024-01-19` diff --git a/packages/web-vue/components/input-number/CHANGELOG.md b/packages/web-vue/components/input-number/CHANGELOG.md index 62d0414a9..338c0bdad 100644 --- a/packages/web-vue/components/input-number/CHANGELOG.md +++ b/packages/web-vue/components/input-number/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.4 + +`2024-02-02` + +### 🐛 BugFix + +- Fix change event triggering mechanism ([#2915](https://github.com/arco-design/arco-design-vue/pull/2915)) + + ## 2.52.0 `2023-09-22` diff --git a/packages/web-vue/components/input-number/CHANGELOG.zh-CN.md b/packages/web-vue/components/input-number/CHANGELOG.zh-CN.md index e93bacdb7..81cc65f49 100644 --- a/packages/web-vue/components/input-number/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/input-number/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.4 + +`2024-02-02` + +### 🐛 问题修复 + +- 修复 change 事件触发逻辑 ([#2915](https://github.com/arco-design/arco-design-vue/pull/2915)) + + ## 2.52.0 `2023-09-22` diff --git a/packages/web-vue/components/table/CHANGELOG.md b/packages/web-vue/components/table/CHANGELOG.md index 47b6352db..8afa1ebcf 100644 --- a/packages/web-vue/components/table/CHANGELOG.md +++ b/packages/web-vue/components/table/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.4 + +`2024-02-02` + +### 🐛 BugFix + +- fix virtual table list not displaying empty state ([#2949](https://github.com/arco-design/arco-design-vue/pull/2949)) + + ## 2.54.2 `2024-01-11` diff --git a/packages/web-vue/components/table/CHANGELOG.zh-CN.md b/packages/web-vue/components/table/CHANGELOG.zh-CN.md index ec7a50792..63e7aed27 100644 --- a/packages/web-vue/components/table/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/table/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.4 + +`2024-02-02` + +### 🐛 问题修复 + +- 修复表格虚拟列表下不显示 empty 问题 ([#2949](https://github.com/arco-design/arco-design-vue/pull/2949)) + + ## 2.54.2 `2024-01-11` diff --git a/packages/web-vue/components/watermark/CHANGELOG.md b/packages/web-vue/components/watermark/CHANGELOG.md index d6e8970dc..4f0635891 100644 --- a/packages/web-vue/components/watermark/CHANGELOG.md +++ b/packages/web-vue/components/watermark/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.4 + +`2024-02-02` + +### 🐛 BugFix + +- Fix font color does not take effect ([#2942](https://github.com/arco-design/arco-design-vue/pull/2942)) + + ## 2.54.1 `2023-12-28` diff --git a/packages/web-vue/components/watermark/CHANGELOG.zh-CN.md b/packages/web-vue/components/watermark/CHANGELOG.zh-CN.md index 99cdfd62c..7241ec316 100644 --- a/packages/web-vue/components/watermark/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/watermark/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.4 + +`2024-02-02` + +### 🐛 问题修复 + +- 修复字体颜色不生效问题 ([#2942](https://github.com/arco-design/arco-design-vue/pull/2942)) + + ## 2.54.1 `2023-12-28` diff --git a/packages/web-vue/package.json b/packages/web-vue/package.json index 2da04f78a..b13beeaba 100644 --- a/packages/web-vue/package.json +++ b/packages/web-vue/package.json @@ -1,6 +1,6 @@ { "name": "@arco-design/web-vue", - "version": "2.54.3", + "version": "2.54.4", "description": "Arco Design Vue 2.0: A Vue.js 3 UI Library", "keywords": [ "arco", From 4c25475e3e7dbb474d10b1fac75bb00ca9ced49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Wed, 21 Feb 2024 16:22:40 +0800 Subject: [PATCH 05/45] fix(input-number): fix lack of validation after value change (#2961) --- packages/web-vue/components/input-number/input-number.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web-vue/components/input-number/input-number.tsx b/packages/web-vue/components/input-number/input-number.tsx index aef93e8aa..a6c5ae73d 100644 --- a/packages/web-vue/components/input-number/input-number.tsx +++ b/packages/web-vue/components/input-number/input-number.tsx @@ -336,8 +336,8 @@ export default defineComponent({ const stringValue = getStringValue(finalValue); if (finalValue !== valueNumber.value || _value.value !== stringValue) { _value.value = stringValue; - emit('update:modelValue', finalValue); } + emit('update:modelValue', finalValue); }; watch( From 749804c2f50e1fb9801a34701cadc32057c0a367 Mon Sep 17 00:00:00 2001 From: Hex Date: Wed, 21 Feb 2024 16:53:02 +0800 Subject: [PATCH 06/45] fix(menu): Fix warning: Invalid prop name: "key" is a reserved property (#2978) Co-authored-by: Hex --- packages/web-vue/components/menu/interface.ts | 2 -- packages/web-vue/components/menu/item.tsx | 7 ------- packages/web-vue/components/menu/sub-menu.tsx | 7 ------- 3 files changed, 16 deletions(-) diff --git a/packages/web-vue/components/menu/interface.ts b/packages/web-vue/components/menu/interface.ts index 1816baaa3..b108843e9 100644 --- a/packages/web-vue/components/menu/interface.ts +++ b/packages/web-vue/components/menu/interface.ts @@ -45,7 +45,6 @@ export interface InternalMenuProps extends MenuProps { } export interface SubMenuProps { - key: string | undefined; title: string | undefined; selectable: boolean; popup: boolean | ((level: number) => boolean); @@ -57,7 +56,6 @@ export interface MenuItemGroupProps { } export interface MenuItemProps { - key: string | undefined; disabled?: boolean; } diff --git a/packages/web-vue/components/menu/item.tsx b/packages/web-vue/components/menu/item.tsx index c7e7116af..7dde63bed 100644 --- a/packages/web-vue/components/menu/item.tsx +++ b/packages/web-vue/components/menu/item.tsx @@ -20,13 +20,6 @@ export default defineComponent({ name: 'MenuItem', inheritAttrs: false, props: { - /** - * @zh 唯一标志 - * @en Unique key - */ - key: { - type: String, - }, /** * @zh 是否禁用 * @en Whether to disable diff --git a/packages/web-vue/components/menu/sub-menu.tsx b/packages/web-vue/components/menu/sub-menu.tsx index 4b1408b94..612d6d435 100644 --- a/packages/web-vue/components/menu/sub-menu.tsx +++ b/packages/web-vue/components/menu/sub-menu.tsx @@ -12,13 +12,6 @@ import useMenuDataCollector from './hooks/use-menu-data-collector'; export default defineComponent({ name: 'SubMenu', props: { - /** - * @zh 唯一标志 - * @en Unique key - */ - key: { - type: String, - }, /** * @zh 子菜单的标题 * @en The title of the submenu From 22755e10dd036c864cd4a184ffa998eba6cd5c9e Mon Sep 17 00:00:00 2001 From: Yunfei Shen <1563407190@qq.com> Date: Wed, 21 Feb 2024 17:20:21 +0800 Subject: [PATCH 07/45] fix(date-picker): refactor date utility functions and week picker to correctly show selected week (#2970) * fix(date-picker): refactor date utility functions and week picker to correctly show selected week * docs(date-picker): update WeekPicker usage with `dayStartOfWeek` in demo * test(date-picker): update WeekPicker snapshot --- packages/web-vue/components/_utils/date.ts | 31 +++++++++++++------ .../components/date-picker/__demo__/week.md | 10 ++++-- .../__test__/__snapshots__/demo.test.ts.snap | 11 ++++++- .../date-picker/panels/week/index.vue | 17 +++++----- 4 files changed, 48 insertions(+), 21 deletions(-) diff --git a/packages/web-vue/components/_utils/date.ts b/packages/web-vue/components/_utils/date.ts index aedbd2842..fbf718135 100644 --- a/packages/web-vue/components/_utils/date.ts +++ b/packages/web-vue/components/_utils/date.ts @@ -51,21 +51,34 @@ export const methods = { startOf(time: Dayjs, unit: OpUnitType) { return time.startOf(unit); }, + /** + * Similar to `startOf`, returns start date of a week; used in week pickers + * @param time Selected date + * @param weekStart Start day of a week + * @returns Start date of the week containing the selected date + */ + startOfWeek(time: Dayjs, weekStart: number) { + const currentDay = time.day(); + let startOfWeek = time.subtract(currentDay - weekStart, 'day'); + if (startOfWeek.isAfter(time)) { + startOfWeek = startOfWeek.subtract(7, 'day'); + } + return startOfWeek; + }, endOf(time: Dayjs, unit: OpUnitType) { return time.endOf(unit); }, set(time: Dayjs, unit: UnitType, value: number) { return time.set(unit, value); }, - isSameWeek( - date1: Dayjs, - date2: Dayjs, - weekStart: number, - localeName: string - ) { - return date1 - .locale({ ...dayjs.Ls[localeName.toLocaleLowerCase()], weekStart }) - .isSame(date2, 'week'); + isSameWeek(date1: Dayjs, date2: Dayjs, weekStart: number) { + // calculate week number of the given date considering the given start of week + const getWeek = (date: Dayjs) => { + const day = date.day(); + const diff = day - weekStart + (day < weekStart ? 7 : 0); + return date.subtract(diff, 'day').week(); + }; + return getWeek(date1) === getWeek(date2); }, }; diff --git a/packages/web-vue/components/date-picker/__demo__/week.md b/packages/web-vue/components/date-picker/__demo__/week.md index a6c57c6c5..b8979b342 100644 --- a/packages/web-vue/components/date-picker/__demo__/week.md +++ b/packages/web-vue/components/date-picker/__demo__/week.md @@ -6,18 +6,22 @@ title: ## zh-CN -周输入器的基础使用。 +周选择器提供了一种选择星期的简单方法。也可以指定一周的起始日。 --- ## en-US -The basic usage of WeekPicker. +WeekPicker provides a simple way to select weeks. It also allows you to specify the starting day of the week. --- ```vue ``` diff --git a/packages/web-vue/components/date-picker/__test__/__snapshots__/demo.test.ts.snap b/packages/web-vue/components/date-picker/__test__/__snapshots__/demo.test.ts.snap index 0726d2e40..8bdfc91c5 100644 --- a/packages/web-vue/components/date-picker/__test__/__snapshots__/demo.test.ts.snap +++ b/packages/web-vue/components/date-picker/__test__/__snapshots__/demo.test.ts.snap @@ -1316,7 +1316,16 @@ exports[` demo: render [trigger-element] correctly 1`] = ` `; exports[` demo: render [week] correctly 1`] = ` -"
+"
+ +
+
+ + +
+
+ +
diff --git a/packages/web-vue/components/date-picker/panels/week/index.vue b/packages/web-vue/components/date-picker/panels/week/index.vue index 3ae040acf..dda47f089 100644 --- a/packages/web-vue/components/date-picker/panels/week/index.vue +++ b/packages/web-vue/components/date-picker/panels/week/index.vue @@ -33,21 +33,22 @@ export default defineComponent({ setup(props, { emit }) { const { locale } = useI18n(); const isSameTime: IsSameTime = (current, target) => { - return methods.isSameWeek( - current, - target, - props.dayStartOfWeek, - locale.value - ); + return methods.isSameWeek(current, target, props.dayStartOfWeek); }; return { isSameTime, onSelect: (value: Dayjs) => { - const startDateOfWeek = methods.startOf(value, 'week'); + const startDateOfWeek = methods.startOfWeek( + value, + props.dayStartOfWeek + ); emit('select', startDateOfWeek); }, onCellMouseEnter: (value: Dayjs) => { - const startDateOfWeek = methods.startOf(value, 'week'); + const startDateOfWeek = methods.startOfWeek( + value, + props.dayStartOfWeek + ); emit('cell-mouse-enter', startDateOfWeek); }, }; From dda3c06d9a1eeea5af2420143960933b57c35fa9 Mon Sep 17 00:00:00 2001 From: wangchen Date: Wed, 21 Feb 2024 20:24:43 +0800 Subject: [PATCH 08/45] release version --- packages/web-vue/CHANGELOG.md | 11 +++++++++++ packages/web-vue/CHANGELOG.zh-CN.md | 11 +++++++++++ .../web-vue/components/date-picker/CHANGELOG.md | 9 +++++++++ .../components/date-picker/CHANGELOG.zh-CN.md | 8 ++++++++ .../components/input-number/CHANGELOG.md | 9 +++++++++ .../components/input-number/CHANGELOG.zh-CN.md | 9 +++++++++ packages/web-vue/components/menu/CHANGELOG.md | 9 +++++++++ .../web-vue/components/menu/CHANGELOG.zh-CN.md | 9 +++++++++ .../web-vue/components/menu/README.en-US.md | 10 ++++++++-- .../web-vue/components/menu/README.zh-CN.md | 10 ++++++++-- packages/web-vue/components/menu/TEMPLATE.md | 17 +++++++++++++++++ packages/web-vue/components/menu/base-menu.vue | 3 +-- packages/web-vue/components/menu/interface.ts | 5 ++++- packages/web-vue/components/menu/item.tsx | 3 +-- .../web-vue/components/menu/sub-menu-pop.vue | 3 ++- packages/web-vue/components/menu/sub-menu.tsx | 3 +-- packages/web-vue/package.json | 2 +- 17 files changed, 118 insertions(+), 13 deletions(-) diff --git a/packages/web-vue/CHANGELOG.md b/packages/web-vue/CHANGELOG.md index 193a9aa5d..a3c6e9e3e 100644 --- a/packages/web-vue/CHANGELOG.md +++ b/packages/web-vue/CHANGELOG.md @@ -2,6 +2,17 @@ changelog: true ``` +## 2.54.5 + +`2024-02-21` + +### 🐛 BugFix + +- **menu:** Fix warning “Invalid prop name: key is a reserved property.” ([#2978](https://github.com/arco-design/arco-design-vue/pull/2978)) +- **date-picker:** refactor date utility functions and week picker to correctly show selected week ([#2970](https://github.com/arco-design/arco-design-vue/pull/2970)) +- **input-number:** fix v-model not working ([#2961](https://github.com/arco-design/arco-design-vue/pull/2961)) + + ## 2.54.4 `2024-02-02` diff --git a/packages/web-vue/CHANGELOG.zh-CN.md b/packages/web-vue/CHANGELOG.zh-CN.md index e2b8932ca..5b7900862 100644 --- a/packages/web-vue/CHANGELOG.zh-CN.md +++ b/packages/web-vue/CHANGELOG.zh-CN.md @@ -2,6 +2,17 @@ changelog: true ``` +## 2.54.5 + +`2024-02-21` + +### 🐛 问题修复 + +- **menu:** 修复警告 “Invalid prop name: key is a reserved property.” ([#2978](https://github.com/arco-design/arco-design-vue/pull/2978)) +- **date-picker:** 重构日期 utility 函数和 WeekPicker,以正确显示所选星期 ([#2970](https://github.com/arco-design/arco-design-vue/pull/2970)) +- **input-number:** 修复双向绑定失效 ([#2961](https://github.com/arco-design/arco-design-vue/pull/2961)) + + ## 2.54.4 `2024-02-02` diff --git a/packages/web-vue/components/date-picker/CHANGELOG.md b/packages/web-vue/components/date-picker/CHANGELOG.md index 19ebf50a8..aef9370a5 100644 --- a/packages/web-vue/components/date-picker/CHANGELOG.md +++ b/packages/web-vue/components/date-picker/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.5 + +`2024-02-21` + +### 🐛 BugFix + +- refactor date utility functions and week picker to correctly show selected week ([#2970](https://github.com/arco-design/arco-design-vue/pull/2970)) + + ## 2.54.0 `2023-12-15` diff --git a/packages/web-vue/components/date-picker/CHANGELOG.zh-CN.md b/packages/web-vue/components/date-picker/CHANGELOG.zh-CN.md index 5a8db2f39..4305d16f3 100644 --- a/packages/web-vue/components/date-picker/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/date-picker/CHANGELOG.zh-CN.md @@ -2,6 +2,14 @@ changelog: true ``` +## 2.54.5 + +`2024-02-21` + +### 🐛 问题修复 + +- 重构日期 utility 函数和 WeekPicker,以正确显示所选星期 ([#2970](https://github.com/arco-design/arco-design-vue/pull/2970)) + ## 2.54.0 `2023-12-15` diff --git a/packages/web-vue/components/input-number/CHANGELOG.md b/packages/web-vue/components/input-number/CHANGELOG.md index 338c0bdad..0f653b7bf 100644 --- a/packages/web-vue/components/input-number/CHANGELOG.md +++ b/packages/web-vue/components/input-number/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.5 + +`2024-02-21` + +### 🐛 BugFix + +- fix v-model not working ([#2961](https://github.com/arco-design/arco-design-vue/pull/2961)) + + ## 2.54.4 `2024-02-02` diff --git a/packages/web-vue/components/input-number/CHANGELOG.zh-CN.md b/packages/web-vue/components/input-number/CHANGELOG.zh-CN.md index 81cc65f49..9cee45bff 100644 --- a/packages/web-vue/components/input-number/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/input-number/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.5 + +`2024-02-21` + +### 🐛 问题修复 + +- 修复双向绑定失效 ([#2961](https://github.com/arco-design/arco-design-vue/pull/2961)) + + ## 2.54.4 `2024-02-02` diff --git a/packages/web-vue/components/menu/CHANGELOG.md b/packages/web-vue/components/menu/CHANGELOG.md index ffbb94064..b3ff7e89a 100644 --- a/packages/web-vue/components/menu/CHANGELOG.md +++ b/packages/web-vue/components/menu/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.5 + +`2024-02-21` + +### 🐛 BugFix + +- Fix warning “Invalid prop name: key is a reserved property.” ([#2978](https://github.com/arco-design/arco-design-vue/pull/2978)) + + ## 2.43.0 `2023-02-10` diff --git a/packages/web-vue/components/menu/CHANGELOG.zh-CN.md b/packages/web-vue/components/menu/CHANGELOG.zh-CN.md index a0e4b8d4e..6a3ffd1e7 100644 --- a/packages/web-vue/components/menu/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/menu/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.54.5 + +`2024-02-21` + +### 🐛 问题修复 + +- 修复警告 “Invalid prop name: key is a reserved property.” ([#2978](https://github.com/arco-design/arco-design-vue/pull/2978)) + + ## 2.43.0 `2023-02-10` diff --git a/packages/web-vue/components/menu/README.en-US.md b/packages/web-vue/components/menu/README.en-US.md index 7b8cfe458..a6ce9bd09 100644 --- a/packages/web-vue/components/menu/README.en-US.md +++ b/packages/web-vue/components/menu/README.en-US.md @@ -73,7 +73,6 @@ description: Organize, arrange, and display a list of options. |Attribute|Description|Type|Default|version| |---|---|---|:---:|:---| -|key|Unique key|`string`|`-`|| |title|The title of the submenu|`string`|`-`|| |selectable|In the pop-up mode, whether the multi-level menu header is also used as a menu item to support the state such as click to select|`boolean`|`false`|| |popup|Whether to force the use of pop-up mode, `level` indicates the level of the current submenu|`boolean \| ((level: number) => boolean)`|`false`|| @@ -108,7 +107,6 @@ description: Organize, arrange, and display a list of options. |Attribute|Description|Type|Default| |---|---|---|:---:| -|key|Unique key|`string`|`-`| |disabled|Whether to disable|`boolean`|`false`| ### `` Slots @@ -117,3 +115,11 @@ description: Organize, arrange, and display a list of options. |icon|the icon of menu item|-|2.11.0| + + +## FAQ + + +### The `key` attribute of `` and `` components is required +When using `` and `` components in the `` component, please pass in the unique `key` attribute. +The component will rely on this value when calculating internally. If no value is assigned, some Abnormality in the scene diff --git a/packages/web-vue/components/menu/README.zh-CN.md b/packages/web-vue/components/menu/README.zh-CN.md index c5b90ee56..2a79c7ee7 100644 --- a/packages/web-vue/components/menu/README.zh-CN.md +++ b/packages/web-vue/components/menu/README.zh-CN.md @@ -71,7 +71,6 @@ description: 收纳、排列并展示一系列选项的列表。 |参数名|描述|类型|默认值|版本| |---|---|---|:---:|:---| -|key|唯一标志|`string`|`-`|| |title|子菜单的标题|`string`|`-`|| |selectable|弹出模式下,是否将多级菜单头也作为一个菜单项,支持点击选中等状态|`boolean`|`false`|| |popup|是否强制使用弹出模式,`level` 表示当前子菜单的层级|`boolean \| ((level: number) => boolean)`|`false`|| @@ -106,7 +105,6 @@ description: 收纳、排列并展示一系列选项的列表。 |参数名|描述|类型|默认值| |---|---|---|:---:| -|key|唯一标志|`string`|`-`| |disabled|是否禁用|`boolean`|`false`| ### `` Slots @@ -115,3 +113,11 @@ description: 收纳、排列并展示一系列选项的列表。 |icon|菜单的图标|-|2.11.0| + + +## FAQ + +### `` 和 `` 组件的 `key` 属性为必填 +在 `` 组件中使用 `` 和 `` 组件时,请传入唯一的 `key` 属性。 +组件内部在进行计算时会依赖此值,如果没有赋值会导致部分场景下异常 + diff --git a/packages/web-vue/components/menu/TEMPLATE.md b/packages/web-vue/components/menu/TEMPLATE.md index 6a4ffe28f..98cd9932d 100644 --- a/packages/web-vue/components/menu/TEMPLATE.md +++ b/packages/web-vue/components/menu/TEMPLATE.md @@ -42,3 +42,20 @@ description: Organize, arrange, and display a list of options. %%API(item-group.vue)%% %%API(item.tsx)%% + + +## FAQ + +## zh-CN +### `` 和 `` 组件的 `key` 属性为必填 +在 `` 组件中使用 `` 和 `` 组件时,请传入唯一的 `key` 属性。 +组件内部在进行计算时会依赖此值,如果没有赋值会导致部分场景下异常 + +--- + +## en-US +### The `key` attribute of `` and `` components is required +When using `` and `` components in the `` component, please pass in the unique `key` attribute. +The component will rely on this value when calculating internally. If no value is assigned, some Abnormality in the scene + +--- diff --git a/packages/web-vue/components/menu/base-menu.vue b/packages/web-vue/components/menu/base-menu.vue index 9aaee4b2a..af06b8039 100644 --- a/packages/web-vue/components/menu/base-menu.vue +++ b/packages/web-vue/components/menu/base-menu.vue @@ -32,7 +32,6 @@ import IconMenuUnfold from '../icon/icon-menu-unfold'; import useMergeState from '../_hooks/use-merge-state'; import { provideLevel } from './hooks/use-level'; import { MenuInjectionKey } from './context'; -import { InternalMenuProps } from './interface'; import usePickSlots from '../_hooks/use-pick-slots'; import { omit } from '../_utils/omit'; import useMenuDataCollector from './hooks/use-menu-data-collector'; @@ -262,7 +261,7 @@ export default defineComponent({ * @en Icon expand right * @slot expand-icon-right */ - setup(props: InternalMenuProps, { emit, slots }) { + setup(props, { emit, slots }) { const { style, mode, diff --git a/packages/web-vue/components/menu/interface.ts b/packages/web-vue/components/menu/interface.ts index b108843e9..0ff7a2f81 100644 --- a/packages/web-vue/components/menu/interface.ts +++ b/packages/web-vue/components/menu/interface.ts @@ -1,6 +1,7 @@ import { StyleValue } from 'vue'; import { Breakpoint } from '../_utils/responsive-observe'; import { Data } from '../_utils/types'; +import { TriggerProps } from '../trigger'; export type MenuTheme = 'light' | 'dark'; @@ -30,7 +31,7 @@ export interface MenuProps { openKeys: string[] | undefined; defaultOpenKeys: string[]; scrollConfig: { [key: string]: any } | undefined; - triggerProps: Data | undefined; + triggerProps: TriggerProps | undefined; tooltipProps: Data | undefined; autoOpenSelected: boolean; breakpoint: Breakpoint | undefined; @@ -45,6 +46,7 @@ export interface InternalMenuProps extends MenuProps { } export interface SubMenuProps { + key: string | undefined; title: string | undefined; selectable: boolean; popup: boolean | ((level: number) => boolean); @@ -56,6 +58,7 @@ export interface MenuItemGroupProps { } export interface MenuItemProps { + key: string | undefined; disabled?: boolean; } diff --git a/packages/web-vue/components/menu/item.tsx b/packages/web-vue/components/menu/item.tsx index 7dde63bed..678c12013 100644 --- a/packages/web-vue/components/menu/item.tsx +++ b/packages/web-vue/components/menu/item.tsx @@ -8,7 +8,6 @@ import { } from 'vue'; import scrollIntoView from 'scroll-into-view-if-needed'; import Tooltip from '../tooltip'; -import { MenuItemProps } from './interface'; import useMenu from './hooks/use-menu'; import useLevel from './hooks/use-level'; import { omit } from '../_utils/omit'; @@ -36,7 +35,7 @@ export default defineComponent({ * @slot icon * @version 2.11.0 */ - setup(props: MenuItemProps, { emit }) { + setup(props, { emit }) { const { key } = useMenu(); const { level } = useLevel(); const menuContext = useMenuContext(); diff --git a/packages/web-vue/components/menu/sub-menu-pop.vue b/packages/web-vue/components/menu/sub-menu-pop.vue index c7ee98912..62cc5039b 100644 --- a/packages/web-vue/components/menu/sub-menu-pop.vue +++ b/packages/web-vue/components/menu/sub-menu-pop.vue @@ -110,7 +110,7 @@ export default defineComponent({ default: undefined, }, }, - setup(props: SubMenuPopProps) { + setup(props) { const { key } = useMenu(); const { level } = useLevel(); const { selectable, isChildrenSelected, popupMaxHeight } = toRefs(props); @@ -147,6 +147,7 @@ export default defineComponent({ { [`${prefixCls.value}-trigger-dark`]: menuContext.theme === 'dark', }, + // @ts-ignore menuContext.triggerProps?.class, ]); const triggerProps = computed(() => diff --git a/packages/web-vue/components/menu/sub-menu.tsx b/packages/web-vue/components/menu/sub-menu.tsx index 612d6d435..4ac59bcdd 100644 --- a/packages/web-vue/components/menu/sub-menu.tsx +++ b/packages/web-vue/components/menu/sub-menu.tsx @@ -1,5 +1,4 @@ import { computed, defineComponent, PropType, toRef, toRefs } from 'vue'; -import { SubMenuProps } from './interface'; import SubMenuInline from './sub-menu-inline.vue'; import SubMenuPop from './sub-menu-pop.vue'; import useMenu from './hooks/use-menu'; @@ -68,7 +67,7 @@ export default defineComponent({ * @en Title * @slot title */ - setup(props: SubMenuProps, { attrs }) { + setup(props, { attrs }) { const { key } = useMenu(); const { level } = useLevel(); const { popup } = toRefs(props); diff --git a/packages/web-vue/package.json b/packages/web-vue/package.json index b13beeaba..113a46d16 100644 --- a/packages/web-vue/package.json +++ b/packages/web-vue/package.json @@ -1,6 +1,6 @@ { "name": "@arco-design/web-vue", - "version": "2.54.4", + "version": "2.54.5", "description": "Arco Design Vue 2.0: A Vue.js 3 UI Library", "keywords": [ "arco", From 27fd32bfe7bcfc15a246c6443de505a7ec65ae87 Mon Sep 17 00:00:00 2001 From: betavs <34408516+betavs@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:38:33 +0800 Subject: [PATCH 09/45] fix(tree): key is a reserved property (#2995) --- packages/web-vue/components/tree/base-node.vue | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/web-vue/components/tree/base-node.vue b/packages/web-vue/components/tree/base-node.vue index 944fee61f..9d5f3150c 100644 --- a/packages/web-vue/components/tree/base-node.vue +++ b/packages/web-vue/components/tree/base-node.vue @@ -150,10 +150,6 @@ export default defineComponent({ IconDragDotVertical, }, props: { - /** 唯一标示 */ - key: { - type: [String, Number] as PropType, - }, /** 标题 */ title: { type: String, From ccc71fb2a2923c58a018a3c0c33b4039a8d5a9d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 1 Mar 2024 14:39:33 +0800 Subject: [PATCH 10/45] fix(transfer): fix disabled props not working (#2996) --- packages/web-vue/components/transfer/transfer-view.vue | 6 +++++- packages/web-vue/components/transfer/transfer.vue | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/web-vue/components/transfer/transfer-view.vue b/packages/web-vue/components/transfer/transfer-view.vue index 75b4167eb..09aaa4108 100644 --- a/packages/web-vue/components/transfer/transfer-view.vue +++ b/packages/web-vue/components/transfer/transfer-view.vue @@ -22,6 +22,7 @@ v-else :model-value="checked" :indeterminate="indeterminate" + :disabled="disabled" uninject-group-context @change="handleSelectAllChange" > @@ -30,6 +31,7 @@ @@ -43,6 +45,7 @@
@@ -66,7 +69,7 @@ :data="item" :simple="simple" :allow-clear="allowClear" - :disabled="item.disabled" + :disabled="disabled || item.disabled" /> @@ -115,6 +118,7 @@ export default defineComponent({ type: Array as PropType, required: true, }, + disabled: Boolean, allowClear: Boolean, selected: { type: Array as PropType, diff --git a/packages/web-vue/components/transfer/transfer.vue b/packages/web-vue/components/transfer/transfer.vue index da224a371..4820ff0d5 100644 --- a/packages/web-vue/components/transfer/transfer.vue +++ b/packages/web-vue/components/transfer/transfer.vue @@ -6,6 +6,7 @@ :title="sourceTitle" :data-info="dataInfo.sourceInfo" :data="dataInfo.sourceInfo.data" + :disabled="mergedDisabled" :selected="computedSelected" :show-search="showSearch" :show-select-all="showSelectAll" @@ -53,6 +54,7 @@ :title="targetTitle" :data-info="dataInfo.targetInfo" :data="dataInfo.targetInfo.data" + :disabled="mergedDisabled" :selected="computedSelected" :allow-clear="oneWay" :show-search="showSearch" @@ -410,6 +412,7 @@ export default defineComponent({ cls, dataInfo, computedSelected, + mergedDisabled, sourceTitle, targetTitle, handleClick, From 933b02bb94d07af8d446fa1fd7880ba277099c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 1 Mar 2024 14:40:12 +0800 Subject: [PATCH 11/45] fix(collapse): resolve reserved property warning (#2997) --- .../web-vue/components/collapse/README.en-US.md | 7 ++++++- .../web-vue/components/collapse/README.zh-CN.md | 7 ++++++- packages/web-vue/components/collapse/TEMPLATE.md | 14 ++++++++++++++ .../web-vue/components/collapse/collapse-item.tsx | 5 ----- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/packages/web-vue/components/collapse/README.en-US.md b/packages/web-vue/components/collapse/README.en-US.md index 0d122cfa6..624f812c9 100644 --- a/packages/web-vue/components/collapse/README.en-US.md +++ b/packages/web-vue/components/collapse/README.en-US.md @@ -53,7 +53,6 @@ description: The content area that can be collapsed/expanded. |Attribute|Description|Type|Default|version| |---|---|---|:---:|:---| -|key|The id of the panel, corresponding to the value in `activeKey`|`string\|number`|`-`|| |header|The title of the panel|`string`|`-`|| |disabled|Whether to disable|`boolean`|`false`|| |show-expand-icon|Whether to show the expand icon|`boolean`|`true`|| @@ -67,3 +66,9 @@ description: The content area that can be collapsed/expanded. |header|The title of the panel|-|| + +## FAQ + + +### The `key` attribute of `` components is required +In the `` component, each `` needs to specify a unique `key` attribute, and the `key` corresponding to the value in `activeKey`. diff --git a/packages/web-vue/components/collapse/README.zh-CN.md b/packages/web-vue/components/collapse/README.zh-CN.md index 3acaaf0ac..8754de71a 100644 --- a/packages/web-vue/components/collapse/README.zh-CN.md +++ b/packages/web-vue/components/collapse/README.zh-CN.md @@ -51,7 +51,6 @@ description: 可以折叠 / 展开的内容区域。 |参数名|描述|类型|默认值|版本| |---|---|---|:---:|:---| -|key|面板的 id,对应 `activeKey` 中的值|`string\|number`|`-`|| |header|面板的标题|`string`|`-`|| |disabled|是否禁用|`boolean`|`false`|| |show-expand-icon|是否显示展开图标|`boolean`|`true`|| @@ -65,3 +64,9 @@ description: 可以折叠 / 展开的内容区域。 |header|面板的标题|-|| + +## FAQ + +### `` 组件的 `key` 属性为必填 +在 `` 组件中每个 `` 都需要指定唯一的 `key` 属性,`key` 对应 `activeKey` 中的值。 + diff --git a/packages/web-vue/components/collapse/TEMPLATE.md b/packages/web-vue/components/collapse/TEMPLATE.md index 51032d129..2164fa328 100644 --- a/packages/web-vue/components/collapse/TEMPLATE.md +++ b/packages/web-vue/components/collapse/TEMPLATE.md @@ -40,3 +40,17 @@ description: The content area that can be collapsed/expanded. %%API(collapse.vue)%% %%API(collapse-item.tsx)%% + +## FAQ + +## zh-CN +### `` 组件的 `key` 属性为必填 +在 `` 组件中每个 `` 都需要指定唯一的 `key` 属性,`key` 对应 `activeKey` 中的值。 + +--- + +## en-US +### The `key` attribute of `` components is required +In the `` component, each `` needs to specify a unique `key` attribute, and the `key` corresponding to the value in `activeKey`. + +--- diff --git a/packages/web-vue/components/collapse/collapse-item.tsx b/packages/web-vue/components/collapse/collapse-item.tsx index f80751535..0877bc7fa 100644 --- a/packages/web-vue/components/collapse/collapse-item.tsx +++ b/packages/web-vue/components/collapse/collapse-item.tsx @@ -19,11 +19,6 @@ export default defineComponent({ name: 'CollapseItem', components: { IconHover, IconCaretRight, IconCaretLeft }, props: { - /** - * @zh 面板的 id,对应 `activeKey` 中的值 - * @en The id of the panel, corresponding to the value in `activeKey` - */ - key: [String, Number], /** * @zh 面板的标题 * @en The title of the panel From 64cafb4c561187c1757c14f530c70425d027f92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 1 Mar 2024 15:00:59 +0800 Subject: [PATCH 12/45] fix(modal): fix fade-modal transition effect works on enter state (#3007) --- packages/web-vue/components/modal/style/index.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web-vue/components/modal/style/index.less b/packages/web-vue/components/modal/style/index.less index c33d4ebc1..1b787d203 100644 --- a/packages/web-vue/components/modal/style/index.less +++ b/packages/web-vue/components/modal/style/index.less @@ -113,8 +113,8 @@ } &-footer { - box-sizing: border-box; flex-shrink: 0; + box-sizing: border-box; width: 100%; padding: @modal-default-padding-footer-vertical @modal-default-padding-horizontal; @@ -263,7 +263,7 @@ opacity: 1; } -.fad-modal-enter-active, +.fade-modal-enter-active, .fade-modal-appear-active { transition: opacity @transition-duration-4 @transition-timing-function-overshoot; From 9e01577fea3edf381a8839fa09651ccac415c2f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 1 Mar 2024 16:12:39 +0800 Subject: [PATCH 13/45] fix(input-number): fix overlap between step button and suffix/append (#3005) --- .../components/input-number/input-number.tsx | 4 +++- .../components/input-number/style/index.less | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/web-vue/components/input-number/input-number.tsx b/packages/web-vue/components/input-number/input-number.tsx index a6c5ae73d..e5c34bcda 100644 --- a/packages/web-vue/components/input-number/input-number.tsx +++ b/packages/web-vue/components/input-number/input-number.tsx @@ -466,7 +466,9 @@ export default defineComponent({ } return ( <> - {slots.suffix?.()} + {slots.suffix && ( +
{slots.suffix?.()}
+ )}
+
+
+
+
+
+
+
最近使用顏色
+
暂无
+
+
+
系统预设颜色
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Hex + + +
+
# + + %
+
+
+
+
+
+ +
+
系统预设颜色
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+" +`; + +exports[` demo: render [size] correctly 1`] = ` +"
+ +
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
" +`; + +exports[` demo: render [trigger] correctly 1`] = ` +"
+ +
+ +
+
+
+ +
+ +
+
" +`; + +exports[` demo: render [trigger-element] correctly 1`] = ` +"
+ +
#165DFF + + + +
+
" +`; diff --git a/packages/web-vue/components/color-picker/__test__/demo.test.ts b/packages/web-vue/components/color-picker/__test__/demo.test.ts new file mode 100644 index 000000000..8aad704a0 --- /dev/null +++ b/packages/web-vue/components/color-picker/__test__/demo.test.ts @@ -0,0 +1,3 @@ +import demoTest from '../../../scripts/demo-test'; + +demoTest('color-picker'); diff --git a/packages/web-vue/components/color-picker/__test__/index.test.ts b/packages/web-vue/components/color-picker/__test__/index.test.ts new file mode 100644 index 000000000..3f19e2368 --- /dev/null +++ b/packages/web-vue/components/color-picker/__test__/index.test.ts @@ -0,0 +1,28 @@ +import { mount } from '@vue/test-utils'; +import ColorPicker from '../index'; + +describe('ColorPicker', () => { + test('Whether the size is rendered correctly', () => { + const wrapper = mount(ColorPicker, { + props: { + size: 'mini', + }, + }); + const colorPickerElement = wrapper.find('.arco-color-picker'); + expect(colorPickerElement.classes()).toContain( + `arco-color-picker-size-mini` + ); + }); + + test('Whether the disabled is rendered correctly', () => { + const wrapper = mount(ColorPicker, { + props: { + disabled: true, + }, + }); + const colorPickerElement = wrapper.find('.arco-color-picker'); + expect(colorPickerElement.classes()).toContain( + `arco-color-picker-disabled` + ); + }); +}); diff --git a/packages/web-vue/components/color-picker/color-picker.tsx b/packages/web-vue/components/color-picker/color-picker.tsx new file mode 100644 index 000000000..eacc46347 --- /dev/null +++ b/packages/web-vue/components/color-picker/color-picker.tsx @@ -0,0 +1,260 @@ +import { defineComponent, PropType, computed, reactive, watch } from 'vue'; +import { Size } from '../_utils/constant'; +import { getPrefixCls } from '../_utils/global-config'; +import { colors } from './colors'; +import { HSV } from './interface'; +import Panel from './panel'; +import Trigger, { TriggerProps } from '../trigger'; +import useMergeState from '../_hooks/use-merge-state'; +import useState from '../_hooks/use-state'; +import { + formatInputToHSVA, + hsvToRgb, + rgbaToHex, + rgbToHex, +} from '../_utils/color'; + +export default defineComponent({ + name: 'ColorPicker', + props: { + /** + * @zh 绑定值 + * @en Value + */ + modelValue: String, + /** + * @zh 默认值(非受控状态) + * @en Default value (uncontrolled state) + */ + defaultValue: { + type: String, + }, + /** + * @zh 颜色值的格式 + * @en Color value format + */ + format: { + type: String as PropType<'hex' | 'rgb'>, + }, + /** + * @zh 尺寸 + * @en Size + * @values 'mini','small','medium','large' + */ + size: { + type: String as PropType, + default: 'medium', + }, + /** + * @zh 显示颜色值 + * @en Show color value + */ + showText: { + type: Boolean, + default: false, + }, + /** + * @zh 显示历史颜色 + * @en Show history colors + */ + showHistory: { + type: Boolean, + default: false, + }, + /** + * @zh 显示预设颜色 + * @en Show preset colors + */ + showPreset: { + type: Boolean, + default: false, + }, + /** + * @zh 禁用 + * @en disabled + */ + disabled: { + type: Boolean, + default: false, + }, + /** + * @zh 禁用透明通道 + * @en Disable transparency channel + */ + disabledAlpha: { + type: Boolean, + default: false, + }, + /** + * @zh 没有触发元素,只显示颜色面板 + * @en There is no trigger element, only the color panel is displayed + * */ + hideTrigger: { + type: Boolean, + }, + /** + * @zh 接受所有 [Trigger](/vue/component/trigger) 组件的Props + * @en Can accept Props of all [Trigger](/vue/component/trigger) components + * */ + triggerProps: { + type: Object as PropType>, + }, + /** + * @zh 历史颜色的颜色数组 + * @en Color array of historical colors + */ + historyColors: { + type: Array as PropType, + }, + /** + * @zh 预设颜色的颜色数组 + * @en Color array of preset colors + */ + presetColors: { + type: Array as PropType, + default: () => colors, + }, + }, + emits: { + 'update:modelValue': (value: string) => true, + /** + * @zh 颜色值改变时触发 + * @en Triggered when the color value changes + * @param {string} value + */ + 'change': (value: string) => true, + /** + * @zh 颜色面板展开和收起时触发 + * @en Triggered when the color panel is expanded and collapsed + * @param {boolean} visible + * @param {string} value + */ + 'popup-visible-change': (visible: boolean, value: string) => true, + }, + setup(props, { emit, slots }) { + const prefixCls = getPrefixCls('color-picker'); + const [mergeValue, setMergeValue] = useMergeState( + props.defaultValue, + reactive({ value: props.modelValue }) + ); + + const formatInput = computed(() => { + return formatInputToHSVA(mergeValue.value || ''); + }); + + const [alpha, setAlpha] = useState(formatInput.value.a); + const [hsv, setHsv] = useState({ + h: formatInput.value.h, + s: formatInput.value.s, + v: formatInput.value.v, + }); + + const color = computed(() => { + const rgb = hsvToRgb(hsv.value.h, hsv.value.s, hsv.value.v); + const hex = rgbToHex(rgb.r, rgb.g, rgb.b); + return { + hsv: hsv.value, + rgb, + hex, + }; + }); + + const colorString = computed(() => { + const { r, g, b } = color.value.rgb; + return `rgba(${r}, ${g}, ${b}, ${alpha.value.toFixed(2)})`; + }); + + const formatValue = computed(() => { + const { r, g, b } = color.value.rgb; + if (props.format === 'rgb') { + return alpha.value < 1 && !props.disabledAlpha + ? `rgba(${r}, ${g}, ${b}, ${alpha.value.toFixed(2)})` + : `rgb(${r}, ${g}, ${b})`; + } + return alpha.value < 1 && !props.disabledAlpha + ? `#${rgbaToHex(r, g, b, alpha.value)}` + : `#${rgbToHex(r, g, b)}`; + }); + + watch(formatValue, (value) => { + setMergeValue(value); + emit('update:modelValue', value); + emit('change', value); + }); + + const onHsvChange = (_value: HSV) => { + !props.disabled && setHsv(_value); + }; + + const onAlphaChange = (_value: number) => { + !props.disabled && setAlpha(_value); + }; + + const onPopupVisibleChange = (visible: boolean) => { + emit('popup-visible-change', visible, formatValue.value); + }; + + const renderInput = () => { + return ( +
+
+ {props.showText && ( +
{formatValue.value}
+ )} + +
+ ); + }; + + const renderPanel = () => { + return ( + + ); + }; + + return () => { + return props.hideTrigger ? ( + renderPanel() + ) : ( + + {slots.default ? slots.default() : renderInput()} + + ); + }; + }, +}); diff --git a/packages/web-vue/components/color-picker/colors.ts b/packages/web-vue/components/color-picker/colors.ts new file mode 100644 index 000000000..a8fa5bb01 --- /dev/null +++ b/packages/web-vue/components/color-picker/colors.ts @@ -0,0 +1,24 @@ +export const colors = [ + '#00B42A', + '#3C7EFF', + '#FF7D00', + '#F76965', + '#F7BA1E', + '#F5319D', + '#D91AD9', + '#9FDB1D', + '#FADC19', + '#722ED1', + '#3491FA', + '#7BE188', + '#93BEFF', + '#FFCF8B', + '#FBB0A7', + '#FCE996', + '#FB9DC7', + '#F08EE6', + '#DCF190', + '#FDFA94', + '#C396ED', + '#9FD4FD', +]; diff --git a/packages/web-vue/components/color-picker/control-bar.tsx b/packages/web-vue/components/color-picker/control-bar.tsx new file mode 100644 index 000000000..dfa1b13e4 --- /dev/null +++ b/packages/web-vue/components/color-picker/control-bar.tsx @@ -0,0 +1,75 @@ +import { defineComponent, PropType, toRefs, computed } from 'vue'; +import { getPrefixCls } from '../_utils/global-config'; +import { Color } from './interface'; +import { useControlBlock } from './hooks/use-control-block'; + +export default defineComponent({ + name: 'ControlBar', + props: { + x: { + type: Number, + required: true, + }, + color: { + type: Object as PropType, + required: true, + }, + colorString: String, + type: String as PropType<'hue' | 'alpha'>, + onChange: Function as PropType<(x: number) => void>, + }, + setup(props) { + const prefixCls = getPrefixCls('color-picker'); + const rgb = computed(() => props.color.rgb); + + const { blockRef, handlerRef, onMouseDown } = useControlBlock({ + value: [props.x, 0], + onChange: (pos) => props.onChange?.(pos[0]), + }); + + const renderHandler = () => { + return ( +
+ ); + }; + + return () => { + if (props.type === 'alpha') { + return ( +
+
+ {renderHandler()} +
+
+ ); + } + return ( +
+ {renderHandler()} +
+ ); + }; + }, +}); diff --git a/packages/web-vue/components/color-picker/hooks/use-control-block.ts b/packages/web-vue/components/color-picker/hooks/use-control-block.ts new file mode 100644 index 000000000..442d10d98 --- /dev/null +++ b/packages/web-vue/components/color-picker/hooks/use-control-block.ts @@ -0,0 +1,62 @@ +import { ref } from 'vue'; + +interface ControlBlockParams { + value: [number, number]; + onChange: (value: [number, number]) => void; +} + +export const useControlBlock = ({ value, onChange }: ControlBlockParams) => { + const active = ref(false); + const blockRef = ref(); + const handlerRef = ref(); + + const getPercentNumber = (value: number, max: number) => { + if (value < 0) return 0; + if (value > max) return 1; + return value / max; + }; + + const setCurrentPosition = (ev: MouseEvent) => { + if (!blockRef.value) return; + const { clientX, clientY } = ev; + const rect = blockRef.value.getBoundingClientRect(); + const newValue: [number, number] = [ + getPercentNumber(clientX - rect.x, rect.width), + getPercentNumber(clientY - rect.y, rect.height), + ]; + if (newValue[0] !== value[0] || newValue[1] !== value[1]) { + onChange?.(newValue); + } + }; + + const removeListener = () => { + active.value = false; + window.removeEventListener('mousemove', onMouseMove); + window.removeEventListener('mouseup', removeListener); + window.removeEventListener('contextmenu', removeListener); + }; + + const onMouseDown = (ev: MouseEvent) => { + active.value = true; + setCurrentPosition(ev); + window.addEventListener('mousemove', onMouseMove); + window.addEventListener('mouseup', removeListener); + window.addEventListener('contextmenu', removeListener); + }; + + function onMouseMove(ev: MouseEvent) { + ev.preventDefault(); + if (ev.buttons > 0) { + setCurrentPosition(ev); + } else { + removeListener(); + } + } + + return { + active, + blockRef, + handlerRef, + onMouseDown, + }; +}; diff --git a/packages/web-vue/components/color-picker/index.ts b/packages/web-vue/components/color-picker/index.ts new file mode 100644 index 000000000..038dae9da --- /dev/null +++ b/packages/web-vue/components/color-picker/index.ts @@ -0,0 +1,18 @@ +import type { App } from 'vue'; +import type { ArcoOptions } from '../_utils/types'; +import { setGlobalConfig, getComponentPrefix } from '../_utils/global-config'; +import _ColorPicker from './color-picker'; + +const ColorPicker = Object.assign(_ColorPicker, { + install: (app: App, options?: ArcoOptions) => { + setGlobalConfig(app, options); + const componentPrefix = getComponentPrefix(options); + + app.component(componentPrefix + _ColorPicker.name, _ColorPicker); + }, +}); + +export type { RGB, HSV, Color } from './interface'; +export type ColorPickerInstance = InstanceType; + +export default ColorPicker; diff --git a/packages/web-vue/components/color-picker/input-alpha.tsx b/packages/web-vue/components/color-picker/input-alpha.tsx new file mode 100644 index 000000000..15b6ae8d5 --- /dev/null +++ b/packages/web-vue/components/color-picker/input-alpha.tsx @@ -0,0 +1,31 @@ +import { defineComponent, PropType } from 'vue'; +import { getPrefixCls } from '../_utils/global-config'; +import InputNumber from '../input-number'; + +export default defineComponent({ + name: 'InputAlpha', + props: { + value: { + type: Number, + required: true, + }, + disabled: Boolean, + onChange: Function as PropType<(value: number) => void>, + }, + setup(props) { + const prefixCls = getPrefixCls('color-picker'); + + return () => ( + '%' }} + min={0} + max={100} + disabled={props.disabled} + modelValue={Math.round(props.value * 100)} + onChange={(a = 100) => props.onChange?.(a / 100)} + /> + ); + }, +}); diff --git a/packages/web-vue/components/color-picker/input-hex.tsx b/packages/web-vue/components/color-picker/input-hex.tsx new file mode 100644 index 000000000..0ae3eb771 --- /dev/null +++ b/packages/web-vue/components/color-picker/input-hex.tsx @@ -0,0 +1,85 @@ +import { defineComponent, PropType, toRefs, watch } from 'vue'; +import { getPrefixCls } from '../_utils/global-config'; +import { Color, HSV } from './interface'; +import { hexToRgb, rgbToHsv } from '../_utils/color'; +import useState from '../_hooks/use-state'; +import Input, { InputGroup } from '../input'; +import InputAlpha from './input-alpha'; + +export default defineComponent({ + name: 'InputHex', + props: { + color: { + type: Object as PropType, + required: true, + }, + alpha: { + type: Number, + required: true, + }, + disabled: Boolean, + disabledAlpha: Boolean, + onHsvChange: Function as PropType<(value: HSV) => void>, + onAlphaChange: Function as PropType<(value: number) => void>, + }, + setup(props) { + const prefixCls = getPrefixCls('color-picker'); + const { color } = toRefs(props); + const [hex, setHex] = useState(color.value.hex); + + const handlerChange = (value: string) => { + const _rgb = hexToRgb(value) || { r: 255, g: 0, b: 0 }; + const hsv = rgbToHsv(_rgb.r, _rgb.g, _rgb.b); + props.onHsvChange?.(hsv); + }; + + const onInputChange = (value: string) => { + const matchValue = value.match(/[a-fA-F0-9]*/g)?.join('') ?? ''; + if (matchValue !== color.value.hex) { + handlerChange(matchValue.toUpperCase()); + } + }; + + const onPaste = (ev: ClipboardEvent) => { + if (!ev.clipboardData) return; + let text = ev.clipboardData.getData('Text'); + if (text.startsWith('#')) { + text = text.slice(1); + } + onInputChange(text); + ev.preventDefault(); + }; + + watch(color, () => { + if (color.value.hex !== hex.value) { + setHex(color.value.hex); + } + }); + + return () => ( + + '#' }} + size="mini" + maxLength={6} + disabled={props.disabled} + modelValue={hex.value} + onInput={setHex} + onChange={onInputChange} + onBlur={() => handlerChange} + onPressEnter={() => handlerChange} + // @ts-ignore + onPaste={onPaste} + /> + {!props.disabledAlpha && ( + + )} + + ); + }, +}); diff --git a/packages/web-vue/components/color-picker/input-rgb.tsx b/packages/web-vue/components/color-picker/input-rgb.tsx new file mode 100644 index 000000000..9eae2afa9 --- /dev/null +++ b/packages/web-vue/components/color-picker/input-rgb.tsx @@ -0,0 +1,59 @@ +import { defineComponent, PropType, toRefs } from 'vue'; +import { getPrefixCls } from '../_utils/global-config'; +import { Color, HSV, RGB } from './interface'; +import { rgbToHsv } from '../_utils/color'; +import { InputGroup } from '../input'; +import InputNumber from '../input-number'; +import InputAlpha from './input-alpha'; + +export default defineComponent({ + name: 'InputRgb', + props: { + color: { + type: Object as PropType, + required: true, + }, + alpha: { + type: Number, + required: true, + }, + disabled: Boolean, + disabledAlpha: Boolean, + onHsvChange: Function as PropType<(value: HSV) => void>, + onAlphaChange: Function as PropType<(value: number) => void>, + }, + setup(props) { + const prefixCls = getPrefixCls('color-picker'); + const { color } = toRefs(props); + + const handleChange = (value: Partial) => { + const newRGB = { ...color.value.rgb, ...value }; + const hsv = rgbToHsv(newRGB.r, newRGB.g, newRGB.b); + props.onHsvChange?.(hsv); + }; + + return () => ( + + {(['r', 'g', 'b'] as Array).map((channel) => ( + handleChange({ [channel]: val })} + /> + ))} + {!props.disabledAlpha && ( + + )} + + ); + }, +}); diff --git a/packages/web-vue/components/color-picker/interface.ts b/packages/web-vue/components/color-picker/interface.ts new file mode 100644 index 000000000..5b2f0480e --- /dev/null +++ b/packages/web-vue/components/color-picker/interface.ts @@ -0,0 +1,17 @@ +export interface RGB { + r: number; + g: number; + b: number; +} + +export interface HSV { + h: number; + s: number; + v: number; +} + +export interface Color { + hsv: HSV; + rgb: RGB; + hex: string; +} diff --git a/packages/web-vue/components/color-picker/palette.tsx b/packages/web-vue/components/color-picker/palette.tsx new file mode 100644 index 000000000..d7218dbe5 --- /dev/null +++ b/packages/web-vue/components/color-picker/palette.tsx @@ -0,0 +1,48 @@ +import { defineComponent, computed, PropType, toRefs, watch } from 'vue'; +import { getPrefixCls } from '../_utils/global-config'; +import { hsvToRgb } from '../_utils/color'; +import { Color } from './interface'; +import { useControlBlock } from './hooks/use-control-block'; + +export default defineComponent({ + name: 'Palette', + props: { + color: { + type: Object as PropType, + required: true, + }, + onChange: Function as PropType<(s: number, v: number) => void>, + }, + setup(props) { + const prefixCls = getPrefixCls('color-picker'); + const hsv = computed(() => props.color.hsv); + + const { blockRef, handlerRef, onMouseDown } = useControlBlock({ + value: [hsv.value.s, 1 - hsv.value.v], + onChange: (value) => props.onChange?.(value[0], 1 - value[1]), + }); + + const hueColor = computed(() => { + const rgb = hsvToRgb(hsv.value.h, 1, 1); + return `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`; + }); + + return () => ( +
+
+
+ ); + }, +}); diff --git a/packages/web-vue/components/color-picker/panel.tsx b/packages/web-vue/components/color-picker/panel.tsx new file mode 100644 index 000000000..0ec53c519 --- /dev/null +++ b/packages/web-vue/components/color-picker/panel.tsx @@ -0,0 +1,178 @@ +import { PropType, computed, defineComponent, ref } from 'vue'; +import { getPrefixCls } from '../_utils/global-config'; +import { hexToRgb, rgbToHsv } from '../_utils/color'; +import { Color, HSV } from './interface'; +import { useI18n } from '../locale'; +import useState from '../_hooks/use-state'; +import ControlBar from './control-bar'; +import Palette from './palette'; +import Select from '../select'; +import InputRgb from './input-rgb'; +import InputHex from './input-hex'; + +export default defineComponent({ + name: 'Panel', + props: { + color: { + type: Object as PropType, + required: true, + }, + alpha: { + type: Number, + required: true, + }, + colorString: String, + disabled: Boolean, + disabledAlpha: Boolean, + showHistory: Boolean, + showPreset: Boolean, + format: String as PropType<'hex' | 'rgb'>, + historyColors: Array as PropType, + presetColors: Array as PropType, + onAlphaChange: Function as PropType<(alpha: number) => void>, + onHsvChange: Function as PropType<(hsv: HSV) => void>, + }, + setup(props) { + const { t } = useI18n(); + const prefixCls = getPrefixCls('color-picker'); + const hsv = computed(() => props.color.hsv); + const [format, setFormat] = useState<'hex' | 'rgb'>(props.format || 'hex'); + + const onChange = (value: any) => { + setFormat(value); + }; + + const showCopy = ref(false); + + const onHexInputChange = (value: string) => { + const _rgb = hexToRgb(value) || { r: 255, g: 0, b: 0 }; + const _hsv = rgbToHsv(_rgb.r, _rgb.g, _rgb.b); + props.onHsvChange?.(_hsv); + }; + + const renderInput = () => { + const commonProps = { + color: props.color, + alpha: props.alpha, + disabled: props.disabled, + disabledAlpha: props.disabledAlpha, + onHsvChange: props.onHsvChange, + onAlphaChange: props.onAlphaChange, + }; + if (format.value === 'rgb') { + return ; + } + return ; + }; + + const renderColorBlock = (color: string) => { + return ( +
onHexInputChange(color)} + > +
+
+ ); + }; + + const renderColorSection = (text: string, colors: string[] | undefined) => ( +
+
{text}
+
+ {colors?.length ? ( +
+ {colors.map(renderColorBlock)} +
+ ) : ( + + {t('colorPicker.empty')} + + )} +
+
+ ); + + const renderColorSec = () => { + if (props.showHistory || props.showPreset) { + return ( +
+ {props.showHistory && + renderColorSection(t('colorPicker.history'), props.historyColors)} + {props.showPreset && + renderColorSection(t('colorPicker.preset'), props.presetColors)} +
+ ); + } + return null; + }; + + return () => ( +
+ props.onHsvChange?.({ h: hsv.value.h, s, v })} + /> +
+
+
+ + props.onHsvChange?.({ h, s: hsv.value.s, v: hsv.value.v }) + } + /> + {!props.disabledAlpha && ( + + )} +
+
+
+
+ - %
+
%
@@ -205,7 +205,7 @@ exports[` demo: render [only-panel] correctly 1`] = `
# - %
+
%
diff --git a/packages/web-vue/components/tabs/CHANGELOG.md b/packages/web-vue/components/tabs/CHANGELOG.md index ffa9fcad6..b8ec2346e 100644 --- a/packages/web-vue/components/tabs/CHANGELOG.md +++ b/packages/web-vue/components/tabs/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.0 + +`2024-03-15` + +### 💅 Style + +- fix transition animation for tab title ([#3008](https://github.com/arco-design/arco-design-vue/pull/3008)) + + ## 2.45.1 `2023-04-14` diff --git a/packages/web-vue/components/tabs/CHANGELOG.zh-CN.md b/packages/web-vue/components/tabs/CHANGELOG.zh-CN.md index d367c8964..cf22bca81 100644 --- a/packages/web-vue/components/tabs/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/tabs/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.0 + +`2024-03-15` + +### 💅 样式更新 + +- 修复 title 过渡动画效果 ([#3008](https://github.com/arco-design/arco-design-vue/pull/3008)) + + ## 2.45.1 `2023-04-14` diff --git a/packages/web-vue/components/tree-select/CHANGELOG.md b/packages/web-vue/components/tree-select/CHANGELOG.md index 7b491d285..e756449e4 100644 --- a/packages/web-vue/components/tree-select/CHANGELOG.md +++ b/packages/web-vue/components/tree-select/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.0 + +`2024-03-15` + +### 🆕 Feature + +- Added `input-value` related properties ([#3024](https://github.com/arco-design/arco-design-vue/pull/3024)) + + ## 2.49.1 `2023-07-24` diff --git a/packages/web-vue/components/tree-select/CHANGELOG.zh-CN.md b/packages/web-vue/components/tree-select/CHANGELOG.zh-CN.md index 761966bb1..55bc19472 100644 --- a/packages/web-vue/components/tree-select/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/tree-select/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.0 + +`2024-03-15` + +### 🆕 新增功能 + +- 新增 `input-value` 相关属性 ([#3024](https://github.com/arco-design/arco-design-vue/pull/3024)) + + ## 2.49.1 `2023-07-24` diff --git a/packages/web-vue/components/tree-select/README.en-US.md b/packages/web-vue/components/tree-select/README.en-US.md index 1faab0583..115f69b9b 100644 --- a/packages/web-vue/components/tree-select/README.en-US.md +++ b/packages/web-vue/components/tree-select/README.en-US.md @@ -80,14 +80,17 @@ description: The tree structure data can be selected. |scrollbar|Whether to enable virtual scroll bar|`boolean \| ScrollbarProps`|`true`|2.39.0| |show-header-on-empty|Whether to display the header in the empty state|`boolean`|`false`|| |show-footer-on-empty|Whether to display the footer in the empty state|`boolean`|`false`|| +|input-value **(v-model)**|The value of the input|`string`|`-`|2.55.0| +|default-input-value|The default value of the input (uncontrolled mode)|`string`|`''`|2.55.0| ### `` Events -|Event Name|Description|Parameters| -|---|---|---| -|change|Trigger when the value changes|value: `string \| number \| LabelValue \| Array \| LabelValue[] \| undefined`| -|popup-visible-change|Triggered when the status of the drop-down box changes|visible: `boolean`| -|search|Triggered when the search value changes|searchKey: `string`| -|clear|Triggered when clear is clicked|-| +|Event Name|Description|Parameters|version| +|---|---|---|:---| +|change|Trigger when the value changes|value: `string \| number \| LabelValue \| Array \| LabelValue[] \| undefined`|| +|popup-visible-change|Triggered when the status of the drop-down box changes|visible: `boolean`|| +|search|Triggered when the search value changes|searchKey: `string`|| +|clear|Triggered when clear is clicked|-|| +|input-value-change|Triggered when the value of the input changes|inputValue: `string`|2.55.0| ### `` Slots |Slot Name|Description|Parameters|version| @@ -100,7 +103,7 @@ description: The tree structure data can be selected. |empty|Custom empty data display|-|| |footer|The footer of the drop-down box|-|| |tree-slot-extra|Render additional node content of the tree component|-|| -|tree-slot-title|Custom the node title of the tree component|-|| +|tree-slot-title|Custom the node title of the tree component|title: `string`|| |tree-slot-icon|Custom node icon for the tree component|node: `TreeNodeData`|2.18.0| |tree-slot-switcher-icon|Custom switcher icon for the tree component|-|| diff --git a/packages/web-vue/components/tree-select/README.zh-CN.md b/packages/web-vue/components/tree-select/README.zh-CN.md index 189f8b078..153252dcd 100644 --- a/packages/web-vue/components/tree-select/README.zh-CN.md +++ b/packages/web-vue/components/tree-select/README.zh-CN.md @@ -78,14 +78,17 @@ description: 可以对树形结构数据进行选择。 |scrollbar|是否开启虚拟滚动条|`boolean \| ScrollbarProps`|`true`|2.39.0| |show-header-on-empty|空状态时是否显示header|`boolean`|`false`|| |show-footer-on-empty|空状态时是否显示footer|`boolean`|`false`|| +|input-value **(v-model)**|输入框的值|`string`|`-`|2.55.0| +|default-input-value|输入框的默认值(非受控模式)|`string`|`''`|2.55.0| ### `` Events -|事件名|描述|参数| -|---|---|---| -|change|值改变时触发|value: `string \| number \| LabelValue \| Array \| LabelValue[] \| undefined`| -|popup-visible-change|下拉框显示状态改变时触发|visible: `boolean`| -|search|搜索值变化时触发|searchKey: `string`| -|clear|点击清除时触发|-| +|事件名|描述|参数|版本| +|---|---|---|:---| +|change|值改变时触发|value: `string \| number \| LabelValue \| Array \| LabelValue[] \| undefined`|| +|popup-visible-change|下拉框显示状态改变时触发|visible: `boolean`|| +|search|搜索值变化时触发|searchKey: `string`|| +|clear|点击清除时触发|-|| +|input-value-change|输入框的值发生改变时触发|inputValue: `string`|2.55.0| ### `` Slots |插槽名|描述|参数|版本| @@ -98,7 +101,7 @@ description: 可以对树形结构数据进行选择。 |empty|定制空数据展示|-|| |footer|自定义下拉框页脚|-|| |tree-slot-extra|定制 tree 组件的渲染额外节点内容|-|| -|tree-slot-title|定制 tree 组件的节点标题|-|| +|tree-slot-title|定制 tree 组件的节点标题|title: `string`|| |tree-slot-icon|定制 tree 组件的节点图标|node: `TreeNodeData`|2.18.0| |tree-slot-switcher-icon|定制 tree 组件的 switcher 图标|-|| diff --git a/packages/web-vue/components/tree/CHANGELOG.md b/packages/web-vue/components/tree/CHANGELOG.md index c59e37474..8f4e14124 100644 --- a/packages/web-vue/components/tree/CHANGELOG.md +++ b/packages/web-vue/components/tree/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.0 + +`2024-03-15` + +### 🆕 Feature + +- The `title` slot has a new `title` parameter ([#3024](https://github.com/arco-design/arco-design-vue/pull/3024)) + + ## 2.54.6 `2024-03-01` diff --git a/packages/web-vue/components/tree/CHANGELOG.zh-CN.md b/packages/web-vue/components/tree/CHANGELOG.zh-CN.md index 386f9d50d..0ac7b2e01 100644 --- a/packages/web-vue/components/tree/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/tree/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.0 + +`2024-03-15` + +### 🆕 新增功能 + +- `title` 插槽新增 `title` 参数 ([#3024](https://github.com/arco-design/arco-design-vue/pull/3024)) + + ## 2.54.6 `2024-03-01` diff --git a/packages/web-vue/components/tree/README.en-US.md b/packages/web-vue/components/tree/README.en-US.md index 03c4e5b40..9c3b2d59f 100644 --- a/packages/web-vue/components/tree/README.en-US.md +++ b/packages/web-vue/components/tree/README.en-US.md @@ -106,7 +106,7 @@ description: For content with many levels, such as folders, catalogs, and organi |Slot Name|Description|Parameters|version| |---|---|---|:---| -|title|Title|-|| +|title|Title|title: `string`|| |extra|Render additional node content|-|| |drag-icon|Custom drag icon|node: `TreeNodeData`|| |loading-icon|Custom loading icon|-|| diff --git a/packages/web-vue/components/tree/README.zh-CN.md b/packages/web-vue/components/tree/README.zh-CN.md index f08db8fce..9045e4d8e 100644 --- a/packages/web-vue/components/tree/README.zh-CN.md +++ b/packages/web-vue/components/tree/README.zh-CN.md @@ -104,7 +104,7 @@ description: 对于文件夹、分类目录、组织架构等层级较多的内 |插槽名|描述|参数|版本| |---|:---:|---|:---| -|title|标题|-|| +|title|标题|title: `string`|| |extra|渲染额外的节点内容|-|| |drag-icon|定制 drag 图标|node: `TreeNodeData`|| |loading-icon|定制 loading 图标|-|| diff --git a/packages/web-vue/package.json b/packages/web-vue/package.json index 4d8b49d6c..575df2ec2 100644 --- a/packages/web-vue/package.json +++ b/packages/web-vue/package.json @@ -1,6 +1,6 @@ { "name": "@arco-design/web-vue", - "version": "2.54.6", + "version": "2.55.0", "description": "Arco Design Vue 2.0: A Vue.js 3 UI Library", "keywords": [ "arco", From 62de68500f20b1a1d31552f34e85a5c3ef6157fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 29 Mar 2024 16:32:00 +0800 Subject: [PATCH 19/45] fix(empty): fix automatically inherited warn (#3048) --- packages/web-vue/components/empty/empty.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/web-vue/components/empty/empty.tsx b/packages/web-vue/components/empty/empty.tsx index 11ee816c0..ab2aca75e 100644 --- a/packages/web-vue/components/empty/empty.tsx +++ b/packages/web-vue/components/empty/empty.tsx @@ -6,6 +6,7 @@ import { configProviderInjectionKey } from '../config-provider/context'; export default defineComponent({ name: 'Empty', + inheritAttrs: false, props: { /** * @zh 描述内容 @@ -32,7 +33,7 @@ export default defineComponent({ * @en Image/Icon * @slot image */ - setup(props, { slots }) { + setup(props, { slots, attrs }) { const prefixCls = getPrefixCls('empty'); const { t } = useI18n(); const configCtx = inject(configProviderInjectionKey, undefined); @@ -47,7 +48,7 @@ export default defineComponent({ } return ( -
+
{slots.image?.() ?? (props.imgSrc ? ( From cbcbe674e150eafda0a53de01e2b99b111b4ebb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 29 Mar 2024 16:34:17 +0800 Subject: [PATCH 20/45] fix(trigger): fix animation direction for position popup (#3045) --- packages/web-vue/components/trigger/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web-vue/components/trigger/utils.ts b/packages/web-vue/components/trigger/utils.ts index 362ecc159..b2914a068 100644 --- a/packages/web-vue/components/trigger/utils.ts +++ b/packages/web-vue/components/trigger/utils.ts @@ -368,7 +368,7 @@ export const getTransformOrigin = (position: TriggerPosition) => { let originY = '0'; if (['left', 'right'].includes(position)) { originY = '50%'; - } else if (['top', 'tl', 'tr', 'lt', 'rt'].includes(position)) { + } else if (['top', 'tl', 'tr', 'lb', 'rb'].includes(position)) { originY = '100%'; } return `${originX} ${originY}`; From 6f2e371e70cb764437c66d376833d960b9e5db78 Mon Sep 17 00:00:00 2001 From: vhikZhangchao Date: Fri, 29 Mar 2024 16:52:47 +0800 Subject: [PATCH 21/45] Update zh-cn.ts (#3028) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 顏 to 颜 --- packages/web-vue/components/locale/lang/zh-cn.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web-vue/components/locale/lang/zh-cn.ts b/packages/web-vue/components/locale/lang/zh-cn.ts index f6c466c66..f0baa5eff 100644 --- a/packages/web-vue/components/locale/lang/zh-cn.ts +++ b/packages/web-vue/components/locale/lang/zh-cn.ts @@ -195,7 +195,7 @@ const lang: ArcoLang = { }, }, colorPicker: { - history: '最近使用顏色', + history: '最近使用颜色', preset: '系统预设颜色', empty: '暂无', }, From d8866609576baa2b251e16285b154d88f089bca1 Mon Sep 17 00:00:00 2001 From: betavs <34408516+betavs@users.noreply.github.com> Date: Fri, 29 Mar 2024 17:56:15 +0800 Subject: [PATCH 22/45] fix(upload): example code exception (#3037) --- .../web-vue/components/upload/__demo__/submit.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/web-vue/components/upload/__demo__/submit.md b/packages/web-vue/components/upload/__demo__/submit.md index 858cc5336..a1f73e085 100644 --- a/packages/web-vue/components/upload/__demo__/submit.md +++ b/packages/web-vue/components/upload/__demo__/submit.md @@ -49,10 +49,8 @@ export default { const submitOne = (e) => { e.stopPropagation(); - console.log(files.value) - uploadRef.value.submit( - files.value.find((x) => x.status === 'init') - ); + console.log(files.value); + uploadRef.value.submit(files.value.find((x) => x.status === 'init')); }; const submit = (e) => { @@ -65,12 +63,12 @@ export default { }; return { + uploadRef, files, submitOne, submit, - onChange - } - + onChange, + }; }, }; From ce24e71392596fe18f47630a06710038d1d136bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 29 Mar 2024 18:08:13 +0800 Subject: [PATCH 23/45] fix(color-picker): fix v-model not working (#3030) --- .../components/color-picker/color-picker.tsx | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/web-vue/components/color-picker/color-picker.tsx b/packages/web-vue/components/color-picker/color-picker.tsx index eacc46347..9d3bf51a7 100644 --- a/packages/web-vue/components/color-picker/color-picker.tsx +++ b/packages/web-vue/components/color-picker/color-picker.tsx @@ -5,7 +5,6 @@ import { colors } from './colors'; import { HSV } from './interface'; import Panel from './panel'; import Trigger, { TriggerProps } from '../trigger'; -import useMergeState from '../_hooks/use-merge-state'; import useState from '../_hooks/use-state'; import { formatInputToHSVA, @@ -133,10 +132,9 @@ export default defineComponent({ }, setup(props, { emit, slots }) { const prefixCls = getPrefixCls('color-picker'); - const [mergeValue, setMergeValue] = useMergeState( - props.defaultValue, - reactive({ value: props.modelValue }) - ); + const mergeValue = computed(() => { + return props.modelValue ?? props.defaultValue; + }); const formatInput = computed(() => { return formatInputToHSVA(mergeValue.value || ''); @@ -149,6 +147,18 @@ export default defineComponent({ v: formatInput.value.v, }); + watch( + () => formatInput.value, + (value) => { + setAlpha(value.a); + setHsv({ + h: value.h, + s: value.s, + v: value.v, + }); + } + ); + const color = computed(() => { const rgb = hsvToRgb(hsv.value.h, hsv.value.s, hsv.value.v); const hex = rgbToHex(rgb.r, rgb.g, rgb.b); @@ -177,7 +187,6 @@ export default defineComponent({ }); watch(formatValue, (value) => { - setMergeValue(value); emit('update:modelValue', value); emit('change', value); }); From f4717b6851c3b12c12afd6313f28792dc252b800 Mon Sep 17 00:00:00 2001 From: A_Bo Date: Fri, 29 Mar 2024 18:08:56 +0800 Subject: [PATCH 24/45] style(tree): fix scrollheight calculation of inline-block element (#3044) Co-authored-by: liwenbo --- packages/web-vue/components/tree/style/index.less | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/web-vue/components/tree/style/index.less b/packages/web-vue/components/tree/style/index.less index 471541574..df2a62a70 100644 --- a/packages/web-vue/components/tree/style/index.less +++ b/packages/web-vue/components/tree/style/index.less @@ -187,6 +187,7 @@ width: @tree-size-default-icon-size; height: 100%; margin-right: @tree-margin-switcher-icon-right; + vertical-align: top; } &-node-draggable { From fd5f01fac176a555b62622dd3b0e95579fa56e5d Mon Sep 17 00:00:00 2001 From: wangchen Date: Fri, 29 Mar 2024 18:25:39 +0800 Subject: [PATCH 25/45] release version --- packages/web-vue/CHANGELOG.md | 16 ++++++ packages/web-vue/CHANGELOG.zh-CN.md | 16 ++++++ .../components/color-picker/CHANGELOG.md | 10 ++++ .../color-picker/CHANGELOG.zh-CN.md | 10 ++++ .../__test__/__snapshots__/demo.test.ts.snap | 2 +- .../web-vue/components/empty/CHANGELOG.md | 9 ++++ .../components/empty/CHANGELOG.zh-CN.md | 9 ++++ .../tree-select/__demo__/virtual.md | 54 +++++++++++-------- .../__test__/__snapshots__/demo.test.ts.snap | 6 ++- packages/web-vue/components/tree/CHANGELOG.md | 9 ++++ .../components/tree/CHANGELOG.zh-CN.md | 9 ++++ .../web-vue/components/trigger/CHANGELOG.md | 9 ++++ .../components/trigger/CHANGELOG.zh-CN.md | 9 ++++ .../web-vue/components/upload/CHANGELOG.md | 5 ++ .../components/upload/CHANGELOG.zh-CN.md | 5 ++ packages/web-vue/package.json | 2 +- 16 files changed, 154 insertions(+), 26 deletions(-) diff --git a/packages/web-vue/CHANGELOG.md b/packages/web-vue/CHANGELOG.md index 97ccacc6f..fc949f32b 100644 --- a/packages/web-vue/CHANGELOG.md +++ b/packages/web-vue/CHANGELOG.md @@ -2,6 +2,22 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 🐛 BugFix + +- **empty:** fix automatically inherited warn ([#3048](https://github.com/arco-design/arco-design-vue/pull/3048)) +- **trigger:** fix animation direction for position popup ([#3045](https://github.com/arco-design/arco-design-vue/pull/3045)) +- **color-picker:** fix v-model not working ([#3030](https://github.com/arco-design/arco-design-vue/pull/3030)) +- **color-picker:** Fix copywriting errors ([#3028](https://github.com/arco-design/arco-design-vue/pull/3028)) + +### 💅 Style + +- **tree:** fix scrollHeight calculation exception problem ([#3044](https://github.com/arco-design/arco-design-vue/pull/3044)) + + ## 2.55.0 `2024-03-15` diff --git a/packages/web-vue/CHANGELOG.zh-CN.md b/packages/web-vue/CHANGELOG.zh-CN.md index e8312672c..55c28c0fd 100644 --- a/packages/web-vue/CHANGELOG.zh-CN.md +++ b/packages/web-vue/CHANGELOG.zh-CN.md @@ -2,6 +2,22 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 🐛 问题修复 + +- **empty:** 修复属性自动继承的错误 ([#3048](https://github.com/arco-design/arco-design-vue/pull/3048)) +- **trigger:** 修正位置的弹出动画方向 ([#3045](https://github.com/arco-design/arco-design-vue/pull/3045)) +- **color-picker:** 修复双向绑定不生效问题 ([#3030](https://github.com/arco-design/arco-design-vue/pull/3030)) +- **color-picker:** 修复文案错误 ([#3028](https://github.com/arco-design/arco-design-vue/pull/3028)) + +### 💅 样式更新 + +- **tree:** 修复scrollHeight计算异常问题 ([#3044](https://github.com/arco-design/arco-design-vue/pull/3044)) + + ## 2.55.0 `2024-03-15` diff --git a/packages/web-vue/components/color-picker/CHANGELOG.md b/packages/web-vue/components/color-picker/CHANGELOG.md index 8eb1c9e6d..1b9818275 100644 --- a/packages/web-vue/components/color-picker/CHANGELOG.md +++ b/packages/web-vue/components/color-picker/CHANGELOG.md @@ -2,6 +2,16 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 🐛 BugFix + +- fix v-model not working ([#3030](https://github.com/arco-design/arco-design-vue/pull/3030)) +- Fix copywriting errors ([#3028](https://github.com/arco-design/arco-design-vue/pull/3028)) + + ## 2.55.0 `2024-03-15` diff --git a/packages/web-vue/components/color-picker/CHANGELOG.zh-CN.md b/packages/web-vue/components/color-picker/CHANGELOG.zh-CN.md index 995d131a7..8c818a47a 100644 --- a/packages/web-vue/components/color-picker/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/color-picker/CHANGELOG.zh-CN.md @@ -2,6 +2,16 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 🐛 问题修复 + +- 修复双向绑定不生效问题 ([#3030](https://github.com/arco-design/arco-design-vue/pull/3030)) +- 修复文案错误 ([#3028](https://github.com/arco-design/arco-design-vue/pull/3028)) + + ## 2.55.0 `2024-03-15` diff --git a/packages/web-vue/components/color-picker/__test__/__snapshots__/demo.test.ts.snap b/packages/web-vue/components/color-picker/__test__/__snapshots__/demo.test.ts.snap index 4b3e72836..73476617c 100644 --- a/packages/web-vue/components/color-picker/__test__/__snapshots__/demo.test.ts.snap +++ b/packages/web-vue/components/color-picker/__test__/__snapshots__/demo.test.ts.snap @@ -100,7 +100,7 @@ exports[` demo: render [only-panel] correctly 1`] = `
-
最近使用顏色
+
最近使用颜色
暂无
diff --git a/packages/web-vue/components/empty/CHANGELOG.md b/packages/web-vue/components/empty/CHANGELOG.md index cd85df4c9..915d857ea 100644 --- a/packages/web-vue/components/empty/CHANGELOG.md +++ b/packages/web-vue/components/empty/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 🐛 BugFix + +- fix automatically inherited warn ([#3048](https://github.com/arco-design/arco-design-vue/pull/3048)) + + ## 2.47.0 `2023-06-02` diff --git a/packages/web-vue/components/empty/CHANGELOG.zh-CN.md b/packages/web-vue/components/empty/CHANGELOG.zh-CN.md index 3b018f27e..6922fe567 100644 --- a/packages/web-vue/components/empty/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/empty/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 🐛 问题修复 + +- 修复属性自动继承的错误 ([#3048](https://github.com/arco-design/arco-design-vue/pull/3048)) + + ## 2.47.0 `2023-06-02` diff --git a/packages/web-vue/components/tree-select/__demo__/virtual.md b/packages/web-vue/components/tree-select/__demo__/virtual.md index 50d7614a1..564f8b6d3 100644 --- a/packages/web-vue/components/tree-select/__demo__/virtual.md +++ b/packages/web-vue/components/tree-select/__demo__/virtual.md @@ -12,45 +12,53 @@ title: ## en-US -By specifying `treeProps.virtualListProps` to turn on the virtual list, high performance can be obtained when a large amount of data is used. +By specifying `treeProps.virtualListProps` to turn on the virtual list, high performance can be obtained when a large +amount of data is used. ```vue ``` diff --git a/packages/web-vue/components/tree-select/__test__/__snapshots__/demo.test.ts.snap b/packages/web-vue/components/tree-select/__test__/__snapshots__/demo.test.ts.snap index 622034f21..bd5246171 100644 --- a/packages/web-vue/components/tree-select/__test__/__snapshots__/demo.test.ts.snap +++ b/packages/web-vue/components/tree-select/__test__/__snapshots__/demo.test.ts.snap @@ -229,7 +229,11 @@ exports[` demo: render [trigger-element] correctly 1`] = ` `; exports[` demo: render [virtual] correctly 1`] = ` -" +" + + + + " `; diff --git a/packages/web-vue/components/tree/CHANGELOG.md b/packages/web-vue/components/tree/CHANGELOG.md index 8f4e14124..c0498c14d 100644 --- a/packages/web-vue/components/tree/CHANGELOG.md +++ b/packages/web-vue/components/tree/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 💅 Style + +- fix scrollHeight calculation exception problem ([#3044](https://github.com/arco-design/arco-design-vue/pull/3044)) + + ## 2.55.0 `2024-03-15` diff --git a/packages/web-vue/components/tree/CHANGELOG.zh-CN.md b/packages/web-vue/components/tree/CHANGELOG.zh-CN.md index 0ac7b2e01..7a131738c 100644 --- a/packages/web-vue/components/tree/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/tree/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 💅 样式更新 + +- 修复scrollHeight计算异常问题 ([#3044](https://github.com/arco-design/arco-design-vue/pull/3044)) + + ## 2.55.0 `2024-03-15` diff --git a/packages/web-vue/components/trigger/CHANGELOG.md b/packages/web-vue/components/trigger/CHANGELOG.md index fa57061cb..fde72a096 100644 --- a/packages/web-vue/components/trigger/CHANGELOG.md +++ b/packages/web-vue/components/trigger/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 🐛 BugFix + +- fix animation direction for position popup ([#3045](https://github.com/arco-design/arco-design-vue/pull/3045)) + + ## 2.46.0 `2023-05-12` diff --git a/packages/web-vue/components/trigger/CHANGELOG.zh-CN.md b/packages/web-vue/components/trigger/CHANGELOG.zh-CN.md index 6b1a81e82..3a6dbed21 100644 --- a/packages/web-vue/components/trigger/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/trigger/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + +### 🐛 问题修复 + +- 修正位置的弹出动画方向 ([#3045](https://github.com/arco-design/arco-design-vue/pull/3045)) + + ## 2.46.0 `2023-05-12` diff --git a/packages/web-vue/components/upload/CHANGELOG.md b/packages/web-vue/components/upload/CHANGELOG.md index abd153f69..817930d89 100644 --- a/packages/web-vue/components/upload/CHANGELOG.md +++ b/packages/web-vue/components/upload/CHANGELOG.md @@ -2,6 +2,11 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + + ## 2.44.6 `2023-03-31` diff --git a/packages/web-vue/components/upload/CHANGELOG.zh-CN.md b/packages/web-vue/components/upload/CHANGELOG.zh-CN.md index 75d06f610..2ba653e46 100644 --- a/packages/web-vue/components/upload/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/upload/CHANGELOG.zh-CN.md @@ -2,6 +2,11 @@ changelog: true ``` +## 2.55.1 + +`2024-03-29` + + ## 2.44.6 `2023-03-31` diff --git a/packages/web-vue/package.json b/packages/web-vue/package.json index 575df2ec2..62c6b1afb 100644 --- a/packages/web-vue/package.json +++ b/packages/web-vue/package.json @@ -1,6 +1,6 @@ { "name": "@arco-design/web-vue", - "version": "2.55.0", + "version": "2.55.1", "description": "Arco Design Vue 2.0: A Vue.js 3 UI Library", "keywords": [ "arco", From 3b84ac3bdef3606f3e34051d4215992ed5cf69e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Thu, 9 May 2024 19:45:22 +0800 Subject: [PATCH 26/45] fix(transfer): fix disabled behavior in transfer simple mode (#3067) --- .../components/transfer/transfer-list-item.tsx | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/web-vue/components/transfer/transfer-list-item.tsx b/packages/web-vue/components/transfer/transfer-list-item.tsx index 6117b7df2..e6a5ee3cb 100644 --- a/packages/web-vue/components/transfer/transfer-list-item.tsx +++ b/packages/web-vue/components/transfer/transfer-list-item.tsx @@ -32,14 +32,12 @@ export default defineComponent({ const transferCtx = inject(transferInjectionKey, undefined); const handleClick = () => { - if (!props.simple) { - return; + if (props.simple && !props.disabled) { + transferCtx?.moveTo( + [props.data.value], + props.type === 'target' ? 'source' : 'target' + ); } - - transferCtx?.moveTo( - [props.data.value], - props.type === 'target' ? 'source' : 'target' - ); }; const cls = computed(() => [ From 151ae62eaec84035d759ce0189983b7e8519719c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Thu, 9 May 2024 19:46:25 +0800 Subject: [PATCH 27/45] fix(upload): import missing image styles for upload component (#3101) --- packages/web-vue/components/upload/style/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/web-vue/components/upload/style/index.ts b/packages/web-vue/components/upload/style/index.ts index efa120ab7..1728a2106 100644 --- a/packages/web-vue/components/upload/style/index.ts +++ b/packages/web-vue/components/upload/style/index.ts @@ -2,4 +2,5 @@ import '../../style/index.less'; import '../../button/style'; import '../../trigger/style'; import '../../progress/style'; +import '../../image/style'; import './index.less'; From ac444e58b9279e8470f31499db7a0e0d23cb2660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Thu, 9 May 2024 20:04:50 +0800 Subject: [PATCH 28/45] fix(color-picker): Optimize background overflow for color control bar (#3116) --- packages/web-vue/components/color-picker/style/index.less | 3 ++- packages/web-vue/components/color-picker/style/token.less | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/web-vue/components/color-picker/style/index.less b/packages/web-vue/components/color-picker/style/index.less index e64bf6dda..d160e2926 100644 --- a/packages/web-vue/components/color-picker/style/index.less +++ b/packages/web-vue/components/color-picker/style/index.less @@ -216,6 +216,7 @@ transparent 0 ); background-size: 8px 8px; + border-radius: @color-control-bar-border-radius; } .@{color-picker-prefix-cls}-control-bar { @@ -224,7 +225,7 @@ width: @color-control-bar-width; height: @color-control-bar-height; border: 1px solid @color-panel-border-color; - border-radius: 10px; + border-radius: @color-control-bar-border-radius; cursor: pointer; .@{color-picker-prefix-cls}-handler { diff --git a/packages/web-vue/components/color-picker/style/token.less b/packages/web-vue/components/color-picker/style/token.less index 229960947..0cca0dc90 100644 --- a/packages/web-vue/components/color-picker/style/token.less +++ b/packages/web-vue/components/color-picker/style/token.less @@ -51,6 +51,7 @@ @color-control-bar-height: 14px; @color-control-bar-handle-size: @size-4; @color-control-bar-alpha-margin-top: @spacing-6; +@color-control-bar-border-radius: 10px; @color-panel-input-margin-top: @spacing-6; @color-panel-input-group-margin-left: @spacing-6; From 03a661de821191e43ee3daed254507d5a397a8f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=BC=B9?= <810335188@qq.com> Date: Thu, 9 May 2024 20:12:40 +0800 Subject: [PATCH 29/45] fix(docs): should be 1 instead of 2 in form FAQ (#3078) --- packages/web-vue/components/form/README.en-US.md | 2 +- packages/web-vue/components/form/README.zh-CN.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web-vue/components/form/README.en-US.md b/packages/web-vue/components/form/README.en-US.md index c4693acbc..93f2395f7 100644 --- a/packages/web-vue/components/form/README.en-US.md +++ b/packages/web-vue/components/form/README.en-US.md @@ -218,7 +218,7 @@ const data = reactive({ ] }) ```` -At this point, if you want to specify the value corresponding to the current `form-item` as `id: '2222'`, you need to set `field="people.2.id"`, and the separator in the value needs to use `.` +At this point, if you want to specify the value corresponding to the current `form-item` as `id: '2222'`, you need to set `field="people.1.id"`, and the separator in the value needs to use `.` ### About using clickable elements in the label slot diff --git a/packages/web-vue/components/form/README.zh-CN.md b/packages/web-vue/components/form/README.zh-CN.md index 8d7747c0f..f1be6bee2 100644 --- a/packages/web-vue/components/form/README.zh-CN.md +++ b/packages/web-vue/components/form/README.zh-CN.md @@ -216,7 +216,7 @@ const data = reactive({ ] }) ``` -此时,如果想要指定当前 `form-item` 对应的值为 `id: '2222'`,需要设置 `field="people.2.id"`,值中的分隔符需要使用 `.`。数组分割也可以使用 `[]`,例如 `field="people[2].id"` +此时,如果想要指定当前 `form-item` 对应的值为 `id: '2222'`,需要设置 `field="people.1.id"`,值中的分隔符需要使用 `.`。数组分割也可以使用 `[]`,例如 `field="people[1].id"` ### 关于在 label 插槽中使用可点击元素 From 2a49db52fa4f6fab8384ae2076b31b48297202ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Thu, 9 May 2024 20:20:36 +0800 Subject: [PATCH 30/45] fix(color-picker): fix color-picker style import (#3052) --- packages/web-vue/components/color-picker/style/index.ts | 3 +++ packages/web-vue/components/color-picker/style/token.less | 1 + 2 files changed, 4 insertions(+) diff --git a/packages/web-vue/components/color-picker/style/index.ts b/packages/web-vue/components/color-picker/style/index.ts index 3a3ab0de5..e773a60f4 100644 --- a/packages/web-vue/components/color-picker/style/index.ts +++ b/packages/web-vue/components/color-picker/style/index.ts @@ -1,2 +1,5 @@ import '../../style/index.less'; +import '../../input/style'; +import '../../input-number/style'; +import '../../select/style'; import './index.less'; diff --git a/packages/web-vue/components/color-picker/style/token.less b/packages/web-vue/components/color-picker/style/token.less index 0cca0dc90..19675f4c2 100644 --- a/packages/web-vue/components/color-picker/style/token.less +++ b/packages/web-vue/components/color-picker/style/token.less @@ -1,4 +1,5 @@ @import '../../style/theme/index.less'; +@import '../../input/style/token.less'; @color-preview-size-mini: @size-4; @color-preview-size-small: 22px; From 5aa887c2118cfc8dd2d2ee9e6a6eb207ac84ddda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 10 May 2024 16:10:53 +0800 Subject: [PATCH 31/45] fix(verification-code): fix formatter not being applied during paste (#3110) --- .../verification-code/verification-code.tsx | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/packages/web-vue/components/verification-code/verification-code.tsx b/packages/web-vue/components/verification-code/verification-code.tsx index e8bb18cd1..78b61630f 100644 --- a/packages/web-vue/components/verification-code/verification-code.tsx +++ b/packages/web-vue/components/verification-code/verification-code.tsx @@ -2,7 +2,7 @@ import { PropType, VNode, computed, defineComponent, ref, watch } from 'vue'; import { Size } from '../_utils/constant'; import { getPrefixCls } from '../_utils/global-config'; import ArcoInput from '../input'; -import { isExist, isFunction } from '../_utils/is'; +import { isExist, isFunction, isString } from '../_utils/is'; import { Backspace, ArrowLeft, ArrowRight } from '../_utils/keycode'; export default defineComponent({ @@ -135,6 +135,7 @@ export default defineComponent({ if (value.length === props.length) { emit('finish', value); } + focusFirstEmptyInput(); }; const handleFocus = (index: number) => inputRefList?.value[index].focus(); @@ -154,11 +155,29 @@ export default defineComponent({ e.preventDefault(); const { clipboardData } = e; const text = clipboardData?.getData('text'); - if (text) { - const pasteValues = text.split('').slice(0, props.length - index); - innerValue.value.splice(index, pasteValues.length, ...pasteValues); - updateValue(); - } + if (!text) return; + + text.split('').forEach((char, i) => { + if (index + i >= props.length) return; + + if (isFunction(props.formatter)) { + const result = props.formatter( + char, + index + i, + innerValue.value.join('') + ); + if (result === false) { + index -= 1; + return; + } + if (isString(result)) { + char = result.charAt(0); + } + } + + innerValue.value[index + i] = char; + }); + updateValue(); }; const handleKeydown = (index: number, e: KeyboardEvent) => { @@ -168,7 +187,6 @@ export default defineComponent({ e.preventDefault(); innerValue.value[Math.max(index - 1, 0)] = ''; updateValue(); - focusFirstEmptyInput(); } else if (keyCode === ArrowLeft.code && index > 0) { e.preventDefault(); handleFocus(index - 1); @@ -189,12 +207,13 @@ export default defineComponent({ if (isFunction(props.formatter)) { const result = props.formatter(char, index, innerValue.value.join('')); if (result === false) return; - char = result as string; + if (isString(result)) { + char = result.charAt(0); + } } innerValue.value[index] = char; updateValue(); - focusFirstEmptyInput(); }; return () => { From a2a98d609bf2b21911c37134b65ffd38c95659d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 10 May 2024 16:21:26 +0800 Subject: [PATCH 32/45] refactor: correct the type definition for popupContainer (#2998) --- packages/web-vue/components/cascader/cascader.vue | 4 +--- packages/web-vue/components/date-picker/picker.vue | 4 +--- packages/web-vue/components/date-picker/range-picker.vue | 4 +--- packages/web-vue/components/dropdown/dropdown-button.vue | 4 +--- packages/web-vue/components/image/preview-group.vue | 2 +- packages/web-vue/components/popconfirm/popconfirm.vue | 2 +- packages/web-vue/components/popover/popover.vue | 4 +--- packages/web-vue/components/tooltip/tooltip.vue | 4 +--- packages/web-vue/components/tree-select/interface.ts | 2 +- packages/web-vue/components/tree-select/tree-select.vue | 2 +- 10 files changed, 10 insertions(+), 22 deletions(-) diff --git a/packages/web-vue/components/cascader/cascader.vue b/packages/web-vue/components/cascader/cascader.vue index 4f72b110c..6766fbc81 100644 --- a/packages/web-vue/components/cascader/cascader.vue +++ b/packages/web-vue/components/cascader/cascader.vue @@ -300,9 +300,7 @@ export default defineComponent({ * @en Mount container for popup */ popupContainer: { - type: [String, Object] as PropType< - string | HTMLElement | null | undefined - >, + type: [String, Object] as PropType, }, /** * @zh 多选模式下,最多显示的标签数量。0 表示不限制 diff --git a/packages/web-vue/components/date-picker/picker.vue b/packages/web-vue/components/date-picker/picker.vue index 1b9c98514..4555139db 100644 --- a/packages/web-vue/components/date-picker/picker.vue +++ b/packages/web-vue/components/date-picker/picker.vue @@ -264,9 +264,7 @@ export default defineComponent({ * @en Mount container for pop-up box */ popupContainer: { - type: [String, Object] as PropType< - string | HTMLElement | null | undefined - >, + type: [String, Object] as PropType, }, mode: { type: String as PropType<'date' | 'year' | 'quarter' | 'month' | 'week'>, diff --git a/packages/web-vue/components/date-picker/range-picker.vue b/packages/web-vue/components/date-picker/range-picker.vue index de9d922c5..e73e5c743 100644 --- a/packages/web-vue/components/date-picker/range-picker.vue +++ b/packages/web-vue/components/date-picker/range-picker.vue @@ -250,9 +250,7 @@ export default defineComponent({ default: true, }, popupContainer: { - type: [String, Object] as PropType< - string | HTMLElement | null | undefined - >, + type: [String, Object] as PropType, }, locale: { type: Object as PropType>, diff --git a/packages/web-vue/components/dropdown/dropdown-button.vue b/packages/web-vue/components/dropdown/dropdown-button.vue index 31caf48a7..7a983eecd 100644 --- a/packages/web-vue/components/dropdown/dropdown-button.vue +++ b/packages/web-vue/components/dropdown/dropdown-button.vue @@ -92,9 +92,7 @@ export default defineComponent({ * @en Mount container for popup */ popupContainer: { - type: [String, Object] as PropType< - string | HTMLElement | null | undefined - >, + type: [String, Object] as PropType, }, /** * @zh 是否禁用 diff --git a/packages/web-vue/components/image/preview-group.vue b/packages/web-vue/components/image/preview-group.vue index a0b8639cc..8213e8857 100644 --- a/packages/web-vue/components/image/preview-group.vue +++ b/packages/web-vue/components/image/preview-group.vue @@ -129,7 +129,7 @@ export default defineComponent({ * @en Set the mount point of the pop-up box, the same as the `to` of `teleport`, the default value is document.body */ popupContainer: { - type: [Object, String] as PropType, + type: [String, Object] as PropType, }, }, emits: [ diff --git a/packages/web-vue/components/popconfirm/popconfirm.vue b/packages/web-vue/components/popconfirm/popconfirm.vue index 5c5c41965..eb226b79f 100644 --- a/packages/web-vue/components/popconfirm/popconfirm.vue +++ b/packages/web-vue/components/popconfirm/popconfirm.vue @@ -183,7 +183,7 @@ export default defineComponent({ * @en Mount container for popup */ popupContainer: { - type: [String, Object] as PropType, + type: [String, Object] as PropType, }, /** * @zh 触发 ok 事件前的回调函数。如果返回 false 则不会触发后续事件,也可使用 done 进行异步关闭。 diff --git a/packages/web-vue/components/popover/popover.vue b/packages/web-vue/components/popover/popover.vue index 390ebf84b..3485ee719 100644 --- a/packages/web-vue/components/popover/popover.vue +++ b/packages/web-vue/components/popover/popover.vue @@ -119,9 +119,7 @@ export default defineComponent({ * @en Mount container for pop-up box */ popupContainer: { - type: [String, Object] as PropType< - string | HTMLElement | null | undefined - >, + type: [String, Object] as PropType, }, }, emits: { diff --git a/packages/web-vue/components/tooltip/tooltip.vue b/packages/web-vue/components/tooltip/tooltip.vue index 4f13eabd9..f5f986548 100644 --- a/packages/web-vue/components/tooltip/tooltip.vue +++ b/packages/web-vue/components/tooltip/tooltip.vue @@ -116,9 +116,7 @@ export default defineComponent({ * @en Mount container for popup */ popupContainer: { - type: [String, Object] as PropType< - string | HTMLElement | null | undefined - >, + type: [String, Object] as PropType, }, }, emits: { diff --git a/packages/web-vue/components/tree-select/interface.ts b/packages/web-vue/components/tree-select/interface.ts index ac180ed4e..1d417e13b 100644 --- a/packages/web-vue/components/tree-select/interface.ts +++ b/packages/web-vue/components/tree-select/interface.ts @@ -69,7 +69,7 @@ export interface TreeSelectProps { filterTreeNode: FilterTreeNode | undefined; loadMore: LoadMore | undefined; disableFilter: boolean; - popupContainer: string | HTMLElement | null | undefined; + popupContainer?: string | HTMLElement; fallbackOption: FallbackOption; showHeaderOnEmpty?: boolean; showFooterOnEmpty?: boolean; diff --git a/packages/web-vue/components/tree-select/tree-select.vue b/packages/web-vue/components/tree-select/tree-select.vue index 138c9f84b..b4a3230b1 100644 --- a/packages/web-vue/components/tree-select/tree-select.vue +++ b/packages/web-vue/components/tree-select/tree-select.vue @@ -371,7 +371,7 @@ export default defineComponent({ * @en Mount container for pop-up box */ popupContainer: { - type: [String, Object] as PropType, + type: [String, Object] as PropType, }, /** * @zh 为 value 中找不到匹配项的 key 定义节点数据 From 94d229cca6fa93a541a3cb925cede964ac381479 Mon Sep 17 00:00:00 2001 From: wangchen Date: Fri, 10 May 2024 18:52:27 +0800 Subject: [PATCH 33/45] release version --- .../src/scripts/changelog/utils.ts | 1 + packages/web-vue/CHANGELOG.md | 20 +++++++++++++++++++ packages/web-vue/CHANGELOG.zh-CN.md | 20 +++++++++++++++++++ .../components/cascader/README.en-US.md | 2 +- .../components/cascader/README.zh-CN.md | 2 +- .../components/color-picker/CHANGELOG.md | 13 ++++++++++++ .../color-picker/CHANGELOG.zh-CN.md | 13 ++++++++++++ .../components/date-picker/README.en-US.md | 2 +- .../components/date-picker/README.zh-CN.md | 2 +- .../components/dropdown/README.en-US.md | 2 +- .../components/dropdown/README.zh-CN.md | 2 +- .../web-vue/components/form/README.en-US.md | 2 +- .../web-vue/components/form/README.zh-CN.md | 2 +- .../web-vue/components/image/README.en-US.md | 2 +- .../web-vue/components/image/README.zh-CN.md | 2 +- .../components/popconfirm/README.en-US.md | 2 +- .../components/popconfirm/README.zh-CN.md | 2 +- .../components/popover/README.en-US.md | 2 +- .../components/popover/README.zh-CN.md | 2 +- .../components/tooltip/README.en-US.md | 2 +- .../components/tooltip/README.zh-CN.md | 2 +- .../web-vue/components/transfer/CHANGELOG.md | 9 +++++++++ .../components/transfer/CHANGELOG.zh-CN.md | 9 +++++++++ .../components/tree-select/README.en-US.md | 2 +- .../components/tree-select/README.zh-CN.md | 2 +- .../web-vue/components/upload/CHANGELOG.md | 9 +++++++++ .../components/upload/CHANGELOG.zh-CN.md | 9 +++++++++ .../components/verification-code/CHANGELOG.md | 12 +++++++++++ .../verification-code/CHANGELOG.zh-CN.md | 12 +++++++++++ packages/web-vue/package.json | 2 +- 30 files changed, 146 insertions(+), 19 deletions(-) create mode 100644 packages/web-vue/components/verification-code/CHANGELOG.md create mode 100644 packages/web-vue/components/verification-code/CHANGELOG.zh-CN.md diff --git a/packages/arco-vue-scripts/src/scripts/changelog/utils.ts b/packages/arco-vue-scripts/src/scripts/changelog/utils.ts index 98fc92ff1..3c6aafac5 100644 --- a/packages/arco-vue-scripts/src/scripts/changelog/utils.ts +++ b/packages/arco-vue-scripts/src/scripts/changelog/utils.ts @@ -72,6 +72,7 @@ const componentList = [ 'scrollbar', 'watermark', 'color-picker', + 'verification-code', ]; export const isValidComponent = (component: string) => { diff --git a/packages/web-vue/CHANGELOG.md b/packages/web-vue/CHANGELOG.md index fc949f32b..5b07bb437 100644 --- a/packages/web-vue/CHANGELOG.md +++ b/packages/web-vue/CHANGELOG.md @@ -2,6 +2,26 @@ changelog: true ``` +## 2.55.2 + +`2024-05-10` + +### 🐛 BugFix + +- **verification-code:** fix formatter not being applied during paste ([#3110](https://github.com/arco-design/arco-design-vue/pull/3110)) +- **upload:** import missing image styles for upload component ([#3101](https://github.com/arco-design/arco-design-vue/pull/3101)) +- **transfer:** fix disabled behavior in transfer simple mode ([#3067](https://github.com/arco-design/arco-design-vue/pull/3067)) +- **color-picker:** fix color-picker style import ([#3052](https://github.com/arco-design/arco-design-vue/pull/3052)) + +### 💅 Style + +- **color-picker:** Optimize color control bar background fillet style ([#3116](https://github.com/arco-design/arco-design-vue/pull/3116)) + +### 🆎 TypeScript + +- undefined ([#2998](https://github.com/arco-design/arco-design-vue/pull/2998)) + + ## 2.55.1 `2024-03-29` diff --git a/packages/web-vue/CHANGELOG.zh-CN.md b/packages/web-vue/CHANGELOG.zh-CN.md index 55c28c0fd..1a6d736ce 100644 --- a/packages/web-vue/CHANGELOG.zh-CN.md +++ b/packages/web-vue/CHANGELOG.zh-CN.md @@ -2,6 +2,26 @@ changelog: true ``` +## 2.55.2 + +`2024-05-10` + +### 🐛 问题修复 + +- **verification-code:** 修复粘贴时`formatter`未生效 ([#3110](https://github.com/arco-design/arco-design-vue/pull/3110)) +- **upload:** 修复上传组件预览样式引入缺失 ([#3101](https://github.com/arco-design/arco-design-vue/pull/3101)) +- **transfer:** 修复 simple 模式下禁用失效 ([#3067](https://github.com/arco-design/arco-design-vue/pull/3067)) +- **color-picker:** 修复样式按需导入错误 ([#3052](https://github.com/arco-design/arco-design-vue/pull/3052)) + +### 💅 样式更新 + +- **color-picker:** 优化颜色控制条背景圆角样式 ([#3116](https://github.com/arco-design/arco-design-vue/pull/3116)) + +### 🆎 类型修正 + +- correct the type definition for popupContainer ([#2998](https://github.com/arco-design/arco-design-vue/pull/2998)) + + ## 2.55.1 `2024-03-29` diff --git a/packages/web-vue/components/cascader/README.en-US.md b/packages/web-vue/components/cascader/README.en-US.md index 40ad42e82..7a4120283 100644 --- a/packages/web-vue/components/cascader/README.en-US.md +++ b/packages/web-vue/components/cascader/README.en-US.md @@ -62,7 +62,7 @@ description: Refers to the use of multi-level classification to separate the opt |default-popup-visible|Whether to display the dropdown by default (uncontrolled state)|`boolean`|`false`|| |placeholder|Placeholder|`string`|`-`|| |filter-option|Custom options filter method|`(inputValue: string, option: CascaderOption) => boolean`|`-`|| -|popup-container|Mount container for popup|`string \| HTMLElement \| null \| undefined`|`-`|| +|popup-container|Mount container for popup|`string \| HTMLElement`|`-`|| |max-tag-count|In multi-select mode, the maximum number of labels displayed. 0 means unlimited|`number`|`0`|| |format-label|Format display content|`(options: CascaderOption[]) => string`|`-`|| |trigger-props|Trigger props of the drop-down menu|`TriggerProps`|`-`|| diff --git a/packages/web-vue/components/cascader/README.zh-CN.md b/packages/web-vue/components/cascader/README.zh-CN.md index a65f20427..886f0ac1a 100644 --- a/packages/web-vue/components/cascader/README.zh-CN.md +++ b/packages/web-vue/components/cascader/README.zh-CN.md @@ -60,7 +60,7 @@ description: 指在选择器选项数量较多时,采用多级分类的方式 |default-popup-visible|是否默认显示下拉框(非受控状态)|`boolean`|`false`|| |placeholder|占位符|`string`|`-`|| |filter-option|自定义选项过滤方法|`(inputValue: string, option: CascaderOption) => boolean`|`-`|| -|popup-container|弹出框的挂载容器|`string \| HTMLElement \| null \| undefined`|`-`|| +|popup-container|弹出框的挂载容器|`string \| HTMLElement`|`-`|| |max-tag-count|多选模式下,最多显示的标签数量。0 表示不限制|`number`|`0`|| |format-label|格式化展示内容|`(options: CascaderOption[]) => string`|`-`|| |trigger-props|下拉菜单的触发器属性|`TriggerProps`|`-`|| diff --git a/packages/web-vue/components/color-picker/CHANGELOG.md b/packages/web-vue/components/color-picker/CHANGELOG.md index 1b9818275..f3754b242 100644 --- a/packages/web-vue/components/color-picker/CHANGELOG.md +++ b/packages/web-vue/components/color-picker/CHANGELOG.md @@ -2,6 +2,19 @@ changelog: true ``` +## 2.55.2 + +`2024-05-10` + +### 🐛 BugFix + +- fix color-picker style import ([#3052](https://github.com/arco-design/arco-design-vue/pull/3052)) + +### 💅 Style + +- Optimize color control bar background fillet style ([#3116](https://github.com/arco-design/arco-design-vue/pull/3116)) + + ## 2.55.1 `2024-03-29` diff --git a/packages/web-vue/components/color-picker/CHANGELOG.zh-CN.md b/packages/web-vue/components/color-picker/CHANGELOG.zh-CN.md index 8c818a47a..087656bed 100644 --- a/packages/web-vue/components/color-picker/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/color-picker/CHANGELOG.zh-CN.md @@ -2,6 +2,19 @@ changelog: true ``` +## 2.55.2 + +`2024-05-10` + +### 🐛 问题修复 + +- 修复样式按需导入错误 ([#3052](https://github.com/arco-design/arco-design-vue/pull/3052)) + +### 💅 样式更新 + +- 优化颜色控制条背景圆角样式 ([#3116](https://github.com/arco-design/arco-design-vue/pull/3116)) + + ## 2.55.1 `2024-03-29` diff --git a/packages/web-vue/components/date-picker/README.en-US.md b/packages/web-vue/components/date-picker/README.en-US.md index 150836c3c..c58389d68 100644 --- a/packages/web-vue/components/date-picker/README.en-US.md +++ b/packages/web-vue/components/date-picker/README.en-US.md @@ -73,7 +73,7 @@ description: Choose a date. Support year, month, week, day type, support range s |disabled-time|Unselectable time|`(current: Date) => DisabledTimeProps`|`-`|| |picker-value **(v-model)**|Date displayed on the panel|`Date \| string \| number`|`-`|| |default-picker-value|The date displayed on the panel by default|`Date \| string \| number`|`-`|| -|popup-container|Mount container for pop-up box|`string \| HTMLElement \| null \| undefined`|`-`|| +|popup-container|Mount container for pop-up box|`string \| HTMLElement`|`-`|| |value-format|The format of the value, valid for `value` `defaultValue` `pickerValue` `defaultPickerValue` and the return value in the event, supports setting as timestamp, Date and string (refer to [String parsing format](#string-parsing-format) ). If not specified, it will be formatted as a string, in the same format as `format`.|`'timestamp' \| 'Date' \| string`|`-`|2.16.0| |preview-shortcut|Whether to preview the result of the shortcut|`boolean`|`true`|2.28.0| |show-confirm-btn|Whether to show the confirm button, always show when `showTime = true`.|`boolean`|`false`|2.29.0| diff --git a/packages/web-vue/components/date-picker/README.zh-CN.md b/packages/web-vue/components/date-picker/README.zh-CN.md index c7f1f91e4..a87f9070a 100644 --- a/packages/web-vue/components/date-picker/README.zh-CN.md +++ b/packages/web-vue/components/date-picker/README.zh-CN.md @@ -71,7 +71,7 @@ description: 选择日期。支持年、月、周、日类型,支持范围选 |disabled-time|不可选取的时间|`(current: Date) => DisabledTimeProps`|`-`|| |picker-value **(v-model)**|面板显示的日期|`Date \| string \| number`|`-`|| |default-picker-value|面板默认显示的日期|`Date \| string \| number`|`-`|| -|popup-container|弹出框的挂载容器|`string \| HTMLElement \| null \| undefined`|`-`|| +|popup-container|弹出框的挂载容器|`string \| HTMLElement`|`-`|| |value-format|值的格式,对 `value` `defaultValue` `pickerValue` `defaultPickerValue` 以及事件中的返回值生效,支持设置为时间戳,Date 和字符串(参考[字符串解析格式](#字符串解析格式))。如果没有指定,将格式化为字符串,格式同 `format`。|`'timestamp' \| 'Date' \| string`|`-`|2.16.0| |preview-shortcut|是否要预览快捷选择的结果|`boolean`|`true`|2.28.0| |show-confirm-btn|是否显示确认按钮,`showTime = true` 的时候始终显示。|`boolean`|`false`|2.29.0| diff --git a/packages/web-vue/components/dropdown/README.en-US.md b/packages/web-vue/components/dropdown/README.en-US.md index f35c6afa8..90cf6e483 100644 --- a/packages/web-vue/components/dropdown/README.en-US.md +++ b/packages/web-vue/components/dropdown/README.en-US.md @@ -124,7 +124,7 @@ description: When there are too many commands on the page, the alternative comma |default-popup-visible|Whether the popup is visible by default (uncontrolled mode)|`boolean`|`false`| |trigger|Trigger method|`'hover' \| 'click' \| 'focus' \| 'contextMenu'`|`'click'`| |position|Popup position|`'top' \| 'tl' \| 'tr' \| 'bottom' \| 'bl' \| 'br'`|`'br'`| -|popup-container|Mount container for popup|`string \| HTMLElement \| null \| undefined`|`-`| +|popup-container|Mount container for popup|`string \| HTMLElement`|`-`| |disabled|Whether to disable|`boolean`|`false`| |type|Button type|`string`|`-`| |size|Button size|`string`|`-`| diff --git a/packages/web-vue/components/dropdown/README.zh-CN.md b/packages/web-vue/components/dropdown/README.zh-CN.md index 81784a482..b1c47f890 100644 --- a/packages/web-vue/components/dropdown/README.zh-CN.md +++ b/packages/web-vue/components/dropdown/README.zh-CN.md @@ -122,7 +122,7 @@ description: 页面上的命令过多时,可将备选命令收纳到向下展 |default-popup-visible|弹出框默认是否可见(非受控模式)|`boolean`|`false`| |trigger|触发方式|`'hover' \| 'click' \| 'focus' \| 'contextMenu'`|`'click'`| |position|弹出位置|`'top' \| 'tl' \| 'tr' \| 'bottom' \| 'bl' \| 'br'`|`'br'`| -|popup-container|弹出框的挂载容器|`string \| HTMLElement \| null \| undefined`|`-`| +|popup-container|弹出框的挂载容器|`string \| HTMLElement`|`-`| |disabled|是否禁用|`boolean`|`false`| |type|按钮类型|`string`|`-`| |size|按钮大小|`string`|`-`| diff --git a/packages/web-vue/components/form/README.en-US.md b/packages/web-vue/components/form/README.en-US.md index 93f2395f7..c4693acbc 100644 --- a/packages/web-vue/components/form/README.en-US.md +++ b/packages/web-vue/components/form/README.en-US.md @@ -218,7 +218,7 @@ const data = reactive({ ] }) ```` -At this point, if you want to specify the value corresponding to the current `form-item` as `id: '2222'`, you need to set `field="people.1.id"`, and the separator in the value needs to use `.` +At this point, if you want to specify the value corresponding to the current `form-item` as `id: '2222'`, you need to set `field="people.2.id"`, and the separator in the value needs to use `.` ### About using clickable elements in the label slot diff --git a/packages/web-vue/components/form/README.zh-CN.md b/packages/web-vue/components/form/README.zh-CN.md index f1be6bee2..8d7747c0f 100644 --- a/packages/web-vue/components/form/README.zh-CN.md +++ b/packages/web-vue/components/form/README.zh-CN.md @@ -216,7 +216,7 @@ const data = reactive({ ] }) ``` -此时,如果想要指定当前 `form-item` 对应的值为 `id: '2222'`,需要设置 `field="people.1.id"`,值中的分隔符需要使用 `.`。数组分割也可以使用 `[]`,例如 `field="people[1].id"` +此时,如果想要指定当前 `form-item` 对应的值为 `id: '2222'`,需要设置 `field="people.2.id"`,值中的分隔符需要使用 `.`。数组分割也可以使用 `[]`,例如 `field="people[2].id"` ### 关于在 label 插槽中使用可点击元素 diff --git a/packages/web-vue/components/image/README.en-US.md b/packages/web-vue/components/image/README.en-US.md index 7794d42a4..a833ed401 100644 --- a/packages/web-vue/components/image/README.en-US.md +++ b/packages/web-vue/components/image/README.en-US.md @@ -112,7 +112,7 @@ description: Used to show and preview pictures. |mask-closable|Whether to close the modal when mask is clicked|`boolean`|`true`| |closable|Whether to show close button|`boolean`|`true`| |actions-layout|Layout of action list|`string[]`|`[ 'fullScreen', 'rotateRight', 'rotateLeft', 'zoomIn', 'zoomOut', 'originalSize',]`| -|popup-container|Set the mount point of the pop-up box, the same as the `to` of `teleport`, the default value is document.body|`HTMLElement \| string`|`-`| +|popup-container|Set the mount point of the pop-up box, the same as the `to` of `teleport`, the default value is document.body|`string \| HTMLElement`|`-`| ### `` Events |Event Name|Description|Parameters| diff --git a/packages/web-vue/components/image/README.zh-CN.md b/packages/web-vue/components/image/README.zh-CN.md index 02c178bcc..3344ceaa2 100644 --- a/packages/web-vue/components/image/README.zh-CN.md +++ b/packages/web-vue/components/image/README.zh-CN.md @@ -110,7 +110,7 @@ description: 展示和预览图片。 |mask-closable|点击 mask 是否触发关闭|`boolean`|`true`| |closable|是否显示关闭按钮|`boolean`|`true`| |actions-layout|控制条的布局|`string[]`|`[ 'fullScreen', 'rotateRight', 'rotateLeft', 'zoomIn', 'zoomOut', 'originalSize',]`| -|popup-container|设置弹出框的挂载点,同 `teleport` 的 `to`,缺省值是 document.body|`HTMLElement \| string`|`-`| +|popup-container|设置弹出框的挂载点,同 `teleport` 的 `to`,缺省值是 document.body|`string \| HTMLElement`|`-`| ### `` Events |事件名|描述|参数| diff --git a/packages/web-vue/components/popconfirm/README.en-US.md b/packages/web-vue/components/popconfirm/README.en-US.md index ab25d3f14..4b5b597a6 100644 --- a/packages/web-vue/components/popconfirm/README.en-US.md +++ b/packages/web-vue/components/popconfirm/README.en-US.md @@ -39,7 +39,7 @@ description: Click on the element and a popconfirm will pop up. |content-style|The style of the popup content|`CSSProperties`|`-`| |arrow-class|The class name of the popup arrow|`ClassName`|`-`| |arrow-style|The style of the popup arrow|`CSSProperties`|`-`| -|popup-container|Mount container for popup|`string \| HTMLElement \| undefined`|`-`| +|popup-container|Mount container for popup|`string \| HTMLElement`|`-`| |on-before-ok|The callback function before the ok event is triggered. If false is returned, subsequent events will not be triggered, and done can also be used to close asynchronously.|`( done: (closed: boolean) => void) => void \| boolean \| Promise`|`-`| |on-before-cancel|The callback function before the cancel event is triggered. If it returns false, no subsequent events will be triggered.|`() => boolean`|`-`| ### `` Events diff --git a/packages/web-vue/components/popconfirm/README.zh-CN.md b/packages/web-vue/components/popconfirm/README.zh-CN.md index f40dd72dc..9126b341a 100644 --- a/packages/web-vue/components/popconfirm/README.zh-CN.md +++ b/packages/web-vue/components/popconfirm/README.zh-CN.md @@ -37,7 +37,7 @@ description: 点击元素,弹出气泡式的确认框。 |content-style|弹出框内容的样式|`CSSProperties`|`-`| |arrow-class|弹出框箭头的类名|`ClassName`|`-`| |arrow-style|弹出框箭头的样式|`CSSProperties`|`-`| -|popup-container|弹出框的挂载点|`string \| HTMLElement \| undefined`|`-`| +|popup-container|弹出框的挂载点|`string \| HTMLElement`|`-`| |on-before-ok|触发 ok 事件前的回调函数。如果返回 false 则不会触发后续事件,也可使用 done 进行异步关闭。|`( done: (closed: boolean) => void) => void \| boolean \| Promise`|`-`| |on-before-cancel|触发 cancel 事件前的回调函数。如果返回 false 则不会触发后续事件。|`() => boolean`|`-`| ### `` Events diff --git a/packages/web-vue/components/popover/README.en-US.md b/packages/web-vue/components/popover/README.en-US.md index 5c738a0bf..eca03d69d 100644 --- a/packages/web-vue/components/popover/README.en-US.md +++ b/packages/web-vue/components/popover/README.en-US.md @@ -33,7 +33,7 @@ description: When the mouse hovers, focus, or click on a component, a bubble-lik |content-style|The style of the popup content|`CSSProperties`|`-`| |arrow-class|The class name of the popup arrow|`ClassName`|`-`| |arrow-style|The style of the popup arrow|`CSSProperties`|`-`| -|popup-container|Mount container for pop-up box|`string \| HTMLElement \| null \| undefined`|`-`| +|popup-container|Mount container for pop-up box|`string \| HTMLElement`|`-`| ### `` Events |Event Name|Description|Parameters| diff --git a/packages/web-vue/components/popover/README.zh-CN.md b/packages/web-vue/components/popover/README.zh-CN.md index 4f784d3d6..27c880372 100644 --- a/packages/web-vue/components/popover/README.zh-CN.md +++ b/packages/web-vue/components/popover/README.zh-CN.md @@ -31,7 +31,7 @@ description: 鼠标悬停、聚焦或点击在某个组件时,弹出的气泡 |content-style|弹出框内容的样式|`CSSProperties`|`-`| |arrow-class|弹出框箭头的类名|`ClassName`|`-`| |arrow-style|弹出框箭头的样式|`CSSProperties`|`-`| -|popup-container|弹出框的挂载容器|`string \| HTMLElement \| null \| undefined`|`-`| +|popup-container|弹出框的挂载容器|`string \| HTMLElement`|`-`| ### `` Events |事件名|描述|参数| diff --git a/packages/web-vue/components/tooltip/README.en-US.md b/packages/web-vue/components/tooltip/README.en-US.md index c940f6737..af6fd8214 100644 --- a/packages/web-vue/components/tooltip/README.en-US.md +++ b/packages/web-vue/components/tooltip/README.en-US.md @@ -35,7 +35,7 @@ description: A tooltip that popup when the mouse hovers, focus, or click on a co |content-style|The style of the popup content|`CSSProperties`|`-`| |arrow-class|The class name of the popup arrow|`ClassName`|`-`| |arrow-style|The style of the popup arrow|`CSSProperties`|`-`| -|popup-container|Mount container for popup|`string \| HTMLElement \| null \| undefined`|`-`| +|popup-container|Mount container for popup|`string \| HTMLElement`|`-`| ### `` Events |Event Name|Description|Parameters| diff --git a/packages/web-vue/components/tooltip/README.zh-CN.md b/packages/web-vue/components/tooltip/README.zh-CN.md index 9d8633004..d7ea17e4f 100644 --- a/packages/web-vue/components/tooltip/README.zh-CN.md +++ b/packages/web-vue/components/tooltip/README.zh-CN.md @@ -33,7 +33,7 @@ description: 鼠标悬停、聚焦或点击在某个组件时,弹出的文字 |content-style|弹出框内容的样式|`CSSProperties`|`-`| |arrow-class|弹出框箭头的类名|`ClassName`|`-`| |arrow-style|弹出框箭头的样式|`CSSProperties`|`-`| -|popup-container|弹出框的挂载容器|`string \| HTMLElement \| null \| undefined`|`-`| +|popup-container|弹出框的挂载容器|`string \| HTMLElement`|`-`| ### `` Events |事件名|描述|参数| diff --git a/packages/web-vue/components/transfer/CHANGELOG.md b/packages/web-vue/components/transfer/CHANGELOG.md index 27616d204..126ef4da6 100644 --- a/packages/web-vue/components/transfer/CHANGELOG.md +++ b/packages/web-vue/components/transfer/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.2 + +`2024-05-10` + +### 🐛 BugFix + +- fix disabled behavior in transfer simple mode ([#3067](https://github.com/arco-design/arco-design-vue/pull/3067)) + + ## 2.54.6 `2024-03-01` diff --git a/packages/web-vue/components/transfer/CHANGELOG.zh-CN.md b/packages/web-vue/components/transfer/CHANGELOG.zh-CN.md index c0617afd4..58eead860 100644 --- a/packages/web-vue/components/transfer/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/transfer/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.2 + +`2024-05-10` + +### 🐛 问题修复 + +- 修复 simple 模式下禁用失效 ([#3067](https://github.com/arco-design/arco-design-vue/pull/3067)) + + ## 2.54.6 `2024-03-01` diff --git a/packages/web-vue/components/tree-select/README.en-US.md b/packages/web-vue/components/tree-select/README.en-US.md index 115f69b9b..4fed50d4c 100644 --- a/packages/web-vue/components/tree-select/README.en-US.md +++ b/packages/web-vue/components/tree-select/README.en-US.md @@ -74,7 +74,7 @@ description: The tree structure data can be selected. |filter-tree-node|Custom node filter function|`(searchKey: string, nodeData: TreeNodeData) => boolean`|`-`|| |load-more|Load data dynamically|`(nodeData: TreeNodeData) => Promise`|`-`|| |disable-filter|Disable internal filtering logic|`boolean`|`false`|| -|popup-container|Mount container for pop-up box|`string \| HTMLElement \| undefined`|`-`|| +|popup-container|Mount container for pop-up box|`string \| HTMLElement`|`-`|| |fallback-option|Customize node data for keys that do not match options|`boolean \| ((key: number \| string) => TreeNodeData \| boolean)`|`true`|2.22.0| |selectable|Set the nodes that can be selected, all can be selected by default|`boolean\| 'leaf'\| (( node: TreeNodeData, info: { isLeaf: boolean; level: number } ) => boolean)`|`true`|2.27.0| |scrollbar|Whether to enable virtual scroll bar|`boolean \| ScrollbarProps`|`true`|2.39.0| diff --git a/packages/web-vue/components/tree-select/README.zh-CN.md b/packages/web-vue/components/tree-select/README.zh-CN.md index 153252dcd..9b546a0d3 100644 --- a/packages/web-vue/components/tree-select/README.zh-CN.md +++ b/packages/web-vue/components/tree-select/README.zh-CN.md @@ -72,7 +72,7 @@ description: 可以对树形结构数据进行选择。 |filter-tree-node|自定义节点过滤函数|`(searchKey: string, nodeData: TreeNodeData) => boolean`|`-`|| |load-more|动态加载数据|`(nodeData: TreeNodeData) => Promise`|`-`|| |disable-filter|禁用内部过滤逻辑|`boolean`|`false`|| -|popup-container|弹出框的挂载容器|`string \| HTMLElement \| undefined`|`-`|| +|popup-container|弹出框的挂载容器|`string \| HTMLElement`|`-`|| |fallback-option|为 value 中找不到匹配项的 key 定义节点数据|`boolean \| ((key: number \| string) => TreeNodeData \| boolean)`|`true`|2.22.0| |selectable|设置可选择的节点,默认全部可选|`boolean\| 'leaf'\| (( node: TreeNodeData, info: { isLeaf: boolean; level: number } ) => boolean)`|`true`|2.27.0| |scrollbar|是否开启虚拟滚动条|`boolean \| ScrollbarProps`|`true`|2.39.0| diff --git a/packages/web-vue/components/upload/CHANGELOG.md b/packages/web-vue/components/upload/CHANGELOG.md index 817930d89..48ff7bf94 100644 --- a/packages/web-vue/components/upload/CHANGELOG.md +++ b/packages/web-vue/components/upload/CHANGELOG.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.2 + +`2024-05-10` + +### 🐛 BugFix + +- import missing image styles for upload component ([#3101](https://github.com/arco-design/arco-design-vue/pull/3101)) + + ## 2.55.1 `2024-03-29` diff --git a/packages/web-vue/components/upload/CHANGELOG.zh-CN.md b/packages/web-vue/components/upload/CHANGELOG.zh-CN.md index 2ba653e46..4784c297c 100644 --- a/packages/web-vue/components/upload/CHANGELOG.zh-CN.md +++ b/packages/web-vue/components/upload/CHANGELOG.zh-CN.md @@ -2,6 +2,15 @@ changelog: true ``` +## 2.55.2 + +`2024-05-10` + +### 🐛 问题修复 + +- 修复上传组件预览样式引入缺失 ([#3101](https://github.com/arco-design/arco-design-vue/pull/3101)) + + ## 2.55.1 `2024-03-29` diff --git a/packages/web-vue/components/verification-code/CHANGELOG.md b/packages/web-vue/components/verification-code/CHANGELOG.md new file mode 100644 index 000000000..548893465 --- /dev/null +++ b/packages/web-vue/components/verification-code/CHANGELOG.md @@ -0,0 +1,12 @@ +```yaml +changelog: true +``` + +## 2.55.2 + +`2024-05-10` + +### 🐛 BugFix + +- fix formatter not being applied during paste ([#3110](https://github.com/arco-design/arco-design-vue/pull/3110)) + diff --git a/packages/web-vue/components/verification-code/CHANGELOG.zh-CN.md b/packages/web-vue/components/verification-code/CHANGELOG.zh-CN.md new file mode 100644 index 000000000..023de3669 --- /dev/null +++ b/packages/web-vue/components/verification-code/CHANGELOG.zh-CN.md @@ -0,0 +1,12 @@ +```yaml +changelog: true +``` + +## 2.55.2 + +`2024-05-10` + +### 🐛 问题修复 + +- 修复粘贴时`formatter`未生效 ([#3110](https://github.com/arco-design/arco-design-vue/pull/3110)) + diff --git a/packages/web-vue/package.json b/packages/web-vue/package.json index 62c6b1afb..4cca4aaaa 100644 --- a/packages/web-vue/package.json +++ b/packages/web-vue/package.json @@ -1,6 +1,6 @@ { "name": "@arco-design/web-vue", - "version": "2.55.1", + "version": "2.55.2", "description": "Arco Design Vue 2.0: A Vue.js 3 UI Library", "keywords": [ "arco", From d67843db265ccd4e33d6787105028be7b2d625bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 7 Jun 2024 16:32:09 +0800 Subject: [PATCH 34/45] fix(time-picker): fix issue with read-only mode still being editable (#3173) --- packages/web-vue/components/time-picker/README.en-US.md | 2 +- packages/web-vue/components/time-picker/README.zh-CN.md | 2 +- packages/web-vue/components/time-picker/time-picker.vue | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/web-vue/components/time-picker/README.en-US.md b/packages/web-vue/components/time-picker/README.en-US.md index 4241c404b..4950aa1bc 100644 --- a/packages/web-vue/components/time-picker/README.en-US.md +++ b/packages/web-vue/components/time-picker/README.en-US.md @@ -47,7 +47,7 @@ description: Select the time on the pop-up panel to conveniently complete the ti |readonly|Whether it is read-only mode|`boolean`|`false`| |error|Whether it is an error state|`boolean`|`false`| |format|Display the format of the date, refer to [String Parsing Format](#String Parsing Format)|`string`|`'HH:mm:ss'`| -|placeholder|Prompt copy|`string`|`-`| +|placeholder|Prompt copy|`string \| string[]`|`-`| |size|Input box size|`'mini' \| 'small' \| 'medium' \| 'large'`|`'medium'`| |popup-container|Mount container for pop-up box|`string \| HTMLElement`|`-`| |use12-hours|12 hour clock|`boolean`|`false`| diff --git a/packages/web-vue/components/time-picker/README.zh-CN.md b/packages/web-vue/components/time-picker/README.zh-CN.md index c6eb8b669..226ed1cc7 100644 --- a/packages/web-vue/components/time-picker/README.zh-CN.md +++ b/packages/web-vue/components/time-picker/README.zh-CN.md @@ -45,7 +45,7 @@ description: 在弹出面板上选择时间,以便捷完成时间输入的控 |readonly|是否为只读模式|`boolean`|`false`| |error|是否为错误状态|`boolean`|`false`| |format|展示日期的格式,参考[字符串解析格式](#字符串解析格式)|`string`|`'HH:mm:ss'`| -|placeholder|提示文案|`string`|`-`| +|placeholder|提示文案|`string \| string[]`|`-`| |size|输入框尺寸|`'mini' \| 'small' \| 'medium' \| 'large'`|`'medium'`| |popup-container|弹出框的挂载容器|`string \| HTMLElement`|`-`| |use12-hours|12 小时制|`boolean`|`false`| diff --git a/packages/web-vue/components/time-picker/time-picker.vue b/packages/web-vue/components/time-picker/time-picker.vue index 354d9fd56..5266650bd 100644 --- a/packages/web-vue/components/time-picker/time-picker.vue +++ b/packages/web-vue/components/time-picker/time-picker.vue @@ -28,6 +28,7 @@ :visible="panelVisible" :disabled="mergedDisabled" :error="error" + :readonly="readonly" :editable="!readonly" :allow-clear="allowClear && !readonly" :placeholder="computedPlaceholder" @@ -93,7 +94,6 @@ import Trigger, { TriggerProps } from '../trigger'; import DateInput from '../_components/picker/input.vue'; import DateRangeInput from '../_components/picker/input-range.vue'; import IconClockCircle from '../icon/icon-clock-circle'; -import { TimePickerProps } from './interface'; import useState from '../_hooks/use-state'; import useTimeFormat from './hooks/use-time-format'; import useTimeState from './hooks/use-time-state'; @@ -190,7 +190,7 @@ export default defineComponent({ * @en Prompt copy * */ placeholder: { - type: String, + type: [String, Array] as PropType, }, /** * @zh 输入框尺寸 From 5b9905a3dc00aee5ee412164067c172fe10fda4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 7 Jun 2024 16:32:54 +0800 Subject: [PATCH 35/45] fix(input): fix display of allow-clear input button in read-only state (#3172) --- packages/web-vue/components/input/input.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/web-vue/components/input/input.tsx b/packages/web-vue/components/input/input.tsx index 69755a708..bd322015d 100644 --- a/packages/web-vue/components/input/input.tsx +++ b/packages/web-vue/components/input/input.tsx @@ -215,6 +215,7 @@ export default defineComponent({ const showClearBtn = computed( () => props.allowClear && + !props.readonly && !mergedDisabled.value && Boolean(computedValue.value) ); From 55eff67a5694a2d43d94296fbcf7c2d771f1a0fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Fri, 7 Jun 2024 16:44:13 +0800 Subject: [PATCH 36/45] fix(table): fix table sticky-header failure with scrollbar (#3170) --- .../components/table/__demo__/sticky.md | 2 +- .../__test__/__snapshots__/demo.test.ts.snap | 4 +- packages/web-vue/components/table/table.tsx | 57 +++++++------------ 3 files changed, 22 insertions(+), 41 deletions(-) diff --git a/packages/web-vue/components/table/__demo__/sticky.md b/packages/web-vue/components/table/__demo__/sticky.md index 760ca2a87..f7ffea51b 100644 --- a/packages/web-vue/components/table/__demo__/sticky.md +++ b/packages/web-vue/components/table/__demo__/sticky.md @@ -18,7 +18,7 @@ Set the header suction via `sticky-header`. The calculation container for the to ```vue