From e4072970b91f2136114b1bd80015ddcf3315b6ae Mon Sep 17 00:00:00 2001 From: JayJiaJun Date: Mon, 17 Feb 2025 18:46:49 +0800 Subject: [PATCH] 2.17 --- src/views/Home.vue | 148 +++++++++++++++++++++++++-------------------- 1 file changed, 82 insertions(+), 66 deletions(-) diff --git a/src/views/Home.vue b/src/views/Home.vue index e40f852..20b4bd9 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -128,6 +128,39 @@ + + + +
+ +

+ 车道默认设置 +

+ +
+ + + + + + + +
+ +
+ 保存设置 +
+
+
+ +
+
+ +
+
+
@@ -179,13 +212,22 @@ - + + + + + + + + @@ -220,59 +262,6 @@ - - - -
- -

- 车道默认设置 -

- -
- - - - - - -
- -
- 保存设置 -
-
- - -
-
-
-
- - - -
@@ -353,6 +342,12 @@ export default { lane3: [], lane4: [] }, + modeMapping: { + 0: '左转 直行', + 1: '右转 直行', + 2: '转弯', // 增加转弯模式 + // 可以继续添加更多模式 + }, planDialogVisible: false, dialogTitle: '新增方案', isEdit: false, @@ -500,7 +495,7 @@ export default { scheme: [{ id: newId, // 使用生成的 ID name: this.newPlan.name, - selectedMode: this.newPlan.selectedMode, + selectedMode: Number(this.newPlan.selectedMode), timeRange: { start: formatTime(startTime), end: formatTime(endTime) @@ -540,6 +535,10 @@ export default { message: response.data?.parameters?.message || '方案添加成功', type: 'success' }); + // 延迟 2 秒后调用 getAllInfo + setTimeout(() => { + this.getAllInfo(); // 延迟调用 + }, 2000); // 2000 毫秒 = 2 秒 } else { ElMessage({ message: response.data?.parameters?.message || '方案添加失败', @@ -614,12 +613,13 @@ export default { // 解析 repeatDays 二进制字符串 const repeatDaysBinary = scheme.repeatDays.split('').map(Number); // 转换为数字数组 const repeatDays = repeatDaysBinary.map((day, index) => day === 1 ? index : null).filter(Boolean); // 过滤出选中的日期 + const selectedMode = this.modeMapping[scheme.selectedMode] || '未知模式'; // 默认为 '未知模式' return { id: parseInt(scheme.id), name: scheme.name, timeRange: `${scheme.timeRange.start} - ${scheme.timeRange.end}`, - selectedMode: parseInt(scheme.selectedMode), + selectedMode: selectedMode, // 使用对应的车道模式文字 lanes: lanes, // 使用解析后的车道 repeatDays: repeatDays, // 使用解析后的重复日期 enabled: Boolean(scheme.en) @@ -629,14 +629,16 @@ export default { // 更新默认车道设置 if (response.data.parameters.laneSetting) { - this.laneDefaults = { - lane1: response.data.parameters.laneSetting.lane1 || 0, - lane2: response.data.parameters.laneSetting.lane2 || 0, - lane3: response.data.parameters.laneSetting.lane3 || 0, - lane4: response.data.parameters.laneSetting.lane4 || 0 - }; + this.laneDefaults = {}; + for (let i = 1; i <= 4; i++) { + // 获取数值,并使用映射表转换为对应的文字描述 + const laneValue = response.data.parameters.laneSetting[`lane${i}`] ?? 0; + this.laneDefaults[`lane${i}`] = this.modeMapping[laneValue] || '未知模式'; // 如果没有对应值,默认显示 '未知模式' + } } + + // 更新设备信息 if (response.data.parameters.deviceInfo) { this.version = response.data.parameters.deviceInfo.version; @@ -772,11 +774,15 @@ export default { type: 'error' }); } - this.getAllInfo(); + // 延迟 2 秒后调用 getAllInfo + setTimeout(() => { + this.getAllInfo(); // 延迟调用 + }, 2000); // 2000 毫秒 = 2 秒 }, // 编辑方案 editPlan(plan) { + console.log("测试", JSON.stringify(plan, null, 2)); this.isEdit = true; this.dialogTitle = '编辑方案'; this.currentEditId = plan.id; @@ -795,14 +801,17 @@ export default { const endDate = new Date(today); endDate.setHours(parseInt(endHour), parseInt(endMinute), 0); + // 反向映射 selectedMode + this.newPlan = { name: plan.name, - selectedMode: plan.selectedMode, + // selectedMode: Number(selectedModeValue), // 确保是数字 + selectedMode: plan.selectedMode, // 确保是数字 timeRange: [startDate, endDate], // 使用 Date 对象 lanes: [...(plan.lanes || [])], repeatDays: [...(plan.repeatDays || [])].map(String) }; - + console.log("测试", JSON.stringify(this.newPlan, null, 2)); this.planDialogVisible = true; }, @@ -836,6 +845,8 @@ export default { repeatDaysBinary[day] = 1; // 设置为 1 }); const repeatDaysBinaryString = repeatDaysBinary.join(''); // 转换为字符串 + console.log("测试", JSON.stringify(this.newPlan.selectedMode, null, 2)); + const selectedModeValue = Object.keys(this.modeMapping).find(key => this.modeMapping[key] === this.newPlan.selectedMode) || 0; // 默认值为 0 const editedPlan = { JSON_id: getNextJsonId(), @@ -844,7 +855,7 @@ export default { scheme: [{ id: this.currentEditId, name: this.newPlan.name, - selectedMode: this.newPlan.selectedMode, + selectedMode: Number(selectedModeValue), timeRange: { start: formatTime(startTime), end: formatTime(endTime) @@ -854,6 +865,7 @@ export default { }] } }; + console.log("测试", JSON.stringify(this.editedPlan, null, 2)); console.log('发送方案编辑请求:', JSON.stringify(editedPlan, null, 2)); @@ -888,6 +900,10 @@ export default { message: response.data?.parameters?.message || '方案编辑成功', type: 'success' }); + // 延迟 2 秒后调用 getAllInfo + setTimeout(() => { + this.getAllInfo(); // 延迟调用 + }, 2000); // 2000 毫秒 = 2 秒 } else { ElMessage({ message: response.data?.parameters?.message || '方案编辑失败',