Przeglądaj źródła

第一次登录不自动加载例题,添加右键加载例题 , 整理清单bug

zhangweicheng 4 lat temu
rodzic
commit
b094a78b6d

+ 4 - 0
modules/import/controllers/import_controller.js

@@ -17,6 +17,10 @@ let controller = {
         let data = req.body;
         return await pm_facade.importChongqingProject(data);
     },
+    importExampleProject:async function(req){
+        let data = req.body;
+        return await pm_facade.importExampleProject(data);
+    },
     copyConstructionProject:async function(req){
       let data = req.body;
       return await pm_facade.copyConstructionProject(data);

+ 1 - 0
modules/import/routes/import_route.js

@@ -13,6 +13,7 @@ module.exports = function (app) {
     importRouter.post('/getDataForInterface',importController.action);
     importRouter.post('/loadSEIProjectData',importController.action);
     importRouter.post('/importChongqingProject',importController.action);
+    importRouter.post('/importExampleProject',importController.action);
     importRouter.post('/copyConstructionProject',importController.action);
     importRouter.post('/prepareInitialData',importController.action);
     importRouter.get('/test',function (req,res) {

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

@@ -957,6 +957,21 @@ module.exports = {
         }
         res.json(result);
     },
+    importExampleProject: async function (req, res) {
+        let data = JSON.parse(req.body.data);
+        let result = {
+            error: 0
+        };
+        try {
+            data.session = req.session;
+            result.data = await redirectToImportServer(data, "importExampleProject", req);
+        } catch (err) {
+            console.log(err);
+            result.error = 1;
+            result.message = err.message;
+        }
+        res.json(result);
+    },
     copyConstructionProject: async function (req, res) {
       let data = JSON.parse(req.body.data);
       let result = {

+ 38 - 23
modules/pm/facade/pm_facade.js

@@ -54,6 +54,7 @@ module.exports={
     uploadToken:uploadToken,
     downLoadProjectFile:downLoadProjectFile,
     importChongqingProject:importChongqingProject,
+    importExampleProject:importExampleProject,
     importProcessChecking:importProcessChecking,
     copyConstructionProject,
     importInterface,
@@ -1769,32 +1770,45 @@ async function importChongqingProject(data) {
     };
     await importLogsModel.create(log_data);
     doImport(data.user_id,data.session.sessionCompilation._id,data.session.sessionCompilation.adProjects,data.key);
+     return "start importing";
+}
+
+//加载例题
+async function importExampleProject(data) {
 
+    let log_data = {
+        key:data.key,
+        content: '正在导入例题,请稍候……',
+        userID:data.user_id,
+        compilationID: data.session.sessionCompilation._id,
+        status:"start",
+        create_time:+new Date()
+    };
+    await importLogsModel.create(log_data);
+    doImport(data.user_id,data.session.sessionCompilation._id,data.session.sessionCompilation.example,data.key);
      return "start importing";
-    async function doImport(user_id,compilationId,projectIDs,key) {
-        let doc = {status:"finish"};
-        try {
-           let r = await copyExample(user_id,compilationId,projectIDs);
-           if(r == false){
-               doc.errorMsg = "导入失败,请检查项目是否存在!";
-               doc.status = "error";
-           } else {
-               doc.projectID = r;
-           }
-        }catch (error){
-            console.log(error);
-            doc.errorMsg = "导入失败,请检查项目是否存在!";
-            doc.status = "error";
-        }finally {
-            await importLogsModel.update({key:key},doc);
-        }
-    }
 }
 
-function testTimeout(time) {
-    return new Promise(resolve => setTimeout(resolve, time));
+async function doImport(user_id,compilationId,projectIDs,key) {
+    let doc = {status:"finish"};
+    try {
+       let r = await copyExample(user_id,compilationId,projectIDs);
+       if(r == false){
+           doc.errorMsg = "导入失败,请检查项目是否存在!";
+           doc.status = "error";
+       } else {
+           doc.projectID = r;
+       }
+    }catch (error){
+        console.log(error);
+        doc.errorMsg = "导入失败,请检查项目是否存在!";
+        doc.status = "error";
+    }finally {
+        await importLogsModel.update({key:key},doc);
+    }
 }
 
+
 //用户第一次进入费用定额的数据准备
 async function prepareInitialData(userId, compilation, example) {
     let first = await isFirst(userId, compilation);
@@ -1802,7 +1816,7 @@ async function prepareInitialData(userId, compilation, example) {
         await updateUsedList(userId, compilation);
         const logData = {
             key: uuidV1(),
-            content: '正在加载例题,请稍候……',
+            content: '正在初始化数据,请稍候……',
             userID: userId,
             compilationID: compilation,
             status: 'start',
@@ -1819,9 +1833,10 @@ async function prepareInitialData(userId, compilation, example) {
                 copyCompleRationSection(userId, compilation),
                 copyCompleGljSection(userId, compilation)
             ];
-            if (example && example.length > 0) {
+           /* 2021-01-19 第一次的时候不自动加载例题,右键加载 
+              if (example && example.length > 0) {
                 prepareTask.push(copyExample(userId, compilation, example));
-            }
+            } */
             await Promise.all(prepareTask);
         } catch (error) {
             doc.errorMsg = '加载例题失败,请检查例题项目是否存在!';

+ 1 - 0
modules/pm/routes/pm_route.js

@@ -69,6 +69,7 @@ module.exports = function (app) {
     pmRouter.post('/exportProject', pmController.exportProject);
     pmRouter.post('/importProject', pmController.importProject);
     pmRouter.post('/importChongqingProject', pmController.importChongqingProject);
+    pmRouter.post('/importExampleProject', pmController.importExampleProject);
     pmRouter.post('/copyConstructionProject',systemMiddleware.tenderNumberChecking,pmController.copyConstructionProject);
     pmRouter.post('/importProcessChecking', pmController.importProcessChecking);
     pmRouter.post('/getBasicInfo', pmController.getBasicInfo);

+ 4 - 0
web/building_saas/main/js/views/project_view.js

@@ -2537,6 +2537,10 @@ $('#ZLFB_MENU').mouseleave(function () {
     enterZLFB = false;
 });
 
+$('#ZLFB_MENU').click(function() {
+    return false;
+});
+
 $('#moreMenu > a').mouseenter(function () {
     if (!enterDisplayA) {
         $('#subDisplay').removeClass('show');

+ 19 - 8
web/building_saas/main/js/views/zlfb_view.js

@@ -213,10 +213,9 @@ let zlfb_object={
                     datas.push(updateMap[ID]);
                 }
                if(datas.length > 0) await projectObj.project.syncUpdateNodesAndRefresh(datas);
-               for(let FB of FBNodes){
-                projectObj.mainController.refreshTreeNode([FB],true);
-               }
-               
+
+               projectObj.mainController.refreshTreeNode(FBNodes,true);
+               this.refreshVisable(FBNodes);
                let sel = projectObj.mainController.sheet.getSelections()[0];
                sel.row = selected.serialNo();
                projectObj.mainController.sheet.setSelection(sel.row,sel.col,sel.rowCount,sel.colCount);
@@ -229,14 +228,27 @@ let zlfb_object={
                     me.resortChildren(FB,{},recoverMap[FB.data.ID]);
                 }
                 tree.sortTreeItems(tree);
+                this.refreshVisable(FBNodes);
             } 
          
          
         }
-
-
-
     },
+    refreshVisable:function (FBNodes) {
+      let sheet =  projectObj.mainController.sheet;
+      let tree = projectObj.mainController.tree;
+      sheet.suspendPaint();
+      sheet.suspendEvent();
+      for(let pnode of FBNodes){
+        TREE_SHEET_HELPER.refreshChildrenVisiable(sheet,tree,pnode,pnode.serialNo());
+        for(let node of pnode.children){
+            TREE_SHEET_HELPER.refreshChildrenVisiable(sheet,tree,node,node.serialNo());
+        }  
+      } 
+      sheet.resumeEvent();
+      sheet.resumePaint();  
+    },
+
 
     resortChildren:function(node,updateMap,recoverChildren){
         if(recoverChildren){
@@ -244,7 +256,6 @@ let zlfb_object={
         }else{
             node.children = _.sortBy(node.children,'data.code');
         } 
-        
        for(let i=0;i<node.children.length;i++){
            let subNode = node.children[i];
            let tem = {

+ 35 - 17
web/building_saas/pm/js/pm_newMain.js

@@ -474,6 +474,14 @@ const projTreeObj = {
                 $("#import").modal('show');
                 projTreeObj.getUploadToken();
             }
+        },
+        importExampleProject:{
+            name: "加载例题",
+            icon: 'fa-refresh',
+            callback: function (key, opt) {
+
+                projTreeObj.importExampleProjects();
+            }
         }
     },
     //全部-开始(新建)按钮弹出菜单(新建单位工程)
@@ -507,7 +515,8 @@ const projTreeObj = {
                 "manageFiles": me.contextMenuItems.manageFiles,
                 "refreshSummary": me.contextMenuItems.refreshSummary,
                 "exportProject":me.contextMenuItems.exportProject,
-                "importProject":me.contextMenuItems.importProject
+                "importProject":me.contextMenuItems.importProject,
+                "importExampleProject":me.contextMenuItems.importExampleProject
             }
         });
     },
@@ -1763,6 +1772,30 @@ const projTreeObj = {
             }
         }
         this.initTree(true, callback, expandCallback);
+    },
+    importExampleProjects:async function(isChongqing=false){
+        if (STATE.importing) {
+            return;
+        }
+        let textBody = '正在导入例师,请稍候……'
+        let url = 'importExampleProject';
+        STATE.importing = true;
+        if(isChongqing){
+            $('#welcomePage').modal('hide');
+            textBody = "正在导入测评项目,请稍候……";
+            url = 'importChongqingProject';
+        } 
+        try {
+            let key = uuid.v1();
+            $.bootstrapLoading.progressStart("欢迎使用大司空云计价",true);
+            $("#progress_modal_body").text(textBody);
+            let result = await ajaxPost(`/pm/api/${url}`,{user_id: userID,key:key});
+            importProcessChecking(key, null, (projectData) => handleProjectAfterChecking(projectData));
+        }catch (error){
+            alert(error);
+        }finally {
+            STATE.importing = false;
+        }
     }
 };
 // 新建项目必填项提示框设置“ 比如:注:为响应重庆地区指标采集标准数据要求,以上工程信息及特征必填项为必填项,请正确填写。”
@@ -4824,22 +4857,7 @@ function refreshProjSummary(project, summaryInfo) {
 $(function () {
     if(isShow)  $('#welcomePage').modal('show');//是否显示欢迎页
     $('#importChongqing').click(async function () {
-        if (STATE.importing) {
-            return;
-        }
-        STATE.importing = true;
-        $('#welcomePage').modal('hide');
-        try {
-            let key = uuid.v1();
-            $.bootstrapLoading.progressStart("欢迎使用大司空云计价",true);
-            $("#progress_modal_body").text("正在导入测评项目,请稍候……");
-            let result = await ajaxPost("/pm/api/importChongqingProject",{user_id: userID,key:key});
-            importProcessChecking(key, null, (projectData) => handleProjectAfterChecking(projectData));
-        }catch (error){
-            alert(error);
-        }finally {
-            STATE.importing = false;
-        }
+      await  projTreeObj.importExampleProjects(true);
     })
 });