This commit is contained in:
郝大全
2018-07-03 00:38:31 +08:00
parent e6f96cd36c
commit b34de685b8
570 changed files with 33780 additions and 10 deletions

152
V2/views/server/add.html Normal file
View File

@@ -0,0 +1,152 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 40px;margin-top: 20px;">
{{/*<div style="margin: 10px 0px">*/}}
{{/*<blockquote class="layui-elem-quote">*/}}
{{/*说明:创建新的服务器资源*/}}
{{/*</blockquote>*/}}
{{/*</div>*/}}
<form class="layui-form" action="" method="post" >
<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 := .serverGroup}}
<option value="{{$k}}">{{$v}}</option>
{{end}}
</select>
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">服务器名称</label>
<div class="layui-input-inline mw400">
<input type="text" name="server_name" id="server_name" lay-verify="required" autocomplete="off" placeholder="服务器名称" class="layui-input" value="">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">登录账号</label>
<div class="layui-input-inline mw400">
<input type="text" name="server_account" id="server_account" lay-verify="required" autocomplete="off" placeholder="root" class="layui-input" value="">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">内网IP</label>
<div class="layui-input-inline mw400">
<input type="text" name="server_ip" id="server_ip" lay-verify="required" autocomplete="off" placeholder="192.168.1.12" class="layui-input" value="">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">外网IP</label>
<div class="layui-input-inline mw400">
<input type="text" name="server_outer_ip" id="server_outer_ip" lay-verify="required" autocomplete="off" placeholder="200.200.200.12" class="layui-input" value="">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">端口号</label>
<div class="layui-input-inline mw400">
<input type="text" name="port" id="port" lay-verify="required" autocomplete="off" placeholder="22" class="layui-input" value="">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">验证登录类型</label>
<div class="layui-input-inline mw400">
<input type="radio" name="type" lay-verify="type" value="0" title="密码" checked>
<input type="radio" name="type" lay-verify="type" value="1" title="密钥" >
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item password">
<label class="layui-form-label mw200">密码</label>
<div class="layui-input-inline mw400">
<input type="text" name="password" id="password" lay-verify="" autocomplete="off" placeholder="服务器登录密码" class="layui-input" value="">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item key" style="display:none;">
<label class="layui-form-label mw200">公钥地址</label>
<div class="layui-input-inline mw400">
<input type="text" name="public_key_src" id="public_key_src" lay-verify="" autocomplete="off" placeholder="/Users/haodaquan/.ssh/pp_rsa.pub" class="layui-input" value="">
</div>
<div class="layui-form-mid layui-word-aux"><span id="des" style="cursor: pointer">说明</span></div>
</div>
<div class="layui-form-item key" style="display:none;">
<label class="layui-form-label mw200">私钥地址</label>
<div class="layui-input-inline mw400">
<input type="text" name="private_key_src" id="private_key_src" lay-verify="" autocomplete="off" placeholder="/Users/haodaquan/.ssh/pp_rsa" class="layui-input" value="">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">资源说明</label>
<div class="layui-input-inline mw400">
<textarea name="detail" id="detail" placeholder="请输入内容" class="layui-textarea"></textarea>
</div>
</div>
<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>
<script>
var $;
layui.use(['form','element','layer','jquery'],function(){
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
var $ = layui.jquery;
form.on('radio', function(data){
if(data.value==1){
$(".key").show();
$(".password").hide();
}else{
$(".password").show();
$(".key").hide();
}
});
$("#des").on('click',function () {
layer.tips('公钥和私钥地址请在本地服务器生成,命令ssh-keygen -t rsa -f pp_rsa', '#des', {
tips: [1, '#0FA6D8'] //还可配置颜色
});
})
form.on('submit(sub)', function(data){
var form_data = $("form").serialize();
$.post('{{urlfor "ServerController.AjaxSave"}}', form_data, function (out) {
if (out.status == 0) {
layer.msg("操作成功",{icon: 1},function () {
window.history.go(-1)
})
} else {
layer.msg(out.message)
}
}, "json");
return false;
});
//但是如果你的HTML是动态生成的自动渲染就会失效
//因此你需要在相应的地方,执行下述方法来手动渲染,跟这类似的还有 element.init();
form.render();
});
</script>

152
V2/views/server/edit.html Normal file
View File

@@ -0,0 +1,152 @@
<div class="layui-layout layui-layout-admin" style="padding-left: 40px;margin-top: 20px;">
{{/*<div style="margin: 10px 0px">*/}}
{{/*<blockquote class="layui-elem-quote">*/}}
{{/*说明:创建新的服务器资源*/}}
{{/*</blockquote>*/}}
{{/*</div>*/}}
<form class="layui-form" action="" method="post" >
<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 := .serverGroup}}
<option value="{{$k}}" {{if eq $.server.group_id $k}} selected {{end}}>{{$v}}</option>
{{end}}
</select>
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">服务器名称</label>
<div class="layui-input-inline mw400">
<input type="text" name="server_name" id="server_name" lay-verify="required" autocomplete="off" placeholder="服务器名称" class="layui-input" value="{{.server.server_name}}">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">登录账号</label>
<div class="layui-input-inline mw400">
<input type="text" name="server_account" id="server_account" lay-verify="required" autocomplete="off" placeholder="root" class="layui-input" value="{{.server.server_account}}">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">内网IP</label>
<div class="layui-input-inline mw400">
<input type="text" name="server_ip" id="server_ip" lay-verify="required" autocomplete="off" placeholder="192.168.1.12" class="layui-input" value="{{.server.server_ip}}">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">外网IP</label>
<div class="layui-input-inline mw400">
<input type="text" name="server_outer_ip" id="server_outer_ip" lay-verify="required" autocomplete="off" placeholder="200.200.200.12" class="layui-input" value="{{.server.server_outer_ip}}">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">端口号</label>
<div class="layui-input-inline mw400">
<input type="text" name="port" id="port" lay-verify="required" autocomplete="off" placeholder="22" class="layui-input" value="{{.server.port}}">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">验证登录类型</label>
<div class="layui-input-inline mw400">
<input type="radio" name="type" lay-verify="type" value="0" title="密码" {{if eq .server.type 0}}checked{{end}}>
<input type="radio" name="type" lay-verify="type" value="1" title="密钥" {{if eq .server.type 1}}checked{{end}}>
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item password" style="{{if eq .server.type 1}}display:none{{end}}">
<label class="layui-form-label mw200">密码</label>
<div class="layui-input-inline mw400">
<input type="text" name="password" id="password" lay-verify="" autocomplete="off" placeholder="服务器登录密码" class="layui-input" value="{{.server.password}}">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item key" style="{{if eq .server.type 0}}display:none{{end}}">
<label class="layui-form-label mw200">公钥地址</label>
<div class="layui-input-inline mw400">
<input type="text" name="public_key_src" id="public_key_src" lay-verify="" autocomplete="off" placeholder="/Users/haodaquan/.ssh/pp_rsa.pub" class="layui-input" value="{{.server.public_key_src}}">
</div>
<div class="layui-form-mid layui-word-aux"><span id="des" style="cursor: pointer">说明</span></div>
</div>
<div class="layui-form-item key" style="{{if eq .server.type 0}}display:none{{end}}">
<label class="layui-form-label mw200">私钥地址</label>
<div class="layui-input-inline mw400">
<input type="text" name="private_key_src" id="private_key_src" lay-verify="" autocomplete="off" placeholder="/Users/haodaquan/.ssh/pp_rsa" class="layui-input" value="{{.server.private_key_src}}">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mw200">资源说明</label>
<div class="layui-input-inline mw400">
<textarea name="detail" id="detail" placeholder="请输入内容" class="layui-textarea">{{.server.detail}}</textarea>
</div>
</div>
<input type="hidden" name="id" id="id" value="{{.server.id}}">
<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>
<script>
var $;
layui.use(['form','element','layer','jquery'],function(){
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
var $ = layui.jquery;
form.on('radio', function(data){
if(data.value==1){
$(".key").show();
$(".password").hide();
}else{
$(".password").show();
$(".key").hide();
}
});
$("#des").on('click',function () {
layer.tips('公钥和私钥地址请在本地服务器生成,命令ssh-keygen -t rsa -f pp_rsa', '#des', {
tips: [1, '#0FA6D8'] //还可配置颜色
});
})
form.on('submit(sub)', function(data){
var form_data = $("form").serialize();
$.post('{{urlfor "ServerController.AjaxSave"}}', form_data, function (out) {
if (out.status == 0) {
layer.msg("操作成功",{icon: 1},function () {
window.history.go(-1)
})
} else {
layer.msg(out.message)
}
}, "json");
return false;
});
//但是如果你的HTML是动态生成的自动渲染就会失效
//因此你需要在相应的地方,执行下述方法来手动渲染,跟这类似的还有 element.init();
form.render();
});
</script>

99
V2/views/server/list.html Normal file
View File

@@ -0,0 +1,99 @@
<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" href="/server/add">新增</a>
</div>
<div class="layui-col-xs6 search_text">
<form class="layui-form" action="" onsubmit="javascript:return false;">
<div class="demoTable">
<div class="layui-inline" style="width: 40%">
<input class="layui-input" name="serverName" id="serverName" autocomplete="off" placeholder="资源名称" >
</div>
<button class="layui-btn" data-type="reload">查询</button>
</div>
</form>
</div>
</div>
<table class="layui-hide" id="table_list" lay-filter="table_filter">
</table>
<script type="text/html" id="bar">
<!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a> -->
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
</div>
<script>
layui.use(['table','form','element'], function(){
var table = layui.table;
var form = layui.form;
var element = layui.element;
//方法级渲染
table.render({
elem: '#table_list'
,url: '/server/table'
,cols: [[
// {checkbox: true, fixed: true},
{field:'id', title: 'ID', align:'center',sort: true, width:150}
,{field:'server_name',title: '资源名称'}
,{field:'group_name',title: '分组名称'}
,{field:'type', title: '登录类型'}
,{field:'detail', title: '备注'}
// ,{field:'status_text', title: '状态'}
,{fixed: 'right', width:160, align:'center', toolbar: '#bar'}
]]
,id: 'listReload'
,page: true
,height: "full-130"
});
var $ = layui.$, active = {
reload: function(){
table.reload('listReload', {
where: {
serverName: $('#serverName').val(),
}
});
}
};
//监听工具条
table.on('tool(table_filter)', function(obj){
var data = obj.data;
if(obj.event === 'edit'){
window.location.href="/server/edit?id="+data.id
} else if(obj.event === 'del'){
layer.confirm('真的删除'+data.server_name+'服务器资源么', function(index){
var jsData = {'id':data.id}
$.post('{{urlfor "ServerController.AjaxDel"}}', jsData, function (out) {
if (out.status == 0) {
layer.alert(out.message, {icon: 1},function(index){
layer.close(index);
window.location.reload();
});
} else {
layer.msg(out.message)
}
}, "json");
// obj.del();
layer.close(index);
})
}else{
layer.msg('操作不存在');
}
});
$('.demoTable .layui-btn').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
});
</script>