diff --git a/src/api/simulation.js b/src/api/simulation.js index 6e76e9a69..6f5a56f8b 100644 --- a/src/api/simulation.js +++ b/src/api/simulation.js @@ -621,9 +621,9 @@ export function getPlcGateway(group) { // }); // } -export function handlerIbpEvent(group, button) { +export function handlerIbpEvent(group, button, stationCode) { return request({ - url: `/simulation/${group}/ibp/${button}`, + url: `/simulation/${group}/ibp/${button}?stationCode=${stationCode}`, method: 'put' }); } diff --git a/src/iscs/constant/deviceRender.js b/src/iscs/constant/deviceRender.js index ac8a21b75..815d588bd 100644 --- a/src/iscs/constant/deviceRender.js +++ b/src/iscs/constant/deviceRender.js @@ -308,4 +308,10 @@ deviceRender[deviceType.FuzhouDoor] = { zlevel: 1, z: 4 }; +// 福州通讯图符 +deviceRender[deviceType.CommunicationButcher] = { + _type: deviceType.CommunicationButcher, + zlevel: 1, + z: 4 +}; export default deviceRender; diff --git a/src/iscs/constant/deviceType.js b/src/iscs/constant/deviceType.js index c64d05cfe..b4295db21 100644 --- a/src/iscs/constant/deviceType.js +++ b/src/iscs/constant/deviceType.js @@ -47,7 +47,8 @@ const deviceType = { Draught: 'Draught', IscsImage: 'IscsImage', OrdinaryDoor: 'OrdinaryDoor', - FuzhouDoor: 'FuzhouDoor' + FuzhouDoor: 'FuzhouDoor', + CommunicationButcher: 'CommunicationButcher' }; export default deviceType; diff --git a/src/iscs/shape/communicationButcher.js b/src/iscs/shape/communicationButcher.js new file mode 100644 index 000000000..c3cdf93b4 --- /dev/null +++ b/src/iscs/shape/communicationButcher.js @@ -0,0 +1,218 @@ +import Group from 'zrender/src/container/Group'; +import Rect from 'zrender/src/graphic/shape/Rect'; +import Line from 'zrender/src/graphic/shape/Line'; + +export default class CommunicationButcher extends Group { + constructor(device) { + super(); + this.model = device.model; + this.zlevel = device.model.zlevel; + this.z = device.model.z; + this._type = device.model._type; + this._code = device.model.code; + this.create(); + this.setState(this.model); + } + create() { + this.grouper = new Group({ + id: this.model.code, + position: [this.model.point.x, this.model.point.y] + }); + this.add(this.grouper); + this.rect1 = new Rect({ + zlevel: this.zlevel, + z: this.z, + shape: { + x: 0, + y: 0, + width: this.model.width, + height: this.model.width * 5 / 12 + }, + style: { + fill: '#0F0', + stroke: '#000', + lineWidth: 2 + } + }); + this.rect2 = new Rect({ + zlevel: this.zlevel, + z: this.z, + shape: { + x: this.model.width / 30, + y: this.model.width * 5 / 12, + width: this.model.width - this.model.width / 15, + height: this.model.width / 30 + }, + style: { + fill: '#000' + } + }); + this.rect3 = new Rect({ + zlevel: this.zlevel, + z: this.z, + shape: { + x: this.model.width / 4 * 3, + y: this.model.width / 8, + width: this.model.width / 7, + height: this.model.width / 12 + }, + style: { + fill: 'rgba(0,0,0,0)', + lineWidth: 1, + stroke: '#000' + } + }); + this.line1 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 7 / 24, + y1: 0, + x2: this.model.width * 7 / 24, + y2: this.model.width * 5 / 12 + }, + style: { + stroke: '#000', + lineWidth: 1 + } + }); + this.line2 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 7 / 12, + y1: 0, + x2: this.model.width * 7 / 12, + y2: this.model.width * 5 / 12 + }, + style: { + stroke: '#000', + lineWidth: 1 + } + }); + this.line3 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 7 / 24, + y1: this.model.width * 5 / 84, + x2: this.model.width * 7 / 12, + y2: this.model.width * 5 / 84 + }, + style: { + stroke: '#000', + lineWidth: 1 + } + }); + this.line4 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 7 / 24, + y1: this.model.width * 5 / 42, + x2: this.model.width * 7 / 12, + y2: this.model.width * 5 / 42 + }, + style: { + stroke: '#000', + lineWidth: 1 + } + }); + this.line5 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 7 / 24, + y1: this.model.width * 5 / 28, + x2: this.model.width * 7 / 12, + y2: this.model.width * 5 / 28 + }, + style: { + stroke: '#000', + lineWidth: 1 + } + }); + this.line6 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 7 / 24, + y1: this.model.width * 5 / 21, + x2: this.model.width * 7 / 12, + y2: this.model.width * 5 / 21 + }, + style: { + stroke: '#000', + lineWidth: 1 + } + }); + this.line7 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 7 / 24, + y1: this.model.width * 25 / 84, + x2: this.model.width * 7 / 12, + y2: this.model.width * 25 / 84 + }, + style: { + stroke: '#000', + lineWidth: 1 + } + }); + this.line8 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 7 / 24, + y1: this.model.width * 5 / 14, + x2: this.model.width * 7 / 12, + y2: this.model.width * 5 / 14 + }, + style: { + stroke: '#000', + lineWidth: 1 + } + }); + this.line9 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 3 / 4, + y1: this.model.width / 6, + x2: this.model.width * 25 / 28, + y2: this.model.width / 6 + }, + style: { + stroke: '#000', + lineWidth: 1 + } + }); + this.grouper.add(this.rect1); + this.grouper.add(this.rect2); + this.grouper.add(this.rect3); + this.grouper.add(this.line1); + this.grouper.add(this.line2); + this.grouper.add(this.line3); + this.grouper.add(this.line4); + this.grouper.add(this.line5); + this.grouper.add(this.line6); + this.grouper.add(this.line7); + this.grouper.add(this.line8); + this.grouper.add(this.line9); + this.add(this.grouper); + } + setState(model) { + if (model.state === 'normal') { + this.rect1.setStyle({fill: '#0F0'}); + } else if (model.state === 'fault') { + this.rect1.setStyle({fill: '#F00'}); + } else if (model.state === 'unknow') { + this.rect1.setStyle({fill: '#00F'}); + } + } + setModel(dx, dy) { + this.model.point.x += dx; + this.model.point.y += dy; + } +} diff --git a/src/iscs/shape/factory.js b/src/iscs/shape/factory.js index 709a4ddf2..94ddc2a70 100644 --- a/src/iscs/shape/factory.js +++ b/src/iscs/shape/factory.js @@ -48,6 +48,7 @@ import Draught from './bas/draught'; import IscsImage from './iscsImage'; import OrdinaryDoor from './ordinaryDoor'; import FuzhouDoor from './fuzhouDoor'; +import CommunicationButcher from './communicationButcher'; const iscsShape = {}; iscsShape[deviceType.ManualAlarmButton] = ManualAlarmButton; @@ -100,6 +101,7 @@ iscsShape[deviceType.Draught] = Draught; iscsShape[deviceType.IscsImage] = IscsImage; iscsShape[deviceType.OrdinaryDoor] = OrdinaryDoor; iscsShape[deviceType.FuzhouDoor] = FuzhouDoor; +iscsShape[deviceType.CommunicationButcher] = CommunicationButcher; function shapefactory(device, iscs) { const type = device.model._type; diff --git a/src/iscs/shape/fuzhouDoor.js b/src/iscs/shape/fuzhouDoor.js index 9937d320b..7d88dd100 100644 --- a/src/iscs/shape/fuzhouDoor.js +++ b/src/iscs/shape/fuzhouDoor.js @@ -18,7 +18,6 @@ export default class fuzhouDoor extends Group { id: this.model.code, position: [this.model.point.x, this.model.point.y] }); - this.add(this.grouper); this.door = new Rect({ zlevel: this.zlevel, z: this.z, @@ -29,7 +28,9 @@ export default class fuzhouDoor extends Group { height: this.model.width * 25 / 16 }, style: { - fill: '#33CC00'// D3D0C9 + fill: '#33CC00', + stroke: '#000', + lineWidth: 2 } }); this.doorWindow = new Rect({ @@ -49,10 +50,10 @@ export default class fuzhouDoor extends Group { zlevel: this.zlevel, z: this.z, shape: { - x: this.model.width * 13 / 17, - y: this.model.width * 21 / 17, - width: this.model.width / 17, - height: this.model.width / 17 + x: this.model.width * 12 / 17, + y: this.model.width * 20 / 17, + width: this.model.width / 9, + height: this.model.width / 9 }, style: { fill: '#000' @@ -64,7 +65,7 @@ export default class fuzhouDoor extends Group { shape: { points:[ [0, 0], - [this.model.width * 3 / 4, this.model.width * 5 / 16], + [this.model.width * 3 / 4, this.model.width * 7 / 24], [this.model.width * 3 / 4, this.model.width * 7 / 4], [0, this.model.width * 25 / 16] ] @@ -80,10 +81,10 @@ export default class fuzhouDoor extends Group { z: this.z + 2, shape: { points: [ - [this.model.width / 6, this.model.width / 4], - [this.model.width * 2 / 3, this.model.width * 5 / 12], - [this.model.width / 6, this.model.width * 7 / 12], - [this.model.width * 2 / 3, this.model.width * 2 / 3] + [this.model.width / 8, this.model.width / 4], + [this.model.width * 5 / 8, this.model.width * 5 / 12], + [this.model.width * 5 / 8, this.model.width * 3 / 4], + [this.model.width / 8, this.model.width * 7 / 12] ] }, style: { @@ -95,10 +96,10 @@ export default class fuzhouDoor extends Group { z: this.z + 2, shape: { points: [ - [this.model.width * 11 / 24, this.model.width * 55 / 48], - [this.model.width / 3, this.model.width * 29 / 24], - [this.model.width * 11 / 24, this.model.width * 5 / 4], - [this.model.width / 3, this.model.width * 21 / 16] + [this.model.width * 5 / 12, this.model.width * 55 / 48], + [this.model.width * 14 / 24, this.model.width * 29 / 24], + [this.model.width * 14 / 24, this.model.width * 21 / 16], + [this.model.width * 5 / 12, this.model.width * 5 / 4] ] }, style: { @@ -120,12 +121,12 @@ export default class fuzhouDoor extends Group { } setState(model) { if (model.doorOpen) { - this.door.setStyle({fill: 'D3D0C9'}); + this.door.setStyle({fill: '#D3D0C9'}); this.polygon1.show(); this.polygon2.show(); this.polygon3.show(); } else { - this.door.setStyle({fill: 'D3D0C9'}); + this.door.setStyle({fill: '#0F0'}); this.doorWindow.show(); this.doorknob.show(); } diff --git a/src/iscs/utils/parser.js b/src/iscs/utils/parser.js index 2b6d6725f..e0addcbe7 100644 --- a/src/iscs/utils/parser.js +++ b/src/iscs/utils/parser.js @@ -190,6 +190,9 @@ export function parser(data) { zrUtil.each(data.fuzhoudoorList || [], elem => { iscsDevice[elem.code] = deviceFactory(deviceType.FuzhouDoor, elem); }); + zrUtil.each(data.communicationButcherList || [], elem => { + iscsDevice[elem.code] = deviceFactory(deviceType.CommunicationButcher, elem); + }); } return iscsDevice; diff --git a/src/views/ibp/ibpsystem/index.vue b/src/views/ibp/ibpsystem/index.vue index e9d16c2b4..c680dc108 100644 --- a/src/views/ibp/ibpsystem/index.vue +++ b/src/views/ibp/ibpsystem/index.vue @@ -191,7 +191,7 @@ export default { onMouseDown(em) { if (em.deviceModel.mean) { if (IbpOperation[em.deviceModel.mean]) { - handlerIbpEvent(this.$route.query.group, IbpOperation[em.deviceModel.mean].event); + handlerIbpEvent(this.$route.query.group, IbpOperation[em.deviceModel.mean].event, this.stationCode); } } }, diff --git a/src/views/iscs/iscsDesign/demonList.vue b/src/views/iscs/iscsDesign/demonList.vue index 29048ee12..2a7e4aa25 100644 --- a/src/views/iscs/iscsDesign/demonList.vue +++ b/src/views/iscs/iscsDesign/demonList.vue @@ -454,47 +454,47 @@ export default { }, { name: '自动售检票/门禁', - mode: '', - id: '', - type: '', + mode: 'fafc', + id: 'fafc', + type: 'totalSystem', children: [ { name: '自动售检票系统', - mode: '', - id: '', - type: '' + mode: 'autoTicket', + id: 'autoTicket', + type: 'interface' }, { name: '门禁系统', - mode: '', - id: '', - type: '' + mode: 'entranceGuard', + id: 'entranceGuard', + type: 'interface' } ] }, { name: '火灾报警系统', - mode: '', - id: '', - type: '', + mode: 'ffas', + id: 'ffas', + type: 'totalSystem', children: [ { name: '火灾报警系统-FAS联动', - mode: '', - id: '', - type: '' + mode: 'linkage', + id: 'linkage', + type: 'interface' }, { name: '火灾报警系统-站厅层', - mode: '', - id: '', - type: '' + mode: 'stationHall', + id: 'stationHall', + type: 'interface' }, { name: '火灾报警系统-站台层', - mode: '', - id: '', - type: '' + mode: 'platform', + id: 'platform', + type: 'interface' }, { name: '火灾报警系统-区间', diff --git a/src/views/iscs/iscsDraw/IscsNetOperate/index.vue b/src/views/iscs/iscsDraw/IscsNetOperate/index.vue index 78be19694..a3f4c7af4 100644 --- a/src/views/iscs/iscsDraw/IscsNetOperate/index.vue +++ b/src/views/iscs/iscsDraw/IscsNetOperate/index.vue @@ -58,6 +58,22 @@ @deleteDataModel="deleteDataModel" /> + + + + + + @@ -71,6 +87,8 @@ import IscsLine from '../iscsCommonElem/line'; import IscsText from '../iscsCommonElem/text'; import IscsRect from '../iscsCommonElem/rect'; import OrdinaryDoor from '../iscsCommonElem/ordinaryDoor'; +import FuzhouDoor from '../iscsCommonElem/fuzhouDoor'; +import CommunicationButcher from '../iscsCommonElem/communicationButcher'; export default { name: 'IscsAcsOperate', @@ -80,7 +98,9 @@ export default { IscsLine, IscsText, IscsRect, - OrdinaryDoor + OrdinaryDoor, + FuzhouDoor, + CommunicationButcher }, mixins: [ ], diff --git a/src/views/iscs/iscsDraw/iscsCommonElem/communicationButcher.vue b/src/views/iscs/iscsDraw/iscsCommonElem/communicationButcher.vue new file mode 100644 index 000000000..b4352126c --- /dev/null +++ b/src/views/iscs/iscsDraw/iscsCommonElem/communicationButcher.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/src/views/iscs/iscsDraw/iscsCommonElem/fuzhouDoor.vue b/src/views/iscs/iscsDraw/iscsCommonElem/fuzhouDoor.vue index a49a84f43..8115304f7 100644 --- a/src/views/iscs/iscsDraw/iscsCommonElem/fuzhouDoor.vue +++ b/src/views/iscs/iscsDraw/iscsCommonElem/fuzhouDoor.vue @@ -23,12 +23,12 @@ import {getUID} from '@/iscs/utils/Uid'; import { mapGetters } from 'vuex'; export default { - name: 'OrdinaryDoor', + name: 'FuzhouDoor', data() { return { form:{ code: '', - width: 1, + width: 20, x: 10, y: 10 }, @@ -46,16 +46,14 @@ export default { watch:{ '$store.state.iscs.rightClickCount': function (val) { const model = this.$store.getters['iscs/updateDeviceData']; - if (model._type === 'OrdinaryDoor' ) { + if (model._type === 'FuzhouDoor' ) { this.buttonText = '修改'; this.showDeleteButton = true; this.isUpdate = true; this.form.code = model.code; this.form.x = model.point.x; this.form.y = model.point.y; - this.form.r = model.r; - this.form.doorType = model.doorType; - this.form.rotationAngle = model.rotationAngle; + this.form.width = model.width; } } }, @@ -69,11 +67,9 @@ export default { x: this.form.x, y: this.form.y }, - code: this.isUpdate ? this.form.code : getUID('OrdinaryDoor', this.iscs.ordinaryDoorList), - _type: 'OrdinaryDoor', - rotationAngle: this.form.rotationAngle, - r: this.form.r, - doorType: this.form.doorType + code: this.isUpdate ? this.form.code : getUID('FuzhouDoor', this.iscs.fuzhouDoorList), + _type: 'FuzhouDoor', + width: this.form.width }; this.$emit('createDataModel', model); this.initPage(); @@ -83,18 +79,16 @@ export default { }); }, deleteDevice() { - const lineModel = { + const model = { point: { x: this.form.x, y: this.form.y }, code: this.form.code, - _type: 'OrdinaryDoor', - rotationAngle: this.form.rotationAngle, - r: this.form.r, - doorType: this.form.doorType + _type: 'FuzhouDoor', + width: this.form.width }; - this.$emit('deleteDataModel', lineModel); + this.$emit('deleteDataModel', model); }, initPage() { this.isUpdate = false; @@ -102,9 +96,7 @@ export default { this.showDeleteButton = false; this.form = { code: '', - doorType: '1', - r: 1, - rotationAngle: 0, + width: 20, x: 10, y: 10 }; diff --git a/src/views/newMap/displayNew/dispatherContest/requestQuestion.vue b/src/views/newMap/displayNew/dispatherContest/requestQuestion.vue new file mode 100644 index 000000000..207115cd3 --- /dev/null +++ b/src/views/newMap/displayNew/dispatherContest/requestQuestion.vue @@ -0,0 +1,116 @@ + + + + diff --git a/src/views/newMap/displayNew/dispatherContest/result.vue b/src/views/newMap/displayNew/dispatherContest/result.vue index 4ea2c6818..01b602f2d 100644 --- a/src/views/newMap/displayNew/dispatherContest/result.vue +++ b/src/views/newMap/displayNew/dispatherContest/result.vue @@ -1,109 +1,185 @@