Explorar o código

Merge branch 'feature/Process.datagrid_addHiddenItem' into 'wrdp'

Merge of feature/Process.datagrid_addHiddenItem 数据网格增加隐藏列 to wrdp

See merge request o2oa/o2oa!2348
蔡祥熠 %!s(int64=5) %!d(string=hai) anos
pai
achega
968a065fdf

+ 18 - 1
o2web/source/x_component_process_FormDesigner/Module/Datagrid$Data.js

@@ -64,7 +64,7 @@ MWF.xApplication.process.FormDesigner.Module.Datagrid$Data = MWF.FCDatagrid$Data
 			"MWFType": "datagrid$Data",
 			"id": this.json.id
 		});
-		
+
 		if (!this.form.json.moduleList[this.json.id]){
 			this.form.json.moduleList[this.json.id] = this.json;
 		}
@@ -76,6 +76,11 @@ MWF.xApplication.process.FormDesigner.Module.Datagrid$Data = MWF.FCDatagrid$Data
         this._setEditStyle_custom("id");
         this.checkSequence();
         this.json.moduleName = this.moduleName;
+
+        debugger;
+		if( this.json.isShow === false ){
+			this._switchShow();
+		}
 	},
     _setEditStyle_custom: function(name, obj, oldValue) {
         if (name == "cellType") this.checkSequence(obj, oldValue);
@@ -118,6 +123,10 @@ MWF.xApplication.process.FormDesigner.Module.Datagrid$Data = MWF.FCDatagrid$Data
         }.bind(this));
 
 		this.setCustomNodeStyles(this.node, this.parentContainer.json.contentStyles);
+
+		if( this.json.isShow === false ){
+			this._switchShow();
+		}
 	},
     checkSequence: function(obj, oldValue){
         if ((this.json.cellType == "sequence") && (oldValue != "sequence")){
@@ -251,6 +260,14 @@ MWF.xApplication.process.FormDesigner.Module.Datagrid$Data = MWF.FCDatagrid$Data
 			}
 			
 		}
+	},
+	_switchShow : function (isShow) {
+		if( typeOf(isShow) === "boolean" ){
+			this.json.isShow = isShow;
+		}else{
+			isShow = this.json.isShow !== false ;
+		}
+		this.node.setStyle("opacity", isShow ? "1" : "0.3");
 	}
 	
 });

+ 36 - 3
o2web/source/x_component_process_FormDesigner/Module/Datagrid$Title.js

@@ -104,14 +104,18 @@ MWF.xApplication.process.FormDesigner.Module.Datagrid$Title = MWF.FCDatagrid$Tit
 		this.parentContainer = this.treeNode.parentNode.module;
         this._setEditStyle_custom("id");
         this.json.moduleName = this.moduleName;
+
+		if( this.json.isShow === false ){
+			this._switchShow();
+		}
 	},
 	
 	_createMoveNode: function(){
 		return false;
 	},
-	_setEditStyle_custom: function(name){
-
-	},
+	// _setEditStyle_custom: function(name){
+	//
+	// },
 	_dragInLikeElement: function(module){
 		return false;
 	},
@@ -134,6 +138,10 @@ MWF.xApplication.process.FormDesigner.Module.Datagrid$Title = MWF.FCDatagrid$Tit
 		}.bind(this));
 
 		this.setCustomNodeStyles(this.node, this.parentContainer.json.titleStyles);
+
+		if( this.json.isShow === false ){
+			this._switchShow();
+		}
 	},
 
 	insertCol: function(){
@@ -265,5 +273,30 @@ MWF.xApplication.process.FormDesigner.Module.Datagrid$Title = MWF.FCDatagrid$Tit
 				this.node.set("text", this.json.name);
 			}
 		}
+		if( name=="isShow" ){
+			this._switchShow( true );
+		}
+	},
+	_switchShow: function( isChangeTd ){
+		debugger;
+		var tr = this.node.getParent("tr");
+		var table = tr.getParent("table");
+		var colIndex = this.node.cellIndex;
+		var isShow = this.json.isShow !== false;
+
+		var titleTr = table.rows[0];
+		var currentTh = titleTr.cells[colIndex];
+		if( currentTh ){
+			currentTh.setStyle("opacity", isShow ? "1" : "0.3")
+		}
+
+		if(isChangeTd){
+			var dataTr = table.rows[1];
+			var currentTd = dataTr.cells[colIndex];
+			if( currentTd ){
+				var module = currentTd.retrieve("module");
+				if( module )module._switchShow( isShow );
+			}
+		}
 	}
 });

+ 7 - 0
o2web/source/x_component_process_FormDesigner/Module/Datagrid$Title/datagrid$Title.html

@@ -21,6 +21,13 @@
                     <input class="editTableRadio" name="total" text{($.total=='count')?'checked':''} type="radio" value="count"/>合计数量 <br/>
                 </td>
             </tr>
+            <tr>
+                <td class="editTableTitle">隐藏:</td>
+                <td class="editTableValue">
+                    <input class="editTableRadio" name="isShow" text{($.isShow!==false)?'checked':''} type="radio" value="true"/>显示该列 <br/>
+                    <input class="editTableRadio" name="isShow" text{($.isShow==false)?'checked':''} type="radio" value="false"/>隐藏该列 <br/>
+                </td>
+            </tr>
         </table>
 
         <div class="MWFMaplist" name="styles" title="样式"></div>

+ 8 - 0
o2web/source/x_component_process_FormDesigner/Module/Datagrid.js

@@ -315,13 +315,17 @@ MWF.xApplication.process.FormDesigner.Module.Datagrid = MWF.FCDatagrid = new Cla
         if (name=="titleStyles"){
             var ths = this.table.getElements("th");
             ths.each(function(th){
+            	var opacity = th.getStyle("opacity");
                 this.setCustomNodeStyles(th, this.json.titleStyles);
+                if(opacity)th.setStyle("opacity", opacity);
             }.bind(this));
         }
         if (name=="contentStyles"){
             var tds = this.table.getElements("td");
             tds.each(function(td){
+				var opacity = td.getStyle("opacity");
                 this.setCustomNodeStyles(td, this.json.contentStyles);
+				if(opacity)td.setStyle("opacity", opacity);
             }.bind(this));
         }
         //if (name=="sequence") this.checkSequenceShow();
@@ -330,13 +334,17 @@ MWF.xApplication.process.FormDesigner.Module.Datagrid = MWF.FCDatagrid = new Cla
         if (this.json.titleStyles){
             var ths = this.table.getElements("th");
             ths.each(function(th){
+				var opacity = th.getStyle("opacity");
                 this.setCustomNodeStyles(th, this.json.titleStyles);
+				if(opacity)th.setStyle("opacity", opacity);
             }.bind(this));
         }
         if (this.json.contentStyles){
             var tds = this.table.getElements("td");
             tds.each(function(td){
+				var opacity = td.getStyle("opacity");
                 this.setCustomNodeStyles(td, this.json.contentStyles);
+				if(opacity)td.setStyle("opacity", opacity);
             }.bind(this));
         }
     },

+ 2 - 0
o2web/source/x_component_process_Xform/Actionbar.js

@@ -16,6 +16,8 @@ MWF.xApplication.process.Xform.Actionbar = MWF.APPActionbar =  new Class({
         //     this.node.empty();
         // }else{
             this.toolbarNode = this.node.getFirst("div");
+            if(!this.toolbarNode)return;
+
             this.toolbarNode.empty();
 
             MWF.require("MWF.widget.Toolbar", function(){

+ 13 - 1
o2web/source/x_component_process_Xform/DatagridMobile.js

@@ -83,6 +83,9 @@ MWF.xApplication.process.Xform.DatagridMobile = new Class({
                 "id": contentTds[i].get("id"),
                 "mwftype": contentTds[i].get("mwftype")
             });
+
+            var json = this.form._getDomjson(titleTd);
+            if( json && json.isShow === false )mobileTr.hide();
         }.bind(this));
         this.table.destroy();
         this.table = null;
@@ -298,6 +301,9 @@ MWF.xApplication.process.Xform.DatagridMobile = new Class({
                         cell.set("text", idx+1);
                     }
 
+                    var json = this.form._getDomjson(th);
+                    if( json && json.isShow === false )tr.hide();
+
                 }.bind(this));
             }.bind(this));
         }
@@ -407,6 +413,8 @@ MWF.xApplication.process.Xform.DatagridMobile = new Class({
                         cell.set("text", idx+1);
                     }
 
+                    var json = this.form._getDomjson(th);
+                    if( json && json.isShow === false )tr.hide();
                 }.bind(this));
                 var size = dataDiv.getSize();
                 //dataDiv.setStyle("height", ""+size.y+"px");
@@ -1224,6 +1232,9 @@ MWF.xApplication.process.Xform.DatagridMobile = new Class({
                 }else{
                     tr.getElement("td").set("text", totalResaults[i] || "");
                 }
+
+                if( m.isShow === false )tr.hide();
+
                 this.totalResaults[m.module.json.id] = totalResaults[i];
             }.bind(this));
             if (this.totalTable){
@@ -1641,7 +1652,8 @@ MWF.xApplication.process.Xform.DatagridMobile$Title =  new Class({
             this.dataGrid.totalModules.push({
                 "module": this,
                 "index": this.node.getParent("tr").rowIndex,
-                "type": this.json.total
+                "type": this.json.total,
+                "isShow": this.json.isShow
             })
         }
         //	this.form._loadModules(this.node);

+ 8 - 0
o2web/source/x_component_process_Xform/DatagridPC.js

@@ -280,6 +280,7 @@ MWF.xApplication.process.Xform.DatagridPC = new Class({
 			var module = this.form._loadModule(json, cell);
 			cell.store("module", module);
 			this.form.modules.push(module);
+			if( json.isShow === false )cell.hide();
 		}
 
 	},
@@ -896,6 +897,8 @@ MWF.xApplication.process.Xform.DatagridPC = new Class({
 						cell.set("text", tr.rowIndex);
 					}
 
+					var json = this.form._getDomjson(th);
+					if( json && json.isShow === false )cell.hide();
 				}.bind(this));
 			}.bind(this));
 		}
@@ -968,6 +971,9 @@ MWF.xApplication.process.Xform.DatagridPC = new Class({
 		ths.each(function(th, idx){
 			var td = new Element("td", {"text": "", "styles": this.form.css.datagridTotalTd}).inject(this.totalTr);
 			if (this.json.amountStyles) td.setStyles(this.json.amountStyles);
+
+			var json = this.form._getDomjson(th);
+			if( json && json.isShow === false )td.hide();
 		}.bind(this));
 	},
 	_loadTotal: function(){
@@ -1060,6 +1066,7 @@ MWF.xApplication.process.Xform.DatagridPC = new Class({
 			if (json){
 				var module = this.form._loadModule(json, th);
 				this.form.modules.push(module);
+				if( json.isShow === false )th.hide();
 			}
 		}.bind(this));
 	},
@@ -1079,6 +1086,7 @@ MWF.xApplication.process.Xform.DatagridPC = new Class({
 				}
 				td.store("module", module);
 				this.form.modules.push(module);
+				if( json.isShow === false )td.hide();
 			}
 		}.bind(this));
 	},