wzp
2021-07-19 e65183d31755a0e5fae4bf428435d2e0fd6afdc5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/**
 * jQuery.bsgrid v1.38 by @Baishui2004
 * Copyright 2014 Apache v2 License
 * https://github.com/baishui2004/jquery.bsgrid
 */
/**
 * require common.js.
 *
 * @author Baishui2004
 * @Date March 18, 2014
 */
$.bsgrid = {
    /**
     * Create a encode URL query string of an Array or Object.
     *
     * @param obj {}
     * @param twice option, default false; if set true then encode twice
     * @returns {string}
     */
    param: function (obj, twice) {
        if (twice == undefined) {
            twice = false;
        }
        if (!twice) {
            return $.param(obj);
        }
 
        var params = new StringBuilder();
        if (obj instanceof Array) {
            $.each(obj, function (i, objVal) {
                params.append('&' + objVal.name + '=');
                params.append(encodeURIComponent(encodeURIComponent(objVal.value)));
            });
        } else {
            for (var key in obj) {
                params.append('&' + key + '=');
                params.append(encodeURIComponent(encodeURIComponent(obj[key])));
            }
        }
        return params.length > 0 ? params.toString().substring(1) : '';
    },
 
    /**
     * Get keys string of an Array or Object, concat with delimiter.
     *
     * @param obj
     * @param delimiter option, default ','
     * @returns {string}
     */
    getKeysString: function (obj, delimiter) {
        if (delimiter == undefined) {
            delimiter = ',';
        }
        var params = new StringBuilder();
        if (obj instanceof Array) {
            $.each(obj, function (i, objVal) {
                // unique key
                if ((params.toString() + delimiter).indexOf(delimiter + objVal.name + delimiter) == -1) {
                    params.append(delimiter + objVal.name);
                }
            });
        } else {
            for (var key in obj) {
                params.append(delimiter + key);
            }
        }
        return params.length > 0 ? params.toString().substring(1) : '';
    },
 
    /**
     * Force push property in Object.
     *
     * @param obj
     * @param key
     * @param val
     */
    forcePushPropertyInObject: function (obj, key, val) {
        if (obj.hasOwnProperty(key)) {
            obj[key + '_f'] = val;
        } else {
            obj[key] = val;
        }
    },
 
    /**
     * Adapt attr() or prop() by jQuery Version.
     *
     * @param obj
     * @param prop
     * @param val
     */
    adaptAttrOrProp: function (obj, prop, val) {
        var version = parseInt($.fn.jquery.substring(0, $.fn.jquery.indexOf('.', 2)).replace('.', ''));
        if (val == undefined) {
            if (version >= 16) {
                return obj.prop(prop);
            } else {
                return obj.attr(prop);
            }
        } else {
            if (version >= 16) {
                obj.prop(prop, val);
            } else {
                obj.attr(prop, val);
            }
        }
    },
 
    /**
     * alert message.
     *
     * @param msg message
     */
    alert: function (msg) {
        alert(msg);
    }
};