forked from p81075629/datagear
为页面对象添加pageParamCall函数简化页面参数函数调用,并修改相关代码
This commit is contained in:
parent
9d52f185f6
commit
1b1b05861a
|
@ -11,6 +11,7 @@ save=\u4FDD\u5B58
|
|||
submit=\u63D0\u4EA4
|
||||
reset=\u91CD\u7F6E
|
||||
cancel=\u53D6\u6D88
|
||||
cancelAll=\u5168\u90E8\u53D6\u6D88
|
||||
confirm=\u786E\u5B9A
|
||||
select=\u9009\u62E9
|
||||
refresh=\u5237\u65B0
|
||||
|
|
|
@ -86,14 +86,12 @@ boolean batchSet = ("true".equalsIgnoreCase(getStringValue(request, "batchSet"))
|
|||
var data = $(this).modelform("data");
|
||||
var formParam = $(this).modelform("param");
|
||||
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = true;
|
||||
|
||||
//父页面定义了submit回调函数,则优先执行
|
||||
if(pageParam && pageParam.submit)
|
||||
if(po.pageParam("submit"))
|
||||
{
|
||||
close = (pageParam.submit(data, formParam) != false);
|
||||
close = (po.pageParamCall("submit", data, formParam) != false);
|
||||
|
||||
if(close && !$(this).modelform("isDialogPinned"))
|
||||
po.close();
|
||||
|
@ -130,8 +128,7 @@ boolean batchSet = ("true".equalsIgnoreCase(getStringValue(request, "batchSet"))
|
|||
if(po.originalData)
|
||||
po.originalData = $.unref($.ref(operationMessage.data));
|
||||
|
||||
if(pageParam && pageParam.afterSave)
|
||||
close = (pageParam.afterSave(operationMessage.data) != false);
|
||||
close = (po.pageParamCall("afterSave", operationMessage.data) != false);
|
||||
|
||||
if(close && !isDialogPinned)
|
||||
po.close();
|
||||
|
|
|
@ -99,13 +99,11 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
|
|||
|
||||
var close = true;
|
||||
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
//父页面定义了submit回调函数,则优先执行
|
||||
if(pageParam && pageParam.submit)
|
||||
if(po.pageParam("submit"))
|
||||
{
|
||||
close = (pageParam.submit(propValue, formParam) != false);
|
||||
|
||||
close = (po.pageParamCall("submit", propValue, formParam) != false);
|
||||
|
||||
if(close && !$(this).modelform("isDialogPinned"))
|
||||
po.close();
|
||||
}
|
||||
|
@ -139,8 +137,7 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
|
|||
if(po.data)
|
||||
$.model.propertyPathValue(po.data, po.propertyPath, operationMessage.data);
|
||||
|
||||
if(pageParam && pageParam.afterSave)
|
||||
close = (pageParam.afterSave(operationMessage.data) != false);
|
||||
close = (po.pageParamCall("afterSave", operationMessage.data) != false);
|
||||
|
||||
if(close && !isDialogPinned)
|
||||
po.close();
|
||||
|
|
|
@ -130,10 +130,7 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
|
|||
|
||||
$.model.propertyPathValue(po.data, po.propertyPath, rowsData);
|
||||
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
if(pageParam && pageParam.submit)
|
||||
pageParam.submit(rowsData);
|
||||
po.pageParamCall("submit", rowsData);
|
||||
};
|
||||
|
||||
po.onModel(function(model)
|
||||
|
|
|
@ -111,9 +111,7 @@ else
|
|||
{
|
||||
po.executeOnSelects(function(rows)
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = (pageParam && pageParam.submit ? pageParam.submit(rows) : undefined);
|
||||
var close = po.pageParamCall("submit", rows);
|
||||
|
||||
if(close == undefined)
|
||||
close = true;
|
||||
|
@ -126,9 +124,7 @@ else
|
|||
{
|
||||
po.executeOnSelect(function(row)
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = (pageParam && pageParam.submit ? pageParam.submit(row) : undefined);
|
||||
var close = po.pageParamCall("submit", row);
|
||||
|
||||
if(close == undefined)
|
||||
close = true;
|
||||
|
@ -148,10 +144,8 @@ else
|
|||
{
|
||||
"afterSave" : function(data)
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = (pageParam && pageParam.submit ? pageParam.submit(data) : undefined);
|
||||
|
||||
var close = po.pageParamCall("submit", data);
|
||||
|
||||
//单选默认关闭,多选默认不关闭
|
||||
if(close == undefined)
|
||||
close = (po.isMultipleSelect ? false : true);
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
<input id="${pageId}-editGridSwitch" type="checkbox" value="1" />
|
||||
</div>
|
||||
<div class="edit-grid-operation">
|
||||
<button type="button" class="button-cancel highlight" style="display: none;"><fmt:message key='restore' /></button>
|
||||
<button type="button" class="button-cancel-all highlight" style="display: none;"><fmt:message key='restoreAll' /></button>
|
||||
<button type="button" class="button-cancel highlight" style="display: none;"><fmt:message key='cancel' /></button>
|
||||
<button type="button" class="button-cancel-all highlight" style="display: none;"><fmt:message key='cancelAll' /></button>
|
||||
<button type="button" class="button-save recommended" style="display: none;"><fmt:message key='save' /></button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -28,6 +28,7 @@ WebUtils.setPageId(request, editGridFormPageId);
|
|||
(function(po)
|
||||
{
|
||||
po.element().hide();
|
||||
po.formLabels.submit = "<fmt:message key='confirm' />";
|
||||
})
|
||||
(<%=editGridFormPageId%>);
|
||||
</script>
|
||||
|
@ -41,8 +42,11 @@ WebUtils.setPageId(request, gridPageId);
|
|||
|
||||
//编辑表格对应的模型,会在initEditGrid函数中初始化
|
||||
po.editGridModel = undefined;
|
||||
|
||||
po.editGridFormPage = <%=editGridFormPageId%>;
|
||||
|
||||
po.currentEditCell = undefined;
|
||||
|
||||
po.editGridSwitch = function()
|
||||
{
|
||||
return po.element("#${pageId}-editGridSwitch");
|
||||
|
@ -136,6 +140,13 @@ WebUtils.setPageId(request, gridPageId);
|
|||
|
||||
po.beginEditCell = function($cell)
|
||||
{
|
||||
if($cell.is(po.currentEditCell))
|
||||
return;
|
||||
else if(po.currentEditCell != null)
|
||||
po.cancelEditCell(po.currentEditCell);
|
||||
|
||||
po.currentEditCell = $cell;
|
||||
|
||||
$cell.addClass("edit-cell ui-state-highlight");
|
||||
|
||||
var text = $cell.text();
|
||||
|
@ -156,8 +167,7 @@ WebUtils.setPageId(request, gridPageId);
|
|||
var settings = po.table().DataTable().settings();
|
||||
var cellProperty = $.getDataTablesColumnProperty(po.editGridModel, settings, cellIndex);
|
||||
|
||||
//po.editGridFormPage.form().empty();
|
||||
po.editGridFormPage.element().appendTo($cell);
|
||||
po.editGridFormPage.element().appendTo($cell).show().position({my: "left top", at: "left bottom"});
|
||||
|
||||
po.editGridFormPage.form().modelform(
|
||||
{
|
||||
|
@ -165,10 +175,14 @@ WebUtils.setPageId(request, gridPageId);
|
|||
renderProperty : function(property)
|
||||
{
|
||||
return property == cellProperty;
|
||||
}
|
||||
},
|
||||
submit : function()
|
||||
{
|
||||
alert("save cell");
|
||||
return false;
|
||||
},
|
||||
labels : po.editGridFormPage.formLabels
|
||||
});
|
||||
|
||||
po.editGridFormPage.element().show().position({my: "left top", at: "left bottom"});
|
||||
};
|
||||
|
||||
po.storeEditCell = function($cell, value)
|
||||
|
@ -191,9 +205,17 @@ WebUtils.setPageId(request, gridPageId);
|
|||
else
|
||||
po.markAsUnmodifiedCell($cell);
|
||||
|
||||
po.editGridFormPage.element().hide();
|
||||
po.editGridFormPage.form().modelform("destroy");
|
||||
po.editGridFormPage.element().appendTo(po.element());
|
||||
po.currentEditCell = null;
|
||||
|
||||
var editGridFormPageEle = po.editGridFormPage.element();
|
||||
|
||||
if(editGridFormPageEle.parent().is($cell))
|
||||
{
|
||||
po.editGridFormPage.form().modelform("destroy");
|
||||
|
||||
editGridFormPageEle.hide();
|
||||
editGridFormPageEle.appendTo(po.element());
|
||||
}
|
||||
};
|
||||
|
||||
po.cancelAllEditCell = function($editedCells)
|
||||
|
@ -256,6 +278,8 @@ WebUtils.setPageId(request, gridPageId);
|
|||
po.table().DataTable()
|
||||
.on("click.dt", function(event)
|
||||
{
|
||||
var table = $(this).DataTable();
|
||||
|
||||
if(po.isEnableEditGrid)
|
||||
{
|
||||
event.stopPropagation();
|
||||
|
@ -264,7 +288,8 @@ WebUtils.setPageId(request, gridPageId);
|
|||
|
||||
if(target.is("td"))
|
||||
{
|
||||
po.beginEditCell(target);
|
||||
table.cell(".selected").deselect();
|
||||
table.cell(target).select();
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -272,6 +297,14 @@ WebUtils.setPageId(request, gridPageId);
|
|||
|
||||
}
|
||||
})
|
||||
.on("select", function(event, dataTable, type, indexes)
|
||||
{
|
||||
console.log("select");
|
||||
})
|
||||
.on("deselect", function(event, settings)
|
||||
{
|
||||
console.log("deselect");
|
||||
})
|
||||
.on("preDraw", function(event, settings)
|
||||
{
|
||||
//禁止表格重绘,比如排序
|
||||
|
@ -281,6 +314,12 @@ WebUtils.setPageId(request, gridPageId);
|
|||
return true;
|
||||
});
|
||||
|
||||
po.element(".button-cancel", po.element(".edit-grid")).click(function()
|
||||
{
|
||||
if(po.currentEditCell != null)
|
||||
po.cancelAllEditCell(po.currentEditCell);
|
||||
});
|
||||
|
||||
po.element(".button-cancel-all", po.element(".edit-grid")).click(function()
|
||||
{
|
||||
var $editedCells = po.editedCells();
|
||||
|
|
|
@ -201,12 +201,7 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEntity
|
|||
{
|
||||
success : function()
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = true;
|
||||
|
||||
if(pageParam && pageParam.afterSave)
|
||||
close = (pageParam.afterSave() != false);
|
||||
var close = (po.pageParamCall("afterSave") != false);
|
||||
|
||||
if(close)
|
||||
po.close();
|
||||
|
|
|
@ -170,9 +170,7 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEnti
|
|||
{
|
||||
po.executeOnSelect(function(row)
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = (pageParam && pageParam.submit ? pageParam.submit(row) : undefined);
|
||||
var close = po.pageParamCall("submit", row);
|
||||
|
||||
//单选默认关闭
|
||||
if(close == undefined)
|
||||
|
|
|
@ -137,12 +137,7 @@
|
|||
{
|
||||
success : function()
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = true;
|
||||
|
||||
if(pageParam && pageParam.afterSave)
|
||||
close = (pageParam.afterSave() != false);
|
||||
var close = (po.pageParamCall("afterSave") != false);
|
||||
|
||||
if(close)
|
||||
po.close();
|
||||
|
|
|
@ -165,12 +165,7 @@
|
|||
{
|
||||
success : function(response)
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = false;
|
||||
|
||||
if(pageParam && pageParam.afterSave)
|
||||
close = (pageParam.afterSave() != false);
|
||||
var close = (po.pageParamCall("afterSave") != false);
|
||||
|
||||
if(close)
|
||||
po.close();
|
||||
|
|
|
@ -119,21 +119,31 @@ var ${pageId} =
|
|||
},
|
||||
|
||||
/**
|
||||
* 获取由open方法传递给此页面参数对象。
|
||||
* 获取此页面参数对象。
|
||||
* @param name 可选,页面参数对象属性名
|
||||
*/
|
||||
pageParam : function(name)
|
||||
{
|
||||
var pageParamObj = $.pageParam(this.element());
|
||||
var ppo = $.pageParam(this.element());
|
||||
|
||||
if(name == undefined)
|
||||
return pageParamObj;
|
||||
return ppo;
|
||||
else
|
||||
{
|
||||
return (pageParamObj ? pageParamObj[name] : undefined);
|
||||
return (ppo ? ppo[name] : undefined);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 调用页面参数对象函数,参考$.pageParamCall。
|
||||
*/
|
||||
pageParamCall : function(args)
|
||||
{
|
||||
args = [this.element()].concat($.makeArray(arguments));
|
||||
|
||||
return $.pageParamCall.apply($, args);
|
||||
},
|
||||
|
||||
/**
|
||||
* 打开确认对话框。
|
||||
* @param content 显示内容
|
||||
|
|
|
@ -150,12 +150,7 @@ boolean isPreview = "1".equals(getStringValue(request, "preview"));
|
|||
<%if(isPreview){%>
|
||||
po.element(".url-preview").text(url);
|
||||
<%}else{%>
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = true;
|
||||
|
||||
if(pageParam && pageParam.setSchemaUrl)
|
||||
close = (pageParam.setSchemaUrl(url) != false);
|
||||
var close = (po.pageParamCall("setSchemaUrl", url) != false);
|
||||
|
||||
if(close)
|
||||
po.close();
|
||||
|
|
|
@ -200,12 +200,7 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, SchemaContro
|
|||
{
|
||||
success : function()
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = true;
|
||||
|
||||
if(pageParam && pageParam.afterSave)
|
||||
close = (pageParam.afterSave() != false);
|
||||
var close = (po.pageParamCall("afterSave") != false);
|
||||
|
||||
if(close)
|
||||
po.close();
|
||||
|
|
|
@ -85,12 +85,7 @@
|
|||
{
|
||||
success : function(response)
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = false;
|
||||
|
||||
if(pageParam && pageParam.afterSave)
|
||||
close = (pageParam.afterSave() != false);
|
||||
var close = (po.pageParamCall("afterSave") != false);
|
||||
|
||||
if(close)
|
||||
po.close();
|
||||
|
|
|
@ -156,12 +156,7 @@ boolean isAdd = "saveAdd".equals(formAction);
|
|||
{
|
||||
success : function()
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = true;
|
||||
|
||||
if(pageParam && pageParam.afterSave)
|
||||
close = (pageParam.afterSave() != false);
|
||||
var close = (po.pageParamCall("afterSave") != false);
|
||||
|
||||
if(close)
|
||||
po.close();
|
||||
|
|
|
@ -144,9 +144,7 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, AbstractCo
|
|||
{
|
||||
po.executeOnSelect(function(row)
|
||||
{
|
||||
var pageParam = po.pageParam();
|
||||
|
||||
var close = (pageParam && pageParam.submit ? pageParam.submit(row) : undefined);
|
||||
var close = po.pageParamCall("submit", row);
|
||||
|
||||
//单选默认关闭
|
||||
if(close == undefined)
|
||||
|
|
|
@ -94,7 +94,7 @@
|
|||
var $dialog = $("<div id='dialog-"+new Date().getTime()+"' class='dialog-content-container'></div>").appendTo(container);
|
||||
|
||||
if(options.pageParam)
|
||||
$dialog.data("pageParam", options.pageParam);
|
||||
$.pageParam($dialog, options.pageParam);
|
||||
|
||||
$._dialog($dialog, options);
|
||||
$dialog.html(data);
|
||||
|
@ -112,22 +112,67 @@
|
|||
}
|
||||
},
|
||||
|
||||
/*用于支持$.pageParam函数的元素CSS类名*/
|
||||
PAGE_PARAM_BINDER_CLASS : "page-param-binder",
|
||||
|
||||
/**
|
||||
* 获取由$.open打开的页面所传递的页面参数。
|
||||
* 如果没有将返回null。
|
||||
* 获取/设置页面参数,设置页面参数,使页面在加载完成后可以在内部获取此参数。
|
||||
*
|
||||
* @param dom 任意dom元素
|
||||
* @param $dom 必选,任意dom元素
|
||||
* @param param 可选,要设置的参数
|
||||
*/
|
||||
pageParam : function(dom)
|
||||
pageParam : function($dom, param)
|
||||
{
|
||||
var $dom = $(dom);
|
||||
|
||||
var dcc = $(dom).closest(".dialog-content-container");
|
||||
|
||||
if(dcc.length == 0)
|
||||
return undefined;
|
||||
else
|
||||
if(param == undefined)
|
||||
{
|
||||
var dcc = $dom.closest("." + $.PAGE_PARAM_BINDER_CLASS);
|
||||
return dcc.data("pageParam");
|
||||
}
|
||||
else
|
||||
{
|
||||
$dom.addClass($.PAGE_PARAM_BINDER_CLASS);
|
||||
$dom.data("pageParam", param);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 调用页面参数函数。
|
||||
* 如果没有页面参数或者指定的函数,返回undefined。
|
||||
*
|
||||
* @param $dom 必选,任意dom元素
|
||||
* @param args... 可选,页面参数是函数时,函数参数;页面参数是对象时,[函数名, 函数参数]
|
||||
*/
|
||||
pageParamCall : function($dom, args)
|
||||
{
|
||||
var pageParam = $.pageParam($dom);
|
||||
|
||||
//没有页面参数
|
||||
if(!pageParam)
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
//页面参数是函数
|
||||
else if($.isFunction(pageParam))
|
||||
{
|
||||
var pargs = $.makeArray(arguments).slice(1);
|
||||
|
||||
pageParam.apply(window, pargs);
|
||||
}
|
||||
//页面参数是对象
|
||||
else
|
||||
{
|
||||
if(arguments.length < 2)
|
||||
throw new Error("The function name in the page param object to be call should be set");
|
||||
|
||||
var fun = pageParam[arguments[1]];
|
||||
|
||||
if(fun == undefined)
|
||||
return undefined;
|
||||
|
||||
var pargs = $.makeArray(arguments).slice(2);
|
||||
|
||||
return fun.apply(pageParam, pargs);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue