editor.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <div class="row content-nav inline-page-box">
  2. <div class="col-xs-12">
  3. <ul>
  4. <li><a href="javascript:;"><i></i>&nbsp;微信管理</a></li>
  5. <li><a href="javascript:;">公众号</a></li>
  6. </ul>
  7. </div>
  8. </div>
  9. <section class="content">
  10. <div class="row">
  11. <div class="col-md-3 l-col-md-3">
  12. <div class="box box-solid">
  13. <div class="box-header with-border">
  14. <h3 class="box-title">菜单</h3>
  15. <div class="box-tools">
  16. <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
  17. </button>
  18. </div>
  19. </div>
  20. <div class="box-body no-padding">
  21. <ul class="nav nav-pills nav-stacked">
  22. {include file="wechat/common/wechat_menu"}
  23. </ul>
  24. </div>
  25. </div>
  26. </div>
  27. <div class="col-md-9 r-col-md-9">
  28. <div class="layui-fluid">
  29. <div class="layui-card">
  30. <div class="col-md-4 l-col-md-4">
  31. <div class="wechat-preview inline-block">
  32. <div class="wechat-header">公众号</div>
  33. <div class="wechat-body">
  34. <iframe id="wechat-ifrmae-box" frameborder="0" marginheight="0" marginwidth="0" src=""></iframe>
  35. </div>
  36. </div>
  37. </div>
  38. <div class="col-md-8 r-col-md-8">
  39. <section class="content clearfix" style="padding-top: 0;">
  40. <div class="layui-editor-box">
  41. <div style="margin-top: 0;" class="layui-tab layui-tab-brief layui-tab-bg layui-tab-content-box">
  42. <ul class="layui-tab-title">
  43. <li class="layui-this">基本信息</li>
  44. </ul>
  45. <form action="" class="layui-form layui-form-pane">
  46. <div class="layui-tab-content">
  47. <div class="layui-tab-item layui-show">
  48. <div class="layui-form-item">
  49. <label class="layui-form-label">关键字</label>
  50. <div class="layui-input-block">
  51. <input type="text" name="keys" value="{$data.keys|default=''}" lay-reqtext="请填写关键字" lay-verify="required" placeholder="请输入关键字" autocomplete="off" class="layui-input">
  52. </div>
  53. </div>
  54. <div class="layui-form-item">
  55. <label class="layui-form-label">状态</label>
  56. <div class="layui-input-block">
  57. <input type="radio" name="status" title="开启" value="0" {if empty($data.status) || $data.status==0}checked="checked"{/if}>
  58. <input type="radio" name="status" title="关闭" value="1" {if isset($data.status) && $data.status==1}checked="checked"{/if}>
  59. </div>
  60. </div>
  61. <div class="layui-form-item">
  62. <label class="layui-form-label">消息类型</label>
  63. <div class="layui-input-block">
  64. <input type="radio" name="type" title="文字" value="text" lay-filter="type" {if empty($data.type) || $data.type=="text"}checked="checked"{/if}>
  65. <input type="radio" name="type" title="图文" value="news" lay-filter="type" {if empty($data.type) || $data.type=="news"}checked="checked"{/if}>
  66. <input type="radio" name="type" title="图片" value="image" lay-filter="type" {if empty($data.type) || $data.type=="image"}checked="checked"{/if}>
  67. <!-- input type="radio" name="type" title="音乐" value="music" lay-filter="type">
  68. <input type="radio" name="type" title="视频" value="video" lay-filter="type">
  69. <input type="radio" name="type" title="语音" value="voice" lay-filter="type" -->
  70. </div>
  71. </div>
  72. <div class="layui-form-item data-type" data-type="text">
  73. <label class="layui-form-label">回复内容</label>
  74. <div class="layui-input-block">
  75. <textarea class="layui-textarea" name="content">{$data.content|default=''}</textarea>
  76. </div>
  77. </div>
  78. <div class="layui-form-item data-type" data-type="news">
  79. <label class="layui-form-label">选择图文</label>
  80. <div class="layui-input-block">
  81. <button type="button" id="select-news-btn" class="layui-btn layui-btn-primary">选择图文</button>
  82. </div>
  83. </div>
  84. <div class="layui-form-item data-type" data-type="image">
  85. <label class="layui-form-label">图片地址</label>
  86. <div class="layui-input-block">
  87. <input type="text" id="image-input-text" name="image_url" value="{$data.image_url|default=''}" placeholder="请上传图片" readonly="readonly" style="width: 70%;float: left;" autocomplete="off" class="layui-input">
  88. <button type="button" id="upload-images" class="layui-btn layui-btn-primary" style="float: left">上传图片</button>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. <div class="layui-form-item">
  94. <div class="layui-input-block">
  95. <input type="hidden" name="news_id" value="{$data.news_id|default='0'}">
  96. <input type="hidden" name="id" value="{$data.id|default='0'}">
  97. <button class="layui-btn layui-bg-light-blue" lay-filter="layui-submit-filter" lay-submit="">立即提交</button>
  98. <button class="layui-btn layui-btn-primary" type="reset">重置</button>
  99. </div>
  100. </div>
  101. </form>
  102. </div>
  103. </div>
  104. </section>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. </section>
  111. <style type="text/css">
  112. .data-type{ display: none; }
  113. </style>
  114. <script type="text/javascript">
  115. var setUrl = function (type){
  116. var url = "";
  117. var content = "";
  118. switch(type){
  119. case "text":
  120. url = '{:createUrl("common.wechat/index",["type"=>"text"])}';
  121. content = $('[name="content"]').val();
  122. break;
  123. case "news":
  124. url = '{:createUrl("common.wechat/index",["type"=>"news"])}';
  125. content = $('[name="news_id"]').val();
  126. break;
  127. case "image":
  128. url = '{:createUrl("common.wechat/index",["type"=>"image"])}';
  129. content = $('[name="image_url"]').val();
  130. break;
  131. }
  132. url += url.indexOf("?") != -1 ? "&content=" + content : "?content=" + content;
  133. $("#wechat-ifrmae-box").attr("src",url);
  134. };
  135. var handleNews = function (id){
  136. $('[name="news_id"]').val(id);
  137. setUrl("news");
  138. };
  139. $(function (){
  140. layui.use(["form", "element","layer","upload"], function () {
  141. var form = layui.form;
  142. var layer = layui.layer;
  143. var upload = layui.upload;
  144. {if isset($data.type)}
  145. $('[data-type="{$data.type}"]').show();
  146. setUrl("{$data.type}");
  147. {else}
  148. $('[name="type"]').prop("checked",false);
  149. $('[value="text"]').prop("checked",true);
  150. form.render();
  151. $('[data-type="text"]').show();
  152. setUrl("text");
  153. {/if}
  154. $("#select-news-btn").on("click",function (){
  155. layer.open({
  156. type: 2,
  157. title: false,
  158. closeBtn: 1,
  159. shadeClose: true,
  160. skin: 'yourclass',
  161. area: ['80%', '90%'],
  162. content: '{:createUrl("common.wechat/article")}'
  163. });
  164. return false;
  165. });
  166. form.on('radio(type)', function(data){
  167. $(".data-type").hide();
  168. $('[data-type="'+data.value+'"]').show();
  169. setUrl(data.value);
  170. });
  171. $('[name="content"]').on("input",function (){
  172. setUrl("text");
  173. })
  174. upload.render({
  175. elem: '#upload-images'
  176. ,url: '{:url("common.uploadfiy/upload")}'
  177. ,multiple: false
  178. ,exts: 'jpg|png|gif|bmp|jpeg'
  179. ,data: {
  180. module: function (){
  181. return "keys";
  182. },
  183. method: function (){
  184. return "";
  185. }
  186. }
  187. ,done: function(res){
  188. if(!res.code){
  189. $("#image-input-text").val(res.data.src);
  190. setTimeout(function (){ setUrl("image"); },200);
  191. }else{
  192. layer.msg(res.msg,{ icon : 2 });
  193. }
  194. }
  195. });
  196. form.on('submit(layui-submit-filter)', function (data) {
  197. var index = layer.load(1, { shade: [0.2,'#fff'] });
  198. $.post('{:createUrl("editor")}', data.field, function (result) {
  199. layer.close(index);
  200. if(result.code){
  201. layer.msg(result.msg, {
  202. time: 0
  203. ,btn: ['继续发布', '返回列表']
  204. ,yes: function(index){
  205. window.location.href = '{:createUrl("editor")}';
  206. }
  207. ,btn2: function (index, layero){
  208. window.location.href = '{:createUrl("index")}';
  209. }
  210. });
  211. }else{
  212. layer.msg(result.msg,{ icon :2 });
  213. }
  214. }, "json");
  215. return false;
  216. });
  217. });
  218. });
  219. </script>