backend.js 9.61 KB
/*js 原生扩展*/
Array.prototype.remove = function (dx) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == dx) {
            this.splice(i, 1);
        }
    }
    return this;
}

Array.prototype.has = function (dx) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == dx) {
            return true;
        }
    }
    return false;
}

Array.prototype.contains = function (obj) {
    var i = this.length;
    while (i--) {
        if (this[i] === obj) {
            return true;
        }
    }
    return false;
}

Date.prototype.format = function (format) {
    /*
     * eg:format="yyyy-MM-dd hh:mm:ss";
     */
    if (!format) {
        format = "yyyy-MM-dd hh:mm:ss";
    }
    var o = {
        "M+": this.getMonth() + 1, // month
        "d+": this.getDate(), // day
        "h+": this.getHours(), // hour
        "m+": this.getMinutes(), // minute
        "s+": this.getSeconds(), // second
        "q+": Math.floor((this.getMonth() + 3) / 3), // quarter
        "S": this.getMilliseconds()
        // millisecond
    };
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4
            - RegExp.$1.length));
    }

    for (var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1
                ? o[k]
                : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
};

String.prototype.escapeRegExp = function () {
    return this.replace(/[.*+?^${}()|[\]\/\\]/g, "\\$0");
};
String.prototype.trimEnd = function (c) {
    if (c)
        return this.replace(new RegExp(c.escapeRegExp() + "*$"), '');
    return this.replace(/\s+$/, '');
}
String.prototype.trimStart = function (c) {
    if (c)
        return this.replace(new RegExp("^" + c.escapeRegExp() + "*"), '');
    return this.replace(/^\s+/, '');
}

var backEndApp = function () {
    var _init = function () {
        $(function () {
            /**
             * ajax表单提交
             * @param options
             * @returns {$}
             */
            $.fn.ajaxSubmitForm = function (options) {
                var params = {
                    before: function ($form) {
                        return true;
                    },
                    success: function ($form, data) {
                        if (data.code == "Ok") {
                            function okfun() {
                                if ($form.attr("data-next") != null && $form.attr("data-next") != "" && $form.attr("data-next") != "#")
                                    location.href = $form.attr("data-next");
                                else if (data.NextUrl != null && data.NextUrl != "") {
                                    location.href = data.NextUrl;
                                } else {
                                    location.reload();
                                }
                            }
                            var time = parseInt($form.data('time'));
                            if (isNaN(time)) {
                                time = 2000;
                            }
                            if (time <= 0) {
                                okfun();
                            } else {
                                $.tips(data.message);
                                setTimeout(function () {
                                    okfun();
                                }, time);
                            }
                        }
                        // 未登录
                        else {
                            $.tips(data.message);
                        }
                    }
                };
                $.extend(params, options);
                this.submit(function (e) {
                    e.preventDefault();
                    var $form = $(this);
                    $form.validator();
                    var result = params.before($form);
                    if (result == false)
                        return false;
                    else {
                        $form.find(':submit').attr('disabled', 'disabled');
                        $form.find(':submit').addClass('disabled');
                        $form.find(':focus').blur();
                        if ($form.data("validator") != undefined && $form.data("validator") != null) {
                            $form.isValid(function (v) {
                                if (v) {
                                    post();
                                } else {
                                    $form.find(':submit').removeAttr('disabled');
                                    $form.find(':submit').removeClass('disabled');
                                }
                            });
                        }
                    }

                    function post() {
                        $.ajax({
                            type: $form.attr("method") || "post",
                            url: $form.attr("action"),
                            data: $form.serialize(),
                            error: function (xmlHttpRequest, textStatus, errorThrown) {
                                $.tip('很遗憾,提交失败');
                                $form.find(':submit').removeAttr('disabled');
                                $form.find(':submit').removeClass('disabled');
                            },
                            success: function (data) {
                                if (data != null) {
                                    params.success($form, data);
                                }
                                $form.find(':submit').removeAttr('disabled');
                                $form.find(':submit').removeClass('disabled');
                            }
                        });
                    }
                    return false;
                });
                return this;
            }
            $.extend({
                tips: function (msg) {
                    return layer.open({skin: "msg", time: 1, content: msg});
                }
            });
            $.extend({
                tips: function (msg,fn) {
                    if(!fn){
                        fn=function () {}
                    }
                    return layer.open({skin: "msg", time: 2, content: msg,cancel:fn()});
                }
            });
            $.setUrlParam  = function (key, value, href) {
                href = href || window.location.href;
                var queryReg = /(\?.*)/;
                var queryMathes = queryReg.exec(href);
                var query = queryMathes && queryMathes.length >= 2 ? queryMathes[1] : '';
                query = query.trimEnd('&').trimEnd('#');

                var hashReg = /(#.*)/;
                var hashMatches = hashReg.exec(href);
                var hash = hashMatches && hashMatches.length >= 2 ? hashMatches[1] : '';

                query = query.replace(hash, '');
                var q = query + "&";
                var re = new RegExp("[?|&]" + key + "=.*?&");
                if (!re.test(q)) {
                    if (q == '&') {
                        q = '';
                    }
                    q += key + "=" + encodeURIComponent(value);
                }
                else
                    q = q.replace(re, "&" + key + "=" + encodeURIComponent(value) + "&");
                q = q.trimStart("&").trimEnd("&");
                q = (q[0] == "?" ? q : ("?" + q)) + hash;
                return href.replace(/\?.*/, '').replace(hash, '') + q;
            }
            $.getUrlParam = function (key, query) {
                if (!query)
                    query = window.location.search;
                var re = new RegExp("[?|&]" + key + "=(.*?)&");
                var matches = re.exec(query + "&");
                if (!matches || matches.length < 2)
                    return "";
                return decodeURIComponent(matches[1].replace("+", " "));
            }
            $(".j_ajaxForm").ajaxSubmitForm();

            // $.pageLoading=function () {
            //     const param={pageIndex:"pageIndex"};
            //     var options={
            //         container:"loading-container",
            //         loadmore:"weui-loadmore"
            //     };
            //
            //     var loading = false;  //状态标记
            //     var $weui_loadmore = $("."+options.loadmore);
            //     var totalPage = $("."+options.container).data("totalpage");
            //     var pageIndex = 1;
            //
            //     console.log(totalPage);
            //     $(document.body).infinite().on("infinite", function () {
            //         if (loading) return;
            //         loading = true;
            //         $weui_loadmore.show();
            //         if (pageIndex < totalPage) {
            //             pageIndex++;
            //             var nextUrl = $.setUrlParam(param.pageIndex, pageIndex);
            //             $.get(nextUrl, function (result) {
            //                 setTimeout(function () {
            //                     $("."+options.container).append($(result).find("."+options.container).html());
            //                     loading = false;
            //                 }, 500);   //模拟延迟
            //             })
            //         } else {
            //             console.info("end")
            //             $(document.body).destroyInfinite();
            //             $weui_loadmore.html("<p>没有更多</p>");
            //         }
            //     });
            //
            // }

        })
    }
    return {
        init: function () {
            _init();
        }
    }
}();