130 lines
4.3 KiB
JavaScript
130 lines
4.3 KiB
JavaScript
|
/** layui-v2.4.5 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)
|
||
|
});
|