Explorar o código

feat: 拷贝分享建设项目,有重名的重命名后再拷贝

vian %!s(int64=4) %!d(string=hai) anos
pai
achega
416801c8a6

+ 22 - 0
web/building_saas/pm/html/project-management-share.html

@@ -83,4 +83,26 @@
             </div>
         </div>
     </div>
+</div>
+<div class="modal fade" id="share-rename-dialog" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">已存在此建设项目,请重命名</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                    <div class="form-group">
+                        <input type="text" class="form-control" placeholder="输入名称" id="share-rename-input">
+                        <span class="form-text text-danger" id="share-rename-info" style="display: none;">已存在 “建筑工程1”</span>
+                    </div>
+            </div>
+            <div class="modal-footer">
+                <a href="javascript:void(0);" class="btn btn-primary" id="share-rename-confirm">确定</a>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+            </div>
+        </div>
+    </div>
 </div>

+ 28 - 6
web/building_saas/pm/js/pm_share.js

@@ -951,17 +951,19 @@ const pmShare = (function () {
             alert(err);
         }
     }
+    let projectQueryResult = [];
     //拷贝分享的建设项目
     //@param {Object}selected 
-    async function copyContructionProject(selected){
+    async function copyContructionProject(selected, rename){
       try {
-        let newName = getCopyName(selected);
+        let newName = rename ? rename : getCopyName(selected);
         //获取单项工程的单位工程
         let projectQuery = {$or: [{deleteInfo: null}, {'deleteInfo.deleted': false}], userID: userID,projType: "Project"};
-        const rstData = await ajaxPost('/pm/api/getProjectsByQuery', {user_id: userID, query: projectQuery, options: '-_id -property'}, false, 10000);
-        for(let project of rstData){
+        projectQueryResult = await ajaxPost('/pm/api/getProjectsByQuery', {user_id: userID, query: projectQuery, options: '-_id -property'}, false, 10000);
+        for(let project of projectQueryResult){
             if(project.name === newName){
-                alert("已存在此建设项目");
+                $("#share-rename-dialog").modal('show');
+                $("#share-rename-input").val(newName);
                 return;
             }
         }
@@ -986,7 +988,7 @@ const pmShare = (function () {
             node = node.parent;
             userInfo = node.data.userInfo;
         }
-        return `${orgName} (${userInfo.name}分享拷贝)`;
+        return `${orgName}`;
     }
     //清除了该节点后,可能还有该节点的数据在树上(树允许有重复数据),需要更新分享信息
     function updateAfterCancel(userID, projectID) {
@@ -1112,6 +1114,26 @@ const pmShare = (function () {
                 $.bootstrapLoading.end();
             });
         });
+
+        // 拷贝重命名
+        $('#share-rename-dialog').on('show.bs.modal', () => {
+            $('#share-rename-info').hide();
+            setTimeout(() => {
+                $('#share-rename-input').focus();
+            }, 200)
+        });
+        $('#share-rename-confirm').click(function () {
+            const newName = $('#share-rename-input').val().trim();
+            for(let project of projectQueryResult){
+                if(project.name === newName){
+                    $('#share-rename-info').text(`已存在 “${newName}”`);
+                    $('#share-rename-info').show();
+                    return;
+                }
+            }
+            $("#share-rename-dialog").modal('hide');
+            copyContructionProject(tree.selected, newName);
+        });
     }
 
     return {