<#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 > <#--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> <#assign compValue = v_data_one[("_DIC_"+v_pname)]!"" hiddenValue = v_data_one[v_pname]!""> <#if compValue==""> <#assign compValue = hiddenValue> <#if hiddenValue?index_of("href")!=-1> <#assign hiddenValue = ""> <#--全部的控件都不用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)!""> <#break> <#case GtType.SFZ ><#--处理身份证 --> <#if (compValue?is_sequence)> <#assign compValue=(compValue[0]?string)!""> <#break> <#case GtType.TEXTAREA ><#--处理多行输入控件 --> <#if (compValue?is_sequence)> <#assign compValue=(compValue[0]?string)!""> <#break> <#case GtType.DATEPICKER ><#--处理日期控件 --> <#if (compValue?is_sequence)> <#assign compValue=(compValue[0]?string)!""> <#break> <#case GtType.BUTTON ><#--处理按钮--> <#if (compValue?is_sequence)> <#assign compValue=(compValue[0]?string)!""> ${compValue} <#break> <#case GtType.CHECKBOX > <#-- 取控件的值--> <#if (hiddenValue?is_sequence)> <#assign hiddenValue=(hiddenValue[0]?string)!""> <#assign ck="" value=(v_input_comp.value)!"" chk=v_data_one[v_input_comp.chk]!"" > <#if chk=="1"> <#assign ck="checked"> <#-- 单checkbox处理 --> <#break> <#case GtType.RADIOBOX > <#if (hiddenValue?is_sequence)> <#assign hiddenValue=(hiddenValue[0]?string)!""> <#if (parameters.glt.dict[v_pname])??> <#-- 字典项处理 --> <#assign dicts=parameters.options.data.dicts[v_pname]!{} v_colNum=(v_input_comp.colNum?number)!10 > <#list dicts?keys?chunk(v_colNum) as subkeys> <#list subkeys as key>
${dicts[key]!""}
<#else> ${v_input_comp.text!""} <#break> <#case GtType.COMBOBOX> <#if v_input_comp.subtype!='b'> <#assign v_readOnly='readOnly=true'> <#assign inputTmp=inputSets[v_input_comp.subtype]> /> <#break> <#default> <#--生成单行记录的函数 --> <#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" > 删除 <#list v_fix_arr as cols> <@GT_TD cols v_data_one irow cols_index true/> <#list v_col_arr as cols> <@GT_TD cols v_data_one irow icolOffset+cols_index false/> <#else> <#if bFixed> ${irow+1} <#if parameters.showDelete=="true" >
删除
<#--生成整个表单记录的函数 --> <#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/> <#else> <@GLT_TR v_fixHead v_colHead {} 0 parameters.options.frozenColumns/> <#-- 输出列标题 函数--> <#macro GLT_COL v_head_row isFixed> <#list v_head_row as col><#--列数据生成 --> _al=${col.align} sortable=${col.sortable!'true'} <#if col.width??>style="width=${col.width}" <#if (col.lastRowIndex??)>lastRowIndex="${col.lastRowIndex}" <#if isFixed>class=fweditgrid-th-fixed<#else>class=fweditgrid-th > <#if !(col.lastRowIndex??)><#--标题组生成方式 --> <#if col.checkbox??><#--生成checkbox --> <#else> ${col.title!""} <#else><#--非标题组生成方式 --> <#if col.checkbox??><#--生成checkbox --> <#else>
${col.title!""}  
<#macro GLT_HEADER v_head_fixed,v_head_colHead> <#if ((v_head_fixed?size) > 1 || (v_head_colHead?size) > 1)> <#-- 含有分组标题的情形先要拼第一行 -->   <#if parameters.showDelete=="true" >   <#list v_head_fixed as row> <@GLT_COL row true /> <#break> <#list v_head_colHead as row> <@GLT_COL row false/> <#break> <#-- 拼第二行 -->   <#if parameters.showDelete=="true" > 操作 <#list v_head_fixed as row> <#if (row_index >0) > <@GLT_COL row true/> <#list v_head_colHead as row> <#if (row_index >0) > <@GLT_COL row false /> <#else>   <#if parameters.showDelete=="true" > 操作 <#list v_head_fixed as row> <@GLT_COL row true/> <#break> <#list v_head_colHead as row> <@GLT_COL row false/> <#break> <#-- 开始生成多记录表脚本--> <#if parameters.hasTitle!true >
${parameters.title!(parameters.glt.title!'')}
<#assign buildPage=(parameters.options.hasPage||(parameters.options.expbtn?length!"")>0) > <#if (["TOP","BOTH"]?seq_contains(parameters.pageAlign!"BOTTOM"))&&buildPage >
<@GLT_HEADER parameters.glt.fixHead![] parameters.glt.colHead![] /> <@GLT_DATA parameters.options.data.rows />
<#if (["BOTTOM","BOTH"]?seq_contains(parameters.pageAlign!"BOTTOM"))&&buildPage >
<#if parameters.hasTitle!true >

<#-- 生成多记录表对应js脚本的区域--> <#compress>