IYUUPlus/public/page/crontab.html
2021-03-05 13:57:35 +08:00

843 lines
32 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<style>
.layui-form-item .layui-input-company {width: auto;padding-right: 10px;line-height: 38px;}
</style>
<div class="layuimini-container layuimini-page-anim">
<div class="layuimini-main">
<fieldset class="layui-elem-field">
<legend>新增/编辑计划任务</legend>
<div class="layui-field-box">
<form class="layui-form layuimini-form" lay-filter="form" id="form">
<input type="hidden" name="config_filename" value="crontab">
<div class="layui-form-item">
<label class="layui-form-label required">任务类型</label>
<div class="layui-input-inline">
<select name="type" lay-filter="type" lay-verify="required" lay-reqtext="任务类型不能为空" id="type">
<option value="">请选择任务类型</option>
<option value="reseed">辅种任务</option>
<option value="move">转移任务</option>
<!-- <option value="download">下载任务</option>
<option value="url">访问URL</option>
<option value="shell">Shell脚本</option>
<option value="patch">备份目录</option>
<option value="ddns">动态域名DDNS</option>
<option value="clear">清除日志</option> -->
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">任务名称</label>
<div class="layui-input-block">
<input type="text" name="name" lay-verify="required" lay-reqtext="任务名称不能为空" placeholder="请输入任务名称" class="layui-input" id="name">
<tip>给任务起个名字方便你找到它</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">任务使能</label>
<div class="layui-input-block">
<input type="checkbox" name="switch" lay-skin="switch" lay-text="YES|NO" lay-filter="switch" id="switch">
</div>
</div>
<div class="layuimini-form" id="crontab_type_view"></div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
<button class="layui-btn layui-btn-primary" data-refresh="刷新">刷新</button>
</div>
</div>
</form>
</div>
</fieldset>
<table id="tableId" lay-filter="tableFilter"></table>
</div>
</div>
<!-- 模板计划任务配置字段 -->
<script type="text/html" id="crontab_type_tpl">
<input type="hidden" name="action" value="{{ d.action || 'add'}}">
{{# if (d.action === 'edit') { }}
<input type="hidden" name="uuid" value="">
<input type="hidden" name="startTime" value="">
{{# } }}
<div class="layui-form-item">
<label class="layui-form-label required">执行周期</label>
<div class="layui-inline">
<div class="layui-input-inline" style="width: 100px;">
<select name="where" lay-filter="where" lay-verify="required" lay-reqtext="执行周期不能为空" id="where">
<option value="day" {{ d.where === 'day' ? 'selected' : ''}}>每天</option>
<option value="day_n" {{ d.where === 'day_n' ? 'selected' : ''}}>N天</option>
<option value="hour" {{ d.where === 'hour' ? 'selected' : ''}}>每小时</option>
<option value="hour_n" {{ d.where === 'hour_n' ? 'selected' : ''}}>N小时</option>
<option value="minute_n" {{ d.where === 'minute_n' ? 'selected' : ''}}>N分钟</option>
<option value="week" {{ d.where === 'week' ? 'selected' : ''}}>每星期</option>
<option value="month" {{ d.where === 'month' ? 'selected' : ''}}>每月</option>
</select>
</div>
</div>
<span id="crontab_where_view"></span>
</div>
{{# if (d.type === 'reseed') { }}
<div class="layui-form-item">
<label class="layui-form-label required">辅种的站点</label>
<div class="layui-input-block" id="reseed_sites_view">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">辅种的下载器</label>
<div class="layui-input-block" id="reseed_clients_view">
</div>
<div class="layui-form-mid layui-word-aux"><i class="layui-icon layui-icon-tips"></i> </div>
</div>
{{# } }}
{{# if (d.type === 'move') { }}
<div class="layui-form-item">
<label class="layui-form-label required">来源下载器</label>
<div class="layui-input-block" id="form_clients_view">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">转移到下载器</label>
<div class="layui-input-block" id="to_clients_view">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">过滤器</label>
<div class="layui-input-block">
<input type="hidden" name="path_filter" id="path_filter" lay-verify="path_filter" class="layui-input">
<div id="path_filter_view"></div>
<div class="layui-form-mid layui-word-aux"><i class="layui-icon layui-icon-tips"></i> ()</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">选择器</label>
<div class="layui-input-block">
<input type="hidden" name="path_selector" id="path_selector" lay-verify="path_selector" class="layui-input">
<div id="path_selector_view"></div>
<div class="layui-form-mid layui-word-aux"><i class="layui-icon layui-icon-tips"></i> () </div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">路径转换类型</label>
<div class="layui-input-inline">
<select name="path_type" lay-filter="path_type" id="path_type" lay-verify="required" lay-reqtext="路径转换类型不能为空">
<option value="" selected="">请选择转换类型</option>
<option value="0">相等</option><option value="1"></option><option value="2"></option><option value="3"></option>
</select>
</div>
<div class="layui-form-mid layui-word-aux"><i class="layui-icon layui-icon-tips"></i> </div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">路径转换规则</label>
<div class="layui-input-block">
<textarea placeholder="请输入路径转换规则,每一行代表一条规则;" class="layui-textarea" name="path_rule"></textarea>
<tip>路径转换规则为空时在转移种子时默认会设置路径转换类型为相等路径转换规则每一行代表一条规则每条规则如果包含两个文件夹请用<span class="layui-badge">{#**#}</span></b><br /><span class="layui-badge layui-bg-cyan"></span><span class="layui-badge layui-bg-black">/downloads{#**#}/volume1</span><span class="layui-badge layui-bg-blue">/downloads/volume1/volume1/downloads</span><br />
路径转换类型<span class="layui-badge layui-bg-cyan">替换</span><span class="layui-badge layui-bg-black">/downloads{#**#}/volume1/downloads</span><span class="layui-badge layui-bg-blue">/downloads/volume1/downloads</span></tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">跳校验</label>
<div class="layui-input-block">
<input type="checkbox" name="skip_check" lay-skin="switch" lay-text="YES|NO" lay-filter="skip_check" id="skip_check">
<tip>转移时跳过校验此功能需要下载器支持</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">暂停</label>
<div class="layui-input-block">
<input type="checkbox" name="paused" lay-skin="switch" lay-text="YES|NO" lay-filter="paused" id="paused">
<tip>转移后不要自动开始</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">删除源做种</label>
<div class="layui-input-block">
<input type="checkbox" name="delete_torrent" lay-skin="switch" lay-text="YES|NO" lay-filter="delete_torrent" id="delete_torrent">
<tip>转移成功删除来源下载器内的种子<span class="layui-badge">风险提示第一次转移时请不要勾选万一路径配置错误将会删除客户端正常做种的种子非必要请勿勾选</span></tip>
</div>
</div>
{{# } }}
{{# if (d.type === 'url') { }}
<div class="layui-form-item">
<label class="layui-form-label required">URL地址</label>
<div class="layui-input-block">
<input type="text" name="urladdress" lay-verify="required" placeholder="请输入URL地址" class="layui-input" value="http://">
</div>
</div>
{{# } }}
{{# if (d.type === 'shell') { }}
<div class="layui-form-item">
<label class="layui-form-label required">脚本内容</label>
<div class="layui-input-block">
<textarea placeholder="请输入脚本内容" class="layui-textarea" name="body"></textarea>
</div>
</div>
{{# } }}
</script>
<!-- 模板辅种任务 [站点] 复选框 -->
<script id="reseed_sites_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<input type="checkbox" name="sites[{{item}}]" title="{{item}}" checked>
{{# }); }}
</script>
<!-- 模板辅种任务 [下载器] 复选框 -->
<script id="reseed_clients_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<input type="checkbox" name="clients[{{item.uuid}}]" title="{{ item.name }}" checked>
{{# }); }}
</script>
<!-- 模板转移任务来源 [下载器] 单选框 -->
<script id="form_clients_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<input type="radio" name="form_clients" value="{{item.uuid}}" title="{{ item.name }}">
{{# }); }}
</script>
<!-- 模板转移任务目标 [下载器] 单选框 -->
<script id="to_clients_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<input type="radio" name="to_clients" value="{{item.uuid}}" title="{{ item.name }}">
{{# }); }}
</script>
<!-- 模板计划任务 [执行周期] 组合 -->
<script type="text/html" id="crontab_where_tpl">
{{# if (d.weeks) { }}
<div class="layui-inline">
<div class="layui-input-inline" style="width: 100px;">
<select name="weeks" lay-filter="weeks" lay-verify="required" id="weeks">
<option value="1" selected>周一</option>
<option value="2">周二</option>
<option value="3">周三</option>
<option value="4">周四</option>
<option value="5">周五</option>
<option value="6">周六</option>
<option value="0">周日</option>
</select>
</div>
</div>
{{# } }}
{{# if (d.day) { }}
<div class="layui-inline">
<div class="layui-input-inline" style="width: 140px;">
<input type="number" name="day" lay-verify="required" lay-reqtext="{{ d.where === 'day_n' ? '间隔天数' : '每月第几日' }}不能为空" placeholder="请输入{{ d.where === 'day_n' ? '间隔天数' : '每月第几日' }}" class="layui-input" id="day">
</div>
<div class="layui-form-mid">{{ d.where === 'day_n' ? '天' : '日' }}</div>
</div>
{{# } }}
{{# if (d.hour) { }}
<div class="layui-inline">
<div class="layui-input-inline" style="width: 100px;">
<input type="number" name="hour" lay-verify="required" lay-reqtext="小时不能为空" placeholder="请输入小时" class="layui-input" id="hour">
</div>
<div class="layui-form-mid">小时</div>
</div>
{{# } }}
{{# if (d.minute) { }}
<div class="layui-inline">
<div class="layui-input-inline" style="width: 100px;">
<input type="number" name="minute" lay-verify="required" lay-reqtext="分钟不能为空" placeholder="请输入分钟" class="layui-input" id="minute">
</div>
<div class="layui-form-mid">分钟</div>
</div>
{{# } }}
</script>
<!-- 模板表格头工具栏 -->
<script type="text/html" id="tableTopToolbar">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="clearReseedCache">清理辅种缓存</button>
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="clearMoveCache">清理转移缓存</button>
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="refreshCrontab">刷新任务</button>
</div>
</script>
<!-- 模板表格行工具条 -->
<script type="text/html" id="tableToolbar">
<span class="layui-badge layui-bg-cyan" lay-event="run">运行</span>
<span class="layui-badge layui-bg-orange" lay-event="log">日志</span>
<span class="layui-badge layui-bg-gray" lay-event="clearLog">清理</span>
<span class="layui-badge layui-bg-green" lay-event="edit">编辑</span>
<span class="layui-badge" lay-event="delete">删除</span>
</script>
<script>
layui.use(['table','form','miniPage','laytpl','code','transfer'], function () {
let $ = layui.$,
layer = layui.layer,
table = layui.table,
form = layui.form,
miniPage = layui.miniPage,
laytpl = layui.laytpl
transfer = layui.transfer;
const API = {
tableList: '/Api/Config?config_filename=crontab&action=list'
,create: '/Api/Config'
,delete: '/Api/Config?config_filename=crontab&action=del'
,taskRun: '/Task/start'
,taskLogs: '/Task/logs'
,taskClearLogs: '/Task/clearLogs'
};
const path_filter = 'path_filter'
,path_selector = 'path_selector'
,_height = 250;
/**
* 任务类型 选择框
* @param {string} type 任务类型
* @param {string} action 动作(增、删、改、查)
* @param {string} where 执行周期
* @param {object} formData 编辑时表单数据
*/
crontab_sel_action = function(type = '', action = '', where = 'day', formData = null) {
let rule = {
type: type
,action: action
,where: where
}
,getTpl = crontab_type_tpl.innerHTML
,view = getById('crontab_type_view');
//初始清空
view.innerHTML = '';
if (type === '') {
getById('switch').checked = false;
form.render();
return ;
}
//新增任务时,清空任务名称 选中任务使能
if (action === '' || action === 'add') {
getById('name').value = '';
getById('switch').checked = true;
}
laytpl(getTpl).render(rule, function(html) {
view.innerHTML = html;
});
form.render();
//联动:任务周期
crontab_where_sel_action(rule.where);
//联动:辅种站点与下载器的复选框
reseed_sel_action(type, formData);
//联动:转移任务下载器的选择
move_sel_action(type, formData);
}
/**
* 任务周期选择框
* @param {string} where 执行周期
*/
crontab_where_sel_action = function(where = '') {
let rule = {
where: where
,weeks: (where === 'week' ? true : false)
,day: ($.inArray(where, ['day_n', 'month']) >= 0 ? true : false)
,hour: ($.inArray(where, ['hour', 'minute_n']) < 0 ? true : false)
,minute: where ? true : false
}
,getTpl = crontab_where_tpl.innerHTML
,view = getById('crontab_where_view');
//初始清空
view.innerHTML = '';
if (where === '') {
return ;
}
laytpl(getTpl).render(rule, function(html) {
view.innerHTML = html;
});
form.render();
}
/**
* 任务选择框联动,辅种站点与下载器的选择
* @param {string} type 任务类型
* @param {object} formData 编辑时表单数据
*/
reseed_sel_action = function(type = '', formData) {
if (type !== 'reseed') {
return;
}
let callback = null;
if (formData !== null) {
format_input('sites', formData);
format_input('clients', formData);
delete formData.sites;
delete formData.clients;
console.log(formData);
//定义回调
callback = [
function(){
//取消复选框
$('#reseed_sites_view').find(':input').each(function () {
$(this).attr('checked', false);
});
form.val("form", formData);
},
function(){
//取消复选框
$('#reseed_clients_view :input').removeAttr("checked");
form.val("form", formData);
}
];
}
//辅种站点
$.getJSON('/Api/Config?config_filename=user_sites&action=list', function (d) {
let getTpl = reseed_sites_tpl.innerHTML
,view = getById('reseed_sites_view');
if (d.ret !== 200) {
return;
}
if (d.data.total <= 0) {
layer.alert('您还没有配置站点,将会为您跳转到站点设置!', function(index){
layer.close(index);
window.location = '/index.html#/page/setting/sites.html';
});
}
let data = Object.keys(d.data.items).map(function (key){
return d.data.items[key].name;
});
laytpl(getTpl).render(data, function(html) {
view.innerHTML = html;
});
//回调
callback !== null && typeof callback[0] === 'function' && callback[0]();
form.render('checkbox');
});
//辅种下载器
$.getJSON('/Api/Config?config_filename=clients&action=list', function (d) {
let getTpl = reseed_clients_tpl.innerHTML
,view = getById('reseed_clients_view');
if (d.ret !== 200) {
return;
}
if (d.data.total <= 0) {
layer.alert('您还没有配置下载器,将会为您跳转到下载器设置!', function(index){
layer.close(index);
window.location = '/index.html#/page/setting/clients.html';
});
}
laytpl(getTpl).render(d.data.items, function(html) {
view.innerHTML = html;
});
//回调
callback !== null && typeof callback[1] === 'function' && callback[1]();
form.render('checkbox');
});
}
/**
* 任务选择框联动,转移做种任务下载器的选择
* @param {string} type 任务类型
* @param {object} formData 编辑时表单数据
*/
move_sel_action = function(type = '', formData) {
if (type !== 'move') {
return;
}
let callback = null;
if (formData !== null) {
console.log(formData);
//定义回调
callback = function(){
form.val("form", formData);
};
}
//获取所有下载器
$.getJSON('/Api/Config?config_filename=clients&action=list', function (d) {
if (d.ret !== 200) {
return;
}
let formTpl = form_clients_tpl.innerHTML
,toTpl = to_clients_tpl.innerHTML
,form_view = getById('form_clients_view')
,to_view = getById('to_clients_view');
if (d.data.total <= 0) {
layer.alert('您还没有配置下载器,将会为您跳转到下载器设置!', function(index){
layer.close(index);
window.location = '/index.html#/page/setting/clients.html';
});
}
//来源下载器
laytpl(formTpl).render(d.data.items, function(html) {
form_view.innerHTML = html;
});
//转移到下载器
laytpl(toTpl).render(d.data.items, function(html) {
to_view.innerHTML = html;
});
//回调
callback !== null && typeof callback === 'function' && callback();
form.render('radio');
});
//获取目录
$.getJSON('/Api/Config?config_filename=folder&action=list', function (d) {
if (d.ret !== 200) {
return;
}
if (d.data.total <= 0) {
layer.alert('您还没有配置目录,将会为您跳转到目录设置!', function(index){
layer.close(index);
window.location = '/index.html#/page/setting/folder.html';
});
}
console.log(d);
//过滤器
transfer.render({
elem: '#' + path_filter + '_view'
,id: path_filter
,parseData: function(res){
return {
"value": res.uuid
,"title": res.name
,"disabled": res.disabled
,"checked": res.checked
,"dir":res.dir
}
}
,title: ['全部目录', '排除目录']
,data: d.data.items
,value: formData !== null && formData.path_filter ? formData.path_filter.split(",") : []
,height: _height
,text: {
none: '无数据'
,searchNone: '无匹配数据'
}
,onchange: function(obj, index){
var arr = ['左边', '右边'];
console.log('来自 <strong>'+ arr[index] + '</strong> 的数据:',JSON.stringify(obj));
}
});
//选择器
transfer.render({
elem: '#' + path_selector + '_view'
,id: path_selector
,parseData: function(res){
return {
"value": res.uuid
,"title": res.name
,"disabled": res.disabled
,"checked": res.checked
,"dir":res.dir
}
}
,title: ['全部目录', '选择目录']
,data: d.data.items
,value: formData !== null && formData.path_selector ? formData.path_selector.split(",") : []
,height: _height
,text: {
none: '无数据'
,searchNone: '无匹配数据'
}
,onchange: function(obj, index){
var arr = ['左边', '右边'];
console.log('来自 <strong>'+ arr[index] + '</strong> 的数据:',JSON.stringify(obj));
}
});
});
}
/**
* 初始化表格
*/
table.render({
elem: '#tableId'
,url: API.tableList
,toolbar: '#tableTopToolbar'
,defaultToolbar: ['filter', 'print', {
title: '提示'
,layEvent: 'LAYTABLE_TIPS'
,icon: 'layui-icon-tips'
}]
,parseData: function(res){
console.log(res);
return {
"code": res.ret === 200 ? 0 : res.ret,
"msg": res.msg,
"count": res.data.total,
"data": res.data.items
};
}
,cols: [[
{field: 'name', title: '任务名称', width:180, align: "center", sort: true, fixed: 'left'}
,{field: 'uuid', title: 'UUID', width:80, align: "center", hide: true}
,{field: 'type', title: '任务类型', width:150, align: "center", sort: true
,templet: function(d){
let type = '';
switch (d.type) {
case 'reseed':
type = '辅种任务';
break;
case 'move':
type = '转移任务';
break;
case 'download':
type = '下载任务';
break;
case 'url':
type = '访问URL';
break;
case 'shell':
type = 'shell脚本';
break;
case 'patch':
type = '备份目录';
break;
case 'ddns':
type = '动态域名DDNS';
break;
case 'clear_log':
type = '清除日志'
break;
default:
break;
}
return type;
}
}
,{field: 'switch', title: '使能', width: 73, align: "center", sort: true
,templet: function(d){
return d.switch ? '<span class="layui-badge layui-bg-green">YES</span>' : '<span class="layui-badge">NO</span>';
}
}
,{field: 'where', title: '执行周期', width:110, sort: true
,templet: function(d){
return d.where ? '<span class="layui-badge layui-bg-orange">' + d.crontab + '</span>' : '';
}
}
,{field: 'urladdress', title: 'URL地址', minWidth: 130, align: "center", sort: true
,templet: function(d){
return d.urladdress || '';
}
}
,{field: 'body', title: '任务/脚本内容', minWidth: 180, sort: true
,templet: function(d){
return d.body || d.command || '';
}
}
,{title: '操作', width: 230, templet: '#tableToolbar', fixed: "right", align: "center"}
]]
,done: function(res, curr, count){
//如果是异步请求数据方式res即为你接口返回的信息。
//如果是直接赋值的方式res即为{data: [], count: 99} data为当前页数据、count为数据总长度
console.log(res);
//console.log(curr); //得到当前页码
//console.log(count); //得到数据总量
}
,skin: 'line'
//,even: true
,size: 'sm'
,page: false
,limit:500
});
/**
* 监听:头工具栏事件
*/
table.on('toolbar(tableFilter)', function(obj){
let checkStatus = table.checkStatus(obj.config.id);
let data = checkStatus.data;
switch(obj.event){
case 'clearReseedCache':
case 'clearMoveCache':
$.getJSON('/Task/clearCache', {'type': obj.event}, function (d) {
if (d.ret === 200) {
layer.msg(d.data.success ? '清理成功' : '清理失败');
return;
}
layer.msg('接口请求失败:/Task/clearCache');
});
break;
case 'refreshCrontab':
$.getJSON('/Task/refresh', function (d) {
if (d.ret === 200) {
layer.msg(d.data.success ? '全部任务刷新成功' : '任务刷新失败');
return;
}
layer.msg('接口请求失败:/Task/refresh');
});
break;
case 'LAYTABLE_TIPS':
layer.alert('这是工具栏右侧自定义的一个图标按钮');
break;
};
});
/**
* 监听:行工具条
*/
table.on('tool(tableFilter)', function(obj){
let layEvent = obj.event;
let tr = obj.tr;
console.log('原始数据:', obj.data);
switch (layEvent) {
case 'run':
$.ajax({
url: API.taskRun,
type:'get',
data: {uuid: obj.data.uuid},
success:function(data){
if (data.ret !== 200) {
layer.msg(data.msg);
return;
}
let msg = data.data.success ? '运行成功' : '运行失败';
layer.msg(msg, function () {
});
},
complete: function () {
}
});
break;
case 'clearLog':
$.ajax({
url: API.taskClearLogs,
type:'get',
data: {uuid: obj.data.uuid},
success:function(data){
if (data.ret !== 200) {
layer.msg(data.msg);
return;
}
let msg = data.data.success ? '日志清理成功' : '日志清理失败';
layer.msg(msg, function () {
});
},
complete: function () {
}
});
break;
case 'log':
$.ajax({
url: API.taskLogs,
type:'get',
data: {uuid: obj.data.uuid},
success:function(data){
if (data.ret !== 200) {
layer.msg(data.msg);
return;
}
layer.open({
type: 1
,title: false
,shadeClose: true
,area: ['1080px','700px']
,offset: '100px'
,shade: 0.8
,id: obj.data.uuid
,moveType: 1 //拖拽模式0或者1
,content: '<pre class="layui-code">'+ data.data.logs +'</pre>'
,success: function(layero){
layui.code();
}
});
},
complete: function () {
}
});
break;
case 'edit':
getById('switch').checked = false; //取消使能
let formData = JSON.parse(JSON.stringify(obj.data));
crontab_sel_action(obj.data.type, 'edit', obj.data.where, formData);
form.val("form", formData);
form.render();
break;
case 'delete':
layer.confirm('真的删除 '+obj.data.name +'吗?', function(index){
$.ajax({
url: API.delete,
type:'get',
data: {uuid: obj.data.uuid},
success:function(data){
if (data.ret !== 200) {
layer.msg(data.msg);
return;
}
layer.msg('删除成功', function () {
});
obj.del();
layer.close(index);
},
complete: function () {
}
});
});
break;
default:
break;
}
});
//监听行单击事件
table.on('row(tableFilter)', function(obj){
//同下
});
//监听行双击事件
table.on('rowDouble(tableFilter)', function(obj){
//console.log(obj.tr) //得到当前行元素对象
console.log('原始数据:', obj.data) //得到当前行数据
//obj.del(); //删除当前行
//obj.update(fields) //修改当前行数据
});
/**
* 初始化表单,要加上,不然刷新部分组件可能会不加载
*/
form.render();
//自定义验证规则
form.verify({
path_filter: function (value) {
let elem = getById(path_filter)
,obj = transfer.getData(path_filter);
elem.value = obj ? obj.map(v => {return v.value}).toString() : '';
}
,path_selector: function (value) {
let elem = getById(path_selector)
,obj = transfer.getData(path_selector);
elem.value = obj ? obj.map(v => {return v.value}).toString() : '';
}
});
//监听选择:类型
form.on('select(type)', function(data){
crontab_sel_action(data.value, 'add');
});
//监听选择执行周期where
form.on('select(where)', function(data){
crontab_where_sel_action(data.value);
});
//监听提交
form.on('submit(saveBtn)', function (data) {
$.ajax({
url: API.create,
type:'post',
data: data.field,
success:function(d){
console.log(d);
if (d.ret !== 200) {
layer.msg(d.msg);
return;
}
layer.msg('保存成功', function(){
//miniPage.hashHome();
window.location.reload();
});
},
complete: function () {
},
error : function(request) {
layer.alert('未知错误请截图当前界面然后求助于QQ群859882209、931954050、924099912', {icon: 2, title: '出错提示'});
}
});
return false;
});
});
</script>