提交 f4913494 编写于 作者: G gongfuxiang

新增分页,配置文件

上级 9a278c4e
# -*- coding: UTF-8 -*-
# ============================================================
# 配置文件
# author Devil
# blog http://gong.gg/
# version 0.0.1
# datetime 2017-08-13
# ============================================================
# 分页
page = {
'page_sizes' : '[10, 30, 60, 100]',
'page_size' : 10,
'page_layout' : 'total, sizes, prev, pager, next, jumper'
}
......@@ -14,7 +14,7 @@ from mogui.model.models import Project
from django.http import HttpResponse
from dss.Serializer import serializer
import time,commands,os,shutil
from mogui.common import function
from mogui.common import function,config
# 项目列表页面
......@@ -24,7 +24,11 @@ from mogui.common import function
# @date 2017-08-05
# @param [request] [请求对象]
def index(request) :
return render(request, 'project/index.html')
context = {
'count' : Project.objects.count(),
'page' : config.page
}
return render(request, 'project/index.html', context)
# 数据编辑页面
......@@ -36,7 +40,7 @@ def index(request) :
def saveinfo(request) :
# 项目id
project_id = request.GET.get('id', '0')
if project_id != '0' :
if project_id != '0' and project_id != '' :
# 获取项目数据
data = Project.objects.filter(project_id=project_id).first()
if data != None :
......@@ -60,7 +64,10 @@ def saveinfo(request) :
# @return [json] [josn]
def get_project_list(request) :
keywords = request.POST.get('keywords', '')
data = Project.objects.filter(project_name__contains=keywords).all().order_by('-project_id').values('project_id', 'project_name', 'git_ssh_address', 'dir_address', 'is_cluster', 'describe', 'create_time')
page = int(request.POST.get('page', 1))-1
page_size = int(request.POST.get('page_size', config.page['page_size']))
page_start = page*page_size
data = Project.objects.filter(project_name__contains=keywords).all().order_by('-project_id').values('project_id', 'project_name', 'git_ssh_address', 'dir_address', 'is_cluster', 'describe', 'create_time')[page_start:page_start+page_size]
result = []
for items in data :
# 描述
......
......@@ -13,7 +13,7 @@ from django.views.decorators import csrf
from mogui.model.models import Project,Release
from dss.Serializer import serializer
import commands,os,time
from mogui.common import function
from mogui.common import function,config
# 上线单列表页面
......@@ -23,7 +23,11 @@ from mogui.common import function
# @date 2017-08-16
# @param [request] [请求对象]
def index(request) :
return render(request, 'release/index.html')
context = {
'count' : Release.objects.count(),
'page' : config.page
}
return render(request, 'release/index.html', context)
# 上线单添加页面
......@@ -33,9 +37,9 @@ def index(request) :
# @date 2017-08-16
# @param [request] [请求对象]
def saveinfo(request) :
data = Project.objects.all().order_by('-project_id').values('project_id', 'project_name')
project_list = Project.objects.all().order_by('-project_id').values('project_id', 'project_name')
context = {
'project_list' : data,
'project_list' : project_list,
}
return render(request, 'release/saveinfo.html', context)
......@@ -49,7 +53,10 @@ def saveinfo(request) :
# @return [json] [josn]
def get_release_list(request) :
keywords = request.POST.get('keywords', '')
data = Release.objects.filter(title__contains=keywords).all().order_by('-release_id').values('release_id', 'project_id', 'title', 'branch', 'version', 'status', 'create_time')[0:60]
page = int(request.POST.get('page', 1))-1
page_size = int(request.POST.get('page_size', config.page['page_size']))
page_start = page*page_size
data = Release.objects.filter(title__contains=keywords).all().order_by('-release_id').values('release_id', 'project_id', 'title', 'branch', 'version', 'status', 'create_time')[page_start:page_start+page_size]
result = []
if data != None :
status_list = [u'未发布', u'已发布', u'已回滚']
......
......@@ -30,6 +30,8 @@
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="handle_size_change" @current-change="handle_current_change" :current-page="1" :page-sizes="{{ page.page_sizes }}" :page-size="page_size" layout="{{ page.page_layout }}" :total="{{ count }}" class="tr m-t-15"></el-pagination>
</div>
{% include "../base/footer.html" %}
......@@ -41,17 +43,18 @@ new Vue({
loading: false,
search : {
keywords : ''
}
},
page_size : {{ page.page_size }}
},
// 变量定界符修改,避免与django模板引擎冲突
delimiters:['{', '}'],
// 初始化
created : function()
{
// 获取数据
this.get_project_list();
if({{ count }} > 0)
{
this.get_project_list();
}
},
// 函数
......@@ -62,11 +65,13 @@ new Vue({
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-08-06T07:14:36+0800
* @param {[int]} [page] [当前分页数]
*/
get_project_list : function()
get_project_list : function(page)
{
page = page || 1;
this.loading = true;
this.$http.post(__host__+'project/get_project_list', {csrfmiddlewaretoken:'{{ csrf_token }}', keywords:this.search.keywords}, {emulateJSON: true}).then((response) =>
this.$http.post(__host__+'project/get_project_list', {csrfmiddlewaretoken:'{{ csrf_token }}', keywords:this.search.keywords, page:page, page_size:this.page_size}, {emulateJSON: true}).then((response) =>
{
if(response.data.code == 0)
{
......@@ -150,6 +155,33 @@ new Vue({
this.loading = false;
});
}).catch(() => {});
},
/**
* [handle_size_change 分页条数操作]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-08-07T19:45:28+0800
* @param {[int]} [page] [当前分页数]
*/
handle_size_change : function(page_size)
{
this.page_size = page_size;
this.get_project_list(1);
},
/**
* [handle_current_change 分页操作]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-08-07T19:45:28+0800
* @param {[int]} [page] [当前分页数]
*/
handle_current_change : function(page)
{
this.get_project_list(page);
}
}
});
......
{% include "../base/header.html" %}
<div id="app" v-loading="loading" element-loading-text="处理中...">
<div class="tabs-nav oh">
<span class="title fl">项目{% if data.project_id == None %}添加{% else %}编辑{% endif %}</span>
<a href="{{ host }}project/index" class="backup fr">返回</a>
</div>
<el-form :model="rule_form" :rules="rules" ref="rule_form" label-width="100px" label-position="top">
<el-form-item label="项目名称" prop="project_name">
<el-input v-model="rule_form.project_name" placeholder="起一个响亮的项目名称吧"></el-input>
......
......@@ -33,6 +33,8 @@
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="handle_size_change" @current-change="handle_current_change" :current-page="1" :page-sizes="{{ page.page_sizes }}" :page-size="page_size" layout="{{ page.page_layout }}" :total="{{ count }}" class="tr m-t-15"></el-pagination>
</div>
{% include "../base/footer.html" %}
......@@ -44,14 +46,18 @@ new Vue({
loading: false,
search : {
keywords : ''
}
},
page_size : {{ page.page_size }}
},
// 初始化
created : function()
{
// 获取数据
this.get_release_list();
if({{ count }} > 0)
{
this.get_release_list();
}
},
// 函数
......@@ -62,11 +68,13 @@ new Vue({
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-08-06T07:14:36+0800
* @param {[int]} [page] [当前分页数]
*/
get_release_list : function()
get_release_list : function(page, page_size)
{
page = page || 1;
this.loading = true;
this.$http.post(__host__+'release/get_release_list', {csrfmiddlewaretoken:'{{ csrf_token }}', keywords:this.search.keywords}, {emulateJSON: true}).then((response) =>
this.$http.post(__host__+'release/get_release_list', {csrfmiddlewaretoken:'{{ csrf_token }}', keywords:this.search.keywords, page:page, page_size:this.page_size}, {emulateJSON: true}).then((response) =>
{
if(response.data.code == 0)
{
......@@ -202,6 +210,33 @@ new Vue({
this.loading = false;
});
}).catch(() => {});
},
/**
* [handle_size_change 分页条数操作]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-08-07T19:45:28+0800
* @param {[int]} [page] [当前分页数]
*/
handle_size_change : function(page_size)
{
this.page_size = page_size;
this.get_release_list(1);
},
/**
* [handle_current_change 分页操作]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-08-07T19:45:28+0800
* @param {[int]} [page] [当前分页数]
*/
handle_current_change : function(page)
{
this.get_release_list(page);
}
}
});
......
{% include "../base/header.html" %}
<div id="app" v-loading="loading" element-loading-text="加载中...">
<div class="tabs-nav oh">
<span class="title fl">上线工单添加</span>
<a href="{{ host }}release/index" class="backup fr">返回</a>
</div>
<el-form :model="rule_form" :rules="rules" ref="rule_form" label-width="100px" label-position="top">
<el-form-item label="标题" prop="title">
<el-input v-model="rule_form.title" placeholder="上线单标题"></el-input>
......
......@@ -2,8 +2,15 @@
* 公共
*/
* { font-size: 14px; margin: 0px; padding: 0px; border: 0px; }
a { text-decoration: none; }
img { border: 0px; }
.oh { overflow: hidden; }
.m-t-15 { margin-top: 15px; }
.fl { float: left; }
.fr { float: right; }
.tl { text-align: left; }
.tc { text-align: center; }
.tr { text-align: right; }
/**
* 表单
......@@ -25,11 +32,18 @@ header .logo-tips { color: #c6c6c6; font-size: 12px; }
#nav-left, #content { overflow-x: hidden; }
/**
*
*
*/
footer { background-color: #333; padding: 25px 10px; }
footer .title { color: #a4aebd; }
/**
* 编辑页面面包导航
*/
.tabs-nav { border-bottom: 1px solid #eee; padding: 5px 10px; }
.tabs-nav .title { font-size: 16px; font-weight: 400; }
.tabs-nav .backup { color: #20a0ff; }
/**
* 搜索条件表单
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册