weixinFieldMacro.ftl 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <#--字段宏-->
  2. <#setting number_format="0">
  3. <#function getOptionArrs field>
  4. <#assign rtn>[<#list field.aryOptions?keys as optkey> {'val':'${optkey}','text':'${field.aryOptions[optkey]}'}<#if optkey_has_next>,</#if></#list>]</#assign><#return rtn>
  5. </#function>
  6. <#--获取字段名字。 1为主表。2为子表。其他则为弹出框模式子表的字段model type:子表名-->
  7. <#function getFieldName field type>
  8. <#assign rtn="" />
  9. <#if type == 1>
  10. <#assign rtn>data.main.${field.fieldName}</#assign>
  11. <#elseif type== 2>
  12. <#assign rtn>item.${field.fieldName}</#assign>
  13. <#else>
  14. <#assign rtn>subTempData.${type}.${field.fieldName}</#assign>
  15. </#if>
  16. <#return rtn>
  17. </#function>
  18. <#-- 根据字段获取验证规则 -->
  19. <#function getValidRule field>
  20. <#assign rtn="" />
  21. <#if field.isRequired == 1>
  22. <#assign rtn >${rtn}required:true,</#assign>
  23. </#if>
  24. <#if field.fieldType == "number">
  25. <#assign rtn >${rtn}number:true,maxIntLen:${field.intLen},maxDecimalLen:${field.decimalLen},</#assign>
  26. <#elseif (field.charLen??) && (field.charLen?length>0)&&
  27. ((field.controlType??&& (field.controlType==1||field.controlType==2))
  28. )>
  29. <#assign rtn >${rtn}maxlength:${field.charLen},</#assign>
  30. </#if>
  31. <#if (field.validRule??) && (field.validRule?length>0) >
  32. <#assign rtn >${rtn}${field.validRule}:true,</#assign>
  33. </#if>
  34. <#if rtn!="">
  35. <#assign rtn>{${rtn?substring(0,rtn?length-1)}}</#assign>
  36. </#if>
  37. <#return rtn>
  38. </#function>
  39. <#-- 转小写 -->
  40. <#function toLower str>
  41. <#assign rtn>${str?lower_case}</#assign>
  42. <#return rtn>
  43. </#function>
  44. <#macro input field type>
  45. <#if field.fieldType == "varchar"><#---字符串类型-->
  46. <#switch field.controlType>
  47. <#case 1><#--单行文本框-->
  48. <input ht-input="${getFieldName(field,type)}" placeholder="${field.fieldDesc}" class="am-form-field" validate="${getValidRule(field)}" />
  49. <#break>
  50. <#case 2><#--多行文本框-->
  51. <textarea ht-textarea="${getFieldName(field,type)}" class="am-form-field" placeholder="${field.fieldDesc}" validate="${getValidRule(field)}"></textarea>
  52. <#break>
  53. <#case 3><#--数据字典-->
  54. <input ht-dic="${getFieldName(field,type)}" class="am-form-field" dictype="${field.dictType}" validate="${getValidRule(field)}"/>
  55. <#break>
  56. <#case 4><#--人员选择器(单选)-->
  57. <input validate="${getValidRule(field)}" type="text" class="am-form-field" ht-selector="${getFieldName(field,type)}" selectorConfig='{type:"UserDialog",display:"fullname", single:true,bind:{userId:"${getFieldName(field,type)}id",fullname:"${getFieldName(field,type)}"},scope:${field.getPropertyMap().scope}}' />
  58. <#break>
  59. <#case 5><#--角色选择器(多选)-->
  60. <#break>
  61. <#case 6><#--组织选择器(多选)-->
  62. <input validate="${getValidRule(field)}" class="am-form-field" ht-selector="${getFieldName(field,type)}" selectorConfig='{type:"OrgDialog",display:"orgName", single:false,bind:{orgId:"${getFieldName(field,type)}id",orgName:"${getFieldName(field,type)}"},scope:${field.getPropertyMap().scope}}' />
  63. <#break>
  64. <#case 7><#--岗位选择器(多选)-->
  65. <#break>
  66. <#case 8><#--人员选择器(多选)-->
  67. <input validate="${getValidRule(field)}" class="am-form-field" ht-selector="${getFieldName(field,type)}" selectorConfig='{type:"UserDialog",display:"fullname", single:false,bind:{userId:"${getFieldName(field,type)}id",fullname:"${getFieldName(field,type)}"},scope:${field.getPropertyMap().scope}}' />
  68. <#break>
  69. <#case 9><#--文件上传-->
  70. <input validate="${getValidRule(field)}" ht-upload="${getFieldName(field,type)}"/>
  71. <#break>
  72. <#case 10><#--富文本框ueditor-->
  73. <div ht-editor="${getFieldName(field,type)}" validate="${getValidRule(field)}" ng-model="${getFieldName(field,type)}"></div>
  74. <#break>
  75. <#case 11><#--下拉选项-->
  76. <select validate="${getValidRule(field)}" class="am-form-field" ht-select="${getFieldName(field,type)}" options="${getOptionArrs(field)}" data-am-selected="{btnStyle:'success'}">
  77. <#list field.aryOptions?keys as optkey>
  78. <option value="${optkey}">${field.aryOptions[optkey]}</option>
  79. </#list>
  80. </select>
  81. <#break>
  82. <#case 12><#--Office控件-->
  83. <#break>
  84. <#case 13><#--复选框-->
  85. <div class="am-checkbox" validate="${getValidRule(field)}" ht-checkboxs="${getFieldName(field,type)}" values="${getOptionArrs(field)}">
  86. <!-- 此checkbox只做展示使用-->
  87. <#list field.aryOptions?keys as optkey>
  88. <div class="am-checkbox-inline"> <input type="checkbox" value="${optkey}">${field.aryOptions[optkey]}</div>
  89. </#list>
  90. </div>
  91. <#break>
  92. <#case 14><#--单选按钮-->
  93. <div class="am-checkbox" validate="${getValidRule(field)}" type="checkbox" ht-radios="${getFieldName(field,type)}" values="${getOptionArrs(field)}">
  94. <!-- 此radio只做展示使用-->
  95. <#list field.aryOptions?keys as optkey>
  96. <div class="am-radio-inline"> <input type="radio" value="${optkey}">${field.aryOptions[optkey]}</div>
  97. </#list>
  98. </div>
  99. <#break>
  100. <#case 15><#--日期控件-->
  101. <input validate="${getValidRule(field)}" ht-date="${getFieldName(field,type)}" class="am-form-field" options="{format:'<#if (field.getPropertyMap().format==null)>yyyy-MM-dd<#else>${field.getPropertyMap().format}</#if>'}"/>
  102. <#break>
  103. <#case 16><#--隐藏域-->
  104. <#break>
  105. <#case 17><#--角色选择器(单选)-->
  106. <#break>
  107. <#case 18><#---组织选择器(单选)-->
  108. <input validate="${getValidRule(field)}" class="am-form-field" ht-selector="${getFieldName(field,type)}" selectorConfig='{type:"OrgDialog",display:"orgName", single:true,bind:{orgId:"${getFieldName(field,type)}id",orgName:"${getFieldName(field,type)}"},scope:${field.getPropertyMap().scope}}' />
  109. <#break>
  110. <#case 19><#--岗位选择器(单选)-->
  111. <#break>
  112. <#case 20><#--流程引用-->
  113. <#break>
  114. </#switch>
  115. <#elseif field.fieldType == "number"><#---数字类型-->
  116. <#if field.controlType == 16><#--隐藏域-->
  117. <#else><#--否则数字输入-->
  118. <input validate="${getValidRule(field)}" formator='${field.ctlProperty}' ht-input="${getFieldName(field,type)}" placeholder="${field.fieldDesc}" class="am-form-field" />
  119. </#if>
  120. <#elseif field.fieldType == "date"><#---日期类型-->
  121. <#if field.controlType == 16><#--隐藏域-->
  122. <#else>
  123. <input ht-date="${getFieldName(field,type)}" class="am-form-field"/>
  124. </#if>
  125. <#else>
  126. <#if field.controlType == 16><#---隐藏域-->
  127. <#elseif field.controlType == 10><#--富文本框ckeditor-->
  128. <div ht-editor="${getFieldName(field,type)}" validate="${getValidRule(field)}" ng-model="${getFieldName(field,type)}"></div>
  129. <#else><#--否则多文本框-->
  130. <textarea validate="${getValidRule(field)}" ht-textarea="${getFieldName(field,type)}" class="am-form-field" placeholder="${field.fieldDesc}"></textarea>
  131. </#if>
  132. </#if>
  133. </#macro>