vue 查询分页

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

如图:

代码如下:

前端:

  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="width: 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>

后端:

 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)

原文地址:https://www.cnblogs.com/whycai/p/12149729.html

时间: 2024-10-09 11:08:53

vue 查询分页的相关文章

Django-rest-framework多条件查询/分页/多表Json

Django-rest-framework多条件查询/分页/多表Json django-rest-framework多条件查询需要覆写ListAPIView.get_queryset方法,代码示例: def get_queryset(self):     """     使用request.query_params实现多条件查询,也可以使用django filter ,较简单的     方法是在filter_fields中指定要过滤的字段,但只能表示等值,不灵活,灵活的方式是

Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询

HQL查询方式 这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多.条件查询.分页查询.连接查询.嵌套查询,写起来与SQL语法基本一致,唯一不同的就是把表名换成了类或者对象.其它的,包括一些查询函数(count(),sum()等).查询条件的设定等,全都跟SQL语法一样. 示例: Session session = SessionFactory.getCurrentSession(); User user = null; Transaction ts = s

RDIFramework.NET 中多表关联查询分页实例

RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为指导思想,作为异质系统整合与互操作性.分布式应用提供了可行的解决方案. 分页非常的常见,基本任何项目都会涉及到分页,这没什么好谈的,大多数我们分页对单表的分页比较多,对多表的分页我们可以通过视图来实现,当然还有其他的方式,在这儿,我以一个实例展示下使用我们的RDIFramework.NET来实现多表

基于Vue封装分页组件

使用Vue做双向绑定的时候,可能经常会用到分页功能 接下来我们来封装一个分页组件 先定义样式文件 pagination.css ul, li { margin: 0px; padding: 0px;} .page-bar { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-sel

Oracle基本语法&amp;&amp;函数&amp;&amp;子查询&amp;&amp;分页查询&amp;&amp;排序&amp;&amp;集合操作&amp;&amp;高级分组函数

一.  数据库 手工---文件管理---数据库 DB:Database 数据库. DBMS:管理数据库的软件.(oracle) 主流关系数据库: 1.      Oracle 2.      DB2 3.      SQL Server 基本没人使 4.      MySQL  基本没人用,免费 Linux 开源,可以发现漏洞补上 Windows服务器会有补丁,数据易泄漏 eclipse 日食 数据表(Table): 表的行(Row):记录 表的列(Column):字段 二.  关系型数据库 一

phpcms 多表查询分页

phpcms 多表查询分页,今天放在这里和大家一起分享下.这个函数写在mode.class.php里面,可能不利于升级.直接看代码吧 /**根据SQL查询多表数据并分页,用于多表查询 * @param $sql * @param $order * @param $page * @param $pagesize * @return unknown_type */ final public function mutlilistinfo($sql = '', $page = 1, $pagesize

Spring JdbcTemplate 查询分页

1.大家都有的page类 [java] view plaincopy public class CurrentPage<E> { private int pageNumber; private int pagesAvailable; private List<E> pageItems = new ArrayList<E>(); public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber

查询分页-----强势top

查询分页:语句1性能提升10倍多,只是因为多了个top关键字,很不理解啊!!!! 1.查询时间1s内,r_object_id主键 select top 100 * from ( select all  doc.r_object_id "objid",doc.name,doc.number, doc.cuid, doc.r_creation_date, doc.security, doc.bordline, doc.twicedline, doc.dline, doc.keynum, d

存储过程通用DAL类查询分页数据返回datatable

DAL #region 查询分页数据 public DataTable SelectPageing(string feids, int page, int pagesize, int paixu, string where, string paixufeids, string tablename) { SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@FEILDS",SqlDbType.NVarChar,100