瀏覽代碼

用户管理 添加搜索和下拉选择注册时间功能

laiguoran 7 年之前
父節點
當前提交
60b0e64a46
共有 4 個文件被更改,包括 139 次插入39 次删除
  1. 12 3
      modules/users/controllers/user_controller.js
  2. 68 0
      modules/users/models/user_model.js
  3. 17 0
      web/users/js/user.js
  4. 42 36
      web/users/views/user/index.html

+ 12 - 3
modules/users/controllers/user_controller.js

@@ -23,9 +23,18 @@ class UserController extends BaseController {
         let total = 0;
         let pageData = {};
         let userList = [];
+        let filter = request.query;
         try {
+            let condition = userModel.getFilterCondition(request);
+
+            //获取注册时间
+            let regtime = request.query.regtime;
+            if(regtime !== '' && regtime !== undefined){
+                filter.regtimeMsg = userModel.getDayMsg(regtime);
+            }
+
             // 获取用户总数
-            total = await userModel.count();
+            total = await userModel.count(condition);
 
             // 分页数据
             let page = request.query.page === undefined ? 1 : request.query.page;
@@ -36,7 +45,7 @@ class UserController extends BaseController {
             };
 
             // 获取用户列表
-            userList = await userModel.getList(null, page, Config.pageSize);
+            userList = await userModel.getList(condition, page, Config.pageSize);
         } catch (error) {
             console.log(error);
         }
@@ -46,12 +55,12 @@ class UserController extends BaseController {
             userList: userList,
             pages: pageData,
             total: total,
+            filter: filter,
             model: userModel,
             layout: 'users/views/layout/layout'
         };
         response.render('users/views/user/index', renderData);
     }
-
 }
 
 export default UserController;

+ 68 - 0
modules/users/models/user_model.js

@@ -32,6 +32,13 @@ class UserModel extends BaseModel {
     companyScale = ['1-20', '20-50', '50-100', '100+'];
 
     /**
+     * 最近天数
+     *
+     * @var
+     */
+    dayMsg = ['所有', '最近24小时', '最近3天', '最近7天', '最近30天'];
+
+    /**
      * 构造函数
      *
      * @return {void}
@@ -61,6 +68,67 @@ class UserModel extends BaseModel {
         return userList;
     }
 
+    /**
+     * 获取过滤条件
+     *
+     * @return {Object}
+     */
+    getFilterCondition(request) {
+        let condition = {};
+        let regtime = request.query.regtime;
+        regtime = regtime !== '' && regtime !== undefined ? parseInt(regtime) : 0;
+        if (regtime !== 0) {
+            condition.create_time = this.getTimestamp(regtime);
+        }
+
+        let version = request.query.version;
+        if(version !== '' && version !== undefined) {
+            condition.version = version;
+        }
+
+        let keyword = request.query.keyword;
+        if (keyword !== '' && keyword !== undefined) {
+            condition.$or = [{real_name : {$regex: keyword}},{email : {$regex: keyword}},{mobile : {$regex: keyword}},{company : {$regex: keyword}}];
+        }
+
+        return condition;
+    }
+
+    /**
+     * 获取时间戳区间
+     *
+     * @return {Object}
+     */
+    getTimestamp(type) {
+        let startTime = '';
+        switch (type) {
+            case 1 :
+                startTime = Date.parse(new Date())-86400*1000;
+                break;
+            case 2 :
+                startTime = Date.parse(new Date())-86400*1000*3;
+                break;
+            case 3 :
+                startTime = Date.parse(new Date())-86400*1000*7;
+                break;
+            case 4 :
+                startTime = Date.parse(new Date())-86400*1000*30;
+                break;
+            default :
+                break;
+        }
+        let endTime =  Date.parse(new Date());
+        return startTime === '' ? '' : {'$gte': startTime, '$lt': endTime};
+    }
+
+    /**
+     * 获取daymsg
+     *
+     */
+    getDayMsg(index){
+        return this.dayMsg[index];
+    }
+
 }
 
 export default UserModel;

+ 17 - 0
web/users/js/user.js

@@ -0,0 +1,17 @@
+/**
+ * 消息管理相关js
+ *
+ * @author CaiAoLin
+ * @date 2017/9/21
+ * @version
+ */
+$(document).ready(function() {
+    // 选择框
+    $(".selector > li > a").click(function() {
+        let value = $(this).data("value");
+        let string = $(this).text();
+        let selector = $(this).parent().parent();
+        selector.next("input:hidden").val(value);
+        selector.prev("button").html(string + ' <span class="caret"></span>');
+    });
+});

+ 42 - 36
web/users/views/user/index.html

@@ -7,45 +7,50 @@
     </div>
     <div class="content-wrap">
         <div class="c-header">
-            <!--最新注册-->
-            <div class="btn-group">
-                <button type="button" class="btn btn-default dropdown-toggle btn-sm" data-toggle="dropdown"
-                        aria-haspopup="true" aria-expanded="false">
-                    最新注册:最近24小时<span class="caret"></span>
-                </button>
-                <ul class="dropdown-menu">
-                    <li><a href="#">最近24小时</a></li>
-                    <li><a href="#">最近3天</a></li>
-                    <li><a href="#">最近7天</a></li>
-                    <li><a href="#">最近30天</a></li>
-                </ul>
-            </div>
-            <!--版本-->
-            <div class="btn-group">
-                <button type="button" class="btn btn-default dropdown-toggle btn-sm" data-toggle="dropdown"
-                        aria-haspopup="true" aria-expanded="false">
-                    版本 <span class="caret"></span>
-                </button>
-                <ul class="dropdown-menu">
-                    <li><a href="#">广东版</a></li>
-                    <li><a href="#">重庆版</a></li>
-                </ul>
-            </div>
-            <!--结果-->
-            <div class="btn-group">
-                &nbsp;共 <%= total %> 条结果
-            </div>
-            <!--搜索-->
-            <div class="btn-group pull-right">
-                <div class="input-group">
-                    <input type="text" class="form-control input-sm" placeholder="手机/邮箱/姓名/公司">
-                    <span class="input-group-btn">
-                        <button class="btn btn-default btn-sm" type="button">
+            <form class="form-inline" method="get" action="">
+                <!--最新注册-->
+                <div class="btn-group">
+                    <button type="button" class="btn btn-default dropdown-toggle btn-sm" data-toggle="dropdown"
+                            aria-haspopup="true" aria-expanded="false">
+                        最新注册:<%= filter.regtimeMsg === undefined ? '所有' : filter.regtimeMsg %><span class="caret"></span>
+                    </button>
+                    <ul class="dropdown-menu selector">
+                        <li><a href="javascript:void(0);" data-value="0">所有</a></li>
+                        <li><a href="javascript:void(0);" data-value="1">最近24小时</a></li>
+                        <li><a href="javascript:void(0);" data-value="2">最近3天</a></li>
+                        <li><a href="javascript:void(0);" data-value="3">最近7天</a></li>
+                        <li><a href="javascript:void(0);" data-value="4">最近30天</a></li>
+                    </ul>
+                    <input type="hidden" name="regtime" value="<%= filter.regtime%>" />
+                </div>
+                <!--版本-->
+                <div class="btn-group">
+                    <button type="button" class="btn btn-default dropdown-toggle btn-sm" data-toggle="dropdown"
+                            aria-haspopup="true" aria-expanded="false">
+                        <%= filter.version === undefined || filter.version === '' ? '版本' : (filter.version === "1" ? '广东版' : '重庆版')%> <span class="caret"></span>
+                    </button>
+                    <ul class="dropdown-menu selector">
+                        <li><a href="javascript:void(0);" data-value="1">广东版</a></li>
+                        <li><a href="javascript:void(0);" data-value="2">重庆版</a></li>
+                    </ul>
+                    <!--<input type="hidden" name="version" value="<%= filter.version%>" />-->
+                </div>
+                <!--结果-->
+                <div class="btn-group">
+                    &nbsp;共 <%= total %> 条结果
+                </div>
+                <!--搜索-->
+                <div class="btn-group pull-right">
+                    <div class="input-group">
+                        <input type="text" name="keyword" class="form-control input-sm" value="<%= filter.keyword === undefined ? '' : filter.keyword %>" placeholder="手机/邮箱/姓名/公司">
+                        <span class="input-group-btn">
+                        <button class="btn btn-default btn-sm" type="submit">
                             <i class="glyphicon glyphicon-search"></i>
                         </button>
                     </span>
+                    </div>
                 </div>
-            </div>
+            </form>
         </div>
         <div class="c-body">
             <table class="table">
@@ -77,4 +82,5 @@
             </nav>
         </div>
     </div>
-</div>
+</div>
+<script type="text/javascript" src="/web/users/js/user.js"></script>