This commit is contained in:
JayJiaJun 2025-02-17 18:46:49 +08:00
parent bc559e4ef5
commit e4072970b9

View File

@ -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 || '方案编辑失败',