whychdw
2019-10-10 20e9ed291e6ff2eceed90ee41e0a9cb4ccb2a28b
dist/js/common_functions.js
@@ -1,6 +1,7 @@
'use strict';
var CORS = 'http://192.168.7.113: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='';           // 关闭跨域请求(发布时开启)
//定义计时器
@@ -101,34 +102,36 @@
}
function ajax(option) {
    bui.ajax({
        method: 'POST',
        async: true,
        url: CORS + option.url,
        data: option.data,
        dataType: 'json'
    }).then(function (res) {
        if (typeof option.success == 'function') {
            option.success(res);
        }
        if (typeof option.complete == 'function') {
            option.complete();
        }
    }, function () {
        if (typeof option.complete == 'function') {
            option.complete();
        }
    });
    // $.ajax({
    //     type: 'post',
    // bui.ajax({
    //     method: 'POST',
    //     async: true,
    //     url: CORS+option.url,
    //     data: option.data,
    //     dataType: 'json',
    //     success: option.success,
    //     error: option.error,
    //     complete: option.complete
    //     needNative: true,
    // }).then(function(res) {
    //     if(typeof(option.success) == 'function') {
    //         option.success(res);
    //     }
    //     if(typeof(option.complete) == 'function') {
    //         option.complete();
    //     }
    // },
    // function() {
    //     if(typeof(option.complete) == 'function') {
    //         option.complete();
    //     }
    // });
    $.ajax({
        type: 'post',
        async: true,
        url: CORS + option.url,
        data: option.data,
        dataType: 'json',
        success: option.success,
        error: option.error,
        complete: option.complete
    });
}
//将秒转化成时:分:秒
@@ -330,18 +333,152 @@
    return title;
};
var SYSTEMS = [{
    name: 'LD9',
    reg: /^40190/
}, {
    name: '61850',
    reg: /^61850/
}, {
    name: 'BTS',
    reg: /^(9100)|(9600)|(9616)/
}];
// 根据设备的id获取设备的基本信息
function getDevBaseInfo(dev_id) {
    var result = {
        name: '未知',
        key: '未知',
        reg: '',
        workstates: [],
        stopreasons: [],
        alarmstates: []
    };
    // 遍历DEVICEINFO
    for (var i = 0; i < DEVICEINFO.length; i++) {
        var data = DEVICEINFO[i];
        if (regEquipType(dev_id, data.reg)) {
            result = data;
        }
    }
    return result;
}
// 根据设备ID获取系统的名称
function getSysType(dev_id) {
    var result = '未知';
}
// 验证设备类型
function regEquipType(eId, pattern) {
    if (pattern.test(eId)) {
        return true;
    }
    return false;
}
function getBattstate(state) {
    var str = "";
    switch (state) {
        case 1:
            str = battstate[1];break;
        case 2:
            str = battstate[2];break;
        case 3:
            str = battstate[3];break;
        case 4:
            str = battstate[4];break;
        default:
            str = battstate[0];
    }
    return str;
}
// 对数据进行处理
var HandleData = function HandleData() {};
// 处理数据
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数据和old数据对比,筛选出需要添加的数据
    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);
        // 对象与对象集合中第i个等效
        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;
};