diff --git a/pagesA/sdPage/dfReport.vue b/pagesA/sdPage/dfReport.vue
index 67f2b87..8da3913 100644
--- a/pagesA/sdPage/dfReport.vue
+++ b/pagesA/sdPage/dfReport.vue
@@ -92,7 +92,9 @@
border="none"
:disabled="item.isSystemElectricMeterNumber"
:custom-style="
- item.isSystemElectricMeterNumber ? 'background:#fff;color:#666;' : ''
+ item.isSystemElectricMeterNumber
+ ? 'background:#fff;color:#666;'
+ : ''
"
/>
@@ -131,6 +133,37 @@
border="none"
/>
+
+
+ *
+ 抄表时间
+
+
+ onTimeConfirm(e, index)"
+ :min-date="minDate"
+ :max-date="maxDate"
+ >
+
+ {{
+ formatDisplayTime(form[index].meterReadingTime) ||
+ "请选择抄表时间"
+ }}
+
+
+
+
{
+ item.meterReadingTime = currentTime;
+ item.showTimePicker = false; // 确保时间选择器关闭
+ console.log(`表单项${index}的时间:`, item.meterReadingTime);
+ console.log(`表单项${index}的时间类型:`, typeof item.meterReadingTime);
+ });
+ },
+ // 格式化时间为 YYYY-MM-DD hh:mm 格式
+ formatDateTime(date) {
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, "0");
+ const day = String(date.getDate()).padStart(2, "0");
+ const hours = String(date.getHours()).padStart(2, "0");
+ const minutes = String(date.getMinutes()).padStart(2, "0");
+ return `${year}-${month}-${day} ${hours}:${minutes}`;
+ },
+ // 格式化时间显示,例如 "2023-10-27 10:30" 转换为 "2023年10月27日 10:30"
+ formatDisplayTime(time) {
+ if (!time) return "";
+ const date = new Date(time);
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, "0");
+ const day = String(date.getDate()).padStart(2, "0");
+ const hours = String(date.getHours()).padStart(2, "0");
+ const minutes = String(date.getMinutes()).padStart(2, "0");
+ return `${year}-${month}-${day} ${hours}:${minutes}`;
+ },
//图片超过大小时取消上传
oversize(e) {
this.$u.toast("请传10MB以内大小的图片/视频!");
@@ -247,22 +319,12 @@ export default {
},
getTree() {
getdeptList().then(async (res) => {
- this.deptOptions = this.handleTree(
- res.data,
- "deptId",
- "parentId",
- "children",
- 2
- );
- // const deptInfo = this.deptOptions[0].children.filter(
- // (item) => item.deptName == "城阳区"
- // )[0];
+ // 直接使用返回的数据,不使用未定义的handleTree方法
+ this.deptOptions = res.data || [];
+
const newArr = this.deptOptions.map((item) => ({
name: item.deptName,
}));
- // this.deptOptions = newArr
- // this.deptOptions = await this.getListByParentId("1", deptInfo.deptId);
- // const array = JSON.parse(JSON.stringify(this.deptOptions));
this.deptNames = newArr.map((item) => item.name);
});
},
@@ -277,13 +339,13 @@ export default {
async onPickerChange(e, type) {
if (type == "乐业社区") {
const apartmentInfo = this.deptOptions[e.detail.value];
-
+
// 添加数据验证
if (!apartmentInfo) {
console.warn("未获取到社区信息");
return;
}
-
+
this.blockForm.apartmentName = apartmentInfo.deptName;
this.blockForm.apartmentId = apartmentInfo.deptId;
// 楼
@@ -291,13 +353,13 @@ export default {
"2",
apartmentInfo.deptId
);
-
+
// 验证楼数据
if (!buildingArray || buildingArray.length === 0) {
console.warn("未获取到楼信息");
return;
}
-
+
this.buildingOptions = buildingArray;
const buildingNames = buildingArray.map((item) => item.name);
@@ -307,26 +369,25 @@ export default {
"3",
buildingArray[0].id
);
-
+
// 验证单元数据
if (!unitArray || unitArray.length === 0) {
console.warn("未获取到单元信息");
return;
}
-
+
this.unitOptions = unitArray;
const unitNames = unitArray.map((item) => item.name);
this.blockForm.unitId = unitArray[0].id;
// 户
const houseArray = await this.getListByParentId("4", unitArray[0].id);
-
+
// 验证户数据
if (!houseArray || houseArray.length === 0) {
console.warn("未获取到户信息");
return;
}
-
this.houseOptions = houseArray;
const houseNames = houseArray.map((item) => item.name);
this.blockForm.houseId = houseArray[0].id;
@@ -364,13 +425,13 @@ export default {
"3",
this.buildingOptions[e.detail.value].id
);
-
+
// 验证单元数据
if (!unitArray || unitArray.length === 0) {
console.warn("未获取到单元信息");
return;
}
-
+
this.unitOptions = unitArray;
const unitNames = unitArray.map((item) => item.name);
this.blockForm.unitId = unitArray[0].id;
@@ -379,13 +440,13 @@ export default {
"4",
unitArray[0].id
);
-
+
// 验证户数据
if (!houseArray || houseArray.length === 0) {
console.warn("未获取到户信息");
return;
}
-
+
this.houseOptions = houseArray;
const houseNames = houseArray.map((item) => item.name);
this.blockForm.houseId = houseArray[0].id;
@@ -403,13 +464,13 @@ export default {
"4",
this.unitOptions[e.detail.value].id
);
-
+
// 验证户数据
if (!houseArray || houseArray.length === 0) {
console.warn("未获取到户信息");
return;
}
-
+
this.houseOptions = houseArray;
const houseNames = houseArray.map((item) => item.name);
this.blockForm.houseId = houseArray[0].id;
@@ -428,7 +489,7 @@ export default {
this.houseOptions[e.detail.value].energyMeterConfig;
}
}
-
+
// 确保在调用方法之前有有效的配置
if (this.energyMeterConfig && this.blockForm.houseId) {
if (this.energyMeterConfig == 1) {
@@ -437,7 +498,7 @@ export default {
this.getRoomByHouseId(this.blockForm.houseId);
}
}
-
+
this.$forceUpdate();
},
onDelete(event, index) {
@@ -500,32 +561,55 @@ export default {
console.warn("未获取到房屋信息");
return;
}
-
+
if (this.energyMeterConfig == 1) {
this.getRoomByHouseId(id);
this.form = [
{
- electricMeterNumber: res.data.electricMeterNumber && res.data.electricMeterNumber.trim() !== '' ? res.data.electricMeterNumber : "",
- isSystemElectricMeterNumber: !!(res.data.electricMeterNumber && res.data.electricMeterNumber.trim() !== ''),
+ electricMeterNumber:
+ res.data.electricMeterNumber &&
+ res.data.electricMeterNumber.trim() !== ""
+ ? res.data.electricMeterNumber
+ : "",
+ isSystemElectricMeterNumber: !!(
+ res.data.electricMeterNumber &&
+ res.data.electricMeterNumber.trim() !== ""
+ ),
+ meterReadingTime: this.formatDateTime(new Date()), // 设置默认抄表时间(格式化字符串)
+ showTimePicker: false, // 确保时间选择器关闭
},
];
} else if (this.energyMeterConfig == 2) {
this.form = this.form.map((item) => ({
...item,
- electricMeterNumber: res.data.electricMeterNumber && res.data.electricMeterNumber.trim() !== '' ? res.data.electricMeterNumber : "",
- isSystemElectricMeterNumber: !!(res.data.electricMeterNumber && res.data.electricMeterNumber.trim() !== ''),
+ electricMeterNumber:
+ res.data.electricMeterNumber &&
+ res.data.electricMeterNumber.trim() !== ""
+ ? res.data.electricMeterNumber
+ : "",
+ isSystemElectricMeterNumber: !!(
+ res.data.electricMeterNumber &&
+ res.data.electricMeterNumber.trim() !== ""
+ ),
+ meterReadingTime:
+ item.meterReadingTime || this.formatDateTime(new Date()), // 确保有抄表时间(格式化字符串)
+ showTimePicker: false, // 确保时间选择器关闭
}));
}
-
+
// 只有当电表号存在时才调用获取上次读数
- if (res.data.electricMeterNumber && res.data.electricMeterNumber.trim() !== '') {
+ if (
+ res.data.electricMeterNumber &&
+ res.data.electricMeterNumber.trim() !== ""
+ ) {
this.getLastMeter(res.data.electricMeterNumber);
}
}
},
// 获取上次抄表
async getLastMeter(item) {
+ this.initMeterReadingTime();
let roomId = "";
if (this.waterMeterConfig == 1) {
roomId = this.form[0].id;
@@ -539,19 +623,24 @@ export default {
meterNumber: item,
};
const res = await queryLastMeterReading(params);
-
+
// 添加安全检查,确保res.data存在且不为空
if (!res.data || !Array.isArray(res.data) || res.data.length === 0) {
console.warn("未获取到电表读数数据");
return;
}
-
+
if (this.energyMeterConfig == 1) {
this.form = this.form.map((item) => ({
...item,
lastMeterReading: res.data[0].thisMeterReading || 0,
electricMeterNumber: res.data[0].meterNumber || "",
- isSystemElectricMeterNumber: !!(res.data[0].meterNumber && res.data[0].meterNumber.trim() !== ''),
+ isSystemElectricMeterNumber: !!(
+ res.data[0].meterNumber && res.data[0].meterNumber.trim() !== ""
+ ),
+ meterReadingTime:
+ item.meterReadingTime || this.formatDateTime(new Date()), // 保留抄表时间
+ showTimePicker: false, // 确保时间选择器关闭
}));
} else if (this.energyMeterConfig == 2) {
this.form = this.form.map((item) => {
@@ -565,7 +654,12 @@ export default {
...item,
lastMeterReading: meter.thisMeterReading || 0,
electricMeterNumber: meter.meterNumber || "",
- isSystemElectricMeterNumber: !!(meter.meterNumber && meter.meterNumber.trim() !== ''),
+ isSystemElectricMeterNumber: !!(
+ meter.meterNumber && meter.meterNumber.trim() !== ""
+ ),
+ meterReadingTime:
+ item.meterReadingTime || this.formatDateTime(new Date()), // 保留抄表时间
+ showTimePicker: false, // 确保时间选择器关闭
};
}
return item;
@@ -580,14 +674,21 @@ export default {
console.warn("未获取到房间数据");
return;
}
-
+
if (this.energyMeterConfig == 1) {
this.form = this.form.map((item) => ({
...item,
id: res.data[0].id || "",
+ meterReadingTime:
+ item.meterReadingTime || this.formatDateTime(new Date()), // 确保有抄表时间
+ showTimePicker: false, // 确保时间选择器关闭
}));
} else if (this.energyMeterConfig == 2) {
- this.form = res.data;
+ this.form = res.data.map((item) => ({
+ ...item,
+ meterReadingTime: this.formatDateTime(new Date()), // 为每个房间设置默认抄表时间
+ showTimePicker: false, // 确保时间选择器关闭
+ }));
this.getLastMeter();
}
}
@@ -629,6 +730,13 @@ export default {
});
return;
}
+ if (!item.meterReadingTime) {
+ uni.showToast({
+ title: `第${i + 1}个房间请选择抄表时间`,
+ icon: "none",
+ });
+ return;
+ }
if (!item.fileList || item.fileList.length === 0) {
uni.showToast({
title: `第${i + 1}个房间请上传图片/视频`,
@@ -658,6 +766,13 @@ export default {
});
return;
}
+ if (!item.meterReadingTime) {
+ uni.showToast({
+ title: `请选择抄表时间`,
+ icon: "none",
+ });
+ return;
+ }
if (!item.fileList || item.fileList.length === 0) {
uni.showToast({
title: `请上传图片/视频`,
@@ -678,7 +793,7 @@ export default {
});
return;
}
-
+
// 验证blockForm数据
if (!this.blockForm.houseId) {
uni.showToast({
@@ -687,32 +802,43 @@ export default {
});
return;
}
-
- let params = this.form.map((item) => {
- // 验证每个表单项
- if (!item) {
- console.warn("表单项数据无效:", item);
- return null;
- }
-
- return {
- meterNumber: item.electricMeterNumber || "",
- meterType: 1,
- houseId: this.blockForm.houseId,
- roomId: item.id || "",
- // lastMeterReading: isNaN(parseFloat(item.lastMeterReading)) ? '' : parseFloat(item.lastMeterReading).toFixed(4),
- lastMeterReading: item.lastMeterReading ? item.lastMeterReading : item.thisMeterReading,
- thisMeterReading: parseFloat(item.thisMeterReading || 0).toFixed(4),
- images: (item.fileList || []).map((f) => ({
- url: f.url || "",
- name: f.name || "",
- type: f.type || "",
- format: f.format || (f.url ? f.url.split(".").pop() : ""),
- })),
- remark: item.remark || "",
- };
- }).filter(item => item !== null); // 过滤掉无效的项
-
+
+ let params = this.form
+ .map((item) => {
+ // 验证每个表单项
+ if (!item) {
+ console.warn("表单项数据无效:", item);
+ return null;
+ }
+
+ // 验证时间格式
+ console.log(`表单项时间:`, item.meterReadingTime);
+ console.log(`表单项时间类型:`, typeof item.meterReadingTime);
+
+ return {
+ meterNumber: item.electricMeterNumber || "",
+ meterType: 1,
+ houseId: this.blockForm.houseId,
+ roomId: item.id || "",
+ // lastMeterReading: isNaN(parseFloat(item.lastMeterReading)) ? '' : parseFloat(item.lastMeterReading).toFixed(4),
+ lastMeterReading: item.lastMeterReading
+ ? item.lastMeterReading
+ : item.thisMeterReading,
+ thisMeterReading: parseFloat(item.thisMeterReading || 0).toFixed(4),
+ inputTime: item.meterReadingTime
+ ? new Date(item.meterReadingTime.length === 16 ? item.meterReadingTime + ":00" : item.meterReadingTime).getTime()
+ : "", // 改为时间戳
+ images: (item.fileList || []).map((f) => ({
+ url: f.url || "",
+ name: f.name || "",
+ type: f.type || "",
+ format: f.format || (f.url ? f.url.split(".").pop() : ""),
+ })),
+ remark: item.remark || "",
+ };
+ })
+ .filter((item) => item !== null); // 过滤掉无效的项
+
// 验证处理后的参数
if (params.length === 0) {
uni.showToast({
@@ -721,9 +847,9 @@ export default {
});
return;
}
-
+
console.log(params, "params");
-
+
try {
const res = await submitWaterAndElectricity(params);
if (res.code == 200) {
@@ -755,6 +881,72 @@ export default {
});
}
},
+ onTimeConfirm(e, index) {
+ console.log("时间选择器返回值:", e);
+
+ // 处理时间选择器的返回值
+ let selectedDate;
+ if (e.value) {
+ // 如果返回的是时间戳
+ selectedDate = new Date(e.value);
+ } else if (e.year && e.month && e.day) {
+ // 如果返回的是年月日时分对象
+ selectedDate = new Date(
+ e.year,
+ e.month - 1,
+ e.day,
+ e.hour || 0,
+ e.minute || 0
+ );
+ } else {
+ // 其他情况,使用当前时间
+ selectedDate = new Date();
+ }
+
+ // 格式化并保存时间(存储为格式化的字符串)
+ const formattedTime = this.formatDateTime(selectedDate);
+ this.form[index].meterReadingTime = formattedTime;
+ this.form[index].showTimePicker = false; // 关闭时间选择器
+
+ console.log("选择的时间戳:", e.value);
+ console.log("转换后的Date对象:", selectedDate);
+ console.log("格式化后的时间字符串:", formattedTime);
+ console.log("表单中存储的时间:", this.form[index].meterReadingTime);
+ },
+ showTimePicker(index) {
+ this.form[index].showTimePicker = true; // 打开时间选择器
+
+ // 微信小程序需要用此写法设置格式化器
+ this.$nextTick(() => {
+ const pickerRef = this.$refs[`datetimePicker${index}`];
+ if (pickerRef && pickerRef.setFormatter) {
+ pickerRef.setFormatter(this.formatter);
+ }
+ });
+ },
+ closeTimePicker(index) {
+ console.log("关闭时间选择器", index);
+ this.form[index].showTimePicker = false; // 关闭时间选择器
+ },
+ // 时间格式化器
+ formatter(type, value) {
+ if (type === "year") {
+ return `${value}年`;
+ }
+ if (type === "month") {
+ return `${value}月`;
+ }
+ if (type === "day") {
+ return `${value}日`;
+ }
+ if (type === "hour") {
+ return `${value}时`;
+ }
+ if (type === "minute") {
+ return `${value}分`;
+ }
+ return value;
+ },
},
};
@@ -912,6 +1104,17 @@ export default {
font-size: 24rpx;
margin-top: 8rpx;
}
+.time-display {
+ color: #222;
+ font-size: 28rpx;
+ min-width: 200rpx;
+ text-align: right;
+ padding: 8rpx 0;
+ border: 1px solid transparent;
+ border-radius: 8rpx;
+ background: #fff;
+ padding: 8rpx 16rpx;
+}
.u-upload__wrap {
display: flex;
flex-wrap: wrap;
diff --git a/pagesA/sdPage/sfReport.vue b/pagesA/sdPage/sfReport.vue
index ef362f2..7426cba 100644
--- a/pagesA/sdPage/sfReport.vue
+++ b/pagesA/sdPage/sfReport.vue
@@ -124,6 +124,37 @@
border="none"
/>
+
+
+ *
+ 抄表时间
+
+
+ onTimeConfirm(e, index)"
+ :min-date="minDate"
+ :max-date="maxDate"
+ >
+
+ {{
+ formatDisplayTime(form[index].meterReadingTime) ||
+ "请选择抄表时间"
+ }}
+
+
+
+
{
- this.deptOptions = this.handleTree(
- res.data,
- "deptId",
- "parentId",
- "children",
- 2
- );
- // const deptInfo = this.deptOptions[0].children.filter(
- // (item) => item.deptName == "城阳区"
- // )[0];
+ // 直接使用返回的数据,不使用未定义的handleTree方法
+ this.deptOptions = res.data || [];
+
const newArr = this.deptOptions.map((item) => ({
name: item.deptName,
}));
- // this.deptOptions = newArr
- // this.deptOptions = await this.getListByParentId("1", deptInfo.deptId);
- // const array = JSON.parse(JSON.stringify(this.deptOptions));
this.deptNames = newArr.map((item) => item.name);
});
},
@@ -321,9 +346,9 @@ export default {
this.houseOptions = houseArray;
const houseNames = houseArray.map((item) => item.name);
this.blockForm.houseId = houseArray[0].id;
- this.energyMeterConfig = houseArray[0].energyMeterConfig;
this.waterMeterConfig = houseArray[0].waterMeterConfig;
+
this.blockForm.roomId = houseArray[0].roomId;
let house = houseArray[0];
// for (let index = 0; index < house.type; index++) {
@@ -336,9 +361,9 @@ export default {
// });
// }
this.multiArray = [buildingNames, unitNames, houseNames];
- if (this.energyMeterConfig == 1) {
+ if (this.waterMeterConfig == 1) {
this.getHouseInfoBy(this.blockForm.houseId);
- } else if (this.energyMeterConfig == 2) {
+ } else if (this.waterMeterConfig == 2) {
this.getRoomByHouseId(this.blockForm.houseId);
}
}
@@ -494,6 +519,8 @@ export default {
{
waterMeterNumber: res.data.waterMeterNumber || "",
isSystemWaterMeterNumber: !!(res.data.waterMeterNumber && res.data.waterMeterNumber.trim() !== ''),
+ meterReadingTime: this.formatDateTime(new Date()), // 设置默认抄表时间(格式化字符串)
+ showTimePicker: false, // 确保时间选择器关闭
},
];
} else if (this.waterMeterConfig == 2) {
@@ -501,12 +528,16 @@ export default {
...item,
waterMeterNumber: res.data.waterMeterNumber || "",
isSystemWaterMeterNumber: !!(res.data.waterMeterNumber && res.data.waterMeterNumber.trim() !== ''),
+ meterReadingTime: item.meterReadingTime || this.formatDateTime(new Date()), // 确保有抄表时间(格式化字符串)
+ showTimePicker: false, // 确保时间选择器关闭
}));
}
this.getLastMeter(res.data.waterMeterNumber);
}
},
+ // 获取上次抄表
async getLastMeter(waterMeterNumber) {
+ this.initMeterReadingTime();
console.log(this.form, "this.formgetHouseInfoBy");
let roomId = ''
if (this.waterMeterConfig == 1) {
@@ -535,6 +566,7 @@ export default {
lastMeterReading: res.data[0].thisMeterReading || 0,
waterMeterNumber: res.data[0].meterNumber || "",
isSystemWaterMeterNumber: !!(res.data[0].meterNumber && res.data[0].meterNumber.trim() !== ''),
+ meterReadingTime: item.meterReadingTime || this.formatDateTime(new Date()), // 确保有抄表时间
}));
console.log(this.form, "this.formgetLastMeter");
@@ -549,12 +581,26 @@ export default {
lastMeterReading: meter.thisMeterReading || 0,
waterMeterNumber: meter.meterNumber || "",
isSystemWaterMeterNumber: !!(meter.meterNumber && meter.meterNumber.trim() !== ''),
+ meterReadingTime: item.meterReadingTime || this.formatDateTime(new Date()), // 确保有抄表时间
};
}
return item;
});
}
},
+ // 初始化抄表时间
+ initMeterReadingTime() {
+ const currentTime = this.formatDateTime(new Date());
+ console.log("初始化时间:", currentTime);
+ console.log("当前时间Date对象:", new Date());
+
+ this.form.forEach((item, index) => {
+ item.meterReadingTime = currentTime;
+ item.showTimePicker = false; // 确保时间选择器关闭
+ console.log(`表单项${index}的时间:`, item.meterReadingTime);
+ console.log(`表单项${index}的时间类型:`, typeof item.meterReadingTime);
+ });
+ },
async getRoomByHouseId(id) {
const res = await getRoomByHouseId({ houseId: id });
if (res.code == 200) {
@@ -571,10 +617,16 @@ export default {
this.form = this.form.map((item) => ({
...item,
- id: res.data[0].id || ""
+ id: res.data[0].id || "",
+ meterReadingTime: item.meterReadingTime || this.formatDateTime(new Date()), // 确保有抄表时间
+ showTimePicker: false, // 确保时间选择器关闭
}));
} else if (this.waterMeterConfig == 2) {
- this.form = res.data;
+ this.form = res.data.map(item => ({
+ ...item,
+ meterReadingTime: this.formatDateTime(new Date()), // 为每个房间设置默认抄表时间
+ showTimePicker: false, // 确保时间选择器关闭
+ }));
this.getLastMeter();
}
}
@@ -621,6 +673,13 @@ export default {
});
return;
}
+ if (!item.meterReadingTime) {
+ uni.showToast({
+ title: `第${i + 1}个房间请选择抄表时间`,
+ icon: "none",
+ });
+ return;
+ }
if (!item.fileList || item.fileList.length === 0) {
uni.showToast({
title: `第${i + 1}个房间请上传图片/视频`,
@@ -650,6 +709,13 @@ export default {
});
return;
}
+ if (!item.meterReadingTime) {
+ uni.showToast({
+ title: `请选择抄表时间`,
+ icon: "none",
+ });
+ return;
+ }
if (!item.fileList || item.fileList.length === 0) {
uni.showToast({
title: `请上传图片/视频`,
@@ -697,6 +763,9 @@ export default {
// lastMeterReading: isNaN(parseFloat(item.lastMeterReading)) ? '' : parseFloat(item.lastMeterReading).toFixed(4),
lastMeterReading: item.lastMeterReading ? item.lastMeterReading : item.thisMeterReading,
thisMeterReading: parseFloat(item.thisMeterReading || 0).toFixed(4),
+ inputTime: item.meterReadingTime
+ ? new Date(item.meterReadingTime.length === 16 ? item.meterReadingTime + ":00" : item.meterReadingTime).getTime()
+ : "", // 改为时间戳
images: (item.fileList || []).map((f) => ({
url: f.url || "",
name: f.name || "",
@@ -747,6 +816,92 @@ export default {
});
}
},
+ showTimePicker(index) {
+ this.form[index].showTimePicker = true; // 打开时间选择器
+
+ // 微信小程序需要用此写法设置格式化器
+ this.$nextTick(() => {
+ const pickerRef = this.$refs[`datetimePicker${index}`];
+ if (pickerRef && pickerRef.setFormatter) {
+ pickerRef.setFormatter(this.formatter);
+ }
+ });
+ },
+ closeTimePicker(index) {
+ console.log("关闭时间选择器", index);
+ this.form[index].showTimePicker = false; // 关闭时间选择器
+ },
+ onTimeConfirm(e, index) {
+ console.log("时间选择器返回值:", e);
+
+ // 处理时间选择器的返回值
+ let selectedDate;
+ if (e.value) {
+ // 如果返回的是时间戳
+ selectedDate = new Date(e.value);
+ } else if (e.year && e.month && e.day) {
+ // 如果返回的是年月日时分对象
+ selectedDate = new Date(
+ e.year,
+ e.month - 1,
+ e.day,
+ e.hour || 0,
+ e.minute || 0
+ );
+ } else {
+ // 其他情况,使用当前时间
+ selectedDate = new Date();
+ }
+
+ // 格式化并保存时间(存储为格式化的字符串)
+ const formattedTime = this.formatDateTime(selectedDate);
+ this.form[index].meterReadingTime = formattedTime;
+ this.form[index].showTimePicker = false; // 关闭时间选择器
+
+ console.log("选择的时间戳:", e.value);
+ console.log("转换后的Date对象:", selectedDate);
+ console.log("格式化后的时间字符串:", formattedTime);
+ console.log("表单中存储的时间:", this.form[index].meterReadingTime);
+ },
+ // 时间格式化器
+ formatter(type, value) {
+ if (type === "year") {
+ return `${value}年`;
+ }
+ if (type === "month") {
+ return `${value}月`;
+ }
+ if (type === "day") {
+ return `${value}日`;
+ }
+ if (type === "hour") {
+ return `${value}时`;
+ }
+ if (type === "minute") {
+ return `${value}分`;
+ }
+ return value;
+ },
+ // 格式化时间为 YYYY-MM-DD hh:mm 格式
+ formatDateTime(date) {
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, "0");
+ const day = String(date.getDate()).padStart(2, "0");
+ const hours = String(date.getHours()).padStart(2, "0");
+ const minutes = String(date.getMinutes()).padStart(2, "0");
+ return `${year}-${month}-${day} ${hours}:${minutes}`;
+ },
+ // 格式化时间显示,用于在模板中显示时间
+ formatDisplayTime(time) {
+ if (!time) return "";
+ const date = new Date(time);
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, "0");
+ const day = String(date.getDate()).padStart(2, "0");
+ const hours = String(date.getHours()).padStart(2, "0");
+ const minutes = String(date.getMinutes()).padStart(2, "0");
+ return `${year}-${month}-${day} ${hours}:${minutes}`;
+ },
},
};
@@ -904,6 +1059,17 @@ export default {
font-size: 24rpx;
margin-top: 8rpx;
}
+.time-display {
+ color: #222;
+ font-size: 28rpx;
+ min-width: 200rpx;
+ text-align: right;
+ padding: 8rpx 0;
+ border: 1px solid transparent;
+ border-radius: 8rpx;
+ background: #fff;
+ padding: 8rpx 16rpx;
+}
.u-upload__wrap {
display: flex;
flex-wrap: wrap;