subscribe.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  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="radio" name="status" title="开启" value="0" {if empty($data.status) || $data.status==0}checked="checked"{/if}>
  52. <input type="radio" name="status" title="关闭" value="1" {if isset($data.status) && $data.status==1}checked="checked"{/if}>
  53. </div>
  54. </div>
  55. <div class="layui-form-item">
  56. <label class="layui-form-label">消息类型</label>
  57. <div class="layui-input-block">
  58. <input type="radio" name="type" title="文字" value="text" lay-filter="type" {if empty($data.type) || $data.type=="text"}checked="checked"{/if}>
  59. <input type="radio" name="type" title="图文" value="news" lay-filter="type" {if empty($data.type) || $data.type=="news"}checked="checked"{/if}>
  60. <input type="radio" name="type" title="图片" value="image" lay-filter="type" {if empty($data.type) || $data.type=="image"}checked="checked"{/if}>
  61. <!-- input type="radio" name="type" title="音乐" value="music" lay-filter="type">
  62. <input type="radio" name="type" title="视频" value="video" lay-filter="type">
  63. <input type="radio" name="type" title="语音" value="voice" lay-filter="type" -->
  64. </div>
  65. </div>
  66. <div class="layui-form-item data-type" data-type="text">
  67. <label class="layui-form-label">回复内容</label>
  68. <div class="layui-input-block">
  69. <textarea class="layui-textarea" name="content">{$data.content|default=''}</textarea>
  70. </div>
  71. </div>
  72. <div class="layui-form-item data-type" data-type="news">
  73. <label class="layui-form-label">选择图文</label>
  74. <div class="layui-input-block">
  75. <button type="button" id="select-news-btn" class="layui-btn layui-btn-primary">选择图文</button>
  76. </div>
  77. </div>
  78. <div class="layui-form-item data-type" data-type="image">
  79. <label class="layui-form-label">图片地址</label>
  80. <div class="layui-input-block">
  81. <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">
  82. <button type="button" id="upload-images" class="layui-btn layui-btn-primary" style="float: left">上传图片</button>
  83. </div>
  84. </div>
  85. </div>
  86. </div>
  87. <div class="layui-form-item">
  88. <div class="layui-input-block">
  89. <input type="hidden" name="news_id" value="{$data.news_id|default='0'}">
  90. <input type="hidden" name="id" value="{$data.id|default='0'}">
  91. <button class="layui-btn layui-bg-light-blue" lay-filter="layui-submit-filter" lay-submit="">立即提交</button>
  92. <button class="layui-btn layui-btn-primary" type="reset">重置</button>
  93. </div>
  94. </div>
  95. </form>
  96. </div>
  97. </div>
  98. </section>
  99. </div>
  100. </div>
  101. </div>
  102. </div>
  103. </div>
  104. </section>
  105. <style type="text/css">
  106. .data-type{ display: none; }
  107. </style>
  108. <script type="text/javascript">
  109. var setUrl = function (type){
  110. var url = "";
  111. var content = "";
  112. switch(type){
  113. case "text":
  114. url = '{:createUrl("common.wechat/index",["type"=>"text"])}';
  115. content = $('[name="content"]').val();
  116. break;
  117. case "news":
  118. url = '{:createUrl("common.wechat/index",["type"=>"news"])}';
  119. content = $('[name="news_id"]').val();
  120. break;
  121. case "image":
  122. url = '{:createUrl("common.wechat/index",["type"=>"image"])}';
  123. content = $('[name="image_url"]').val();
  124. break;
  125. }
  126. url += url.indexOf("?") != -1 ? "&content=" + content : "?content=" + content;
  127. $("#wechat-ifrmae-box").attr("src",url);
  128. };
  129. var handleNews = function (id){
  130. $('[name="news_id"]').val(id);
  131. setUrl("news");
  132. };
  133. $(function (){
  134. layui.use(["form", "element","layer","upload"], function () {
  135. var form = layui.form;
  136. var layer = layui.layer;
  137. var upload = layui.upload;
  138. {if isset($data.type)}
  139. $('[data-type="{$data.type}"]').show();
  140. setUrl("{$data.type}");
  141. {else}
  142. $('[name="type"]').prop("checked",false);
  143. $('[value="text"]').prop("checked",true);
  144. form.render();
  145. $('[data-type="text"]').show();
  146. setUrl("text");
  147. {/if}
  148. $("#select-news-btn").on("click",function (){
  149. layer.open({
  150. type: 2,
  151. title: false,
  152. closeBtn: 1,
  153. shadeClose: true,
  154. skin: 'yourclass',
  155. area: ['80%', '90%'],
  156. content: '{:createUrl("common.wechat/article")}'
  157. });
  158. return false;
  159. });
  160. form.on('radio(type)', function(data){
  161. $(".data-type").hide();
  162. $('[data-type="'+data.value+'"]').show();
  163. setUrl(data.value);
  164. });
  165. $('[name="content"]').on("input",function (){
  166. setUrl("text");
  167. })
  168. upload.render({
  169. elem: '#upload-images'
  170. ,url: '{:url("common.uploadfiy/upload")}'
  171. ,multiple: false
  172. ,exts: 'jpg|png|gif|bmp|jpeg'
  173. ,data: {
  174. module: function (){
  175. return "keys";
  176. },
  177. method: function (){
  178. return "";
  179. }
  180. }
  181. ,done: function(res){
  182. if(!res.code){
  183. $("#image-input-text").val(res.data.src);
  184. setTimeout(function (){ setUrl("image"); },200);
  185. }else{
  186. layer.msg(res.msg,{ icon : 2 });
  187. }
  188. }
  189. });
  190. form.on('submit(layui-submit-filter)', function (data) {
  191. var index = layer.load(1, { shade: [0.2,'#fff'] });
  192. $.post('{:createUrl("subscribe")}', data.field, function (result) {
  193. layer.close(index);
  194. if(result.code){
  195. layer.msg(result.msg, {
  196. time: 3000
  197. },function (){
  198. window.location.reload();
  199. });
  200. }else{
  201. layer.msg(result.msg,{ icon :2 });
  202. }
  203. }, "json");
  204. return false;
  205. });
  206. });
  207. });
  208. </script>