瀏覽代碼

feat: 报表后台系统,数据预处理新增 "显示混凝土子项“和 "合并人材机数据"

lishihao 2 天之前
父節點
當前提交
e938ec95e4

+ 2 - 0
public/web/rpt_value_define.js

@@ -79,6 +79,8 @@ const JV = {
   PROP_HANDLE_TYPE_FX_GLJ: "分项定额人材机处理",
   PROP_HANDLE_TYPE_FLOOR_BILL_GLJ: "底层清单人材机处理",
   PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES: "gljTypeList", // "底层清单人材机处理类型集",
+  PROP_HANDLE_TYPE_SHOW_CONCRETE_CHILD: "showConcreteChild", // "显示混凝土子项",
+  PROP_HANDLE_TYPE_MERGE_GLJ_DATA: "mergeGljData", // "合并人材机数据",
   PROP_HANDLE_TYPE_LAND_COMPS: "清单土地计算合并",
   PROP_HANDLE_TYPE_COST_TREE_BU_GLJ: "造价书插入补项工料机",
   PROP_HANDLE_TYPE_FLITE_XMJ_IS_BILL_BUDGET: "筛选清单预算项目节",

+ 12 - 0
web/maintain/report/html/rpt_tpl_dtl_pre_hdl_floor_bill_glj_types.html

@@ -7,4 +7,16 @@
             </div>
         </div>
     </div>
+    <div class="form-group row" style="margin-top: 10px;">
+        <div class="col-12" style="display: flex; gap: 20px; align-items: center;">
+            <label style="display: inline-flex; align-items: center; margin: 0; cursor: pointer; font-size: 12px; font-weight: normal;">
+                <input type="checkbox" id="chk_show_concrete_child" style="margin-right: 4px;" onchange="preHandleFloorBillGljObj.onOptionChange(this)">
+                <span>显示混凝土子项</span>
+            </label>
+            <label style="display: inline-flex; align-items: center; margin: 0; cursor: pointer; font-size: 12px; font-weight: normal;">
+                <input type="checkbox" id="chk_merge_glj_data" style="margin-right: 4px;" onchange="preHandleFloorBillGljObj.onOptionChange(this)">
+                <span>合并人材机数据</span>
+            </label>
+        </div>
+    </div>
 </div>

+ 37 - 15
web/maintain/report/js/rpt_tpl_pre_handle.js

@@ -133,11 +133,7 @@ const fixed_floor_bill_glj_types = [
 // 默认不选择的项
 const floor_bill_glj_default_excluded_values = [];
 const getDefaultFloorBillGljTypes = function () {
-  return fixed_floor_bill_glj_types
-    .filter(
-      (item) => floor_bill_glj_default_excluded_values.indexOf(item.Value) < 0,
-    )
-    .map((item) => item.Value);
+  return [];
 };
 const getSelectedFloorBillGljTypes = function (existingValues) {
   if (
@@ -145,12 +141,9 @@ const getSelectedFloorBillGljTypes = function (existingValues) {
     existingValues === null ||
     existingValues === ""
   ) {
-    return getDefaultFloorBillGljTypes();
+    return [];
   }
   if (Array.isArray(existingValues)) {
-    if (existingValues.length === 0) {
-      return getDefaultFloorBillGljTypes();
-    }
     return existingValues.map((item) => Number(item));
   }
   if (typeof existingValues === "string") {
@@ -158,20 +151,16 @@ const getSelectedFloorBillGljTypes = function (existingValues) {
       .split(",")
       .map((item) => Number(item.trim()))
       .filter((item) => !Number.isNaN(item));
-    if (values.length === 0) {
-      return getDefaultFloorBillGljTypes();
-    }
     return values;
   }
   return [Number(existingValues)];
 };
 const ensureFloorBillGljTypes = function (node) {
   if (!node) {
-    return getDefaultFloorBillGljTypes();
+    return [];
   }
   if (typeof node[JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES] === "undefined") {
-    node[JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES] =
-      getDefaultFloorBillGljTypes();
+    node[JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES] = [];
   }
   return node[JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES];
 };
@@ -679,6 +668,8 @@ let preHandleObj = {
           预处理类型: preHandleType,
           [JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES]:
             getDefaultFloorBillGljTypes(),
+          [JV.PROP_HANDLE_TYPE_SHOW_CONCRETE_CHILD]: false,
+          [JV.PROP_HANDLE_TYPE_MERGE_GLJ_DATA]: false,
         };
         break;
       case JV.PROP_HANDLE_TYPE_LAND_COMPS:
@@ -769,6 +760,8 @@ let preHandleObj = {
       case JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ:
         item[JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES] =
           getDefaultFloorBillGljTypes();
+        item[JV.PROP_HANDLE_TYPE_SHOW_CONCRETE_CHILD] = false;
+        item[JV.PROP_HANDLE_TYPE_MERGE_GLJ_DATA] = false;
         break;
       case JV.PROP_HANDLE_TYPE_LAND_COMPS:
         break;
@@ -2051,6 +2044,10 @@ let preHandleFloorBillGljObj = {
   copyNode: function (src, dest) {
     let values = getSelectedFloorBillGljTypes(ensureFloorBillGljTypes(src));
     dest[JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES] = values.slice();
+    dest[JV.PROP_HANDLE_TYPE_SHOW_CONCRETE_CHILD] =
+      !!src[JV.PROP_HANDLE_TYPE_SHOW_CONCRETE_CHILD];
+    dest[JV.PROP_HANDLE_TYPE_MERGE_GLJ_DATA] =
+      !!src[JV.PROP_HANDLE_TYPE_MERGE_GLJ_DATA];
   },
   refresh_node: function () {
     $("#div_floor_bill_glj_types_bar")[0].style.display = "";
@@ -2088,6 +2085,17 @@ let preHandleFloorBillGljObj = {
         label.appendChild(text);
         container.appendChild(label);
       }
+
+      let showConcreteChk = $("#chk_show_concrete_child")[0];
+      if (showConcreteChk) {
+        showConcreteChk.checked =
+          !!preHandleObj.currentNode[JV.PROP_HANDLE_TYPE_SHOW_CONCRETE_CHILD];
+      }
+      let mergeGljChk = $("#chk_merge_glj_data")[0];
+      if (mergeGljChk) {
+        mergeGljChk.checked =
+          !!preHandleObj.currentNode[JV.PROP_HANDLE_TYPE_MERGE_GLJ_DATA];
+      }
     }
   },
   extractTabFields: function (handleObj) {
@@ -2100,6 +2108,10 @@ let preHandleFloorBillGljObj = {
       [JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES]: getSelectedFloorBillGljTypes(
         ensureFloorBillGljTypes(handleObj),
       ),
+      [JV.PROP_HANDLE_TYPE_SHOW_CONCRETE_CHILD]:
+        !!handleObj[JV.PROP_HANDLE_TYPE_SHOW_CONCRETE_CHILD],
+      [JV.PROP_HANDLE_TYPE_MERGE_GLJ_DATA]:
+        !!handleObj[JV.PROP_HANDLE_TYPE_MERGE_GLJ_DATA],
     };
     return rst;
   },
@@ -2126,6 +2138,16 @@ let preHandleFloorBillGljObj = {
       me.currentNode[JV.PROP_HANDLE_TYPE_FLOOR_BILL_GLJ_TYPES] = values;
     }
   },
+  onOptionChange: function (dom) {
+    let me = preHandleObj;
+    if (me.currentNode) {
+      if (dom && dom.id === "chk_show_concrete_child") {
+        me.currentNode[JV.PROP_HANDLE_TYPE_SHOW_CONCRETE_CHILD] = dom.checked;
+      } else if (dom && dom.id === "chk_merge_glj_data") {
+        me.currentNode[JV.PROP_HANDLE_TYPE_MERGE_GLJ_DATA] = dom.checked;
+      }
+    }
+  },
 };
 
 let preHandleFXGLJObj = {