Przeglądaj źródła

项目管理,标段路径重定义
定额库代码更新后,造价书路由混乱问题
项目管理路由重定义

MaiXinRong 8 lat temu
rodzic
commit
43711b13f6

+ 6 - 0
modules/pm/controllers/pm_controller.js

@@ -44,5 +44,11 @@ module.exports = {
                 callback(req, res, err, message, null);
             }
         })
+    },
+    beforeOpenProject: function (req, res) {
+        var data = JSON.parse(req.body.data);
+        ProjectsData.beforeOpenProject(data.user_id, data.proj_id, data.updateData, function (err, message, data) {
+            callback(req, res, err, message, data);
+        })
     }
 }

+ 13 - 2
modules/pm/models/project.js

@@ -11,7 +11,7 @@ var Schema = mongoose.Schema;
 var ProjectSchema = new Schema({
     "name": String,
     "projType": String,
-    "lastDateTime": Date,
+    "recentDateTime": Date,
     "createDateTime": Date,
     "id": Number,
     "parentId": Number,
@@ -19,7 +19,7 @@ var ProjectSchema = new Schema({
     "userId": Number,
     "deleted": Boolean,
     'deleteDateTime': Date,
-    'deleteFullFolder': Array
+    'fullFolder': Array
 });
 var Projects = db.model("projects", ProjectSchema);
 
@@ -108,4 +108,15 @@ ProjectsDAO.prototype.rename = function (userId, projectId, newName, callback){
     });
 };
 
+ProjectsDAO.prototype.beforeOpenProject = function (userId, projectId, updateData, callback){
+    updateData['recentDateTime'] = new Date();
+    Projects.update({userId: userId, id: projectId}, updateData, function(err){
+        if (err){
+            callback(1, '项目不存在.');
+        } else {
+            callback(0, '');
+        }
+    });
+};
+
 module.exports = new ProjectsDAO();

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

@@ -6,19 +6,10 @@ var express = require('express');
 var pmRouter = express.Router();
 var pmController = require('./../controllers/pm_controller');
 
-pmRouter.get('/pm', function(req, res){
-    if(!req.session.userAccount){
-        res.redirect('/login');
-    }
-    else{
-        res.render('pm/html/project-management.html',
-            {userAccount: req.session.userAccount,
-            userID: req.session.userID});
-    }
-});
-
 pmRouter.post('/getProjects', pmController.getProjects);
 pmRouter.post('/updateProjects', pmController.updateProjects);
 pmRouter.post('/renameProject', pmController.rename);
+pmRouter.post('/beforeOpenProject', pmController.beforeOpenProject);
+pmRouter.post('/getProject', pmController.getProject);
 
 module.exports = pmRouter;

+ 22 - 2
server.js

@@ -42,14 +42,27 @@ var users = require('./modules/users/routes/users_route');
 app.use('/', users);
 // -----------------------------------------------------------------end
 
+app.get('/pm', function(req, res){
+    if(!req.session.userAccount){
+        res.redirect('/login');
+    }
+    else{
+        res.render('pm/html/project-management.html',
+            {userAccount: req.session.userAccount,
+                userID: req.session.userID});
+    }
+});
+
 var pmRouter = require('./modules/pm/routes/pm_route');
 app.use('/', pmRouter);
-//zhangenping add 2017.0.13-----------------------------------------begin
+
+/*//zhangenping add 2017.0.13-----------------------------------------begin
 app.use(express.static(_rootDir+"/web"));
 app.use(express.static(_rootDir+"/lib"));
 var rations_Router = require("./modules/rations/routes/rations_route");
 app.use("/ration",rations_Router);
-//-----------------------------------------------------------------end
+//-----------------------------------------------------------------end*/
+
 app.get('/main',  function(req, res) {
     if (!req.session.userAccount) {
         res.redirect('/login');
@@ -63,6 +76,13 @@ app.get('/main',  function(req, res) {
     }
 });
 
+//zhangenping add 2017.0.13-----------------------------------------begin
+app.use(express.static(_rootDir+"/web"));
+app.use(express.static(_rootDir+"/lib"));
+var rations_Router = require("./modules/rations/routes/rations_route");
+app.use("/ration",rations_Router);
+//-----------------------------------------------------------------end
+
 var apiRouter = express.Router();
 
 app.use('/api', apiRouter);

+ 4 - 1
web/main/html/main.html

@@ -31,7 +31,7 @@
         </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"><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="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>
@@ -2553,6 +2553,9 @@
     <!--报表 zTree -->
     <script type="text/javascript" src="lib/ztree/jquery.ztree.core.js"></script>
     <script type="text/javascript" src="lib/ztree/jquery.ztree.excheck.js"></script>
+
+    <script type="text/javascript" src="web/main/js/main_ajax.js"></script>
+    <script type="text/javascript" src="web/main/js/main.js"></script>
     <SCRIPT type="text/javascript">
   		<!--
   		var setting = {

+ 8 - 8
web/pm/html/project-management.html

@@ -112,14 +112,14 @@
                 <div class="col-lg-10">
                     <div class="toolsbar">
                         <div class="tools-btn btn-group align-top">
-                            <a href="#;" class="btn btn-sm" id="addProjBtn">新建工程</a>
-                            <a href="#" class="btn btn-sm" id="addFolderBtn"><i class="fa fa-folder-o"></i>&nbsp;新建文件夹</a>
-                            <a href="#" class="btn btn-sm" id="renameBtn">重命名</a>
-                            <a href="#" class="btn btn-sm" id="delBtn">删除</a>
-                            <a href="#" class="btn btn-sm" id="movetoBtn">移动到...</a>
-                            <a href="#" class="btn btn-sm" id="copytoBtn">复制到...</a>
-                            <a href="#" class="btn btn-sm" id="shareBtn">共享</a>
-                            <a href="#" class="btn btn-sm" id="cooperateBtn">协同</a>
+                            <a href="javacript:void(0);" class="btn btn-sm" id="addProjBtn">新建工程</a>
+                            <a href="javacript:void(0);" class="btn btn-sm" id="addFolderBtn"><i class="fa fa-folder-o"></i>&nbsp;新建文件夹</a>
+                            <a href="javacript:void(0);" class="btn btn-sm" id="renameBtn">重命名</a>
+                            <a href="javacript:void(0);" class="btn btn-sm" id="delBtn">删除</a>
+                            <a href="javacript:void(0);" class="btn btn-sm" id="movetoBtn">移动到...</a>
+                            <a href="javacript:void(0);" class="btn btn-sm" id="copytoBtn">复制到...</a>
+                            <a href="" class="btn btn-sm" id="shareBtn">共享</a>
+                            <a href="" class="btn btn-sm" id="cooperateBtn">协同</a>
                         </div>
                     </div>
                     <div class="poj-list">

+ 22 - 0
web/pm/js/pm_ajax.js

@@ -65,4 +65,26 @@ var RenameProject = function(projId, newName, callback) {
             alert('error ' + textStatus + " " + errorThrown)
         }
     });
+};
+
+// 打开项目前,提交数据
+var BeforeOpenProject = function (projId, updateData, callback) {
+    $.ajax({
+        type: "POST",
+        url: '/beforeOpenProject',
+        data: {'data': JSON.stringify({"user_id": userID, "proj_id": projId, "updateData": updateData})},
+        dataType: 'json',
+        cache: false,
+        timeout: 15000,
+        success: function (result) {
+            if (result.error === 0) {
+                callback();
+            } else {
+                alert('error' + result.message);
+            }
+        },
+        error: function(iqXHR, textStatus, errorThrown){
+            alert('error ' + textStatus + " " + errorThrown)
+        }
+    });
 }

+ 17 - 6
web/pm/js/pm_main.js

@@ -20,7 +20,8 @@ var ProjTreeSetting = {
                     html.push((node && node.data && node.data.projType === 'Folder') ? '&nbsp;' : '');
                     html.push('<a ');
                     if (node && node.data && node.data.projType === 'Tender') {
-                        html.push('href="/main?project=', node.id(), '"');
+                        //html.push('href="/main?project=', node.id(), '"');
+                        html.push('href="javacript:void(0);"');
                     }
                     html.push('>', text, '<a>');
                 },
@@ -30,6 +31,16 @@ var ProjTreeSetting = {
                     } else {
                         html.push('<span class="poj-icon">└</span>');
                     }
+                },
+                tdBindEvent: function (td, node) {
+                    if (node.data.projType === 'Tender') {
+                        $('a:eq(1)', td).bind('click', function () {
+                            BeforeOpenProject(node.id(), {'fullFolder': GetFullFolder(node.parent)}, function () {
+                                window.location.href = '/main?project=' + node.id();
+                            });
+                            return false;
+                        });
+                    }
                 }
             }
         },
@@ -180,14 +191,14 @@ var GetNextChangeUpdateData = function (datas, node, next) {
     }
     return data;
 }
-var GetFullName = function (node) {
-    var fullName = [],
+var GetFullFolder = function (node) {
+    var fullFolder = [],
         cur = node;
     while (cur && cur.data) {
-        fullName.unshift(cur.data.name);
+        fullFolder.unshift(cur.data.name);
         cur = cur.parent;
     }
-    return fullName;
+    return fullFolder;
 }
 var GetDeleteUpdateData = function (node) {
     var datas = [], updateData,
@@ -199,7 +210,7 @@ var GetDeleteUpdateData = function (node) {
             data['updateData']['id'] = node.id();
             data['updateData']['deleted'] = true;
             if (node.data.projType === 'Tender') {
-                data['updateData']['deleteFullFolder'] = GetFullName(node.parent);
+                data['updateData']['FullFolder'] = GetfullFolder(node.parent);
             }
             return data;
         },

+ 4 - 0
web/scripts/tree_table.js

@@ -465,6 +465,10 @@
  				node.icon = $('.tree-icon', td);
  			}
 
+			if (columns.event.tdBindEvent) {
+				columns.event.tdBindEvent(td, node);
+			}
+
  			obj.append(td);
  			return td;
  		},