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