田源
2024-04-07 2ac55ce0edf4870a29691b56bfad59f4830a11a2
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
/** layui-v2.5.6 MIT License By https://www.layui.com */
;layui.define("jquery", function (e) {
    "use strict";
    var a = layui.jquery, i = {
            config: {}, index: layui.rate ? layui.rate.index + 1e4 : 0, set: function (e) {
                var i = this;
                return i.config = a.extend({}, i.config, e), i
            }, on: function (e, a) {
                return layui.onevent.call(this, n, e, a)
            }
        }, l = function () {
            var e = this, a = e.config;
            return {
                setvalue: function (a) {
                    e.setvalue.call(e, a)
                }, config: a
            }
        }, n = "rate", t = "layui-rate", o = "layui-icon-rate", s = "layui-icon-rate-solid", u = "layui-icon-rate-half",
        r = "layui-icon-rate-solid layui-icon-rate-half", c = "layui-icon-rate-solid layui-icon-rate",
        f = "layui-icon-rate layui-icon-rate-half", v = function (e) {
            var l = this;
            l.index = ++i.index, l.config = a.extend({}, l.config, i.config, e), l.render()
        };
    v.prototype.config = {
        length: 5,
        text: !1,
        readonly: !1,
        half: !1,
        value: 0,
        theme: ""
    }, v.prototype.render = function () {
        var e = this, i = e.config, l = i.theme ? 'style="color: ' + i.theme + ';"' : "";
        i.elem = a(i.elem), parseInt(i.value) !== i.value && (i.half || (i.value = Math.ceil(i.value) - i.value < .5 ? Math.ceil(i.value) : Math.floor(i.value)));
        for (var n = '<ul class="layui-rate" ' + (i.readonly ? "readonly" : "") + ">", u = 1; u <= i.length; u++) {
            var r = '<li class="layui-inline"><i class="layui-icon ' + (u > Math.floor(i.value) ? o : s) + '" ' + l + "></i></li>";
            i.half && parseInt(i.value) !== i.value && u == Math.ceil(i.value) ? n = n + '<li><i class="layui-icon layui-icon-rate-half" ' + l + "></i></li>" : n += r
        }
        n += "</ul>" + (i.text ? '<span class="layui-inline">' + i.value + "星" : "") + "</span>";
        var c = i.elem, f = c.next("." + t);
        f[0] && f.remove(), e.elemTemp = a(n), i.span = e.elemTemp.next("span"), i.setText && i.setText(i.value), c.html(e.elemTemp), c.addClass("layui-inline"), i.readonly || e.action()
    }, v.prototype.setvalue = function (e) {
        var a = this, i = a.config;
        i.value = e, a.render()
    }, v.prototype.action = function () {
        var e = this, i = e.config, l = e.elemTemp, n = l.find("i").width();
        l.children("li").each(function (e) {
            var t = e + 1, v = a(this);
            v.on("click", function (e) {
                if (i.value = t, i.half) {
                    var o = e.pageX - a(this).offset().left;
                    o <= n / 2 && (i.value = i.value - .5)
                }
                i.text && l.next("span").text(i.value + "星"), i.choose && i.choose(i.value), i.setText && i.setText(i.value)
            }), v.on("mousemove", function (e) {
                if (l.find("i").each(function () {
                    a(this).addClass(o).removeClass(r)
                }), l.find("i:lt(" + t + ")").each(function () {
                    a(this).addClass(s).removeClass(f)
                }), i.half) {
                    var c = e.pageX - a(this).offset().left;
                    c <= n / 2 && v.children("i").addClass(u).removeClass(s)
                }
            }), v.on("mouseleave", function () {
                l.find("i").each(function () {
                    a(this).addClass(o).removeClass(r)
                }), l.find("i:lt(" + Math.floor(i.value) + ")").each(function () {
                    a(this).addClass(s).removeClass(f)
                }), i.half && parseInt(i.value) !== i.value && l.children("li:eq(" + Math.floor(i.value) + ")").children("i").addClass(u).removeClass(c)
            })
        })
    }, v.prototype.events = function () {
        var e = this;
        e.config
    }, i.render = function (e) {
        var a = new v(e);
        return l.call(a)
    }, e(n, i)
});