Skip to content

Commit

Permalink
Merge branch 'refs/heads/develop' into fix/spellcheck
Browse files Browse the repository at this point in the history
  • Loading branch information
NWYLZW committed Jun 6, 2024
2 parents 48b694f + 16dea87 commit 47de1f9
Show file tree
Hide file tree
Showing 8 changed files with 202 additions and 118 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/auto-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
steps:
- run: echo "The head of this PR starts with 'release/'"
- uses: actions/checkout@v3
- uses: 94dreamer/auto-release@develop
- uses: TDesignOteam/tdesign-changelog-action@main
id: changelog
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion src/_common
32 changes: 20 additions & 12 deletions src/date-picker/DateRangePicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -203,12 +203,16 @@ const DateRangePicker = forwardRef<HTMLDivElement, DateRangePickerProps>((origin
if (partialIndex === 0) {
if (nextYear[1] <= nextYear[0]) {
if (onlyYearSelect) nextYear[1] = nextYear[0] + 1;
else if (nextMonth[1] <= nextMonth[0]) {
nextMonth[1] = nextMonth[0] + 1;
if (nextMonth[1] === 12) {
// 处理跨年的边界场景
nextMonth[1] = 0;
nextYear = [nextYear[0], nextYear[1] + 1];
else {
// eslint-disable-next-line prefer-destructuring
nextYear[1] = nextYear[0];
if (nextMonth[1] <= nextMonth[0]) {
nextMonth[1] = nextMonth[0] + 1;
if (nextMonth[1] === 12) {
// 处理跨年的边界场景
nextMonth[1] = 0;
nextYear = [nextYear[0], nextYear[1] + 1];
}
}
}
}
Expand All @@ -219,12 +223,16 @@ const DateRangePicker = forwardRef<HTMLDivElement, DateRangePickerProps>((origin
if (nextYear[0] >= nextYear[1]) {
// 年/季度/月份场景下,头部只有年选择器,直接 - 1
if (onlyYearSelect) nextYear[0] = nextYear[1] - 1;
else if (nextMonth[0] >= nextMonth[1]) {
nextMonth[0] -= 1;
if (nextMonth[0] === -1) {
// 处理跨年的边界场景
nextMonth[0] = 11;
nextYear = [nextYear[0] - 1, nextYear[1]];
else {
// eslint-disable-next-line prefer-destructuring
nextYear[0] = nextYear[1];
if (nextMonth[0] >= nextMonth[1]) {
nextMonth[0] -= 1;
if (nextMonth[0] === -1) {
// 处理跨年的边界场景
nextMonth[0] = 11;
nextYear = [nextYear[0] - 1, nextYear[1]];
}
}
}
}
Expand Down
105 changes: 92 additions & 13 deletions src/date-picker/DateRangePickerPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -131,26 +131,48 @@ const DateRangePickerPanel = forwardRef<HTMLDivElement, DateRangePickerPanelProp
next = addMonth(current, monthCount);
}

const nextYear = [...year];
let nextYear = [...year];
nextYear[partialIndex] = next.getFullYear();
const nextMonth = [...month];
nextMonth[partialIndex] = next.getMonth();
const onlyYearSelect = ['year', 'quarter', 'month'].includes(mode);

// 保证左侧时间不大于右侧
if (partialIndex === 0) {
nextYear[1] = Math.max(nextYear[0], nextYear[1]);

if (nextYear[0] === nextYear[1]) {
nextMonth[1] = Math.max(nextMonth[0], nextMonth[1]);
if (nextYear[1] <= nextYear[0]) {
if (onlyYearSelect) nextYear[1] = nextYear[0] + 1;
else {
// eslint-disable-next-line prefer-destructuring
nextYear[1] = nextYear[0];
if (nextMonth[1] <= nextMonth[0]) {
nextMonth[1] = nextMonth[0] + 1;
if (nextMonth[1] === 12) {
// 处理跨年的边界场景
nextMonth[1] = 0;
nextYear = [nextYear[0], nextYear[1] + 1];
}
}
}
}
}

// 保证左侧时间不大于右侧
if (partialIndex === 1) {
nextYear[0] = Math.min(nextYear[0], nextYear[1]);

if (nextYear[0] === nextYear[1]) {
nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);
if (nextYear[0] >= nextYear[1]) {
// 年/季度/月份场景下,头部只有年选择器,直接 - 1
if (onlyYearSelect) nextYear[0] = nextYear[1] - 1;
else {
// eslint-disable-next-line prefer-destructuring
nextYear[0] = nextYear[1];
if (nextMonth[0] >= nextMonth[1]) {
nextMonth[0] -= 1;
if (nextMonth[0] === -1) {
// 处理跨年的边界场景
nextMonth[0] = 11;
nextYear = [nextYear[0] - 1, nextYear[1]];
}
}
}
}
}

Expand Down Expand Up @@ -250,11 +272,47 @@ const DateRangePickerPanel = forwardRef<HTMLDivElement, DateRangePickerPanelProp

const nextYear = [...year];
nextYear[partialIndex] = nextVal;
const nextMonth = [...month];
nextYear[partialIndex] = nextVal;
// 年/季度/月份场景下,头部只有年选择器
const onlyYearSelect = ['year', 'quarter', 'month'].includes(mode);
// 保证左侧时间不大于右侧
if (partialIndex === 0) nextYear[1] = Math.max(nextYear[0], nextYear[1]);
if (partialIndex === 1) nextYear[0] = Math.min(nextYear[0], nextYear[1]);
if (partialIndex === 0) {
if (nextYear[1] <= nextYear[0]) {
if (onlyYearSelect) nextYear[1] = nextYear[0] + 1;
else {
// 日期,周选择场景,还有月份选择器,需要再处理月份选择器的边界问题
// eslint-disable-next-line prefer-destructuring
nextYear[1] = nextYear[0];
nextMonth[1] = nextMonth[0] + 1;
if (nextMonth[1] === 12) {
// 处理跨年的边界场景
nextMonth[1] = 0;
nextYear[1] += 1;
}
}
}
}
if (partialIndex === 1) {
if (nextYear[0] >= nextYear[1]) {
// 年/季度/月份场景下,头部只有年选择器,直接 - 1
if (onlyYearSelect) nextYear[0] = nextYear[1] - 1;
else {
// 日期,周选择场景,还有月份选择器,需要再处理月份选择器的边界问题
// eslint-disable-next-line prefer-destructuring
nextYear[0] = nextYear[1];
nextMonth[0] = nextMonth[1] - 1;
if (nextMonth[0] === -1) {
// 处理跨年的边界场景
nextMonth[0] = 11;
nextYear[0] -= 1;
}
}
}
}

setYear(nextYear);
!onlyYearSelect && setMonth(nextMonth);

props.onYearChange?.({
partial,
Expand All @@ -272,8 +330,29 @@ const DateRangePickerPanel = forwardRef<HTMLDivElement, DateRangePickerPanelProp
nextMonth[partialIndex] = nextVal;
// 保证左侧时间不大于右侧
if (year[0] === year[1]) {
if (partialIndex === 0) nextMonth[1] = Math.max(nextMonth[0], nextMonth[1]);
if (partialIndex === 1) nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);
if (partialIndex === 0) {
// 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错右侧比左侧大 1
if (nextMonth[1] <= nextMonth[0]) {
nextMonth[1] = nextMonth[0] + 1;
if (nextMonth[1] === 12) {
// 处理跨年的边界场景
nextMonth[1] = 0;
setYear((currentYear) => [currentYear[0], currentYear[1] + 1]);
}
}
}
if (partialIndex === 1) {
// 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错左侧比右侧小 1
nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);
if (nextMonth[0] >= nextMonth[1]) {
nextMonth[0] -= 1;
if (nextMonth[0] === -1) {
// 处理跨年的边界场景
nextMonth[0] = 11;
setYear((currentYear) => [currentYear[0] - 1, currentYear[1]]);
}
}
}
}

setMonth(nextMonth);
Expand Down
1 change: 1 addition & 0 deletions src/input/input.en-US.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ align | String | left | options: left/center/right | N
allowInputOverMax | Boolean | false | \- | N
autoWidth | Boolean | false | \- | N
autocomplete | String | undefined | \- | N
spellCheck | Boolean | false | \- | N
autofocus | Boolean | false | \- | N
borderless | Boolean | false | input without border | N
clearable | Boolean | false | \- | N
Expand Down
1 change: 1 addition & 0 deletions src/input/input.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ align | String | left | 文本内容位置,居左/居中/居右。可选项:
allowInputOverMax | Boolean | false | 超出 `maxlength``maxcharacter` 之后是否允许继续输入 | N
autoWidth | Boolean | false | 宽度随内容自适应 | N
autocomplete | String | undefined | 是否开启自动填充功能,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) | N
spellCheck | Boolean | false | 是否开启拼写检查,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/spellcheck) | N
autofocus | Boolean | false | 自动聚焦 | N
borderless | Boolean | false | 无边框模式 | N
clearable | Boolean | false | 是否可清空 | N
Expand Down
4 changes: 4 additions & 0 deletions src/input/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ export interface TdInputProps {
* 是否开启自动填充功能,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete)
*/
autocomplete?: string;
/**
* 是否开启拼写检查,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/spellcheck)
*/
spellCheck?: boolean;
/**
* 自动聚焦
* @default false
Expand Down
Loading

0 comments on commit 47de1f9

Please sign in to comment.