/** * 字段管理。 * @returns {FieldsManage} */ FieldsManage=function(){ { this.Fields=[]; } /** * 设置字段 */ this.setFields=function(aryFields){ this.Fields=aryFields; }; /** * 添加字段。 */ this.addField=function(field){ var rtn=this.isFieldExist(field.fieldName); if(rtn) return ; this.Fields.push(field); }; this.delField=function(fieldName){ for(var i=this.Fields.length-1;i>=0;i--){ var field=this.Fields[i]; if(field.fieldName.toLowerCase()==fieldName.toLowerCase()){ this.Fields.splice(i,1); } } }; /** * 更新字段。 */ this.updField=function(field){ for(var i=this.Fields.length-1;i>=0;i--){ var tmp=this.Fields[i]; if(tmp.fieldName.toLowerCase()==field.fieldName.toLowerCase()){ var defaults=this.Fields[i]; field= $.extend({}, defaults, field); this.Fields[i]=field; } } }; /** * 替换列字段。 * oldFieldName:原来字段名称。 * 代替的字段对象。 */ this.replaceByFieldName=function(oldFieldName,field){ for(var i=0;i0){ next=idx-1; canMove=true; } } else{ if(idx=0 && idx"; }; /** * 取得字段类型。 */ this.getFieldType=function(field){ var fieldType=field.fieldType; if(fieldType=="varchar"){ fieldType= fieldType + "(" + field.charLen +")"; } else if(fieldType=="number"){ var intLen=field.intLen; var decimalLen=field.decimalLen; if(decimalLen==0){ fieldType= fieldType + "(" + intLen +")"; } else{ fieldType= fieldType + "(" + intLen +"," + decimalLen+")"; } } return fieldType; }; /** * 获取html */ this.getHtml=function(conf){ conf=conf || {showDel:true}; var sb=new StringBuffer(); for(var i=0;i"); var desc = field.fieldDesc; sb.append(""+this.delStyle(field.fieldName,isDel)+""); if(desc.length>15){ desc=desc.substr(0,15)+"..."; } sb.append(""+this.delStyle(desc,isDel)+""); sb.append(""+fieldType+""); sb.append(""+this.getCheckBox(field,"isRequired") +""); sb.append(""+this.getCheckBox(field,"isList")+""); if(fieldType.indexOf('clob')!=-1 || isHideFlowVar(field.controlType)){ sb.append(" "); }else{ sb.append(""+this.getCheckBox(field,"isFlowVar") +""); } if(conf.showDel){ sb.append(""+del+""); } // sb.append(""+this.getCheckBox(field,"isReference") +""); // sb.append(""+this.getCheckBox(field,"ccisread") +""); // if(fieldType.indexOf('number')!=-1){ // sb.append(""+this.getCheckBox(field,"isShowComdify")+""); // }else{ // sb.append(" "); // } sb.append("" +((field.isDeleted==0)?"编辑":" ")+""); sb.append(""); } return sb.toString(); }; /** * 获取指定列名的Element */ this.getFieldItem=function(fieldName,showDel){ var sb=new StringBuffer(); for(var i=0;i"); sb.append(""+this.delStyle(field.fieldName,isDel)+""); sb.append(""+this.delStyle(field.fieldDesc,isDel)+""); sb.append(""+fieldType+""); sb.append(""+this.getCheckBox(field,"isRequired") +""); sb.append(""+this.getCheckBox(field,"isList")+""); if(fieldType.indexOf('clob')!=-1 || isHideFlowVar(field.controlType)){ sb.append(" "); }else{ sb.append(""+this.getCheckBox(field,"isFlowVar") +""); } if(showDel==1){ sb.append(""+del+""); } // sb.append(""+this.getCheckBox(field,"isReference") +""); // sb.append(""+this.getCheckBox(field,"ccisread") +""); // if(fieldType.indexOf('number')!=-1){ // sb.append(""+this.getCheckBox(field,"isShowComdify")+""); // }else{ // sb.append(" "); // } sb.append("" +((field.isDeleted==0)?"编辑":" ")+""); sb.append(""); } return $(sb.toString()); }; /** * 删除字段 */ this.delStyle = function(name,isDel){ if(isDel) return ''+name+''; return name }; }; var isEdited = false; /** * 表的行操作 */ if (typeof TableRow == 'undefined') { TableRow = {}; } /** * 设置列管理对象。 * @param fieldManage */ TableRow.setFieldManage=function(fieldManage){ TableRow.fieldManage=fieldManage; }; /** * 设置字段名是否允许编辑 * @param allowEditColName */ TableRow.setAllowEditColName=function(allowEditColName){ TableRow.allowEditColName=allowEditColName; }; TableRow.setIsExternal=function(isExternal){ TableRow.isExternal=isExternal; }; TableRow.isEdit=false; /** * 是否编辑。 */ TableRow.setIsEdit=function(_isEdit){ TableRow.isEdit=_isEdit; } /** * 删除行 */ TableRow.del=function(){ var objTr=$("#tableColumnItem>tbody .over"); if(objTr.length==0) { $.ligerDialog.warn('还没有选中列!','提示'); return; }; var fieldName=objTr.attr("fieldName"); var field=TableRow.fieldManage.getFieldByName(fieldName); if(field.isRequired){ $.ligerDialog.warn('该列为必填列,不能删除!','提示'); return; } TableRow.fieldManage.delField(fieldName); objTr.remove(); }; /** * 移动行 */ TableRow.move=function(direct){ var objTr=$("#tableColumnItem>tbody .over"); if(objTr.length==0) return; var fieldName=objTr.attr("fieldName"); var rtn=TableRow.fieldManage.moveField(fieldName,direct); if(!rtn) return; if(direct){ var prevObj=objTr.prev(); objTr.insertBefore(prevObj); } else{ var nextObj=objTr.next(); objTr.insertAfter(nextObj); } }; /** * 添加列。 */ TableRow.addColumn=function(isMain){ var isEdit=TableRow.isEdit; ColumnDialog({isAdd:true,isMain:isMain,fieldManage:TableRow.fieldManage,isExternal:0, callBack:function(field){ isEdited = true; var rtn=TableRow.fieldManage.isFieldExist(field.fieldName); if(rtn) return false; TableRow.fieldManage.addField(field); //$("#tableColumnItem>tbody").empty(); var newTr = $(TableRow.fieldManage.getFieldItem(field.fieldName,TableRow.allowEditColName?0:1)); newTr.addClass("newColumn"); newTr.attr('style','background-color:FFE2D7;') newtd = newTr.find("td[name='fieldDesc']"); newtd.attr("title",field.fieldDesc) var desc= field.fieldDesc; if(desc.length>15){ desc=desc.substr(0,15)+"..."; } newtd.html(desc); $("#tableColumnItem>tbody").append(newTr); handisList(); return true; }}); }; handisList=function(){ var ismain=$("input[name='isMain']:checked").val(); var objTd=$("td[name='Listtd']"); var objTh=$("th[name='Listth']"); if(ismain=='1'){ objTd.show(); objTh.show(); }else{ objTh.hide(); objTd.hide(); } } /** * 编辑字段 */ TableRow.editField=function(fieldName,isMain){ var tmpField=TableRow.fieldManage.getFieldByName(fieldName); if(tmpField==null) return; //当前编辑的行 var curTr =$("tr[fieldname="+fieldName+"]","#tableColumnItem>tbody"); //最初,是否是流程变量 var isFlowVar = $("[name=isFlowVar]",curTr).data("isFlowVar"); ColumnDialog({isAdd:false, isMain:isMain, allowEditColName:TableRow.allowEditColName||curTr.hasClass("newColumn"), fieldManage:TableRow.fieldManage, field:tmpField, isFlowVar:isFlowVar, isExternal:TableRow.isExternal, callBack:function(field){ if(TableRow.fieldManage.isFieldExist(field.fieldName)){ TableRow.fieldManage.updField(field); } else{ TableRow.fieldManage.replaceByFieldName(fieldName,field); } //$("#tableColumnItem>tbody").empty(); var showDel=1; if(TableRow.allowEditColName || TableRow.isExternal==1){ showDel=0; } var newTr = $(TableRow.fieldManage.getFieldItem(field.fieldName,showDel)); if(curTr.length>0){ $("[name=isFlowVar]",newTr).data("isFlowVar",isFlowVar); if(!TableRow.allowEditColName){ if(isFlowVar){ $("[name=isFlowVar]:checked",newTr).each(function(){ var _this = $(this); _this.attr("disabled","disabled"); }); } } curTr.replaceWith(newTr); }else{ newTr.data("isFlowVar",isFlowVar); $("#tableColumnItem>tbody").append(newTr); } if(tableId!=0){ isEdited = true; $("#tableColumnItem>tbody>tr:[fieldname="+field.fieldName+"]").attr('style','background-color:#FFE2D7;'); } handisList(); return true; }}); }; /** * 编辑列名及注释 */ TableRow.editNameComment=function(tdObj){ var trObj=tdObj.parent(); var idx=$("#tableColumnItem>tbody>tr").index(trObj); var field=TableRow.fieldManage.getFieldByIndex(idx); var fieldName=tdObj.attr("name"); //字段名称不允许编辑 if(!TableRow.allowEditColName && !trObj.hasClass("newColumn")){ //field.fieldId为undefined表示新添加的字段,否则为原来的字段。 if(fieldName=="fieldName" ) return ; } var hasInput=tdObj.has("input").length==1; if(!hasInput){ var txtObj=$(""); if(tdObj.attr("title")){ txtObj=$(""); } txtObj.blur(function(){ var tmpObj=$(this); var val=tmpObj.val(); if(tmpObj.parent().attr("title")){ tmpObj.parent().attr("title",val); } if(val.length>15){ val=val.substr(0,15)+"..."; } tmpObj.parent().text(val); tmpObj.remove(); field[fieldName]=val; if(tableId!=0){ isEdited = true; $("#tableColumnItem>tbody>tr:[fieldname="+field.fieldName+"]").attr('style','background-color:#FFE2D7;'); } }); tdObj.empty(); tdObj.append(txtObj); txtObj.focus(); } }; /** * 编辑字段的选项。 */ TableRow.editFieldOption=function (chkObj){ var fieldName=chkObj.attr("name"); var checked=chkObj.attr("checked"); var trObj=chkObj.parents("tr"); var idx=$("#tableColumnItem>tbody>tr").index(trObj); var field=TableRow.fieldManage.getFieldByIndex(idx); field[fieldName]=(checked!=undefined)?1:0; }; //根据字段描述生成字段名 function autoGetKey(inputObj){ var subject=$(inputObj).val(); if($.trim(subject).length<1) return; $.ajax({ url: __ctx + '/platform/form/bpmFormTable/getFieldKey.ht', //async:false, type:'POST', data: ({subject : subject}), success: function(data){ var json=eval('('+data+')'); if(json.result==1 && $.trim($('#fieldName').val()).length<1 ){ $('#fieldName').val(json.message); validateField().form(); } } }); }