本节我们重新做这个全局公共变量的页面,因为只做外表样式,所以不会懂script的脚本代码,其实改动不算大,大家直接复制下面的源码即可:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
button{
border-radius: 5px; border: 1px solid black; box-shadow: 4px 4px 4px #cfcfcf;
}
</style>
</head>
<body>
<nav class="navbar navbar-default" role="navigation" style="background-color: white;box-shadow: 4px 4px 6px darkgray;
border-image:linear-gradient(to right,#ff8cd0,#77a4cb,#ff8cd0,#ffb658) 1 10;
position: absolute;top: 0px;left: 80px;width:-webkit-calc(100% - 200px);">
<div class="container-fluid">
<div class="navbar-header">
<span style="font-size: xx-small" class="navbar-brand" >项目名称:{{ project.name }}</span>
<a class="navbar-brand" href="/project_list/">返回项目列表</a>
</div>
<div>
<ul class="nav navbar-nav">
<li ><a href="/apis/{{ project.id }}/" >接口库</a></li>
<li ><a href="/cases/{{ project.id }}/">用例库</a></li>
<li><a href="/project_set/{{ project.id }}/">项目设置</a></li>
<li class="active"><a style="background: linear-gradient( to right,#a7e2ff,white,#ffd7e1)" href="/global_data/{{ project.id }}/">全局变量</a></li>
</ul>
</div>
</div>
</nav>
<br><br>
<table class="table table-bordered" style="width: auto;margin-left: 100px">
<caption>选择不同变量组后,右侧进行修改 <button class="btn btn-default" onclick="add_new()">新增变量组</button>
<button class="btn btn-default" onclick="save_one()" style="">保存当前</button></caption>
<thead style="background: linear-gradient(to right,#daf6fe,white,#ffe7ef)">
<tr>
<th style="width: 20px"></th>
<th style="width: 500px">变量组名称</th>
<th style="width: 100px">操作</th>
</tr>
</thead>
<tbody>
{% for i in global_data %}
<tr>
<td><input type="checkbox" id="check_{{ i.id }}" value="{{ i.id }}" name="check_names" onchange="change_check()"></td>
<td><button onclick="show('{{ i.id }}','{{ i.name }}','{{ i.data }}')" class="btn btn-default" style="background: linear-gradient(to right,#daf6fe,white,#ffe7ef);margin-top: 5px; ">{{ i.name }}</button></td>
<td><button onclick="delete_one('{{ i.id }}')" class="btn-danger">删除</button></td>
</tr>
<script>
if("{{ project.global_datas }}" != "None" && "{{ project.global_datas }}" != ""){
if( $.inArray( "{{ i.id }}", "{{ project.global_datas }}".split(',') ) != -1 ){
document.getElementById('check_{{ i.id }}').checked = 'checked'
}
}
</script>
{% endfor %}
</tbody>
</table>
<div style=";position: absolute;left: 732px;top: 110px;width: -webkit-calc(100% - 870px)">
<input type="text" id="id" style="display: none;">
<input id="name" type="text" style="border-image:linear-gradient(to right,#8ce3fe,#ffbae5) 1 10;width: 100%" placeholder="修改变量组的名字"> <br>
<textarea id="data" style="border-image:linear-gradient(to right,#b5e1fe,#ffbed8) 1 10;width: 100%;height: 500px;" placeholder="输入json格式的变量组内容"></textarea>
</div>
<script>
function show(id,name,data) {
document.getElementById('id').value = id;
document.getElementById('name').value = name;
document.getElementById('data').value = data;
}
function add_new() {
$.get("/global_data_add/",{
"project_id":"{{ project.id }}"
},function (ret) {
document.location.reload()
})
}
function delete_one(id) {
$.get("/global_data_delete/",{
"id":id
},function (ret) {
document.location.reload()
})
}
function save_one() {
global_id = document.getElementById('id').value;
global_name = document.getElementById('name').value;
global_data = document.getElementById('data').value;
$.get('/global_data_save/',{
"global_id":global_id,
"global_name":global_name,
"global_data":global_data,
},function (ret) {
if(ret == 'error'){
alert('无法保存!');
return
}
document.location.reload()
})
}
function change_check() {
// 获取所有选中的checkbox的值 组成列表 chk_value
var chk_value =[];
$('input[name="check_names"]:checked').each(function(){
chk_value.push($(this).val());
}); //依然是jq的方法
// 把结果发送给后台
$.get("/global_data_change_check/",{
"project_id":"{{ project.id }}",
"global_datas": chk_value.toString()
},function (ret) {
document.location.reload()
})
}
</script>
</body>
</html>
看看最终效果:
还可以吧~
优化慢慢来吧,这样其实远未达到 最终标准,不过万事要一点一点来。