Squashed commit of the following:
All checks were successful
CI / Docker-Build (push) Successful in 1m56s

commit 00b61a2891
Author: joylink_zhaoerwei <Bob_Engineer@163.com>
Date:   Fri May 10 15:27:30 2024 +0800

    配置生成区段继电器

commit 9738678e54
Author: joylink_zhaoerwei <Bob_Engineer@163.com>
Date:   Thu May 9 17:23:28 2024 +0800

    打开列车驾驶台优化

commit 89012e6290
Author: joylink_zhaoerwei <Bob_Engineer@163.com>
Date:   Thu May 9 16:08:02 2024 +0800

    列车驾驶台方向按钮操作失败会回到之前的位置
This commit is contained in:
joylink_zhaoerwei 2024-05-10 15:29:22 +08:00
parent 15702d4ac6
commit d54779279d
7 changed files with 101 additions and 4 deletions

View File

@ -59,6 +59,7 @@ const relayCabinetStore = useRelayCabinetStore();
const $q = useQuasar(); const $q = useQuasar();
const tableRef = ref<QTable>(); const tableRef = ref<QTable>();
const deviceTypeMap = { const deviceTypeMap = {
0: '区段',
1: '道岔', 1: '道岔',
5: '信号机', 5: '信号机',
6: '车站', 6: '车站',

View File

@ -89,6 +89,7 @@ const optionsType = [
{ label: '车库门', value: graphicData.RelatedRef.DeviceType.GarageDoor }, { label: '车库门', value: graphicData.RelatedRef.DeviceType.GarageDoor },
{ label: '洗车机', value: graphicData.RelatedRef.DeviceType.CarWashing }, { label: '洗车机', value: graphicData.RelatedRef.DeviceType.CarWashing },
{ label: '防淹门', value: graphicData.RelatedRef.DeviceType.FloodGate }, { label: '防淹门', value: graphicData.RelatedRef.DeviceType.FloodGate },
{ label: '区段', value: graphicData.RelatedRef.DeviceType.Section },
]; ];
const noShowType = [ const noShowType = [

View File

@ -793,6 +793,27 @@ const carWashingCjList = [
}, },
]; ];
//区段继电器
const sectionCjList = [
{
code: 'GJ',
refDeviceCodesAndPos: [
[
{
code: 'GJ',
position: PostionType.Q,
},
],
[
{
code: 'GJ',
position: PostionType.H,
},
],
],
},
];
const DeviceType = graphicData.RelatedRef.DeviceType; const DeviceType = graphicData.RelatedRef.DeviceType;
export const ciCjMap = new Map<string, CjData[]>([ export const ciCjMap = new Map<string, CjData[]>([
[ [
@ -838,4 +859,5 @@ export const ciCjMap = new Map<string, CjData[]>([
[`${DeviceType.GarageDoor}+undefined`, garageDoorCjList], [`${DeviceType.GarageDoor}+undefined`, garageDoorCjList],
[`${DeviceType.CarWashing}+undefined`, carWashingCjList], [`${DeviceType.CarWashing}+undefined`, carWashingCjList],
[`${DeviceType.FloodGate}+undefined`, floodGateCjList], [`${DeviceType.FloodGate}+undefined`, floodGateCjList],
[`${DeviceType.Section}+undefined`, sectionCjList],
]); ]);

View File

@ -138,6 +138,14 @@ watch(changeScreenDoorGroup, (group) => {
}); });
}); });
//区段继电器
const sectionQdList = [
{
code: 'GJ',
refDeviceCodes: [['GJ']],
},
];
const DeviceType = graphicData.RelatedRef.DeviceType; const DeviceType = graphicData.RelatedRef.DeviceType;
export const ciQdMap = new Map<string, QdData[]>([ export const ciQdMap = new Map<string, QdData[]>([
[ [
@ -179,4 +187,5 @@ export const ciQdMap = new Map<string, QdData[]>([
[`${DeviceType.GarageDoor}+undefined`, garageDoorQdList], [`${DeviceType.GarageDoor}+undefined`, garageDoorQdList],
[`${DeviceType.CarWashing}+undefined`, carWashingQdList], [`${DeviceType.CarWashing}+undefined`, carWashingQdList],
[`${DeviceType.FloodGate}+undefined`, floodGateQdList], [`${DeviceType.FloodGate}+undefined`, floodGateQdList],
[`${DeviceType.Section}+undefined`, sectionQdList],
]); ]);

View File

@ -150,22 +150,42 @@ export function generateRelayLayout(relays: GenerateRelaysCongig[]) {
relayGroupElement.push(relays[i]); relayGroupElement.push(relays[i]);
} else if ( } else if (
relays[i].deviceCode == relays[i - 1].deviceCode && relays[i].deviceCode == relays[i - 1].deviceCode &&
relays[i].combinationCode == relays[i - 1].combinationCode relays[i].combinationCode == relays[i - 1].combinationCode &&
relays[i].code != 'GJ' &&
relays[i].combinationCode != 'GJ'
) { ) {
relayGroupElement.push(relays[i]); relayGroupElement.push(relays[i]);
} else if (relays[i].code == 'GJ' && relays[i].combinationCode == 'GJ') {
relayGroupElement.push(relays[i]);
} else { } else {
relayGroup.push(relayGroupElement); relayGroup.push(relayGroupElement);
relayGroupElement = []; relayGroupElement = [];
relayGroupElement.push(relays[i]); relayGroupElement.push(relays[i]);
} }
} }
const lastCombination = relayGroupElement.filter( const lastCombination = relayGroupElement.filter(
(item) => item.deviceCode !== undefined (item) =>
item.deviceCode !== undefined &&
item.code !== 'GJ' &&
item.combinationCode !== 'GJ'
); );
const LSCombination = relayGroupElement.filter( const LSCombination = relayGroupElement.filter(
(item) => item.deviceCode == undefined (item) => item.deviceCode == undefined
); );
relayGroup.push(lastCombination, LSCombination); const allSectionCombination = relayGroupElement.filter(
(item) => item.code == 'GJ' && item.combinationCode == 'GJ'
);
if (allSectionCombination.length) {
relayGroup.push(lastCombination);
for (let i = 0; i < allSectionCombination.length; i += 11) {
relayGroup.push(allSectionCombination.slice(i, i + 11));
}
relayGroup.push(LSCombination);
} else {
relayGroup.push(lastCombination, LSCombination);
}
const relayCabinet = generateRelayCabinet(relayGroup.length / 10); const relayCabinet = generateRelayCabinet(relayGroup.length / 10);
for (let i = 0; i < relayCabinet.length; i++) { for (let i = 0; i < relayCabinet.length; i++) {
generateRelaysFormat( generateRelaysFormat(

View File

@ -513,6 +513,19 @@ const carWashingCombinations = [
}, },
]; ];
//区段继电器
const sectionCombinations = [
{
code: 'GJ',
refDeviceCodesAndModel: [
{
code: 'GJ',
model: RelayModelType.JWXC_1700,
},
],
},
];
const DeviceType = graphicData.RelatedRef.DeviceType; const DeviceType = graphicData.RelatedRef.DeviceType;
export const combinationsMap = new Map<string, Combinationtype[]>([ export const combinationsMap = new Map<string, Combinationtype[]>([
[ [
@ -558,4 +571,5 @@ export const combinationsMap = new Map<string, Combinationtype[]>([
[`${DeviceType.GarageDoor}`, garageDoorCombinations], [`${DeviceType.GarageDoor}`, garageDoorCombinations],
[`${DeviceType.CarWashing}`, carWashingCombinations], [`${DeviceType.CarWashing}`, carWashingCombinations],
[`${DeviceType.FloodGate}`, floodGateCombinations], [`${DeviceType.FloodGate}`, floodGateCombinations],
[`${DeviceType.Section}`, sectionCombinations],
]); ]);

View File

@ -201,6 +201,10 @@
v-model="generaterRelayLayout.generateCJQD" v-model="generaterRelayLayout.generateCJQD"
label="是否覆盖采集驱动数据" label="是否覆盖采集驱动数据"
/> />
<q-toggle
v-model="generaterRelayLayout.generateSectionRelay"
label="是否生成区段继电器"
/>
<div class="q-gutter-sm q-pa-md row justify-center"> <div class="q-gutter-sm q-pa-md row justify-center">
<q-btn <q-btn
label="确定" label="确定"
@ -474,7 +478,13 @@ const generaterRelayLayout = ref<{
publishId: string; publishId: string;
centralizedStation: number; centralizedStation: number;
generateCJQD: boolean; generateCJQD: boolean;
}>({ publishId: '', centralizedStation: 0, generateCJQD: true }); generateSectionRelay: boolean;
}>({
publishId: '',
centralizedStation: 0,
generateCJQD: true,
generateSectionRelay: false,
});
let publishIdOption = ref<{ label: string; value: number }[]>(); let publishIdOption = ref<{ label: string; value: number }[]>();
let centralizedStationsOption = ref<{ label: string; value: number }[]>([ let centralizedStationsOption = ref<{ label: string; value: number }[]>([
@ -809,6 +819,26 @@ function oneClickGeneraterRelayLayout() {
); );
} }
}); });
//
if (generaterRelayLayout.value.generateSectionRelay) {
storage.section.forEach((section) => {
if (section.sectionType == graphicData.Section.SectionType.Physical) {
const deviceCombinations = combinationsMap.get(
`${DeviceType.Section}`
);
if (
section.centralizedStations.includes(concentrationStation) &&
deviceCombinations
) {
creatDeviceRelateRelays(
deviceCombinations,
DeviceType.Section,
section.code
);
}
}
});
}
//-- //--
const aboveCombinations = [ const aboveCombinations = [
{ {