notification.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>消息管理</title>
  6. </head>
  7. <body class="laytp-container">
  8. <div class="layui-card">
  9. <div class="layui-card-body">
  10. <form class="layui-form" lay-filter="layui-form">
  11. <div class="table-container">
  12. </div>
  13. <div class="bottom">
  14. <div class="button-container">
  15. <button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
  16. <i class="layui-icon layui-icon-ok"></i>
  17. 保存配置
  18. </button>
  19. <button type="reset" class="laytp-btn laytp-btn-sm">
  20. <i class="layui-icon layui-icon-refresh"></i>
  21. 重置
  22. </button>
  23. </div>
  24. </div>
  25. </form>
  26. </div>
  27. </div>
  28. <script id="confTableHtml" type="text/html">
  29. <input type="hidden" name="group" id="group" value="{{=d.group}}" />
  30. <div class="layui-card">
  31. <div class="layui-card-header">消息通知</div>
  32. <div class="layui-card-body">
  33. <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
  34. <ul class="layui-tab-title">
  35. <li lay-id="1" class="layui-this">微信小程序订阅消息</li>
  36. <!-- <li lay-id="3">公众号</li> -->
  37. </ul>
  38. <div class="layui-tab-content" style="height: 30px;">
  39. <!-- 客户端小程序 -->
  40. <div class="layui-tab-item layui-show">
  41. <span>订阅消息开关</span>
  42. <hr class="layui-border-green">
  43. <table class="layui-table" style="margin: 0;" lay-skin="nob">
  44. <colgroup>
  45. <col width="15%">
  46. <col width="70%">
  47. <col width="15%">
  48. </colgroup>
  49. <tbody>
  50. <tr>
  51. <td style="text-align:right;">
  52. 开启订阅消息
  53. </td>
  54. <td>
  55. <!-- 隐藏域设置开关未选中时需要传递的参数值 -->
  56. <input type="hidden" name="subscribe_status" value="2" />
  57. <input type="checkbox" name="subscribe_status" lay-skin="switch" lay-text="打开|关闭" value="1" {{# if(d.subscribe_status == 1){ }}checked="checked" {{# } }} />
  58. <input type="hidden" name="form_type[subscribe_status]" value="switch" />
  59. </td>
  60. <td>
  61. <div class="conf-des layui-form-mid layui-word-aux">
  62. <label title="站点开启开关">订阅消息开关</label>
  63. <br />
  64. <code title="{{=d.group}}.subscribe_status">{{=d.group}}.subscribe_status</code>
  65. </div>
  66. </td>
  67. </tr>
  68. </tbody>
  69. </table>
  70. <span>支付事件触发</span>
  71. <hr class="layui-border-green">
  72. <table class="layui-table" style="margin: 0;" lay-skin="nob">
  73. <colgroup>
  74. <col width="15%">
  75. <col width="70%">
  76. <col width="15%">
  77. </colgroup>
  78. <tbody>
  79. <tr>
  80. <td style="text-align:right;">
  81. 订单支付成功通知
  82. </td>
  83. <td>
  84. <input autocomplete="off" type="text" name="pay_suc" id="input" value="{{=d.pay_suc}}" disabled placeholder="请输入模板ID" class="layui-input pay_suc" lay-verify="required">
  85. <input type="hidden" name="form_type[pay_suc]" value="input" />
  86. <input type="button" class="laytp-btn laytp-btn-warming" value="自动获取" onclick="subscribe(2039,'pay_suc')"></input>
  87. </td>
  88. <td>
  89. <div class="conf-des layui-form-mid layui-word-aux">
  90. <label title="配置说明"></label>
  91. <br />
  92. <code title="{{=d.group}}.input">{{=d.group}}.pay_suc</code>
  93. </div>
  94. </td>
  95. </tr>
  96. <tr>
  97. <tr>
  98. <td style="text-align:right;">
  99. 消息未读提醒
  100. </td>
  101. <td>
  102. <input autocomplete="off" type="text" name="unread_msg" id="input" value="{{=d.unread_msg}}" disabled placeholder="请输入模板ID" class="layui-input unread_msg" lay-verify="required">
  103. <input type="hidden" name="form_type[unread_msg]" value="input" />
  104. <input type="button" class="laytp-btn laytp-btn-warming" value="自动获取" onclick="subscribe(1185,'unread_msg')"></input>
  105. </td>
  106. <td>
  107. <div class="conf-des layui-form-mid layui-word-aux">
  108. <label title="配置说明"></label>
  109. <br />
  110. <code title="{{=d.group}}.input">{{=d.group}}.unread_msg</code>
  111. </div>
  112. </td>
  113. </tr>
  114. </tbody>
  115. </table>
  116. <span>企业认证事件触发</span>
  117. <hr class="layui-border-green">
  118. <table class="layui-table" style="margin: 0;" lay-skin="nob">
  119. <colgroup>
  120. <col width="15%">
  121. <col width="70%">
  122. <col width="15%">
  123. </colgroup>
  124. <tbody>
  125. <tr>
  126. <td style="text-align:right;">
  127. 企业认证审核通知
  128. </td>
  129. <td>
  130. <input autocomplete="off" type="text" name="company_examine" id="input" value="{{=d.company_examine}}" disabled placeholder="请输入模板ID" class="layui-input company_examine" lay-verify="required">
  131. <input type="hidden" name="form_type[company_examine]" value="input" />
  132. <input type="button" class="laytp-btn laytp-btn-warming" value="自动获取" onclick="subscribe(10291,'company_examine')"></input>
  133. </td>
  134. <td>
  135. <div class="conf-des layui-form-mid layui-word-aux">
  136. <label title="配置说明"></label>
  137. <br />
  138. <code title="{{=d.group}}.input">{{=d.group}}.company_examine</code>
  139. </div>
  140. </td>
  141. </tr>
  142. <tr>
  143. <td style="text-align:right;">
  144. 消息未读提醒
  145. </td>
  146. <td>
  147. <input autocomplete="off" type="text" name="unread_msg" id="input" value="{{=d.unread_msg}}" disabled placeholder="请输入模板ID" class="layui-input unread_msg" lay-verify="required">
  148. <input type="hidden" name="form_type[unread_msg]" value="input" />
  149. <input type="button" class="laytp-btn laytp-btn-warming" value="自动获取" onclick="subscribe(1185,'unread_msg')"></input>
  150. </td>
  151. <td>
  152. <div class="conf-des layui-form-mid layui-word-aux">
  153. <label title="配置说明"></label>
  154. <br />
  155. <code title="{{=d.group}}.input">{{=d.group}}.unread_msg</code>
  156. </div>
  157. </td>
  158. </tr>
  159. </tbody>
  160. </table>
  161. <span>发布信息事件触发</span>
  162. <hr class="layui-border-green">
  163. <table class="layui-table" style="margin: 0;" lay-skin="nob">
  164. <colgroup>
  165. <col width="15%">
  166. <col width="70%">
  167. <col width="15%">
  168. </colgroup>
  169. <tbody>
  170. <tr>
  171. <td style="text-align:right;">
  172. 审核结果通知
  173. </td>
  174. <td>
  175. <input autocomplete="off" type="text" name="examine_result" id="input" value="{{=d.examine_result}}" disabled placeholder="请输入模板ID" class="layui-input examine_result" lay-verify="required">
  176. <input type="hidden" name="form_type[examine_result]" value="input" />
  177. <input type="button" class="laytp-btn laytp-btn-warming" value="自动获取" onclick="subscribe(786,'examine_result')"></input>
  178. </td>
  179. <td>
  180. <div class="conf-des layui-form-mid layui-word-aux">
  181. <label title="配置说明"></label>
  182. <br />
  183. <code title="{{=d.group}}.input">{{=d.group}}.examine_result</code>
  184. </div>
  185. </td>
  186. </tr>
  187. <tr>
  188. <td style="text-align:right;">
  189. 消息未读提醒
  190. </td>
  191. <td>
  192. <input autocomplete="off" type="text" name="unread_msg" id="input" value="{{=d.unread_msg}}" disabled placeholder="请输入模板ID" class="layui-input unread_msg" lay-verify="required">
  193. <input type="hidden" name="form_type[unread_msg]" value="input" />
  194. <input type="button" class="laytp-btn laytp-btn-warming" value="自动获取" onclick="subscribe(1185,'unread_msg')"></input>
  195. </td>
  196. <td>
  197. <div class="conf-des layui-form-mid layui-word-aux">
  198. <label title="配置说明"></label>
  199. <br />
  200. <code title="{{=d.group}}.input">{{=d.group}}.unread_msg</code>
  201. </div>
  202. </td>
  203. </tr>
  204. </tbody>
  205. </table>
  206. </div>
  207. <!-- 公众号 -->
  208. <div class="layui-tab-item">
  209. <span>发给用户</span>
  210. <hr class="layui-border-green">
  211. <span>发给平台</span>
  212. <hr class="layui-border-green">
  213. <!-- 发给平台 -->
  214. <table class="layui-table" style="margin: 0;" lay-skin="nob">
  215. <colgroup>
  216. <col width="15%">
  217. <col width="70%">
  218. <col width="15%">
  219. </colgroup>
  220. <tbody>
  221. <!-- <tr>
  222. <td style="text-align:right;">
  223. 新订单通知
  224. </td>
  225. <td>
  226. <input autocomplete="off" type="text" name="new_order" id="input" value="{{=d.new_order}}" disabled placeholder="请输入新订单通知模板ID" class="layui-input" lay-verify="required">
  227. <input type="hidden" name="form_type[new_order]" value="input" />
  228. </td>
  229. <td>
  230. <div class="conf-des layui-form-mid layui-word-aux">
  231. <label title="配置说明">编号OPENTM417875155</label>
  232. <br />
  233. <code title="{{=d.group}}.input">{{=d.group}}.new_order</code>
  234. </div>
  235. </td>
  236. </tr> -->
  237. </tbody>
  238. </table>
  239. </div>
  240. </div>
  241. </div>
  242. </div>
  243. </div>
  244. </script>
  245. <script type="application/javascript">
  246. if(localStorage.getItem("staticDomain")){
  247. document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/layui/css/layui.css?v=" + localStorage.getItem("version") + "'>");
  248. document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
  249. document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
  250. document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
  251. document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery.tablednd.js?v="+localStorage.getItem("version")+"'><\/script>");
  252. }else{
  253. document.write("<link rel='stylesheet' href='/static/component/layui/css/layui.css?v=" + localStorage.getItem("version") + "'>");
  254. document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
  255. document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
  256. document.write("<script src='/static/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
  257. document.write("<script src='/static/component/jquery.tablednd.js?v="+localStorage.getItem("version")+"'><\/script>");
  258. }
  259. </script>
  260. <script>
  261. layui.use(['laytp', 'element'], function() {
  262. var group = "system.notification";
  263. var element = layui.element;
  264. // 先获取数据,渲染表单
  265. // 渲染完表单之后,设置滚动条
  266. facade.ajax({
  267. route: "/admin.conf/getGroupConf",
  268. data: {
  269. "group": group
  270. },
  271. successAlert: false,
  272. showLoading: true
  273. }).done(function(res) {
  274. if (res.code === 0) {
  275. res.data.group = group;
  276. layui.laytpl($("#confTableHtml").html()).render(res.data, function(string) {
  277. $(".table-container").html(string);
  278. layui.laytpForm.render();
  279. layui.form.render();
  280. var windowHeight = $(window).height();
  281. var maxHeight = parseInt(windowHeight) - 86;
  282. var minHeight = parseInt(windowHeight) - 86;
  283. // 设置table-container的最大高度和超过高度后展示滚动条
  284. $(".table-container").css("margin-bottom", '40px');
  285. $(".table-container").css("max-height", maxHeight + 'px');
  286. $(".table-container").css("min-height", minHeight + 'px');
  287. $(".table-container").css("overflow-y", "auto");
  288. $('.bottom').css("background-color", "#f6f6f6");
  289. });
  290. }
  291. });
  292. // 选项卡
  293. var layid = location.hash.replace(/^#docDemoTabBrief=/, '');
  294. element.tabChange('test1', layid);
  295. element.on('tab(docDemoTabBrief)', function(data) {
  296. location.hash = 'test1=' + this.getAttribute('lay-id');
  297. });
  298. layui.form.on('submit(add)', function(data) {
  299. var btnAnim = layui.button.load({
  300. elem: $(this)
  301. });
  302. try {
  303. data = facade.setEditorField(data);
  304. } catch (e) {
  305. facade.error(e);
  306. return false;
  307. }
  308. data.field.group = group;
  309. facade.ajax({
  310. route: '/admin.conf/saveGroupConf',
  311. data: data.field
  312. }).done(function(res) {
  313. btnAnim.stop();
  314. }).fail(function() {
  315. btnAnim.stop();
  316. });
  317. return false;
  318. });
  319. })
  320. function subscribe(tid,name){
  321. facade.ajax({
  322. method: "GET",
  323. route: "/admin.conf/miniappNotification",
  324. data: {"tid": tid},
  325. }).done(function(res) {
  326. if(res.code == 0){
  327. $('.'+name).val(res.data.priTmplId)
  328. }
  329. })
  330. }
  331. </script>
  332. </body>
  333. </html>