kdayun-compnent-develop/kdayun-compnent-pack/dist/libs/layui/lay/modules/rate.js

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)
});