From 3b263669355790311b89f3051727d7fa09d8ba66 Mon Sep 17 00:00:00 2001 From: fan <18706759286@163.com> Date: Thu, 16 Jan 2020 16:25:33 +0800 Subject: [PATCH] =?UTF-8?q?Psd=E5=AD=90=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/iscs/shape/fireHydrantAlarmButton.js | 3 + src/iscs/shape/psd/platformScreenDoor.js | 107 ++++-------------- src/iscs/shape/psd/psdClose.js | 104 +++++++++++++++++ src/iscs/shape/psd/psdOpen.js | 98 ++++++++++++++++ src/iscs/shape/psd/unknownState.js | 45 ++++++++ src/views/system/iscsDesign/demonList.vue | 10 +- src/views/system/iscsDraw/index.vue | 9 +- .../system/iscsDraw/iscsOperate/index.vue | 17 +-- .../system/iscsDraw/iscsPsdOperate/index.vue | 85 ++++++++++++++ .../platformScreenDoor.vue | 0 10 files changed, 376 insertions(+), 102 deletions(-) create mode 100644 src/iscs/shape/psd/psdClose.js create mode 100644 src/iscs/shape/psd/unknownState.js create mode 100644 src/views/system/iscsDraw/iscsPsdOperate/index.vue rename src/views/system/iscsDraw/{iscsOperate => iscsPsdOperate}/platformScreenDoor.vue (100%) diff --git a/src/iscs/shape/fireHydrantAlarmButton.js b/src/iscs/shape/fireHydrantAlarmButton.js index 80630bdc6..df6434c19 100644 --- a/src/iscs/shape/fireHydrantAlarmButton.js +++ b/src/iscs/shape/fireHydrantAlarmButton.js @@ -48,6 +48,9 @@ export default class FireHydrantAlarmButton extends Group { z: this.z, shape: { points: [[width * 2 / 5, width * 3 / 10], [width * 3 / 5, width * 3 / 10], [width * 13 / 20, width * 2 / 5], [width * 7 / 20, width * 2 / 5]] + }, + style: { + color: '#000' } }); this.grouper.add(this.polygonTop); diff --git a/src/iscs/shape/psd/platformScreenDoor.js b/src/iscs/shape/psd/platformScreenDoor.js index 8f077c237..c0fa4c9ec 100644 --- a/src/iscs/shape/psd/platformScreenDoor.js +++ b/src/iscs/shape/psd/platformScreenDoor.js @@ -2,6 +2,9 @@ import Group from 'zrender/src/container/Group'; import Text from 'zrender/src/graphic/Text'; import Rect from 'zrender/src/graphic/shape/Rect'; import Line from 'zrender/src/graphic/shape/Line'; +import PsdClose from './psdClose'; +import PsdOpen from './psdOpen'; +import UnknownState from './unknownState'; export default class PlatformScreenDoor extends Group { constructor(device) { @@ -60,99 +63,35 @@ export default class PlatformScreenDoor extends Group { stroke: '#CBCBCB' } }); - this.door = new Rect({ - zlevel: this.zlevel, - z: this.z, - shape: { - x: this.model.width / 4, - y: 0, - width: this.model.width / 2, - height: this.model.width / 2 - }, - style: { - fill: '#0F0' + this.psdClose = new PsdClose({ + model: { + zlevel: this.zlevel, + z: this.z + 1, + width: this.model.width } }); - this.doorLeftLine1 = new Line({ - zlevel: this.zlevel, - z: this.z, - shape: { - x1: this.model.width / 4 + 2, - y1: 2, - x2: this.model.width / 4 + 2, - y2: this.model.width / 2 - }, - style: { - stroke: '#000', - lineWidth: 0.5 + this.psdOpen = new PsdOpen({ + model: { + zlevel: this.zlevel, + z: this.z + 1, + width: this.model.width } }); - this.doorLeftLine2 = new Line({ - zlevel: this.zlevel, - z: this.z, - shape: { - x1: this.model.width / 4 + 2, - y1: 2, - x2: this.model.width / 2 - 2, - y2: 2 - }, - style: { - stroke: '#000', - lineWidth: 0.5 + this.unknownState = new UnknownState({ + model: { + zlevel: this.zlevel, + z: this.z + 1, + width: this.model.width } }); - this.doorRightLine1 = new Line({ - zlevel: this.zlevel, - z: this.z, - shape: { - x1: this.model.width / 2 + 2, - y1: 2, - x2: this.model.width * 3 / 4 - 2, - y2: 2 - }, - style: { - stroke: '#000', - lineWidth: 0.5 - } - }); - this.doorRightLine2 = new Line({ - zlevel: this.zlevel, - z: this.z, - shape: { - x1: this.model.width * 3 / 4 - 2, - y1: 2, - x2: this.model.width * 3 / 4 - 2, - y2: this.model.width / 2 - }, - style: { - stroke: '#000', - lineWidth: 0.5 - } - }); - this.doorCrack = new Line({ - zlevel: this.zlevel, - z: this.z, - shape: { - x1: this.model.width / 2, - y1: 2, - x2: this.model.width / 2, - y2: this.model.width / 2 - }, - style: { - stroke : '#000', - lineWidth: 2 - } - }); - this.grouper.add(this.glass); this.grouper.add(this.glassTopLine); this.grouper.add(this.glassBottomLine); - this.grouper.add(this.door); - this.grouper.add(this.doorLeftLine1); - this.grouper.add(this.doorLeftLine2); - this.grouper.add(this.doorRightLine1); - this.grouper.add(this.doorRightLine2); - this.grouper.add(this.doorCrack); + this.grouper.add(this.psdClose); + this.grouper.add(this.psdOpen); + this.grouper.add(this.unknownState); + this.unknownState.hide(); + this.psdOpen.hide(); } setModel(dx, dy) { this.model.point.x += dx; diff --git a/src/iscs/shape/psd/psdClose.js b/src/iscs/shape/psd/psdClose.js new file mode 100644 index 000000000..367d2a4c6 --- /dev/null +++ b/src/iscs/shape/psd/psdClose.js @@ -0,0 +1,104 @@ +import Group from 'zrender/src/container/Group'; +import Line from 'zrender/src/graphic/shape/Line'; +import Rect from 'zrender/src/graphic/shape/Rect'; + +export default class PsdClose extends Group { + constructor(device) { + super(); + this.model = device.model; + this.zlevel = device.model.zlevel; + this.z = device.model.z; + this.create(); + } + create() { + this.door = new Rect({ + zlevel: this.zlevel, + z: this.z, + shape: { + x: this.model.width / 4, + y: 0, + width: this.model.width / 2, + height: this.model.width / 2 + }, + style: { + fill: '#0F0' + } + }); + this.doorLeftLine1 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width / 4 + 2, + y1: 2, + x2: this.model.width / 4 + 2, + y2: this.model.width / 2 + }, + style: { + stroke: '#000', + lineWidth: 0.5 + } + }); + this.doorLeftLine2 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width / 4 + 2, + y1: 2, + x2: this.model.width / 2 - 2, + y2: 2 + }, + style: { + stroke: '#000', + lineWidth: 0.5 + } + }); + this.doorRightLine1 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width / 2 + 2, + y1: 2, + x2: this.model.width * 3 / 4 - 2, + y2: 2 + }, + style: { + stroke: '#000', + lineWidth: 0.5 + } + }); + this.doorRightLine2 = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width * 3 / 4 - 2, + y1: 2, + x2: this.model.width * 3 / 4 - 2, + y2: this.model.width / 2 + }, + style: { + stroke: '#000', + lineWidth: 0.5 + } + }); + this.doorCrack = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width / 2, + y1: 2, + x2: this.model.width / 2, + y2: this.model.width / 2 + }, + style: { + stroke : '#000', + lineWidth: 2 + } + }); + this.add(this.door); + this.add(this.doorLeftLine1); + this.add(this.doorLeftLine2); + this.add(this.doorRightLine1); + this.add(this.doorRightLine2); + this.add(this.doorCrack); + } +} diff --git a/src/iscs/shape/psd/psdOpen.js b/src/iscs/shape/psd/psdOpen.js index e69de29bb..da3417db2 100644 --- a/src/iscs/shape/psd/psdOpen.js +++ b/src/iscs/shape/psd/psdOpen.js @@ -0,0 +1,98 @@ +import Group from 'zrender/src/container/Group'; +import Line from 'zrender/src/graphic/shape/Line'; +import Rect from 'zrender/src/graphic/shape/Rect'; +import Polygon from 'zrender/src/graphic/shape/Polygon'; + +export default class PsdOpen extends Group { + constructor(device) { + super(); + this.model = device.model; + this.zlevel = device.model.zlevel; + this.z = device.model.z; + this.create(); + } + create() { + this.bgRect = new Rect({ + zlevel: this.zlevel, + z: this.z - 1, + shape: { + x: this.model.width / 4, + y: 0, + width: this.model.width / 2, + height: this.model.width / 2 + }, + style: { + fill: '#000' + } + }); + this.doorLeftFrame = new Line({ + zlevel: this.zlevel, + z: this.z, + shape: { + x1: this.model.width / 4, + y1: 0, + x2: this.model.width / 4, + y2: this.model.width / 2 + }, + style: { + lineWidth: this.model.width / 40, + stroke: '#10F19A' + } + }); + this.doorTopFrame = new Line({ + zlevel: this.zlevel, + z: this.z, + shape: { + x1: this.model.width / 4, + y1: this.model.width / 80, + x2: this.model.width * 3 / 4, + y2: this.model.width / 80 + }, + style: { + lineWidth: this.model.width / 40, + stroke: '#10F19A' + } + }); + this.doorRightFrame = new Line({ + zlevel: this.zlevel, + z: this.z, + shape: { + x1: this.model.width * 3 / 4, + y1: 0, + x2: this.model.width * 3 / 4, + y2: this.model.width / 2 + }, + style: { + lineWidth: this.model.width / 40, + stroke: '#10F19A' + } + }); + this.leftPolygon = new Polygon({ + zlevel: this.zlevel, + z: this.z, + shape: { + points: [[this.model.width * 21 / 80, this.model.width * 3 / 80], [this.model.width * 5 / 12, this.model.width / 8], [this.model.width * 5 / 12, this.model.width * 37 / 80], [this.model.width * 21 / 80, this.model.width * 37 / 80]] + }, + style: { + fill: '#00CC33' + } + }); + this.rightPolygon = new Polygon({ + zlevel: this.zlevel, + z: this.z, + shape: { + points: [ + [this.model.width * 7 / 12, this.model.width / 8], [this.model.width * 59 / 80, this.model.width * 3 / 80], [this.model.width * 59 / 80, this.model.width * 37 / 80], [this.model.width * 7 / 12, this.model.width * 37 / 80]] + }, + style: { + fill: '#00CC33' + } + }); + this.add(this.bgRect); + this.add(this.doorLeftFrame); + this.add(this.doorRightFrame); + this.add(this.doorTopFrame); + this.add(this.leftPolygon); + this.add(this.rightPolygon); + } +} diff --git a/src/iscs/shape/psd/unknownState.js b/src/iscs/shape/psd/unknownState.js new file mode 100644 index 000000000..0d918c0a2 --- /dev/null +++ b/src/iscs/shape/psd/unknownState.js @@ -0,0 +1,45 @@ +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 UnknownState extends Group { + constructor(device) { + super(); + this.model = device.model; + this.zlevel = device.model.zlevel; + this.z = device.model.z; + this.create(); + } + create() { + this.doorFrame = new Rect({ + zlevel: this.zlevel, + z: this.z, + shape: { + x: this.model.width / 4, + y: 0, + width: this.model.width / 2, + height: this.model.width / 2 + }, + style: { + stroke: '#10F19A', + fill: '#B5B201' + } + }); + this.doorCrack = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width / 2, + y1: 0, + x2: this.model.width / 2, + y2: this.model.width / 2 + }, + style: { + lineWidth: 2, + stroke: '#10F19A' + } + }); + this.add(this.doorFrame); + this.add(this.doorCrack); + } +} diff --git a/src/views/system/iscsDesign/demonList.vue b/src/views/system/iscsDesign/demonList.vue index 5219d5f0c..ff580f510 100644 --- a/src/views/system/iscsDesign/demonList.vue +++ b/src/views/system/iscsDesign/demonList.vue @@ -87,8 +87,8 @@ export default { type: 'system', children: [ { - name: 'HMI界面', - mode: 'hmi', + name: 'FAS界面', + mode: 'fas', id: '1', type: 'interface' }, @@ -97,6 +97,12 @@ export default { mode: 'bas', id: '2', type: 'interface' + }, + { + name: 'PSD界面', + mode: 'psd', + id: '3', + type: 'interface' } ] } diff --git a/src/views/system/iscsDraw/index.vue b/src/views/system/iscsDraw/index.vue index 4fa52102e..58154c9fb 100644 --- a/src/views/system/iscsDraw/index.vue +++ b/src/views/system/iscsDraw/index.vue @@ -5,8 +5,9 @@
- - + + +
@@ -15,12 +16,14 @@ import IscsPlate from '@/views/iscsSystem/index'; import IscsOperate from './iscsOperate/index'; import IscsBasOperate from './iscsBasOperate/index'; +import IscsPsdOperate from './iscsPsdOperate/index'; export default { name: 'IscsView', components: { IscsPlate, IscsOperate, - IscsBasOperate + IscsBasOperate, + IscsPsdOperate }, data() { return { diff --git a/src/views/system/iscsDraw/iscsOperate/index.vue b/src/views/system/iscsDraw/iscsOperate/index.vue index 4a1edc6e6..a56fd3147 100644 --- a/src/views/system/iscsDraw/iscsOperate/index.vue +++ b/src/views/system/iscsDraw/iscsOperate/index.vue @@ -1,7 +1,7 @@