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 @@