diff --git a/src/iscs/constant/deviceRender.js b/src/iscs/constant/deviceRender.js index 5432ec283..f421f6369 100644 --- a/src/iscs/constant/deviceRender.js +++ b/src/iscs/constant/deviceRender.js @@ -99,4 +99,41 @@ deviceRender[deviceType.BorderRadius] = { z: 4 }; +/** 闸机渲染配置 */ +deviceRender[deviceType.BrakeMachine] = { + _type: deviceType.BrakeMachine, + zlevel: 1, + z: 4 +}; +/** 门禁渲染配置 */ +deviceRender[deviceType.EntranceGuard] = { + _type: deviceType.EntranceGuard, + zlevel: 1, + z: 4 +}; +/** 自动售货机渲染配置 */ +deviceRender[deviceType.TicketMachine] = { + _type: deviceType.TicketMachine, + zlevel: 1, + z:4 +}; +/** 半自动售货机渲染配置 */ +deviceRender[deviceType.SemiAutomaticTicketMachine] = { + _type: deviceType.SemiAutomaticTicketMachine, + zlevel: 1, + z: 4 +}; +/** 空调机渲染配置 */ +deviceRender[deviceType.AirConditioner] = { + _type: deviceType.AirConditioner, + zlevel: 1, + z: 4 +}; +/** 风量调节阀 */ +deviceRender[deviceType.VolumeControlDamper] = { + _type: deviceType.VolumeControlDamper, + zlevel: 1, + z: 4 +}; + export default deviceRender; diff --git a/src/iscs/constant/deviceType.js b/src/iscs/constant/deviceType.js index da0627662..f834a97fa 100644 --- a/src/iscs/constant/deviceType.js +++ b/src/iscs/constant/deviceType.js @@ -1,3 +1,4 @@ + const deviceType = { ManualAlarmButton: 'manualAlarmButton', Vidicon: 'Vidicon', @@ -13,7 +14,13 @@ const deviceType = { Chiller:'Chiller', CoolTower:'CoolTower', BorderRadius: 'borderRadius', - EndDoor: 'endDoor' + EndDoor: 'endDoor', + BrakeMachine: 'brakeMachine', + EntranceGuard: 'entranceGuard', + SemiAutomaticTicketMachine: 'semiAutomaticTicketMachine', + TicketMachine: 'ticketMachine', + AirConditioner: 'airConditioner', + VolumeControlDamper: 'volumeControlDamper' }; export default deviceType; diff --git a/src/iscs/shape/airConditioner.js b/src/iscs/shape/airConditioner.js new file mode 100644 index 000000000..afa2b844f --- /dev/null +++ b/src/iscs/shape/airConditioner.js @@ -0,0 +1,27 @@ +import Group from 'zrender/src/container/Group'; +import createPathSvg from './components/pathsvg'; + +export default class AirConditioner 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(); + } + create() { + this.grouper = new Group({ + id: this.model.code, + position: [this.model.point.x, this.model.point.y] + }); + this.path = createPathSvg(this.model); + this.add(this.grouper); + this.grouper.add(this.path); + } + setModel(dx, dy) { + this.model.point.x += dx; + this.model.point.y += dy; + } +} diff --git a/src/iscs/shape/borderRadius.js b/src/iscs/shape/borderRadius.js index 0cb2964f9..4c13137f1 100644 --- a/src/iscs/shape/borderRadius.js +++ b/src/iscs/shape/borderRadius.js @@ -1,6 +1,7 @@ import Group from 'zrender/src/container/Group'; import Line from 'zrender/src/graphic/shape/Line'; import Sector from 'zrender/src/graphic/shape/Sector'; +import Rect from 'zrender/src/graphic/shape/Rect'; export default class BorderRadius extends Group { constructor(device) { @@ -24,8 +25,8 @@ export default class BorderRadius extends Group { cx: this.model.height / 2, cy: this.model.height / 2, r: this.model.height / 2, - startAngle: Math.PI * 2, - endAngle: Math.PI + startAngle: Math.PI / 2, + endAngle: Math.PI * 3 / 2 }, style: { fill: 'rgba(0, 0, 0, 0.1)', @@ -39,46 +40,62 @@ export default class BorderRadius extends Group { cx: this.model.width - this.model.height / 2, cy: this.model.height / 2, r: this.model.height / 2, - startAngle: 0, - endAngle: Math.PI + startAngle: Math.PI * 3 / 2, + endAngle: Math.PI / 2 }, style: { fill: 'rgba(0, 0, 0, 0.1)', stroke: '#EBEE0C' } }); - this.topLine = new Line({ + this.rect = new Rect({ zlevel: this.zlevel, z: this.z, shape: { - x1: this.model.height / 2, - y1: 0, - x2: this.model.width - this.model.height / 2, - y2: 0 + x: this.model.height / 2, + y: 0, + width: this.model.width - this.model.height, + height: this.model.height }, style: { - lineWidth: 2, + fill: '#000', stroke: '#EBEE0C' } }); - this.bottomLine = new Line({ + this.leftLine = new Line({ zlevel: this.zlevel, - z: this.z, + z: this.z + 1, shape: { x1: this.model.height / 2, - y1: this.model.height, + y1: 0, + x2: this.model.height / 2, + y2: this.model.height + }, + style: { + lineWidth: 3, + stroke: '#000' + } + }); + this.rightLine = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: this.model.width - this.model.height / 2, + y1: 0, x2: this.model.width - this.model.height / 2, y2: this.model.height }, style: { - lineWidth: 2, - stroke: '#EBEE0C' + lineWidth: 3, + stroke: '#000' } }); this.grouper.add(this.leftSector); this.grouper.add(this.rightSector); - this.grouper.add(this.bottomLine); - this.grouper.add(this.topLine); + this.grouper.add(this.leftLine); + this.grouper.add(this.rightLine); + this.grouper.add(this.rect); + this.add(this.grouper); } setModel(dx, dy) { this.model.point.x += dx; diff --git a/src/iscs/shape/brakeMachine.js b/src/iscs/shape/brakeMachine.js new file mode 100644 index 000000000..e645b28c7 --- /dev/null +++ b/src/iscs/shape/brakeMachine.js @@ -0,0 +1,27 @@ +import Group from 'zrender/src/container/Group'; +import createPathSvg from './components/pathsvg'; + +export default class BrakeMachine 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(); + } + create() { + this.grouper = new Group({ + id: this.model.code, + position: [this.model.point.x, this.model.point.y] + }); + this.path = createPathSvg(this.model); + this.add(this.grouper); + this.grouper.add(this.path); + } + setModel(dx, dy) { + this.model.point.x += dx; + this.model.point.y += dy; + } +} diff --git a/src/iscs/shape/components/pathsvg.js b/src/iscs/shape/components/pathsvg.js index 518b5d280..b05d68d3b 100644 --- a/src/iscs/shape/components/pathsvg.js +++ b/src/iscs/shape/components/pathsvg.js @@ -3,6 +3,26 @@ const map = { VidiconCloud: { scale: [0.02, 0.02], path: 'M917.749663 10.405886C911.585184 3.624959 902.758306 0.937984 893.583268 0 431.820819 9.342974 145.285208 116.940772 41.943153 319.811507-35.676029 472.166287 16.281719 643.911525 70.123626 722.186067c6.225919 9.072638 16.609276 14.909436 27.627513 13.783036a31.850488 31.850488 0 0 0 26.316794-16.261116c63.201265-112.455653 187.985875-295.958457 368.517032-386.613155-68.669424 89.593834-177.418197 237.273031-282.726332 404.778911-10.301438 14.069757-87.388139 125.62429-48.435189 262.901697A31.913976 31.913976 0 0 0 192.041037 1023.999754a31.014905 31.014905 0 0 0 8.765438-1.228799 32.00204 32.00204 0 0 0 21.893114-39.546871c-22.958074-80.855021 6.901758-152.575963 25.661434-186.695635 128.880609 54.415347 249.40538 53.637107 350.085036-2.785279 172.380119-96.645097 282.562492-351.743916 327.454642-758.210379a32.255992 32.255992 0 0 0-8.151038-25.126905zM567.377907 737.873743c-81.51038 45.690869-177.029078 46.940149-284.385212 3.788799 15.421436-24.104954 30.822393-47.513589 46.141429-70.533103l219.197387-31.436793a32.01228 32.01228 0 0 0-9.011198-63.385584l-161.710041 23.203834c13.250557-19.169275 26.173434-37.580791 38.871031-55.521267a30.595065 30.595065 0 0 0 6.184958-0.614399l159.272922-31.989753a32.028664 32.028664 0 0 0 24.985594-37.662711 31.651832 31.651832 0 0 0-37.498871-25.108474l-98.488296 19.783676c81.96094-111.742949 141.066206-183.898068 142.069726-185.139156a32.11468 32.11468 0 0 0 2.375679-37.531639 31.743992 31.743992 0 0 0-34.815991-13.844477c-85.503979 22.001659-161.484761 63.657969-227.860426 114.608101v-58.490866a31.856632 31.856632 0 1 0-63.713264 0v112.672741c-22.630395 21.202939-43.868149 43.231222-63.713265 65.574896v-101.715943a31.846392 31.846392 0 1 0-63.692785 0v179.458004c0 0.24576 0.12288 0.43008 0.12288 0.67584-24.289274 32.665592-45.711349 64.614384-63.897585 94.064618-28.344313-67.071984-54.251507-181.637076 0.83968-289.761211C186.593358 176.322518 448.921615 78.374893 858.337197 64.968688c-44.646389 363.374505-142.479326 589.653874-290.95929 672.905055z m339.353518-145.653725c-10.874877-21.626875-45.957109-21.626875-56.852466 0-19.189755 38.256631-114.872292 232.120264-114.872293 294.625209 0 75.612142 64.286705 137.154527 143.298526 137.154527s143.319006-61.542385 143.319006-137.154527c0-62.504945-95.703017-256.368578-114.892773-294.625209z m-28.426233 367.574952c-43.909109 0-79.605741-32.727032-79.605741-72.949743 0-27.770873 40.44799-123.96541 79.605741-207.09371 39.157751 83.1283 79.626221 179.322837 79.626221 207.09371 0 40.22271-35.696631 72.949742-79.626221 72.949743z' + }, + brakeMachine: { + width: 159, + path: 'M160,101H1V82l46.013-.289c8.016-5.064,38.681-23.717,63.8-29.188C85.244,47.006,53.8,27.621,46.55,23H1V4L160,3V23H141.512c1.7,4.784,3.5,23.827-9.675,29.436,12.815,5.166,11.856,22.742,10.254,28.676L160,81v20ZM22,87H10v9l12,0.083V87ZM22,9H10v9l12,0.083V9ZM154,9H29v9.132L154,19V9ZM132.222,23H58.7c9.442,5.485,55.744,31.358,70.3,20C134.869,38.421,132.945,26.523,132.222,23Zm-2.953,39c-14.3-11.122-59.136,13.454-69.891,19.633l73.284-.461C133.452,76.9,134.758,66.27,129.269,62ZM154,87H29v9.132L154,97V87Z' + }, + ticketMachine: { + width: 107, + path: 'M102,42H96V24h6V42ZM83,27h6v9H83V27ZM22,38H16V29h6v9Zm7-4V27H44V43H26V36h5v2h8V32H34v2H29Zm32,0V27H76V43H58V36h5v2h8V32H66v2H61Zm24,6V50H14V42h4v4H81V40h4ZM95,61H89V45h6V61ZM85,21H25v6H19V16H91v8H85V21ZM12,60V52H85v8H81V56H16v4H12Zm98.509,65L91,138.919V140H4V63h6v3h8V61h5v5h8V61h5v5h5V61h5v5H57V61h5v5h7V58h5v8h4V63h5v8H10v2H85V63h6v68.548l14-9.988V9H20.251l-0.659,1H102V21H96V14H17V13.935L16.957,14H17V28H11V15.089L9.644,14.2,16,4.547V3h1.019l0.327-.5L18.1,3H111V125h-0.491ZM85,78H10v56H85V78ZM31,95l8,23H33l-1.826-6H25.826L24,118H18l8-23h5Zm-1.044,13L28.5,103.214,27.044,108h2.913Zm12.9-14L46.5,108.786,50.143,94H55l-6.476,23H44.476L38,94h4.857ZM60,95h4l4,13.333L72,95h5l2,22H75l-1.3-14.326L70,115H66l-3.7-12.326L61,117H57l2-22h1ZM10,59H4V31h6V59Z' + }, + semiAutomaticTicketMachine: { + width: 107, + path: 'M169,104h-6V86h6v18ZM150,89h6v9h-6V89ZM89,100H83V91h6v9Zm7-4V89h15v16H93V98h5v2h8V94h-5v2H96Zm32,0V89h15v16H125V98h5v2h8V94h-5v2h-5Zm24,6v10H81v-8h4v4h63v-6h4Zm10,21h-6V107h6v16ZM152,83H92v6H86V78h72v8h-6V83ZM79,122v-8h73v8h-4v-4H83v4H79Zm98.509,65L158,200.919V202H71V125h6v3h8v-5h5v5h8v-5h5v5h5v-5h5v5h11v-5h5v5h7v-8h5v8h4v-3h5v8H77v2h75V125h6v68.548l14-9.988V71H87.251l-0.659,1H169V83h-6V76H84V75.935L83.957,76H84V90H78V77.089L76.644,76.2,83,66.547V65h1.019l0.327-.5L85.1,65H178V187h-0.491ZM152,140H77v56h75V140ZM98,164.882c-0.086,2.392-3.312,3.289-6.116,3.616a17.317,17.317,0,0,0-4.1.165,28.262,28.262,0,0,0,4.1-.165c3.22,0.281,6.956,1.758,5.638,7.378C96.7,179.378,85,178.968,85,178.968V158.359S98.327,155.743,98,164.882ZM88,176.176s6.134,0.926,6-2.823c-0.126-3.527-6-2.824-6-2.824v5.647Zm0-9.411s5.2,0.959,6-1.883c1.046-3.717-6-3.764-6-3.764v5.647ZM109.5,158c4.694,0,8.5,4.925,8.5,11s-3.806,11-8.5,11-8.5-4.925-8.5-11S104.806,158,109.5,158ZM109,176c3.3,0.056,5.091-3.366,5-8-0.076-3.884-1.747-5.728-4-6s-4.973,2.36-5,7C104.981,172.375,105.106,175.934,109,176Zm14-18h4l4,13.333L135,158h5l2,22h-4l-1.3-14.326L133,178h-4l-3.7-12.326L124,180h-4l2-22h1ZM77,121H71V93h6v28Z' + }, + airConditioner: { + width: 147, + path: 'M3,77V2L150,3V78ZM24,14H17V65h7V14Zm7-8H28v4h3V6Zm0,8H28V65h3V14ZM147,6H35v4h8V68l-8,.06V72H31V68.09l-3,.022V72H24V68.142l-11,.082V10H24V6H6V74H147V6ZM35,14V65h5V14H35ZM76,68l-30,.224V10H76V68ZM59,56H52.625A8.285,8.285,0,0,0,59,60.912V56Zm0-3V45.225c-3.36.708-7.185,3.154-7,7.775h7Zm4,0h6c0-2.946-1.113-6.969-6-7.827V53Zm0,3v4.593A8.015,8.015,0,0,0,68.387,56H63ZM49,65H59V64.906a12.456,12.456,0,0,1-10-7.2V65Zm0-51v5.294A12.172,12.172,0,0,1,53.6,14H49Zm10,2.225c-3.36.708-7.185,3.154-7,7.775h7V16.225ZM59,27H52.625A8.285,8.285,0,0,0,59,31.912V27Zm4-10.827V24h6C69,21.054,67.887,17.031,63,16.173ZM63,27v4.593A8.015,8.015,0,0,0,68.387,27H63ZM73,53V14H67.4A11.87,11.87,0,0,1,73,24,12.258,12.258,0,0,1,60.5,36,12.522,12.522,0,0,1,49,28.706V48.294a12.456,12.456,0,0,1,10-7.2V41h4v0.241a11.914,11.914,0,0,1,0,23.518V65H73V53Zm28-35a19.912,19.912,0,0,1,7,1.284V19h23V39H120.95A19.984,19.984,0,0,1,101,58c-11.046,0-21-8.954-21-20S89.954,18,101,18Zm27,17V23H114.2a19.935,19.935,0,0,1,6.553,12H128ZM84,39c0.594,8.917,8.91,15.731,19,15,10.255-.743,14.645-9.489,15-15,0.594-9.238-6.151-16.7-17-17S83.406,30.083,84,39Zm17.707-9a8.5,8.5,0,0,1,0,17A8.755,8.755,0,0,1,93,38.5,8.755,8.755,0,0,1,101.707,30ZM96,39c0.246,3.79,1.817,4.311,6,4,4.252-.316,4.853-1.658,5-4,0.246-3.926-.5-4.874-5-5S95.754,35.21,96,39Z' + }, + volumeControlDamper: { + width: 42, + path: 'M3,36H43V99H3V36Zm4,3H40V96H7V39Zm6,4H34V63H13V43Zm0,30H34V93H13V73Zm20,2h8v5H33V75Zm0-20h8v5H33V55ZM20,29h5v8H20V29ZM23,3C34.6,3,44,9.268,44,17S34.6,31,23,31,2,24.732,2,17,11.4,3,23,3Zm0,4c12.261,0,16,6.134,16,10s-3.72,8.837-15,9S8,20.866,8,17,10.74,7,23,7ZM14,25V7l4-1,6,7,4-6,5,1V26H28V16l-4,4-5-4V26ZM27,62h5V75H27V62ZM15.617,88.076l2.649,3.265L9.777,98.228,7.128,94.963ZM13.4,45.987l2.619-3.215L7.622,35.991,5,39.206Z' } }; @@ -12,6 +32,7 @@ export default function createPathSvg(model) { fill: model.fill || '#00FF00' } }); - svg.scale = map[model._type].scale; + const scaleX = model.width / map[model._type].width; + svg.scale = [scaleX, scaleX]; return svg; } diff --git a/src/iscs/shape/entranceGuard/close.js b/src/iscs/shape/entranceGuard/close.js new file mode 100644 index 000000000..c7576f78a --- /dev/null +++ b/src/iscs/shape/entranceGuard/close.js @@ -0,0 +1,56 @@ +import Group from 'zrender/src/container/Group'; +import Rect from 'zrender/src/graphic/shape/Rect'; +import Circle from 'zrender/src/graphic/shape/Circle'; + +export default class CloseEntranceGuard 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: 0, + y: 0, + width: this.model.width, + height: this.model.width * 16 / 13 + }, + style: { + fill: '#33CC00' + } + }); + this.doorWindow = new Rect({ + zlevel: this.zlevel, + z: this.z, + shape: { + x: this.model.width / 8, + y: this.model.width * 4 / 13, + width: this.model.width * 3 / 4, + height: this.model.width * 6 / 17 + }, + style: { + fill: '#000' + } + }); + this.doorknob = new Circle({ + zlevel: this.zlevel, + z: this.z, + shape: { + cx: this.model.width * 9 / 13, + cy: this.model.width * 11 / 13, + r: this.model.width / 16 + }, + style: { + fill: '#000' + } + }); + this.add(this.door); + this.add(this.doorWindow); + this.add(this.doorknob); + } +} diff --git a/src/iscs/shape/entranceGuard/index.js b/src/iscs/shape/entranceGuard/index.js new file mode 100644 index 000000000..ff06e8f80 --- /dev/null +++ b/src/iscs/shape/entranceGuard/index.js @@ -0,0 +1,43 @@ +import Group from 'zrender/src/container/Group'; +import CloseEntranceGuard from './close'; +import OpenEntranceGuard from './open'; + +export default class EntranceGuard 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(); + } + create() { + this.grouper = new Group({ + id: this.model.code, + position: [this.model.point.x, this.model.point.y] + }); + this.closeEntranceGuard = new CloseEntranceGuard({ + model:{ + zlevel: this.zlevel, + z: this.z, + width: this.model.width + } + }); + this.openEntranceGuard = new OpenEntranceGuard({ + model: { + zlevel: this.zlevel, + z: this.z, + width: this.model.width + } + }); + this.add(this.grouper); + this.grouper.add(this.closeEntranceGuard); + this.grouper.add(this.openEntranceGuard); + this.closeEntranceGuard.hide(); + } + setModel(dx, dy) { + this.model.point.x += dx; + this.model.point.y += dy; + } +} diff --git a/src/iscs/shape/entranceGuard/open.js b/src/iscs/shape/entranceGuard/open.js new file mode 100644 index 000000000..a478954bc --- /dev/null +++ b/src/iscs/shape/entranceGuard/open.js @@ -0,0 +1,44 @@ +import Group from 'zrender/src/container/Group'; +import Polygon from 'zrender/src/graphic/shape/Polygon'; +import Rect from 'zrender/src/graphic/shape/Rect'; + +export default class openEntranceGuard 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: 0, + y: 0, + width: this.model.width, + height: this.model.width * 16 / 13 + }, + style: { + lineWidth: 3, + fill: '#000', + stroke: '#0F0' + } + }); + this.openDoor = new Polygon({ + zlevel: this.zlevel, + z: this.z, + shape:{ + points: [[0, 0], [this.model.width * 5 / 13, 0], [this.model.width * 11 / 13, this.model.width * 3 / 13], [this.model.width * 11 / 13, this.model.width * 19 / 13], + [this.model.width * 5 / 13, this.model.width * 16 / 13], [0, this.model.width * 16 / 13] + ] + }, + style: { + fill: '#0F0' + } + }); + this.add(this.door); + this.add(this.openDoor); + } +} diff --git a/src/iscs/shape/factory.js b/src/iscs/shape/factory.js index 48e6f578b..90df0c17d 100644 --- a/src/iscs/shape/factory.js +++ b/src/iscs/shape/factory.js @@ -14,6 +14,12 @@ import Chiller from './bas/chiller'; import CoolTower from './bas/coolTower'; import EndDoor from './endDoor'; import BorderRadius from './borderRadius'; +import BrakeMachine from './brakeMachine'; +import EntranceGuard from './entranceGuard/index'; +import SemiAutomaticTicketMachine from './semiAutomaticTicketMachine'; +import TicketMachine from './ticketMachine'; +import AirConditioner from './airConditioner'; +import VolumeControlDamper from './volumeControlDamper'; const iscsShape = {}; iscsShape[deviceType.ManualAlarmButton] = ManualAlarmButton; @@ -31,6 +37,12 @@ iscsShape[deviceType.Chiller] = Chiller; iscsShape[deviceType.CoolTower] = CoolTower; iscsShape[deviceType.EndDoor] = EndDoor; iscsShape[deviceType.BorderRadius] = BorderRadius; +iscsShape[deviceType.BrakeMachine] = BrakeMachine; +iscsShape[deviceType.EntranceGuard] = EntranceGuard; +iscsShape[deviceType.SemiAutomaticTicketMachine] = SemiAutomaticTicketMachine; +iscsShape[deviceType.TicketMachine] = TicketMachine; +iscsShape[deviceType.AirConditioner] = AirConditioner; +iscsShape[deviceType.VolumeControlDamper] = VolumeControlDamper; function shapefactory(device, iscs) { const type = device.model._type; diff --git a/src/iscs/shape/semiAutomaticTicketMachine.js b/src/iscs/shape/semiAutomaticTicketMachine.js new file mode 100644 index 000000000..f95e93b92 --- /dev/null +++ b/src/iscs/shape/semiAutomaticTicketMachine.js @@ -0,0 +1,27 @@ +import Group from 'zrender/src/container/Group'; +import createPathSvg from './components/pathsvg'; + +export default class SemiAutomaticTicketMachine 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(); + } + create() { + this.grouper = new Group({ + id: this.model.code, + position: [this.model.point.x, this.model.point.y] + }); + this.path = createPathSvg(this.model); + this.add(this.grouper); + this.grouper.add(this.path); + } + setModel(dx, dy) { + this.model.point.x += dx; + this.model.point.y += dy; + } +} diff --git a/src/iscs/shape/ticketMachine.js b/src/iscs/shape/ticketMachine.js new file mode 100644 index 000000000..66f0f0bc9 --- /dev/null +++ b/src/iscs/shape/ticketMachine.js @@ -0,0 +1,27 @@ +import Group from 'zrender/src/container/Group'; +import createPathSvg from './components/pathsvg'; + +export default class TicketMachine 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(); + } + create() { + this.grouper = new Group({ + id: this.model.code, + position: [this.model.point.x, this.model.point.y] + }); + this.path = createPathSvg(this.model); + this.add(this.grouper); + this.grouper.add(this.path); + } + setModel(dx, dy) { + this.model.point.x += dx; + this.model.point.y += dy; + } +} diff --git a/src/iscs/shape/volumeControlDamper.js b/src/iscs/shape/volumeControlDamper.js new file mode 100644 index 000000000..ec6a2aa7c --- /dev/null +++ b/src/iscs/shape/volumeControlDamper.js @@ -0,0 +1,27 @@ +import Group from 'zrender/src/container/Group'; +import createPathSvg from './components/pathsvg'; + +export default class VolumeControlDamper 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(); + } + create() { + this.grouper = new Group({ + id: this.model.code, + position: [this.model.point.x, this.model.point.y] + }); + this.path = createPathSvg(this.model); + this.add(this.grouper); + this.grouper.add(this.path); + } + setModel(dx, dy) { + this.model.point.x += dx; + this.model.point.y += dy; + } +} diff --git a/src/iscs/utils/parser.js b/src/iscs/utils/parser.js index 39ef28ddd..27d8cdd82 100644 --- a/src/iscs/utils/parser.js +++ b/src/iscs/utils/parser.js @@ -86,6 +86,18 @@ export function parser(data) { zrUtil.each(data.borderRadiusList || [], elem =>{ iscsDevice[elem.code] = deviceFactory(deviceType.BorderRadius, elem); } ); + zrUtil.each(data.brakeMachineList || [], elem =>{ + iscsDevice[elem.code] = deviceFactory(deviceType.BrakeMachine, elem); + }); + zrUtil.each(data.entranceGuardList || [], elem =>{ + iscsDevice[elem.code] = deviceFactory(deviceType.EntranceGuard, elem); + }); + zrUtil.each(data.ticketMachineList || [], elem =>{ + iscsDevice[elem.code] = deviceFactory(deviceType.TicketMachine, elem); + }); + zrUtil.each(data.semiAutomaticTicketMachineList || [], elem =>{ + iscsDevice[elem.code] = deviceFactory(deviceType.SemiAutomaticTicketMachine, elem); + }); } return iscsDevice; @@ -149,7 +161,19 @@ export function updateIscsData(device) { updateIscsListByDevice(iscsData, 'endDoorList', device); break; case deviceType.BorderRadius: - updateIscsListByDevice(iscsData, 'borderRadius', device); + updateIscsListByDevice(iscsData, 'borderRadiusList', device); + break; + case deviceType.BrakeMachine: + updateIscsListByDevice(iscsData, 'brakeMachineList', device); + break; + case deviceType.EntranceGuard: + updateIscsListByDevice(iscsData, 'entranceGuardList', device); + break; + case deviceType.TicketMachine: + updateIscsListByDevice(iscsData, 'ticketMachineList', device); + break; + case deviceType.SemiAutomaticTicketMachine: + updateIscsListByDevice(iscsData, 'semiAutomaticTicketMachineList', device); break; } diff --git a/src/utils/baseUrl.js b/src/utils/baseUrl.js index 79d1c6346..1e9afea51 100644 --- a/src/utils/baseUrl.js +++ b/src/utils/baseUrl.js @@ -3,11 +3,11 @@ export function getBaseUrl() { let BASE_API; if (process.env.NODE_ENV === 'development') { // BASE_API = 'https://joylink.club/jlcloud'; - // BASE_API = 'https://test.joylink.club/jlcloud'; + BASE_API = 'https://test.joylink.club/jlcloud'; // BASE_API = 'http://192.168.3.5:9000'; // 袁琪 // BASE_API = 'http://192.168.3.6:9000'; // 旭强 // BASE_API = 'http://192.168.3.41:9000'; // 张赛 - BASE_API = 'http://192.168.3.82:9000'; // 杜康 + // BASE_API = 'http://192.168.3.82:9000'; // 杜康 } else { BASE_API = process.env.VUE_APP_BASE_API; } diff --git a/src/views/system/iscsDesign/demonList.vue b/src/views/system/iscsDesign/demonList.vue index f07d0c5a0..20486c838 100644 --- a/src/views/system/iscsDesign/demonList.vue +++ b/src/views/system/iscsDesign/demonList.vue @@ -109,6 +109,18 @@ export default { mode: 'cctv', id: '4', type: 'interface' + }, + { + name: 'AFC界面', + mode: 'afc', + id: '5', + type: 'interface' + }, + { + name: 'ACS界面', + mode: 'acs', + id: '5', + type: 'interface' } ] } diff --git a/src/views/system/iscsDraw/index.vue b/src/views/system/iscsDraw/index.vue index d74e8eeac..bdadce880 100644 --- a/src/views/system/iscsDraw/index.vue +++ b/src/views/system/iscsDraw/index.vue @@ -9,6 +9,8 @@ + + @@ -19,6 +21,8 @@ import IscsOperate from './iscsOperate/index'; import IscsBasOperate from './iscsBasOperate/index'; import IscsPsdOperate from './iscsPsdOperate/index'; import IscsCctvOperate from './iscsCctvOperate/index'; +import IscsAfcOperate from './iscsAfcOperate/index'; +import IscsAcsOperate from './iscsAcsOperate/index'; export default { name: 'IscsView', components: { @@ -26,7 +30,9 @@ export default { IscsOperate, IscsBasOperate, IscsPsdOperate, - IscsCctvOperate + IscsCctvOperate, + IscsAfcOperate, + IscsAcsOperate }, data() { return { diff --git a/src/views/system/iscsDraw/iscsAcsOperate/entranceGuard.vue b/src/views/system/iscsDraw/iscsAcsOperate/entranceGuard.vue new file mode 100644 index 000000000..377083b67 --- /dev/null +++ b/src/views/system/iscsDraw/iscsAcsOperate/entranceGuard.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/views/system/iscsDraw/iscsAcsOperate/index.vue b/src/views/system/iscsDraw/iscsAcsOperate/index.vue new file mode 100644 index 000000000..5450c8aa5 --- /dev/null +++ b/src/views/system/iscsDraw/iscsAcsOperate/index.vue @@ -0,0 +1,85 @@ + + + diff --git a/src/views/system/iscsDraw/iscsAfcOperate/brakeMachine.vue b/src/views/system/iscsDraw/iscsAfcOperate/brakeMachine.vue new file mode 100644 index 000000000..0b59ad2a3 --- /dev/null +++ b/src/views/system/iscsDraw/iscsAfcOperate/brakeMachine.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/views/system/iscsDraw/iscsAfcOperate/index.vue b/src/views/system/iscsDraw/iscsAfcOperate/index.vue new file mode 100644 index 000000000..843054388 --- /dev/null +++ b/src/views/system/iscsDraw/iscsAfcOperate/index.vue @@ -0,0 +1,105 @@ + + + diff --git a/src/views/system/iscsDraw/iscsAfcOperate/semiAutomaticTicketMachine.vue b/src/views/system/iscsDraw/iscsAfcOperate/semiAutomaticTicketMachine.vue new file mode 100644 index 000000000..71dcd6857 --- /dev/null +++ b/src/views/system/iscsDraw/iscsAfcOperate/semiAutomaticTicketMachine.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/views/system/iscsDraw/iscsAfcOperate/ticketMachine.vue b/src/views/system/iscsDraw/iscsAfcOperate/ticketMachine.vue new file mode 100644 index 000000000..f3adfd303 --- /dev/null +++ b/src/views/system/iscsDraw/iscsAfcOperate/ticketMachine.vue @@ -0,0 +1,103 @@ + + + + +