From f4c88f793915518e84cbc6e51d14f944b1a958d0 Mon Sep 17 00:00:00 2001 From: joylink_cuiweidong <364937672@qq.com> Date: Fri, 13 Nov 2020 10:21:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E7=AB=99=E7=BB=98=E5=9B=BE=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/config/skinCode/bejing_01.js | 13 ++- src/jmapNew/config/skinCode/chengdu_01.js | 13 ++- src/jmapNew/config/skinCode/chengdu_03.js | 13 ++- src/jmapNew/config/skinCode/foshan_01.js | 13 ++- src/jmapNew/config/skinCode/fuzhou_01.js | 13 ++- src/jmapNew/config/skinCode/haerbin_01.js | 13 ++- src/jmapNew/config/skinCode/ningbo_01.js | 13 ++- src/jmapNew/config/skinCode/ningbo_03.js | 13 ++- src/jmapNew/config/skinCode/race_01.js | 13 ++- src/jmapNew/config/skinCode/xian_01.js | 13 ++- src/jmapNew/config/skinCode/xian_02.js | 13 ++- src/jmapNew/shape/Station/EStationText.js | 67 ++++++++++++ src/jmapNew/shape/Station/index.js | 118 ++++++++++------------ src/jmapNew/shape/StationStand/index.js | 1 + src/utils/baseUrl.js | 6 -- 15 files changed, 233 insertions(+), 102 deletions(-) create mode 100644 src/jmapNew/shape/Station/EStationText.js diff --git a/src/jmapNew/config/skinCode/bejing_01.js b/src/jmapNew/config/skinCode/bejing_01.js index f40879aaa..01eaa61da 100644 --- a/src/jmapNew/config/skinCode/bejing_01.js +++ b/src/jmapNew/config/skinCode/bejing_01.js @@ -383,9 +383,16 @@ class SkinCode extends defaultStyle { }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 北京线车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: true, // 公里标显示 kilometerPosition: 'down', // 公里标位置 fontWeight: 'bold', // 文字错细 diff --git a/src/jmapNew/config/skinCode/chengdu_01.js b/src/jmapNew/config/skinCode/chengdu_01.js index 8a69318ad..fe3492d42 100644 --- a/src/jmapNew/config/skinCode/chengdu_01.js +++ b/src/jmapNew/config/skinCode/chengdu_01.js @@ -335,9 +335,16 @@ class SkinCode extends defaultStyle { } }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 成都一号线车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: false, // 公里标显示 kilometerPosition: 'up', // 公里标朝向 text: { diff --git a/src/jmapNew/config/skinCode/chengdu_03.js b/src/jmapNew/config/skinCode/chengdu_03.js index 171d3313f..a1224c1a7 100644 --- a/src/jmapNew/config/skinCode/chengdu_03.js +++ b/src/jmapNew/config/skinCode/chengdu_03.js @@ -332,9 +332,16 @@ class SkinCode extends defaultStyle { }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 成都三号线车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: false, // 公里标显示 kilometerPosition: 'up', // 公里标朝向 text: { diff --git a/src/jmapNew/config/skinCode/foshan_01.js b/src/jmapNew/config/skinCode/foshan_01.js index 08ba7fc49..f4a8db914 100644 --- a/src/jmapNew/config/skinCode/foshan_01.js +++ b/src/jmapNew/config/skinCode/foshan_01.js @@ -342,9 +342,16 @@ class SkinCode extends defaultStyle { } }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 佛山有轨电车 车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: true, // 公里标显示 kilometerPosition: 'up', // 公里标朝向 text: { diff --git a/src/jmapNew/config/skinCode/fuzhou_01.js b/src/jmapNew/config/skinCode/fuzhou_01.js index 669521a8a..853be47d3 100644 --- a/src/jmapNew/config/skinCode/fuzhou_01.js +++ b/src/jmapNew/config/skinCode/fuzhou_01.js @@ -338,9 +338,16 @@ class SkinCode extends defaultStyle { } }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 福州一号线 车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: true, // 公里标显示 kilometerPosition: 'up', // 公里标朝向 text: { diff --git a/src/jmapNew/config/skinCode/haerbin_01.js b/src/jmapNew/config/skinCode/haerbin_01.js index 58921660f..d22ff9a73 100644 --- a/src/jmapNew/config/skinCode/haerbin_01.js +++ b/src/jmapNew/config/skinCode/haerbin_01.js @@ -374,9 +374,16 @@ class SkinCode extends defaultStyle { } }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 哈尔滨一号线 车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[2, 6], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:1 // 字体边框宽度 + }, + kmPostShow: true, // 公里标显示 kilometerPosition: 'up', // 公里标朝向 text: { diff --git a/src/jmapNew/config/skinCode/ningbo_01.js b/src/jmapNew/config/skinCode/ningbo_01.js index 4f4dfccaf..af0a8d64d 100644 --- a/src/jmapNew/config/skinCode/ningbo_01.js +++ b/src/jmapNew/config/skinCode/ningbo_01.js @@ -192,9 +192,16 @@ class SkinCode extends defaultStyle { }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 宁波一号线 车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: false, // 公里标显示 kilometerPosition: 'up', // 公里标朝向 text: { diff --git a/src/jmapNew/config/skinCode/ningbo_03.js b/src/jmapNew/config/skinCode/ningbo_03.js index ac71be77f..8799cf310 100644 --- a/src/jmapNew/config/skinCode/ningbo_03.js +++ b/src/jmapNew/config/skinCode/ningbo_03.js @@ -231,9 +231,16 @@ class SkinCode extends defaultStyle { }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 宁波三号线 车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: false, // 公里标显示 kilometerPosition: 'up', // 公里标朝向 text: { diff --git a/src/jmapNew/config/skinCode/race_01.js b/src/jmapNew/config/skinCode/race_01.js index 8d8c4f0cd..64597230d 100644 --- a/src/jmapNew/config/skinCode/race_01.js +++ b/src/jmapNew/config/skinCode/race_01.js @@ -413,9 +413,16 @@ class SkinCode extends defaultStyle { }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 竞赛线路 车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: true, // 公里标显示 kilometerPosition: 'down', // 公里标位置 fontWeight: 'bold', // 文字错细 diff --git a/src/jmapNew/config/skinCode/xian_01.js b/src/jmapNew/config/skinCode/xian_01.js index dedc4203f..507401730 100644 --- a/src/jmapNew/config/skinCode/xian_01.js +++ b/src/jmapNew/config/skinCode/xian_01.js @@ -355,9 +355,16 @@ class SkinCode extends defaultStyle { } }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 西安一号线 车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: true, // 公里标显示 kilometerPosition: 'up', // 公里标朝向 text: { diff --git a/src/jmapNew/config/skinCode/xian_02.js b/src/jmapNew/config/skinCode/xian_02.js index 97b63f7cc..cddfe99cf 100644 --- a/src/jmapNew/config/skinCode/xian_02.js +++ b/src/jmapNew/config/skinCode/xian_02.js @@ -382,9 +382,16 @@ class SkinCode extends defaultStyle { } }; this[deviceType.Station] = { - // text: { - // show: true // 公里标名称显示 - // }, + // 西安二号线 车站元素 车站名称 + elemnetType:['stationText'], + stationText:{ + z:0, + fontWeight:'normal', // 字体粗细 + textPadding:[0, 0], // 字体边距 + borderColor:'', // 字体边框颜色 + textBorderWidth:0 // 字体边框宽度 + }, + kmPostShow: false, // 公里标显示 kilometerPosition: 'up', // 公里标朝向 text: { diff --git a/src/jmapNew/shape/Station/EStationText.js b/src/jmapNew/shape/Station/EStationText.js new file mode 100644 index 000000000..f6b8418a9 --- /dev/null +++ b/src/jmapNew/shape/Station/EStationText.js @@ -0,0 +1,67 @@ +import Group from 'zrender/src/container/Group'; +import Text from 'zrender/src/graphic/Text'; + +class EStationText extends Group { + constructor(model) { + super(); + this.model = model; + this.create(); + } + + create() { + const model = this.model.modelData; + const style = this.model.style; + + // 车站名称 + this.stationName = new Text({ + zlevel: this.model.zlevel, + z: this.model.z, + silent: !model.visible || false, + style: { + x: model.position.x, + y: model.position.y, + fontWeight: style.Station.stationText.fontWeight, + fontSize: isNaN(Number(model.nameFont)) ? 20 : Number(model.nameFont), + fontFamily: style.fontFamily, + text: model.number ? model.number + model.name : model.name, + textAlign: 'middle', + textFill: model.nameFontColor, + textVerticalAlign: 'top', + textPadding:style.Station.stationText.textPadding, + textBorderColor:style.Station.stationText.borderColor || model.nameFontColor, + textBorderWidth:style.Station.stationText.textBorderWidth + } + }); + this.add(this.stationName); + if (model.subheadDisplay) { // 副标题 + this.subheadText = new Text({ + zlevel: this.model.zlevel, + z: this.model.z, + silent: !model.visible || false, + style: { + x: model.subheadPosition.x, + y: model.subheadPosition.y, + fontWeight: model.fontWeight, + fontSize: model.subheadFont || 18, + fontFamily: style.fontFamily, + text: model.subhead, + textAlign: 'middle', + textVerticalAlign: 'top', + textFill: model.subheadFontColor, + textPadding:style.Station.stationText.textPadding, + textBorderColor:style.Station.stationText.borderColor || model.nameFontColor, + textBorderWidth:style.Station.stationText.textBorderWidth + } + }); + this.add(this.subheadText); + } + } + + recover() { + } + + setState() { + } +} + +export default EStationText; diff --git a/src/jmapNew/shape/Station/index.js b/src/jmapNew/shape/Station/index.js index f24fbe4e6..f2c31b1fe 100644 --- a/src/jmapNew/shape/Station/index.js +++ b/src/jmapNew/shape/Station/index.js @@ -11,6 +11,10 @@ import { arrow } from '../utils/ShapePoints'; import Rect from 'zrender/src/graphic/shape/Rect'; import Text from 'zrender/src/graphic/Text'; import store from '@/store/index_APP_TARGET'; + +import EStationText from './EStationText'; +import {traverseLineElements, traverseStatusElements} from '../utils/ShapeStatusCovert'; + import Vue from 'vue'; export default class Station extends Group { @@ -28,37 +32,21 @@ export default class Station extends Group { this.createControlMode(); this.setState(model); this.checkIsDrawMap(); + this.setVisible(model.visible); } create() { const model = this.model; const style = this.style; - // 公里标名称是否显示 - this.stationText = new ETextName({ - zlevel: this.zlevel, - z: this.z, - x: model.position.x, - y: model.position.y, - fontWeight: style.Station.text.fontWeight, - fontSize: isNaN(Number(model.nameFont)) ? 20 : Number(model.nameFont), - fontFamily: style.fontFamily, - silent: !model.visible, - text: model.number ? model.number + model.name : model.name, - textAlign: 'middle', - textVerticalAlign: 'top', - textFill: model.nameFontColor - }); - this.add(this.stationText); - if (style.Station.text.borderShow) { // 哈尔滨线路单独显示 - this.stationText.attr({ - style: { - textPadding: style.Station.text.textPadding || [2, 6], - textBorderColor: style.Station.text.borderColor || model.nameFontColor, - textBorderWidth: style.Station.text.textBorderWidth || 1 - } - }); - } + // // 站台所有的绘图元素 + const elementTypeList = { + 'stationText':EStationText // 车站名称 (普通站台样式) + }; + + // 遍历当前线路下的绘图元素 组合模式 + traverseLineElements(style.Station, elementTypeList, model, style, this); + const path = window.location.href; if (style.Station.kmPostShow || path.includes('/map/draw')) { // 公里标是否显示 let direction = 1; @@ -88,37 +76,13 @@ export default class Station extends Group { this.add(this.mileageText); model.kmPostShow ? this.mileageText.show() : this.mileageText.hide(); } - if (model.subheadDisplay) { // 副标题 - this.subheadText = new ETextName({ - zlevel: this.zlevel, - z: this.z, - x: model.subheadPosition.x, - y: model.subheadPosition.y, - fontWeight: model.fontWeight, - fontSize: model.subheadFont || 18, - fontFamily: style.fontFamily, - text: model.subhead, - silent: !model.visible, - textAlign: 'middle', - textVerticalAlign: 'top', - textFill: model.subheadFontColor - }); - this.add(this.subheadText); - if (style.Station.text.borderShow) { - this.subheadText.attr({ - style: { - textPadding: [2, 6], - textBorderColor: model.nameFontColor, - textBorderWidth: 1 - } - }); - } - } - if (!model.visible) { // 隐藏车站 - this.subheadText && this.subheadText.setStyle('textFill', 'rgba(0,0,0,0)'); - this.mileageText && this.mileageText.setStyle('textFill', 'rgba(0,0,0,0)'); - this.stationText && this.stationText.setStyle('textFill', 'rgba(0,0,0,0)'); - } + + // if (!model.visible) { // 隐藏车站 + // // this.subheadText && this.subheadText.setStyle('textFill', 'rgba(0,0,0,0)'); + // // this.mileageText && this.mileageText.setStyle('textFill', 'rgba(0,0,0,0)'); + // // this.stationText && this.stationText.setStyle('textFill', 'rgba(0,0,0,0)'); + // this.eachChild(elem => { elem.hide(); }); + // } } createTurnBack() { // 创建按图折返 const model = this.model; @@ -406,6 +370,13 @@ export default class Station extends Group { } } + // /** 恢复初始状态*/ + // recover() { + // const currentTypeList = this.style.Station.elemnetType; + // currentTypeList.forEach(element => { + // this[element].recover(); + // }); + // } recover() { this.emergencyControl && this.emergencyControl.setColor(this.style.Station.StationControl.lamp.grayColor); this.emergencyControl && this.emergencyControl.setTextColor(this.style.Station.StationControl.text.fontColor); @@ -433,6 +404,18 @@ export default class Station extends Group { } } + // setState(model) { + // if (!this.isShowShape) return; + // // // 新版地图使用新版状态变更方式 + // this.recover(); + + // // 更新状态 + // const currentTypeList = this.style.Station.elemnetType; + // currentTypeList.forEach(element => { + // this[element].setState(model); + // }); + // } + getShapeTipPoint(opts) { let rect; if (opts.subDeviceType === 'button') { @@ -448,13 +431,14 @@ export default class Station extends Group { getBoundingRect() { const rect = this.stationText.getBoundingRect().clone(); - if (this.model.subheadDisplay) { - const subheadText = this.subheadText.getBoundingRect().clone(); - rect.union(subheadText); - return rect; - } else { - return rect; - } + // if (this.model.subheadDisplay) { + // const subheadText = this.subheadText.getBoundingRect().clone(); + // rect.union(subheadText); + // return rect; + // } else { + // return rect; + // } + return rect; } drawSelected(selected) { @@ -489,4 +473,12 @@ export default class Station extends Group { this.isShowShape = false; } } + + setVisible(visible) { + if (visible) { + this.eachChild(elem => { elem.show(); }); + } else { + this.eachChild(elem => { elem.hide(); }); + } + } } diff --git a/src/jmapNew/shape/StationStand/index.js b/src/jmapNew/shape/StationStand/index.js index 540cdfc97..d3b640253 100644 --- a/src/jmapNew/shape/StationStand/index.js +++ b/src/jmapNew/shape/StationStand/index.js @@ -63,6 +63,7 @@ class StationStand extends Group { // 加载皮肤控制的元素 const model = this.model; const style = this.style; + // // 站台所有的绘图元素 const elementTypeList = { 'solidStand':ESolidStand, // 矩形实心站台 (普通站台样式) diff --git a/src/utils/baseUrl.js b/src/utils/baseUrl.js index 86f7b38f9..f3730c1bc 100644 --- a/src/utils/baseUrl.js +++ b/src/utils/baseUrl.js @@ -4,15 +4,9 @@ export function getBaseUrl() { // BASE_API = 'https://joylink.club/jlcloud'; BASE_API = 'https://test.joylink.club/jlcloud'; // BASE_API = 'http://192.168.8.107:9000'; // 袁琪 -<<<<<<< HEAD - // BASE_API = 'http://192.168.8.129:9000'; // 旭强 - // BASE_API = 'http://192.168.8.109:9000'; // 张赛 - // BASE_API = 'http://192.168.8.110:9000'; // 杜康 -======= // BASE_API = 'http://192.168.8.114:9000'; // 旭强 // BASE_API = 'http://192.168.8.109:9000'; // 张赛 // BASE_API = 'http://192.168.8.110:9008'; // 杜康 ->>>>>>> 009f7b57a22a8c59a26fe0b2be01d24377f37873 // BASE_API = 'http://b29z135112.zicp.vip'; // BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康 // BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛