vue 查询分页

摘要:
后端用烧瓶,前端用vue,查询结果如图所示进行显示和分页:代码如下:前端:1234567891011</el表单项˃1213<el表单项˃14<el format=“primary”icon=“search”@click=“fetch()”>查询</el按钮˃15</el表格项˃16</el form>17</el col˃18</el row˃19<el tableshow溢出工具提示:data=“res_test.data”v-loading=“tableLoading”style=“100%;margin-top:20p x”20:cell style=“{'text align':'center'}”:标题单元格style=“{background:'#eef1f6',color:'#606266','text align':'center'}“˃21222324252627操作2829303132˂!”!

后端用的flask,前端vue,查询结果展示以及分页

如图:

vue 查询分页第1张

代码如下:

前端:

vue 查询分页第2张vue 查询分页第3张
  1 <template>
  2     <div>
  3         <el-row>
  4             <el-col :span="18">
  5                 <el-form :inline="true" :model="test_query">
  6                     <el-form-item label="查询条件1">
  7                         <el-input v-model="test_query.test1" clearable></el-input>
  8                     </el-form-item>
  9                     <el-form-item label="查询条件2">
 10                         <el-input v-model="test_query.test2" clearable></el-input>
 11                     </el-form-item>
 12 
 13                     <el-form-item>
 14                         <el-button type="primary" icon="search" @click="fetch()">查询</el-button>
 15                     </el-form-item>
 16                 </el-form>
 17             </el-col>
 18         </el-row>
 19         <el-table show-overflow-tooltip :data="res_test.data"  v-loading="tableLoading" style=" 100%; margin-top: 20px"
 20                    :cell-style="{'text-align':'center'}" :header-cell-style="{background:'#eef1f6',color:'#606266','text-align':'center'}" >
 21             <el-table-column type="selection" ></el-table-column>
 22             <el-table-column prop="res1" label="结果1" width="100px" show-overflow-tooltip></el-table-column>
 23             <el-table-column prop="res2" label="结果2" width="100px" show-overflow-tooltip></el-table-column>
 24             <el-table-column prop="time" label="时间"  width="160px" :formatter="date_format" show-overflow-tooltip></el-table-column>
 25             <el-table-column label="其他" width="300px" >
 26                 <template slot-scope="scope">
 27                     <el-button size="small" type="primary" @click="handleEdit(scope.row)">操作</el-button>
 28                 </template>
 29             </el-table-column>
 30         </el-table>
 31 
 32         <!--分页-->
 33         <div class="pagination-bar" v-if="res_test.total > 10" style="padding: 10px;padding-bottom: 50px">
 34             <el-pagination
 35                     @current-change="handleCurrentChange"
 36                     :current-page="currentPage"  layout="total, prev, pager, next"
 37                     :total="res_test.total"
 38                     :page-size="page_size"
 39             >
 40             </el-pagination>
 41         </div>
 42 
 43 
 44         <el-dialog :title="title" :visible.sync="dialogVisible" width="35%" :close-on-click-modal="false">
 45             <el-tabs  >
 46                     <el-form :model="form" label-width="120px" ref="add_edit_form">
 47                         <el-form-item label="结果1:" prop="res1">
 48                             <el-label  >{{form.res1}}</el-label>
 49                         </el-form-item>
 50                         <el-form-item label="结果2:" prop="res2">
 51                             <el-label  >{{form.res2}}</el-label>
 52                         </el-form-item>
 53                         <el-form-item label="时间 :" prop="time" >
 54                             <el-label >{{date_format2(form.time)}}</el-label>
 55                         </el-form-item>
 56                     </el-form>
 57             </el-tabs>
 58 
 59             <div slot="footer">
 60                 <el-button @click="dialogVisible=false">取消</el-button>
 61             </div>
 62         </el-dialog>
 63 
 64 
 65     </div>
 66 </template>
 67 
 68 
 69 <style>
 70     .demo-table-expand {
 71         font-size: 0;
 72     }
 73     .demo-table-expand label {
 74         width: 90px;
 75         color: #99a9bf;
 76     }
 77     .demo-table-expand .el-form-item {
 78         margin-right: 0;
 79         margin-bottom: 0;
 80         width: 50%;
 81     }
 82 </style>
 83 
 84 <script>
 85     import envs from '../../config/env'
 86     export default {
 87         data () {
 88             return {
 89                 test_query: {
 90                     test1: '',
 91                     test2: '',
 92                 },
 93                 dialogVisible: false,
 94                 tableLoading: true,
 95                 form: {},
 96                 currentPage: 1,
 97 
 98                 //选项
 99                 terminal_options:[
100                     {
101                         value:'选项1',
102                         label:'选项1'
103                     },
104                     {
105                         value:'选项2',
106                         label:'选项2'
107                     },
108                 ],
109 
110                 //每页的条数
111                 page_size:5,
112 
113             }
114         },
115         methods: {
116             handleCurrentChange(val) {
117                 this.currentPage = val;
118                 this.fetch(this.currentPage);
119             },
120 
121 
122             fetch (page) {
123                 if (!page) {
124                     page = 1;
125                     this.currentPage = 1;
126                 }
127                 this.tableLoading = true;
128                 //地址根据实际路径来写
129                 let api_uri = '/xxxxx/query';
130                 this.$http.post(api_uri, {'page': page, 'test_query': this.test_query, 'page_size':this.page_size}).then(res => {
131                     this.res_test = res.data.data;
132                     this.tableLoading = false;
133                 }, res => this.$layer_message(res.result)).finally(() => this.tableLoading = false);
134 
135             },
136 
137 
138             handleEdit (row) {
139                 this.dialogVisible = true;
140                 this.form = this.$deepCopy(row);
141                 this.title = '编辑页面';
142                 this.is_edit = true;
143             },
144 
145 
146 
147             date_format(row, column){
148                 let date = row[column.property];
149                 if (date == undefined){
150                     return '';
151                 }
152                 const dateMat_tmp= new Date( date );
153                 //js中GMT时间初始化的Date多了8小时,要减掉,按毫秒数来减
154                 const dateMat = new Date(dateMat_tmp.valueOf() - 8*3600*1000);
155                 const year = dateMat.getFullYear();
156                 const month = dateMat.getMonth() + 1;
157                 const day = dateMat.getDate();
158                 const hh = dateMat.getHours();
159                 const mm = dateMat.getMinutes();
160                 const ss = dateMat.getSeconds();
161                 const timeFormat= year + "-" + (month<10?'0'+month:month) + "-" + (day<10?'0'+day:day) + " " + (hh<10?'0'+hh:hh) + ":" + (mm<10?'0'+mm:mm) + ":" + (ss<10?'0'+ss:ss);
162                 return timeFormat;
163             },
164             date_format2(date){
165                 let dateMat_tmp = new Date(date);
166                 //js中GMT时间初始化的Date多了8小时,要减掉,按毫秒数来减
167                 const dateMat = new Date(dateMat_tmp.valueOf() - 8*3600*1000);
168                 const year = dateMat.getFullYear();
169                 const month = dateMat.getMonth() + 1;
170                 const day = dateMat.getDate();
171                 const hh = dateMat.getHours();
172                 const mm = dateMat.getMinutes();
173                 const ss = dateMat.getSeconds();
174                 const timeFormat= year + "-" + (month<10?'0'+month:month) + "-" + (day<10?'0'+day:day) + " " + (hh<10?'0'+hh:hh) + ":" + (mm<10?'0'+mm:mm) + ":" + (ss<10?'0'+ss:ss);
175                 return timeFormat;
176             },
177 
178         },
179         created () {
180             this.fetch(this.currentPage);
181         }
182     }
183 </script>
View Code

后端:

vue 查询分页第4张vue 查询分页第5张
 1 #后端默认返回json值
 2 @blueprint.route('/query', methods=['post'])
 3 def query():
 4     '''
 5     test
 6     :return: 
 7     '''
 8     form, error = JsonParser(Argument('page', required=False), Argument('test_query', required=False), 'page_size').parse()
 9     if error is None:
10         if form.page == 1:
11             data = [{'res1':1,'res2':2,'time':datetime.datetime(2019, 10, 15, 17, 24, 1)},{'res1':2,'res2':2,'time':datetime.datetime(2019, 10, 15, 17, 24, 1)},{'res1':3,'res2':2,'time':datetime.datetime(2019, 10, 15, 17, 24, 1)}
12             , {'res1': 4, 'res2': 2, 'time': datetime.datetime(2019, 10, 15, 17, 24, 1)},{'res1':5,'res2':2,'time':datetime.datetime(2019, 10, 15, 17, 24, 1)}]
13         else:
14             data = [{'res1': 11, 'res2': 2, 'time': datetime.datetime(2019, 10, 15, 17, 24, 1)},
15                     {'res1': 21, 'res2': 2, 'time': datetime.datetime(2019, 10, 15, 17, 24, 1)},
16                     {'res1': 31, 'res2': 2, 'time': datetime.datetime(2019, 10, 15, 17, 24, 1)}
17                 , {'res1': 41, 'res2': 2, 'time': datetime.datetime(2019, 10, 15, 17, 24, 1)},
18                     {'res1': 51, 'res2': 2, 'time': datetime.datetime(2019, 10, 15, 17, 24, 1)}]
19         total = 11
20         print(data)
21 
22         #返回
23         return json_response({
24             'data':data,
25             'total':total
26         })
27 
28     return json_response(message=error)
View Code

免责声明:文章转载自《vue 查询分页》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ubuntu下安装 Sublime Text 3 及 PlantUML 绘图插件DB2查询前100到后200之间的数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转]Android 操作SQLite基本用法

在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面。本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的。一.SQLite的介绍1.SQLite简介SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入...

time模块和datetime模块详解

一、time模块  time模块中时间表现的格式主要有三种:   a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量   b、struct_time时间元组,共有九个元素组。   c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。 1、时间格式转换图: 2、...

date——系统时间的命令

这是一个可以用各种姿势获得各种时间的命令。最近在写自动化定时脚本时学了一下。 参考:https://www.cnblogs.com/ginvip/p/6357378.html 比如: 利用crontab,每天输入日志到一个log中。 直接输入 date Fri Jul 5 16:38:56 CST 2019 星期  月  日  时:分:秒  时区  年...

【转】Hive的insert操作

insert 语法格式为: 1. 基本的插入语法: insert overwrite table tablename [partition(partcol1=val1,partclo2=val2)] select_statement; insert into table tablename [partition(partcol1=val1,partclo2...

Html代码中table跨2行和跨2列的用法

一直以来总是会写跨2列的Html代码,不会写跨2行的例子,找机会研究了一下!先说说跨2列的例子,这个很好理解例1  跨2列: 1<table border="1">2                <tr>3                    <td colspan="2" align="center">111<...

python操作excel向同一sheet循环追加数据

参考文章:https://blog.csdn.net/sdaujz/article/details/102080900?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-15.nonecase&depth_1-utm_source=dis...