联锁编号映射暂提
This commit is contained in:
parent
1035f1751a
commit
b504c7482b
@ -4,6 +4,7 @@
|
||||
seamless
|
||||
title="联锁编号映射数据"
|
||||
v-model="showLianSuoBianHao"
|
||||
@hide="dialogHide"
|
||||
:width="600"
|
||||
:height="500"
|
||||
>
|
||||
@ -38,7 +39,7 @@
|
||||
>
|
||||
<q-tab-panel name="station">
|
||||
<div class="row" style="justify-content: space-around">
|
||||
<template :key="item.id" v-for="item in deviceOptions">
|
||||
<template :key="item.id" v-for="item in stationOptions">
|
||||
<q-input
|
||||
outlined
|
||||
class="q-mt-sm"
|
||||
@ -52,7 +53,7 @@
|
||||
|
||||
<q-tab-panel name="turnout">
|
||||
<div class="row" style="justify-content: space-around">
|
||||
<template :key="item.id" v-for="item in deviceOptions">
|
||||
<template :key="item.id" v-for="item in turnoutOptions">
|
||||
<q-input
|
||||
outlined
|
||||
class="q-mt-sm"
|
||||
@ -66,7 +67,7 @@
|
||||
|
||||
<q-tab-panel name="screenDoor">
|
||||
<div class="row" style="justify-content: space-around">
|
||||
<template :key="item.id" v-for="item in deviceOptions">
|
||||
<template :key="item.id" v-for="item in screenDoorOptions">
|
||||
<q-input
|
||||
outlined
|
||||
class="q-mt-sm"
|
||||
@ -79,7 +80,7 @@
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="signal">
|
||||
<div class="row" style="justify-content: space-around">
|
||||
<template :key="item.id" v-for="item in deviceOptions">
|
||||
<template :key="item.id" v-for="item in signalOptions">
|
||||
<q-input
|
||||
outlined
|
||||
class="q-mt-sm"
|
||||
@ -93,7 +94,7 @@
|
||||
|
||||
<q-tab-panel name="section">
|
||||
<div class="row" style="justify-content: space-around">
|
||||
<template :key="item.id" v-for="item in deviceOptions">
|
||||
<template :key="item.id" v-for="item in sectionOptions">
|
||||
<q-input
|
||||
outlined
|
||||
class="q-mt-sm"
|
||||
@ -107,7 +108,7 @@
|
||||
|
||||
<q-tab-panel name="floodGate">
|
||||
<div class="row" style="justify-content: space-around">
|
||||
<template :key="item.id" v-for="item in deviceOptions">
|
||||
<template :key="item.id" v-for="item in floodGateOptions">
|
||||
<q-input
|
||||
outlined
|
||||
class="q-mt-sm"
|
||||
@ -121,7 +122,7 @@
|
||||
|
||||
<q-tab-panel name="spksSwitch">
|
||||
<div class="row" style="justify-content: space-around">
|
||||
<template :key="item.id" v-for="item in deviceOptions">
|
||||
<template :key="item.id" v-for="item in spksSwitchOptions">
|
||||
<q-input
|
||||
outlined
|
||||
class="q-mt-sm"
|
||||
@ -135,7 +136,7 @@
|
||||
|
||||
<q-tab-panel name="garageDoor">
|
||||
<div class="row" style="justify-content: space-around">
|
||||
<template :key="item.id" v-for="item in deviceOptions">
|
||||
<template :key="item.id" v-for="item in garageDoorOptions">
|
||||
<q-input
|
||||
outlined
|
||||
class="q-mt-sm"
|
||||
@ -149,7 +150,7 @@
|
||||
|
||||
<q-tab-panel name="carWashing">
|
||||
<div class="row" style="justify-content: space-around">
|
||||
<template :key="item.id" v-for="item in deviceOptions">
|
||||
<template :key="item.id" v-for="item in carWashingOptions">
|
||||
<q-input
|
||||
outlined
|
||||
class="q-mt-sm"
|
||||
@ -167,7 +168,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import { ref, onMounted } from 'vue';
|
||||
import DraggableDialog from 'src/components/common/DraggableDialog.vue';
|
||||
import { Station } from 'src/graphics/station/Station';
|
||||
import { useDrawStore } from 'src/stores/draw-store';
|
||||
@ -180,22 +181,79 @@ import { FloodGate } from 'src/graphics/floodGate/FloodGate';
|
||||
import { SpksSwitch } from 'src/graphics/spksSwitch/SpksSwitch';
|
||||
import { GarageDoor } from 'src/graphics/garageDoor/GarageDoor';
|
||||
import { CarWashing } from 'src/graphics/carWashing/CarWashing';
|
||||
import { loadLianSuoData, setLianSuoData } from 'src/drawApp/commonApp';
|
||||
import { graphicData } from 'src/protos/stationLayoutGraphics';
|
||||
const drawStore = useDrawStore();
|
||||
|
||||
const deviceOptions = ref<{ id: number; name: string; index: number }[]>([]);
|
||||
const tab = ref<string>('');
|
||||
const stationOptions = ref<{ id: number; name: string; index: number }[]>([]);
|
||||
const turnoutOptions = ref<{ id: number; name: string; index: number }[]>([]);
|
||||
const screenDoorOptions = ref<{ id: number; name: string; index: number }[]>(
|
||||
[]
|
||||
);
|
||||
const signalOptions = ref<{ id: number; name: string; index: number }[]>([]);
|
||||
const sectionOptions = ref<{ id: number; name: string; index: number }[]>([]);
|
||||
const floodGateOptions = ref<{ id: number; name: string; index: number }[]>([]);
|
||||
const spksSwitchOptions = ref<{ id: number; name: string; index: number }[]>(
|
||||
[]
|
||||
);
|
||||
const garageDoorOptions = ref<{ id: number; name: string; index: number }[]>(
|
||||
[]
|
||||
);
|
||||
const carWashingOptions = ref<{ id: number; name: string; index: number }[]>(
|
||||
[]
|
||||
);
|
||||
const tab = ref<string>('station');
|
||||
const splitterModel = ref<number>(20);
|
||||
|
||||
const showLianSuoBianHao = ref(true);
|
||||
const drawApp = drawStore.getDrawApp();
|
||||
let lianSuoMapData = new Map();
|
||||
|
||||
onMounted(() => {
|
||||
lianSuoMapData = new Map();
|
||||
const lianSuoData = loadLianSuoData();
|
||||
lianSuoData.stations.forEach((s) => {
|
||||
lianSuoMapData.set(s.id, s.index);
|
||||
});
|
||||
lianSuoData.switchs.forEach((t) => {
|
||||
lianSuoMapData.set(t.id, t.index);
|
||||
});
|
||||
lianSuoData.screenDoors.forEach((t) => {
|
||||
lianSuoMapData.set(t.id, t.index);
|
||||
});
|
||||
lianSuoData.signals.forEach((t) => {
|
||||
lianSuoMapData.set(t.id, t.index);
|
||||
});
|
||||
lianSuoData.sections.forEach((t) => {
|
||||
lianSuoMapData.set(t.id, t.index);
|
||||
});
|
||||
lianSuoData.garageDoors.forEach((t) => {
|
||||
lianSuoMapData.set(t.id, t.index);
|
||||
});
|
||||
lianSuoData.spksSwitchs.forEach((t) => {
|
||||
lianSuoMapData.set(t.id, t.index);
|
||||
});
|
||||
lianSuoData.floodGates.forEach((t) => {
|
||||
lianSuoMapData.set(t.id, t.index);
|
||||
});
|
||||
lianSuoData.carWashing.forEach((t) => {
|
||||
lianSuoMapData.set(t.id, t.index);
|
||||
});
|
||||
});
|
||||
|
||||
function stationUpdateData() {
|
||||
const list: { id: number; name: string; index: number }[] = [];
|
||||
const stations = drawApp.queryStore.queryByType<Station>(Station.Type);
|
||||
deviceOptions.value = [];
|
||||
stations.forEach((sta) => {
|
||||
list.push({ id: sta.datas.id, name: sta.datas.stationName, index: 0 });
|
||||
deviceOptions.value = list;
|
||||
if (sta.datas.concentrationStations) {
|
||||
const index = lianSuoMapData.get(sta.datas.id) || 0;
|
||||
list.push({
|
||||
id: sta.datas.id,
|
||||
name: sta.datas.stationName,
|
||||
index: index,
|
||||
});
|
||||
stationOptions.value = list;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -210,8 +268,9 @@ function turnoutUpdateData() {
|
||||
name = name + '-' + station.datas.stationName;
|
||||
});
|
||||
}
|
||||
list.push({ id: turnout.datas.id, name: name, index: 0 });
|
||||
deviceOptions.value = list;
|
||||
const index = lianSuoMapData.get(turnout.datas.id) || 0;
|
||||
list.push({ id: turnout.datas.id, name: name, index: index });
|
||||
turnoutOptions.value = list;
|
||||
});
|
||||
}
|
||||
|
||||
@ -234,12 +293,13 @@ function screenDoorUpdateData() {
|
||||
name = name + '-' + station.datas.stationName;
|
||||
}
|
||||
}
|
||||
const index = lianSuoMapData.get(screenDoor.datas.id) || 0;
|
||||
list.push({
|
||||
id: screenDoor.datas.id,
|
||||
name: name,
|
||||
index: 0,
|
||||
index: index,
|
||||
});
|
||||
deviceOptions.value = list;
|
||||
screenDoorOptions.value = list;
|
||||
});
|
||||
}
|
||||
|
||||
@ -254,12 +314,13 @@ function signalUpdateData() {
|
||||
name = name + '-' + station.datas.stationName;
|
||||
});
|
||||
}
|
||||
const index = lianSuoMapData.get(signal.datas.id) || 0;
|
||||
list.push({
|
||||
id: signal.datas.id,
|
||||
name: name,
|
||||
index: 0,
|
||||
index: index,
|
||||
});
|
||||
deviceOptions.value = list;
|
||||
signalOptions.value = list;
|
||||
});
|
||||
}
|
||||
|
||||
@ -274,12 +335,13 @@ function sectionUpdateData() {
|
||||
name = name + '-' + station.datas.stationName;
|
||||
});
|
||||
}
|
||||
const index = lianSuoMapData.get(section.datas.id) || 0;
|
||||
list.push({
|
||||
id: section.datas.id,
|
||||
name: name,
|
||||
index: 0,
|
||||
index: index,
|
||||
});
|
||||
deviceOptions.value = list;
|
||||
sectionOptions.value = list;
|
||||
});
|
||||
}
|
||||
|
||||
@ -294,12 +356,13 @@ function floodGateUpdateData() {
|
||||
name = name + '-' + station.datas.stationName;
|
||||
});
|
||||
}
|
||||
const index = lianSuoMapData.get(floodGate.datas.id) || 0;
|
||||
list.push({
|
||||
id: floodGate.datas.id,
|
||||
name: name,
|
||||
index: 0,
|
||||
index: index,
|
||||
});
|
||||
deviceOptions.value = list;
|
||||
floodGateOptions.value = list;
|
||||
});
|
||||
}
|
||||
|
||||
@ -322,12 +385,13 @@ function spksSwitchUpdateData() {
|
||||
name = name + '-' + station.datas.stationName;
|
||||
}
|
||||
}
|
||||
const index = lianSuoMapData.get(spksSwitch.datas.id) || 0;
|
||||
list.push({
|
||||
id: spksSwitch.datas.id,
|
||||
name: name,
|
||||
index: 0,
|
||||
index: index,
|
||||
});
|
||||
deviceOptions.value = list;
|
||||
spksSwitchOptions.value = list;
|
||||
});
|
||||
}
|
||||
|
||||
@ -344,12 +408,13 @@ function garageDoorUpdateData() {
|
||||
name = name + '-' + station.datas.stationName;
|
||||
});
|
||||
}
|
||||
const index = lianSuoMapData.get(garageDoor.datas.id) || 0;
|
||||
list.push({
|
||||
id: garageDoor.datas.id,
|
||||
name: name,
|
||||
index: 0,
|
||||
index: index,
|
||||
});
|
||||
deviceOptions.value = list;
|
||||
garageDoorOptions.value = list;
|
||||
});
|
||||
}
|
||||
|
||||
@ -366,12 +431,13 @@ function carWashingUpdateData() {
|
||||
name = name + '-' + station.datas.stationName;
|
||||
});
|
||||
}
|
||||
const index = lianSuoMapData.get(carWashing.datas.id) || 0;
|
||||
list.push({
|
||||
id: carWashing.datas.id,
|
||||
name: name,
|
||||
index: 0,
|
||||
index: index,
|
||||
});
|
||||
deviceOptions.value = list;
|
||||
carWashingOptions.value = list;
|
||||
});
|
||||
}
|
||||
|
||||
@ -406,5 +472,54 @@ function tabUpdate() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
function dialogHide() {
|
||||
const newLianSuoData = new graphicData.LianSuoData();
|
||||
stationOptions.value.forEach((st) => {
|
||||
newLianSuoData.stations.push(
|
||||
new graphicData.LianSuoIndexData({ id: st.id, index: st.index })
|
||||
);
|
||||
});
|
||||
turnoutOptions.value.forEach((tu) => {
|
||||
newLianSuoData.switchs.push(
|
||||
new graphicData.LianSuoIndexData({ id: tu.id, index: tu.index })
|
||||
);
|
||||
});
|
||||
screenDoorOptions.value.forEach((sd) => {
|
||||
newLianSuoData.screenDoors.push(
|
||||
new graphicData.LianSuoIndexData({ id: sd.id, index: sd.index })
|
||||
);
|
||||
});
|
||||
sectionOptions.value.forEach((se) => {
|
||||
newLianSuoData.sections.push(
|
||||
new graphicData.LianSuoIndexData({ id: se.id, index: se.index })
|
||||
);
|
||||
});
|
||||
signalOptions.value.forEach((si) => {
|
||||
newLianSuoData.signals.push(
|
||||
new graphicData.LianSuoIndexData({ id: si.id, index: si.index })
|
||||
);
|
||||
});
|
||||
spksSwitchOptions.value.forEach((ss) => {
|
||||
newLianSuoData.spksSwitchs.push(
|
||||
new graphicData.LianSuoIndexData({ id: ss.id, index: ss.index })
|
||||
);
|
||||
});
|
||||
floodGateOptions.value.forEach((fg) => {
|
||||
newLianSuoData.floodGates.push(
|
||||
new graphicData.LianSuoIndexData({ id: fg.id, index: fg.index })
|
||||
);
|
||||
});
|
||||
garageDoorOptions.value.forEach((gd) => {
|
||||
newLianSuoData.garageDoors.push(
|
||||
new graphicData.LianSuoIndexData({ id: gd.id, index: gd.index })
|
||||
);
|
||||
});
|
||||
carWashingOptions.value.forEach((cw) => {
|
||||
newLianSuoData.carWashing.push(
|
||||
new graphicData.LianSuoIndexData({ id: cw.id, index: cw.index })
|
||||
);
|
||||
});
|
||||
setLianSuoData(newLianSuoData);
|
||||
}
|
||||
</script>
|
||||
<style scoped></style>
|
||||
|
@ -293,6 +293,7 @@ export function initCommonDrawApp(app: IDrawApp) {
|
||||
UniqueIdPrefix = new graphicData.UniqueIdOfStationLayout();
|
||||
screenDoorConfig = new graphicData.ScreenDoorConfig();
|
||||
generateAxleCountingConfig = new graphicData.GenerateAxleCountingConfig();
|
||||
lianSuoData = new graphicData.LianSuoData();
|
||||
kilometerConvertList = [];
|
||||
sectionCodePointList = [];
|
||||
otherLineList = [];
|
||||
@ -400,6 +401,9 @@ export function loadCommonDrawDatas(
|
||||
UniqueIdPrefix = storage.UniqueIdPrefix;
|
||||
screenDoorConfig = storage.screenDoorConfig;
|
||||
generateAxleCountingConfig = storage.generateAxleCountingConfig;
|
||||
if (storage.lianSuoData) {
|
||||
lianSuoData = storage.lianSuoData;
|
||||
}
|
||||
kilometerConvertList = storage.kilometerConvertList;
|
||||
sectionCodePointList = storage.sectionCodePointList;
|
||||
otherLineList = storage.otherLineList;
|
||||
@ -692,6 +696,7 @@ export function saveCommonDrawDatas(app: IDrawApp) {
|
||||
storage.sectionCodePointList = sectionCodePointList;
|
||||
storage.otherLineList = otherLineList;
|
||||
storage.stationRelateDeviceList = refDevicesList;
|
||||
storage.lianSuoData = lianSuoData;
|
||||
// if (storage.generateAxleCountingConfig?.bbConnect) {
|
||||
// storage.generateAxleCountingConfig.newbbConnect =
|
||||
// storage.generateAxleCountingConfig.bbConnect.map((item) => +item);
|
||||
@ -845,6 +850,15 @@ export function setGenerateAxleCountingConfig(
|
||||
generateAxleCountingConfig = newScreenDoorConfig;
|
||||
}
|
||||
|
||||
let lianSuoData = new graphicData.LianSuoData();
|
||||
export function loadLianSuoData() {
|
||||
return lianSuoData;
|
||||
}
|
||||
|
||||
export function setLianSuoData(newLianSuoData: graphicData.LianSuoData) {
|
||||
lianSuoData = newLianSuoData;
|
||||
}
|
||||
|
||||
// 其他线路数据
|
||||
let otherLineList: graphicData.OtherLine[] = [];
|
||||
export function loadOtherLineList() {
|
||||
|
Loading…
Reference in New Issue
Block a user