修复几处bug
This commit is contained in:
georgehao
2021-05-18 00:31:24 +08:00
parent 78efeef490
commit 5fbc2bbe6e
16 changed files with 73 additions and 38 deletions

View File

@@ -67,8 +67,7 @@ func (self *BaseController) Auth() {
if userId > 0 { if userId > 0 {
user, err := models.AdminGetById(userId) 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(self.getClientIp()+"|"+user.Password+user.Salt)) {
if err == nil && password == libs.Md5([]byte(user.Password+user.Salt)){
self.userId = user.Id self.userId = user.Id
self.loginName = user.LoginName self.loginName = user.LoginName
self.userName = user.RealName self.userName = user.RealName
@@ -78,7 +77,7 @@ func (self *BaseController) Auth() {
} }
isHasAuth := strings.Contains(self.allowUrl, self.controllerName+"/"+self.actionName) isHasAuth := strings.Contains(self.allowUrl, self.controllerName+"/"+self.actionName)
noAuth := "ajaxsave/table/loginin/loginout/getnodes/startapitask/apistart/apipause" noAuth := "ajaxsave/table/loginin/loginout/getnodes/start/apitask/apistart/apipause"
isNoAuth := strings.Contains(noAuth, self.actionName) isNoAuth := strings.Contains(noAuth, self.actionName)
if isHasAuth == false && isNoAuth == false { if isHasAuth == false && isNoAuth == false {

View File

@@ -50,7 +50,7 @@ func (self *LoginController) LoginIn() {
user.LastIp = self.getClientIp() user.LastIp = self.getClientIp()
user.LastLogin = time.Now().Unix() user.LastLogin = time.Now().Unix()
user.Update() 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.Ctx.SetCookie("auth", strconv.Itoa(user.Id)+"|"+authkey, 7*86400)
self.ajaxMsg("登录成功", MSG_OK) self.ajaxMsg("登录成功", MSG_OK)

View File

@@ -222,16 +222,19 @@ func RemoteCommandJob(id int, serverId int, name string, command string, servers
jobresult.OutMsg = "" jobresult.OutMsg = ""
jobresult.ErrMsg = "" jobresult.ErrMsg = ""
jobresult.IsTimeout = false jobresult.IsTimeout = false
jobresult.IsOk = true
key, err := ioutil.ReadFile(servers.PrivateKeySrc) key, err := ioutil.ReadFile(servers.PrivateKeySrc)
if err != nil { if err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("读取私钥失败,%v", err.Error())
return return
} }
// Create the Signer for this private key. // Create the Signer for this private key.
signer, err := ssh.ParsePrivateKey(key) signer, err := ssh.ParsePrivateKey(key)
if err != nil { if err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("创建签名失败,%v", err.Error())
return return
} }
addr := fmt.Sprintf("%s:%d", servers.ServerIp, servers.Port) 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) client, err := ssh.Dial("tcp", addr, config)
if err != nil { if err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败,%v", err.Error())
return return
} }
@@ -258,6 +262,7 @@ func RemoteCommandJob(id int, serverId int, name string, command string, servers
session, err := client.NewSession() session, err := client.NewSession()
if err != nil { if err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败,%v", err.Error())
return return
} }
defer session.Close() defer session.Close()
@@ -269,16 +274,16 @@ func RemoteCommandJob(id int, serverId int, name string, command string, servers
var c bytes.Buffer var c bytes.Buffer
session.Stdout = &b session.Stdout = &b
session.Stderr = &c session.Stderr = &c
jobresult.IsTimeout = false
//session.Output(command) //session.Output(command)
if err := session.Run(command); err != nil { if err := session.Run(command); err != nil {
jobresult.ErrMsg = c.String()
jobresult.OutMsg = b.String()
jobresult.IsOk = false jobresult.IsOk = false
return
} }
jobresult.OutMsg = b.String() jobresult.OutMsg = b.String()
jobresult.ErrMsg = c.String() jobresult.ErrMsg = c.String()
jobresult.IsOk = true jobresult.IsOk = true
jobresult.IsTimeout = false
return return
} }
return job return job
@@ -306,6 +311,7 @@ func RemoteCommandJobByPassword(id int, serverId int, name string, command strin
jobresult.OutMsg = "" jobresult.OutMsg = ""
jobresult.ErrMsg = "" jobresult.ErrMsg = ""
jobresult.IsTimeout = false jobresult.IsTimeout = false
jobresult.IsOk = true
// get auth method // get auth method
auth = make([]ssh.AuthMethod, 0) 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 { if client, err = ssh.Dial("tcp", addr, clientConfig); err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("连接服务器失败,%v", err.Error())
return return
} }
@@ -333,6 +340,7 @@ func RemoteCommandJobByPassword(id int, serverId int, name string, command strin
// create session // create session
if session, err = client.NewSession(); err != nil { if session, err = client.NewSession(); err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("连接服务器失败,%v", err.Error())
return return
} }
@@ -343,12 +351,9 @@ func RemoteCommandJobByPassword(id int, serverId int, name string, command strin
//session.Output(command) //session.Output(command)
if err := session.Run(command); err != nil { if err := session.Run(command); err != nil {
jobresult.IsOk = false jobresult.IsOk = false
return
} }
jobresult.OutMsg = b.String() jobresult.OutMsg = b.String()
jobresult.ErrMsg = c.String() jobresult.ErrMsg = c.String()
jobresult.IsOk = true
jobresult.IsTimeout = false
return return
} }
@@ -369,11 +374,13 @@ func RemoteCommandJobByTelnetPassword(id int, serverId int, name string, command
jobresult.OutMsg = "" jobresult.OutMsg = ""
jobresult.ErrMsg = "" jobresult.ErrMsg = ""
jobresult.IsTimeout = false jobresult.IsTimeout = false
jobresult.IsOk = true
addr := fmt.Sprintf("%s:%d", servers.ServerIp, servers.Port) addr := fmt.Sprintf("%s:%d", servers.ServerIp, servers.Port)
conn, err := gote.DialTimeout("tcp", addr, timeout) conn, err := gote.DialTimeout("tcp", addr, timeout)
if err != nil { if err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败0%v", err.Error())
return return
} }
@@ -383,26 +390,31 @@ func RemoteCommandJobByTelnetPassword(id int, serverId int, name string, command
if _, err = conn.Read(buf); err != nil { if _, err = conn.Read(buf); err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-1%v", err.Error())
return return
} }
if _, err = conn.Write([]byte(servers.ServerAccount + "\r\n")); err != nil { if _, err = conn.Write([]byte(servers.ServerAccount + "\r\n")); err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-2%v", err.Error())
return return
} }
if _, err = conn.Read(buf); err != nil { if _, err = conn.Read(buf); err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-3%v", err.Error())
return return
} }
if _, err = conn.Write([]byte(servers.Password + "\r\n")); err != nil { if _, err = conn.Write([]byte(servers.Password + "\r\n")); err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-4%v", err.Error())
return return
} }
if _, err = conn.Read(buf); err != nil { if _, err = conn.Read(buf); err != nil {
jobresult.IsOk = false jobresult.IsOk = false
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-5%v", err.Error())
return return
} }
@@ -419,6 +431,7 @@ func RemoteCommandJobByTelnetPassword(id int, serverId int, name string, command
for _, c := range commandArr { for _, c := range commandArr {
_, err = conn.Write([]byte(c + "\r\n")) _, err = conn.Write([]byte(c + "\r\n"))
if err != nil { if err != nil {
jobresult.ErrMsg = fmt.Sprintf("服务器连接失败-6%v", err.Error())
jobresult.IsOk = false jobresult.IsOk = false
return return
} }
@@ -717,7 +730,7 @@ func (j *Job) Run() {
content = strings.Replace(content, "{{TaskId}}", strconv.Itoa(j.Task.Id), -1) 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, "{{ServerId}}", strconv.Itoa(j.ServerId), -1)
content = strings.Replace(content, "{{TaskName}}", j.Task.TaskName, -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, "{{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, "{{ProcessTime}}", strconv.FormatFloat(float64(log.ProcessTime)/1000, 'f', 6, 64), -1)
content = strings.Replace(content, "{{ExecuteStatus}}", TextStatus[status], -1) content = strings.Replace(content, "{{ExecuteStatus}}", TextStatus[status], -1)

View File

@@ -1,7 +1,7 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <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>
<div class="layui-col-xs6 search_text"> <div class="layui-col-xs6 search_text">
<form class="layui-form" action="" onsubmit="javascript:return false;"> <form class="layui-form" action="" onsubmit="javascript:return false;">
@@ -9,7 +9,7 @@
<div class="layui-inline" style="width: 40%"> <div class="layui-inline" style="width: 40%">
<input class="layui-input" name="realName" id="realName" autocomplete="off" placeholder="真实姓名" > <input class="layui-input" name="realName" id="realName" autocomplete="off" placeholder="真实姓名" >
</div> </div>
<button class="layui-btn" data-type="reload">查询</button> <button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
</div> </div>
</form> </form>
@@ -45,6 +45,7 @@
table.render({ table.render({
elem: '#table_list' elem: '#table_list'
,url: '/admin/table' ,url: '/admin/table'
,size: 'sm' //小尺寸的表格
,cols: [[ ,cols: [[
// {checkbox: true, fixed: true}, // {checkbox: true, fixed: true},
{field:'id', title: 'ID', align:'center',sort: true, width:150} {field:'id', title: 'ID', align:'center',sort: true, width:150}

View File

@@ -1,7 +1,7 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <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>
<div class="layui-col-xs6 search_text"> <div class="layui-col-xs6 search_text">
<form class="layui-form" action="" onsubmit="javascript:return false;"> <form class="layui-form" action="" onsubmit="javascript:return false;">
@@ -9,7 +9,7 @@
<div class="layui-inline" style="width: 40%"> <div class="layui-inline" style="width: 40%">
<input class="layui-input" name="code" id="code" autocomplete="off" placeholder="禁用命令" > <input class="layui-input" name="code" id="code" autocomplete="off" placeholder="禁用命令" >
</div> </div>
<button class="layui-btn" data-type="reload">查询</button> <button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
</div> </div>
</form> </form>
@@ -43,6 +43,7 @@
table.render({ table.render({
elem: '#table_list' elem: '#table_list'
,url: '/ban/table' ,url: '/ban/table'
,size: 'sm' //小尺寸的表格
,cols: [[ ,cols: [[
// {checkbox: true, fixed: true}, // {checkbox: true, fixed: true},
{field:'id', title: 'ID', align:'center',sort: true, width:150} {field:'id', title: 'ID', align:'center',sort: true, width:150}

View File

@@ -1,7 +1,7 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <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>
<div class="layui-col-xs6 search_text"> <div class="layui-col-xs6 search_text">
<form class="layui-form" action="" onsubmit="javascript:return false;"> <form class="layui-form" action="" onsubmit="javascript:return false;">
@@ -9,7 +9,7 @@
<div class="layui-inline" style="width: 40%"> <div class="layui-inline" style="width: 40%">
<input class="layui-input" name="groupName" id="groupName" autocomplete="off" placeholder="分组名称" > <input class="layui-input" name="groupName" id="groupName" autocomplete="off" placeholder="分组名称" >
</div> </div>
<button class="layui-btn" data-type="reload">查询</button> <button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
</div> </div>
</form> </form>
@@ -43,6 +43,7 @@
table.render({ table.render({
elem: '#table_list' elem: '#table_list'
,url: '/group/table' ,url: '/group/table'
,size: 'sm' //小尺寸的表格
,cols: [[ ,cols: [[
// {checkbox: true, fixed: true}, // {checkbox: true, fixed: true},
{field:'id', title: 'ID', align:'center',sort: true, width:150} {field:'id', title: 'ID', align:'center',sort: true, width:150}

View File

@@ -1,7 +1,7 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <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>
<div class="layui-col-xs6 search_text"> <div class="layui-col-xs6 search_text">
<form class="layui-form" action="" onsubmit="javascript:return false;"> <form class="layui-form" action="" onsubmit="javascript:return false;">
@@ -9,7 +9,7 @@
<div class="layui-inline" style="width: 40%"> <div class="layui-inline" style="width: 40%">
<input class="layui-input" name="tplName" id="tplName" autocomplete="off" placeholder="模板名称"> <input class="layui-input" name="tplName" id="tplName" autocomplete="off" placeholder="模板名称">
</div> </div>
<button class="layui-btn" data-type="reload">查询</button> <button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
</div> </div>
</form> </form>
@@ -41,6 +41,7 @@
table.render({ table.render({
elem: '#table_list' elem: '#table_list'
, url: '/notifytpl/table' , url: '/notifytpl/table'
,size: 'sm' //小尺寸的表格
, cols: [[ , cols: [[
{checkbox: true, fixed: true}, {checkbox: true, fixed: true},
{field: 'id', title: 'ID', align: 'center', sort: true, width: 150}, {field: 'id', title: 'ID', align: 'center', sort: true, width: 150},

View File

@@ -17,6 +17,18 @@
.modal-hide{ .modal-hide{
display: none; 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> </style>
<body> <body>
<!-- 公共头部 start--> <!-- 公共头部 start-->

View File

@@ -26,13 +26,14 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">资源分组</label> <label class="layui-form-label">资源分组</label>
<div class="layui-input-inline mw400 "> <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}} {{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}} {{end}}
<input type="hidden" name="server_group_ids" id="server_group_ids" value="{{.role.server_group_ids}}"> <input type="hidden" name="server_group_ids" id="server_group_ids" value="{{.role.server_group_ids}}">
</div> </div>
<div class="layui-form-mid layui-word-aux"></div> <div class="layui-form-mid layui-word-aux"></div>
</div> </div>

View File

@@ -1,7 +1,7 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <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>
<div class="layui-col-xs6 search_text"> <div class="layui-col-xs6 search_text">
<form class="layui-form" action="" onsubmit="javascript:return false;"> <form class="layui-form" action="" onsubmit="javascript:return false;">
@@ -9,7 +9,7 @@
<div class="layui-inline" style="width: 40%"> <div class="layui-inline" style="width: 40%">
<input class="layui-input" name="roleName" id="roleName" autocomplete="off" placeholder="角色名称" > <input class="layui-input" name="roleName" id="roleName" autocomplete="off" placeholder="角色名称" >
</div> </div>
<button class="layui-btn" data-type="reload">查询</button> <button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
</div> </div>
</form> </form>
@@ -40,6 +40,7 @@
table.render({ table.render({
elem: '#table_list' elem: '#table_list'
,url: '/role/table' ,url: '/role/table'
,size: 'sm' //小尺寸的表格
,cols: [[ ,cols: [[
// {checkbox: true, fixed: true}, // {checkbox: true, fixed: true},
{field:'id', title: 'ID', align:'center',sort: true, width:150} {field:'id', title: 'ID', align:'center',sort: true, width:150}

View File

@@ -1,7 +1,7 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <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>
<div class="layui-col-xs6 search_text"> <div class="layui-col-xs6 search_text">
<form class="layui-form" action="" onsubmit="javascript:return false;"> <form class="layui-form" action="" onsubmit="javascript:return false;">
@@ -17,7 +17,7 @@
{{end}} {{end}}
</select> </select>
</div> </div>
<button class="layui-btn" data-type="reload">查询</button> <button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
</div> </div>
</form> </form>
@@ -51,6 +51,7 @@
table.render({ table.render({
elem: '#table_list' elem: '#table_list'
,url: '/server/table' ,url: '/server/table'
,size: 'sm' //小尺寸的表格
,cols: [[ ,cols: [[
// {checkbox: true, fixed: true}, // {checkbox: true, fixed: true},
{field:'id', title: 'ID', align:'center',sort: true, width:80} {field:'id', title: 'ID', align:'center',sort: true, width:80}

View File

@@ -1,7 +1,7 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <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>
<div class="layui-col-xs6 search_text"> <div class="layui-col-xs6 search_text">
<form class="layui-form" action="" onsubmit="javascript:return false;"> <form class="layui-form" action="" onsubmit="javascript:return false;">
@@ -9,7 +9,7 @@
<div class="layui-inline" style="width: 40%"> <div class="layui-inline" style="width: 40%">
<input class="layui-input" name="groupName" id="groupName" autocomplete="off" placeholder="分组名称" > <input class="layui-input" name="groupName" id="groupName" autocomplete="off" placeholder="分组名称" >
</div> </div>
<button class="layui-btn" data-type="reload">查询</button> <button class="layui-btn layui-btn-sm" data-type="reload">查询</button>
</div> </div>
</form> </form>
@@ -43,6 +43,7 @@
table.render({ table.render({
elem: '#table_list' elem: '#table_list'
,url: '/servergroup/table' ,url: '/servergroup/table'
,size: 'sm' //小尺寸的表格
,cols: [[ ,cols: [[
// {checkbox: true, fixed: true}, // {checkbox: true, fixed: true},
{field:'id', title: 'ID', align:'center',sort: true, width:150} {field:'id', title: 'ID', align:'center',sort: true, width:150}

View File

@@ -2,9 +2,9 @@
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <div class="layui-col-xs6">
<div class="layui-btn-group"> <div class="layui-btn-group">
<a class="layui-btn" data-type="tabAdd" href="/task/add">新增任务</a> <a class="layui-btn layui-btn-sm" data-type="tabAdd" href="/task/add">新增任务</a>
<button class="layui-btn batch" data-type="batchaudit" >审核通过</button> <button class="layui-btn layui-btn-sm batch" data-type="batchaudit" >审核通过</button>
<button class="layui-btn layui-btn-danger batch" data-type="batchnopass" >审核不通过</button> <button class="layui-btn layui-btn-sm layui-btn-danger batch" data-type="batchnopass" >审核不通过</button>
</div> </div>
</div> </div>
<div class="layui-col-xs6 search_text"> <div class="layui-col-xs6 search_text">
@@ -15,7 +15,7 @@
<input class="layui-input" name="taskName" id="taskName" autocomplete="off" placeholder="任务名称" > <input class="layui-input" name="taskName" id="taskName" autocomplete="off" placeholder="任务名称" >
</div> </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> </div>
</form> </form>

View File

@@ -1,17 +1,18 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <div class="layui-col-xs6">
<div class="layui-btn-group"> <div class="layui-btn-group">
<button class="layui-btn" data-type="tabAdd" id="add">新增</button> <button class="layui-btn layui-btn-sm" data-type="tabAdd" id="add">新增</button>
<button class="layui-btn batch" data-type="batchstart" >启动</button> <button class="layui-btn layui-btn-sm 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 layui-btn-danger batch" data-type="batchpause" >暂停</button>cron
</div> </div>
</div> </div>
<div class="layui-col-xs6 search_text" style="text-align: right;"> <div class="layui-col-xs6 search_text" style="text-align: right;">
<form class="layui-form" action="" onsubmit="javascript:return false;"> <form class="layui-form" action="" onsubmit="javascript:return false;">
<div class="demoTable"> <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="任务名称" > <input class="layui-input" name="task_name" id="task_name" autocomplete="off" placeholder="任务名称" >
</div> </div>
<div class="layui-inline pp-search" style="width: 20%;text-align: left;"> <div class="layui-inline pp-search" style="width: 20%;text-align: left;">
@@ -22,7 +23,7 @@
{{end}} {{end}}
</select> </select>
</div> </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> </div>
</form> </form>
</div> </div>
@@ -56,6 +57,7 @@
table.render({ table.render({
elem: '#table_list' elem: '#table_list'
,url: '/task/table' ,url: '/task/table'
,size: 'sm' //小尺寸的表格
,cols: [[ ,cols: [[
{checkbox: true, fixed: true}, {checkbox: true, fixed: true},
{field:'id', title: 'ID', align:'center', width:80,sort: true} {field:'id', title: 'ID', align:'center', width:80,sort: true}

View File

@@ -1,7 +1,7 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 20px;"> <div class="layui-layout layui-layout-admin" style="padding-left: 20px;">
<div class="layui-row" style="margin-top: 20px;"> <div class="layui-row" style="margin-top: 20px;">
<div class="layui-col-xs6"> <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>
<div class="layui-col-xs6 search_text"> <div class="layui-col-xs6 search_text">
<form class="layui-form" action="" onsubmit="javascript:return false;"> <form class="layui-form" action="" onsubmit="javascript:return false;">
@@ -44,6 +44,7 @@
table.render({ table.render({
elem: '#table_list' elem: '#table_list'
,url: "/tasklog/table?task_id={{.task_id}}" ,url: "/tasklog/table?task_id={{.task_id}}"
,size: 'sm' //小尺寸的表格
,cols: [[ ,cols: [[
{checkbox: true, fixed: true} {checkbox: true, fixed: true}
// ,{field:'id', title: 'ID', align:'center',sort: true, width:150} // ,{field:'id', title: 'ID', align:'center',sort: true, width:150}

View File

@@ -48,7 +48,7 @@
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">是否修改</label> <label class="layui-form-label">密码修改</label>
<div class="layui-input-inline"> <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="1" title="是">
<input type="radio" name="reset_pwd" lay-verify="reset_pwd" value="2" title="否" checked> <input type="radio" name="reset_pwd" lay-verify="reset_pwd" value="2" title="否" checked>