2.17
This commit is contained in:
parent
bc559e4ef5
commit
e4072970b9
@ -128,6 +128,39 @@
|
|||||||
|
|
||||||
|
|
||||||
<el-tabs v-if="activeMenu === '2-2'">
|
<el-tabs v-if="activeMenu === '2-2'">
|
||||||
|
<el-tab-pane label="车道默认属性">
|
||||||
|
<!-- 测试 -->
|
||||||
|
<el-col :span="8">
|
||||||
|
<div class="Smart_Mode">
|
||||||
|
<el-card>
|
||||||
|
<h3 style="font-size: 18px; color: #333; text-align: center; margin-bottom: 1rem;">
|
||||||
|
车道默认设置
|
||||||
|
</h3>
|
||||||
|
<el-form label-width="100px">
|
||||||
|
<div v-for="lane in 4" :key="lane">
|
||||||
|
<el-form-item :label="'车道' + lane">
|
||||||
|
<el-select v-model="laneDefaults[`lane${lane}`]" collapse-tags
|
||||||
|
placeholder="请选择行驶方向" style="width: 350px">
|
||||||
|
<!-- 动态生成车道选项 -->
|
||||||
|
<el-option v-for="(label, value) in modeMapping" :key="value"
|
||||||
|
:label="label" :value="value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
<el-form-item>
|
||||||
|
<div style="margin-left: 120px;">
|
||||||
|
<el-button type="primary" @click="saveLaneDefaults">保存设置</el-button>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
</el-tab-pane>
|
||||||
|
|
||||||
<!-- 新增方案 -->
|
<!-- 新增方案 -->
|
||||||
<el-tab-pane label="方案列表">
|
<el-tab-pane label="方案列表">
|
||||||
<div class="plan-list-header">
|
<div class="plan-list-header">
|
||||||
@ -179,13 +212,22 @@
|
|||||||
<el-input v-model="newPlan.name" placeholder="请输入方案名称"></el-input>
|
<el-input v-model="newPlan.name" placeholder="请输入方案名称"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="车道模式">
|
<!-- <el-form-item label="车道模式">
|
||||||
<el-select v-model="newPlan.selectedMode" placeholder="请选择车道模式">
|
<el-select v-model="newPlan.selectedMode" placeholder="请选择车道模式">
|
||||||
<el-option label="左转 直行" :value="1"></el-option>
|
<el-option label="左转 直行" :value="1"></el-option>
|
||||||
<el-option label="右转 直行" :value="2"></el-option>
|
<el-option label="右转 直行" :value="2"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
</el-form-item> -->
|
||||||
|
|
||||||
|
|
||||||
|
<el-form-item label="车道模式">
|
||||||
|
<el-select v-model="newPlan.selectedMode" placeholder="请选择车道模式">
|
||||||
|
<el-option v-for="(label, value) in modeMapping" :key="value" :label="label"
|
||||||
|
:value="value"></el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
|
||||||
<el-form-item label="时间段设置">
|
<el-form-item label="时间段设置">
|
||||||
<el-time-picker v-model="newPlan.timeRange" is-range range-separator="至"
|
<el-time-picker v-model="newPlan.timeRange" is-range range-separator="至"
|
||||||
start-placeholder="开始时间" end-placeholder="结束时间" style="width: 350px;" />
|
start-placeholder="开始时间" end-placeholder="结束时间" style="width: 350px;" />
|
||||||
@ -220,59 +262,6 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="默认设置">
|
|
||||||
<!-- 测试 -->
|
|
||||||
<el-col :span="8">
|
|
||||||
<div class="Smart_Mode">
|
|
||||||
<el-card>
|
|
||||||
<h3 style="font-size: 18px; color: #333; text-align: center; margin-bottom: 1rem;">
|
|
||||||
车道默认设置
|
|
||||||
</h3>
|
|
||||||
<el-form label-width="100px">
|
|
||||||
<div v-for="(lane, index) in 4" :key="index">
|
|
||||||
<el-form-item :label="'车道' + (lane)">
|
|
||||||
<el-select v-model="laneDefaults[`lane${lane}`]" collapse-tags
|
|
||||||
placeholder="请选择行驶方向" style="width: 350px">
|
|
||||||
<el-option label="左转 直行" value="0"></el-option>
|
|
||||||
<el-option label="右转 直行" value="1"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
<el-form-item>
|
|
||||||
<div style="margin-left: 120px;">
|
|
||||||
<el-button type="primary" @click="saveLaneDefaults">保存设置</el-button>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
|
|
||||||
</el-form>
|
|
||||||
</el-card>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<el-form label-width="120px">
|
|
||||||
<el-form-item label="车道默认设置">
|
|
||||||
<div class="lane-settings-container">
|
|
||||||
<div v-for="(lane, index) in 4" :key="index" class="lane-setting-vertical">
|
|
||||||
<div class="lane-header">车道{{ lane }}</div>
|
|
||||||
<el-select v-model="laneDefaults[`lane${lane}`]" collapse-tags
|
|
||||||
placeholder="请选择行驶方向" style="width: 150px">
|
|
||||||
<el-option label="左转 直行" value="0"></el-option>
|
|
||||||
<el-option label="右转 直行" value="1"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<div style="margin-left: 320px;">
|
|
||||||
<el-button type="primary" @click="saveLaneDefaults">保存设置</el-button>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
</el-form> -->
|
|
||||||
</el-tab-pane>
|
|
||||||
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-main>
|
</el-main>
|
||||||
@ -353,6 +342,12 @@ export default {
|
|||||||
lane3: [],
|
lane3: [],
|
||||||
lane4: []
|
lane4: []
|
||||||
},
|
},
|
||||||
|
modeMapping: {
|
||||||
|
0: '左转 直行',
|
||||||
|
1: '右转 直行',
|
||||||
|
2: '转弯', // 增加转弯模式
|
||||||
|
// 可以继续添加更多模式
|
||||||
|
},
|
||||||
planDialogVisible: false,
|
planDialogVisible: false,
|
||||||
dialogTitle: '新增方案',
|
dialogTitle: '新增方案',
|
||||||
isEdit: false,
|
isEdit: false,
|
||||||
@ -500,7 +495,7 @@ export default {
|
|||||||
scheme: [{
|
scheme: [{
|
||||||
id: newId, // 使用生成的 ID
|
id: newId, // 使用生成的 ID
|
||||||
name: this.newPlan.name,
|
name: this.newPlan.name,
|
||||||
selectedMode: this.newPlan.selectedMode,
|
selectedMode: Number(this.newPlan.selectedMode),
|
||||||
timeRange: {
|
timeRange: {
|
||||||
start: formatTime(startTime),
|
start: formatTime(startTime),
|
||||||
end: formatTime(endTime)
|
end: formatTime(endTime)
|
||||||
@ -540,6 +535,10 @@ export default {
|
|||||||
message: response.data?.parameters?.message || '方案添加成功',
|
message: response.data?.parameters?.message || '方案添加成功',
|
||||||
type: 'success'
|
type: 'success'
|
||||||
});
|
});
|
||||||
|
// 延迟 2 秒后调用 getAllInfo
|
||||||
|
setTimeout(() => {
|
||||||
|
this.getAllInfo(); // 延迟调用
|
||||||
|
}, 2000); // 2000 毫秒 = 2 秒
|
||||||
} else {
|
} else {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: response.data?.parameters?.message || '方案添加失败',
|
message: response.data?.parameters?.message || '方案添加失败',
|
||||||
@ -614,12 +613,13 @@ export default {
|
|||||||
// 解析 repeatDays 二进制字符串
|
// 解析 repeatDays 二进制字符串
|
||||||
const repeatDaysBinary = scheme.repeatDays.split('').map(Number); // 转换为数字数组
|
const repeatDaysBinary = scheme.repeatDays.split('').map(Number); // 转换为数字数组
|
||||||
const repeatDays = repeatDaysBinary.map((day, index) => day === 1 ? index : null).filter(Boolean); // 过滤出选中的日期
|
const repeatDays = repeatDaysBinary.map((day, index) => day === 1 ? index : null).filter(Boolean); // 过滤出选中的日期
|
||||||
|
const selectedMode = this.modeMapping[scheme.selectedMode] || '未知模式'; // 默认为 '未知模式'
|
||||||
|
|
||||||
return {
|
return {
|
||||||
id: parseInt(scheme.id),
|
id: parseInt(scheme.id),
|
||||||
name: scheme.name,
|
name: scheme.name,
|
||||||
timeRange: `${scheme.timeRange.start} - ${scheme.timeRange.end}`,
|
timeRange: `${scheme.timeRange.start} - ${scheme.timeRange.end}`,
|
||||||
selectedMode: parseInt(scheme.selectedMode),
|
selectedMode: selectedMode, // 使用对应的车道模式文字
|
||||||
lanes: lanes, // 使用解析后的车道
|
lanes: lanes, // 使用解析后的车道
|
||||||
repeatDays: repeatDays, // 使用解析后的重复日期
|
repeatDays: repeatDays, // 使用解析后的重复日期
|
||||||
enabled: Boolean(scheme.en)
|
enabled: Boolean(scheme.en)
|
||||||
@ -629,14 +629,16 @@ export default {
|
|||||||
|
|
||||||
// 更新默认车道设置
|
// 更新默认车道设置
|
||||||
if (response.data.parameters.laneSetting) {
|
if (response.data.parameters.laneSetting) {
|
||||||
this.laneDefaults = {
|
this.laneDefaults = {};
|
||||||
lane1: response.data.parameters.laneSetting.lane1 || 0,
|
for (let i = 1; i <= 4; i++) {
|
||||||
lane2: response.data.parameters.laneSetting.lane2 || 0,
|
// 获取数值,并使用映射表转换为对应的文字描述
|
||||||
lane3: response.data.parameters.laneSetting.lane3 || 0,
|
const laneValue = response.data.parameters.laneSetting[`lane${i}`] ?? 0;
|
||||||
lane4: response.data.parameters.laneSetting.lane4 || 0
|
this.laneDefaults[`lane${i}`] = this.modeMapping[laneValue] || '未知模式'; // 如果没有对应值,默认显示 '未知模式'
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 更新设备信息
|
// 更新设备信息
|
||||||
if (response.data.parameters.deviceInfo) {
|
if (response.data.parameters.deviceInfo) {
|
||||||
this.version = response.data.parameters.deviceInfo.version;
|
this.version = response.data.parameters.deviceInfo.version;
|
||||||
@ -772,11 +774,15 @@ export default {
|
|||||||
type: 'error'
|
type: 'error'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this.getAllInfo();
|
// 延迟 2 秒后调用 getAllInfo
|
||||||
|
setTimeout(() => {
|
||||||
|
this.getAllInfo(); // 延迟调用
|
||||||
|
}, 2000); // 2000 毫秒 = 2 秒
|
||||||
},
|
},
|
||||||
|
|
||||||
// 编辑方案
|
// 编辑方案
|
||||||
editPlan(plan) {
|
editPlan(plan) {
|
||||||
|
console.log("测试", JSON.stringify(plan, null, 2));
|
||||||
this.isEdit = true;
|
this.isEdit = true;
|
||||||
this.dialogTitle = '编辑方案';
|
this.dialogTitle = '编辑方案';
|
||||||
this.currentEditId = plan.id;
|
this.currentEditId = plan.id;
|
||||||
@ -795,14 +801,17 @@ export default {
|
|||||||
const endDate = new Date(today);
|
const endDate = new Date(today);
|
||||||
endDate.setHours(parseInt(endHour), parseInt(endMinute), 0);
|
endDate.setHours(parseInt(endHour), parseInt(endMinute), 0);
|
||||||
|
|
||||||
|
// 反向映射 selectedMode
|
||||||
|
|
||||||
this.newPlan = {
|
this.newPlan = {
|
||||||
name: plan.name,
|
name: plan.name,
|
||||||
selectedMode: plan.selectedMode,
|
// selectedMode: Number(selectedModeValue), // 确保是数字
|
||||||
|
selectedMode: plan.selectedMode, // 确保是数字
|
||||||
timeRange: [startDate, endDate], // 使用 Date 对象
|
timeRange: [startDate, endDate], // 使用 Date 对象
|
||||||
lanes: [...(plan.lanes || [])],
|
lanes: [...(plan.lanes || [])],
|
||||||
repeatDays: [...(plan.repeatDays || [])].map(String)
|
repeatDays: [...(plan.repeatDays || [])].map(String)
|
||||||
};
|
};
|
||||||
|
console.log("测试", JSON.stringify(this.newPlan, null, 2));
|
||||||
this.planDialogVisible = true;
|
this.planDialogVisible = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -836,6 +845,8 @@ export default {
|
|||||||
repeatDaysBinary[day] = 1; // 设置为 1
|
repeatDaysBinary[day] = 1; // 设置为 1
|
||||||
});
|
});
|
||||||
const repeatDaysBinaryString = repeatDaysBinary.join(''); // 转换为字符串
|
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 = {
|
const editedPlan = {
|
||||||
JSON_id: getNextJsonId(),
|
JSON_id: getNextJsonId(),
|
||||||
@ -844,7 +855,7 @@ export default {
|
|||||||
scheme: [{
|
scheme: [{
|
||||||
id: this.currentEditId,
|
id: this.currentEditId,
|
||||||
name: this.newPlan.name,
|
name: this.newPlan.name,
|
||||||
selectedMode: this.newPlan.selectedMode,
|
selectedMode: Number(selectedModeValue),
|
||||||
timeRange: {
|
timeRange: {
|
||||||
start: formatTime(startTime),
|
start: formatTime(startTime),
|
||||||
end: formatTime(endTime)
|
end: formatTime(endTime)
|
||||||
@ -854,6 +865,7 @@ export default {
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
console.log("测试", JSON.stringify(this.editedPlan, null, 2));
|
||||||
|
|
||||||
console.log('发送方案编辑请求:', JSON.stringify(editedPlan, null, 2));
|
console.log('发送方案编辑请求:', JSON.stringify(editedPlan, null, 2));
|
||||||
|
|
||||||
@ -888,6 +900,10 @@ export default {
|
|||||||
message: response.data?.parameters?.message || '方案编辑成功',
|
message: response.data?.parameters?.message || '方案编辑成功',
|
||||||
type: 'success'
|
type: 'success'
|
||||||
});
|
});
|
||||||
|
// 延迟 2 秒后调用 getAllInfo
|
||||||
|
setTimeout(() => {
|
||||||
|
this.getAllInfo(); // 延迟调用
|
||||||
|
}, 2000); // 2000 毫秒 = 2 秒
|
||||||
} else {
|
} else {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: response.data?.parameters?.message || '方案编辑失败',
|
message: response.data?.parameters?.message || '方案编辑失败',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user