fix travel style

This commit is contained in:
Timi
2025-12-16 16:57:49 +08:00
parent e650571563
commit f0f2815971
32 changed files with 1238 additions and 594 deletions

View File

@ -17,8 +17,12 @@ interface TravelEditorData {
date: string;
/** 出行时间 */
time: string;
/** 出行时间是否未定 */
travelAtUndecided: boolean;
/** 天数 */
days: number;
/** 天数是否未定 */
daysUndecided: boolean;
/** 交通类型 */
transportationType: TransportationType;
/** 状态 */
@ -49,9 +53,11 @@ Page({
content: "",
date: "2025-06-28",
time: "16:00",
travelAtUndecided: true,
days: 1,
transportationType: TransportationType.PLANE,
transportationTypeIndex: 0,
daysUndecided: true,
transportationType: TransportationType.SELF_DRIVING,
transportationTypeIndex: 4,
status: TravelStatus.PLANNING,
statusIndex: 0,
isLoading: false,
@ -108,13 +114,19 @@ Page({
// 格式化数据
let date = "";
let time = "";
let travelAtUndecided = true;
if (travel.travelAt) {
date = Time.toDate(travel.travelAt);
time = Time.toTime(travel.travelAt);
travelAtUndecided = false;
}
// 判断天数是否未定
const daysUndecided = !travel.days;
const days = travel.days || 1;
// 计算交通类型索引
const transportationType = travel.transportationType || TransportationType.PLANE;
const transportationType = travel.transportationType || TransportationType.SELF_DRIVING;
const transportationTypeIndex = this.data.transportationTypes.findIndex(
item => item.value === transportationType
);
@ -128,9 +140,11 @@ Page({
content: travel.content || "",
date,
time,
days: travel.days || 1,
travelAtUndecided,
days,
daysUndecided,
transportationType,
transportationTypeIndex: transportationTypeIndex >= 0 ? transportationTypeIndex : 0,
transportationTypeIndex: transportationTypeIndex >= 0 ? transportationTypeIndex : 4,
status,
statusIndex: statusIndex >= 0 ? statusIndex : 0,
isLoading: false
@ -163,13 +177,42 @@ Page({
status: this.data.statuses[index].value
});
},
/** 切换出行时间未定状态 */
toggleTravelAtUndecided(e: any) {
this.setData({ travelAtUndecided: e.detail.value });
},
/** 切换天数未定状态 */
toggleDaysUndecided(e: any) {
this.setData({ daysUndecided: e.detail.value });
},
/** 清除出行时间 */
clearTravelAt() {
this.setData({ travelAtUndecided: true });
},
/** 清除天数 */
clearDays() {
this.setData({ daysUndecided: true });
},
/** 点击未定文字选择时间 */
selectTravelAt() {
// 设置为已定状态,会自动显示选择器
const unixTime = new Date().getTime();
this.setData({
travelAtUndecided: false,
date: Time.toDate(unixTime),
time: Time.toTime(unixTime)
});
},
/** 点击未定文字选择天数 */
selectDays() {
this.setData({
daysUndecided: false,
days: 1
});
},
/** 取消 */
cancel() {
if (this.data.mode === "create") {
wx.navigateBack();
} else {
wx.navigateBack();
}
wx.navigateBack();
},
/** 提交/保存 */
submit() {
@ -195,8 +238,10 @@ Page({
await TravelApi.create({
title: this.data.title.trim(),
content: this.data.content.trim(),
travelAt: new Date(`${this.data.date}T${this.data.time}:00`).getTime(),
days: this.data.days,
travelAt: this.data.travelAtUndecided
? null
: new Date(`${this.data.date}T${this.data.time}:00`).getTime(),
days: this.data.daysUndecided ? null : this.data.days,
transportationType: this.data.transportationType,
status: this.data.status
});
@ -219,8 +264,10 @@ Page({
id: this.data.id!,
title: this.data.title.trim(),
content: this.data.content.trim(),
travelAt: new Date(`${this.data.date}T${this.data.time}:00`).getTime(),
days: this.data.days,
travelAt: this.data.travelAtUndecided
? null
: new Date(`${this.data.date}T${this.data.time}:00`).getTime(),
days: this.data.daysUndecided ? null : this.data.days,
transportationType: this.data.transportationType,
status: this.data.status
});