浏览代码

插入清单,含多个单位时,根据用户选择的单位添加

MaiXinRong 7 年之前
父节点
当前提交
22089c61be

+ 20 - 0
web/building_saas/main/html/main.html

@@ -539,6 +539,25 @@
             </div>
         </div>
     </div>
+    <!--弹出清单单位选择设置-->
+    <div class="modal fade" id="std_bills_unit" data-backdrop="static">
+        <div class="modal-dialog modal-lg" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title"><i class="fa fa-table"></i> 请选择清单计量单位</h5>
+                    <button type="button" class="close" id='std_bills_unit_close' aria-label="Close">
+                        <span aria-hidden="true">&times;</span>
+                    </button>
+                </div>
+                <div class="modal-body modal-auto-height" id="std_bills_unit_spread" style="height: 200px; overflow: hidden;">
+                </div>
+                <div class="modal-footer">
+                    <a href="javascript:void(0);" id="std_bills_unit_ok" class="btn btn-primary">确定</a>
+                    <button type="button" class="btn btn-secondary" id='std_bills_unit_cancel'>关闭</button>
+                </div>
+            </div>
+        </div>
+    </div>    
     <!--弹出列设置-->
     <div class="modal fade" id="column" data-backdrop="static">
         <div class="modal-dialog modal-lg" role="document">
@@ -717,6 +736,7 @@
     <script type="text/javascript" src="/web/building_saas/main/js/models/quantity_detail.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/views/glj_view_contextMenu.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/views/calc_program_view.js"></script>
+    <script type="text/javascript" src='/web/building_saas/main/js/views/confirm_modal.js'></script>
     <!-- reports -->
     <script type="text/javascript" src="/public/web/treeDataHelper.js"></script>
     <script type="text/javascript" src="/public/web/ztree_common.js"></script>

+ 7 - 4
web/building_saas/main/js/controllers/project_controller.js

@@ -17,13 +17,16 @@ ProjectController = {
     addBills: function (project, sheetController, std) {
         if (!project || !sheetController) { return null; }
 
-        var target = project.getParentTarget(project.mainTree.selected, 'sourceType', project.Bills.getSourceType());
-        var newSource = null, newNode = null;
+        let target = project.getParentTarget(project.mainTree.selected, 'sourceType', project.Bills.getSourceType());
+        let newSource = null, newNode = null;
+        let parentID = target ? target.source.getParentID() : project.Bills.tree.setting.rootId;
+        let nextSiblingID = target ? target.source.getNextSiblingID() : project.Bills.tree.setting.rootId;
 
         if (std) {
-            newSource = project.Bills.insertStdBills(target ? target.source.getParentID() : project.Bills.tree.setting.rootId, target ? target.source.getNextSiblingID() : project.Bills.tree.setting.rootId, std.data);
+            let newCode = project.Bills.newFormatCode(std.code);
+            newSource = project.Bills.insertStdBills(parentID, nextSiblingID, std, newCode);
         } else {
-            newSource = project.Bills.insertBills(target ? target.source.getParentID() : project.mainTree.setting.rootId, target ? target.source.getNextSiblingID() : project.mainTree.setting.rootId);
+            newSource = project.Bills.insertBills(parentID, nextSiblingID);
         }
         newNode = project.mainTree.insert(target.getParentID(), target.getNextSiblingID());
 

+ 12 - 2
web/building_saas/main/js/views/project_view.js

@@ -177,11 +177,21 @@ var projectObj = {
                 CommonAjax.post('/stdBillsEditor/getStdBillsByCode', {userId: userID, billsLibId: libId, code: stdCode}, function (data) {
                     if (data) {
                         data.itemCharacter = pageCCOprObj.safeItemCharater(data.itemCharacter);
-                        project.Bills.replaceBills(node.source, data, formatCode);
+                        if (/\//.test(data.unit)) {
+                            ConfirmModal.stdBillsUnit.check(data, function (std) {
+                                project.Bills.replaceBills(node.source, std, formatCode);
+                                projectObj.mainController.refreshTreeNode([node], false);
+                            }, function () {
+                                projectObj.mainController.refreshTreeNode([node], false);
+                            });
+                        } else {
+                            project.Bills.replaceBills(node.source, data, formatCode);
+                            projectObj.mainController.refreshTreeNode([node], false);
+                        }
                     } else {
                         project.Bills.updateField(node.source, 'code', formatCode, true);
+                        projectObj.mainController.refreshTreeNode([node], false);
                     }
-                    projectObj.mainController.refreshTreeNode([node], false);
                 });
             }
         }

+ 8 - 1
web/building_saas/main/js/views/std_bills_lib.js

@@ -144,10 +144,17 @@ var billsLibObj = {
 
             stdBillsTreeController.bind(TREE_SHEET_CONTROLLER.eventName.treeSelectedChanged, showBillsRela);
             that.stdBillsSpread.bind(GC.Spread.Sheets.Events.CellDoubleClick, function (sender, args) {
+                let selectNode = stdBillsTree.items[args.row];
                 if (stdBillsTree.items[args.row].children.length === 0) {
                     //特征及内容转化
                     pageCCOprObj.setItemContentNode(stdBillsTree.items[args.row], getBillsJobs(stdBillsTree.items[args.row]), getBillsFeatures(stdBillsTree.items[args.row]));
-                    ProjectController.addBills(projectObj.project, projectObj.mainController, stdBillsTree.items[args.row]);
+                    if (/\//.test(selectNode.data.unit)) {
+                        ConfirmModal.stdBillsUnit.check(selectNode.data, function (std) {
+                            ProjectController.addBills(projectObj.project, projectObj.mainController, std);
+                        });
+                    } else {
+                        ProjectController.addBills(projectObj.project, projectObj.mainController, selectNode.data);
+                    }
                 }
             });
         }, function () {