Browse Source

项目管理界面bug

1.降级判断文件夹层级
2.导入本地建设项目文件时,修改导入失败时的提示文本
3.项目管理几个弹窗页面右键屏蔽
vian 6 years atrás
parent
commit
c07a9ee168
2 changed files with 33 additions and 12 deletions
  1. 13 10
      modules/pm/facade/pm_facade.js
  2. 20 2
      web/building_saas/pm/js/pm_newMain.js

+ 13 - 10
modules/pm/facade/pm_facade.js

@@ -1,12 +1,12 @@
 /**
- * Created by zhang on 2018/4/17.
- */
-const projectType = {
-    folder: 'Folder',
-    tender: 'Tender',
-    project: 'Project',
-    engineering: 'Engineering',
-};
+     * Created by zhang on 2018/4/17.
+     */
+    const projectType = {
+        folder: 'Folder',
+        tender: 'Tender',
+        project: 'Project',
+        engineering: 'Engineering',
+    };
 //先导出后require可以解决循环引用问题
 module.exports={
     moveProject:moveProject,
@@ -76,7 +76,7 @@ import moment from 'moment';
 import billsFlags from '../../common/const/bills_fixed';
 const notDeleted = [{deleteInfo: null}, {'deleteInfo.deleted': false}];
 let cipher = require('../../../public/cipher');
-
+const compilationModel = mongoose.model('compilation');
 
 
 //拷贝例题项目
@@ -1122,8 +1122,11 @@ async function importProject(data,req,fields) {
              result.error = 1;
              result.msg = "导入失败:您要导入的文件是由“大司空云计价”导出,当前软件是“纵横公路养护云版”,请选择正确的软件再进行操作!";
          }else if(mainData.compilationID != req.session.sessionCompilation._id){
+             const fileCompilation = await compilationModel.findOne({_id: mongoose.Types.ObjectId(mainData.compilationID)}, 'name');
+             const fileCompilationName = fileCompilation ? fileCompilation.name : '未知的编制办法';
+             const curCompilationName = req.session.sessionCompilation.name;
              result.error = 1;
-             result.msg = "编办不同,无法导入,请重新选择!";
+             result.msg = `导入失败:您要导入的文件是由“${fileCompilationName}”导出,当前软件是“${curCompilationName}”,请选择正确的编制办法再进行操作!`;
          }else {
             let [projectIDMap,labourCoeFileIDMap,calcProgramFileIDMap] = await handleMainProjectDatas(mainData,JSON.parse(fields.updateData[0]),req.session.sessionUser.id);
             if(datas.length > 1 ){

+ 20 - 2
web/building_saas/pm/js/pm_newMain.js

@@ -108,7 +108,8 @@ const projTreeObj = {
             allowUserDragDrop : false,
             allowUserDragFill: false,
             scrollbarMaxAlign : true,
-            showDragDropTip:false
+            showDragDropTip:false,
+            allowContextMenu: false
         }
     },
     replaceSetting:{
@@ -128,7 +129,8 @@ const projTreeObj = {
             allowUserDragDrop : false,
             allowUserDragFill: false,
             scrollbarMaxAlign : true,
-            showDragDropTip:false
+            showDragDropTip:false,
+            allowContextMenu: false
         }
     },
     renderSheetFuc: function (sheet, fuc) {
@@ -517,6 +519,10 @@ const projTreeObj = {
             parent = null,
             next = null,
             projectMap = {};
+        const folderLevel = getFolderLevel(selected);
+        if (folderLevel === 3) {
+            return alert('文件夹不能超过3层');
+        }
         //更新前兄弟节点
         let orgPre = selected.preSibling();
         parent = orgPre;
@@ -2170,6 +2176,7 @@ function init(refresh = false) {//refresh是刷新页面时才使用的
     //init spread and pmTree
     if(refresh == false) socketObject.connect('pm');//socket 连接;
     if (isFirst) {
+        isFirst = false;
         $('#progress').modal('show');
         let intervalTime = prepareInitialTimer();
         CommonAjax.post('/pm/api/prepareInitialData', {user_id: userID}, function () {
@@ -2892,6 +2899,17 @@ function AddFolder() {
     }
 }
 
+function getFolderLevel(selected) {
+    let level = 0;
+    while(selected && selected.data) {
+        if (selected.data.projType === projectType.folder) {
+            level++;
+        }
+        selected = selected.parent;
+    }
+    return level;
+}
+
 //判断是否是三层文件夹以内
 function withinTreble(selectedItem){
     if(selectedItem.data.projType === projectType.tender){