提交 40984718 编写于 作者: U unknown

查询视图中增加全选功能

上级 2ac66c03
......@@ -64,7 +64,7 @@
<tr>
<td class="editTableTitle">选择文件</td>
<td class="editTableValue">
<select name="select">
<select name="select" onchange="$('text{$.pid}selectedAbleScript').setStyle('display', this.options[this.selectedIndex].value === 'no' ? 'none' : 'block');">
<option text{($.select!='single' && $.select!='multi')?'selected':''} value="no">不允许</option>
<option text{($.select=='single')?'selected':''} value="single">单选</option>
<option text{($.select=='multi')?'selected':''} value="multi">多选</option>
......@@ -166,6 +166,8 @@
<div class="fieldListAreaNode_vf" style="display:none; min-height: 56px; border-bottom:1px solid #CCCCCC; overflow: hidden;"></div>
</div>
<div class="MWFScriptArea" name="defaultSelectedScript" title="默认选中行脚本"></div>
<div class="MWFScriptArea" name="selectedAbleScript" title="允许选择行脚本" id="text{$.pid}selectedAbleScript"
style="display: text{($.select=='single' || $.select=='multi')?'':'none'}"></div>
</div>
<div title="事件" class="MWFTab">
......
......@@ -108,6 +108,7 @@
<div class="MWFScriptArea" name="selectedScript" title="选择结果 (S)"></div>
</div>
<div class="MWFScriptArea" name="defaultSelectedScript" title="默认选中行脚本"></div>
<div class="MWFScriptArea" name="selectedAbleScript" title="允许选择行脚本"></div>
</div>
<div title="过滤" class="MWFTab">
<div class="MWFStatementFilter">
......@@ -194,7 +195,6 @@
<div style="display:none; height: 20px; line-height: 20px; text-align:center; background-color: #eeeeee">自定义过滤数据</div>
<div class="fieldListAreaNode_vf" style="display:none; min-height: 56px; border-bottom:1px solid #CCCCCC; overflow: hidden;"></div>
</div>
<div class="MWFScriptArea" name="defaultSelectedScript" title="默认选中行脚本"></div>
</div>
<div title="事件" class="MWFTab">
......
......@@ -56,7 +56,8 @@ MWF.xApplication.process.Xform.Statement = MWF.APPStatement = new Class({
"isExpand": this.json.isExpand || "no",
"showActionbar" : this.json.actionbar === "show",
"filter": filter,
"defaultSelectedScript" : this.json.defaultSelectedScript ? this.json.defaultSelectedScript.code : null
"defaultSelectedScript" : this.json.defaultSelectedScript ? this.json.defaultSelectedScript.code : null,
"selectedAbleScript" : this.json.selectedAbleScript ? this.json.selectedAbleScript.code : null
};
//MWF.xDesktop.requireApp("query.Query", "Viewer", function(){
......
......@@ -3,6 +3,50 @@ MWF.xDesktop.requireApp("process.Xform", "ViewSelector", null, false);
MWF.xApplication.process.Xform.StatementSelector = MWF.APPStatementSelector = new Class({
Implements: [Events],
Extends: MWF.xApplication.process.Xform.ViewSelector,
doResult: function(data){
if (this.json.result === "script"){
this.selectedData = data;
return (this.json.selectedScript.code) ? this.form.Macro.exec(this.json.selectedScript.code, this) : "";
}else{
Object.each(this.json.selectedSetValues, function(v, k){
var value = "";
data.each(function(d, idx){
// Object.each(d, function(dv, dk){
// if (dk===v) value = (value) ? (value+", "+dv) : dv;
// }.bind(this));
var pathList = v.split(".");
for( var i=0; i<pathList.length; i++ ){
var p = pathList[i];
if( (/(^[1-9]\d*$)/.test(p)) )p = p.toInt();
if( d[ p ] ){
d = d[ p ];
}else{
d = "";
break;
}
}
if( typeOf(d) === "array" || typeOf(d) === "object" ) {
d = JSON.stringify(d);
}
value = (value) ? (value+", "+d) : d;
}.bind(this));
var field = this.form.all[k];
if (field){
field.setData(value);
if (value){
if (field.descriptionNode) field.descriptionNode.setStyle("display", "none");
}else{
if (field.descriptionNode) field.descriptionNode.setStyle("display", "block");
}
}
}.bind(this));
}
},
selectView: function(callback){
var viewData = this.json.queryStatement;
......@@ -28,7 +72,8 @@ MWF.xApplication.process.Xform.StatementSelector = MWF.APPStatementSelector = n
"isExpand": this.json.isExpand || "no",
"showActionbar" : this.json.actionbar === "show",
"filter": filter,
"defaultSelectedScript" : this.json.defaultSelectedScript ? this.json.defaultSelectedScript.code : null
"defaultSelectedScript" : this.json.defaultSelectedScript ? this.json.defaultSelectedScript.code : null,
"selectedAbleScript" : this.json.selectedAbleScript ? this.json.selectedAbleScript.code : null
};
var options = {};
var width = options.width || "850";
......@@ -114,50 +159,6 @@ MWF.xApplication.process.Xform.StatementSelector = MWF.APPStatementSelector = n
// }.bind(this));
}.bind(this));
}
},
doResult: function(data){
if (this.json.result === "script"){
this.selectedData = data;
return (this.json.selectedScript.code) ? this.form.Macro.exec(this.json.selectedScript.code, this) : "";
}else{
Object.each(this.json.selectedSetValues, function(v, k){
var value = "";
data.each(function(d, idx){
// Object.each(d, function(dv, dk){
// if (dk===v) value = (value) ? (value+", "+dv) : dv;
// }.bind(this));
var pathList = v.split(".");
for( var i=0; i<pathList.length; i++ ){
var p = pathList[i];
if( (/(^[1-9]\d*$)/.test(p)) )p = p.toInt();
if( d[ p ] ){
d = d[ p ];
}else{
d = "";
break;
}
}
if( typeOf(d) === "array" || typeOf(d) === "object" ) {
d = JSON.stringify(d);
}
value = (value) ? (value+", "+d) : d;
}.bind(this));
var field = this.form.all[k];
if (field){
field.setData(value);
if (value){
if (field.descriptionNode) field.descriptionNode.setStyle("display", "none");
}else{
if (field.descriptionNode) field.descriptionNode.setStyle("display", "block");
}
}
}.bind(this));
}
},
}
});
......@@ -192,26 +192,30 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
}
if( f.valueType === "script" ){
value = this.Macro.exec( f.valueScript ? f.valueScript.code : "", this);
}else if( f.value.indexOf( "@" ) > -1 ){
var user = layout.user;
}else{
//var user = layout.user;
switch ( f.value ) {
case "@person":
value = user.distinguishedName;
case "person":
//value = user.distinguishedName;
break;
case "@identityList":
value = user.identityList.map( function (d) {
return d.distinguishedName;
});
case "identityList":
//value = user.identityList.map( function (d) {
// return d.distinguishedName;
//});
break;
case "@unitList":
o2.Actions.load("x_organization_assemble_express").UnitAction.listWithPerson({ "personList" : [user.distinguishedName] }, function (json) {
value = json.unitList;
}, null, false);
case "unitList":
//o2.Actions.load("x_organization_assemble_express").UnitAction.listWithPerson({ "personList" : [user.distinguishedName] }, function (json) {
// value = json.unitList;
//}, null, false);
break;
case "@unitAllList":
o2.Actions.load("x_organization_assemble_express").UnitAction.listWithIdentitySupNested({ "personList" : [user.distinguishedName] }, function (json) {
value = json.unitList;
}, null, false);
case "unitAllList":
//o2.Actions.load("x_organization_assemble_express").UnitAction.listWithIdentitySupNested({ "personList" : [user.distinguishedName] }, function (json) {
// value = json.unitList;
//}, null, false);
break;
case "@year":
value = (new Date().getFullYear()).toString();
......@@ -294,6 +298,7 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
}
this.gridJson = json.data;
this.setSelectedableFlag();
this.fireEvent("postLoadPageData");
......@@ -331,6 +336,16 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
},
loadData: function(){
if( this.getSelectFlag() === "multi" && this.viewJson.allowSelectAll ) {
if(this.selectTitleCell && this.selectTitleCell.retrieve("selectAllLoaded")){
this.setUnSelectAllStyle();
}else{
this.createSelectAllNode();
}
}else if(this.selectAllNode){
this.clearSelectAllStyle();
}
if (this.gridJson.length){
// if( !this.options.paging ){
this.gridJson.each(function(line, i){
......@@ -375,7 +390,7 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
"path": entry.path,
"value": key,
"formatType": entry.formatType,
"logic": "and",
"logic": "or",
"comparison": "like"
};
filterData.push(d);
......@@ -387,7 +402,7 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
"path": entry.path,
"value": v,
"formatType": entry.formatType,
"logic": "and",
"logic": "or",
"comparison": "like"
};
filterData.push(d);
......@@ -483,11 +498,12 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
MWF.xApplication.query.Query.Statement.Item = new Class({
Extends : MWF.xApplication.query.Query.Viewer.Item,
initialize: function(view, data, prev, i){
initialize: function(view, data, prev, i, category){
this.view = view;
this.data = data;
this.css = this.view.css;
this.isSelected = false;
this.category = category;
this.prev = prev;
this.idx = i;
this.clazzType = "item";
......@@ -513,6 +529,24 @@ MWF.xApplication.query.Query.Statement.Item = new Class({
this.selectTd = new Element("td", { "styles": viewContentTdNode }).inject(this.node);
this.selectTd.setStyles({"cursor": "pointer"});
if (this.view.json.itemStyles) this.selectTd.setStyles(this.view.json.itemStyles);
//var selectFlag = this.view.json.select || this.view.viewJson.select || "none";
var selectFlag = this.view.getSelectFlag();
if ( this.data.$selectedEnable && ["multi","single"].contains(selectFlag) && this.view.viewJson.selectBoxShow==="always") {
var viewStyles = this.view.viewJson.viewStyles;
if (viewStyles) {
if (selectFlag === "single") {
this.selectTd.setStyles(viewStyles["radioNode"]);
} else {
this.selectTd.setStyles(viewStyles["checkboxNode"]);
}
} else {
var iconName = "checkbox";
if (selectFlag === "single") iconName = "radiobox";
this.selectTd.setStyles({"background": "url(" + "../x_component_query_Query/$Viewer/default/icon/" + iconName + ".png) center center no-repeat"});
}
}
if( this.view.isSelectTdHidden() ){
this.selectTd.hide();
}
......
......@@ -60,9 +60,38 @@
<tr>
<td class="editTableTitle">选择:</td>
<td class="editTableValue">
<input class="editTableRadio" name="data.select" text{($.data.select!=='single' || $.data.select!=='multi' )?'checked':''} type="radio" value="none"/>
<input class="editTableRadio" name="data.select" text{($.data.select==='single')?'checked':''} type="radio" value="single"/>单选
<input class="editTableRadio" name="data.select" text{($.data.select==='multi')?'checked':''} type="radio" value="multi"/>多选
<input class="editTableRadio" name="data.select" text{($.data.select!=='single' || $.data.select!=='multi' )?'checked':''} type="radio" value="none" onclick="
if (this.checked){
$('text{$.id}selectBoxShowTr').setStyle('display', 'none');
$('text{$.id}allowSelectAllTr').setStyle('display', 'none');
$('text{$.id}selectedAbleScript').setStyle('display', 'none');
}"/>
<input class="editTableRadio" name="data.select" text{($.data.select==='single')?'checked':''} type="radio" value="single" onclick="
if (this.checked){
$('text{$.id}selectBoxShowTr').setStyle('display', 'table-row');
$('text{$.id}allowSelectAllTr').setStyle('display', 'none');
$('text{$.id}selectedAbleScript').setStyle('display', 'block');
}"/>单选
<input class="editTableRadio" name="data.select" text{($.data.select==='multi')?'checked':''} type="radio" value="multi" onclick="
if (this.checked){
$('text{$.id}selectBoxShowTr').setStyle('display', 'table-row');
$('text{$.id}allowSelectAllTr').setStyle('display', 'table-row');
$('text{$.id}selectedAbleScript').setStyle('display', 'block');
}"/>多选
</td>
</tr>
<tr id="text{$.id}selectBoxShowTr" style="display: text{($.data.select=='single' || $.data.select=='multi')?'':'none'}">
<td class="editTableTitle">选择框显示:</td>
<td class="editTableValue">
<input class="editTableRadio" name="data.selectBoxShow" text{($.data.selectBoxShow==='always')?'checked':''} type="radio" value="always"/>一直显示
<input class="editTableRadio" name="data.selectBoxShow" text{($.data.selectBoxShow!=='always')?'checked':''} type="radio" value="mouseover"/>鼠标经过时
</td>
</tr>
<tr id="text{$.id}allowSelectAllTr" style="display: text{($.data.select=='multi')?'':'none'}">
<td class="editTableTitle" id="">允许全选:</td>
<td class="editTableValue">
<input class="editTableRadio" name="data.allowSelectAll" text{($.data.allowSelectAll===true)?'checked':''} type="radio" value="true"/>
<input class="editTableRadio" name="data.allowSelectAll" text{($.data.allowSelectAll!==true)?'checked':''} type="radio" value="false"/>
</td>
</tr>
<tr>
......@@ -85,6 +114,8 @@
</table>
<div class="MWFFormulaArea" name="data.defaultSelectedScript" title="默认选中行脚本"></div>
<div class="MWFFormulaArea" name="data.selectedAbleScript" title="允许选择行脚本" id="text{$.id}selectedAbleScript"
style="display: text{($.data.select=='single' || $.data.select=='multi')?'':'none'}"></div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册