form.ftl 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <@ms.html5>
  2. <@ms.nav title="栏目管理" back=true>
  3. <#if column.categoryId == 0>
  4. <@ms.saveButton id="saveUpdate" value="保存"/>
  5. <#else>
  6. <@ms.updateButton id="saveUpdate" value="更新"/>
  7. </#if>
  8. </@ms.nav>
  9. <@ms.panel>
  10. <@ms.form name="columnForm" isvalidation=true action="" method="post" >
  11. <#if column.categoryId!=0>
  12. <@ms.hidden name="categoryId" value="${column.categoryId?c?default(0)}" />
  13. </#if>
  14. <@ms.text name="categoryTitle" width="200" label="${Session.model_title_session?default('栏目')}名称" title="${Session.model_title_session?default('栏目')}名称" placeholder="${Session.model_title_session?default('栏目')}名称" value="${column.categoryTitle?default('')}" id="" validation={"data-bv-stringlength":"true","required":"true", "data-bv-notempty-message":"必填项目", "data-bv-regexp":"true","data-bv-regexp-regexp":'^[^[!@#$%^&*()_+-/~?!@#¥%…&*()——+—?》《:“‘’]+$',"data-bv-stringlength-max":"50","data-bv-regexp-message":"${Session.model_title_session?default('栏目')}名称不能包含特殊字符","data-bv-stringLength-message":"长度不能超过50个字符"} />
  15. <@ms.formRow label="所属栏目" width="300">
  16. <@ms.treeInput treeId="inputTree" json="${listColumn?default('')}" jsonId="categoryId" jsonPid="categoryCategoryId" jsonName="categoryTitle" inputName="categoryCategoryId" inputValue="${column.categoryCategoryId?c?default(0)}" addNodesName="顶级栏目管理" buttonText="${columnSuper.categoryTitle?default('顶级栏目管理')}" clickZtreeId="clickZtreeId(event,treeId,treeNode);" expandAll="true" showIcon="true"/>
  17. </@ms.formRow>
  18. <@ms.text name="categorySort" width="200" label="自定义顺序" title="自定义顺序" size="5" placeholder="请输入文章顺序" value="${column.categorySort?c?default(0)}" validation={"data-bv-between":"true","data-bv-between-message":"自定义顺序必须大于0","data-bv-between-min":"0", "data-bv-between-max":"99999999","data-bv-notempty-message":"自定义顺序不能为空","data-bv-between-message":"请输入0-99999999之间的数","required":"true", "data-bv-notempty-message":"必填项目"}/>
  19. <@ms.textarea name="columnKeyword" width="600" label="${Session.model_title_session?default('栏目')}关键字" wrap="Soft" rows="4" placeholder="${Session.model_title_session?default('栏目')}关键字,有助于搜索" value="${column.columnKeyword?default('')}" validation={"data-bv-stringlength":"true", "data-bv-stringlength-max":"200","data-bv-stringLength-message":"长度不能超过200个字符"} />
  20. <@ms.textarea name="columnDescrip" width="600" label="${Session.model_title_session?default('栏目')}描述" wrap="Soft" rows="4" placeholder="${Session.model_title_session?default('栏目')}描述,对${Session.model_title_session?default('栏目')}关键字的扩展" value="${column.columnDescrip?default('')}" validation={"data-bv-stringlength":"true", "data-bv-stringlength-max":"200","data-bv-stringLength-message":"长度不能超过200个字符"} />
  21. <@ms.formRow label="缩略图" width="400">
  22. <@ms.uploadImg path="column" imgs="${(column.categorySmallImg)?default('')}" inputName="categorySmallImg" size="1" msg="提示:栏目缩略图,最多可上传1张" maxSize="2" />
  23. </@ms.formRow>
  24. <#assign columnTypes=[{"id":"1","name":"列表"},{"id":"2","name":"封面"}]>
  25. <@ms.radio name="columnType" label="${Session.model_title_session?default('栏目')}属性" list=columnTypes listKey="id" listValue="name" value="${column.columnType?c?default(1)}" />
  26. <@ms.select name="columnContentModelId" width="200" list=[] listKey="cmId" listValue="cmTipsName" label="${Session.model_title_session?default('栏目')}内容模型" default="请选择" value="0"/>
  27. <#assign columnModelUrls=[{"id":"0","name":"暂无文件"}]>
  28. <@ms.select name="columnListUrl" width="300" id="columnListUrlModel" list=columnModelUrls listKey="id" listValue="name" label="列表模版" value="${column.columnListUrl?default('')}" select2=true/>
  29. <@ms.select name="columnUrl" width="300" id="columnUrlModel" default="暂无文件" list=columnModelUrls listKey="id" listValue="name" label="内容模版" value="${column.columnUrl?default('')}" select2=true/>
  30. <@ms.hidden name="modelId" value="${Session.model_id_session?default('0')}" />
  31. </@ms.form>
  32. </@ms.panel>
  33. </@ms.html5>
  34. <script>
  35. $(function(){
  36. var columnContentModelId= "${column.columnContentModelId?default('')}"
  37. $("select[name=columnContentModelId]").find("option[value="+columnContentModelId+"]").attr("selected","selected");
  38. <#if column.columnType == 0>
  39. $("input:radio[name='columnType']:first").attr("checked",true);
  40. </#if>
  41. var columnListUrlSes = "${column.columnListUrl?default('')}";
  42. var columnUrlSes = "${column.columnUrl?default('')}";
  43. //页面加载列表模板和内容模板
  44. $.ajax({
  45. type: "post",
  46. dataType: "json",
  47. url: "${managerPath}/template/queryTemplateFileForColumn.do",
  48. success: function(msg){
  49. $("#columnListUrlModel").html("");
  50. $("#columnUrlModel").html("");
  51. if(msg.length != 0){
  52. for(var i=0; i<msg.length; i++){
  53. if(msg[i] == columnListUrlSes) {
  54. $("#columnListUrlModel").append("<option selected>"+msg[i]+"</option>")
  55. }else{
  56. $("#columnListUrlModel").append("<option>"+msg[i]+"</option>")
  57. }
  58. if( msg[i] == columnUrlSes){
  59. $("#columnUrlModel").append("<option selected>"+msg[i]+"</option>")
  60. }else{
  61. $("#columnUrlModel").append("<option>"+msg[i]+"</option>")
  62. }
  63. }
  64. }else{
  65. $("#columnListUrlModel").append("<option>暂无文件</option>");
  66. $("#columnUrlModel").append("<option>暂无文件</option>");
  67. }
  68. <#if column.columnType ==2 >
  69. $("#columnListUrlModel").parents(".form-group").hide();
  70. $("#columnListUrlModel").css("disabled",true);
  71. $("#columnUrlModel").parent().prev().text("封面模板:");
  72. </#if>
  73. }
  74. });
  75. //切换栏目属性
  76. $("input[name='columnType']").click(function(){
  77. if($(this).val()== 2){
  78. $("#columnListUrlModel").parents(".form-group").hide();
  79. $("#columnListUrlModel").css("disabled",true);
  80. $("#columnUrlModel").parent().prev().text("封面模板:");
  81. }else if($(this).val()== 1){
  82. $("#columnListUrlModel").parents(".form-group").show();
  83. $("#columnListUrlModel").css("disabled",false);
  84. $("#columnUrlModel").parent().prev().text("内容模板:");
  85. }
  86. });
  87. //栏目保存提交事件
  88. $("#saveUpdate").click(function(){
  89. $("#columnForm").data("bootstrapValidator").validate();
  90. var isValid = $("#columnForm").data("bootstrapValidator").isValid();
  91. if(!isValid) {
  92. <@ms.notify msg= "数据提交失败,请检查数据格式!" type= "warning" />
  93. return;
  94. }
  95. if($("#columnListUrlModel").find("option:selected").text()=="暂无文件"){
  96. $("#columnListUrlModel").find("option:selected").text("");
  97. }
  98. if($("#columnUrlModel").find("option:selected").text()=="暂无文件"){
  99. $("#columnUrlModel").find("option:selected").text("");
  100. }
  101. //如果选择的是普通文章,则
  102. if($("select[name=columnContentModelId]").find("option:selected").val()==""){
  103. $("select[name=columnContentModelId]").find("option:selected").val(0)
  104. }
  105. var formdata = $("#columnForm").serialize();
  106. var URL = "";
  107. <#if column.categoryId==0>
  108. URL ="${managerPath}/${model?default("")}/column/save.do?modelId=${Session.model_id_session?default(0)}&modelTitle=${Session.model_title_session?default('')}";
  109. <#else>
  110. URL = "${managerPath}/${model?default("")}/column/update.do?modelId=${Session.model_id_session?default(0)}&modelTitle=${Session.model_title_session?default('')}";
  111. </#if>
  112. if(isNaN($("input[name=categorySort]").val())){
  113. <@ms.notify msg= "自定义排序必须是数字" type= "warning" />
  114. $("input[name=categorySort]").val(0);
  115. return;
  116. }
  117. $.ajax({
  118. type: "post",
  119. url: URL,
  120. data: formdata,
  121. dataType:"json",
  122. beforeSend:function(){
  123. //获取按钮值
  124. var bottonText = $("#saveUpdate").text().trim();
  125. //设置按钮加载状态值
  126. $("#saveUpdate").attr("data-loading-text",bottonText+"中");
  127. //执行加载状态
  128. $("#saveUpdate").button('loading');
  129. },
  130. success: function(msg){
  131. if (msg.result) {
  132. <#if column.categoryId==0>
  133. <@ms.notify msg= "保存成功" type= "success" />
  134. <#else>
  135. <@ms.notify msg= "更新成功" type= "success" />
  136. </#if>
  137. var modelId = ${Session.model_id_session?default(0)};
  138. location.href="${managerPath}/${model?default("")}/column/index.do?modelId=${Session.model_id_session?default(0)}&modelTitle=${Session.model_title_session?default('')}";
  139. }else{
  140. <#if column.categoryId==0>
  141. <@ms.notify msg= "保存失败" type= "warning" />
  142. <#else>
  143. <@ms.notify msg= "更新失败" type= "warning" />
  144. </#if>
  145. }
  146. $("#saveUpdate").button('reset')
  147. }
  148. });
  149. });
  150. //获取内容模型列表
  151. $.ajax({
  152. type: "post",
  153. url: "${managerPath}/mdiy/contentModel/list.do?pageSize=100",
  154. dataType: "json",
  155. contentType: "application/json",
  156. success:function(data) {
  157. for( var i=0 ; i<data.rows.length ; i++){
  158. var value = data.rows[i];
  159. var columnContentModelId = ${column.columnContentModelId?c?default(0)};
  160. if(columnContentModelId == value.cmId){
  161. $("select[name=columnContentModelId]").append("<option value = "+value.cmId+" selected='selected'>"+value.cmTipsName+"</option>"); //添加<option>元素
  162. }else{
  163. $("select[name=columnContentModelId]").append("<option value = "+value.cmId+">"+value.cmTipsName+"</option>"); //添加<option>元素
  164. }
  165. }
  166. }
  167. })
  168. });
  169. //选择栏目后查询自定义模型
  170. function clickZtreeId(event,treeId,treeNode){
  171. //栏目不能选择自己及其子栏目为父栏目的事件
  172. <#if column.categoryId gt 0 >
  173. var booleanClick=true;
  174. var nodeParam = zTreeObjinputTree.getNodesByParam("categoryId", "${column.categoryId?c?default(0)}", null);
  175. var nodes = zTreeObjinputTree.getNodesByParam("categoryId", treeNode.categoryId, nodeParam[0]);
  176. if(nodes.length>0 || treeNode.categoryId == nodeParam[0].categoryId){
  177. booleanClick=false;
  178. <@ms.notify msg= "不能选择该栏目作为父栏目" type= "warning" />
  179. }
  180. return booleanClick;
  181. </#if>
  182. }
  183. </script>