chenshilong 6 سال پیش
والد
کامیت
4d9ac3b3a5

+ 9 - 9
web/building_saas/main/html/main.html

@@ -39,8 +39,8 @@
         let userAccount = '<%- userAccount %>';
         let userID = '<%- userID %>';
         let projectReadOnly = JSON.parse('<%- projectReadOnly %>');
-//        const G_SHOW_BLOCK_LIB = true;
-        const G_SHOW_BLOCK_LIB = false;
+        const G_SHOW_BLOCK_LIB = true;
+//        const G_SHOW_BLOCK_LIB = false;
     </script>
 </head>
 
@@ -1803,15 +1803,15 @@
                         <label>选择匹配模式:</label>
                         <div>
                             <div class="form-check form-check-inline">
-                                <input class="form-check-input" type="checkbox" name="inlineRadioOptions" id="inlinecheckbox1" value="option1" checked>
+                                <input class="form-check-input" type="checkbox" id="clone_option_code" value="option1" checked>
                                 <label class="form-check-label" for="inlinecheckbox1">项目编码(前9位)</label>
                             </div>
                             <div class="form-check form-check-inline">
-                                <input class="form-check-input" type="checkbox" name="inlineRadioOptions" id="inlinecheckbox2" value="option2">
+                                <input class="form-check-input" type="checkbox" id="clone_option_name" value="option2">
                                 <label class="form-check-label" for="inlinecheckbox2">项目名称</label>
                             </div>
                             <div class="form-check form-check-inline">
-                                <input class="form-check-input" type="checkbox" name="inlineRadioOptions" id="inlinecheckbox3" value="option3" checked>
+                                <input class="form-check-input" type="checkbox" id="clone_option_unit" value="option3" checked>
                                 <label class="form-check-label" for="inlinecheckbox3">单位</label>
                             </div>
                         </div>
@@ -1820,11 +1820,11 @@
                         <label for="exampleInputPassword1">插入为选定节点的:</label>
                         <div>
                             <div class="form-check form-check-inline">
-                                <input class="form-check-input" type="radio" name="rationQuantity" id="inlineRadio21" value="option1" checked>
+                                <input class="form-check-input" type="radio" name="rationQuantity" id="clone_option_quantity" value="option1" checked>
                                 <label class="form-check-label" for="inlineRadio21">根据含量计算定额工程量</label>
                             </div>
                             <div class="form-check form-check-inline">
-                                <input class="form-check-input" type="radio" name="rationQuantity" id="inlineRadio22" value="option2">
+                                <input class="form-check-input" type="radio" name="rationQuantity" id="clone_option_zeroQuantity" value="option2">
                                 <label class="form-check-label" for="inlineRadio22">含量和定额工程量为零</label>
                             </div>
                         </div>
@@ -1833,11 +1833,11 @@
                         <label for="exampleInputPassword1">清单下有定额时:</label>
                         <div>
                             <div class="form-check form-check-inline">
-                                <input class="form-check-input" type="radio" name="rationCover" id="inlineRadio33" value="option3" checked>
+                                <input class="form-check-input" type="radio" name="rationCover" id="clone_option_noCover" value="option3" checked>
                                 <label class="form-check-label" for="inlineRadio33">跳过不覆盖</label>
                             </div>
                             <div class="form-check form-check-inline">
-                                <input class="form-check-input" type="radio" name="rationCover" id="inlineRadio32" value="option2">
+                                <input class="form-check-input" type="radio" name="rationCover" id="clone_option_overwriteRations" value="option2">
                                 <label class="form-check-label" for="inlineRadio32">直接覆盖</label>
                             </div>
                         </div>

+ 1 - 1
web/building_saas/main/js/controllers/block_controller.js

@@ -242,7 +242,7 @@ let BlockController = {
         if(blockData.firstNodeType == blockType.RATION){ //复制的是定额,需根据新的父项信息和工程量明细计算工程量
             for(let d of blockData.datas){
                 d.billsItemID = parentID;
-                if (blockData.zeroRationQuantity){
+                if (blockData.zeroQuantity){   // 来自克隆块
                     d.quantity = 0;
                     d.quantityEXP = '';
                     d.contain = '';

+ 17 - 5
web/building_saas/main/js/views/block_lib.js

@@ -535,16 +535,28 @@ var blockLibObj = {
         if (!calcTools.isLeafBill(projectNode)) return;
         $("#blockAdjustOptions").modal({show: true});
     },
-    oneToOneClone: function (projectNode, block) {
-        // 这里再次封装成伟城的块文件格式,可直接使用伟城的“粘贴块”接口。
-        // 这里结构作出调整:忽略叶子清单层,直接从定额开始(跟粘贴块有区别),始终强制在叶子清单下插入定额。
-        // 该操作前提:当前块文件的全部数据已从后台取到前台。
+    oneToOneClone: function (projectNode, block, options) {
+        // if (options.overwriteRations)
+        //     projectNode.deleteChildren();
+
+        let canClone = true;
+        if (options.checkCode)
+            canClone = canClone && (projectNode.data.code.substr(0, 9) == block.data.code.substr(0, 9));
+        if (options.checkName)
+            canClone = canClone && (projectNode.data.name == block.data.name);
+        if (options.checkUnit)
+            canClone = canClone && (projectNode.data.unit == block.data.unit);
+        if (!canClone) return;
+
+        /*  这里再次封装成伟城的块文件格式,可直接使用伟城的“粘贴块”接口。
+            这里结构作出调整:忽略叶子清单层,直接从定额开始(跟粘贴块有区别),始终强制在叶子清单下插入定额。
+            该操作前提:当前块文件的全部数据已从后台取到前台。  */
         let vBlock_WC = {
             compilationID: block.data.compilationID,
             copyTime: block.data.copyTime,
             firstNodeType: 1,           // 强制改成1 (因为是从清单下的定额开始。清单自身的还是保留,暂不使用使用)。
             isFBFX: block.data.isFBFX,
-            zeroRationQuantity: true,
+            zeroQuantity: options.zeroQuantity,
             datas: block.data.children       // rations
         };
         BlockController.confirmPaste(vBlock_WC, projectNode, 'sub');

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

@@ -2954,6 +2954,10 @@ $(function () {
 
     });
 
+    $("#zujiamb").on('show.bs.modal', function(){
+
+    });
+
     $("#btn_block_createBlocks").click(function () {
         if ($("#select_block_category")[0].options.length < 1) return;
         let cID = $("#select_block_category").val();
@@ -3003,7 +3007,14 @@ $(function () {
     $("#btn_block_clone_ok").click(function () {
         let projectNode = projectObj.project.mainTree.selected;
         let block = blockLibObj.mainTree.selected;
-        blockLibObj.oneToOneClone(projectNode, block);
+        let options = {};
+        if ($('#clone_option_code').prop("checked")) options.checkCode = true;
+        if ($('#clone_option_name').prop("checked")) options.checkName = true;
+        if ($('#clone_option_unit').prop("checked")) options.checkUnit = true;
+        if ($('#clone_option_zeroQuantity').prop("checked")) options.zeroQuantity = true;
+        if ($('#clone_option_overwriteRations').prop("checked")) options.overwriteRations = true;
+
+        blockLibObj.oneToOneClone(projectNode, block, options);
     });