123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- })();
- import SGraphyPolygonItem from './newItems/SGraphyPolygonItem.js';
- import { SGraphyImgItem } from './newItems/SGraphyImgItem.js';
- import { SGraphyScene } from "@sybotan-web/graphy";
- import Axios from 'axios';
- import pako from "./until/pako.js";
- import tools from "./until/tool.js";
- /**
- * @name mainScene
- * @time 2019-07.07;
- * 添加所有item的场景到scene中
- */
- var mainScene = /** @class */ (function (_super) {
- __extends(mainScene, _super);
- /**
- * @param data 绘制空间地图得所有参数
- */
- function mainScene(data) {
- var _this_1 = _super.call(this) || this;
- _this_1._isShowSpace = true; // 是否显示空间;
- _this_1._isShowWallList = true; //是否展示墙体;
- _this_1._isShowEquipmentList = true; //是否展示设备;
- _this_1._isShowVrtualWallList = true; //是否展示虚拟墙
- _this_1.data = data;
- if (_this_1.data != null) {
- _this_1.addAllItemList(_this_1.data);
- }
- return _this_1;
- }
- Object.defineProperty(mainScene.prototype, "isShowSpace", {
- // 设置是否显示空间
- get: function () {
- return this._isShowSpace;
- },
- set: function (b) {
- this._isShowSpace = b;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(mainScene.prototype, "isShowWallList", {
- // 设置是否显示墙
- get: function () {
- return this._isShowWallList;
- },
- set: function (b) {
- this._isShowWallList = b;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(mainScene.prototype, "isShowEquipmentList", {
- // 设置是否显示设备
- get: function () {
- return this._isShowEquipmentList;
- },
- set: function (b) {
- this._isShowEquipmentList = b;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(mainScene.prototype, "isShowVrtualWallList", {
- // 设置是否显示虚拟墙
- get: function () {
- return this._isShowVrtualWallList;
- },
- set: function (b) {
- this._isShowVrtualWallList = b;
- },
- enumerable: true,
- configurable: true
- });
- //获取参数
- mainScene.prototype.urlGetData = function (url) {
- var _this_1 = this;
- var that = this;
- return new Promise(function (relove, reject) {
- Axios({
- method: 'get',
- url: url,
- data: {},
- responseType: 'blob',
- }).then(function (res) {
- var blob = res.data;
- _this_1.zipToJson(blob).then(function (jsonData) {
- that.addAllItemList(jsonData);
- relove();
- }).catch(function (error) {
- console.log(error);
- });
- // console.log(reader)
- }).catch(function (res) {
- console.log(res);
- });
- });
- };
- // 压缩包变为json格式数据
- mainScene.prototype.zipToJson = function (blob) {
- var data = null;
- var reader = new FileReader();
- reader.readAsBinaryString(blob);
- var _this = this;
- return new Promise(function (resolve) {
- reader.onload = function (readerEvt) {
- var binaryString = readerEvt.target.result;
- //解压数据
- var base64Data = btoa(binaryString);
- var unGzipData = pako.unzip(base64Data);
- data = unGzipData;
- if (data.WallList && data.WallList.length) {
- tools.changeMap(data.WallList, -1, "PointList");
- }
- if (data.SpaceList && data.SpaceList.length) {
- tools.changeMap(data.SpaceList, -1, "Paths");
- }
- if (data.ColumnList && data.ColumnList.length) {
- tools.changeMap(data.ColumnList, -1, "Path");
- }
- if (data.VirtualWallList && data.VirtualWallList.length) {
- tools.changeMap(data.VirtualWallList, -1, "PointList");
- }
- if (data.EquipmentList && data.EquipmentList.length) {
- tools.changeMap(data.EquipmentList, -1, "PointList");
- }
- resolve(data);
- };
- });
- };
- // 以下是绘制方法
- /**
- * 增添所有绘制item(地图);
- */
- mainScene.prototype.addAllItemList = function (data) {
- var space = data.SpaceList;
- // let wall:
- this.addSpaceList(space); //绘制空间
- this.addWallList(); //绘制墙
- var images = data.images;
- this.addImageList(images);
- };
- /**
- * 添加所有空间到scene 中
- * @param space 空间list
- */
- mainScene.prototype.addSpaceList = function (space) {
- if (space && space.length) {
- for (var i = 0; i < space.length; i++) {
- if (space[i].Paths[1] && space[i].Paths[1].length >= 2) {
- this.addItem(this.constructeItem({
- parent: null,
- space: space[i],
- businessType: 'space'
- }));
- }
- }
- for (var i = 0; i < space.length; i++) {
- if (space[i].Paths[0] && space[i].Paths[0].length >= 2 && !space[i].Paths[1]) {
- this.addItem(this.constructeItem({
- parent: null,
- space: space[i],
- businessType: 'space'
- }));
- }
- }
- }
- };
- // 绘制墙体
- mainScene.prototype.addWallList = function () {
- };
- // 绘制设备
- mainScene.prototype.addEquipmentList = function () {
- };
- // 绘制柱体
- mainScene.prototype.addColumnListList = function () {
- };
- // 绘制虚拟墙
- mainScene.prototype.addVrtualWallList = function () {
- };
- // 绘制图片
- mainScene.prototype.addImageList = function (imageList) {
- var _this_1 = this;
- if (imageList && imageList.length) {
- imageList.map(function (t) {
- _this_1.addItem(new SGraphyImgItem(null, t.img, t.X, t.Y, t.width, t.height));
- });
- }
- };
- /**
- * 产生item实例
- */
- mainScene.prototype.constructeItem = function (PolygonItemInterfaceData) {
- return new SGraphyPolygonItem(PolygonItemInterfaceData);
- };
- // 鼠标交互类事件
- // 点击
- mainScene.prototype.click = function (_this, fn) {
- this.root.children.forEach(function (item) {
- item.connect("click", _this, fn);
- });
- };
- // 双击
- mainScene.prototype.dbclick = function (_this, fn) {
- this.root.children.forEach(function (item) {
- item.connect("doubleClick", _this, fn);
- });
- };
- // 按下
- mainScene.prototype.mouseDown = function (_this, fn) {
- this.root.children.forEach(function (item) {
- item.connect("mouseDown", _this, fn);
- });
- };
- //移动
- mainScene.prototype.mouseMove = function (_this, fn) {
- this.root.children.forEach(function (item) {
- item.connect("mouseMove", _this, fn);
- });
- };
- // 点解结束
- mainScene.prototype.mouseUp = function (_this, fn) {
- this.root.children.forEach(function (item) {
- item.connect("mouseUp", _this, fn);
- });
- };
- return mainScene;
- }(SGraphyScene));
- export default mainScene;
|