olym 7 éve
szülő
commit
776d9638b5

+ 20 - 14
modules/common/base/base_controller.js

@@ -19,17 +19,6 @@ class BaseController {
     title = '';
 
     /**
-     * 构造函数
-     *
-     * @return {void}
-     */
-    constructor() {
-        if (new.target === BaseController) {
-            throw new Error('BaseController不能实例化,只能继承使用。');
-        }
-    }
-
-    /**
      * 初始化函数
      *
      * @param {object} request
@@ -38,19 +27,36 @@ class BaseController {
      * @return {void}
      */
     async init(request, response, next) {
-        response.locals.title = 'test';
+        // 获取当前控制器和动作名称
+        let urlInfo = Url.parse(request.originalUrl, true);
+        let url = urlInfo.pathname.substr(1);
+        let actionInfo = url.split('/');
+        let controller = 'index';
+        let action = 'index';
+        switch (actionInfo.length) {
+            case 1:
+                controller = actionInfo[0];
+                break;
+            case 2:
+                controller = actionInfo[0];
+                action = actionInfo[1];
+                break;
+            default:
+                controller = actionInfo[0];
+                break;
+        }
+        response.locals.controller = controller;
+        response.locals.action = action;
 
         // moment工具
         response.locals.moment = Moment;
 
         // url相关数据
-        let urlInfo = Url.parse(request.originalUrl, true);
         response.locals.urlQuery = JSON.stringify(urlInfo.query);
 
         // 获取当前用户数据
         let sessionUser = request.session.sessionUser;
 
-
         // 获取当前用户消息数量
         let userMessageModel = new UserMessageModel();
         // 消息处理

+ 3 - 2
modules/main/routes/main_route.js

@@ -3,9 +3,10 @@
  */
 
 
-
+import BaseController from "../../common/base/base_controller";
 module.exports =function (app) {
-    app.get('/main',  function(req, res) {
+    const baseController = new BaseController();
+    app.get('/main', baseController.init, function(req, res) {
         let pm = require('../../pm/controllers/pm_controller');
         pm.checkProjectRight(req.session.sessionUser.ssoId, req.query.project, function (hasRight) {
             if (hasRight) {

+ 3 - 2
modules/pm/routes/pm_route.js

@@ -2,13 +2,14 @@
  * pm: project management
  * Created by Mai on 2017/3/8.
  */
-
+import BaseController from "../../common/base/base_controller";
 let express = require('express');
 let pmController = require('./../controllers/pm_controller');
+const baseController = new BaseController();
 
 module.exports = function (app) {
 
-    app.get('/pm', pmController.index);
+    app.get('/pm', baseController.init, pmController.index);
 
     let pmRouter = express.Router();
 

+ 1 - 18
web/building_saas/main/html/main.html

@@ -35,24 +35,7 @@
                 <strong id="message"></strong>
             </div>
         </div>
-        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 justify-content-between">
-            <span class="header-logo px-2">Smartcost</span>
-            <div class="navbar-text" id="fullpath"><a href="/pm">项目管理</a><i class="fa fa-angle-right fa-fw"></i>文件夹<i class="fa fa-angle-right fa-fw"></i>建设项目<i class="fa fa-angle-right fa-fw"></i>单项工程<i class="fa fa-angle-right fa-fw"></i>单位工程</div>
-            <div class="float-lg-right navbar-text pt-0">
-                <div class="dropdown d-inline-block">
-                    <button class="btn btn-link btn-sm dropdown-toggle" type="button" data-toggle="dropdown"><%- userAccount %></button>
-                    <div class="dropdown-menu dropdown-menu-right">
-                        <a class="dropdown-item" href="/user/info" target="_blank">账号资料</a>
-                        <a class="dropdown-item" href="/user/buy" target="_blank">产品购买</a>
-                        <a class="dropdown-item" href="/user/set" target="_blank">偏好设置</a>
-                    </div>
-                </div>
-                <span class="btn btn-link btn-sm new-msg">
-                  <i class="fa fa-envelope-o" aria-hidden="true"></i>&nbsp;2
-                </span>
-                <a class="btn btn-link btn-sm" href="/logout">注销</a>
-            </div>
-        </nav>
+        <%include ../../../common/html/header.html %>
         <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
             <ul class="nav navbar-nav px-1">
                 <li class="nav-item">

+ 43 - 59
web/building_saas/pm/html/project-management.html

@@ -37,66 +37,50 @@
             <strong>注意!</strong> 这是一条消息通知 <a href="#">链接</a>
         </div>
     </div>
-    <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 justify-content-between">
-        <span class="header-logo px-2">Smartcost</span>
-        <div class="navbar-text pt-0">
-            <div class="dropdown d-inline-block">
-                <button class="btn btn-link btn-sm dropdown-toggle" type="button" data-toggle="dropdown"><%- userAccount %></button>
-                <div class="dropdown-menu dropdown-menu-right">
-                    <a class="dropdown-item" href="/user/info" target="_blank">账号资料</a>
-                    <a class="dropdown-item" href="user-buy.html" target="_blank">产品购买</a>
-                    <a class="dropdown-item" href="/user/preferences" target="_blank">偏好设置</a>
+    <%include ../../../common/html/header.html %>
+    <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
+        <ul class="nav navbar-nav px-1">
+            <li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle" href="http://example.com" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">文件</a>
+                <div class="dropdown-menu" aria-labelledby="supportedContentDropdown">
+                    <a class="dropdown-item" href="#">Action</a>
+                    <a class="dropdown-item" href="#">Another action</a>
+                    <a class="dropdown-item" href="#">Something else here</a>
                 </div>
-            </div>
-            <span class="btn btn-link btn-sm new-msg">
-                    <i class="fa fa-envelope-o" aria-hidden="true"></i>&nbsp;2
-                </span>
-                <a href="/logout" class="btn btn-link btn-sm">注销</a>
-            </div>
-        </nav>
-        <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
-            <ul class="nav navbar-nav px-1">
-                <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="http://example.com" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">文件</a>
-                    <div class="dropdown-menu" aria-labelledby="supportedContentDropdown">
-                        <a class="dropdown-item" href="#">Action</a>
-                        <a class="dropdown-item" href="#">Another action</a>
-                        <a class="dropdown-item" href="#">Something else here</a>
-                    </div>
-                </li>
-                <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">编辑</a>
-                    <div class="dropdown-menu">
-                        <a class="dropdown-item" href="#">Action</a>
-                        <a class="dropdown-item" href="#">Another action</a>
-                        <a class="dropdown-item" href="#">Something else here</a>
-                    </div>
-                </li>
-                <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">工具</a>
-                    <div class="dropdown-menu">
-                        <a class="dropdown-item" href="#">定额库编辑器</a>
-                        <a class="dropdown-item" href="/complementaryGlj">工料机库编辑器</a>
-                    </div>
-                </li>
-                <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-question-circle-o"></i> 帮助</a>
-                    <div class="dropdown-menu">
-                        <a class="dropdown-item" href="#">帮助</a>
-                        <a class="dropdown-item" href="#">升级说明</a>
-                        <a class="dropdown-item" href="#">重庆市2008定额说明</a>
-                        <a class="dropdown-item" href="#">纵横官网</a>
-                        <a class="dropdown-item" href="#">动画教程</a>
-                        <a class="dropdown-item" href="#">联系客服</a>
-                        <a class="dropdown-item" href="#">关于</a>
-                    </div>
-                </li>
-            </ul>
-            <form class="form-inline">
-                <input class="form-control form-control-sm mr-1" type="text" placeholder="告诉我你想做什么">
-            </form>
-        </nav>
-    </div>
+            </li>
+            <li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">编辑</a>
+                <div class="dropdown-menu">
+                    <a class="dropdown-item" href="#">Action</a>
+                    <a class="dropdown-item" href="#">Another action</a>
+                    <a class="dropdown-item" href="#">Something else here</a>
+                </div>
+            </li>
+            <li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">工具</a>
+                <div class="dropdown-menu">
+                    <a class="dropdown-item" href="#">定额库编辑器</a>
+                    <a class="dropdown-item" href="/complementaryGlj">工料机库编辑器</a>
+                </div>
+            </li>
+            <li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-question-circle-o"></i> 帮助</a>
+                <div class="dropdown-menu">
+                    <a class="dropdown-item" href="#">帮助</a>
+                    <a class="dropdown-item" href="#">升级说明</a>
+                    <a class="dropdown-item" href="#">重庆市2008定额说明</a>
+                    <a class="dropdown-item" href="#">纵横官网</a>
+                    <a class="dropdown-item" href="#">动画教程</a>
+                    <a class="dropdown-item" href="#">联系客服</a>
+                    <a class="dropdown-item" href="#">关于</a>
+                </div>
+            </li>
+        </ul>
+        <form class="form-inline">
+            <input class="form-control form-control-sm mr-1" type="text" placeholder="告诉我你想做什么">
+        </form>
+    </nav>
+</div>
     <div class="main">
         <div class="poj-manage container-fluid">
             <div class="row">

+ 7 - 3
web/common/html/header.html

@@ -1,13 +1,17 @@
 <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 justify-content-between">
     <span class="header-logo px-2">Smartcost</span>
-    <div class="navbar-text"><a href="/pm">项目管理</a></div>
+    <div class="navbar-text" id="fullpath">
+        <% if (action !== 'index' || controller !== 'pm') {%>
+        <a href="/pm">项目管理</a>
+        <% } %>
+    </div>
     <div class="float-lg-right navbar-text pt-0">
         <div class="dropdown d-inline-block">
             <button class="btn btn-link btn-sm dropdown-toggle" type="button" data-toggle="dropdown"><%= sessionUser.email %></button>
             <div class="dropdown-menu dropdown-menu-right">
-                <a class="dropdown-item" href="user-info.html" target="_blank">账号资料</a>
+                <a class="dropdown-item" href="/user/info" target="_blank">账号资料</a>
                 <a class="dropdown-item" href="user-buy.html" target="_blank">产品购买</a>
-                <a class="dropdown-item" href="user-set.html" target="_blank">偏好设置</a>
+                <a class="dropdown-item" href="/user/preferences" target="_blank">偏好设置</a>
             </div>
         </div>
         <a class="btn btn-link btn-sm <% if (unreadCount > 0) { %>new-msg<% } %>" id="message" data-toggle="modal" data-target="#msg" href="javacript:void(0);">