diff --git a/src/jmapNew/shape/Psd/index.js b/src/jmapNew/shape/Psd/index.js index 2fbdc93ba..bcc748286 100644 --- a/src/jmapNew/shape/Psd/index.js +++ b/src/jmapNew/shape/Psd/index.js @@ -1,5 +1,6 @@ import Group from 'zrender/src/container/Group'; import ESafeDoor from './ESafeDoor'; +import EHighlight from '../element/EHighlight'; export default class Line2 extends Group { constructor(model, style) { @@ -12,6 +13,7 @@ export default class Line2 extends Group { this.style = style; this.create(); this.setState(model); + this.checkIsDrawMap(); } create() { @@ -34,4 +36,17 @@ export default class Line2 extends Group { setState(model) { } + drawSelected(selected) { + this.highlight && this.highlight.drawSelected(selected); + } + + checkIsDrawMap() { + const path = window.location.href; + if (path.includes('/map/draw')) { + this.highlight = new EHighlight(this); + this.add(this.highlight); + this.on('mouseout', () => { this.highlight.mouseout(); }); + this.on('mouseover', () => { this.highlight.mouseover(); }); + } + } } diff --git a/src/jmapNew/shape/Section/index.js b/src/jmapNew/shape/Section/index.js index 075031b0f..f4f505f61 100644 --- a/src/jmapNew/shape/Section/index.js +++ b/src/jmapNew/shape/Section/index.js @@ -853,7 +853,7 @@ export default class Section extends Group { drawSelected(selected) { this.selected = selected; if (selected) { - this.section && this.section.setStyle({stroke: 'rgba(204,255,255,0.8)'}); + this.section && this.section.setStyle({stroke: 'rgba(0,255,255,0.6)'}); } else { this.section && this.section.setStyle({stroke: this.style.Section.line.spareColor }); } diff --git a/src/jmapNew/shape/Station/EMouse.js b/src/jmapNew/shape/Station/EMouse.js index e954afcb6..a7654a713 100644 --- a/src/jmapNew/shape/Station/EMouse.js +++ b/src/jmapNew/shape/Station/EMouse.js @@ -21,7 +21,7 @@ export default class EMouse extends Group { z: this.device.z + 1, shape: stationTextRect, style: { - fill: 'rgba(204,255,255,0.5)' + fill: 'rgba(0,255,255,0.6)' } }); diff --git a/src/jmapNew/shape/element/EHighlight.js b/src/jmapNew/shape/element/EHighlight.js index 67776df0e..53a023d9e 100644 --- a/src/jmapNew/shape/element/EHighlight.js +++ b/src/jmapNew/shape/element/EHighlight.js @@ -1,6 +1,5 @@ import Group from 'zrender/src/container/Group'; import Rect from 'zrender/src/graphic/shape/Rect'; -import Polygon from 'zrender/src/graphic/shape/Polygon'; class EHighlight extends Group { constructor(device) { @@ -11,13 +10,17 @@ class EHighlight extends Group { } create() { if (this.device) { + let fill = 'rgba(0,255,255,0.6)'; + if (this.device._type === 'Psd') { + fill = 'rgba(255,0,0,0.6)'; + } const rect = this.device.getBoundingRect(); this.lineBorder = new Rect({ zlevel: this.device.zlevel, z: this.device.z + 1, shape: rect, style: { - fill: 'rgba(204,255,255,0.5)' + fill: fill } }); this.add(this.lineBorder); @@ -33,6 +36,7 @@ class EHighlight extends Group { !this.selected && this.lineBorder && this.lineBorder.hide(); } drawSelected(selected) { + console.log(selected, this.lineBorder, this.device); if (selected && this.lineBorder) { this.lineBorder && this.lineBorder.show(); this.selected = true; diff --git a/src/views/newMap/newMapdraft/dataRelation/index.vue b/src/views/newMap/newMapdraft/dataRelation/index.vue index d5361bdd6..aded99996 100644 --- a/src/views/newMap/newMapdraft/dataRelation/index.vue +++ b/src/views/newMap/newMapdraft/dataRelation/index.vue @@ -172,6 +172,9 @@ export default { this.enabledTab = data.name; }, setSelected(selected) { + // if (selected._type === 'Psd' || selected._type === '') { + // + // } switch (this.enabledTab) { case 'protect': this.$refs.protectOperate.setSelected(selected); diff --git a/src/views/newMap/newMapdraft/mapoperate/stationstand.vue b/src/views/newMap/newMapdraft/mapoperate/stationstand.vue index 2b93e4ad6..a3c92fa70 100644 --- a/src/views/newMap/newMapdraft/mapoperate/stationstand.vue +++ b/src/views/newMap/newMapdraft/mapoperate/stationstand.vue @@ -60,10 +60,6 @@ export default { { code: true, name: '右向'}, { code: false, name: '左向'} ], - isSmallStandList: [ - { code: false, name: '否'}, - { code: true, name: '是'} - ], editModel: { code: '', name: '', @@ -75,9 +71,9 @@ export default { stationCode: '', // 所属车站 position: { x: 0, y: 0 }, visible: true, // 是否显示 - isRight: null, + isRight: true, standTrackCode: '', - isSmallStand: false + small: false // direction: '' // 上下行方向 }, field: '', @@ -87,13 +83,12 @@ export default { pointY: 0, // y坐标 width: 60, height: 20, - doorType: '01', // 屏蔽门类型 standTrackCode: '', // 关联站台轨 standTrackUpCode: '', // 上行站台轨 standTrackDownCode: '', // 下行站台轨 stationstandDirection: '02', // 屏蔽门方向 - isRight: null, - isSmallStand: false + isRight: true, + small: false } }; }, @@ -124,9 +119,9 @@ export default { { prop: 'visible', label: this.$t('map.stationVisible'), type: 'checkbox' }, { prop: 'width', label: this.$t('map.stationstandWidth'), type: 'number', min: 0, max: 2000, placeholder: 'px' }, { prop: 'height', label: this.$t('map.stationstandHeight'), type: 'number', min: 0, max: 2000, placeholder: 'px' }, - { prop: 'standTrackCode', label: '站台轨:', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.PhysicalSectionList, hover: this.hover, buttonType: 'sectionSelectCode', buttonShowType: this.isButtonTypeS, isHidden: !this.doorTypeOne }, - { prop: 'isRight', label: '行驶方向', type: 'radio', optionLabel: 'name', optionValue: 'code', border: true, radioList: this.isRightList }, - { prop: 'isSmallStand', label: '小型站台', type: 'radio', optionLabel: 'name', optionValue: 'code', border: true, radioList: this.isSmallStandList } + { prop: 'standTrackCode', label: '站台轨:', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.PhysicalSectionList, hover: this.hover, buttonType: 'editSectionSelectCode', buttonShowType: this.isButtonTypeES }, + { prop: 'isRight', label: '行驶方向:', type: 'radio', optionLabel: 'name', optionValue: 'code', border: true, radioList: this.isRightList }, + { prop: 'small', label: '是否小型站台:', type: 'checkbox' } ] }, map: { @@ -165,12 +160,6 @@ export default { ], standTrackCode: [ { required: true, message: '请选择关联站台轨', trigger: 'change' } - ], - isRight: [ - { required: true, message: '请选择行驶方向', trigger: 'change'} - ], - isSmallStand: [ - { required: true, message: '请选择是否为小型站台', trigger: 'change'} ] }; // 清空表单验证提示信息 @@ -193,20 +182,14 @@ export default { { prop: 'width', label: this.$t('map.stationstandWidth'), type: 'number', min: 0, max: 2000, placeholder: 'px' }, { prop: 'height', label: this.$t('map.stationstandHeight'), type: 'number', min: 0, max: 2000, placeholder: 'px' }, { prop: 'standTrackCode', label: '站台轨:', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.PhysicalSectionList, hover: this.hover, buttonType: 'sectionSelectCode', buttonShowType: this.isButtonTypeS, isHidden: !this.doorTypeOne }, - { prop: 'isRight', label: '行驶方向', type: 'radio', optionLabel: 'name', optionValue: 'code', border: true, radioList: this.isRightList }, - { prop: 'isSmallStand', label: '小型站台', type: 'radio', optionLabel: 'name', optionValue: 'code', border: true, radioList: this.isSmallStandList } + { prop: 'isRight', label: '行驶方向:', type: 'radio', optionLabel: 'name', optionValue: 'code', border: true, radioList: this.isRightList }, + { prop: 'small', label: '是否小型站台:', type: 'checkbox' } ] }, door: { name: '屏蔽门数据', item: [ - { prop: 'doorType', label: '屏蔽门类型:', type: 'radio', radioList: [ - {value: '01', label: '单侧屏蔽门' }, - {value: '02', label: '双侧屏蔽门' } - ] }, - { prop: 'stationstandDirection', label: '屏蔽门朝向:', type: 'radio', radioList: this.DoorLocationTypeList, isHidden: !this.doorTypeOne }, - { prop: 'standTrackUpCode', label: '上行站台轨:', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.PhysicalSectionList, hover: this.hover, buttonType: 'sectionSelectUpCode', buttonShowType: this.isButtonTypeU, isHidden: !this.doorTypeTwo }, - { prop: 'standTrackDownCode', label: '下行站台轨:', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.PhysicalSectionList, hover: this.hover, buttonType: 'sectionSelectDownCode', buttonShowType: this.isButtonTypeD, isHidden: !this.doorTypeTwo } + { prop: 'stationstandDirection', label: '屏蔽门朝向:', type: 'radio', radioList: this.DoorLocationTypeList } ] } } @@ -228,18 +211,6 @@ export default { ], standTrackCode: [ { required: true, message: '请选择关联站台轨', trigger: 'change' } - ], - standTrackUpCode: [ - { required: true, message: '请选择站台轨', trigger: 'change' } - ], - standTrackDownCode: [ - { required: true, message: '请选择站台轨', trigger: 'change' } - ], - isRight: [ - { required: true, message: '请选择行驶方向', trigger: 'change'} - ], - isSmallStand: [ - { required: true, message: '请选择是否为小型站台', trigger: 'change'} ] }; }, @@ -249,17 +220,8 @@ export default { isButtonTypeS() { return this.field == 'sectionSelectCode'; }, - isButtonTypeU() { - return this.field == 'sectionSelectUpCode'; - }, - isButtonTypeD() { - return this.field == 'sectionSelectDownCode'; - }, - doorTypeOne() { - return this.addModel.doorType == '01'; - }, - doorTypeTwo() { - return this.addModel.doorType == '02'; + isButtonTypeES() { + return this.field === 'editSectionSelectCode'; }, PhysicalSectionList() { let list = []; @@ -322,14 +284,9 @@ export default { this.activeName = 'second'; this.field = ''; this.$emit('standStationCode', ''); - } else if (selected && selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() === 'sectionSelectUpCode'.toUpperCase()) { - this.addModel.standTrackUpCode = selected.code; - this.activeName = 'second'; - this.field = ''; - this.$emit('standStationCode', ''); - } else if (selected && selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() === 'sectionSelectDownCode'.toUpperCase()) { - this.addModel.standTrackDownCode = selected.code; - this.activeName = 'second'; + } else if (selected && selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() === 'editSectionSelectCode'.toUpperCase()) { + this.editModel.standTrackCode = selected.code; + this.activeName = 'first'; this.field = ''; this.$emit('standStationCode', ''); } @@ -354,7 +311,7 @@ export default { }, standTrackCode: this.addModel.standTrackCode, isRight: this.addModel.isRight, - isSmallStand: this.addModel.isSmallStand + small: this.addModel.small }; this.stationList.forEach(elem => { if (elem.code == this.addModel.stationCode) { @@ -363,7 +320,7 @@ export default { } }); models.push(model); - if (this.addModel.doorType == '01' && !this.addModel.isSmallStand) { + if (!this.addModel.small) { const uid = getUID('Psd', this.psdList); const param = { _type: 'Psd', @@ -381,36 +338,8 @@ export default { param.position.y = this.addModel.pointY + (this.addModel.height / 2) + space; } models.push(param); - } else if (this.addModel.doorType == '02' && !this.addModel.isSmallStand) { - const arr = []; - for (let index = 0; index < 2; index++) { - const uid = getUID('Psd', [...this.psdList, ...arr]); - const param = { - _type: 'Psd', - code: uid, - name: `Psd${[...this.psdList, ...arr].length + 1}`, - width: this.addModel.width, - height: 3, - standCode: Standuid, // 关联站台唯一code - standTrackCode: '', // 关联站台轨编码 - position: { - x: models[0].position.x, - y: this.addModel.pointY - } - }; - if (index == 0) { - param.standTrackCode = this.addModel.standTrackUpCode; - param.position.y = this.addModel.pointY - (this.addModel.height / 2) - space; - } else { - param.standTrackCode = this.addModel.standTrackDownCode; - param.position.y = this.addModel.pointY + (this.addModel.height / 2) + space; - } - arr.push(param); - } - arr.forEach(item => { - models.push(item); - }); } + console.log(models, '==========='); this.$emit('updateMapModel', models); } });