V2.8.1
修复几处bug
This commit is contained in:
@@ -67,8 +67,7 @@ func (self *BaseController) Auth() {
|
||||
if userId > 0 {
|
||||
user, err := models.AdminGetById(userId)
|
||||
|
||||
//if err == nil && password == libs.Md5([]byte(self.getClientIp()+"|"+user.Password+user.Salt)) {
|
||||
if err == nil && password == libs.Md5([]byte(user.Password+user.Salt)){
|
||||
if err == nil && password == libs.Md5([]byte(self.getClientIp()+"|"+user.Password+user.Salt)) {
|
||||
self.userId = user.Id
|
||||
self.loginName = user.LoginName
|
||||
self.userName = user.RealName
|
||||
@@ -78,7 +77,7 @@ func (self *BaseController) Auth() {
|
||||
}
|
||||
|
||||
isHasAuth := strings.Contains(self.allowUrl, self.controllerName+"/"+self.actionName)
|
||||
noAuth := "ajaxsave/table/loginin/loginout/getnodes/start/apitask/apistart/apipause"
|
||||
noAuth := "ajaxsave/table/loginin/loginout/getnodes/start/apitask/apistart/apipause"
|
||||
isNoAuth := strings.Contains(noAuth, self.actionName)
|
||||
|
||||
if isHasAuth == false && isNoAuth == false {
|
||||
|
||||
@@ -50,7 +50,7 @@ func (self *LoginController) LoginIn() {
|
||||
user.LastIp = self.getClientIp()
|
||||
user.LastLogin = time.Now().Unix()
|
||||
user.Update()
|
||||
authkey := libs.Md5([]byte(user.Password + user.Salt))
|
||||
authkey := libs.Md5([]byte(self.getClientIp() + "|" + user.Password + user.Salt))
|
||||
self.Ctx.SetCookie("auth", strconv.Itoa(user.Id)+"|"+authkey, 7*86400)
|
||||
|
||||
self.ajaxMsg("登录成功", MSG_OK)
|
||||
|
||||
27
jobs/job.go
27
jobs/job.go
@@ -222,16 +222,19 @@ func RemoteCommandJob(id int, serverId int, name string, command string, servers
|
||||
jobresult.OutMsg = ""
|
||||
jobresult.ErrMsg = ""
|
||||
jobresult.IsTimeout = false
|
||||
jobresult.IsOk = true
|
||||
|
||||
key, err := ioutil.ReadFile(servers.PrivateKeySrc)
|
||||
if err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("读取私钥失败,%v", err.Error())
|
||||
return
|
||||
}
|
||||
// Create the Signer for this private key.
|
||||
signer, err := ssh.ParsePrivateKey(key)
|
||||
if err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("创建签名失败,%v", err.Error())
|
||||
return
|
||||
}
|
||||
addr := fmt.Sprintf("%s:%d", servers.ServerIp, servers.Port)
|
||||
@@ -250,6 +253,7 @@ func RemoteCommandJob(id int, serverId int, name string, command string, servers
|
||||
client, err := ssh.Dial("tcp", addr, config)
|
||||
if err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
@@ -258,6 +262,7 @@ func RemoteCommandJob(id int, serverId int, name string, command string, servers
|
||||
session, err := client.NewSession()
|
||||
if err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败,%v", err.Error())
|
||||
return
|
||||
}
|
||||
defer session.Close()
|
||||
@@ -269,16 +274,16 @@ func RemoteCommandJob(id int, serverId int, name string, command string, servers
|
||||
var c bytes.Buffer
|
||||
session.Stdout = &b
|
||||
session.Stderr = &c
|
||||
|
||||
jobresult.IsTimeout = false
|
||||
//session.Output(command)
|
||||
if err := session.Run(command); err != nil {
|
||||
jobresult.ErrMsg = c.String()
|
||||
jobresult.OutMsg = b.String()
|
||||
jobresult.IsOk = false
|
||||
return
|
||||
}
|
||||
jobresult.OutMsg = b.String()
|
||||
jobresult.ErrMsg = c.String()
|
||||
jobresult.IsOk = true
|
||||
jobresult.IsTimeout = false
|
||||
return
|
||||
}
|
||||
return job
|
||||
@@ -306,6 +311,7 @@ func RemoteCommandJobByPassword(id int, serverId int, name string, command strin
|
||||
jobresult.OutMsg = ""
|
||||
jobresult.ErrMsg = ""
|
||||
jobresult.IsTimeout = false
|
||||
jobresult.IsOk = true
|
||||
|
||||
// get auth method
|
||||
auth = make([]ssh.AuthMethod, 0)
|
||||
@@ -325,6 +331,7 @@ func RemoteCommandJobByPassword(id int, serverId int, name string, command strin
|
||||
|
||||
if client, err = ssh.Dial("tcp", addr, clientConfig); err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("连接服务器失败,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
@@ -333,6 +340,7 @@ func RemoteCommandJobByPassword(id int, serverId int, name string, command strin
|
||||
// create session
|
||||
if session, err = client.NewSession(); err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("连接服务器失败,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
@@ -343,12 +351,9 @@ func RemoteCommandJobByPassword(id int, serverId int, name string, command strin
|
||||
//session.Output(command)
|
||||
if err := session.Run(command); err != nil {
|
||||
jobresult.IsOk = false
|
||||
return
|
||||
}
|
||||
jobresult.OutMsg = b.String()
|
||||
jobresult.ErrMsg = c.String()
|
||||
jobresult.IsOk = true
|
||||
jobresult.IsTimeout = false
|
||||
return
|
||||
}
|
||||
|
||||
@@ -369,11 +374,13 @@ func RemoteCommandJobByTelnetPassword(id int, serverId int, name string, command
|
||||
jobresult.OutMsg = ""
|
||||
jobresult.ErrMsg = ""
|
||||
jobresult.IsTimeout = false
|
||||
jobresult.IsOk = true
|
||||
|
||||
addr := fmt.Sprintf("%s:%d", servers.ServerIp, servers.Port)
|
||||
conn, err := gote.DialTimeout("tcp", addr, timeout)
|
||||
if err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败0,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
@@ -383,26 +390,31 @@ func RemoteCommandJobByTelnetPassword(id int, serverId int, name string, command
|
||||
|
||||
if _, err = conn.Read(buf); err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-1,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if _, err = conn.Write([]byte(servers.ServerAccount + "\r\n")); err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-2,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if _, err = conn.Read(buf); err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-3,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if _, err = conn.Write([]byte(servers.Password + "\r\n")); err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-4,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if _, err = conn.Read(buf); err != nil {
|
||||
jobresult.IsOk = false
|
||||
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-5,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
@@ -419,6 +431,7 @@ func RemoteCommandJobByTelnetPassword(id int, serverId int, name string, command
|
||||
for _, c := range commandArr {
|
||||
_, err = conn.Write([]byte(c + "\r\n"))
|
||||
if err != nil {
|
||||
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-6,%v", err.Error())
|
||||
jobresult.IsOk = false
|
||||
return
|
||||
}
|
||||
@@ -717,7 +730,7 @@ func (j *Job) Run() {
|
||||
content = strings.Replace(content, "{{TaskId}}", strconv.Itoa(j.Task.Id), -1)
|
||||
content = strings.Replace(content, "{{ServerId}}", strconv.Itoa(j.ServerId), -1)
|
||||
content = strings.Replace(content, "{{TaskName}}", j.Task.TaskName, -1)
|
||||
content = strings.Replace(content, "{{ExecuteCommand}}", j.Task.Command, -1)
|
||||
content = strings.Replace(content, "{{ExecuteCommand}}", strings.Replace(j.Task.Command, "\"", "\\\"", -1), -1)
|
||||
content = strings.Replace(content, "{{ExecuteTime}}", beego.Date(time.Unix(log.CreateTime, 0), "Y-m-d H:i:s"), -1)
|
||||
content = strings.Replace(content, "{{ProcessTime}}", strconv.FormatFloat(float64(log.ProcessTime)/1000, 'f', 6, 64), -1)
|
||||
content = strings.Replace(content, "{{ExecuteStatus}}", TextStatus[status], -1)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<button class="layui-btn" data-type="tabAdd" id="add">新增</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="tabAdd" id="add">新增</button>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text">
|
||||
<form class="layui-form" action="" onsubmit="javascript:return false;">
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="layui-inline" style="width: 40%">
|
||||
<input class="layui-input" name="realName" id="realName" autocomplete="off" placeholder="真实姓名" >
|
||||
</div>
|
||||
<button class="layui-btn" data-type="reload">查询</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
table.render({
|
||||
elem: '#table_list'
|
||||
,url: '/admin/table'
|
||||
,size: 'sm' //小尺寸的表格
|
||||
,cols: [[
|
||||
// {checkbox: true, fixed: true},
|
||||
{field:'id', title: 'ID', align:'center',sort: true, width:150}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<a class="layui-btn" data-type="tabAdd" id="tabAdd" href="javascript:void(0)">新增</a>
|
||||
<a class="layui-btn layui-btn-sm" data-type="tabAdd" id="tabAdd" href="javascript:void(0)">新增</a>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text">
|
||||
<form class="layui-form" action="" onsubmit="javascript:return false;">
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="layui-inline" style="width: 40%">
|
||||
<input class="layui-input" name="code" id="code" autocomplete="off" placeholder="禁用命令" >
|
||||
</div>
|
||||
<button class="layui-btn" data-type="reload">查询</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
table.render({
|
||||
elem: '#table_list'
|
||||
,url: '/ban/table'
|
||||
,size: 'sm' //小尺寸的表格
|
||||
,cols: [[
|
||||
// {checkbox: true, fixed: true},
|
||||
{field:'id', title: 'ID', align:'center',sort: true, width:150}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<button class="layui-btn" data-type="tabAdd" id="add">新增</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="tabAdd" id="add">新增</button>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text">
|
||||
<form class="layui-form" action="" onsubmit="javascript:return false;">
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="layui-inline" style="width: 40%">
|
||||
<input class="layui-input" name="groupName" id="groupName" autocomplete="off" placeholder="分组名称" >
|
||||
</div>
|
||||
<button class="layui-btn" data-type="reload">查询</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
table.render({
|
||||
elem: '#table_list'
|
||||
,url: '/group/table'
|
||||
,size: 'sm' //小尺寸的表格
|
||||
,cols: [[
|
||||
// {checkbox: true, fixed: true},
|
||||
{field:'id', title: 'ID', align:'center',sort: true, width:150}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<button class="layui-btn" data-type="tabAdd" id="add">新增</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="tabAdd" id="add">新增</button>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text">
|
||||
<form class="layui-form" action="" onsubmit="javascript:return false;">
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="layui-inline" style="width: 40%">
|
||||
<input class="layui-input" name="tplName" id="tplName" autocomplete="off" placeholder="模板名称">
|
||||
</div>
|
||||
<button class="layui-btn" data-type="reload">查询</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
table.render({
|
||||
elem: '#table_list'
|
||||
, url: '/notifytpl/table'
|
||||
,size: 'sm' //小尺寸的表格
|
||||
, cols: [[
|
||||
{checkbox: true, fixed: true},
|
||||
{field: 'id', title: 'ID', align: 'center', sort: true, width: 150},
|
||||
|
||||
@@ -17,6 +17,18 @@
|
||||
.modal-hide{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*控制按钮和input大小*/
|
||||
.layui-form-label {
|
||||
padding: 5px 15px;
|
||||
}
|
||||
.layui-input, .layui-select, .layui-textarea {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.layui-form-select dl dd, .layui-form-select dl dt {
|
||||
line-height: 30px;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<!-- 公共头部 start-->
|
||||
|
||||
@@ -26,13 +26,14 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">资源分组</label>
|
||||
<div class="layui-input-inline mw400 ">
|
||||
<input type="checkbox" name="server_group_id" lay-filter="server_group_id" title="本地服务器组" value="0" lay-skin="primary" checked>
|
||||
<input type="checkbox" name="server_group_id" lay-filter="server_group_id" title="本地服务器组" value="0" lay-skin="primary" {{range $ks,$vs:=$.server_group_ids}} {{if eq $vs 0}}checked {{end}}{{end}}>
|
||||
{{range $k, $v := .serverGroup}}
|
||||
<input type="checkbox" name="server_group_id" lay-filter="server_group_id" title="{{$v.GroupName}}" value="{{$v.GroupId}}" {{range $ks,$vs:=$.server_group_ids}} {{if eq $v.GroupId $vs}}checked{{end}}{{end}} lay-skin="primary">
|
||||
<input type="checkbox" name="server_group_id" lay-filter="server_group_id" title="{{$v.GroupName}}" value="{{$v.GroupId}}" {{range $ks,$vs:=$.server_group_ids}} {{if eq $vs $v.GroupId}}checked {{end}}{{end}} lay-skin="primary">
|
||||
{{end}}
|
||||
<input type="hidden" name="server_group_ids" id="server_group_ids" value="{{.role.server_group_ids}}">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux"></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<button class="layui-btn" data-type="tabAdd" id="add">新增</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="tabAdd" id="add">新增</button>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text">
|
||||
<form class="layui-form" action="" onsubmit="javascript:return false;">
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="layui-inline" style="width: 40%">
|
||||
<input class="layui-input" name="roleName" id="roleName" autocomplete="off" placeholder="角色名称" >
|
||||
</div>
|
||||
<button class="layui-btn" data-type="reload">查询</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
table.render({
|
||||
elem: '#table_list'
|
||||
,url: '/role/table'
|
||||
,size: 'sm' //小尺寸的表格
|
||||
,cols: [[
|
||||
// {checkbox: true, fixed: true},
|
||||
{field:'id', title: 'ID', align:'center',sort: true, width:150}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<button class="layui-btn" data-type="tabAdd" id="add">新增</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="tabAdd" id="add">新增</button>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text">
|
||||
<form class="layui-form" action="" onsubmit="javascript:return false;">
|
||||
@@ -17,7 +17,7 @@
|
||||
{{end}}
|
||||
</select>
|
||||
</div>
|
||||
<button class="layui-btn" data-type="reload">查询</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
table.render({
|
||||
elem: '#table_list'
|
||||
,url: '/server/table'
|
||||
,size: 'sm' //小尺寸的表格
|
||||
,cols: [[
|
||||
// {checkbox: true, fixed: true},
|
||||
{field:'id', title: 'ID', align:'center',sort: true, width:80}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<button class="layui-btn" data-type="tabAdd" id="add">新增</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="tabAdd" id="add">新增</button>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text">
|
||||
<form class="layui-form" action="" onsubmit="javascript:return false;">
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="layui-inline" style="width: 40%">
|
||||
<input class="layui-input" name="groupName" id="groupName" autocomplete="off" placeholder="分组名称" >
|
||||
</div>
|
||||
<button class="layui-btn" data-type="reload">查询</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
table.render({
|
||||
elem: '#table_list'
|
||||
,url: '/servergroup/table'
|
||||
,size: 'sm' //小尺寸的表格
|
||||
,cols: [[
|
||||
// {checkbox: true, fixed: true},
|
||||
{field:'id', title: 'ID', align:'center',sort: true, width:150}
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<div class="layui-btn-group">
|
||||
<a class="layui-btn" data-type="tabAdd" href="/task/add">新增任务</a>
|
||||
<button class="layui-btn batch" data-type="batchaudit" >审核通过</button>
|
||||
<button class="layui-btn layui-btn-danger batch" data-type="batchnopass" >审核不通过</button>
|
||||
<a class="layui-btn layui-btn-sm" data-type="tabAdd" href="/task/add">新增任务</a>
|
||||
<button class="layui-btn layui-btn-sm batch" data-type="batchaudit" >审核通过</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger batch" data-type="batchnopass" >审核不通过</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text">
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<input class="layui-input" name="taskName" id="taskName" autocomplete="off" placeholder="任务名称" >
|
||||
</div>
|
||||
<button class="layui-btn" data-type="reload" id="reload">查询</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="reload" id="reload">查询</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
|
||||
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<div class="layui-btn-group">
|
||||
<button class="layui-btn" data-type="tabAdd" id="add">新增</button>
|
||||
<button class="layui-btn batch" data-type="batchstart" >启动</button>
|
||||
<button class="layui-btn layui-btn-danger batch" data-type="batchpause" >暂停</button>cron
|
||||
<button class="layui-btn layui-btn-sm" data-type="tabAdd" id="add">新增</button>
|
||||
<button class="layui-btn layui-btn-sm batch" data-type="batchstart" >启动</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger batch" data-type="batchpause" >暂停</button>cron
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text" style="text-align: right;">
|
||||
|
||||
<form class="layui-form" action="" onsubmit="javascript:return false;">
|
||||
<div class="demoTable">
|
||||
<div class="layui-inline" style="width: 40%">
|
||||
<div class="layui-inline" style="width: 40%;">
|
||||
<input class="layui-input" name="task_name" id="task_name" autocomplete="off" placeholder="任务名称" >
|
||||
</div>
|
||||
<div class="layui-inline pp-search" style="width: 20%;text-align: left;">
|
||||
@@ -22,7 +23,7 @@
|
||||
{{end}}
|
||||
</select>
|
||||
</div>
|
||||
<button class="layui-btn" data-type="reload" id="search"><i class="fa fa-search"></i>查询</button>
|
||||
<button class="layui-btn layui-btn-sm" data-type="reload" id="search"><i class="fa fa-search"></i>查询</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -56,6 +57,7 @@
|
||||
table.render({
|
||||
elem: '#table_list'
|
||||
,url: '/task/table'
|
||||
,size: 'sm' //小尺寸的表格
|
||||
,cols: [[
|
||||
{checkbox: true, fixed: true},
|
||||
{field:'id', title: 'ID', align:'center', width:80,sort: true}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
|
||||
<div class="layui-row" style="margin-top: 20px;">
|
||||
<div class="layui-col-xs6">
|
||||
<button class="layui-btn layui-btn-danger" data-type="tabDel" id="tabDel">批量删除</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger" data-type="tabDel" id="tabDel">批量删除</button>
|
||||
</div>
|
||||
<div class="layui-col-xs6 search_text">
|
||||
<form class="layui-form" action="" onsubmit="javascript:return false;">
|
||||
@@ -44,6 +44,7 @@
|
||||
table.render({
|
||||
elem: '#table_list'
|
||||
,url: "/tasklog/table?task_id={{.task_id}}"
|
||||
,size: 'sm' //小尺寸的表格
|
||||
,cols: [[
|
||||
{checkbox: true, fixed: true}
|
||||
// ,{field:'id', title: 'ID', align:'center',sort: true, width:150}
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否修改</label>
|
||||
<label class="layui-form-label">密码修改</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="radio" name="reset_pwd" lay-verify="reset_pwd" value="1" title="是">
|
||||
<input type="radio" name="reset_pwd" lay-verify="reset_pwd" value="2" title="否" checked>
|
||||
|
||||
Reference in New Issue
Block a user