lists.html 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. {extend name="base"/}
  2. {block name="resources"}
  3. <style>
  4. .table-btn a {margin-left: 5px}
  5. .layui-form-label { width: 110px; }
  6. .layui-input-block { margin-left: 110px !important; }
  7. .bind-qrcode { height: 68px !important; width: 68px !important; border: 1px dashed; background: #fafafa; padding: 5px; margin-right: 15px; cursor: pointer;}
  8. .layui-layout-admin.admin-style-2 .screen{margin-bottom: 15px;}
  9. </style>
  10. {/block}
  11. {block name="main"}
  12. <!-- 添加会员 -->
  13. <div class="single-filter-box">
  14. <button type="button" class="layui-btn" onclick="recipient()">添加接收人</button>
  15. </div>
  16. <div class="screen layui-collapse" lay-filter="selection_panel">
  17. <div class="layui-colla-item">
  18. <form class="layui-colla-content layui-form layui-show">
  19. <div class="layui-form-item">
  20. <div class="layui-inline">
  21. <label class="layui-form-label">账号</label>
  22. <div class="layui-input-inline">
  23. <select name="search_text_type">
  24. <option value="nickname">昵称</option>
  25. <option value="mobile">手机号</option>
  26. </select>
  27. </div>
  28. <div class="layui-input-inline">
  29. <input type="text" name="search_text" placeholder="昵称/手机号" autocomplete="off" class="layui-input ">
  30. </div>
  31. </div>
  32. </div>
  33. <div class="form-row">
  34. <button class="layui-btn" lay-submit lay-filter="search">筛选</button>
  35. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  36. </div>
  37. </form>
  38. </div>
  39. </div>
  40. <!-- 列表 -->
  41. <table id="member_list" lay-filter="member_list"></table>
  42. <!-- 手机号 -->
  43. <script type="text/html" id="mobile">
  44. <div class='table-title'>
  45. {{# if(d.mobile){ }}
  46. <span>{{ d.mobile }}</span>
  47. {{# }else{ }}
  48. <span style="color: red;">未绑定(不能接收短信消息)</span>
  49. {{# } }}
  50. </div>
  51. </script>
  52. <!-- 微信公众号 -->
  53. <script type="text/html" id="wx_openid">
  54. <div class='table-title'>
  55. {{# if(d.wx_openid != ''){ }}
  56. <span style="color: green;">已绑定</span>
  57. {{# }else{ }}
  58. <span style="color: red;">未绑定(不能接收微信公众号消息)</span>
  59. {{# } }}
  60. </div>
  61. </script>
  62. <!-- 工具栏操作 -->
  63. <script type="text/html" id="operation">
  64. <div class="table-btn">
  65. <a class="operation text-color" lay-event="edit">编辑</a>
  66. <a class="operation text-color" lay-event="delete">删除</a>
  67. </div>
  68. </script>
  69. <script type="text/html" id="addInfo">
  70. <div class="layui-form" lay-filter="save">
  71. <input name="id" value="{{d.id?d.id:''}}" type="hidden" />
  72. <div class="layui-form-item">
  73. <label class="layui-form-label"><span class="required">*</span>昵称:</label>
  74. <div class="layui-input-block">
  75. <input type="text" class="nickname layui-input" lay-verify="required" required name="nickname" placeholder="请输入昵称" value="{{d.nickname?d.nickname:''}}">
  76. </div>
  77. </div>
  78. <div class="layui-form-item">
  79. <label class="layui-form-label"><span class="required">*</span>手机号:</label>
  80. <div class="layui-input-block">
  81. <input type="text" class="layui-input" name="mobile" lay-verify="mobile" placeholder="请输入手机号" maxlength="11" value="{{d.mobile?d.mobile:''}}"/>
  82. </div>
  83. </div>
  84. {{# if(!d.wx_openid){ }}
  85. <div class="layui-form-item">
  86. <label class="layui-form-label">授权二维码:</label>
  87. <div class="layui-input-block" id="account_qrcode">
  88. <img layer-src class="border-color bind-qrcode"/>
  89. <span class="tip text-color-tip">如需使用微信通知请扫描二维码</span>
  90. </div>
  91. </div>
  92. {{# } }}
  93. <div class="layui-form-item">
  94. <label class="layui-form-label">微信openld:</label>
  95. <div class="layui-input-block">
  96. {{# if(!d.wx_openid){ }}
  97. <input type="text" class="openid layui-input" disabled="disabled" placeholder="扫描上方二维码自动填充" name="wx_openid"/>
  98. {{# }else{ }}
  99. <input type="text" class="openid layui-input" disabled="disabled" name="wx_openid" value="{{d.wx_openid}}">
  100. {{# } }}
  101. </div>
  102. </div>
  103. <button id="addaccount" class="layui-btn" lay-submit lay-filter="addaccount" style="display: none;">确定</button>
  104. <button id="editaccount" class="layui-btn" lay-submit lay-filter="editaccount" style="display: none;">确定</button>
  105. </div>
  106. </script>
  107. {/block}
  108. {block name="script"}
  109. <script type="text/javascript">
  110. var table, form, laytpl, bindKey = '', repeat_flag = false, timer;
  111. layui.use(['form', 'laytpl'], function() {
  112. form = layui.form;
  113. laytpl = layui.laytpl;
  114. form.render();
  115. /**
  116. * 加载表格
  117. */
  118. table = new Table({
  119. elem: '#member_list',
  120. url: ns.url("shop/Shopacceptmessage/lists"),
  121. cols: [
  122. [
  123. {
  124. field: 'nickname',
  125. title: '昵称',
  126. width: '25%',
  127. unresize: 'false',
  128. }, {
  129. title: '手机号',
  130. unresize: 'false',
  131. templet: "#mobile"
  132. }, {
  133. title: '微信openid',
  134. unresize: 'false',
  135. templet: "#wx_openid"
  136. }, {
  137. title: '操作',
  138. unresize: 'false',
  139. toolbar: '#operation',
  140. align:'right'
  141. }
  142. ]
  143. ]
  144. });
  145. /**
  146. * 监听工具栏操作
  147. */
  148. table.tool(function(obj) {
  149. var data = obj.data;
  150. switch (obj.event) {
  151. case 'delete': //删除
  152. delMember(data.id);
  153. break;
  154. case 'edit': //编辑
  155. editNotifier(data);
  156. break;
  157. }
  158. });
  159. /**
  160. * 删除
  161. */
  162. function delMember(id) {
  163. if (repeat_flag) return false;
  164. repeat_flag = true;
  165. layer.confirm('确定要删除吗!', function() {
  166. $.ajax({
  167. url: ns.url("shop/shopacceptmessage/delete"),
  168. data: {id:id},
  169. dataType: 'JSON',
  170. type: 'POST',
  171. success: function(res) {
  172. layer.msg(res.message);
  173. repeat_flag = false;
  174. if (res.code == 0) {
  175. table.reload();
  176. }
  177. }
  178. });
  179. }, function () {
  180. layer.close();
  181. repeat_flag = false;
  182. });
  183. }
  184. /**
  185. * 搜索功能
  186. */
  187. form.on('submit(search)', function(data) {
  188. table.reload({
  189. page: {
  190. curr: 1
  191. },
  192. where: data.field
  193. });
  194. return false;
  195. });
  196. form.on('submit(addaccount)', function(data) {
  197. $.ajax({
  198. type: "POST",
  199. url: ns.url("shop/shopacceptmessage/add"),
  200. data: data.field,
  201. dataType: 'JSON',
  202. success: function(res) {
  203. layer.msg(res.message);
  204. repeat_flag = false;
  205. if (res.code >= 0) {
  206. layer.closeAll();
  207. table.reload({
  208. url: ns.url("shop/shopacceptmessage/lists")
  209. });
  210. }
  211. }
  212. });
  213. });
  214. form.on('submit(editaccount)', function(data) {
  215. $.ajax({
  216. type: "POST",
  217. url: ns.url("shop/shopacceptmessage/edit"),
  218. data: data.field,
  219. dataType: 'JSON',
  220. success: function(res) {
  221. layer.msg(res.message);
  222. repeat_flag = false;
  223. if (res.code >= 0) {
  224. layer.closeAll();
  225. table.reload();
  226. }
  227. }
  228. });
  229. });
  230. form.verify({
  231. mobile: function (value,item) {
  232. if(!$("input[name='mobile']").val()) {
  233. return "请输入手机号";
  234. }else if(!ns.parse_mobile(value)){
  235. return "请输入正确的手机号";
  236. }
  237. },
  238. });
  239. });
  240. //获取绑定二维码
  241. function getQrcode(){
  242. $.ajax({
  243. type: 'post',
  244. dataType: 'json',
  245. url: ns.url("shop/shopacceptmessage/createbindqrcode"),
  246. success: function (res) {
  247. if (res.code >= 0) {
  248. bindKey = res.data.key;
  249. timer = setInterval(getBindData, 1000);
  250. $('.bind-qrcode').attr('src', ns.img(res.data.path));
  251. loadImgMagnify();
  252. } else {
  253. layer.msg(res.message);
  254. }
  255. }
  256. })
  257. }
  258. function getBindData(){
  259. $.ajax({
  260. type: 'post',
  261. dataType: 'json',
  262. url: ns.url("shop/shopacceptmessage/getbinddata"),
  263. data: {
  264. key: bindKey
  265. },
  266. success: function (res) {
  267. if (res.code >= 0) {
  268. $('.openid').val(res.data.openid);
  269. $('.nickname').val(res.data.nickname);
  270. clearInterval(timer);
  271. bindKey = '';
  272. }
  273. }
  274. })
  275. }
  276. function recipient(data = {}){
  277. getQrcode();
  278. var content = $("#addInfo").html();
  279. laytpl(content).render(data, function(html) {
  280. layer.open({
  281. type: 1,
  282. area: '500px',
  283. title: '添加卖家接收人',
  284. btn: ['确定','取消'],
  285. content: html,
  286. success:function(){
  287. repeat_flag = false;
  288. form.render();
  289. },
  290. yes: function() {
  291. $('#addaccount').click();
  292. form.render();
  293. },
  294. end: function(index, layero){
  295. form.render();
  296. clearInterval(timer);
  297. }
  298. });
  299. form.render();
  300. });
  301. }
  302. //编辑
  303. function editNotifier(data){
  304. var content = $("#addInfo").html();
  305. if (!data.wx_openid) getQrcode();
  306. laytpl(content).render(data, function(html) {
  307. layer.open({
  308. type: 1,
  309. area: '500px',
  310. title: '编辑卖家接收人',
  311. btn: ['确定','取消'],
  312. content: html,
  313. success:function(){
  314. repeat_flag = false;
  315. form.render();
  316. },
  317. yes: function() {
  318. $('#editaccount').click();
  319. },
  320. end: function(index, layero){
  321. form.render();
  322. clearInterval(timer);
  323. }
  324. });
  325. form.render();
  326. });
  327. }
  328. </script>
  329. {/block}