| | |
| | | return str; |
| | | } |
| | | |
| | | // 对数据进行处理 |
| | | var HandleData = function HandleData() {}; |
| | | // 处理数据 |
| | | // 对新旧数据进行对比 |
| | | function HandleData() {}; |
| | | |
| | | // 对新旧数据进行对比处理 |
| | | HandleData.prototype.handle = function (oldData, newData, keys) { |
| | | var result = { |
| | | del: [], |
| | | add: [] |
| | | }; |
| | | // 添加被删除的数据 |
| | | this._addDel(result, oldData, newData, keys); |
| | | // 剔除旧数据 |
| | | this.del(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); |
| | | } |
| | | } |
| | | // 添加新数据 |
| | | this.add(oldData, newData, keys); |
| | | }; |
| | | |
| | | // 添加被添加的数据 |
| | | HandleData.prototype._addAdd = function (result, oldData, newData, keys) { |
| | | // 遍历new数据和old数据对比,筛选出需要添加的数据 |
| | | // 添加新数据 |
| | | HandleData.prototype.add = function(oldData, newData, keys) { |
| | | // 遍历新数据 |
| | | 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); |
| | | var isExist = this.checkObjIsExist(_newData, oldData, keys); |
| | | if(isExist.code == 0) { |
| | | oldData.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.del = function(oldData, newData, keys) { |
| | | // 遍历旧数据 |
| | | for(var i=0; i<oldData.length; i++) { |
| | | var _oldData = oldData[i]; |
| | | var isExist = this.checkObjIsExist(_oldData, newData, keys); |
| | | if(isExist.code == 0) { |
| | | oldData.splice(i, 1); |
| | | i--; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | // 添加数据 |
| | | 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.checkObjIsExist = function(obj, objs, keys) { |
| | | var result = { |
| | | code: 0, |
| | | index: -1, |
| | | data: {} |
| | | }; |
| | | |
| | | // 检测对象是否存在于对象集合 |
| | | 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); |
| | | // 对象与对象集合中第i个等效 |
| | | if (equal) { |
| | | exist = true; |
| | | break; |
| | | } |
| | | } |
| | | // 返回内容 |
| | | return exist; |
| | | }; |
| | | |
| | | // 检测对象是否等效(返回undefined说明keys存在问题) |
| | | HandleData.prototype.checkObjEqual = function (obj1, obj2, keys) { |
| | | // 遍历键值集合 |
| | | var equal = true; |
| | | // 遍历数组 |
| | | for(var i=0; i<objs.length; i++) { |
| | | var _objs = objs[i]; |
| | | var equal = true; // 相等 |
| | | // 遍历keys |
| | | for (var k = 0; k < keys.length; k++) { |
| | | var key = keys[k]; |
| | | if (obj1.hasOwnProperty(key) && obj2.hasOwnProperty(key)) { |
| | | if (obj1[key] != obj2[key]) { |
| | | if(_objs[key] == undefined || _objs[key] != obj[key]) { |
| | | equal = false; |
| | | break; |
| | | } |
| | | } else { |
| | | equal = undefined; |
| | | } |
| | | |
| | | // 存在属性值一致的对象 |
| | | if(equal) { |
| | | result.code = 1; |
| | | result.index = i; |
| | | result.data = _objs; |
| | | } |
| | | } |
| | | return equal; |
| | | |
| | | return result; |
| | | }; |
| | |
| | | <div class="span1">退出系统</div>
|
| | | </li>
|
| | | <li class="bui-btn" @click="searchAll">
|
| | | <div class="bui-icon danger round"><i class="iconfont icon-tuichu"></i></div>
|
| | | <div class="span1">退出系统</div>
|
| | | <div class="bui-icon success round"><i class="iconfont icon-quanjucanshushezhi"></i></div>
|
| | | <div class="span1">测试数据</div>
|
| | | </li>
|
| | | </ul>
|
| | | </div>
|
| | |
| | | } else { |
| | | self.tbls.alarm.pageBtn.next = false; |
| | | } |
| | | |
| | | // 添加数据 |
| | | if (self.tbls.alarm.data.length == 0) { |
| | | self.tbls.alarm.data = data; |
| | | } else { |
| | | self.handleData.handle(self.tbls.alarm.data, data, ['num', 'alm_start_time']); |
| | | } |
| | | // 更新数据 |
| | | self.handleData.handle(self.tbls.alarm.data, data, ['num', 'alm_start_time', 'MonNum']); |
| | | } |
| | | }, |
| | | complete: function complete() { |
| | |
| | | this.setBlock(); |
| | | |
| | | window['searchAllcalljs'] = function(res) { |
| | | |
| | | bui.alert(res); |
| | | } |
| | | }, |
| | |
| | | return str; |
| | | } |
| | | |
| | | // 对数据进行处理 |
| | | var HandleData = function HandleData() {}; |
| | | // 处理数据 |
| | | // 对新旧数据进行对比 |
| | | function HandleData() {}; |
| | | |
| | | // 对新旧数据进行对比处理 |
| | | HandleData.prototype.handle = function (oldData, newData, keys) { |
| | | var result = { |
| | | del: [], |
| | | add: [] |
| | | }; |
| | | // 添加被删除的数据 |
| | | this._addDel(result, oldData, newData, keys); |
| | | // 剔除旧数据 |
| | | this.del(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); |
| | | } |
| | | } |
| | | // 添加新数据 |
| | | this.add(oldData, newData, keys); |
| | | }; |
| | | |
| | | // 添加被添加的数据 |
| | | HandleData.prototype._addAdd = function (result, oldData, newData, keys) { |
| | | // 遍历new数据和old数据对比,筛选出需要添加的数据 |
| | | // 添加新数据 |
| | | HandleData.prototype.add = function(oldData, newData, keys) { |
| | | // 遍历新数据 |
| | | 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); |
| | | var isExist = this.checkObjIsExist(_newData, oldData, keys); |
| | | if(isExist.code == 0) { |
| | | oldData.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.del = function(oldData, newData, keys) { |
| | | // 遍历旧数据 |
| | | for(var i=0; i<oldData.length; i++) { |
| | | var _oldData = oldData[i]; |
| | | var isExist = this.checkObjIsExist(_oldData, newData, keys); |
| | | if(isExist.code == 0) { |
| | | oldData.splice(i, 1); |
| | | i--; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | // 添加数据 |
| | | 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.checkObjIsExist = function(obj, objs, keys) { |
| | | var result = { |
| | | code: 0, |
| | | index: -1, |
| | | data: {} |
| | | }; |
| | | |
| | | // 检测对象是否存在于对象集合 |
| | | 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); |
| | | // 对象与对象集合中第i个等效 |
| | | if (equal) { |
| | | exist = true; |
| | | break; |
| | | } |
| | | } |
| | | // 返回内容 |
| | | return exist; |
| | | }; |
| | | |
| | | // 检测对象是否等效(返回undefined说明keys存在问题) |
| | | HandleData.prototype.checkObjEqual = function (obj1, obj2, keys) { |
| | | // 遍历键值集合 |
| | | var equal = true; |
| | | // 遍历数组 |
| | | for(var i=0; i<objs.length; i++) { |
| | | var _objs = objs[i]; |
| | | var equal = true; // 相等 |
| | | // 遍历keys |
| | | for (var k = 0; k < keys.length; k++) { |
| | | var key = keys[k]; |
| | | if (obj1.hasOwnProperty(key) && obj2.hasOwnProperty(key)) { |
| | | if (obj1[key] != obj2[key]) { |
| | | if(_objs[key] == undefined || _objs[key] != obj[key]) { |
| | | equal = false; |
| | | break; |
| | | } |
| | | } else { |
| | | equal = undefined; |
| | | } |
| | | |
| | | // 存在属性值一致的对象 |
| | | if(equal) { |
| | | result.code = 1; |
| | | result.index = i; |
| | | result.data = _objs; |
| | | } |
| | | } |
| | | return equal; |
| | | |
| | | return result; |
| | | }; |
| | |
| | | <div class="span1">退出系统</div>
|
| | | </li>
|
| | | <li class="bui-btn" @click="searchAll">
|
| | | <div class="bui-icon danger round"><i class="iconfont icon-tuichu"></i></div>
|
| | | <div class="span1">退出系统</div>
|
| | | <div class="bui-icon success round"><i class="iconfont icon-quanjucanshushezhi"></i></div>
|
| | | <div class="span1">测试数据</div>
|
| | | </li>
|
| | | </ul>
|
| | | </div>
|
| | |
| | | } else { |
| | | self.tbls.alarm.pageBtn.next = false; |
| | | } |
| | | |
| | | // 添加数据 |
| | | if (self.tbls.alarm.data.length == 0) { |
| | | self.tbls.alarm.data = data; |
| | | } else { |
| | | self.handleData.handle(self.tbls.alarm.data, data, ['num', 'alm_start_time']); |
| | | } |
| | | // 更新数据 |
| | | self.handleData.handle(self.tbls.alarm.data, data, ['num', 'alm_start_time', 'MonNum']); |
| | | } |
| | | }, |
| | | complete: function complete() { |
| | |
| | | this.setBlock(); |
| | | |
| | | window['searchAllcalljs'] = function(res) { |
| | | |
| | | bui.alert(res); |
| | | } |
| | | }, |