2018-08-09 11:34:46 +08:00
|
|
|
|
<style>
|
2019-02-16 20:43:33 +08:00
|
|
|
|
.notify {
|
2018-08-09 11:34:46 +08:00
|
|
|
|
display: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-layout layui-layout-admin" style="padding-left: 40px;margin-top: 20px;">
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<form class="layui-form" action="" method="post">
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200">任务名称</label>
|
|
|
|
|
|
<div class="layui-input-inline mw400">
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<input type="text" name="task_name" id="task_name" lay-verify="required" autocomplete="off"
|
|
|
|
|
|
placeholder="任务名称" class="layui-input" value="">
|
2017-06-23 12:24:42 +08:00
|
|
|
|
</div>
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-mid layui-word-aux"></div>
|
2017-06-23 12:24:42 +08:00
|
|
|
|
</div>
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200">所属分组</label>
|
|
|
|
|
|
<div class="layui-input-inline">
|
|
|
|
|
|
<select name="group_id" lay-verify="required">
|
|
|
|
|
|
{{range $k, $v := .taskGroup}}
|
|
|
|
|
|
<option value="{{$k}}">{{$v}}</option>
|
|
|
|
|
|
{{end}}
|
|
|
|
|
|
</select>
|
2017-06-30 15:49:33 +08:00
|
|
|
|
</div>
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-mid layui-word-aux"></div>
|
|
|
|
|
|
</div>
|
2017-06-30 15:49:33 +08:00
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200">服务器资源</label>
|
|
|
|
|
|
<div class="layui-inline">
|
2017-06-23 12:24:42 +08:00
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-input-inline">
|
|
|
|
|
|
<select name="server_id">
|
2017-08-17 11:49:53 +08:00
|
|
|
|
<option value="0">本地服务器</option>
|
2019-02-16 20:43:33 +08:00
|
|
|
|
{{range $k, $v := .serverGroup}}
|
|
|
|
|
|
<optgroup label="{{$v.GroupName}}">
|
|
|
|
|
|
{{range $kk, $vv := $v.Servers}}
|
|
|
|
|
|
<option value="{{$kk}}">{{$vv}}</option>
|
2017-08-17 11:49:53 +08:00
|
|
|
|
{{end}}
|
2019-02-16 20:43:33 +08:00
|
|
|
|
</optgroup>
|
|
|
|
|
|
{{end}}
|
2017-08-17 11:49:53 +08:00
|
|
|
|
</select>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2018-07-13 17:53:34 +08:00
|
|
|
|
</div>
|
2017-08-17 11:49:53 +08:00
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200">任务说明</label>
|
|
|
|
|
|
<div class="layui-input-inline mw400">
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<textarea name="description" id="description" rows="2" placeholder="请输入内容"
|
|
|
|
|
|
class="layui-textarea"></textarea>
|
2017-06-30 15:49:33 +08:00
|
|
|
|
</div>
|
2018-07-13 17:53:34 +08:00
|
|
|
|
</div>
|
2017-06-30 15:49:33 +08:00
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200">是否单例</label>
|
|
|
|
|
|
<div class="layui-input-inline ">
|
2017-06-23 12:24:42 +08:00
|
|
|
|
|
2018-08-09 11:34:46 +08:00
|
|
|
|
<input type="radio" name="concurrent" lay-verify="required" value="0" title="是" checked>
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<input type="radio" name="concurrent" lay-verify="required" value="1" title="否">
|
2017-06-23 12:24:42 +08:00
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
</div>
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<div class="layui-form-mid layui-word-aux"><i class="fa fa-info-circle" aria-hidden="true" id="des"></i>
|
|
|
|
|
|
</div>
|
2018-07-13 17:53:34 +08:00
|
|
|
|
</div>
|
2017-06-30 15:49:33 +08:00
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200">时间表达式</label>
|
|
|
|
|
|
<div class="layui-input-inline mw400">
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<input type="text" name="cron_spec" id="cron_spec" lay-verify="required" autocomplete="off"
|
|
|
|
|
|
placeholder="时间表达式" class="layui-input" value="">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="layui-form-mid layui-word-aux"><a href="/help" target="_blank"><i class="fa fa-question-circle"
|
|
|
|
|
|
aria-hidden="true"></i></a>
|
2017-06-23 12:24:42 +08:00
|
|
|
|
</div>
|
2018-07-13 17:53:34 +08:00
|
|
|
|
</div>
|
2017-06-23 12:24:42 +08:00
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200">命令脚本</label>
|
|
|
|
|
|
<div class="layui-input-inline mw400">
|
|
|
|
|
|
<textarea name="command" id="command" rows="5" placeholder="请输入命令内容" class="layui-textarea"></textarea>
|
2017-06-23 12:24:42 +08:00
|
|
|
|
</div>
|
2018-07-13 17:53:34 +08:00
|
|
|
|
</div>
|
2017-06-23 12:24:42 +08:00
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200">超时设置</label>
|
|
|
|
|
|
<div class="layui-input-inline">
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<input type="text" name="timeout" id="timeout" lay-verify="required" autocomplete="off"
|
|
|
|
|
|
placeholder="单位:秒,默认一天" class="layui-input" value="">
|
2018-07-13 17:53:34 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="layui-form-mid layui-word-aux"></div>
|
|
|
|
|
|
</div>
|
2018-08-09 11:34:46 +08:00
|
|
|
|
|
|
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200">出错通知</label>
|
|
|
|
|
|
<div class="layui-input-inline ">
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<input type="radio" name="is_notify" lay-verify="required" value="1" lay-filter="is_notify" title="是">
|
|
|
|
|
|
<input type="radio" name="is_notify" lay-verify="required" value="0" lay-filter="is_notify" title="否"
|
|
|
|
|
|
checked>
|
2018-08-09 11:34:46 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="layui-form-mid layui-word-aux"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="layui-form-item notify">
|
|
|
|
|
|
<label class="layui-form-label mw200">通知类型</label>
|
2019-02-15 12:08:57 +08:00
|
|
|
|
<div class="layui-input-inline mw400">
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<input type="radio" name="notify_type" value="0" lay-filter="notify_type" title="邮件">
|
|
|
|
|
|
<input type="radio" name="notify_type" value="1" lay-filter="notify_type" title="短信">
|
|
|
|
|
|
<input type="radio" name="notify_type" value="2" lay-filter="notify_type" title="钉钉">
|
2019-02-17 07:07:33 +08:00
|
|
|
|
<input type="radio" name="notify_type" value="3" lay-filter="notify_type" title="微信">
|
2019-02-16 20:43:33 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="layui-form-mid layui-word-aux"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="layui-form-item notify">
|
|
|
|
|
|
<label class="layui-form-label mw200">通知模板</label>
|
|
|
|
|
|
<div class="layui-input-inline">
|
|
|
|
|
|
<select name="notify_tpl_id" lay-filter="notify_tpl_id">
|
|
|
|
|
|
<option value="0" selected>请选择</option>
|
|
|
|
|
|
</select>
|
2018-08-09 11:34:46 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="layui-form-mid layui-word-aux"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="layui-form-item notify">
|
|
|
|
|
|
<label class="layui-form-label mw200">通知用户</label>
|
|
|
|
|
|
<div class="layui-input-inline mw400 ">
|
|
|
|
|
|
{{range $k, $v := .adminInfo}}
|
2019-02-16 20:43:33 +08:00
|
|
|
|
<input type="checkbox" name="notify_user" lay-filter="notify_user" title="{{$v.RealName}}"
|
|
|
|
|
|
value="{{$v.Id}}" lay-skin="primary">
|
2018-08-09 11:34:46 +08:00
|
|
|
|
{{end}}
|
|
|
|
|
|
<input type="hidden" name="notify_user_ids" id="notify_user_ids" value="">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="layui-form-mid layui-word-aux"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
<input type="hidden" name="id" id="id" value="0">
|
|
|
|
|
|
<div class="layui-form-item">
|
|
|
|
|
|
<label class="layui-form-label mw200"></label>
|
|
|
|
|
|
<div class="layui-input-inline mw400">
|
|
|
|
|
|
<button class="layui-btn" lay-submit="" lay-filter="sub">立即提交</button>
|
|
|
|
|
|
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
</div>
|
2017-06-23 12:24:42 +08:00
|
|
|
|
<script>
|
2019-02-16 20:43:33 +08:00
|
|
|
|
layui.use(['form', 'element', 'layer', 'jquery'], function () {
|
2018-07-13 17:53:34 +08:00
|
|
|
|
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
|
|
|
|
|
|
var $ = layui.jquery;
|
|
|
|
|
|
var error_info = "{{.flash.error}}";
|
2019-02-16 20:43:33 +08:00
|
|
|
|
if (error_info) {
|
|
|
|
|
|
layer.msg(error_info, {icon: 2, shade: 0.3}, function () {
|
2018-07-13 17:53:34 +08:00
|
|
|
|
window.history.go(-1)
|
|
|
|
|
|
})
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2019-02-16 20:43:33 +08:00
|
|
|
|
$("#des").on('click', function () {
|
2018-07-13 17:53:34 +08:00
|
|
|
|
layer.tips('设为“是”的话,如果该任务在上一个时间点还没执行完,则略过不执行', '#des', {
|
|
|
|
|
|
tips: [1, '#0FA6D8'] //还可配置颜色
|
|
|
|
|
|
});
|
|
|
|
|
|
})
|
|
|
|
|
|
|
2017-08-17 11:49:53 +08:00
|
|
|
|
|
2018-08-09 11:34:46 +08:00
|
|
|
|
var notify_user_ids = [];
|
2019-02-16 20:43:33 +08:00
|
|
|
|
form.on('checkbox(notify_user)', function (data) {
|
|
|
|
|
|
if (data.elem.checked == true) {
|
2018-08-09 11:34:46 +08:00
|
|
|
|
notify_user_ids.push(data.value)
|
2019-02-16 20:43:33 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
$.each(notify_user_ids, function (index, item) {
|
2018-08-09 11:34:46 +08:00
|
|
|
|
// index是索引值(即下标) item是每次遍历得到的值;
|
2019-02-16 20:43:33 +08:00
|
|
|
|
if (item == data.value) {
|
|
|
|
|
|
notify_user_ids.splice(index, 1);
|
2018-08-09 11:34:46 +08:00
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
$("#notify_user_ids").val(notify_user_ids.join(","));
|
|
|
|
|
|
});
|
2019-02-16 20:43:33 +08:00
|
|
|
|
form.on('radio(is_notify)', function (data) {
|
|
|
|
|
|
if (data.value == 1) {
|
2018-08-09 11:34:46 +08:00
|
|
|
|
$(".notify").show()
|
2019-02-16 20:43:33 +08:00
|
|
|
|
} else {
|
2018-08-09 11:34:46 +08:00
|
|
|
|
$(".notify").hide()
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2019-02-16 20:43:33 +08:00
|
|
|
|
form.on('submit(sub)', function (data) {
|
2018-07-13 17:53:34 +08:00
|
|
|
|
var form_data = data.field;
|
|
|
|
|
|
$.post('{{urlfor "TaskController.AjaxSave"}}', form_data, function (out) {
|
|
|
|
|
|
if (out.status == 0) {
|
2019-02-16 20:43:33 +08:00
|
|
|
|
layer.msg("操作成功", {icon: 1, shade: 0.3, time: 1000}, function () {
|
2018-11-21 11:10:22 +08:00
|
|
|
|
// window.history.go(-1)
|
|
|
|
|
|
window.location.reload();
|
2018-07-13 17:53:34 +08:00
|
|
|
|
})
|
2018-11-21 11:10:22 +08:00
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
layer.msg(out.message)
|
|
|
|
|
|
}
|
|
|
|
|
|
}, "json");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2019-02-16 20:43:33 +08:00
|
|
|
|
form.on('radio(notify_type)', function (data) {
|
|
|
|
|
|
$.post('{{urlfor "TaskController.AjaxNotifyType"}}', {notify_type: data.value}, function (out) {
|
|
|
|
|
|
if (out.code == 0) {
|
|
|
|
|
|
$('select[name="notify_tpl_id"]').empty();
|
|
|
|
|
|
$('<option value="0" selected>请选择</option>').appendTo('select[name="notify_tpl_id"]');
|
|
|
|
|
|
for (var i = 0; i < out.data.length; i++) {
|
|
|
|
|
|
$('<option value="' + out.data[i].id + '">' + out.data[i].tpl_name + '</option>').appendTo('select[name="notify_tpl_id"]');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
form.render();
|
|
|
|
|
|
} else {
|
|
|
|
|
|
layer.msg(out.message)
|
|
|
|
|
|
}
|
|
|
|
|
|
}, "json");
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2018-07-13 17:53:34 +08:00
|
|
|
|
//但是,如果你的HTML是动态生成的,自动渲染就会失效
|
|
|
|
|
|
//因此你需要在相应的地方,执行下述方法来手动渲染,跟这类似的还有 element.init();
|
|
|
|
|
|
form.render();
|
|
|
|
|
|
});
|
2017-06-23 12:24:42 +08:00
|
|
|
|
</script>
|