edit.html 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. {extend name="app/shop/view/base.html"/}
  2. {block name="resources"}
  3. <style>
  4. .upload-img-block .upload-img-box .upload-default{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);}
  5. </style>
  6. {/block}
  7. {block name="main"}
  8. <div class="layui-form form-wrap">
  9. <div class="layui-form-item">
  10. <label class="layui-form-label short-label"><span class="required">*</span>文章标题:</label>
  11. <div class="layui-input-inline">
  12. <input type="text" name="article_title" value="{$info.article_title}" lay-verify="required" maxlength="40" autocomplete="off" placeholder="文章标题最多40个字" class="layui-input len-long">
  13. </div>
  14. </div>
  15. <div class="layui-form-item">
  16. <label class="layui-form-label"><span class="required">*</span>文章分类:</label>
  17. <div class="layui-input-inline">
  18. <select name="category_id" lay-verify="required">
  19. <option value="">请选择</option>
  20. {foreach $category_list as $v}
  21. <option value="{$v['category_id']}" {if $info.category_id == $v.category_id} selected {/if}>{$v['category_name']}</option>
  22. {/foreach}
  23. </select>
  24. </div>
  25. </div>
  26. <div class="layui-form-item">
  27. <label class="layui-form-label short-label">摘要:</label>
  28. <div class="layui-input-block">
  29. <textarea name="article_abstract" class="layui-textarea len-long" maxlength="100">{$info.article_abstract}</textarea>
  30. </div>
  31. <div class="word-aux">文章摘要最多可输入100个字</div>
  32. </div>
  33. <div class="layui-form-item">
  34. <label class="layui-form-label">封面</label>
  35. <div class="layui-input-block img-upload">
  36. <div class="upload-img-block square simple-uploading">
  37. <div class="upload-img-box" id="img">
  38. <div class="upload-default">
  39. <i class="iconfont iconshangchuan"></i>
  40. <p>点击上传</p>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. <div class="word-aux">推荐使用 750x420 像素的图片 最多上传1张</div>
  46. </div>
  47. <div class="layui-form-item">
  48. <label class="layui-form-label"><span class="required">*</span>文章内容:</label>
  49. <div class="layui-input-inline">
  50. <script id="editor" type="text/plain" class="special-length" style="height:500px;"></script>
  51. <input type="hidden" name="article_content" id="article_content" value="{$info.article_content}"/>
  52. </div>
  53. </div>
  54. <div class="layui-form-item">
  55. <label class="layui-form-label">发布时间:</label>
  56. <div class="layui-input-inline">
  57. <input type="radio" name="is_show_release_time" value="1" title="显示" {if $info.is_show_release_time == 1} checked {/if}>
  58. <input type="radio" name="is_show_release_time" value="0" title="不显示" {if $info.is_show_release_time == 0} checked {/if}>
  59. </div>
  60. </div>
  61. <div class="layui-form-item">
  62. <label class="layui-form-label">阅读次数:</label>
  63. <div class="layui-input-inline">
  64. <input type="radio" name="is_show_read_num" value="1" title="显示" {if $info.is_show_read_num == 1} checked {/if}>
  65. <input type="radio" name="is_show_read_num" value="0" title="不显示" {if $info.is_show_read_num == 0} checked {/if}>
  66. </div>
  67. </div>
  68. <div class="layui-form-item">
  69. <label class="layui-form-label">点赞次数:</label>
  70. <div class="layui-input-inline">
  71. <input type="radio" name="is_show_dianzan_num" value="1" title="显示" {if $info.is_show_dianzan_num == 1} checked {/if}>
  72. <input type="radio" name="is_show_dianzan_num" value="0" title="不显示" {if $info.is_show_dianzan_num == 0} checked {/if}>
  73. </div>
  74. </div>
  75. <div class="layui-form-item">
  76. <label class="layui-form-label">虚拟阅读数:</label>
  77. <div class="layui-input-inline">
  78. <input type="number" min="0" name="initial_read_num" value="{$info.initial_read_num}" onchange="detectionNumType(this,'integral')" class="layui-input">
  79. </div>
  80. </div>
  81. <div class="layui-form-item">
  82. <label class="layui-form-label">虚拟点赞数:</label>
  83. <div class="layui-input-inline">
  84. <input type="number" min="0" name="initial_dianzan_num" value="{$info.initial_dianzan_num}" onchange="detectionNumType(this,'integral')" class="layui-input">
  85. </div>
  86. </div>
  87. <div class="layui-form-item">
  88. <label class="layui-form-label">排序:</label>
  89. <div class="layui-input-inline">
  90. <input type="number" min="0" name="sort" value="{$info.sort}" class="layui-input">
  91. </div>
  92. </div>
  93. <input type="hidden" name="article_id" value="{$info.article_id}" />
  94. <div class="form-row">
  95. {if $info.status == 1}
  96. <button class="layui-btn" lay-submit lay-filter="save">保存</button>
  97. <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
  98. {else /}
  99. <button class="layui-btn" lay-submit lay-filter="saveDrafts">保存</button>
  100. <button class="layui-btn" lay-submit lay-filter="save">立即发布</button>
  101. <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
  102. {/if}
  103. </div>
  104. </div>
  105. {/block}
  106. {block name="script"}
  107. <script type="text/javascript" charset="utf-8" src="STATIC_EXT/ueditor/ueditor.config.js"></script>
  108. <script type="text/javascript" charset="utf-8" src="STATIC_EXT/ueditor/ueditor.all.js"></script>
  109. <script type="text/javascript" charset="utf-8" src="STATIC_EXT/ueditor/lang/zh-cn/zh-cn.js"></script>
  110. <script>
  111. var form,upload,
  112. IMAGE_MAX = 9, //最多可以上传多少张图片
  113. imageCollection = [], //图片集合
  114. selectedGoodsId = [],
  115. goods_id=[],
  116. repeat_flag = false,
  117. coverImg = '{$info.cover_img}';
  118. initImg();//初始化图片
  119. function initImg(){
  120. $("#img").html("<img src=" + ns.img(coverImg) + " >");
  121. imageCollection = [coverImg];
  122. }
  123. //实例化富文本
  124. var ue = UE.getEditor('editor');
  125. if($("#article_content").val()){
  126. ue.ready(function() {
  127. ue.setContent($("#article_content").val());
  128. });
  129. }
  130. layui.use(['form'], function() {
  131. form = layui.form;
  132. form.render();
  133. // 单图上传
  134. $("body").on("click", "#img", function () {
  135. openAlbum(function (data) {
  136. imageCollection = [];
  137. imageCollection.push(data[0].pic_path);
  138. imageCollection.splice(1, imageCollection.length);
  139. var val = '<img src="' + ns.img(imageCollection[0]) + '" alt="">';
  140. $("#img").html(val);
  141. }, 1);
  142. });
  143. /**
  144. * 表单提交(立即发布)
  145. */
  146. form.on('submit(save)', function(data){
  147. field = data.field;
  148. field.status = 1;
  149. formSubmit(field)
  150. });
  151. /**
  152. * 表单提交(草稿箱)
  153. */
  154. form.on('submit(saveDrafts)', function(data){
  155. field = data.field;
  156. field.status = 0;
  157. formSubmit(field)
  158. });
  159. });
  160. /**
  161. * 提交
  162. */
  163. function formSubmit(field)
  164. {
  165. if (!imageCollection.length){
  166. layer.msg('请选择封面图!', {icon: 5, anim: 6});
  167. return;
  168. }
  169. field.cover_img = imageCollection.join();
  170. if (!ue.getContent()){
  171. layer.msg("文章内容不能为空");
  172. return false;
  173. }
  174. if(field.sort < 0){
  175. layer.msg("排序号不能小于0");
  176. return false;
  177. }
  178. field.article_content = ue.getContent();
  179. if(repeat_flag) return;
  180. repeat_flag = true;
  181. $.ajax({
  182. type: 'POST',
  183. dataType: 'JSON',
  184. url: ns.url("shop/article/edit"),
  185. data: field,
  186. async: false,
  187. success: function(res){
  188. repeat_flag = false;
  189. if (res.code == 0) {
  190. layer.confirm('编辑成功', {
  191. title:'操作提示',
  192. btn: ['返回列表', '继续编辑'],
  193. yes: function(){
  194. if(field.status == 1){
  195. location.href = ns.url("shop/article/lists");
  196. }else{
  197. location.href = ns.url("shop/article/drafts");
  198. }
  199. },
  200. btn2: function() {
  201. location.reload();
  202. }
  203. });
  204. }else{
  205. layer.msg(res.message);
  206. }
  207. }
  208. })
  209. }
  210. function back() {
  211. location.href = ns.url("shop/article/lists");
  212. }
  213. //检测数据类型
  214. function detectionNumType(el, type) {
  215. var value = $(el).val();
  216. //大于零 且 不是小数
  217. if (value < 0 && type == 'integral')
  218. $(el).val(0);
  219. else if (type == 'integral')
  220. $(el).val(Math.round(value));
  221. //大于1 且 不是小数
  222. if (value < 1 && type == 'positiveInteger')
  223. $(el).val(1);
  224. else if (type == 'positiveInteger')
  225. $(el).val(Math.round(value));
  226. //大于零可以是小数
  227. if (type == 'positiveNumber') {
  228. value = parseFloat(value).toFixed(2);
  229. if (value < 0)
  230. $(el).val(0);
  231. else
  232. $(el).val(value);
  233. }
  234. }
  235. </script>
  236. {/block}