apzl_leasing/WebContent/js/tracywindy/tracywindyMultiTable.js
2018-06-03 22:26:41 +08:00

773 lines
32 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var tracywindyMultiTable = function(config){
//必要属性
this.objectType = "multiTable";
this.renderTo = config.renderTo;
tracywindyObject["multiTable_"+(config.id||this.renderTo)]=this;
this.width = config.width;
this.height = config.height;
this.columns = config.columns;
this.datas = config.datas||[];
this.isShowCopyCount = config.isShowCopyCount;
//可选
this.id = config.id||("table_"+this.renderTo);
this.border = config.border||false;
this.isCheck = (false == config.isCheck ) ? false : true;
this.isRank = (false == config.isRank) ? false : true;
this.showHeader = true;
this.checkOnly = true;
this.isFit = config.isFit||false;
this.loadMode = config.loadMode||'local';
this.callBack = config.callBack||function(){};
this.params = config.params||{};
this.msg = config.msg||"请勾选要操作的数据";
this.tools = ('undefined'==typeof(config.tools)) ? "新增|复制|修改|删除|导出模板|导入模板" : config.tools;
this.otherTools = config.otherTools||[];
this.tools = this.tools.replace(/\s/,"");
if(config.isNeedTools ==false)this.tools = "";
this.idField = config.idField||"id";
this.windowId = this.id+"Window";
this.windowTop = config.windowTop||20;
this.windowWidth = config.windowWidth||400;
this.windowHeight = config.windowHeight;
this.labelWidth = config.labelWidth||100;
//回调
//operType:"add","update"
this.resetFromOperCallBack = config.resetFromOperCallBack||function(operType,thisForm,multiTable){};
this.updateFromOperCallBack = config.updateFromOperCallBack||function(operType,thisForm,multiTable,rowData){};
this.operValidate = config.operValidate||function(operType,rowDatas,thisForm,multiTable){return true;};
this.beforeCreateTableWindowCallback = config.beforeCreateTableWindowCallback||function($me){};
//自定义修改更新combobox的数值
//columnConfig["initValue"](combo,rowDatas[0],multiTable,multiTable)
//合计
this.isStatistic = (config.isStatistic == false)?false:true;
this.isExportTitle = config.isExportTitle||false;
//this.inputWidth = config.inputWidth||165;
var $me = this;
var $toolsMapping = {
"新增":"add",
"复制":"copy",
"修改":"update",
"删除":"remove",
"导出模板":"export",
"导入模板":"import"
};
this.commonValidateTableDataPassed = config.commonValidateTableDataPassed||function(rowDatas,$me){
if(this.operValidate){
if(!this.operValidate($me.flag,rowDatas,jQuery("#"+this.windowId+" form")[0],$me)){
return false;
}
}
if("add" !=$me.flag){
if(0 == rowDatas.length)
{
alert(this.msg);
return false;
}
}
return true;
};
this.validateForm = config.validateForm||function($me,currentTable){
return Validator.Validate(jQuery("#"+$me.windowId+" form")[0],1,false);
};
this.findColumnConfigByName = function($me,currentTable,columnName){
var columns = currentTable.columns;
for(var i = 0;i<columns.length;i++){
var column = columns[i];
if(columnName == column["name"]){
return column;
}
}
return {};
};
//dataType:'text|number|combobox|date',dateformat:'yyyy-MM-dd',required:false
var commonCreateTableWindow = config.commonCreateTableWindow || function(){
this.statisticColumnNames = [];
if(jQuery("#"+this.windowId)[0]){
if('BODY'!=jQuery("#"+this.windowId).parent()[0].tagName){
jQuery("#"+this.windowId).parent().remove();
}else{
jQuery("#"+this.windowId).remove();
}
jQuery("#"+this.windowId+"dlg-buttons").remove();
}
{
this.comboboxs = this.comboboxs||[];
for(var i=0;i<this.comboboxs.length;i++)
{
var curCombo = this.comboboxs[i];
try{document.body.removeChild(curCombo.dropDiv);}catch(e){}
}
this.configRemains = {};
var tableWindow_html = "";
tableWindow_html+='<div id="'+this.windowId+'" buttons="#'+this.windowId+'dlg-buttons" closed="true" modal="true" title="(新增/修改)数据" style="display:none;width:'+this.windowWidth+'px;'+(this.windowHeight?('height:'+this.windowHeight+'px;'):'')+'text-align:center;padding:0px;">';
tableWindow_html+= ' <center>';
tableWindow_html+=' <div style="width:95%;">';
tableWindow_html+=' <iframe style="display:none;" name="'+this.windowId+'_real_submit_frame"></iframe>';
tableWindow_html+=' <form id="'+this.windowId+'Form" enctype="multipart/form-data" target="'+this.windowId+'_real_submit_frame" method="post" >';
tableWindow_html+=' <table align="center" style="width:90%">';
tableWindow_html+=' <tr style="height:5px;"><td></td></tr>';
this.comboboxArray = [];
//动态填充开始
for(var i=0;i<this.columns.length;i++)
{
var trClassName = (i%2)==0 ? "tr-even" : "tr-odd";//
var columnConfig = this.columns[i];
var requireContent = "";
var isRequired = (columnConfig['require']==true)||(columnConfig['nullable']==false);
if(isRequired){
requireContent="<font color='red'>*</font>";
}
var labelContent = (columnConfig['header']||columnConfig['name'])+"";
var inputName = columnConfig['inputName']||columnConfig['name'];
this.configRemains[inputName] = columnConfig;
var defaultValue = columnConfig['defaultValue']||'';
var dataType = columnConfig['type']||'text';
var isHidden = columnConfig['hidden']||false;
var readOnly = columnConfig['readOnly']||false;
var readOnlyString = readOnly?"readOnly":'';
if(this.idField == columnConfig['name']){isHidden=true;};
var styleDisplay = "style=\"display:"+(isHidden?"none":'block')+";\"";
var valueContent = "";
var otherAttributes = columnConfig['otherAttributes'];
if(!otherAttributes){
otherAttributes = "";
}
var otherClasses ="";
if(readOnly)
{
otherClasses+=" td-content-readonly ";
otherAttributes+=' '+readOnlyString+' ';
}
if(isRequired)
{
otherAttributes+=' require="true" label="'+columnConfig['header']+'"';
}
//显示值
var relativeDisplayInputId = $me.windowId+'_'+inputName;
var oldOtherAttributes = otherAttributes;
otherAttributes+=" id='"+relativeDisplayInputId+"' ";
switch(dataType.toLowerCase())
{
case "text":{
valueContent = '<input type="text" name="'+inputName+'" class="td-content-input'+otherClasses+'" value="'+defaultValue+'" '+otherAttributes+' />';
break;
}
case "textarea":{
valueContent = '<textarea name="'+inputName+'" class="td-content-input '+otherClasses+'" value="'+defaultValue+'" '+otherAttributes+' ></textarea>';
break;
}
case "number":{
this.statisticColumnNames.push(inputName);
otherAttributes+=' dataType="Number" ';
valueContent = '<input type="text" name="'+inputName+'" class="td-content-input'+otherClasses+'" value="'+defaultValue+'" '+otherAttributes+' />';
break;
}
case "double":{
this.statisticColumnNames.push(inputName);
otherAttributes+=' dataType="Double" ';
valueContent = '<input type="text" name="'+inputName+'" class="td-content-input'+otherClasses+'" value="'+defaultValue+'" '+otherAttributes+' />';
break;
}
case "date":{
if(columnConfig['readOnly']){
valueContent = '<input readonly type="text" name="'+inputName+'" class="td-content-input'+otherClasses+'" value="'+defaultValue+'" '+otherAttributes+' />';
}
else{
var dateFormat = columnConfig['dateFormat']||'yyyy-MM-dd';
valueContent = '<input readonly type="text" name="'+inputName+'" dateFormat="'+dateFormat+'" id="'+this.id+"id_date_"+inputName+'" class="Wdate td-content-input'+otherClasses+'" value="'+defaultValue+'" '+otherAttributes+' />';
}
break;
}
case "combobox":{
var config = columnConfig['config'];
//新增根据id来查询combobox
config["id"] = $me.windowId+"_queryMultiComboBox_"+inputName;
config['relativeDisplayInputId'] = relativeDisplayInputId;
valueContent = '<input type="hidden" name="'+inputName+'" id="'+relativeDisplayInputId+'"/>';
var columnHiddenName = columnConfig['hiddenName'];
if(columnHiddenName){
var relativeHiddenInputId = $me.windowId+'_'+columnHiddenName;
//valueContent += '<input type="hidden" name="'+columnHiddenName+'" id="'+relativeHiddenInputId+'"/>';
config['relativeHiddenInputId'] = relativeHiddenInputId;
}
//模拟下拉框
valueContent += '<div id="'+this.id+'id_combo_'+inputName+'_container"></div>';
var comboboxDivContianerId = this.id+'id_combo_'+inputName+'_container';
var defaultRawValue = columnConfig['defaultRawValue']||'';
if('undefined' == typeof(columnConfig['isViewHistoryTask'])){
if(window.isViewHistoryTask){
columnConfig['isViewHistoryTask'] = window.isViewHistoryTask;
}
}else{
config['isViewHistoryTask'] = columnConfig['isViewHistoryTask'];
}
config['hiddenName'] = columnHiddenName;
config['renderTo'] = comboboxDivContianerId;
config['otherAttributes'] = oldOtherAttributes;
config['value'] = defaultValue;
config['rawValue'] = defaultRawValue;
config['readOnlyData'] = columnConfig['readOnly'] ? true : false;
var topAdd = 0;
config['topAdd'] = topAdd;
config['leftAdd'] = 1;
var oldParams = config["params"]||{};
//modify by tracywindy 20130109 16:45 添加combobox级联 start
var cascadeConfig = columnConfig["cascade"];
var multiTable = $me;
var currentTable = $me.operationTable;
var tempValue = defaultValue||config['value'];
var tempRawValue = defaultRawValue||config['rawValue'];
var rowDatas =[];
if("update" == multiTable.flag){
rowDatas = currentTable.getCheckedRowDatas();
var hiddenMappingName = multiTable.findColumnMappingByName(multiTable,currentTable,columnHiddenName);
tempValue = rowDatas[0][hiddenMappingName]||"";
if(!tempValue){
var columnName = columnConfig['name'];
var mappingName = multiTable.findColumnMappingByName(multiTable,currentTable,columnName);
tempRawValue = rowDatas[0][mappingName]||"";
}
}
config['value'] = tempValue;
config['rawValue'] = tempRawValue;
if(cascadeConfig && currentTable){
var parentColumnNamesArr = cascadeConfig["parentColumnNames"]||[];
for(var ii =0;ii<parentColumnNamesArr.length;ii++){
var parentColumnName = parentColumnNamesArr[ii];
var innerColumnConfig = multiTable.findColumnConfigByName(multiTable,currentTable,parentColumnName);
var parentColumnHiddenName = innerColumnConfig["hiddenName"];
var parentColumnDisplayValue = "";
var parentColumnHiddenValue = "";
if("add" == multiTable.flag){
parentColumnDisplayValue = innerColumnConfig["defaultRawValue"]||innerColumnConfig["config"]["rawValue"]||"";
parentColumnHiddenValue = innerColumnConfig["defaultValue"]||innerColumnConfig["config"]["value"]||"";
}else if("update" == multiTable.flag){
var hiddenMappingName = multiTable.findColumnMappingByName(multiTable,currentTable,parentColumnHiddenName);
parentColumnHiddenValue = rowDatas[0][hiddenMappingName]||"";
if(!parentColumnHiddenValue){
var mappingName = multiTable.findColumnMappingByName(multiTable,currentTable,parentColumnName);
parentColumnDisplayValue = rowDatas[0][mappingName]||"";
}
}
oldParams["displayValue_"+parentColumnName] = parentColumnDisplayValue;
oldParams[parentColumnName] = parentColumnHiddenValue;
oldParams[parentColumnHiddenName] = parentColumnHiddenValue;
}
}
config["params"] = oldParams;
//modify by tracywindy 20130109 16:45 添加combobox级联 finish
/*config['init'] = config['init']||function(combo,currentTable,multiTable,columnConfig){
var rowDatas = currentTable.getCheckedRowDatas();
if(rowDatas.length > 0)
{
if("update" == multiTable.flag)
{
var hiddenName = columnConfig['hiddenName'];
if('local'==columnConfig['config']['loadMode']){
if(columnConfig["initValue"]){
columnConfig["initValue"](combo,rowDatas[0],multiTable,multiTable);
}
else{
//if(hiddenName)
{
var hiddenMappingName = multiTable.findColumnMappingByName(multiTable,currentTable,hiddenName);
var hiddenValue = rowDatas[0][hiddenMappingName];
if(hiddenValue){
combo.setValue(hiddenValue);
}
else{
var columnName = columnConfig['name'];
var mappingName = multiTable.findColumnMappingByName(multiTable,currentTable,columnName);
combo.setRawValue(rowDatas[0][mappingName]);
}
}
}
}else{
combo.loadComplete = function(){
if(columnConfig["initValue"]){
columnConfig["initValue"](combo,rowDatas[0],multiTable,multiTable);
}
else{
//if(hiddenName)
{
var hiddenMappingName = multiTable.findColumnMappingByName(multiTable,currentTable,hiddenName);
var hiddenValue = rowDatas[0][hiddenMappingName];
if(hiddenValue){
combo.setValue(hiddenValue);
}
else{
var columnName = columnConfig['name'];
var mappingName = multiTable.findColumnMappingByName(multiTable,currentTable,columnName);
combo.setRawValue(rowDatas[0][mappingName]);
}
}
}
};
}
}
}
};
var initLoadCompteteFunc = (function(multiTable,columnConfig,config){
return function(){var combo = this;config['init'](combo,$me.operationTable,multiTable,columnConfig);};
})($me,columnConfig,config);
config['comboLoadFunc'] = initLoadCompteteFunc;*/
var $$me = this;
var selectFunc = (function($$me,columnConfig,config){
return function(combo,rowData){
if(columnConfig['hiddenName'])
{
jQuery("#"+$$me.windowId+" form input[name='"+columnConfig['hiddenName']+"']").val(this.getValue());
}
jQuery("#"+$$me.windowId+" form input[name='"+columnConfig['name']+"']").val(this.getRawValue());
/*cascade:{
parentColumnNames:[],
childrenColumnNames:[]
}*/
//modify by tracywindy 20130109 16:45 添加combobox级联 start
var cascadeConfig = columnConfig["cascade"];
if(cascadeConfig){
//var parentColumnNamesArr = cascadeConfig["parentColumnNames"]||[];
var childrenColumnNamesArr = cascadeConfig["childrenColumnNames"]||[];
for(var ii =0;ii<childrenColumnNamesArr.length;ii++){
var childrenColumnName = childrenColumnNamesArr[ii];
var childrenComboId = ($$me.windowId+"_queryMultiComboBox_"+childrenColumnName);
var childrenCombo = getTracywindyObject(childrenComboId);
var cascadeParams = {};
cascadeParams[ "displayValue_"+columnConfig["name"] ] = combo.getRawValue();
cascadeParams[ columnConfig["name"] ] = combo.getValue();
cascadeParams[ columnConfig["hiddenName"] ] = combo.getValue();
childrenCombo.setParams(cascadeParams);
childrenCombo.reload();
}
}
//modify by tracywindy 20130109 16:45 添加combobox级联 finish
if(config['onSelected']){
config['onSelected'](combo,rowData,$$me,columnConfig);
};
};
})($$me,columnConfig,config);
config['onSelect'] = selectFunc;
this.comboboxArray.push(config);
break;
}
}
tableWindow_html+=' <tr class="'+trClassName+'" '+styleDisplay+' >';
tableWindow_html+=' <td class="td-content-title" style="width:'+this.labelWidth+'px;">'+requireContent+labelContent+'</td>';
tableWindow_html+=' <td class="td-content">'+valueContent+'</td>';
tableWindow_html+=' </tr>';
}
//动态填充结束
tableWindow_html+=' </table>';
tableWindow_html+=' </form>';
tableWindow_html+=' </div>';
tableWindow_html+=' </center>';
tableWindow_html+='</div>';
//jQuery(document.body).append(tableWindow_html);
tableWindow_html+='<div style="text-align:center;width='+this.windowWidth+'px;display:none;" id="'+this.windowId+'dlg-buttons">';
tableWindow_html+=' <a href="javascript:void(0);" style="margin-top:5px;" id="'+this.id+"SubmitButton"+'" class="btn btn-primary" >确定</a>';
tableWindow_html+=' <a href="javascript:void(0);" style="margin-top:5px;margin-left:20px;" id="'+this.id+"CancelButton"+'" class="btn btn-primary" >取消</a>';
//tableWindow_html+=' <a href="javascript:void(0);" style="margin-top:5px;margin-left:20px;" class="btn btn-primary" >取消<a>';
tableWindow_html+='</div>';
if(this.isShowCopyCount){
if(!jQuery("#"+this.windowId+"_copyCountWindow")[0]){
tableWindow_html+='<div title="复制的条数" buttons="#'+this.windowId+'-copyCount-dlg-buttons" id="'+this.windowId+'_copyCountWindow" modal="true" style="padding:10px;display:none;width:200px;">复制的条数:<input id="'+this.windowId+'_inputCopyCount" style="border:1px solid #DDD;width:80px;" value="1"/></div>';
tableWindow_html+='<div style="text-align:center;width=200px;display:none;" id="'+this.windowId+'-copyCount-dlg-buttons">';
tableWindow_html+=' <a href="javascript:void(0);" style="margin-top:5px;" id="'+this.id+"CopyCountSubmitButton"+'" class="btn btn-primary" >确定</a>';
tableWindow_html+=' <a href="javascript:void(0);" style="margin-top:5px;margin-left:20px;" id="'+this.id+"CopyCountCancelButton"+'" class="btn btn-primary" >取消</a>';
tableWindow_html+='</div>';
}
}
jQuery(document.body).append(tableWindow_html);
if(document.getElementById(this.windowId+"dlg-buttons"))
var $$this = this;
jQuery(function(){
jQuery("#"+$$this.windowId +" form input.Wdate").click(function(e){
WdatePicker(this,{readOnly:true,dateFmt:this.getAttribute('dateFormat')});
});
$$this.comboboxs = [];
for(var i=0;i<$$this.comboboxArray.length;i++)
{
var combo_select = new tracywindyComboBox($$this.comboboxArray[i]);
$$this.comboboxs.push(combo_select);
}
});
}
};
/*迭代配置
column配置:{
cascade:{
parentColumnNames:["contactname"],
childrenColumnNames:["custname"]
}
}
*/
this.setColumnConfig = function(config,nameOrIndex){
tracywindyTable.prototype.setColumnConfig.call(this,config,nameOrIndex);
};
this.setReadOnly = function(isReadOnly,nameOrIndex){
this.setColumnConfig({readOnly:isReadOnly,isViewHistoryTask:isReadOnly},nameOrIndex);
};
this.commonCreateTableWindow = commonCreateTableWindow;
this.commonCreateTableWindow();
//初始化window
var commonTableWindowReset = config.commonTableWindowReset || function(){
if(this.beforeCreateTableWindowCallback){
this.beforeCreateTableWindowCallback(this);
}
this.commonCreateTableWindow();
var thisForm = jQuery("#"+this.windowId+" form")[0];
var formElements = thisForm.elements;
for(var a=0;a<formElements.length;a++){
var formElement = formElements[a];
var inputName = formElement.name;
if(inputName){
var config = this.configRemains[inputName];
if(config){
var defaultValue = config['defaultValue']||'';
formElement.value = defaultValue;
}
}
}
for(var i= 0;i<this.comboboxs.length;i++)
{
var combo = this.comboboxs[i];
if("update"==this.flag)
{
combo.comboLoadFunc();
}
else if("add" == this.flag){
/*if(!combo.value){
combo.setValue(combo.value);
}else if(!combo.rawValue){
combo.setRawValue(combo.rawValue);
}*/
//combo.setValue(combo.getValue());
}
}
if(this.resetFromOperCallBack){
this.resetFromOperCallBack(this.flag,thisForm,this);
}
};
this.commonTableWindowReset = commonTableWindowReset;
var showCommonTableWindow = config.showCommonTableWindow||function(){
jQuery("#"+this.windowId).show();
this.top+= Math.max(document.documentElement.scrollTop,document.body.scrollTop);
var config = {
zIndex:999999,
draggable:true,
top:this.windowTop,
resizable:true,
shadow:true,
modal:true,
inline:false,
collapsible:false,
minimizable:false,
maximizable:false,
closable:true
};
jQuery("#"+this.windowId).dialog(config);
jQuery("#"+this.windowId).dialog("open");
};
this.showCommonTableWindow = showCommonTableWindow;
//定义操作方法
this.addOperCallBack = function($me,currentTable){
var rowData = jQuery("#"+$me.windowId+" form").tracywindySerializeFormToJsonObject(true);
var realRowData = {};
for(var columnName in rowData){
var mappingName = $me.findColumnMappingByName($me,currentTable,columnName);
if(null == mappingName)continue;
realRowData[mappingName] = rowData[columnName];
}
currentTable.addRowsAt(0,realRowData);
if(config.addOperCallBack)config.addOperCallBack($me,currentTable, realRowData);
jQuery("#"+$me.windowId).window("close");
};
this.copyOperCallBack = function($me,currentTable){
if(this.isShowCopyCount){
jQuery("#"+this.windowId+"_inputCopyCount").val("1");
var clickFunc = (function($me,currentTable){
return function(e){
var copyCountVal = jQuery("#"+$me.windowId +"_inputCopyCount").val();
var copyCount = -1;
if(copyCountVal){
copyCountVal = copyCountVal.trim();
copyCount = parseInt(copyCountVal);
if(isNaN(copyCount) ){
alert("复制条数必须是整数");
return;
}else{
if(copyCount<=0){
alert("复制条数必须大于等于1");
return;
}
}
}
var newRowDatas = new Array();
var rowDatas = currentTable.getCheckedRowDatas();
var fromRowDatasLength = rowDatas.length;
for(var ci=0;ci<copyCount;ci++){
for(var i=0;i<fromRowDatasLength;i++) {
var newRowData = {};
var fromRowData = rowDatas[i];
for(var p in fromRowData) {
newRowData[p] = fromRowData[p];
}
newRowData[$me.idField] = '';
newRowDatas.push(newRowData);
if(config.copyOperChangeDataCallBack){
config.copyOperChangeDataCallBack($me,currentTable,newRowData, fromRowData);
}
}
}
currentTable.addRowsAt(0,newRowDatas);
if(config.copyOperCallBack)config.copyOperCallBack($me,currentTable);
jQuery("#"+$me.windowId+"_copyCountWindow").dialog("close");
};
})($me,currentTable);
jQuery("#"+$me.id+"CopyCountSubmitButton")[0].onclick = clickFunc;
var cancelClickFunc = (function($me,currentTable){
return function(e){
jQuery("#"+$me.windowId+"_copyCountWindow").dialog("close");
};
})($me,currentTable);
jQuery("#"+$me.id+"CopyCountCancelButton")[0].onclick = cancelClickFunc;
jQuery("#"+$me.windowId+"_copyCountWindow").show();
jQuery("#"+$me.windowId+"_copyCountWindow").dialog({top:200});
jQuery("#"+$me.windowId+"_copyCountWindow").dialog("open");
} else {
var rowDatas = currentTable.getCheckedRowDatas();
var newRowDatas = new Array();
for(var i=0;i<rowDatas.length;i++) {
var newRowData = {};
var fromRowData = rowDatas[i];
for(var p in fromRowData) {
newRowData[p] = fromRowData[p];
}
newRowData[$me.idField] = '';
newRowDatas.push(newRowData);
}
currentTable.addRowsAt(0,newRowDatas);
if(config.copyOperCallBack) {
config.copyOperCallBack($me,currentTable);
}
}
};
this.findColumnMappingByName = function($me,currentTable,columnName){
var columns = currentTable.columns;
for(var i = 0;i<columns.length;i++){
var column = columns[i];
if(columnName == column["name"]){
return column["mapping"];
}
}
return null;
};
this.findColumnNameByMapping = function($me,currentTable,mappingName){
var columns = currentTable.columns;
for(var i = 0;i<columns.length;i++){
var column = columns[i];
if(mappingName == column["mapping"]){
return column["name"];
}
}
return null;
};
this.updateOperCallBack = function($me,currentTable){
var rowData = jQuery("#"+$me.windowId+" form").tracywindySerializeFormToJsonObject(true);
var currentOperRowData = currentTable.getCheckedRowDatas()[0];
for(var p in rowData)
{
var cdata = rowData[p];
// currentOperRowData[p] = cdata;
var mapping = this.findColumnMappingByName($me,currentTable,p);
if(null == mapping)continue;
currentOperRowData[mapping] = cdata;
}
createDataTable(currentTable);
if(config.updateOperCallBack)config.updateOperCallBack($me,currentTable,currentOperRowData);//updatedRowData
jQuery("#"+$me.windowId).window("close");
};
this.removeOperCallBack = function($me,currentTable){
var rowDatas = currentTable.getCheckedRowDatas();
if(0 == rowDatas.length)
{
alert("请选择要删除的数据");
return;
}
if (window.confirm('确认删除选中数据么?')){
var confirmRemove=true;
if(config.confirmRemoveCallBack){
confirmRemove=config.confirmRemoveCallBack($me,currentTable);
}
if(confirmRemove){
for(var i=0;i<rowDatas.length;i++)
{
var rowData = rowDatas[i];
var removeIndex = rowData.rowIndex ;
currentTable.removeRowAt(removeIndex);
}
}
}
if(config.removeOperCallBack)config.removeOperCallBack($me,currentTable,rowDatas);
};
var $toolsMapping = {
"新增":{
html:'<font style="color:red;font-weight:BOLD;">'+"新增"+'</font>',
iconCls:'icon-'+"add",
handler:function(currentTable){
$me.flag = "add";
if(!$me.commonValidateTableDataPassed(null,$me))return;
$me.commonTableWindowReset();
var clickFunc = (function($me,currentTable){
return function(e){
if($me.validateForm($me,currentTable)){
$me.addOperCallBack($me,currentTable);
}
};
})($me,currentTable);
jQuery("#"+$me.id+"SubmitButton")[0].onclick = clickFunc;
var cancelClickFunc = (function($me,currentTable){
return function(e){
jQuery("#"+$me.windowId).dialog("close");
};
})($me,currentTable);
jQuery("#"+$me.id+"CancelButton")[0].onclick = cancelClickFunc;
$me.showCommonTableWindow();
}
},
"复制":{
html:'<font style="color:red;font-weight:BOLD;">'+"复制"+'</font>',
iconCls:'icon-'+"copy",
handler:function(currentTable){
$me.flag = "copy";
var rowDatas = currentTable.getCheckedRowDatas();
if($me.commonValidateTableDataPassed(rowDatas,$me)){
$me.copyOperCallBack($me,currentTable);
}
}
},
"修改":{
html:'<font style="color:red;font-weight:BOLD;">'+"修改"+'</font>',
iconCls:'icon-'+"update",
handler:function(currentTable){
$me.flag = "update";
var rowDatas = currentTable.getCheckedRowDatas();
if($me.commonValidateTableDataPassed(rowDatas,$me)){
if(rowDatas.length>1){
alert("只能选择单条记录进行修改");
return;
};
$me.commonTableWindowReset();
var realRowData = {};
for(var mappingName in rowDatas[0]){
var columnName = $me.findColumnNameByMapping($me,currentTable,mappingName);
if(null == columnName)continue;
realRowData[columnName] = rowDatas[0][mappingName]||rowDatas[0][columnName];
}
jQuery('#'+$me.windowId+" form").form('load',realRowData);
if($me.updateFromOperCallBack){
$me.updateFromOperCallBack("update",jQuery('#'+$me.windowId+" form")[0],$me,realRowData);
}
var clickFunc = (function($me,currentTable){
return function(e){
if($me.validateForm($me,currentTable)){
$me.updateOperCallBack($me,currentTable);
}
};
})($me,currentTable);
jQuery("#"+$me.id+"SubmitButton")[0].onclick = clickFunc;
var cancelClickFunc = (function($me,currentTable){
return function(e){
jQuery("#"+$me.windowId).dialog("close");
};
})($me,currentTable);
jQuery("#"+$me.id+"CancelButton")[0].onclick = cancelClickFunc;
$me.showCommonTableWindow();
}
}
},
"删除":{
html:'<font style="color:red;font-weight:BOLD;">'+"删除"+'</font>',
iconCls:'icon-'+"remove",
handler:function(currentTable){
$me.flag = "remove";
var rowDatas = currentTable.getCheckedRowDatas();
if($me.commonValidateTableDataPassed(rowDatas,$me)){
$me.removeOperCallBack($me,currentTable);
}
}
},
"导出模板":{
html:'<font style="color:red;font-weight:BOLD;">'+"导出模板"+'</font>',
iconCls:'icon-'+"export",
handler:function(currentTable){
exportExcelData(currentTable.id);
}
},
"导入模板":{
html:'<font style="color:red;font-weight:BOLD;">'+"导入模板"+'</font>',
iconCls:'icon-'+"import",
handler:function(currentTable){
importExcelData(currentTable.id);
}
}
};
var $tools = this.otherTools;
var toolsArr = this.tools.split("|");
for(var i = 0;i<toolsArr.length;i++)
{
var toolsItem = toolsArr[i];
if(toolsItem){
var toolsItemObj = $toolsMapping[toolsItem.replace(/\s/g,"")];
if(toolsItemObj){
$tools.push(toolsItemObj);
$tools.push('-');
}
}
}
var $config = {
renderTo:this.renderTo,
id:this.id,
width:this.width,
height:this.height,
isAutoHeight:this.isAutoHeight,
isCheck:this.isCheck,
isRank:this.isRank,
checkOnly:this.checkOnly,
border:this.border,
showHeader:this.showHeader,
loadMode:this.loadMode,
isStatistic:this.statisticColumnNames.length > 0,
datas:this.datas,
isFit:this.isFit,
//isPage:false,
isExportTitle:this.isExportTitle,
statisticColumnNames:this.statisticColumnNames,
columns:this.columns,
tools:$tools,
callBack:this.callBack,
params:this.params
};
for(var p in $config){
config[p] = $config[p];
}
var table = new tracywindyTable(config);
this.operationTable = table;
return table;
};