Bladeren bron

Merge branch 'beta' of https://git.cocorobo.cn/CocoRoboLabs/CocoRoboDesktop into beta

lsc 1 jaar geleden
bovenliggende
commit
257eff06ff
6 gewijzigde bestanden met toevoegingen van 132 en 70 verwijderingen
  1. 15 0
      js/Controls/Basic.js
  2. 0 0
      js/Controls/Basic.min.js
  3. 39 39
      js/UForm/Event.js
  4. 41 24
      node/message.js
  5. 30 0
      touchevent.js
  6. 7 7
      uform.js

+ 15 - 0
js/Controls/Basic.js

@@ -2113,6 +2113,21 @@ U.UF.UI.form.prototype = {
             _formel.appendChild(_contentel);
         }
         else {
+            //有特殊关闭处理的,需要重新加载
+            if (this.closecallback) {
+                try {
+                    if (this.content.tagName == "IFRAME") {
+                        this.content.src += '';
+                    }
+                    else {
+                        $("iframe", _this.content)[0].src += '';
+                    }
+                }
+                catch (e) {
+
+                }
+
+            }
             _formel = _replaceel;
         }
         //如果没有设置top和left那么居中弹出

File diff suppressed because it is too large
+ 0 - 0
js/Controls/Basic.min.js


+ 39 - 39
js/UForm/Event.js

@@ -101,10 +101,10 @@ U.UF.EV.scrollLoad = function (obj, fun) {
 */
 U.UF.EV.scrollLoad.scrollTop = function (obj) {
     return Math.max(//取最大值
-    //chrome
-       U.selectEl(obj)[0].scrollTop,
-    //firefox/IE
-       document.documentElement.scrollTop
+        //chrome
+        U.selectEl(obj)[0].scrollTop,
+        //firefox/IE
+        document.documentElement.scrollTop
     );
 }
 
@@ -214,41 +214,41 @@ U.UF.EV.simulateMouseClicks = function (el, str) {
         if (_event) { //原本已经具有事件event来源的情况下处理
             //执行mouse事件处理
             _mousevent.initMouseEvent(
-                            str,
-                            true,
-                            true,
-                            window,
-                            _event.detail,
-                            _event.screenX,
-                            _event.screenY,
-                            _event.clientX,
-                            _event.clientY,
-                            _event.ctrlKey,
-                            _event.altKey,
-                            _event.shiftKey,
-                            _event.metaKey,
-                            _event.button,
-                            _event.relatedTarget
+                str,
+                true,
+                true,
+                window,
+                _event.detail,
+                _event.screenX,
+                _event.screenY,
+                _event.clientX,
+                _event.clientY,
+                _event.ctrlKey,
+                _event.altKey,
+                _event.shiftKey,
+                _event.metaKey,
+                _event.button,
+                _event.relatedTarget
             );
         }
         else {
             //没有事件来源event的处理
             _mousevent.initMouseEvent(
-                            str,
-                            true,
-                            true,
-                            document.defaultView,
-                            0,
-                            0,
-                            0,
-                            0,
-                            0,
-                            false,
-                            false,
-                            false,
-                            false,
-                            0,
-                            el
+                str,
+                true,
+                true,
+                document.defaultView,
+                0,
+                0,
+                0,
+                0,
+                0,
+                false,
+                false,
+                false,
+                false,
+                0,
+                el
             )
         }
         //分发事件
@@ -290,7 +290,7 @@ U.UF.EV.simulatePhoneTouch = function (el, str, obj) {
         }
         //chrome
         _arr = [
-        //chrome
+            //chrome
             [
                 event.touches, //当前屏幕上所有触摸点的列表
                 event.targetTouches, //当前对象上所有触摸点的列表
@@ -306,7 +306,7 @@ U.UF.EV.simulatePhoneTouch = function (el, str, obj) {
                 event.shiftKey,
                 event.metaKey
             ],
-        //safari
+            //safari
             [
                 str,
                 true,
@@ -327,7 +327,7 @@ U.UF.EV.simulatePhoneTouch = function (el, str, obj) {
                 event.scale,
                 event.rotation
             ],
-        //firefox
+            //firefox
             [
                 str,
                 true,
@@ -341,8 +341,8 @@ U.UF.EV.simulatePhoneTouch = function (el, str, obj) {
                 event.touches,
                 event.targetTouches,
                 event.changedTouches
-                ],
-            ];
+            ],
+        ];
         //由于浏览器对直接执行事件的兼容有三种方案,这里是对三种方案的循环添加
         for (i = 0; i < _arr.length; i++) {
             //直接执行

+ 41 - 24
node/message.js

@@ -609,32 +609,47 @@ us.deluser = function (userid, pageid) {
 * 用户下线,用计时器实时的监控用户是否在线
 */
 us.offLine = function () {
-    var i, j, istrue = true;
+    var i, j;
     var _user, _connect = us.connect;
     //循环目前所有的连接用户
     for (i in _connect) {
         _user = _connect[i];
         for (j in _user) {
+            console.log("====================offline======================");
+            console.log(i);
+            console.log(j);
+            console.log(_user[j].response.finished);
+            console.log((_user[j].response.connection == null || _user[j].response.connection.destroyed));
             //判断用户已下线
-            if (_user[j].response.connection == null || _user[j].response.connection.destroyed) {
-                console.log("================2===============");
-                console.log(i);
-                console.log(j);
-                us.deluser(i, j); //删除用户的数据
-                delete _user[j]
+            if (_user[j].response.finished || (_user[j].response.connection == null || _user[j].response.connection.destroyed)) {
+                //if (_user[j].response.connection == null || _user[j].response.connection.destroyed) {
+                //等待五秒后,判断用户是否重连,重连的用户不为下线用户
+                us.offLineByUser(i, j, _user);
             }
         }
-        for (j in _user) { istrue = false; break }
-        //这个用户下所有的连接用户都不在了
-        if (istrue) {
-            //用户登录数据清理,用于已经下线
-            delete us.user[i];
-            delete us.connect[i];
-        }
-        istrue = true;
     }
 }
 
+/**
+* 用户下线
+*/
+us.offLineByUser = function (i, j, _user) {
+    setTimeout(() => {
+        if (_user[j].response.finished || (_user[j].response.connection == null || _user[j].response.connection.destroyed)) {
+            var k, istrue = true;
+            us.deluser(i, j); //删除用户的数据
+            delete _user[j];
+            for (k in _user) { istrue = false; break }
+            //这个用户下所有的连接用户都不在了
+            if (istrue) {
+                //用户登录数据清理,用于已经下线
+                delete us.user[i];
+                delete us.connect[i];
+            }
+        }
+    }, 5000);
+}
+
 /**
 * 获取用户传参异步
 *
@@ -1807,15 +1822,17 @@ us.logout = function (response, userid, pageid) {
     var _user = us.connect[userid];
     //循环目前所有的连接用户
     us.deluser(userid, pageid); //删除用户的数据
-    delete _user[pageid]
-    for (j in _user) { istrue = false; break }
-    //这个用户下所有的连接用户都不在了
-    if (istrue) {
-        //用户登录数据清理,用于已经下线
-        delete us.user[userid];
-        delete us.connect[userid];
+    if (_user) {
+        delete _user[pageid]
+        for (j in _user) { istrue = false; break }
+        //这个用户下所有的连接用户都不在了
+        if (istrue) {
+            //用户登录数据清理,用于已经下线
+            delete us.user[userid];
+            delete us.connect[userid];
+        }
+        console.log(pageid)
     }
-    console.log(pageid)
     response.end('logout'); //响应退出请求
 
     // var i, j, _docinfo,
@@ -2617,7 +2634,7 @@ us.createGuid = function () {
 **/
 us.server.listen('1473', '', function () {
     //用户下线监控
-    setInterval(function () { us.offLine() }, 10000);
+    setInterval(function () { us.offLine() }, 60000);
     //在控制台输出监听提示
     console.log("开始监听" + us.server.address().port + "......");
 });

+ 30 - 0
touchevent.js

@@ -0,0 +1,30 @@
+
+
+function touchHandler(event) {
+    event.stopPropagation();
+    var touches = event.changedTouches,
+        first = touches[0],
+        type = "";
+    switch (event.type) {
+        case "touchstart": type = "mousedown"; break;
+        case "touchmove": type = "mousemove"; break;
+        case "touchend": type = "mouseup"; break;
+        default: return;
+    }
+    var simulatedEvent = new MouseEvent(type, { "altKey": false, "button": 0, "buttons": 0, "clientX": first.clientX, "clientY": first.clientY, "ctrlKey": false, "metaKey": false, "relatedTarget": first, "screenX": first.screenX, "screenY": first.screenY, "shiftKey": false });
+
+    // var simulatedEvent = document.createEvent("MouseEvent");
+    // simulatedEvent.initMouseEvent(type, true, true, window, 1,
+    //     first.screenX, first.screenY,
+    //     first.clientX, first.clientY, false,
+    //     false, false, false, 0/*left*/, null);
+
+    first.target.dispatchEvent(simulatedEvent);
+}
+
+function init() {
+    document.addEventListener("touchstart", touchHandler, true);
+    document.addEventListener("touchmove", touchHandler, true);
+    document.addEventListener("touchend", touchHandler, true);
+    document.addEventListener("touchcancel", touchHandler, true);
+}

+ 7 - 7
uform.js

@@ -10857,13 +10857,13 @@ U.UF.F.windowMinimize = function (el) {
 */
 U.UF.F.closeWindow = function (el, str) {
     var _el = U.selectEl(el); //获取整个窗体的元素
-    //    if (_el[0].style.display != "none" && str == "remove") {//判断窗体是否被隐藏,并且操作指令为remove
-    //        _el.remove(); //移除整个窗体
-    //        _el = null; //移除整个窗体
-    //    }
-    //    else {
-    _el.css("display", "none");
-    //    }
+    if (_el[0].style.display != "none" && str == "remove") {//判断窗体是否被隐藏,并且操作指令为remove
+        _el.remove(); //移除整个窗体
+        _el = null; //移除整个窗体
+    }
+    else {
+        _el.css("display", "none");
+    }
 }
 
 /*

Some files were not shown because too many files changed in this diff