Explorar el Código

sorting tuning

TonyKang hace 7 años
padre
commit
b248ddb465

+ 44 - 64
web/maintain/report/js/rpt_tpl_pre_handle.js

@@ -98,15 +98,19 @@ let preHandleObj = {
         types.push({Name: JV.PROP_HANDLE_TYPE_ADD_DUMMY, Title: ""});
         // types.push({Name: "纯手工填写", Title: ""});
         me.typeTreeObj = $.fn.zTree.init($("#pre_handle_type_reversed"), preHandleTypeSetting, types);
-        me.setDisabledBandSelect(true);
+        me.setDisabledBandSelect([0,1,2,3,4]);
         me.build_handle_data_selection();
     },
-    setDisabledBandSelect: function(disabled) {
+    setDisabledBandSelect: function(disabledIdxArr) {
         let me = this;
         if (me.typeTreeObj) {
             let nodes = me.typeTreeObj.getNodes();
-            for (let node of nodes) {
-                me.typeTreeObj.setChkDisabled(node, disabled, true, true);
+            for (let idx = 0; idx < nodes.length; idx++) {
+                if (disabledIdxArr.indexOf(idx) >= 0) {
+                    me.typeTreeObj.setChkDisabled(nodes[idx], true, true, true);
+                } else {
+                    me.typeTreeObj.setChkDisabled(nodes[idx], false, true, true);
+                }
             }
         }
     },
@@ -246,7 +250,7 @@ let preHandleObj = {
         //点击预处理环节 节点
         let me = preHandleObj;
         me.currentNode = treeNode;
-        me.setDisabledBandSelect(false);
+        me.setDisabledBandSelect([2,3,4]);
         me.refreshByNode(treeNode);
     },
     onTypeClick: function(event,treeId,treeNode) {
@@ -264,28 +268,12 @@ let preHandleObj = {
         //更改(或选择)预处理环节中的 数据依据(就是说报表想预处理什么数据)
         let me = preHandleObj;
         if (oprType === "top") {
-            me.childTreeObj = $.fn.zTree.init($("#child_sorting_keys"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]);
-            me.treeObj = $.fn.zTree.init($("#pre_handle_sort_keys_reversed"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]);
+            preHandleSortObj.childTreeObj = $.fn.zTree.init($("#child_sorting_keys"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]);
+            preHandleSortObj.treeObj = $.fn.zTree.init($("#pre_handle_sort_keys_reversed"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]);
             preHandleFilterObj.treeObj = $.fn.zTree.init($("#pre_handle_filter_keys_reversed"), filterKeysSetting, exposed_properties_arr[dom.selectedIndex]);
         } else if (oprType === "accord_to_parent") {
-            me.parentTreeObj = $.fn.zTree.init($("#parent_sorting_keys"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]);
-        }
-    },
-    onSortTypeChange: function(dom) {
-        //排序类型的选择/更改
-        let me = preHandleObj;
-        me.hide_all_dom();
-        $("#div_pre_handle_data")[0].style.display = "";
-        $("#div_sort_type")[0].style.display = "";
-        if (dom.selectedIndex === 2) {
-            $("#div_sort_type_according_to_parent")[0].style.display = "";
-            $("#div_sort_type_parent_data")[0].style.display = "";
-            me.parentTreeObj = $.fn.zTree.init($("#parent_sorting_keys"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]);
-            me.childTreeObj = $.fn.zTree.init($("#child_sorting_keys"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]);
-        } else if (dom.selectedIndex === 0) {
-            $("#div_sort_type_normal")[0].style.display = "";
+            preHandleSortObj.parentTreeObj = $.fn.zTree.init($("#parent_sorting_keys"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]);
         }
-        me.currentNode[JV.PROP_SORT_TYPE] = dom.value;
     },
     onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
         //
@@ -341,43 +329,12 @@ let preHandleSortObj = {
                 break;
             case 0 :
                 //normal
-                let sortTypeIdx = sort_types.indexOf(src[JV.PROP_SORT_TYPE]);
-                switch (sortTypeIdx) {
-                    case -1:
-                        //unknown!
-                        break;
-                    case 0 :
-                        //normal
-                        let keys = [];
-                        for (let sortKeyItem of src[JV.PROP_SORT_KEYS]) {
-                            let item = {key: sortKeyItem.key, order: sortKeyItem.order};
-                            keys.push(item);
-                        }
-                        dest[JV.PROP_SORT_KEYS] = keys;
-                        break;
-                    case 1 :
-                        //tree
-                        //tree排序是我们特有的数据结构方式,与数据结构有关,非common用, 无其他参数
-                        break;
-                    case 2 :
-                        //according to parent
-                        // $("#div_sort_type_according_to_parent")[0].style.display = "";
-                        // $("#div_sort_type_parent_data")[0].style.display = "";
-                        // sel = $("#select_mapping_data_for_sort_type")[0];
-                        // idx = pre_handle_data_objects.indexOf(preHandleObj.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_DATA_KEY]);
-                        // sel.selectedIndex = idx;
-                        // me.parentTreeObj = $.fn.zTree.init($("#parent_sorting_keys"), sortingKeysSetting, exposed_properties_arr[idx]);
-                        // me.checkupNode(preHandleObj.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_SORT_KEYS], me.parentTreeObj);
-                        // idx = pre_handle_data_objects.indexOf(preHandleObj.currentNode[JV.PROP_DATA_KEY]);
-                        // me.childTreeObj = $.fn.zTree.init($("#child_sorting_keys"), sortingKeysSetting, exposed_properties_arr[idx]);
-                        // me.checkupNode(preHandleObj.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_CHILD_SORT_KEYS], me.childTreeObj);
-                        break;
-                    case 3 :
-                        //self define
-                        break;
-                    default:
-                        break;
+                let keys = [];
+                for (let sortKeyItem of src[JV.PROP_SORT_KEYS]) {
+                    let item = {key: sortKeyItem.key, order: sortKeyItem.order};
+                    keys.push(item);
                 }
+                dest[JV.PROP_SORT_KEYS] = keys;
                 break;
             case 1 :
                 //tree
@@ -432,12 +389,12 @@ let preHandleSortObj = {
                     //normal
                     $("#div_sort_type_normal")[0].style.display = "";
                     idx = pre_handle_data_objects.indexOf(preHandleObj.currentNode[JV.PROP_DATA_KEY]);
-                    me.treeObj = $.fn.zTree.init($("#pre_handle_sort_keys_reversed"), sortingKeysSetting, exposed_properties_arr[idx]);
-                    let nodes = me.treeObj.getNodes();
+                    me.normalTreeObj = $.fn.zTree.init($("#pre_handle_sort_keys_reversed"), sortingKeysSetting, exposed_properties_arr[idx]);
+                    let nodes = me.normalTreeObj.getNodes();
                     for (let sortItem of preHandleObj.currentNode[JV.PROP_SORT_KEYS]) {
                         for (let keyNode of nodes) {
                             if (sortItem.key === keyNode.Key) {
-                                me.treeObj.checkNode(keyNode, true, false, false);
+                                me.normalTreeObj.checkNode(keyNode, true, false, false);
                                 break;
                             }
                         }
@@ -491,7 +448,7 @@ let preHandleSortObj = {
     },
     resetNormalSort: function() {
         let me = preHandleSortObj;
-        let nodes = me.treeObj.getCheckedNodes();
+        let nodes = me.normalTreeObj.getCheckedNodes();
         let normalSortKeys = [];
         for (let node of nodes) {
             let keyObj = {key: node.Key, order: node.Order};
@@ -511,6 +468,29 @@ let preHandleSortObj = {
             });
         }
     },
+    onSortTypeChange: function(dom) {
+        //排序类型的选择/更改
+        let me = preHandleObj;
+        me.hide_all_dom();
+        $("#div_pre_handle_data")[0].style.display = "";
+        $("#div_sort_type")[0].style.display = "";
+        let data_dom = $("#select_mapping_data")[0];
+        if (dom.selectedIndex === 2) {
+            $("#div_sort_type_according_to_parent")[0].style.display = "";
+            $("#div_sort_type_parent_data")[0].style.display = "";
+            preHandleSortObj.parentTreeObj = $.fn.zTree.init($("#parent_sorting_keys"), sortingKeysSetting, exposed_properties_arr[0]);
+            preHandleSortObj.childTreeObj = $.fn.zTree.init($("#child_sorting_keys"), sortingKeysSetting, exposed_properties_arr[data_dom.selectedIndex]);
+            me.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY] = {};
+            me.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_DATA_KEY] = pre_handle_data_objects[0];
+            me.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_SORT_KEYS] = [];
+            me.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_CHILD_SORT_KEYS] = [];
+        } else if (dom.selectedIndex === 0) {
+            $("#div_sort_type_normal")[0].style.display = "";
+            preHandleSortObj.normalTreeObj = $.fn.zTree.init($("#pre_handle_sort_keys_reversed"), sortingKeysSetting, exposed_properties_arr[data_dom.selectedIndex]);
+            me.currentNode[JV.PROP_SORT_KEYS] = [];
+        }
+        me.currentNode[JV.PROP_SORT_TYPE] = dom.value;
+    },
     extractTabFields: function (handleObj) {
         let me = this, rst = {};
         rst[JV.PROP_HANDLE_TYPE] = handleObj[JV.PROP_HANDLE_TYPE];

+ 1 - 1
web/maintain/report/rpt_tpl_detail_pre_handle_sort.html

@@ -1,7 +1,7 @@
 <div class="form-group row" id="div_sort_type">
     <div class="input-group col-5">
         <div class="input-group-addon">排序方式</div>
-        <select class="form-control input-sm" id="select_sort_types" onchange="preHandleObj.onSortTypeChange(this)">
+        <select class="form-control input-sm" id="select_sort_types" onchange="preHandleSortObj.onSortTypeChange(this)">
             <option value="normal">普通</option>
             <option value="tree">树结构</option>
             <option value="accord_to_parent">依据上级</option>