Browse Source

修复视图某些情况下不能正确删除列和排序列顺序不对的问题

unknown 5 years ago
parent
commit
21ddf5716a

+ 12 - 1
o2web/source/x_component_query_ViewDesigner/Property.js

@@ -605,6 +605,7 @@ MWF.xApplication.query.ViewDesigner.Property = MWF.FVProperty = new Class({
             }.bind(this));
             }.bind(this));
             select.addEvent("change", function(e){
             select.addEvent("change", function(e){
                 debugger;
                 debugger;
+                var sortList = this.view.data.data.orderList;
                 var v = select.options[select.selectedIndex].value;
                 var v = select.options[select.selectedIndex].value;
                 if (v!="none"){
                 if (v!="none"){
                     var flag = false;
                     var flag = false;
@@ -615,7 +616,18 @@ MWF.xApplication.query.ViewDesigner.Property = MWF.FVProperty = new Class({
                         }
                         }
                     }.bind(this));
                     }.bind(this));
                     if (!flag) sortList.push({"column": this.data.column, "orderType": select.options[select.selectedIndex].value});
                     if (!flag) sortList.push({"column": this.data.column, "orderType": select.options[select.selectedIndex].value});
+
+                    var oldOrderList = Array.clone(this.view.data.data.orderList);
+                    this.view.data.data.orderList = [];
+                    this.view.json.data.selectList.each( function ( sel ) {
+                        oldOrderList.each(function(order){
+                            if (order.column == sel.column){
+                                this.view.data.data.orderList.push( order );
+                            }
+                        }.bind(this));
+                    }.bind(this));
                 }else{
                 }else{
+                    var sortList = this.view.data.data.orderList;
                     var deleteItem = null;
                     var deleteItem = null;
                     sortList.each(function(order){
                     sortList.each(function(order){
                         if (order.column==this.data.column){
                         if (order.column==this.data.column){
@@ -624,7 +636,6 @@ MWF.xApplication.query.ViewDesigner.Property = MWF.FVProperty = new Class({
                     }.bind(this));
                     }.bind(this));
                     if (deleteItem) sortList.erase(deleteItem);
                     if (deleteItem) sortList.erase(deleteItem);
                 }
                 }
-
             }.bind(this));
             }.bind(this));
 
 
             var radios = node.getElements("input");
             var radios = node.getElements("input");

+ 25 - 3
o2web/source/x_component_query_ViewDesigner/View.js

@@ -177,8 +177,9 @@ MWF.xApplication.query.ViewDesigner.View = new Class({
                             }
                             }
 
 
                             json.data.groupGrid.each(function(line, idx){
                             json.data.groupGrid.each(function(line, idx){
-                                var groupTr = new Element("tr", {"styles":
-                                    this.json.data.viewStyles ? this.json.data.viewStyles["contentTr"] : this.css.viewContentTrNode
+                                var groupTr = new Element("tr", {
+                                    "styles": this.json.data.viewStyles ? this.json.data.viewStyles["contentTr"] : this.css.viewContentTrNode,
+                                    "data-is-group" : "yes"
                                 }).inject(this.viewContentTableNode);
                                 }).inject(this.viewContentTableNode);
                                 var colSpan = this.items.length ;
                                 var colSpan = this.items.length ;
                                 var td = new Element("td", {
                                 var td = new Element("td", {
@@ -1334,6 +1335,18 @@ MWF.xApplication.query.ViewDesigner.View.Column = new Class({
             this.close();
             this.close();
         }, null);
         }, null);
     },
     },
+    isOrderColumn : function(){
+        var sortList = this.view.json.data.orderList || [];
+        var flag = false;
+        sortList.each(function(order){
+            if (order.column==this.json.column)flag = true;
+        }.bind(this));
+        return flag;
+    },
+    isGroupColumn : function() {
+        if (!this.view.json || !this.view.json.data || !this.view.json.data.group) return false;
+        return this.view.json.data.group.column === this.json.column;
+    },
     destroy: function(){
     destroy: function(){
         if (this.view.currentSelectedModule==this) this.view.currentSelectedModule = null;
         if (this.view.currentSelectedModule==this) this.view.currentSelectedModule = null;
         if (this.actionArea) this.actionArea.destroy();
         if (this.actionArea) this.actionArea.destroy();
@@ -1344,8 +1357,17 @@ MWF.xApplication.query.ViewDesigner.View.Column = new Class({
 
 
         if (this.view.viewContentTableNode){
         if (this.view.viewContentTableNode){
             var trs = this.view.viewContentTableNode.getElements("tr");
             var trs = this.view.viewContentTableNode.getElements("tr");
+            var isGroup = this.isGroupColumn();
             trs.each(function(tr){
             trs.each(function(tr){
-                tr.deleteCell(idx);
+                if( isGroup ){
+                    if( tr.get("data-is-group") === "yes" ){
+                        tr.destroy()
+                    }
+                }else{
+                    if( tr.get("data-is-group") !== "yes" ){
+                        tr.deleteCell(idx);
+                    }
+                }
             }.bind(this));
             }.bind(this));
         }
         }