|
@@ -0,0 +1,808 @@
|
|
|
|
+/*@WebApiFunc@*/
|
|
|
|
+var varList = [];
|
|
|
|
+var varListObj = {};
|
|
|
|
+var tagInfoDic={};
|
|
|
|
+// 用于保存所有的lib
|
|
|
|
+var mouseX=0,mouseY=0;
|
|
|
|
+var zoomNodeList = zoomNodeList || [];
|
|
|
|
+zoomNodeList.length = 0;
|
|
|
|
+var contextMenuOnViewList = contextMenuOnViewList || [];
|
|
|
|
+var globalVarNameList = globalVarNameList || [];
|
|
|
|
+var ratio = {ratioX: 1, ratioY: 1};
|
|
|
|
+// 保存加上图形旋转之后的缩放比例
|
|
|
|
+var _ratio = {ratioX: 1, ratioY: 1};
|
|
|
|
+var autoAdaptive = '@autoAdaptive@';
|
|
|
|
+var browserSize = {
|
|
|
|
+ width: window.innerWidth || $window.innerWidth(),
|
|
|
|
+ height: window.innerHeight || $window.innerHeight()
|
|
|
|
+}
|
|
|
|
+var globalVarObj = {};
|
|
|
|
+var globarParamsObj = {};
|
|
|
|
+var globalAliasObj = {};
|
|
|
|
+var pageSizeRatioValue;
|
|
|
|
+var PAGESCALABLE; // 页面是否可通过滚轮缩放
|
|
|
|
+var PageAdaptMode = {
|
|
|
|
+ value: 'adaptBrowser',
|
|
|
|
+ minWidth: 1366,
|
|
|
|
+ minHeight: 768
|
|
|
|
+};
|
|
|
|
+function calcRatio (backSize, browserSize, ratio) {
|
|
|
|
+ var value = GD.getParams('pageSizeRatioValue') || {}, rt;
|
|
|
|
+
|
|
|
|
+ function cr(adaptMode) {
|
|
|
|
+ var rx=1, ry=1, w, h;
|
|
|
|
+ switch (adaptMode) {
|
|
|
|
+ case 'adaptWidth':
|
|
|
|
+ rx = ry = browserSize.width / backSize.width;
|
|
|
|
+ break;
|
|
|
|
+ case 'adaptHeight':
|
|
|
|
+ rx = ry = browserSize.width / backSize.width;
|
|
|
|
+ break;
|
|
|
|
+ case 'adaptBrowser':
|
|
|
|
+ rx = browserSize.width / backSize.width;
|
|
|
|
+ ry = browserSize.height / backSize.height;
|
|
|
|
+ break;
|
|
|
|
+ case 'originSize':
|
|
|
|
+ rx = ry = 1;
|
|
|
|
+ break;
|
|
|
|
+ case 'autoResize':
|
|
|
|
+ w = browserSize.width < PageAdaptMode.minWidth ? PageAdaptMode.minWidth : browserSize.width;
|
|
|
|
+ h = browserSize.height < PageAdaptMode.minHeight ? PageAdaptMode.minHeight : browserSize.height;
|
|
|
|
+ rx = w / backSize.width;
|
|
|
|
+ ry = h / backSize.height;
|
|
|
|
+ rx > ry ? rx = ry : ry = rx;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ return {rx: rx,ry: ry}
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ value = value.value || PageAdaptMode.value;
|
|
|
|
+ pageSizeRatioValue = value;
|
|
|
|
+
|
|
|
|
+ if ($.isNumeric(value)) {
|
|
|
|
+ rt = cr(PageAdaptMode.value);
|
|
|
|
+ ratio.ratioX = value*rt.rx;
|
|
|
|
+ ratio.ratioY = value*rt.ry;
|
|
|
|
+ } else {
|
|
|
|
+ rt = cr(value);
|
|
|
|
+ ratio.ratioX = rt.rx;
|
|
|
|
+ ratio.ratioY = rt.ry;
|
|
|
|
+ }
|
|
|
|
+ ratio.originRatioX = rt.rx;
|
|
|
|
+ ratio.originRatioY = rt.ry;
|
|
|
|
+ window.backSize = backSize;
|
|
|
|
+}
|
|
|
|
+// 页面的依赖
|
|
|
|
+(function (W, GD) {
|
|
|
|
+ W.GD = GD = GD || {};
|
|
|
|
+ GD.relationship = {
|
|
|
|
+ // hash: ['a.js', 'b.js', 'c.js'],
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+})(window, window.GD);
|
|
|
|
+(function () {
|
|
|
|
+ for (var i = 0, len = varList.length; i < len; i++) {
|
|
|
|
+ var varStr = varList[i];
|
|
|
|
+ varStr = varStr && varStr.toLowerCase && varStr.toLowerCase();
|
|
|
|
+ varStr && (varListObj[varStr] = 0);
|
|
|
|
+ }
|
|
|
|
+})();
|
|
|
|
+
|
|
|
|
+jQuery.support.cors = true;
|
|
|
|
+ht.Default.appendTimeStamp = function(url) { return url };
|
|
|
|
+function init() {
|
|
|
|
+ initPage();
|
|
|
|
+ // dataModel._libModel = _libModel;
|
|
|
|
+ try {
|
|
|
|
+ VarValue = JSON.parse(sessionStorage.getItem(location.pathname)) || VarValue;
|
|
|
|
+ } catch (err) {}
|
|
|
|
+ for(var i=0;i< 0 ;i++){VarValue[i] =0;}
|
|
|
|
+ graphView.handleScroll = function () {}; graphView.setPannable(false); graphView.setMovableFunc(function(data){return false});PAGESCALABLE = false
|
|
|
|
+ view.style.background = 'rgba(255,255,255,1)';
|
|
|
|
+ /*@PageBeforeInit@*/
|
|
|
|
+ ;(function () {
|
|
|
|
+ var GD = window.GD;
|
|
|
|
+ if (!GD || typeof GD.useParams !== 'function') return ;
|
|
|
|
+ GD.useParams();
|
|
|
|
+ })();
|
|
|
|
+ var backSize = {width: 1280, height: 1024};calcRatio(backSize, browserSize, ratio);_ratio = GD.getRatioWithRotation(0*Math.PI/180, ratio);
|
|
|
|
+var PageBackgroundtype = 'rect';
|
|
|
|
+var PageBackground = new ht.Node(),
|
|
|
|
+ PageBackgroundBorderWidth = 0*2;
|
|
|
|
+
|
|
|
|
+if (PageBackgroundtype === 'arc') {
|
|
|
|
+ PageBackgroundBorderWidth *= 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+PageBackground.setImage(GD.getRectJSON(1280*_ratio.ratioX, 1024*_ratio.ratioY, PageBackgroundtype, '@arcFrom@', '@arcTo@', '@arcClose@'));
|
|
|
|
+
|
|
|
|
+PageBackground.setPosition(640*ratio.ratioX, 512*ratio.ratioY);
|
|
|
|
+PageBackground.setSize(1280*_ratio.ratioX, 1024*_ratio.ratioY);
|
|
|
|
+PageBackground.s({
|
|
|
|
+ 'pixelPerfect':true
|
|
|
|
+/*@AddPara@*/
|
|
|
|
+});
|
|
|
|
+PageBackground.a('node.width', 1280*_ratio.ratioX);
|
|
|
|
+PageBackground.a('node.height', 1024*_ratio.ratioY);
|
|
|
|
+PageBackground.a('node.type', PageBackgroundtype);
|
|
|
|
+PageBackground.a('node.rect', [0, 0, 1280*_ratio.ratioX, 1024*_ratio.ratioY]);
|
|
|
|
+PageBackground.a('node.background', 'rgba(255,255,255,1)');
|
|
|
|
+PageBackground.a('node.gradientcolor', 'rgba(255,255,255,1)');
|
|
|
|
+PageBackground.a('node.gradient', '');
|
|
|
|
+PageBackground.a('node.borderwidth', PageBackgroundBorderWidth);
|
|
|
|
+PageBackground.a('node.color', 'rgba(0,0,0,1)');
|
|
|
|
+PageBackground.a('node.fillrect', [0,0,0,0]);
|
|
|
|
+PageBackground.a('node.fillbackcolor', 'rgba(0,0,0,0)');
|
|
|
|
+PageBackground.a('node.fillgradientcolor', 'rgba(0,0,0,0)');
|
|
|
|
+PageBackground.a('node.fillgradient', '');
|
|
|
|
+
|
|
|
|
+if (PageBackgroundtype !== 'rect') {
|
|
|
|
+ PageBackground.a('node.arcFrom', parseFloat('@arcFrom@'));
|
|
|
|
+ PageBackground.a('node.arcTo', parseFloat('@arcTo@'));
|
|
|
|
+ PageBackground.a('node.arcClose', '@arcClose@' === 'true' ? true : false);
|
|
|
|
+}
|
|
|
|
+if (PageBackgroundtype === 'arc') {
|
|
|
|
+ PageBackground.a('node.arcOval', true);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+PageBackground.setRotation(0*Math.PI/180);
|
|
|
|
+PageBackground.borderWidth = PageBackgroundBorderWidth;
|
|
|
|
+PageBackground.borderFillwidth = PageBackgroundBorderWidth;
|
|
|
|
+
|
|
|
|
+dataModel.add(PageBackground);
|
|
|
|
+PageBackground._nodename = 'PageBackground'
|
|
|
|
+PageBackground._nodeType = 'rect';
|
|
|
|
+zoomNodeList.push({
|
|
|
|
+ node: PageBackground,
|
|
|
|
+ attr: 'node.borderwidth'
|
|
|
|
+});
|
|
|
|
+(function (node, _img) {
|
|
|
|
+ var setWidth = node.setWidth,
|
|
|
|
+ setHeight = node.setHeight;
|
|
|
|
+
|
|
|
|
+ node.setWidth = function (width) {
|
|
|
|
+ if (width === this.getWidth()) return ;
|
|
|
|
+ var height = this.getHeight();
|
|
|
|
+
|
|
|
|
+ this.a('node.width', width);
|
|
|
|
+ this.a('node.rect', [0,0,width, height]);
|
|
|
|
+ setWidth.apply(this, arguments);
|
|
|
|
+ }
|
|
|
|
+ node.setHeight = function (height) {
|
|
|
|
+ if (height === this.getHeight()) return ;
|
|
|
|
+ var width = this.getWidth();
|
|
|
|
+
|
|
|
|
+ this.a('node.height', height);
|
|
|
|
+ this.a('node.rect', [0,0,width, height]);
|
|
|
|
+ setHeight.apply(this, arguments);
|
|
|
|
+ }
|
|
|
|
+})(PageBackground, PageBackground.getImage());PageBackground.s({'2d.selectable': false,'2d.movable': false});
|
|
|
|
+/*@GraphList@*/
|
|
|
|
+ var datas = dataModel.getDatas();
|
|
|
|
+ /*@PageInit@*/
|
|
|
|
+
|
|
|
|
+function DatarefreshTask(callback){
|
|
|
|
+ /*@DataVarText@*/
|
|
|
|
+ callback = callback || function () {};
|
|
|
|
+ if(varList.length <= 0){
|
|
|
|
+ return callback();
|
|
|
|
+ }
|
|
|
|
+ var ajaxdata = {};
|
|
|
|
+ var ajaxtype = 'GET';
|
|
|
|
+ var str = "http://" + webServiceIP + ":" + webServicePort + "/api/Snapshot?tagName=";
|
|
|
|
+ var para = "";
|
|
|
|
+ for(var i=0;i<varList.length;i++){
|
|
|
|
+ para = para + varList[i];
|
|
|
|
+ if(i!==varList.length-1)
|
|
|
|
+ para = para +',';
|
|
|
|
+ }
|
|
|
|
+ str = str + encodeURIComponent(para);
|
|
|
|
+
|
|
|
|
+ if (str.length > 2000) {
|
|
|
|
+ para = encodeURIComponent(para);
|
|
|
|
+ str = "http://" + webServiceIP + ":" + webServicePort + "/api/Snapshot/tags";
|
|
|
|
+ ajaxdata = {'': para};
|
|
|
|
+ ajaxtype = 'POST';
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $.ajax({
|
|
|
|
+ url: str ,
|
|
|
|
+ type: ajaxtype,
|
|
|
|
+ dataType: 'json',
|
|
|
|
+ data: ajaxdata,
|
|
|
|
+ cache: false,
|
|
|
|
+ success: function (data) {
|
|
|
|
+ if (data === null) return;
|
|
|
|
+ var snapshots = eval(data);
|
|
|
|
+ //判断快照是否为空
|
|
|
|
+ if (snapshots != null) {
|
|
|
|
+ for (var i = 0; i < snapshots.length; i++) {
|
|
|
|
+ var index = varList.indexOf (snapshots[i].TagName);
|
|
|
|
+ var tagName = snapshots[i].TagName.toLowerCase();
|
|
|
|
+
|
|
|
|
+ if(index >= 0 && index< varList.length){
|
|
|
|
+ if(parseFloat(snapshots[i].Value).toString()==snapshots[i].Value){
|
|
|
|
+ varListObj[tagName] = VarValue[index] = parseFloat(snapshots[i].Value);
|
|
|
|
+ VarSnapshotTime[tagName]=snapshots[i].Time;
|
|
|
|
+ }else{
|
|
|
|
+ varListObj[tagName] = VarValue[index] = snapshots[i].Value;
|
|
|
|
+ VarSnapshotTime[tagName]=snapshots[i].Time;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ complete: function (XHR, TS) {
|
|
|
|
+ XHR = null;
|
|
|
|
+ callback();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+}
|
|
|
|
+;(function () {
|
|
|
|
+ var i = 0;
|
|
|
|
+ function getdata() {
|
|
|
|
+ DatarefreshTask(function () {
|
|
|
|
+ i++;
|
|
|
|
+ Timer1sCmd();
|
|
|
|
+ Timer100msCmd();
|
|
|
|
+ Timer500msCmd();
|
|
|
|
+ if (i <= 4) {
|
|
|
|
+ setTimeout(getdata, 50);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ setTimeout(getdata, 20);
|
|
|
|
+})();
|
|
|
|
+intervalTimers.push(setInterval(DatarefreshTask, 500));
|
|
|
|
+/*@DataRefresh@*/
|
|
|
|
+
|
|
|
|
+function GetTagsProperty(){
|
|
|
|
+ /*@DataVarText@*/
|
|
|
|
+ if(varList.length <= 0){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ var ajaxtype = 'GET';
|
|
|
|
+ var ajaxdata = {};
|
|
|
|
+ var str = "http://" + webServiceIP + ":" + webServicePort + "/api/Point?tagName=";
|
|
|
|
+ var para = "";
|
|
|
|
+ for(var i=0;i<varList.length;i++){
|
|
|
|
+ para = para + varList[i];
|
|
|
|
+ if(i!==varList.length-1)
|
|
|
|
+ para = para +',';
|
|
|
|
+ }
|
|
|
|
+ str = str + encodeURIComponent(para);
|
|
|
|
+ if (str.length > 2000) {
|
|
|
|
+ para = encodeURIComponent(para);
|
|
|
|
+ str = "http://" + webServiceIP + ":" + webServicePort + "/api/Point/property";
|
|
|
|
+ ajaxdata = {'': para};
|
|
|
|
+ ajaxtype = 'POST';
|
|
|
|
+ }
|
|
|
|
+ $.ajax({
|
|
|
|
+ url: str ,
|
|
|
|
+ type: ajaxtype,
|
|
|
|
+ dataType: 'json',
|
|
|
|
+ data: ajaxdata,
|
|
|
|
+ cache: false,
|
|
|
|
+ success: function (data) {
|
|
|
|
+ if (data === null) return;
|
|
|
|
+ for(var i=0;i<data.length;i++){
|
|
|
|
+ var basePointInfo=data[i].BasePointInfo;
|
|
|
|
+ tagInfoDic[basePointInfo.TableDotTag.toLowerCase()]=basePointInfo;
|
|
|
|
+ // console.log(tagInfoDic);
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ complete: function (XHR, TS) {
|
|
|
|
+ XHR = null;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+}
|
|
|
|
+GetTagsProperty();
|
|
|
|
+window.GD && (GD.GetTagsProperty = GetTagsProperty);
|
|
|
|
+/*@TagInfoDic@*/
|
|
|
|
+ var syscurrentTime="";
|
|
|
|
+function getCurrentTime(timeformat){
|
|
|
|
+ syscurrentTime= moment().format(timeformat);
|
|
|
|
+ if(timeformat=="d"){
|
|
|
|
+ if(syscurrentTime==1){
|
|
|
|
+ syscurrentTime="星期一";
|
|
|
|
+ }
|
|
|
|
+ if(syscurrentTime==2){
|
|
|
|
+ syscurrentTime="星期二";
|
|
|
|
+ }
|
|
|
|
+ if(syscurrentTime==3){
|
|
|
|
+ syscurrentTime="星期三";
|
|
|
|
+ }
|
|
|
|
+ if(syscurrentTime==4){
|
|
|
|
+ syscurrentTime="星期四";
|
|
|
|
+ }
|
|
|
|
+ if(syscurrentTime==5){
|
|
|
|
+ syscurrentTime="星期五";
|
|
|
|
+ }
|
|
|
|
+ if(syscurrentTime==6){
|
|
|
|
+ syscurrentTime="星期六";
|
|
|
|
+ }
|
|
|
|
+ if(syscurrentTime==7){
|
|
|
|
+ syscurrentTime="星期日";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ getCurrentTime();
|
|
|
|
+/*@SysCurrentTime@*/
|
|
|
|
+ var Counter10ms = 0;
|
|
|
|
+var Counter100ms = 0;
|
|
|
|
+var Counter500ms = 0;
|
|
|
|
+var Counter1s = 0;
|
|
|
|
+var Counter5s = 0;
|
|
|
|
+
|
|
|
|
+function Timer10msCmd() {
|
|
|
|
+ Counter10ms++;
|
|
|
|
+ /*@Timer10ms@*/
|
|
|
|
+}
|
|
|
|
+// intervalTimers.push(setInterval(Timer10msCmd, 10));
|
|
|
|
+
|
|
|
|
+function Timer100msCmd() {
|
|
|
|
+ Counter100ms++;
|
|
|
|
+ /*@Timer100ms@*/
|
|
|
|
+ // graphView.redraw();
|
|
|
|
+}
|
|
|
|
+intervalTimers.push(setInterval(Timer100msCmd, 100));
|
|
|
|
+
|
|
|
|
+function Timer500msCmd() {
|
|
|
|
+ Counter500ms++;
|
|
|
|
+ /*@Timer500ms@*/
|
|
|
|
+ // graphView.redraw();
|
|
|
|
+}
|
|
|
|
+intervalTimers.push(setInterval(Timer500msCmd, 500));
|
|
|
|
+
|
|
|
|
+function Timer1sCmd() {
|
|
|
|
+ Counter1s++;
|
|
|
|
+ if (moment(Date.now()).format('HH:mm:ss') === '23:59:59' && Counter1s > 5) location.reload();
|
|
|
|
+ /*@Timer1000ms@*/
|
|
|
|
+ // graphView.redraw();
|
|
|
|
+}
|
|
|
|
+Timer1sCmd();
|
|
|
|
+intervalTimers.push(setInterval(Timer1sCmd, 1000));
|
|
|
|
+
|
|
|
|
+function Timer5sCmd() {
|
|
|
|
+ Counter5s++;
|
|
|
|
+ /*@Timer5000ms@*/
|
|
|
|
+ // graphView.redraw();
|
|
|
|
+}
|
|
|
|
+// intervalTimers.push(setInterval(Timer5sCmd, 5000));
|
|
|
|
+/*@EventTimer@*/
|
|
|
|
+ //graphView.setInteractors(null);
|
|
|
|
+if (!!view) {
|
|
|
|
+ view.eventList = view.eventList || {};
|
|
|
|
+}
|
|
|
|
+function blockDataFilter (data) {
|
|
|
|
+ return !(data instanceof ht.Block || data.isLibBackground || data.__clickable === false);
|
|
|
|
+}
|
|
|
|
+var type ='mousedown';
|
|
|
|
+function doMouseDown (e, origin) {
|
|
|
|
+ if(!ht.Default.isLeftButton(e)){return;}
|
|
|
|
+ mouseX=e.clientX;
|
|
|
|
+ mouseY=e.clientY;
|
|
|
|
+ origin = origin || graphView;
|
|
|
|
+ window.GD && GD.hideTagInfo();
|
|
|
|
+ var data = origin.getDataAt(e, blockDataFilter);
|
|
|
|
+ if (data && data.__parentLib) {
|
|
|
|
+ _libModel.getDataByKey(data.__parentLib).onEvent(e, data, 'mousedown', origin);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ /*@EvnentMouseDown@*/
|
|
|
|
+}
|
|
|
|
+view.eventList[type] = doMouseDown;
|
|
|
|
+view['on'+type] = function(e){
|
|
|
|
+ doMouseDown(e);
|
|
|
|
+ e.preventDefault();
|
|
|
|
+ };
|
|
|
|
+type ='mouseup';
|
|
|
|
+function doMouseUp (e, origin) {
|
|
|
|
+ if(!ht.Default.isLeftButton(e)){return;}
|
|
|
|
+ origin = origin || graphView;
|
|
|
|
+ var data = origin.getDataAt(e, blockDataFilter);
|
|
|
|
+ if (data && data.__parentLib) {
|
|
|
|
+ _libModel.getDataByKey(data.__parentLib).onEvent(e, data, 'mouseup', origin);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ /*@EvnentMouseUp@*/
|
|
|
|
+}
|
|
|
|
+view.eventList[type] = doMouseUp;
|
|
|
|
+view['on'+type] = function(e){
|
|
|
|
+ doMouseUp(e);
|
|
|
|
+ e.preventDefault();
|
|
|
|
+ };
|
|
|
|
+type ='click';
|
|
|
|
+function doClick (e, origin) {
|
|
|
|
+ if(!ht.Default.isLeftButton(e)){return;}
|
|
|
|
+ origin = origin || graphView;
|
|
|
|
+ var data = origin.getDataAt(e, blockDataFilter);
|
|
|
|
+ if (data && data.__parentLib) {
|
|
|
|
+ _libModel.getDataByKey(data.__parentLib).onEvent(e, data, 'click', origin);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ /*@EvnentClicked@*/
|
|
|
|
+}
|
|
|
|
+view.eventList[type] = doClick;
|
|
|
|
+view['on'+type] = function(e){
|
|
|
|
+ doClick(e);
|
|
|
|
+ e.preventDefault();
|
|
|
|
+ };
|
|
|
|
+type ='mousemove';
|
|
|
|
+var objMouseOn = null, _objMouseOn = null;
|
|
|
|
+function doMouseMove (e, origin, offset) {
|
|
|
|
+ var positon, data, zoom, _data, libData;
|
|
|
|
+
|
|
|
|
+ origin = origin || graphView;
|
|
|
|
+ position=origin.getLogicalPoint(e);
|
|
|
|
+ zoom = graphView.getZoom();
|
|
|
|
+ if (origin === graphView) {
|
|
|
|
+ mouseX= position.x + origin.tx();
|
|
|
|
+ mouseY = position.y + origin.ty();
|
|
|
|
+ } else {
|
|
|
|
+ offset = offset || {x: 0, y: 0};
|
|
|
|
+ mouseX = position.x / zoom + offset.x + origin.tx();
|
|
|
|
+ mouseY = position.y / zoom + offset.y + origin.ty();
|
|
|
|
+ }
|
|
|
|
+ data = origin.getDataAt(e, function (data) {return !(data instanceof ht.Block)});
|
|
|
|
+ if(data === objMouseOn || data === _objMouseOn) return;
|
|
|
|
+
|
|
|
|
+ // 如果是图元内的小图形,给libData赋值为图元本身,方便下面使用
|
|
|
|
+ if (data && data.__parentLib && _libModel.getDataByKey(data.__parentLib)) {
|
|
|
|
+ _data = data;
|
|
|
|
+ data = libData = _libModel.getDataByKey(_data.__parentLib);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*@EvnentMouseLeave@*/
|
|
|
|
+ if (objMouseOn && objMouseOn._baseClass && objMouseOn._baseClass.match(/^ht.lib/)) {
|
|
|
|
+ objMouseOn.onEvent(e, _data, 'mousemove', origin, offset, _objMouseOn);
|
|
|
|
+ }
|
|
|
|
+ objMouseOn = data;
|
|
|
|
+ _objMouseOn = _data;
|
|
|
|
+ /*@EvnentMouseOver@*/
|
|
|
|
+ if (data && data._baseClass && data._baseClass.match(/^ht.lib/)) {
|
|
|
|
+ data.onEvent(e, _data, 'mousemove', origin, offset, _objMouseOn);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+view.eventList[type] = doMouseMove;
|
|
|
|
+view['on'+type] = function(e){
|
|
|
|
+ doMouseMove(e);
|
|
|
|
+ e.preventDefault();
|
|
|
|
+ };
|
|
|
|
+window.onkeydown = function doKeyDown(e) {
|
|
|
|
+ var keyID = e.keyCode ? e.keyCode :e.which;
|
|
|
|
+ //if(keyID === 87) { }
|
|
|
|
+ /*@EvnentKeyDown@*/
|
|
|
|
+ // if (keyID === 27 && graphView) {
|
|
|
|
+ // graphView.setZoom(1);
|
|
|
|
+ // graphView.tx(0);
|
|
|
|
+ // graphView.ty(0);
|
|
|
|
+ // }
|
|
|
|
+ return;
|
|
|
|
+}
|
|
|
|
+/*@Event@*/
|
|
|
|
+
|
|
|
|
+ /*@Declare@*/
|
|
|
|
+var contextmenu = new ht.widget.ContextMenu();
|
|
|
|
+contextmenu.contextMenuHoverBackground='rgb(104,216,255)';
|
|
|
|
+contextmenu.contextMenuBackground='rgb(255,255,255)';
|
|
|
|
+contextmenu.contextMenuHoverLabelColor='rgb(255,255,255)';
|
|
|
|
+contextmenu.contextMenuLabelColor='rgb(48,48,48)';
|
|
|
|
+contextmenu.beforeShow = function(e, gv) {
|
|
|
|
+ gv = gv || graphView;
|
|
|
|
+ if (e.originEvent && e.originEvent.currentTarget && e.originEvent.currentTarget.className === 'main') {
|
|
|
|
+ gv = graphView;
|
|
|
|
+ }
|
|
|
|
+ this.setItems(null);
|
|
|
|
+ window.GD && GD.hideTagInfo();
|
|
|
|
+ var data = gv.getDataAt(e) || graphView.getDataAt(e);
|
|
|
|
+ if (data && data.__parentLib) {
|
|
|
|
+ _libModel.getDataByKey(data.__parentLib).onEvent(e, data, 'contextmenu', gv, {}, {}, this);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ //if(false);
|
|
|
|
+ /*@SetNodeContextMenu@*/
|
|
|
|
+ /*@SetPageContextMenu@*/
|
|
|
|
+};
|
|
|
|
+contextmenu.afterShow = function (e) {
|
|
|
|
+ var fontSize = 14,
|
|
|
|
+ screenWidth = window.screen.width,
|
|
|
|
+ screenHeight = window.screen.height,
|
|
|
|
+ rx = screenWidth / 1920,
|
|
|
|
+ ry = screenHeight / 1080,
|
|
|
|
+ itemHeight = 30 * ry,
|
|
|
|
+ fontFamily = '',
|
|
|
|
+ width = 150 * rx;
|
|
|
|
+ itemHeight = itemHeight > 30 ? itemHeight : 30;
|
|
|
|
+ var $contextMenu = $(this.getView());
|
|
|
|
+ $contextMenu.find('.contextmenu-item-icon').css({
|
|
|
|
+ width: 14,
|
|
|
|
+ height: 14,
|
|
|
|
+ marginRight: 10
|
|
|
|
+ });
|
|
|
|
+ $contextMenu.find('li.menu-item').css({
|
|
|
|
+ fontSize: fontSize,
|
|
|
|
+ fontWeight: 600,
|
|
|
|
+ height: itemHeight,
|
|
|
|
+ minHeight: 25,
|
|
|
|
+ lineHeight: itemHeight + 'px',
|
|
|
|
+ fontFamily: fontFamily,
|
|
|
|
+ padding: 0
|
|
|
|
+ });
|
|
|
|
+ $contextMenu.find('ul').css({
|
|
|
|
+ width: width,
|
|
|
|
+ minWidth: 100
|
|
|
|
+ });
|
|
|
|
+ contextmenu.setLabelMaxWidth((width > 120 ? width : 120) - 40);
|
|
|
|
+};
|
|
|
|
+view.eventList && (view.eventList['contextMenu'] = contextmenu);
|
|
|
|
+contextmenu.addTo(view);
|
|
|
|
+contextMenuOnViewList.push(contextmenu);
|
|
|
|
+/*@ControlContextMenu@*/
|
|
|
|
+ graphView.getSelectWidth = function() { return 0; };
|
|
|
|
+
|
|
|
|
+ (function () {
|
|
|
|
+ var $mainContainer,
|
|
|
|
+ mainContainerHeight,
|
|
|
|
+ mainContainerWidth,
|
|
|
|
+ originHeight,
|
|
|
|
+ originWidth,
|
|
|
|
+ ratioX,
|
|
|
|
+ ratioY,
|
|
|
|
+ isPageContainer = false;
|
|
|
|
+ graphView._pageBackgroundNode = PageBackground;
|
|
|
|
+ if (pageSizeRatioValue !== 'adaptBrowser') {
|
|
|
|
+ window.GD && GD.setPageToCenterOrLeftTop();
|
|
|
|
+ }
|
|
|
|
+ function throttle () {
|
|
|
|
+ var timer = null;
|
|
|
|
+
|
|
|
|
+ return function () {
|
|
|
|
+ timer && clearTimeout(timer);
|
|
|
|
+ timer = setTimeout(function () {
|
|
|
|
+ var value = GD.getParams('pageSizeRatioValue') || {};
|
|
|
|
+ value = value.value || PageAdaptMode.value;
|
|
|
|
+ GD.setPageSizeWithRatio(value, ratio, backSize);
|
|
|
|
+ }, 200)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ if (window.parent && window.parent.openDialog) {
|
|
|
|
+ autoAdaptive = false;
|
|
|
|
+ }
|
|
|
|
+ } catch (error) {}
|
|
|
|
+ try {
|
|
|
|
+ if (window.parent && window.parent.pageContainer) {
|
|
|
|
+ graphView.handleScroll = function (data) {
|
|
|
|
+ var t = graphView.ty() - data.deltaY;
|
|
|
|
+ var contentSize = graphView.getContentRect();
|
|
|
|
+ var min = contentSize.height - graphView.getHeight() + 50;
|
|
|
|
+
|
|
|
|
+ if (min <= 50)
|
|
|
|
+ return ;
|
|
|
|
+ graphView.setTranslate(0, t, true);
|
|
|
|
+ graphView.setScrollBarSize(8);
|
|
|
|
+ }
|
|
|
|
+ graphView.adjustTranslateY = function (value) {
|
|
|
|
+ var contentSize = graphView.getContentRect();
|
|
|
|
+ var min = graphView.getHeight() - contentSize.height - 50;
|
|
|
|
+
|
|
|
|
+ value = value > 0 ? 0 : value;
|
|
|
|
+ value = value < min ? min : value;
|
|
|
|
+ return value;
|
|
|
|
+ }
|
|
|
|
+ autoAdaptive = false;
|
|
|
|
+ isPageContainer = true;
|
|
|
|
+ }
|
|
|
|
+ } catch (error) {}
|
|
|
|
+ if (autoAdaptive !== false && autoAdaptive !== 'false' && autoAdaptive !== 'False') {
|
|
|
|
+ graphView.setScrollBarVisible(false);
|
|
|
|
+ if (!graphView._pannable) {
|
|
|
|
+ graphView.adjustTranslateX = function () {return 0};
|
|
|
|
+ graphView.adjustTranslateY = function () {return 0};
|
|
|
|
+ }
|
|
|
|
+ $window.off('resize').on('resize', throttle());
|
|
|
|
+ // setTimeout(resizePage, 100);
|
|
|
|
+ showPage();
|
|
|
|
+ } else {
|
|
|
|
+ showPage();
|
|
|
|
+ graphView.fitContent(false,0,true);
|
|
|
|
+ $window.off('resize').on('resize', function (e) {
|
|
|
|
+ if (!!isPageContainer) {
|
|
|
|
+ window.parent.postMessage('getZoom', '*');
|
|
|
|
+ } else {
|
|
|
|
+ graphView.fitContent(false,0,true);
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ var graphViewTimer = null;
|
|
|
|
+ // 监听鼠标缩放页面事件
|
|
|
|
+ graphView.adjustZoom = function (value) {
|
|
|
|
+ graphViewTimer && clearTimeout(graphViewTimer);
|
|
|
|
+ graphViewTimer = setTimeout(function () {
|
|
|
|
+ $window.trigger('graphViewZoomEnded', [value]);
|
|
|
|
+ GD.resetNodeBorderWidth(zoomNodeList, 1/value);
|
|
|
|
+ }, 80)
|
|
|
|
+ return value;
|
|
|
|
+ }
|
|
|
|
+ $window.off('customEventResizeNodes').on('customEventResizeNodes', function (e) {
|
|
|
|
+ var data = e.args;
|
|
|
|
+ var value = GD.getParams('pageSizeRatioValue') || {};
|
|
|
|
+ value = value.value || PageAdaptMode.value;
|
|
|
|
+ GD.setPageSizeWithRatio(value, ratio, backSize);
|
|
|
|
+ graphView.setZoom(data.zoom);
|
|
|
|
+ graphView.tx(0);
|
|
|
|
+ graphView.ty(0);
|
|
|
|
+ });
|
|
|
|
+ $window.off('beforeunload').on("beforeunload", function( event ) {
|
|
|
|
+ try {
|
|
|
|
+ sessionStorage.setItem(location.pathname, JSON.stringify(VarValue));
|
|
|
|
+ } catch (error) {console.log(error.message);}
|
|
|
|
+ ;(function () {
|
|
|
|
+ var GD = window.GD;
|
|
|
|
+ if (!GD || typeof GD.removeParams !== 'function') return ;
|
|
|
|
+ GD.removeParams();
|
|
|
|
+ GD.removeParams('pageSizeRatioValue');
|
|
|
|
+ })();
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+ graphView.setScrollBarColor('rgba(211,211,211,1)');
|
|
|
|
+ graphView.setAutoHideScrollBar(false);
|
|
|
|
+ GD.autoToggleScrollBar();
|
|
|
|
+ // ;(function () {
|
|
|
|
+ // var oriX=browserSize.width/backSize.width;
|
|
|
|
+ // var oriY=browserSize.height/backSize.height;
|
|
|
|
+ // var json = [
|
|
|
|
+ // {
|
|
|
|
+ // label: "25%",
|
|
|
|
+ // action: function(item, event) {
|
|
|
|
+ // GD.setPageSizeWithRatio(0.25);
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // label: "50%",
|
|
|
|
+ // action: function(item, event) {
|
|
|
|
+ // GD.setPageSizeWithRatio(0.5);
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // label: "100%",
|
|
|
|
+ // action: function(item, event) {
|
|
|
|
+ // GD.setPageSizeWithRatio(1);
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // label: "200%",
|
|
|
|
+ // action: function(item, event) {
|
|
|
|
+ // GD.setPageSizeWithRatio(2);
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+
|
|
|
|
+ // {
|
|
|
|
+ // label: "400%",
|
|
|
|
+ // action: function(item, event) {
|
|
|
|
+ // GD.setPageSizeWithRatio(4);
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+
|
|
|
|
+ // {
|
|
|
|
+ // label: "实际大小",
|
|
|
|
+ // action: function(item, event) {
|
|
|
|
+ // GD.setPageSizeWithRatio('originSize');
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // label: '适合屏幕',
|
|
|
|
+ // action: function (item, event) {
|
|
|
|
+ // GD.setPageSizeWithRatio('adaptBrowser');
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // label: "适合宽度",
|
|
|
|
+ // action: function(item, event) {
|
|
|
|
+ // GD.setPageSizeWithRatio('adaptWidth');
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // label: "适合高度",
|
|
|
|
+ // action: function(item, event) {
|
|
|
|
+ // GD.setPageSizeWithRatio('adaptHeight');
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // ];
|
|
|
|
+
|
|
|
|
+ // var zoomMenu = new ht.widget.ContextMenu(json);
|
|
|
|
+ // zoomMenu.disableGlobalKey();
|
|
|
|
+ // zoomMenu.setLabelMaxWidth(100);
|
|
|
|
+ // zoomMenu.addTo($('.main')[0]);
|
|
|
|
+ // })();
|
|
|
|
+
|
|
|
|
+ (function () {
|
|
|
|
+ var btnstr="停止数据刷新";
|
|
|
|
+ var json = [], item1, item2;
|
|
|
|
+ item1 = {
|
|
|
|
+ label: btnstr,
|
|
|
|
+ action: function(item, event) {
|
|
|
|
+ if(btnstr=="停止数据刷新"){
|
|
|
|
+ clearInterval(intervalTimers[0]);
|
|
|
|
+ intervalTimers.shift(intervalTimers[0]);
|
|
|
|
+ btnstr="开启数据刷新";
|
|
|
|
+ json[0].label=btnstr;
|
|
|
|
+ }else{
|
|
|
|
+ intervalTimers.unshift(setInterval(DatarefreshTask, 1000));
|
|
|
|
+ btnstr="停止数据刷新";
|
|
|
|
+ json[0].label=btnstr;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ item2 = {
|
|
|
|
+ label: "下载本页所有测点",
|
|
|
|
+ action: function(item, event) {
|
|
|
|
+ var time = new Date();
|
|
|
|
+ var t=time.getFullYear() + "-" + (time.getMonth() + 1) + "-" + time.getDate() + " " + time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds();
|
|
|
|
+ var str= "测点名\n";
|
|
|
|
+ for(var i=0;i<varList.length;i++){
|
|
|
|
+ str+=varList[i]+"\n"
|
|
|
|
+ }
|
|
|
|
+ str = encodeURIComponent(str);
|
|
|
|
+ var link = document.createElement("a");
|
|
|
|
+ link.download = t+"测点名称集合.csv";
|
|
|
|
+ link.href ="data:text/csv;charset=utf-8,\ufeff"+str;
|
|
|
|
+ link.click();
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ item3 = {
|
|
|
|
+ label: "历史回放",
|
|
|
|
+ action: function(item, event) {
|
|
|
|
+ createHisBackDialog(DatarefreshTask);
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ item4 = {
|
|
|
|
+ label: "保存页面图片",
|
|
|
|
+ action: function(item, event) {
|
|
|
|
+ savehtmlToJpg();
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ if (false) {
|
|
|
|
+ json.push(item1);
|
|
|
|
+ }
|
|
|
|
+ if (false) {
|
|
|
|
+ json.push(item2);
|
|
|
|
+ }
|
|
|
|
+ if(false){
|
|
|
|
+ json.push(item3);
|
|
|
|
+ }
|
|
|
|
+ if(false){
|
|
|
|
+ json.push(item4);
|
|
|
|
+ }
|
|
|
|
+ function addContextMenu() {
|
|
|
|
+ var dataMenu = new ht.widget.ContextMenu();
|
|
|
|
+
|
|
|
|
+ dataMenu.enableGlobalKey();
|
|
|
|
+ dataMenu.setLabelMaxWidth(120);
|
|
|
|
+ dataMenu.addTo(view);
|
|
|
|
+ contextMenuOnViewList.push(dataMenu);
|
|
|
|
+ dataMenu.beforeShow=function(e){
|
|
|
|
+ if(e.originEvent.target.className=="main"){
|
|
|
|
+ if(typeof(graphView.getDataAt(e))=="undefined"){
|
|
|
|
+ this.setItems(json);
|
|
|
|
+ }else if(typeof(graphView.getDataAt(e)._attrObject)=="undefined"){
|
|
|
|
+ this.setItems(json);
|
|
|
|
+ }else{
|
|
|
|
+ this.setItems(null);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ this.setItems(null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ if (json.length > 0) {
|
|
|
|
+ addContextMenu();
|
|
|
|
+ }
|
|
|
|
+ })();
|
|
|
|
+
|
|
|
|
+ })();
|
|
|
|
+}
|