From 20e9ed291e6ff2eceed90ee41e0a9cb4ccb2a28b Mon Sep 17 00:00:00 2001
From: whychdw <49690745@qq.com>
Date: 星期四, 10 十月 2019 09:57:15 +0800
Subject: [PATCH] 提交内容

---
 src/js/common_functions.js |  112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 110 insertions(+), 2 deletions(-)

diff --git a/src/js/common_functions.js b/src/js/common_functions.js
index ffab002..54247ce 100644
--- a/src/js/common_functions.js
+++ b/src/js/common_functions.js
@@ -1,4 +1,5 @@
-const CORS= 'http://192.168.7.120:8080/Device_Manage/';        // 寮�鍚法鍩熻姹�(璋冭瘯鏃跺紑鍚�)
+var CORS = 'http://192.168.7.115:8080/Device_Manage/';        // 寮�鍚法鍩熻姹�(璋冭瘯鏃跺紑鍚�)
+//var CORS = 'http://49.234.20.113:8919/Device_Manage/';        // 寮�鍚法鍩熻姹�(璋冭瘯鏃跺紑鍚�)
 //const CORS='';           // 鍏抽棴璺ㄥ煙璇锋眰(鍙戝竷鏃跺紑鍚�)
 
 //瀹氫箟璁℃椂鍣�
@@ -375,4 +376,111 @@
         default:str = battstate[0];
     }
     return str;
-}
\ No newline at end of file
+}
+
+// 瀵规暟鎹繘琛屽鐞�
+var HandleData = function() {
+
+};
+// 澶勭悊鏁版嵁
+HandleData.prototype.handle = function(oldData, newData, keys) {
+    var result = {
+        del: [],
+        add: [],
+    };
+    // 娣诲姞琚垹闄ょ殑鏁版嵁
+    this._addDel(result, oldData, newData, keys);
+
+    // 娣诲姞琚坊鍔犵殑鏁版嵁
+    this._addAdd(result, oldData, newData, keys);
+
+    // 鍒犻櫎鏁版嵁
+    this._del(result, oldData, keys);
+
+    // 娣诲姞鏁版嵁
+    this._add(result, oldData, keys);
+};
+// 娣诲姞琚垹闄ょ殑鏁版嵁
+HandleData.prototype._addDel = function(result, oldData, newData, keys) {
+    // 閬嶅巻old鏁版嵁骞跺拰newData瀵规瘮,绛涢�夊嚭闇�瑕佸垹闄ょ殑鏁版嵁
+    for(var i=0; i<oldData.length; i++) {
+        var _oldData = oldData[i];
+        var exist = this.checkExistObj(_oldData, newData, keys);
+        if(!exist) {
+            result.del.push(_oldData);
+        }
+    }
+};
+
+// 娣诲姞琚坊鍔犵殑鏁版嵁
+HandleData.prototype._addAdd = function(result, oldData, newData, keys) {
+    // 閬嶅巻new鏁版嵁鍜宱ld鏁版嵁瀵规瘮锛岀瓫閫夊嚭闇�瑕佹坊鍔犵殑鏁版嵁
+    for(var i=0; i<newData.length; i++) {
+        var _newData = newData[i];
+        var exist = this.checkExistObj(_newData, oldData, keys);
+        if(!exist) {
+            result.add.push(_newData);
+        }
+    }
+};
+
+// 鍒犻櫎鏁版嵁
+HandleData.prototype._del = function(result, oldData, keys) {
+    // 鍒犻櫎鏁版嵁
+    for(var i=0; i<result.del.length; i++) {
+        var del = result.del[i];
+        for(var k=0; k<oldData.length; k++) {
+            var _oldData = oldData[k];
+            var equal = this.checkObjEqual(_oldData, del, keys);
+            if(equal || typeof(equal) == 'undefined') {
+                oldData.splice(k, 1);
+                break;
+            }
+        }
+    }
+};
+
+// 娣诲姞鏁版嵁
+HandleData.prototype._add = function(result, oldData, keys) {
+    // 娣诲姞鏁版嵁
+    for(var i=0; i<result.add.length; i++) {
+        var add = result.add[i];
+        oldData.push(add);
+    }
+};
+
+// 妫�娴嬪璞℃槸鍚﹀瓨鍦ㄤ簬瀵硅薄闆嗗悎
+HandleData.prototype.checkExistObj = function (obj, list, keys) {
+    var exist = false;
+    // 閬嶅巻list
+    for(var i=0; i<list.length; i++) {
+        var _list = list[i];
+        // 閬嶅巻閿�奸泦鍚�
+        var equal = this.checkObjEqual(obj, _list, keys);
+        // 瀵硅薄涓庡璞¢泦鍚堜腑绗琲涓瓑鏁�
+        if(equal) {
+            exist = true;
+            break;
+        }
+    }
+    // 杩斿洖鍐呭
+    return exist;
+};
+
+// 妫�娴嬪璞℃槸鍚︾瓑鏁�(杩斿洖undefined璇存槑keys瀛樺湪闂)
+HandleData.prototype.checkObjEqual = function(obj1, obj2, keys) {
+    // 閬嶅巻閿�奸泦鍚�
+    var equal = true;
+    for(var k=0; k<keys.length; k++) {
+        var key = keys[k];
+        if(obj1.hasOwnProperty(key) && obj2.hasOwnProperty(key)) {
+            if(obj1[key] != obj2[key]) {
+                equal = false;
+                break;
+            }
+        }else {
+            equal = undefined;
+        }
+    }
+    return equal;
+};
\ No newline at end of file

--
Gitblit v1.9.1