config.html 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. {extend name="app/shop/view/base.html" /}
  2. {block name="resources"}
  3. <style>
  4. .layui-elem-quote{color: #999;}
  5. .table-btn{justify-content: center;}
  6. .layui-card-header{border: 1px solid #f6f6f6;}
  7. .layui-card-header .card-title{font-size: 14px;}
  8. </style>
  9. {/block}
  10. {block name="main"}
  11. <div class="layui-collapse tips-wrap">
  12. <div class="layui-colla-item">
  13. <h2 class="layui-colla-title">操作提示</h2>
  14. <ul class="layui-colla-content layui-show">
  15. <li> 注意:请将公众平台模板消息所在行业选择为:消费品/消费品,其他/其他,所选行业不一致将会导致模板消息不可用。</li>
  16. <li>公众平台模板消息所在行业选择一个月只能修改一次,请谨慎选择。</li>
  17. <li>公众号最多支持25个模板消息获取时请注意公众号剩余模板数量是否充足</li>
  18. <li>所需跳转到的小程序必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏</li>
  19. </ul>
  20. </div>
  21. </div>
  22. <div class="layui-form">
  23. <div class="layui-card card-common">
  24. <div class="layui-card-header">
  25. <span class="card-title">是否需跳转到小程序</span>
  26. <input type="checkbox" name="" value="1" lay-skin="switch" {if $config.is_jump_weapp == 1} checked {/if} lay-filter="is_jump_weapp" />
  27. </div>
  28. </div>
  29. </div>
  30. <table id="template_list" lay-filter="template_list"></table>
  31. <script type="text/html" id="batchOperation">
  32. <button class="layui-btn layui-btn-primary" lay-event="open">批量开启</button>
  33. <button class="layui-btn layui-btn-primary" lay-event="close">批量关闭</button>
  34. <button class="layui-btn layui-btn-primary" lay-event="getAll">批量获取</button>
  35. </script>
  36. <script type="text/html" id="operation">
  37. <div class="table-btn">
  38. {{# if(d.wechat_is_open == 0){ }}
  39. <a class="layui-btn" lay-event="open">开启</a>
  40. {{# }else{ }}
  41. <a class="layui-btn" lay-event="close">关闭</a>
  42. {{# } }}
  43. {{# if(d.wechat_template_id != undefined && d.wechat_template_id != ''){ }}
  44. <a class="layui-btn" lay-event="getTemplateNo">重新获取</a>
  45. {{# } }}
  46. </div>
  47. </script>
  48. <script type="text/html" id="message_type">
  49. {{ d.message_type == 1 ? '买家消息' : '卖家消息' }}
  50. </script>
  51. <script type="text/html" id="template_no">
  52. {{ d.wechat_template_id ? d.wechat_template_id : '' }}
  53. </script>
  54. <script type="text/html" id="wechat_is_open">
  55. {{ d.wechat_is_open == 1 ? '已启动' : '已关闭' }}
  56. </script>
  57. {/block}
  58. {block name="script"}
  59. <script type="text/javascript">
  60. var form,table;
  61. layui.use(['form'], function(){
  62. form = layui.form;
  63. form.render();
  64. var repeat_flag = false;//防重复标识
  65. form.on('switch(is_jump_weapp)', function(data){
  66. data.value = data.elem.checked ? data.value : 0;
  67. $.ajax({
  68. dataType: "JSON",
  69. type: "POST",
  70. data:{"is_jump_weapp": data.value},
  71. url: ns.url("wechat://shop/message/messageConfig"),
  72. success: function(res){
  73. }
  74. })
  75. });
  76. table = new Table({
  77. elem: '#template_list',
  78. url: ns.url("wechat://shop/message/config"),
  79. cols: [
  80. [
  81. {
  82. width: "3%",
  83. type: 'checkbox',
  84. unresize: 'false'
  85. },
  86. {
  87. field: 'title',
  88. title: '类型',
  89. align: 'left'
  90. },
  91. {
  92. field: 'message_type',
  93. title: '消息类型',
  94. templet: '#message_type',
  95. align: 'center'
  96. },
  97. {
  98. field: 'wechat_is_open',
  99. title: '是否启用',
  100. templet: '#wechat_is_open',
  101. align: 'center'
  102. },
  103. {
  104. field: 'wechat_template_id',
  105. title: '编号',
  106. align: 'center',
  107. templet: '#template_no'
  108. },
  109. {
  110. title: '操作',
  111. toolbar: '#operation',
  112. align:'right'
  113. }
  114. ]
  115. ],
  116. bottomToolbar: "#batchOperation"
  117. });
  118. /**
  119. * 批量操作
  120. */
  121. table.bottomToolbar(function(obj) {
  122. if (obj.data.length < 1) {
  123. layer.msg('请选择要操作的数据');
  124. return;
  125. }
  126. var keywords_array = new Array();
  127. for (i in obj.data) keywords_array.push(obj.data[i].keywords);
  128. switch (obj.event) {
  129. case 'open': //开启
  130. setStatus(keywords_array.toString(), 1);
  131. break;
  132. case 'close': //关闭
  133. setStatus(keywords_array.toString(), 0);
  134. break;
  135. case 'getAll': //关闭
  136. getTemplate(keywords_array.toString());
  137. break;
  138. }
  139. });
  140. /**
  141. * 监听工具栏操作
  142. */
  143. table.tool(function(obj) {
  144. var data = obj.data;
  145. switch (obj.event) {
  146. case 'getTemplateNo': //获取模板id
  147. getTemplate(data.keywords);
  148. break;
  149. case 'open': //开启
  150. setStatus(data.keywords, 1);
  151. break;
  152. case 'close': //关闭
  153. setStatus(data.keywords, 0);
  154. break;
  155. }
  156. });
  157. function setStatus(keywords, status) {
  158. $.ajax({
  159. type : "post",
  160. url : '{:addon_url("wechat://shop/message/setWechatStatus")}',
  161. data : {
  162. "wechat_is_open":status,
  163. 'keywords' : keywords
  164. },
  165. dataType : "JSON",
  166. success : function(res) {
  167. repeat_flag = false;
  168. layer.msg(res.message);
  169. table.reload('template_list');
  170. }
  171. });
  172. }
  173. function getTemplate(keywords) {
  174. var loadLayer;
  175. layer.confirm('已存在的模板再次获取会导致模板重复存在,是否继续?', function () {
  176. $.ajax({
  177. type : "post",
  178. url : '{:addon_url("wechat://shop/message/getWechatTemplateNo")}',
  179. data : {
  180. 'keywords' : keywords
  181. },
  182. dataType : "JSON",
  183. beforeSend: function(){
  184. loadLayer = layer.msg("模板获取中,请耐心等待,请勿进行其他操作!",{ time : 1000 * 10000});
  185. },
  186. complete: function(){
  187. layer.close(loadLayer);
  188. },
  189. success : function(res) {
  190. repeat_flag = false;
  191. layer.msg(res.message);
  192. table.reload('template_list');
  193. }
  194. });
  195. })
  196. }
  197. });
  198. </script>
  199. {/block}