#setting url_escaping_charset='UTF-8'>
<#-- 提取java枚举类型-->
<#assign GtType={
"LABEL":"01",
"INPUT":"02",
"TEXTAREA":"03",
"COMBOBOX":"05",
"DATEPICKER":"06",
"RADIOBOX":"08",
"CHECKBOX":"09",
"BUTTON":"10",
"LINK":"11",
"IMG":"12",
"SFZ":"18"
}>
<#-- 准备单选控件的值-->
<#assign inputSets= {
<#--子类型:[type类型,class名称,最大长度] -->
"p":["text","postbox",6],<#-- 邮件编码-->
"n":["text","numberbox",50],<#-- 只能输入数字-->
"c":["text","chinessbox",50],<#-- 只能输入中文-->
"f":["text","floatbox",50],<#-- 只能输入浮点数-->
"d":["text","yearmonthbox",6],<#-- 只能输入YYYYMM格式的日期-->
"t":["text","timebox",8],<#-- 只能输入时间格式-->
"s":["text","datetime",19],<#-- 只能输入日期+时间 格式-->
"m":["password","textbox",50],<#-- 密码输入框-->
"x":["text","notpastebox",50],<#-- 不能粘贴的输入框-->
" ":["text","textbox",50],<#-- 默认-->
"b":["text","textbox",50]<#-- 默认-->
}>
<#assign colNames=(parameters.options.data.headers![])>
<#--准备 生成TD所需的表头定义列(过滤多列表头,仅保留最后有效的一列)-->
<#if (parameters.options.frozenColumns > 0) >
<#assign v_fixHead = parameters.lastHeaderRow[0..(parameters.options.frozenColumns-1)] >
<#assign v_colHead = parameters.lastHeaderRow[(parameters.options.frozenColumns)..]![] >
<#else>
<#assign v_fixHead = [] >
<#assign v_colHead = parameters.lastHeaderRow >
#if>
<#--macro 生成TD-->
<#macro GT_TD v_input_comp v_data_one v_row_pos v_col_pos bFixed>
<#assign v_pname=colNames[v_col_pos]!"" >
class=fweditgrid-td-fixed<#else>class=fweditgrid-td#if>>
<#assign compValue = v_data_one[("_DIC_"+v_pname)]!""
hiddenValue = v_data_one[v_pname]!"">
<#if compValue=="">
<#assign compValue = hiddenValue>
#if>
<#if hiddenValue?index_of("href")!=-1>
<#assign hiddenValue = "">
#if>
<#--全部的控件都不用NAME 用rw来表示行 用nd来表示列名,目的为了减少submit时提交的数据量-->
<#switch v_input_comp.type>
<#case GtType.LABEL>
<#break>
<#case GtType.LINK> <#--用于配置超链接的情况 不能用VALUE来保存因为双引号重复-->
<#break>
<#case GtType.INPUT ><#--处理单行输入控件-->
<#assign inputTmp=inputSets[v_input_comp.subtype]>
<#if (compValue?is_sequence)>
<#assign compValue=(compValue[0]?string)!"">
#if>
<#break>
<#case GtType.SFZ ><#--处理身份证 -->
<#if (compValue?is_sequence)>
<#assign compValue=(compValue[0]?string)!"">
#if>
<#break>
<#case GtType.TEXTAREA ><#--处理多行输入控件 -->
<#if (compValue?is_sequence)>
<#assign compValue=(compValue[0]?string)!"">
#if>
<#break>
<#case GtType.DATEPICKER ><#--处理日期控件 -->
<#if (compValue?is_sequence)>
<#assign compValue=(compValue[0]?string)!"">
#if>
<#break>
<#case GtType.BUTTON ><#--处理按钮-->
<#if (compValue?is_sequence)>
<#assign compValue=(compValue[0]?string)!"">
#if>
${compValue}
<#break>
<#case GtType.CHECKBOX >
<#-- 取控件的值-->
<#if (hiddenValue?is_sequence)>
<#assign hiddenValue=(hiddenValue[0]?string)!"">
#if>
<#assign ck="" value=(v_input_comp.value)!"" chk=v_data_one[v_input_comp.chk]!"" >
<#if chk=="1">
<#assign ck="checked">
#if>
<#-- 单checkbox处理 -->
<#break>
<#case GtType.RADIOBOX >
<#if (hiddenValue?is_sequence)>
<#assign hiddenValue=(hiddenValue[0]?string)!"">
#if>
<#if (parameters.glt.dict[v_pname])??>
<#-- 字典项处理 -->
<#assign dicts=parameters.options.data.dicts[v_pname]!{}
v_colNum=(v_input_comp.colNum?number)!10 >
<#else>
${v_input_comp.text!""}
#if>
<#break>
<#case GtType.COMBOBOX>
<#if v_input_comp.subtype!='b'>
<#assign v_readOnly='readOnly=true'>
#if>
<#assign inputTmp=inputSets[v_input_comp.subtype]>
/>
<#break>
<#default>
#switch>
|
#macro>
<#--生成单行记录的函数 -->
<#macro GLT_TR v_fix_arr v_col_arr v_data_one irow icolOffset>
<#if ((v_col_arr?size)>0)>
| ${irow+1} |
<#if parameters.showDelete=="true" >
删除 |
#if>
<#list v_fix_arr as cols>
<@GT_TD cols v_data_one irow cols_index true/>
#list>
<#list v_col_arr as cols>
<@GT_TD cols v_data_one irow icolOffset+cols_index false/>
#list>
<#else>
<#if bFixed>
| ${irow+1} |
<#if parameters.showDelete=="true" >
|
#if>
#if>
#if>
#macro>
<#--生成整个表单记录的函数 -->
<#macro GLT_DATA v_data_arr >
<#if ((v_data_arr?size)>0)>
<#list v_data_arr as rows>
<@GLT_TR v_fixHead v_colHead rows rows_index parameters.options.frozenColumns/>
#list>
<#else>
<@GLT_TR v_fixHead v_colHead {} 0 parameters.options.frozenColumns/>
#if>
#macro>
<#-- 输出列标题 函数-->
<#macro GLT_COL v_head_row isFixed>
<#list v_head_row as col><#--列数据生成 -->
_al=${col.align}#if> sortable=${col.sortable!'true'}
<#if col.width??>style="width=${col.width}"#if> <#if (col.lastRowIndex??)>lastRowIndex="${col.lastRowIndex}" #if>
<#if isFixed>class=fweditgrid-th-fixed<#else>class=fweditgrid-th#if> >
<#if !(col.lastRowIndex??)><#--标题组生成方式 -->
<#if col.checkbox??><#--生成checkbox -->
<#else>
${col.title!""}
#if>
<#else><#--非标题组生成方式 -->
<#if col.checkbox??><#--生成checkbox -->
<#else>
${col.title!""}
#if>
#if>
|
#list>
#macro>
<#macro GLT_HEADER v_head_fixed,v_head_colHead>
<#if ((v_head_fixed?size) > 1 || (v_head_colHead?size) > 1)>
<#-- 含有分组标题的情形先要拼第一行 -->
<#-- 拼第二行 -->
<#else>
#if>
#macro>
<#-- 开始生成多记录表脚本-->
<#if parameters.hasTitle!true >
#if>
<#-- 生成多记录表对应js脚本的区域-->
<#compress>#compress>