zhongzewei 7 年之前
父节点
当前提交
54aa5591ba

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

@@ -537,7 +537,12 @@ module.exports = {
     getProjectsByQuery: async function (req, res) {
         try{
             let data = JSON.parse(req.body.data);
+            let compilation = req.session.sessionCompilation._id;
             let query = data.query;
+            query.compilation = compilation;
+            console.log(`compilation===============================`);
+            console.log(compilation);
+            console.log(query);
             let options = data.options;
             let projects = await projectModel.find(query, options);
             callback(req, res, 0, 'success', projects);

+ 5 - 4
modules/pm/models/project_model.js

@@ -179,12 +179,12 @@ ProjectsDAO.prototype.updateUserProjects = async function (userId, compilationId
                 }
 
                 newProject = new Projects(data.updateData);
-                // 查找同级是否存在同名数据
+               /* // 查找同级是否存在同名数据
                 let exist = await this.isExist(userId, compilationId, data.updateData.name, data.updateData.ParentID);
                 if (exist) {
                     callback(1, '同级目录已存在相同名称数据.', null);
                     return;
-                }
+                }*/
                 if (data.updateData.projType === 'Tender') {
                     let feeRateFileID = await feeRateFacade.newFeeRateFile(userId, data.updateData);
                     newProject.property.feeFile = feeRateFileID ? feeRateFileID : -1;
@@ -380,11 +380,12 @@ ProjectsDAO.prototype.rename = async function (userId, compilationId, data, call
             throw '请填写名称!';
         }
         data.newName = data.newName.trim();
-        // 查找同级是否存在同名数据
+        //重名前端控制
+       /* // 查找同级是否存在同名数据
         let exist = await this.isExist(userId, compilationId, data.newName, data.parentID);
         if (exist) {
             throw '同级目录已存在相同名称数据';
-        }
+        }*/
 
         Projects.update({userID: userId, ID: data.id}, {name: data.newName}, function (err) {
             if (err) {

+ 1 - 1
web/building_saas/css/main.css

@@ -97,7 +97,7 @@ body {
     left:0
 }
 .pm-content{
-    padding-left:58px
+    padding-left:45px
 }
 .content {
     border-left: 1px solid #ccc;

+ 1 - 0
web/building_saas/pm/html/project-management.html

@@ -538,6 +538,7 @@
 <script src="/public/web/PerfectLoad.js"></script>
 <script src="/public/web/date_util.js"></script>
 <script src="/web/building_saas/pm/js/pm_tree.js"></script>
+<script src="/public/web/id_tree.js"></script>
 <script src="/public/web/tree_sheet/tree_sheet_helper.js"></script>
 <script src="/public/web/sheet/sheet_data_helper.js"></script>
 <script type="text/javascript" src="/public/web/common_ajax.js"></script>

+ 12 - 4
web/building_saas/pm/js/pm_newMain.js

@@ -1403,7 +1403,8 @@ $(document).ready(function() {
     // 重命名操作
     $("#rename-confirm").click(function() {
         let select = projTreeObj.tree.selected;
-        let newName = $('#rename-name').val();
+        let parent = select ? select.parent : Tree._root;
+        let newName = $('#rename-name').val().trim();
         let dialog = $('#rename-dialog');
         if (newName === '') {
             setDangerInfo($('#rename-name-info'), '请输入重命名');
@@ -1414,6 +1415,10 @@ $(document).ready(function() {
             dialog.modal('hide');
             return false;
         }
+        if(existName(newName, parent.children, select.data.projType)){
+            setDangerInfo($('#rename-name-info'), `已存在“${newName}”`);
+            return;
+        }
         RenameProject(select.id(), newName, select.data.ParentID, function () {
             setDangerInfo($('#rename-name-info'), '', false);
             dialog.modal('hide');
@@ -1912,7 +1917,7 @@ function AddSiblingsItem(selected, name, property, type, existCallback, sucCallb
     }
     let parent = selected ? selected.parent : projTreeObj.tree._root;
     let next = selected ? selected.nextSibling : projTreeObj.tree.firstNode();
-    if(existName(name, parent.children)){
+    if(existName(name, parent.children, type)){
         //alert('同级目录已存在相同名称数据.');
         existCallback();
     }
@@ -1982,10 +1987,13 @@ function getNodeByName(name, nodes){
     return null;
 }
 
-//同级是否重名
-function existName(name , nodes){
+//同级是否重名,文件夹与建设项目可以同名
+function existName(name , nodes, projType = null){
     for(let i = 0, len = nodes.length; i < len; i++){
         if(name === nodes[i].data.name){
+            if(projType && projType === projectType.folder && nodes[i].data.projType === projectType.project){
+                continue;
+            }
             return true;
         }
     }

+ 31 - 5
web/building_saas/pm/js/pm_share.js

@@ -645,20 +645,46 @@ const pmShare = (function () {
             }
         });
     }
+    //从其他建设项目中复制中,建设项目的文件层次结构名称和顺序
+    //@param {Array}treeData @return {Array}
+    function getFileHierarchyInfo(treeData){
+        let tree = idTree.createNew({id: 'ID', pid: 'ParentID', nid: 'NextSiblingID', rootId: -1});
+        tree.loadDatas(treeData);
+        let items = tree.items;
+        let rst = [];
+        function getFileHierarchyName(node){
+            let nodeName = node.data.name;
+            let name = [];
+            while (node.parent){
+                name.push(node.parent.data.name ? node.parent.data.name : '');
+                node = node.parent;
+            }
+            name = name.reverse();
+            name.push(nodeName);
+            return name.join('\\');
+        }
+        for(let node of items){
+            if(node.children.length === 0 ){//project
+                rst.push({ID: node.data.ID, fileHierarchyName: getFileHierarchyName(node)})
+            }
+        }
+        return rst;
+    }
     //设置拷贝工程下拉选择
     //@return {void}
     function setCopyModal(){
         //获取建设项目
-        let projQuery = {$or: [{deleteInfo: null}, {'deleteInfo.deleted': false}], projType: projectType.project, userID: userID};
+        let projQuery = {$or: [{deleteInfo: null}, {'deleteInfo.deleted': false}], projType: {$in: [projectType.project, projectType.folder]}, userID: userID};
         CommonAjax.post('/pm/api/getProjectsByQuery', {user_id: userID, query: projQuery, options: '-_id -property'}, function (rstData) {
+            let fileHierarchyData = getFileHierarchyInfo(rstData);
             $('#copyShare_selectProj').empty();
-            for(let proj of rstData){
-                let opt = $('<option>').val(proj.ID).text(proj.name);
+            for(let proj of fileHierarchyData){
+                let opt = $('<option>').val(proj.ID).text(proj.fileHierarchyName);
                 $('#copyShare_selectProj').append(opt);
             }
             //初始选择
-            if(rstData.length > 0){
-                setEng(rstData[0].ID);
+            if(fileHierarchyData.length > 0){
+                setEng(fileHierarchyData[0].ID);
             }
         });
     }

+ 2 - 2
web/users/html/user-info.html

@@ -42,11 +42,11 @@
                     <form id="info-form" method="post" action="/user/info">
                         <div class="form-group">
                             <label class="form-control-label">您的姓名</label>
-                            <input class="form-control" value="<%= userData.real_name %>" placeholder="输入您的姓名" id="name" name="real_name"/>
+                            <input class="form-control" value="<%= userData.real_name %>" placeholder="输入您的姓名" id="name" name="real_name" autocomplete="off">
                         </div>
                         <div class="form-group">
                             <label class="form-control-label">企业名称</label>
-                            <input class="form-control" value="<%= userData.company %>" placeholder="输入您的企业名称" id="company" name="company"/>
+                            <input class="form-control" value="<%= userData.company %>" placeholder="输入您的企业名称" id="company" name="company" autocomplete="off">
                         </div>
                         <div class="form-group">
                             <label class="form-control-label">企业所在地区</label>