解决多语言切换时部分组件文本未更新问题

This commit is contained in:
icssoa
2025-07-28 18:57:37 +08:00
parent 524a8239ad
commit 4cace687c4
24 changed files with 123 additions and 60 deletions

View File

@@ -8,11 +8,11 @@ export class DayUts {
private _date: Date;
constructor(date?: Date | string | number | null) {
if (date === null) {
if (date == null || date == "") {
this._date = new Date();
} else if (typeof date === "string") {
} else if (typeof date == "string") {
this._date = new Date(date);
} else if (typeof date === "number") {
} else if (typeof date == "number") {
this._date = new Date(date);
} else if (date instanceof Date) {
this._date = new Date(date.getTime());
@@ -74,7 +74,7 @@ export class DayUts {
/**
* 获取某个单位的开始时间
*/
startOf(unit: "month" | "day" | "year"): DayUts {
startOf(unit: "month" | "day" | "year" | "week"): DayUts {
const newDate = new Date(this._date.getTime());
switch (unit) {
@@ -93,6 +93,13 @@ export class DayUts {
newDate.setSeconds(0);
newDate.setMilliseconds(0);
break;
case "week":
newDate.setDate(newDate.getDate() - newDate.getDay());
newDate.setHours(0);
newDate.setMinutes(0);
newDate.setSeconds(0);
newDate.setMilliseconds(0);
break;
case "day":
newDate.setHours(0);
newDate.setMinutes(0);
@@ -107,7 +114,7 @@ export class DayUts {
/**
* 获取某个单位的结束时间
*/
endOf(unit: "month" | "day" | "year"): DayUts {
endOf(unit: "month" | "day" | "year" | "week"): DayUts {
const newDate = new Date(this._date.getTime());
switch (unit) {
@@ -120,7 +127,6 @@ export class DayUts {
newDate.setMilliseconds(999);
break;
case "month":
// 设置到下个月的第一天,然后减一天
newDate.setMonth(newDate.getMonth() + 1);
newDate.setDate(0);
newDate.setHours(23);
@@ -128,6 +134,13 @@ export class DayUts {
newDate.setSeconds(59);
newDate.setMilliseconds(999);
break;
case "week":
newDate.setDate(newDate.getDate() + 7);
newDate.setHours(23);
newDate.setMinutes(59);
newDate.setSeconds(59);
newDate.setMilliseconds(999);
break;
case "day":
newDate.setHours(23);
newDate.setMinutes(59);
@@ -160,7 +173,7 @@ export class DayUts {
*/
isSame(date: DayUts | Date | string | number): boolean {
const compareDate = this._parseDate(date);
return this._date.getTime() === compareDate.getTime();
return this._date.getTime() == compareDate.getTime();
}
/**
@@ -269,9 +282,9 @@ export class DayUts {
return date.toDate();
} else if (date instanceof Date) {
return date;
} else if (typeof date === "string") {
} else if (typeof date == "string") {
return new Date(date);
} else if (typeof date === "number") {
} else if (typeof date == "number") {
return new Date(date);
} else {
// 如果都不匹配,返回当前时间