/**
* @author jiangyong
*
* @date 2020年3月23日10:57:53
*
* layui-调度计划插件
*
*
* 1。两个输入参数,第一个参数定义该插件的依赖插件;第二个参数是回调函数,编写我们自定义插件的业务逻辑
* 2.返回插件,调用exports函数,两个参数分别是 插件名称和插件对象
*
*/
layui.define(['jquery', 'form', 'laydate'], function(exports) {
"use strict";
var $ = layui.jquery,
form = layui.form;
var laydate = layui.laydate;
var schedu = function() {
this.scheduType = {
"0": {
"desc": "按分执行",
"type": "time",
"format": "mm"
},
"1": {
"desc": "按秒执行",
"type": "time",
"format": "ss"
},
"2": {
"desc": "按天执行",
"type": "time",
"format":"HH:mm:ss"
}
// ,"3": {
// "desc": "特定时间执行",
// "type": "datetime"
// },
// "4": {
// "desc": "自定义执行"
// }
}
this.selects = null
};
//组件初始化方法
schedu.prototype.init = function() {
this.selects = $(".ag-schedu");
this.initSelect();
this.buildEvent();
form.render("select");
}
/**
* 初始化下拉框
*/
schedu.prototype.initSelect = function() {
var that = this;
$.each(that.selects, function(i, item) {
$(item).empty();
$(item).siblings().remove();
$(item).append("");
for (var key in that.scheduType) {
$(item).append("");
}
$(item).attr("lay-filter", "a"+util.randomWord(false, 16));
$(item).after("
");
$(item).after("");
});
}
/**
* 特定时间事件
* @param {Object} data
* @param {Object} scheduObj
*/
schedu.prototype.clickDateTime = function(data){
util.error("功能实现中");
return ;
var that = this;
var id = "#" + $(data.elem).attr("lay-filter") + "_date2";
var opt = {
elem: id,
type: that.currScheduType.type,
position:"fixed",
trigger: 'click'
,done: function(value, data, endDate) {
var exeExpr = data.seconds+" "+data.minutes+" "+data.hours+" "+data.date+" "+data.month+" ? "+data.year;
$("[name=scheduCron]").val(exeExpr);
}
}
laydate.render(opt);
$(id).click();
}
/**
* 自定义事件
* @param {Object} data
*/
schedu.prototype.customTime = function(data){
util.error("功能实现中");
return ;
util.openWin("/views/schedu/customSchedu.html", "自定义表达式配置", 1000, 1000);
}
/**
* 天,分,秒 事件
* @param {Object} data
* @param {Object} scheduObj
*/
schedu.prototype.clickTime = function(data){
var that = this;
var id = "#" + $(data.elem).attr("lay-filter") + "_date";
var opt = {
elem: id,
type: that.currScheduType.type,
position:"fixed",
trigger: 'click'
,done: function(value, data, endDate) {
var exeExpr = "";
if (that.currScheduType.format == "ss") {
exeExpr ="*/" + data.seconds + " * * * * ?";
}
if (that.currScheduType.format == "mm") {
exeExpr = " 0 */" + data.minutes + " * * * ?";
}
if (that.currScheduType.format == "HH:mm:ss") {
exeExpr = data.seconds+" "+data.minutes+" "+data.hours+" * * ? ";
}
$("[name=scheduCron]").val(exeExpr);
}
}
laydate.render(opt);
$(id).click();
/**
* 展示处理
*/
if (that.currScheduType.format) {
var li = $("#layui-laydate"+$(id).attr("lay-key") +" .layui-laydate-content .layui-laydate-list.laydate-time-list>li");
if("mm" == that.currScheduType.format){
li.eq(0).addClass("layui-hide");
li.eq(2).addClass("layui-hide");
}
if("ss" == that.currScheduType.format){
li.eq(0).addClass("layui-hide");
li.eq(1).addClass("layui-hide");
}
if("HH:mm:ss" == that.currScheduType.format){
//li.eq(2).addClass("layui-hide");
}
}
}
/**
* 绑定监听事件
*/
schedu.prototype.buildEvent = function() {
var that = this;
$.each(that.selects, function() {
form.on("select(" + $(this).attr("lay-filter") + ")", function(data) {
var scheduObj = that.scheduType[data.value];
that.currScheduType = scheduObj;
if (scheduObj.type && scheduObj.type != "datetime") {
return that.clickTime(data)
}
if (scheduObj.type && scheduObj.type == "datetime") {
return that.clickDateTime(data);
}
return that.customTime(data);
});
});
}
var schedu = new schedu();
exports("schedu", schedu);
});