diff --git a/src/components/draw-app/properties/StationLineProperty.vue b/src/components/draw-app/properties/StationLineProperty.vue index 86940f4..aa716f5 100644 --- a/src/components/draw-app/properties/StationLineProperty.vue +++ b/src/components/draw-app/properties/StationLineProperty.vue @@ -1,5 +1,5 @@ @@ -37,6 +46,7 @@ import { useFormData } from 'src/components/DrawAppFormUtils'; import { StationLineData } from 'src/drawApp/graphics/StationLineInteraction'; import { useDrawStore } from 'src/stores/draw-store'; +import { graphicData } from 'src/protos/stationLayoutGraphics'; const drawStore = useDrawStore(); const { data: stationLineModel, onUpdate } = useFormData( @@ -47,4 +57,9 @@ const optionsCircle = [ { label: '是', value: true }, { label: '否', value: false }, ]; + +const colorOptions = [ + { label: '橘黄色', value: graphicData.StationLine.stationColor.orange }, + { label: '灰色', value: graphicData.StationLine.stationColor.gray }, +]; diff --git a/src/drawApp/graphics/StationLineInteraction.ts b/src/drawApp/graphics/StationLineInteraction.ts index 14a22ca..b88e599 100644 --- a/src/drawApp/graphics/StationLineInteraction.ts +++ b/src/drawApp/graphics/StationLineInteraction.ts @@ -43,6 +43,12 @@ export class StationLineData set hideName(v: boolean) { this.data.hideName = v; } + get color(): graphicData.StationLine.stationColor { + return this.data.codeColor; + } + set color(v: graphicData.StationLine.stationColor) { + this.data.codeColor = v; + } clone(): StationLineData { return new StationLineData(this.data.cloneMessage()); } diff --git a/src/graphics/stationLine/StationLine.ts b/src/graphics/stationLine/StationLine.ts index 3cf0fbc..fbef328 100644 --- a/src/graphics/stationLine/StationLine.ts +++ b/src/graphics/stationLine/StationLine.ts @@ -5,6 +5,7 @@ import { JlGraphicTemplate, VectorText, } from 'src/jl-graphic'; +import { graphicData } from 'src/protos/stationLayoutGraphics'; export interface IStationLineData extends GraphicData { get code(): string; // 编号 @@ -13,6 +14,8 @@ export interface IStationLineData extends GraphicData { set hasTransfer(v: boolean); get hideName(): boolean; set hideName(v: boolean); + get color(): graphicData.StationLine.stationColor; + set color(v: graphicData.StationLine.stationColor); clone(): IStationLineData; copyFrom(data: IStationLineData): void; @@ -22,12 +25,13 @@ export interface IStationLineData extends GraphicData { const stationConsts = { radius: 5, borderWidth: 1, - borderColor: '0xffffff', - fillColor: '0xffffff', + circleWhite: '0xffffff', + circleGray: '0xD5D5D5', transferRadius: 3.5, transferWidth: 0.4, transferColor: '0xff0000', - codeColor: '0xF48815', + codeOrange: '0xF48815', + codeGray: '0xD5D5D5', codeFontSize: 8, codeOffsetY: 20, }; @@ -48,14 +52,13 @@ class circleGraphic extends Container { } draw(datas: IStationLineData): void { const circle = this.circle; - circle.clear(); - circle.lineStyle( - stationConsts.borderWidth, - new Color(stationConsts.borderColor) - ); - circle.beginFill(stationConsts.fillColor, 1); - circle.drawCircle(0, 0, stationConsts.radius); - circle.endFill; + const fillColor = + datas.color == 0 ? stationConsts.circleWhite : stationConsts.circleGray; + circle + .clear() + .lineStyle(stationConsts.borderWidth, new Color(fillColor)) + .beginFill(fillColor, 1) + .drawCircle(0, 0, stationConsts.radius).endFill; const arcGraphicUp = this.arcUp; const arcGraphicDown = this.arcDown; const arrowUpGraphic = this.arrowUp; @@ -117,7 +120,8 @@ export class StationLine extends JlGraphic { this.circleGraphic.draw(this.datas); const codeGraph = this.codeGraph; codeGraph.text = this.datas?.code || '车站StationLine'; - codeGraph.style.fill = stationConsts.codeColor; + codeGraph.style.fill = + this.datas.color == 0 ? stationConsts.codeOrange : stationConsts.codeGray; codeGraph.setVectorFontSize(stationConsts.codeFontSize); codeGraph.anchor.set(0.5); codeGraph.visible = !this.datas.hideName; diff --git a/src/protos/stationLayoutGraphics.ts b/src/protos/stationLayoutGraphics.ts index 28bf100..5f5bb4f 100644 --- a/src/protos/stationLayoutGraphics.ts +++ b/src/protos/stationLayoutGraphics.ts @@ -2079,6 +2079,7 @@ export namespace graphicData { code?: string; hasTransfer?: boolean; hideName?: boolean; + codeColor?: StationLine.stationColor; }) { super(); pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls); @@ -2095,6 +2096,9 @@ export namespace graphicData { if ("hideName" in data && data.hideName != undefined) { this.hideName = data.hideName; } + if ("codeColor" in data && data.codeColor != undefined) { + this.codeColor = data.codeColor; + } } } get common() { @@ -2124,11 +2128,18 @@ export namespace graphicData { set hideName(value: boolean) { pb_1.Message.setField(this, 4, value); } + get codeColor() { + return pb_1.Message.getFieldWithDefault(this, 5, StationLine.stationColor.orange) as StationLine.stationColor; + } + set codeColor(value: StationLine.stationColor) { + pb_1.Message.setField(this, 5, value); + } static fromObject(data: { common?: ReturnType; code?: string; hasTransfer?: boolean; hideName?: boolean; + codeColor?: StationLine.stationColor; }): StationLine { const message = new StationLine({}); if (data.common != null) { @@ -2143,6 +2154,9 @@ export namespace graphicData { if (data.hideName != null) { message.hideName = data.hideName; } + if (data.codeColor != null) { + message.codeColor = data.codeColor; + } return message; } toObject() { @@ -2151,6 +2165,7 @@ export namespace graphicData { code?: string; hasTransfer?: boolean; hideName?: boolean; + codeColor?: StationLine.stationColor; } = {}; if (this.common != null) { data.common = this.common.toObject(); @@ -2164,6 +2179,9 @@ export namespace graphicData { if (this.hideName != null) { data.hideName = this.hideName; } + if (this.codeColor != null) { + data.codeColor = this.codeColor; + } return data; } serialize(): Uint8Array; @@ -2178,6 +2196,8 @@ export namespace graphicData { writer.writeBool(3, this.hasTransfer); if (this.hideName != false) writer.writeBool(4, this.hideName); + if (this.codeColor != StationLine.stationColor.orange) + writer.writeEnum(5, this.codeColor); if (!w) return writer.getResultBuffer(); } @@ -2199,6 +2219,9 @@ export namespace graphicData { case 4: message.hideName = reader.readBool(); break; + case 5: + message.codeColor = reader.readEnum(); + break; default: reader.skipField(); } } @@ -2211,6 +2234,12 @@ export namespace graphicData { return StationLine.deserialize(bytes); } } + export namespace StationLine { + export enum stationColor { + orange = 0, + gray = 1 + } + } export class TrainWindow extends pb_1.Message { #one_of_decls: number[][] = []; constructor(data?: any[] | {