caiaolin преди 8 години
родител
ревизия
82383f4b7a
променени са 4 файла, в които са добавени 43 реда и са изтрити 14 реда
  1. 7 1
      modules/common/helper/mongoose_helper.js
  2. 1 1
      modules/users/controllers/user_controller.js
  3. 4 2
      modules/users/models/user_model.js
  4. 31 10
      web/users/views/layout/page.html

+ 7 - 1
modules/common/helper/mongoose_helper.js

@@ -52,6 +52,12 @@ class MongooseHelper {
      */
     find(conditions, fields = null, option = null) {
         let self = this;
+        let limit = 0;
+        let skip = 0;
+        if (Object.keys(option).length > 0) {
+            limit = option.pageSize !== undefined ? option.pageSize : limit;
+            skip = option.offset !== undefined ? option.offset : skip;
+        }
         return new Promise(function (resolve, reject) {
             self.model.find(conditions, fields, option, function (error, data) {
                 if (error) {
@@ -59,7 +65,7 @@ class MongooseHelper {
                 } else {
                     resolve(data);
                 }
-            });
+            }).skip(skip).limit(limit);
         });
     }
 

+ 1 - 1
modules/users/controllers/user_controller.js

@@ -36,7 +36,7 @@ class UserController extends BaseController {
             };
 
             // 获取用户列表
-            userList = await userModel.getList(null, page);
+            userList = await userModel.getList(null, page, Config.pageSize);
         } catch (error) {
             console.log(error);
         }

+ 4 - 2
modules/users/models/user_model.js

@@ -47,12 +47,14 @@ class UserModel extends BaseModel {
      *
      * @param {object} condition
      * @param {number} page
+     * @param {Number} pageSize
      * @return {promise}
      */
-    async getList(condition = null, page = 1) {
+    async getList(condition = null, page = 1, pageSize = 30) {
         page = parseInt(page);
         page = page <= 1 ? 1 : page;
-        let option = {page: page};
+        let option = {pageSize: pageSize, offset: parseInt((page - 1) * pageSize)};
+
         let userList = await this.db.find(condition, null, option);
         userList = userList.length > 0 ? userList : [];
 

+ 31 - 10
web/users/views/layout/page.html

@@ -4,17 +4,39 @@
         bootstrapMajorVersion: 3,
         currentPage: "<%= pages.current %>",
         totalPages: "<%= pages.total %>",
-        size: "small",
+        size: "normal",
+        itemContainerClass: function(type, page, current) {
+            let className = 'page-item';
+            this.currentPage = parseInt(this.currentPage);
+            this.totalPages = parseInt(this.totalPages);
+
+            switch (type) {
+                case "prev":
+                    className = this.currentPage === 1 ? className + ' disabled' : className;
+                    break;
+                case "next":
+                    className = this.currentPage === this.totalPages ? className + ' disabled' : className;
+                    break;
+                case "page":
+                    className = page === this.currentPage ? className + ' active' : className;
+                    break;
+            }
+
+            return className;
+        },
+        itemContentClass: function(type, page, current) {
+            return 'page-link';
+        },
         itemTexts: function(type, page, current) {
             switch (type) {
                 case "first":
                     return "&laquo;";
                 case "prev":
-                    return "&lsaquo;";
+                    return "上一页";
                 case "next":
-                    return "&rsaquo;";
+                    return "下一页";
                 case "last":
-                    return "&raquo;";
+                    return "最后一页";
                 case "page":
                     return page;
             }
@@ -26,13 +48,11 @@
                     result = (current !== 1);
                     break;
                 case "prev":
-                    result = false;
                     break;
                 case "next":
-                    result = false;
                     break;
                 case "last":
-                    result = (current !== this.totalPages);
+                    result = false;
                     break;
                 case "page":
                     result = true;
@@ -42,9 +62,10 @@
 
         },
         pageUrl: function(type, page, current){
-            let queryData = JSON.parse(pages.queryData);
+            let queryData = JSON.parse('<%- pages.queryData %>');
+
             // 如果没有附带查询条件则直接返回
-            if (typeof queryData !== 'object') {
+            if (Object.keys(queryData).length <= 0) {
                 return "?page=" + page;
             }
             // 有其它数据则重新赋值page,然后组合字符串
@@ -57,7 +78,7 @@
 
             let firstQuery = queryArray.shift();
             let queryString = queryArray.join('&');
-            return '?' + firstQuery + '&' + queryString;
+            return  queryString === '' ? '?' + firstQuery : '?' + firstQuery + '&' + queryString;
         }
     };
     if (options.totalPages > 0) {