需求调整--演示、单选、线路Id、站台门
This commit is contained in:
parent
58b04e3024
commit
a79f6c71eb
@ -18,7 +18,7 @@ export function mockLocalDemoTestSet(
|
||||
return api.post(`${alertUriBase}/localDemoTest/${alertType}`, data);
|
||||
}
|
||||
|
||||
//故障演练
|
||||
//故障演示
|
||||
export function mockAlertSet(data: {
|
||||
lineId: number;
|
||||
alertType: string;
|
||||
|
@ -2,7 +2,7 @@
|
||||
<draggable-dialog
|
||||
v-if="showsetAlartText"
|
||||
seamless
|
||||
title="设置故障演练"
|
||||
title="设置故障演示"
|
||||
:width="300"
|
||||
:height="0"
|
||||
>
|
||||
@ -12,6 +12,7 @@
|
||||
<q-form ref="myForm" @submit="onSubmit" @reset="onReset">
|
||||
<q-input
|
||||
outlined
|
||||
readonly
|
||||
label="线路ID"
|
||||
v-model.number="setAlartTextData.lineId"
|
||||
type="number"
|
||||
@ -160,11 +161,18 @@ watch(
|
||||
return select;
|
||||
}) as JlGraphic[];
|
||||
if (
|
||||
['道岔失表', '计轴红光带', '计轴橙光带', '列车信号故障'].includes(
|
||||
setAlartTextData.value.alertType
|
||||
)
|
||||
[
|
||||
'道岔失表',
|
||||
'计轴红光带',
|
||||
'计轴橙光带',
|
||||
'列车信号故障',
|
||||
'整侧站台门无法打开',
|
||||
'整侧站台门无法关闭',
|
||||
].includes(setAlartTextData.value.alertType)
|
||||
) {
|
||||
selectGraphic = [deviceFilter[0]];
|
||||
if (deviceFilter[0] !== undefined) {
|
||||
selectGraphic = [deviceFilter[0]];
|
||||
}
|
||||
} else {
|
||||
selectGraphic.push(...deviceFilter);
|
||||
}
|
||||
@ -178,6 +186,7 @@ watch(
|
||||
onMounted(() => {
|
||||
clearSelect();
|
||||
onReset();
|
||||
setAlartTextData.value.lineId = lineStore.lineId as unknown as string;
|
||||
});
|
||||
|
||||
const myForm = ref<QForm | null>(null);
|
||||
@ -198,7 +207,7 @@ async function onSubmit() {
|
||||
await mockAlertSet(params);
|
||||
$q.notify({
|
||||
type: 'positive',
|
||||
message: '设置故障演练成功',
|
||||
message: '设置故障演示成功',
|
||||
});
|
||||
onReset();
|
||||
} catch (err) {
|
||||
@ -231,7 +240,7 @@ function clearSelect() {
|
||||
|
||||
function onReset() {
|
||||
setAlartTextData.value = {
|
||||
lineId: '',
|
||||
lineId: lineStore.lineId as unknown as string,
|
||||
alertType: '',
|
||||
deviceCodes: [],
|
||||
};
|
||||
|
@ -12,6 +12,7 @@
|
||||
<q-form ref="myForm" @submit="onSubmit" @reset="onReset">
|
||||
<q-input
|
||||
outlined
|
||||
readonly
|
||||
label="线路ID"
|
||||
v-model.number="setAlartTextData.lineId"
|
||||
type="number"
|
||||
@ -179,7 +180,9 @@ watch(
|
||||
return select;
|
||||
}) as JlGraphic[];
|
||||
if (setAlartTextData.value.alertType !== '列车信号故障') {
|
||||
selectGraphic.push(...deviceFilter);
|
||||
if (deviceFilter[0] !== undefined) {
|
||||
selectGraphic = [deviceFilter[0]];
|
||||
}
|
||||
} else if (deviceFilter.length) {
|
||||
selectGraphic = [deviceFilter[0]];
|
||||
}
|
||||
@ -199,6 +202,7 @@ watch(
|
||||
onMounted(() => {
|
||||
clearSelect();
|
||||
onReset();
|
||||
setAlartTextData.value.lineId = lineStore.lineId as unknown as string;
|
||||
});
|
||||
|
||||
const myForm = ref<QForm | null>(null);
|
||||
@ -255,7 +259,7 @@ function clearSelect() {
|
||||
|
||||
function onReset() {
|
||||
setAlartTextData.value = {
|
||||
lineId: '',
|
||||
lineId: lineStore.lineId as unknown as string,
|
||||
rtuId: '',
|
||||
alertType: '',
|
||||
deviceInfos: [],
|
||||
|
@ -95,11 +95,18 @@ export class LogicSectionOperationPlugin extends GraphicInteractionPlugin<LogicS
|
||||
g.eventMode = 'static';
|
||||
g.cursor = 'pointer';
|
||||
g.lineGraphic.hitArea = new LogicSectionGraphicHitArea(g);
|
||||
g.on('_leftclick', this.onLeftClick, this);
|
||||
g.on('rightclick', this.onContextMenu, this);
|
||||
}
|
||||
unbind(g: LogicSection): void {
|
||||
g.off('_leftclick', this.onLeftClick, this);
|
||||
g.off('rightclick', this.onContextMenu);
|
||||
}
|
||||
onLeftClick(e: FederatedMouseEvent) {
|
||||
const target = e.target as DisplayObject;
|
||||
const section = target.getGraphic() as LogicSection;
|
||||
this.app.updateSelected(section);
|
||||
}
|
||||
onContextMenu(e: FederatedMouseEvent) {
|
||||
const target = e.target as DisplayObject;
|
||||
const section = target.getGraphic() as LogicSection;
|
||||
|
@ -2,7 +2,13 @@ import * as pb_1 from 'google-protobuf';
|
||||
import { GraphicDataBase } from './GraphicDataBase';
|
||||
import { ISectionData, Section } from 'src/graphics/section/Section';
|
||||
import { graphicData } from 'src/protos/stationLayoutGraphics';
|
||||
import { IPointData } from 'pixi.js';
|
||||
import { DisplayObject, FederatedMouseEvent, IPointData } from 'pixi.js';
|
||||
import {
|
||||
GraphicInteractionPlugin,
|
||||
IGraphicApp,
|
||||
JlGraphic,
|
||||
} from 'src/jl-graphic';
|
||||
import { SectionGraphicHitArea } from 'src/graphics/section/SectionDrawAssistant';
|
||||
|
||||
export class SectionData extends GraphicDataBase implements ISectionData {
|
||||
constructor(data?: graphicData.Section) {
|
||||
@ -85,3 +91,30 @@ export class SectionData extends GraphicDataBase implements ISectionData {
|
||||
return pb_1.Message.equals(this.data, other.data);
|
||||
}
|
||||
}
|
||||
|
||||
export class sectionOperationPlugin extends GraphicInteractionPlugin<Section> {
|
||||
static Name = 'logic_section_menu';
|
||||
constructor(app: IGraphicApp) {
|
||||
super(sectionOperationPlugin.Name, app);
|
||||
}
|
||||
filter(...grahpics: JlGraphic[]): Section[] | undefined {
|
||||
return grahpics.filter((g): g is Section => g instanceof Section);
|
||||
}
|
||||
static init(app: IGraphicApp) {
|
||||
return new sectionOperationPlugin(app);
|
||||
}
|
||||
bind(g: Section): void {
|
||||
g.eventMode = 'static';
|
||||
g.cursor = 'pointer';
|
||||
g.lineGraphic.hitArea = new SectionGraphicHitArea(g);
|
||||
g.on('_leftclick', this.onLeftClick, this);
|
||||
}
|
||||
unbind(g: Section): void {
|
||||
g.off('_leftclick', this.onLeftClick, this);
|
||||
}
|
||||
onLeftClick(e: FederatedMouseEvent) {
|
||||
const target = e.target as DisplayObject;
|
||||
const section = target.getGraphic() as Section;
|
||||
this.app.updateSelected(section);
|
||||
}
|
||||
}
|
||||
|
@ -158,6 +158,7 @@ export class TurnoutOperationPlugin extends GraphicInteractionPlugin<Turnout> {
|
||||
sectionGraphic.cursor = 'pointer';
|
||||
sectionGraphic.hitArea = new TurnoutSectionHitArea(sectionGraphic);
|
||||
});
|
||||
g.on('_leftclick', this.onLeftClick, this);
|
||||
g.on('rightclick', this.onContextMenu, this);
|
||||
}
|
||||
unbind(g: Turnout): void {
|
||||
@ -165,8 +166,14 @@ export class TurnoutOperationPlugin extends GraphicInteractionPlugin<Turnout> {
|
||||
g.graphics.sections.forEach((sectionGraphic) => {
|
||||
sectionGraphic.eventMode = 'none';
|
||||
});
|
||||
g.off('_leftclick', this.onLeftClick, this);
|
||||
g.on('rightclick', this.onContextMenu, this);
|
||||
}
|
||||
onLeftClick(e: FederatedMouseEvent) {
|
||||
const target = e.target as DisplayObject;
|
||||
const section = target.getGraphic() as Turnout;
|
||||
this.app.updateSelected(section);
|
||||
}
|
||||
onContextMenu(e: FederatedMouseEvent) {
|
||||
const target = e.target as DisplayObject;
|
||||
const turnout = target.getGraphic() as Turnout;
|
||||
|
@ -34,7 +34,10 @@ import {
|
||||
TurnoutStates,
|
||||
} from './graphics/TurnoutInteraction';
|
||||
import { Turnout, TurnoutTemplate } from 'src/graphics/turnout/Turnout';
|
||||
import { SectionData } from './graphics/SectionInteraction';
|
||||
import {
|
||||
SectionData,
|
||||
sectionOperationPlugin,
|
||||
} from './graphics/SectionInteraction';
|
||||
import { SectionTemplate } from 'src/graphics/section/Section';
|
||||
import { getPublishMapInfoByLineId } from 'src/api/PublishApi';
|
||||
import { graphicData } from 'src/protos/stationLayoutGraphics';
|
||||
@ -175,6 +178,7 @@ export function initLineApp(lineId: number): IGraphicApp {
|
||||
TrainOperateInteraction.init(lineApp);
|
||||
TurnoutOperationPlugin.init(lineApp);
|
||||
LogicSectionOperationPlugin.init(lineApp);
|
||||
sectionOperationPlugin.init(lineApp);
|
||||
|
||||
lineApp.enableWsMassaging({
|
||||
wsUrl: getWebsocketUrl(),
|
||||
|
@ -210,7 +210,7 @@ export class SectionDraw extends GraphicDrawAssistant<
|
||||
}
|
||||
}
|
||||
|
||||
class SectionGraphicHitArea implements IHitArea {
|
||||
export class SectionGraphicHitArea implements IHitArea {
|
||||
section: Section;
|
||||
constructor(section: Section) {
|
||||
this.section = section;
|
||||
|
@ -19,7 +19,7 @@
|
||||
<q-btn
|
||||
v-show="route.path.includes('line/monitor')"
|
||||
color="info"
|
||||
label="故障演练"
|
||||
label="故障演示"
|
||||
class="q-mr-sm"
|
||||
@click="openSetAlarmMockDialog"
|
||||
/>
|
||||
|
Loading…
Reference in New Issue
Block a user