Sfoglia il codice sorgente

basic service change

jason.lu 6 anni fa
parent
commit
ea392da1d4
1 ha cambiato i file con 397 aggiunte e 391 eliminazioni
  1. 397 391
      sourcecode/h5app/vue/src/connector/basic-service.js

+ 397 - 391
sourcecode/h5app/vue/src/connector/basic-service.js

@@ -13,454 +13,460 @@
  * */
 
 
-function utils_get_param(name){
-    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
-    var r = window.location.search.substr(1).match(reg);
-    if(r!=null)return  unescape(r[2]); return null;
-}
-
-function reloadPage(){
-    location.reload()
-}
-
-let Queue = {THRESHOLD: 1000,
-    IS_LOADED : false,
-    nowuse : 0, SVR_URL:"http://localhost:8803/server/",
-    groupsCount : 0, groups:[],
-    shouldStop : false,
-    backup:["http://localhost:8803/server/",
-        "/server/",
-        "http://172.30.84.3:8803/server/","https://1.niimei.com/server/"] ,
-    list:[], temporary:0, errorCount:0};
-
-let Users = {list : []};
-let Sectors = {list : []};
-
-function get_server_url() {
-    let output = $.ajax({url: Queue.SVR_URL + "/fcFlow/list", timeout:1000 }).fail(on_check_fail).done(function(){
-        Queue.IS_LOADED = true;
-        console.warn("Using SERVER : ");
-        console.warn(Queue.SVR_URL);
-        setTimeout(parse_queue, 50);
-    });
-}
-
-function on_check_fail(){
-    if(Queue.nowuse === Queue.backup.length - 1){
-        console.warn("Backup Failed : " + Queue.backup[Queue.nowuse]);
-        console.warn(this);
-        var out = "";
-        Queue.backup.forEach(function(val,index,arr){
-            out += val + "\n";
-        });
-        send_alert("抱歉, 服务器连接失败! \n 请确认 " + out + "其中之一可用");
-    }else{
-        Queue.nowuse ++;
-        Queue.SVR_URL = Queue.backup[Queue.nowuse];
-        $.ajax({url: Queue.SVR_URL + "/fcFlow/list", timeout:1000 }).fail(on_check_fail).done(function(){
-            Queue.IS_LOADED = true;
-            console.warn("Using SERVER : ");
-            console.warn(Queue.SVR_URL);
-            setTimeout(parse_queue, 50);
-        });
-    }
-}
-
-function get_data(url, callback, scope) {
-    Queue.list.push({url:url, callback:callback, gid:-1, scope:scope});
-}
-
-function new_data_group(groupName, callback){
-    var gid = -1;
-    Queue.groups.forEach(function(val,index,arr){
-        if(val.groupName === groupName){
-            gid = val.gid;
-        }
-    });
-    if(gid === -1) {
-        gid = Queue.groupsCount;
-        Queue.groupsCount++;
-        Queue.groups.push({
-            gid: gid, groupName:groupName, callme: callback, counter:0
-        });
+var BasicFunction = new (function() {
+
+    this.Queue = {
+        THRESHOLD: 1000,
+        IS_LOADED: false,
+        nowuse: 0, SVR_URL: "http://localhost:8803/server/",
+        groupsCount: 0, groups: [],
+        shouldStop: false,
+        backup: ["http://localhost:8803/server/",
+            "/server/",
+            "http://172.30.84.3:8803/server/", "https://1.niimei.com/server/"],
+        list: [], temporary: 0, errorCount: 0
+    };
+
+    this.utils_get_param = function (name) {
+        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+        var r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
     }
-    return gid;
-}
-
-function group_get_data(groupName, url, callback){
-    var gid = -1;
-    Queue.groups.forEach(function(val,index,arr){
-        if(val.groupName === groupName){
-            gid = val.gid;
-        }
-    });
-    if(gid === -1) {
-        send_alert("Group 方法使用错误!!!")
+
+    this.reloadPage = function () {
+        location.reload()
     }
-    Queue.list.push({url:url, callback:callback, gid:gid});
-}
 
-function parse_queue(){
-    console.log("Queue Length : " + Queue.list.length);
+    let Users = {list: []};
+    let Sectors = {list: []};
 
-    if(Queue.temporary > new Date().getTime()){
-        for(i = 0; i < Queue.list.length; i++) {
-            Queue.list.pop();
+    this.get_server_url = function () {
+        this.output = $.ajax({url: BasicFunction.Queue.SVR_URL + "/fcFlow/list", timeout: 1000}).fail(this.on_check_fail).done(this.onDataArrive);
+    };
+
+    this.onDataArrive = function(obj) {
+        BasicFunction.Queue.IS_LOADED = true;
+        console.warn("Using SERVER : ");
+        console.warn(BasicFunction.Queue.SVR_URL);
+        setTimeout(this.parse_queue, 50);
+    };
+
+    this.on_check_fail = function () {
+        if (BasicFunction.Queue.nowuse === BasicFunction.Queue.backup.length - 1) {
+            console.warn("Backup Failed : " + BasicFunction.Queue.backup[BasicFunction.Queue.nowuse]);
+            console.warn(this);
+            var out = "";
+            BasicFunction.Queue.backup.forEach(function (val, index, arr) {
+                out += val + "\n";
+            });
+            BasicFunction.send_alert("抱歉, 服务器连接失败! \n 请确认 " + out + "其中之一可用");
+        } else {
+            BasicFunction.Queue.nowuse++;
+            BasicFunction.Queue.SVR_URL = BasicFunction.Queue.backup[BasicFunction.Queue.nowuse];
+            this.ajax({url: BasicFunction.Queue.SVR_URL + "/fcFlow/list", timeout: 1000}).fail(on_check_fail).done(this.onDataArrive);
         }
     }
 
-    Queue.temporary = 0;
+    this.get_data = function (url, callback, scope) {
+        BasicFunction.Queue.list.push({url: url, callback: callback, gid: -1, scope: scope});
+    }
 
-    if(Queue.list.length > 0){
-        let one = Queue.list.pop();
-        if(one.gid === -1) {
-            request_data(one.url, one.callback, one.scope);
-        }else{
-            g_request_data(one.url, one.callback, one.gid, one.scope);
+    this.new_data_group = function (groupName, callback) {
+        var gid = -1;
+        BasicFunction.Queue.groups.forEach(function (val, index, arr) {
+            if (val.groupName === groupName) {
+                gid = val.gid;
+            }
+        });
+        if (gid === -1) {
+            gid = BasicFunction.Queue.groupsCount;
+            BasicFunction.Queue.groupsCount++;
+            BasicFunction.Queue.groups.push({
+                gid: gid, groupName: groupName, callme: callback, counter: 0
+            });
         }
+        return gid;
     }
-    if(Queue.shouldStop == false) {
-        setTimeout(parse_queue, 50);
-    }
-}
-
-function request_data(url, callback, scope){
-    $.ajax({
-        url: Queue.SVR_URL + url,
-        apiName: url,
-        sendTime: new Date(),
-        callme: callback,
-        callerThis: scope
-    }).done(on_dat_success).fail(on_fail);
-}
-
-function g_request_data(url, callback, gid){
-    $.ajax({
-        url: Queue.SVR_URL + url,
-        apiName: url,
-        sendTime: new Date(),
-        gid: gid,
-        callme: callback
-    }).done(on_gp_success).fail(on_fail);
-}
-
-function on_gp_success(a,b) {
-    var gid = this.gid;
-    if(check_if_success(a,b)) {
-        this.callme(a,b);
-        Queue.groups.forEach(function(v,i,a){
-            if(v.gid === gid){
-                v.counter ++;
-                v.callme(v);
+
+    this.group_get_data = function(groupName, url, callback) {
+        var gid = -1;
+        BasicFunction.Queue.groups.forEach(function (val, index, arr) {
+            if (val.groupName === groupName) {
+                gid = val.gid;
             }
         });
+        if (gid === -1) {
+            send_alert("Group 方法使用错误!!!")
+        }
+        BasicFunction.Queue.list.push({url: url, callback: callback, gid: gid});
     }
-}
 
-function on_dat_success(a,b){
-    if(check_if_authfail(a,b)){
-        setCookieWithTimeout("doibyUser","",-10);
-        location.href = "sign-in1.html?from=entrance-5&msg=server-redirect-detected";
-        return;
+    this.parse_queue = function() {
+        console.log("Queue Length : " + BasicFunction.Queue.list.length);
+
+        if (BasicFunction.Queue.temporary > new Date().getTime()) {
+            for (i = 0; i < BasicFunction.Queue.list.length; i++) {
+                BasicFunction.Queue.list.pop();
+            }
+        }
+
+        BasicFunction.Queue.temporary = 0;
+
+        if (BasicFunction.Queue.list.length > 0) {
+            let one = BasicFunction.Queue.list.pop();
+            if (one.gid === -1) {
+                request_data(one.url, one.callback, one.scope);
+            } else {
+                g_request_data(one.url, one.callback, one.gid, one.scope);
+            }
+        }
+        if (BasicFunction.Queue.shouldStop == false) {
+            setTimeout(parse_queue, 50);
+        }
     }
-    if(check_if_success(a,b)) {
-        this.callme(a,b);
+
+    function request_data(url, callback, scope) {
+        $.ajax({
+            url: BasicFunction.Queue.SVR_URL + url,
+            apiName: url,
+            sendTime: new Date(),
+            callme: callback,
+            callerThis: scope
+        }).done(on_dat_success).fail(on_fail);
+    }
+
+    function g_request_data(url, callback, gid) {
+        $.ajax({
+            url: BasicFunction.Queue.SVR_URL + url,
+            apiName: url,
+            sendTime: new Date(),
+            gid: gid,
+            callme: callback
+        }).done(on_gp_success).fail(on_fail);
+    }
+
+    function on_gp_success(a, b) {
+        var gid = BasicFunction.gid;
+        if (check_if_success(a, b)) {
+            this.callme(a, b);
+            BasicFunction.Queue.groups.forEach(function (v, i, a) {
+                if (v.gid === gid) {
+                    v.counter++;
+                    v.callme(v);
+                }
+            });
+        }
     }
-}
 
-function check_if_authfail(a){
-    if(a == null || typeof a !== "string") {
-        return false;
-    }else{
-        if(a.indexOf("login?from=") > 0 || a.startsWith("<!DOCTYPE html>") || a.indexOf("<!-- SME::LOGINPAGE -->") > 0){
-            return true;
+    function on_dat_success(a, b) {
+        if (check_if_authfail(a, b)) {
+            setCookieWithTimeout("doibyUser", "", -10);
+            location.href = "sign-in1.html?from=entrance-5&msg=server-redirect-detected";
+            return;
+        }
+        if (check_if_success(a, b)) {
+            BasicFunction.callme(a, b);
         }
     }
-    return false;
-}
 
-function check_if_success(a,b){
-    if(typeof a === "string"){
-        try {
-            a = JSON.parse(a);
-        }catch (e) {
+    function check_if_authfail(a) {
+        if (a == null || typeof a !== "string") {
+            return false;
+        } else {
+            if (a.indexOf("login?from=") > 0 || a.startsWith("<!DOCTYPE html>") || a.indexOf("<!-- SME::LOGINPAGE -->") > 0) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    function check_if_success(a, b) {
+        if (typeof a === "string") {
+            try {
+                a = JSON.parse(a);
+            } catch (e) {
+                console.warn("=----------   异常   -----------=");
+                console.warn(a);
+                console.warn("=----------------------------=");
+                send_alert("信息失败 : " + e);
+                return;
+            }
+        } else if (typeof a === "undefined") {
             console.warn("=----------   异常   -----------=");
             console.warn(a);
-            console.warn("=----------------------------=");
-            send_alert("信息失败 : "+e);
+            console.warn("=------------------------------=");
+            send_alert("信息失败 : " + e);
             return;
         }
-    }else if(typeof a === "undefined"){
-        console.warn("=----------   异常   -----------=");
-        console.warn(a);
-        console.warn("=------------------------------=");
-        send_alert("信息失败 : "+e);
-        return;
-    }
-    if(a.ret === "10000") {
-        return true;
-    }else{
-        console.trace();
-        console.error(b);
-        console.error(JSON.stringify(a));
-        send_alert("查询失败 : 请参阅控制台输出! ");
-    }
+        if (a.ret === "10000") {
+            return true;
+        } else {
+            console.trace();
+            console.error(b);
+            console.error(JSON.stringify(a));
+            send_alert("查询失败 : 请参阅控制台输出! ");
+        }
 
-    return false;
-}
-
-function on_fail(msg, sta) {
-    Queue.errorCount += 1;
-    if(Queue.errorCount >= 10){
-        Queue.errorCount = 0;
-        Queue.temporary = new Date().getTime() + 30*1000;
-        Queue.shouldStop = true;
-        console.warn("-----  Too many failure, temporary stop HTTP ------");
-        send_alert("很抱歉,网络错误数量过多,暂时终止HTTP功能30s");
-    }
-    let vurl = "";
-    try {
-        vurl = " : "+this.url.substring(7, 12);
-    }catch (e) {
-        vurl = "";
-    }
-    send_alert("很抱歉,网络错误,请查看 Console" + vurl);
-    console.warn("-----   网络请求失败 ---------");
-    try {
-        console.warn(JSON.stringify(this));
-    }catch (e) {
-        console.warn(JSON.stringify(this.url));
-        console.warn(JSON.stringify(this.responseText));
-    }
-    console.warn("-----------msg-------------");
-    console.warn(JSON.stringify(msg));
-    console.warn("-----------sta--------------");
-    console.warn(JSON.stringify(sta));
-    console.warn("----------------------------");
-}
-
-function first_parse(ajax, obj) {
-    if (typeof obj === "string") {
-        obj = JSON.parse(obj);
+        return false;
     }
 
-    if (typeof obj !== "object") {
-        console.warn(ajax);
-        throw "Error ! Parsing JSON failed ." + JSON.stringify(obj);
+    function on_fail(msg, sta, obj) {
+        BasicFunction.Queue.errorCount += 1;
+        if (BasicFunction.Queue.errorCount >= 10) {
+            BasicFunction.Queue.errorCount = 0;
+            BasicFunction.Queue.temporary = new Date().getTime() + 30 * 1000;
+            BasicFunction.Queue.shouldStop = true;
+            console.warn("-----  Too many failure, temporary stop HTTP ------");
+            BasicFunction.send_alert("很抱歉,网络错误数量过多,暂时终止HTTP功能30s");
+        }
+        let vurl = "";
+        try {
+            vurl = " : " + obj.url.substring(7, 12);
+        } catch (e) {
+            vurl = "";
+        }
+        BasicFunction.send_alert("很抱歉,网络错误,请查看 Console" + vurl);
+        console.warn("-----   网络请求失败 ---------");
+        try {
+            console.warn(JSON.stringify(this));
+        } catch (e) {
+            console.warn(JSON.stringify(obj.url));
+            console.warn(JSON.stringify(obj.responseText));
+        }
+        console.warn("-----------msg-------------");
+        console.warn(JSON.stringify(msg));
+        console.warn("-----------sta--------------");
+        console.warn(JSON.stringify(sta));
+        console.warn("----------------------------");
     }
 
-    if (obj.ret === "10000") {
-        return obj.model;
-    } else {
-        console.warn(ajax);
-        throw "Error ! Server returned error." + JSON.stringify(obj);
-    }
-}
+    var first_parse = function(ajax, obj) {
+        if (typeof obj === "string") {
+            obj = JSON.parse(obj);
+        }
 
+        if (typeof obj !== "object") {
+            console.warn(ajax);
+            throw "Error ! Parsing JSON failed ." + JSON.stringify(obj);
+        }
 
-function on_document_load() {
-    if(typeof (page_document_load) !== "undefined"){
-        page_document_load();
-    }
-    if(typeof (resizeAll) !== "undefined"){
-        resizeAll();
+        if (obj.ret === "10000") {
+            return obj.model;
+        } else {
+            console.warn(ajax);
+            throw "Error ! Server returned error." + JSON.stringify(obj);
+        }
     }
-}
 
-var AlertClosingTimeout = 0;
 
-function send_alert(a, b){
+    this.on_document_load = function() {
+        if (typeof (page_document_load) !== "undefined") {
+            this.page_document_load();
+        }
+        if (typeof (resizeAll) !== "undefined") {
+            this.resizeAll();
+        }
+    };
+
+    this.AlertClosingTimeout = 0;
 
-    if(Queue.shouldStop) return;
-    $("#mpAlert").html(a);
-    $("#mpAlert").show();
+    this.send_alert = function(a, b) {
 
-    if(AlertClosingTimeout > 0) {
-        clearTimeout(AlertClosingTimeout);
-    }
+        if (BasicFunction.Queue.shouldStop) return;
+        $("#mpAlert").html(a);
+        $("#mpAlert").show();
 
-    AlertClosingTimeout = setTimeout(function(){
-        if ($("#mpAlert").html().indexOf("<") >= 0) {
-            return;
+        if (AlertClosingTimeout > 0) {
+            clearTimeout(AlertClosingTimeout);
         }
-        $("#mpAlert").hide();
-    }, 10000);
 
-    return;
+        BasicFunction.AlertClosingTimeout = setTimeout(function () {
+            if ($("#mpAlert").html().indexOf("<") >= 0) {
+                return;
+            }
+            $("#mpAlert").hide();
+        }, 10000);
 
-    var q = "<!-- Modal 部分开始 -->\n<div class=\"modal fade\" id=\"alertModal\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n    <div class=\"modal-dialog\" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h5 class=\"modal-title\" id=\"alertModalLabel\">New message</h5>\n                <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                    <span aria-hidden=\"true\">&times;</span>\n                </button>\n            </div>\n            <div class=\"modal-body\">\n                <form>\n                    <div class=\"form-group\">\n                        <label for=\"recipient-name\" class=\"col-form-label\">Recipient:</label>\n                        <input type=\"text\" class=\"form-control\" id=\"recipient-name\">\n                    </div>\n                    <div class=\"form-group\">\n                        <label for=\"message-text\" class=\"col-form-label\">Message:</label>\n                        <textarea class=\"form-control\" id=\"message-text\"></textarea>\n                    </div>\n                </form>\n            </div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Close</button>\n                <button type=\"button\" class=\"btn btn-primary\">Send message</button>\n            </div>\n        </div>\n    </div>\n</div>";
-    //var model = document.createElement("div");
-    if($("#modalContainer").length <= 0){
-        alert(a);
-        return ;
-    }
-    $("#modalContainer").html(q);
-    var modalO = $("alertModal");
-    if(modalO.length === 0){
+        return;
+
+        //var q = "<!-- Modal 部分开始 -->\n<div class=\"modal fade\" id=\"alertModal\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n    <div class=\"modal-dialog\" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h5 class=\"modal-title\" id=\"alertModalLabel\">New message</h5>\n                <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                    <span aria-hidden=\"true\">&times;</span>\n                </button>\n            </div>\n            <div class=\"modal-body\">\n                <form>\n                    <div class=\"form-group\">\n                        <label for=\"recipient-name\" class=\"col-form-label\">Recipient:</label>\n                        <input type=\"text\" class=\"form-control\" id=\"recipient-name\">\n                    </div>\n                    <div class=\"form-group\">\n                        <label for=\"message-text\" class=\"col-form-label\">Message:</label>\n                        <textarea class=\"form-control\" id=\"message-text\"></textarea>\n                    </div>\n                </form>\n            </div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Close</button>\n                <button type=\"button\" class=\"btn btn-primary\">Send message</button>\n            </div>\n        </div>\n    </div>\n</div>";
+        //var model = document.createElement("div");
+        //if ($("#modalContainer").length <= 0) {
         alert(a);
-    }else{
-        $("#alertModelLabel").text(b);
-        $("#message-text").text(b);
-        modalO.modal('show');
-    }
+        return;
+        //}
+
+        $("#modalContainer").html(q);
+        var modalO = $("alertModal");
+        if (modalO.length === 0) {
+            alert(a);
+        } else {
+            $("#alertModelLabel").text(b);
+            $("#message-text").text(b);
+            modalO.modal('show');
+        }
 
-}
-
-function getUserName(uid){
-    var uname = null;
-    Users.list.forEach(function(val, aid, arr){
-        if(val.worker.staffId === uid){
-            uname = val.worker.staffName;
-        }
-    });
-    if(uname == null) {
-        if(uid != 0) {
-            get_data("oaStaff/list?staffId=" + uid, on_username_retn);
-            return "[用户:"+uid+"]";
-        } else return "[用户:"+uid+"]";
-    }else{
-        return uname;
-    }
-}
-
-function on_username_retn(obj, sta) {
-    var uid = this.url.substring(this.url.indexOf("staffId=") + 8);
-    let ruid = parseInt(uid);
-    var out = first_parse(this, obj);
-    if(out.list.length > 0){
-        Users.list.push({
-            uid : ruid, worker: out.list[0]
-        });
     }
-}
-
-function getSectorName(sectorId){
-    var secName = null;
-    Sectors.list.forEach(function(val, aid, arr){
-        if(val.sector.sectorId === sectorId){
-            secName = val.sector.sectorName;
-        }
-    });
-    if(secName == null) {
-        get_data("fcSector/list?sectorId=" + sectorId, on_secname_retn);
-        return "[工位:"+sectorId+"]";
-    }else{
-        return secName;
-    }
-}
-
-function on_secname_retn(obj, sta) {
-    var secid = this.url.substring(this.url.indexOf("sectorId=") + 9);
-    let rsecid = parseInt(secid);
-    var out = first_parse(this, obj);
-    if(out.list.length > 0){
-        Sectors.list.push({
-            secid : rsecid, sector: out.list[0]
+
+    function getUserName(uid) {
+        var uname = null;
+        Users.list.forEach(function (val, aid, arr) {
+            if (val.worker.staffId === uid) {
+                uname = val.worker.staffName;
+            }
         });
+        if (uname == null) {
+            if (uid != 0) {
+                get_data("oaStaff/list?staffId=" + uid, on_username_retn);
+                return "[用户:" + uid + "]";
+            } else return "[用户:" + uid + "]";
+        } else {
+            return uname;
+        }
     }
-}
-
-function getSectorId(spotId){
-    var secId = null;
-    Sectors.list.forEach(function(val, aid, arr){
-        if(val.sector.spotId === spotId){
-            secId = val.sector.sectorId;
-        }
-    });
-    if(secId == null) {
-        get_data("fcSectorSpot/list?spotId=" + spotId, on_secid_retn);
-        return -1;
-    }else{
-        return secId;
+
+    this.on_username_retn = function (obj, sta) {
+        var uid = this.url.substring(this.url.indexOf("staffId=") + 8);
+        let ruid = parseInt(uid);
+        var out = first_parse(this, obj);
+        if (out.list.length > 0) {
+            Users.list.push({
+                uid: ruid, worker: out.list[0]
+            });
+        }
     }
-}
-
-function on_secid_retn(obj, sta) {
-    var spotId = this.url.substring(this.url.indexOf("spotId=") + 7);
-    let rsecid = parseInt(spotId);
-    var out = first_parse(this, obj);
-    if(out.list.length > 0){
-        Sectors.list.push({
-            secid : rsecid, sector: out.list[0]
+
+    this.getSectorName = function(sectorId) {
+        var secName = null;
+        Sectors.list.forEach(function (val, aid, arr) {
+            if (val.sector.sectorId === sectorId) {
+                secName = val.sector.sectorName;
+            }
         });
+        if (secName == null) {
+            get_data("fcSector/list?sectorId=" + sectorId, on_secname_retn);
+            return "[工位:" + sectorId + "]";
+        } else {
+            return secName;
+        }
     }
-}
 
-/**
- *  Calc b/a+b * 100(precision = 2), when b is zero, return zero
- * @param a (pass)
- * @param b (fail)
- */
-function get_factor(a,b){
-    if(a+b === 0){
-        return 0;
-    }else{
-        return Math.floor(10000* b / (a+b) ) / 100;
+    this.on_secname_retn = function(obj, sta) {
+        var secid = this.url.substring(this.url.indexOf("sectorId=") + 9);
+        let rsecid = parseInt(secid);
+        var out = first_parse(this, obj);
+        if (out.list.length > 0) {
+            Sectors.list.push({
+                secid: rsecid, sector: out.list[0]
+            });
+        }
     }
-}
 
-function setCookieWithTimeout(name, value, liveMinutes) {
-    if (liveMinutes == undefined || liveMinutes == null) {
-        liveMinutes = 60 * 2;
-    }
-    if (typeof (liveMinutes) != 'number') {
-        liveMinutes = 60 * 2;//默认120分钟
+    this.getSectorId = function(spotId) {
+        var secId = null;
+        Sectors.list.forEach(function (val, aid, arr) {
+            if (val.sector.spotId === spotId) {
+                secId = val.sector.sectorId;
+            }
+        });
+        if (secId == null) {
+            get_data("fcSectorSpot/list?spotId=" + spotId, on_secid_retn);
+            return -1;
+        } else {
+            return secId;
+        }
+    };
+
+    this.on_secid_retn = function(obj, sta) {
+        var spotId = this.url.substring(this.url.indexOf("spotId=") + 7);
+        let rsecid = parseInt(spotId);
+        var out = first_parse(this, obj);
+        if (out.list.length > 0) {
+            Sectors.list.push({
+                secid: rsecid, sector: out.list[0]
+            });
+        }
+    };
+
+    /**
+     *  Calc b/a+b * 100(precision = 2), when b is zero, return zero
+     * @param a (pass)
+     * @param b (fail)
+     */
+    this.get_factor = function(a, b) {
+        if (a + b === 0) {
+            return 0;
+        } else {
+            return Math.floor(10000 * b / (a + b)) / 100;
+        }
     }
-    var minutes = liveMinutes * 60 * 1000;
-    var exp = new Date();
-    exp.setTime(exp.getTime() + minutes + 8 * 3600 * 1000);
-    //path=/表示全站有效,而不是当前页
-    document.cookie = name + "=" + value + ";path=/;expires=" + exp.toUTCString();
-}
-
-function setCookie(c_name,value,expiredays)
-{
-    var exdate=new Date()
-    exdate.setDate(exdate.getDate()+expiredays)
-    document.cookie=c_name+ "=" +escape(value)+
-        ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
-}
-
-function getCookie(c_name)
-{
-    if (document.cookie.length>0)
-    {
-        c_start=document.cookie.indexOf(c_name + "=")
-        if (c_start!=-1)
-        {
-            c_start=c_start + c_name.length+1
-            c_end=document.cookie.indexOf(";",c_start)
-            if (c_end==-1) c_end=document.cookie.length
-            return unescape(document.cookie.substring(c_start,c_end))
+
+    this.setCookieWithTimeout = function(name, value, liveMinutes) {
+        if (liveMinutes == undefined || liveMinutes == null) {
+            liveMinutes = 60 * 2;
+        }
+        if (typeof (liveMinutes) != 'number') {
+            liveMinutes = 60 * 2;//默认120分钟
         }
+        var minutes = liveMinutes * 60 * 1000;
+        var exp = new Date();
+        exp.setTime(exp.getTime() + minutes + 8 * 3600 * 1000);
+        //path=/表示全站有效,而不是当前页
+        document.cookie = name + "=" + value + ";path=/;expires=" + exp.toUTCString();
+    }
+
+    this.setCookie = function(c_name, value, expiredays) {
+        var exdate = new Date()
+        exdate.setDate(exdate.getDate() + expiredays)
+        document.cookie = c_name + "=" + escape(value) +
+            ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString())
+    }
+
+    this.getCookie = function(c_name) {
+        if (document.cookie.length > 0) {
+            var c_start = document.cookie.indexOf(c_name + "=")
+            if (c_start != -1) {
+                c_start = c_start + c_name.length + 1
+                var c_end = document.cookie.indexOf(";", c_start)
+                if (c_end == -1) c_end = document.cookie.length
+                return unescape(document.cookie.substring(c_start, c_end))
+            }
+        }
+        return "";
     }
-    return "";
-}
 
-var userId = utils_get_param("userId");
+    var userId = utils_get_param("userId");
 
-function getUserId() {
-    console.log("Original  USERID : " + userId);
-    var use = getCookie("doibyUser");
-    if (use == null || use === undefined || use.length <= 0) {
-        location.href = "sign-in1.html?from=entrance-1&msg=nologin-mustauth";
-        return;
-    }
-    console.log("Got UID From COOKIE : " + use);
-    try{
-        var mm = parseInt(use);
-        if(mm <= 0){
-        }else{
-            userId = mm;
-        }
-    }catch (e) {
-        location.href = "sign-in1.html?from=entrance-1&msg=cookie-wrong-format";
-        return;
+    this.getUserId = function() {
+        console.log("Original  USERID : " + userId);
+        var use = getCookie("doibyUser");
+        if (use == null || use === undefined || use.length <= 0) {
+            location.href = "sign-in1.html?from=entrance-1&msg=nologin-mustauth";
+            return;
+        }
+        console.log("Got UID From COOKIE : " + use);
+        try {
+            var mm = parseInt(use);
+            if (mm <= 0) {
+            } else {
+                userId = mm;
+            }
+        } catch (e) {
+            location.href = "sign-in1.html?from=entrance-1&msg=cookie-wrong-format";
+            return;
+        }
+
+        console.log("Got UserId Eventually : " + userId);
     }
 
-    console.log("Got UserId Eventually : " + userId);
-}
+
+    //$(document).ready(on_document_load);
+    this.get_server_url();
+    this.on_document_load();
+})();
 
 
-$(document).ready(on_document_load);
-get_server_url();
+export {
+    BasicFunction
+}