index.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725
  1. {extend name="app/shop/view/base.html"/}
  2. {block name="resources"}
  3. <style>
  4. .account-value, .split{line-height: 34px;}
  5. .account-value span{font-size: 24px;}
  6. .layui-input-block + .layui-word-aux{display: block;margin-left: 100px;}
  7. .shop-detail{display: flex;flex-wrap: wrap;width: 940px;}
  8. .shop-detail p{display: inline-block;width: 300px;line-height: 30px;}
  9. .shop-detail p:last-of-type{width: auto;max-width: 430px;}
  10. .card-common{margin-top: 0;}
  11. .card-common .layui-card-body{padding: 0 30px;}
  12. .cut{color: #fd852d;cursor: pointer;}
  13. .cut:hover{color: #fd852d;}
  14. .cut:active{color: #fd852d;}
  15. .tel-class{width: 200px;height: 30px;border: 1px solid #ccc;border-radius: 5px;padding-left: 5px;}
  16. .code-class{width:100px}
  17. .code-last{font-size: 12px;display: inline-block;margin-left: 10px;color: #fd852d;cursor: pointer;width: 90px;border: 0px}
  18. .table-tab .layui-tab-title{margin-bottom: 15px;}
  19. .single-filter-box{padding-top: 0;}
  20. </style>
  21. {/block}
  22. {block name="main"}
  23. <div class="tips-wrap layui-collapse">
  24. <div class="layui-colla-item">
  25. <h2 class="layui-colla-title">操作提示</h2>
  26. <ul class="layui-colla-content layui-show">
  27. <li>设置短信签名、开启模板消息需要审核。</li>
  28. <li>审核时间:周一至周日9:30-22:00(法定节假日顺延),工作日预计2小时,非工作日预计4小时。</li>
  29. <li>短信数量不足时,请进行短信充值;如有疑问,请联系客服,客服电话:400-886-7993。</li>
  30. </ul>
  31. </div>
  32. </div>
  33. <div class="layui-card card-common card-brief">
  34. <div class="layui-card-header">
  35. <div>
  36. <span class="card-title">短信信息</span>
  37. </div>
  38. </div>
  39. <div class="layui-card-body">
  40. <div class="shop-detail">
  41. <p>
  42. <strong>用户名:</strong><span>{$account_info.username}</span>
  43. <a class="cut" onclick="location.href=ns.url('niusms://shop/sms/login')">切换账户</a>
  44. </p>
  45. <p><strong>公司名称:</strong><span>{$account_info.company}</span></p>
  46. <p><strong>账户状态:</strong><span>{if $account_info.status == 0}正常{elseif $account_info.status == 1}禁用{/if}</span>
  47. </p>
  48. <p><strong>手机号:</strong><span>{$account_info.mobiles}</span>
  49. <span class="cut" onclick="updateTel()">&nbsp;&nbsp;更换手机号</span>
  50. </p>
  51. <p><strong>签名:</strong>
  52. {notempty name="$sms_config.value.signature"}
  53. <span>{$sms_config.value.signature}</span>
  54. {else/}
  55. <span>暂无</span>
  56. {/notempty}
  57. {if $signature_status.auditResult == 1}
  58. <span>待审核</span>
  59. {elseif $signature_status.auditResult == 3 /}
  60. <span>审核失败 <span style="color:red;">(失败原因:{$signature_status.auditMsg})</span></span>
  61. {/if}
  62. {notempty name="$sms_config.value.signature"}
  63. <a class="cut" onclick="addChildSignature('{$sms_config.value.signature}')">更换签名</a>
  64. {else/}
  65. <a class="cut" onclick="addChildSignature('')">签名设置</a>
  66. {/notempty}
  67. </p>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="layui-card card-common card-brief">
  72. <div class="layui-card-header">
  73. <div>
  74. <span class="card-title">短信权限</span>
  75. </div>
  76. </div>
  77. <div class="layui-card-body layui-form">
  78. <div class="layui-form-item">
  79. <label class="layui-form-label sm">是否开启:</label>
  80. <div class="layui-input-block">
  81. <input type="checkbox" name="is_use" value="1" lay-skin="switch" lay-filter="is_use" {if $sms_config['is_use']}checked{/if}>
  82. </div>
  83. <div class="word-aux sm">是否开启牛云短信模版</div>
  84. </div>
  85. </div>
  86. </div>
  87. <div class="layui-card card-common card-brief">
  88. <div class="layui-card-header">
  89. <div>
  90. <span class="card-title">短信条数</span>
  91. </div>
  92. </div>
  93. <div class="layui-card-body layui-form">
  94. <div class="layui-form-item">
  95. <label class="layui-form-label sm">短信:</label>
  96. <div class="layui-input-inline len-short account-value"><span class="text-color">{$account_info.balance}</span>
  97. </div>
  98. <button class="layui-btn layui-btn-primary" onclick="location.href=ns.url('niusms://shop/sms/index',{buy : 1})" data-num="point}">短信充值
  99. </button>
  100. </div>
  101. </div>
  102. </div>
  103. <div class="layui-tab table-tab" lay-filter="store_tab">
  104. <ul class="layui-tab-title">
  105. <li class="layui-this" lay-id="">短信模版</li>
  106. <li lay-id="0">充值记录</li>
  107. <li lay-id="1">发送记录</li>
  108. </ul>
  109. <div class="layui-tab-content">
  110. <div class="layui-tab-item layui-show">
  111. <table id="sms_template_list" lay-filter="sms_template_list"></table>
  112. </div>
  113. <div class="layui-tab-item">
  114. <table id="recharge_sms_list" lay-filter="recharge_sms_list"></table>
  115. </div>
  116. <div class="layui-tab-item">
  117. <div class="single-filter-box">
  118. <div class="layui-form">
  119. <div class="layui-input-inline">
  120. <label class="layui-form-label">发送状态:</label>
  121. <div class="layui-input-inline">
  122. <select name="status">
  123. <option value="all">全部</option>
  124. <option value="1">待发送</option>
  125. <option value="2">发送成功</option>
  126. <option value="-1">发送失败</option>
  127. </select>
  128. </div>
  129. <div class="layui-input-inline">
  130. <input type="text" name="search_text" placeholder="请输入短信标题" autocomplete="off" class="layui-input">
  131. <button type="button" class="layui-btn layui-btn-primary" lay-filter="search" lay-submit><i class="layui-icon">&#xe615;</i>
  132. </button>
  133. </div>
  134. </div>
  135. </div>
  136. </div>
  137. <table id="sms_list" lay-filter="sms_list"></table>
  138. </div>
  139. </div>
  140. </div>
  141. <!--操作-->
  142. <script type="text/html" id="operation">
  143. <div class="table-btn">
  144. <a class="layui-btn" lay-event="examine">查看</a>
  145. {{# if(d.status == 1){ }}
  146. <a class="layui-btn" lay-event="close">关闭</a>
  147. {{# }else{ }}
  148. <a class="layui-btn" lay-event="open">开启</a>
  149. {{# } }}
  150. </div>
  151. </script>
  152. <!--<script type="text/html" id="sms_template_info">-->
  153. <!-- <div class="layui-form">-->
  154. <!-- <div class="layui-form-item">-->
  155. <!-- <label class="layui-form-label">模板变量json:</label>-->
  156. <!-- <div class="layui-input-inline">{{d.param_json}}</div>-->
  157. <!-- </div>-->
  158. <!-- </div>-->
  159. <!--</script>-->
  160. {/block}
  161. {block name="script"}
  162. <!-- 操作 -->
  163. <script type="text/html" id="grantOperation">
  164. <div class="table-btn">
  165. <a class="layui-btn" lay-event="detail">详情</a>
  166. </div>
  167. </script>
  168. <!-- 更换手机号 -->
  169. <script type="text/html" id="set_tel">
  170. <div class="layui-form member-form" id="reset_label" lay-filter="form">
  171. <div class="layui-form-item">
  172. <label class="layui-form-label sm">手机号:</label>
  173. <div class="layui-input-block">
  174. <input type="text" class="tel-class" name="tel"/>
  175. <input type="hidden" name="username_to" value="{$account_info.username}">
  176. </div>
  177. </div>
  178. <div class="form-row sm">
  179. <button class="layui-btn" lay-submit lay-filter="setlabel">确定</button>
  180. <button class="layui-btn layui-btn-primary" onclick="closeLabel()">返回</button>
  181. </div>
  182. </div>
  183. </script>
  184. <!-- 验证码效验 -->
  185. <script type="text/html" id="code_tel">
  186. <div class="layui-form member-form" lay-filter="form">
  187. <div class="layui-form-item">
  188. <label class="layui-form-label sm">动态码:</label>
  189. <div class="layui-input-block">
  190. <input type="text" class="tel-class code-class" name="code" placeholder="请输入动态码"/>
  191. <input class="register-message-font code-last"onclick="getCode()" value="获取动态码" readonly />
  192. <input type="hidden" id="code_mobile" name="code_mobile" value="{$account_info.mobiles}">
  193. <input type="hidden" name="key" value="" id="key">
  194. </div>
  195. </div>
  196. <div class="form-row sm">
  197. <button class="layui-btn" lay-submit lay-filter="setCode">确定</button>
  198. <button class="layui-btn layui-btn-primary" onclick="closeCodeLabel()">返回</button>
  199. </div>
  200. </div>
  201. </script>
  202. <script>
  203. var form, laytpl, table,
  204. repeat_flag = false, //防重复标识
  205. layer_label,
  206. code_label,
  207. count = 60,
  208. curCount,
  209. interValObj;
  210. layui.use(['form', 'laytpl'], function () {
  211. form = layui.form;
  212. laytpl = layui.laytpl;
  213. form.render();
  214. form.on('switch(is_use)', function (data) {
  215. $.ajax({
  216. url: ns.url("niusms://shop/sms/modifyConfigIsUse"),
  217. data: {is_use: data.elem.checked ? 1 : 0},
  218. dataType: 'JSON',
  219. type: 'POST',
  220. success: function (res) {
  221. layer.msg(res.message);
  222. }
  223. });
  224. });
  225. /**
  226. * 加载表格
  227. */
  228. table = new Table({
  229. elem: '#sms_template_list',
  230. url: ns.url("niusms://shop/sms/getSmsTemplatePageList"),
  231. cols: [
  232. [
  233. // {
  234. // width: "3%",
  235. // type: 'checkbox',
  236. // unresize: 'false'
  237. // },
  238. {
  239. field: 'tem_id',
  240. title: '模板ID',
  241. width: '7%',
  242. unresize: 'false'
  243. }, {
  244. field: 'template_name',
  245. title: '模板名称',
  246. width: '13%',
  247. unresize: 'false'
  248. }, {
  249. title: '模板类型',
  250. width: '8%',
  251. unresize: 'false',
  252. templet: function (data) {
  253. if (data.template_type == 1) return '验证码';
  254. else if (data.template_type == 2) return '行业通知';
  255. else if (data.template_type == 3) return '营销推广';
  256. }
  257. }, {
  258. field: 'template_content',
  259. title: '模板内容',
  260. width: '46%',
  261. unresize: 'false'
  262. }, {
  263. field: 'status',
  264. title: '开关状态',
  265. width: '8%',
  266. unresize: 'false',
  267. templet: function (data) {
  268. if (data.status == 1) return '启用';
  269. else if (data.status == 0) return '关闭';
  270. }
  271. }, {
  272. field: 'audit_status_name',
  273. title: '审核状态',
  274. width: '9%',
  275. unresize: 'false',
  276. templet: function (data) {
  277. var html = '';
  278. if (data.audit_status != 0 && data.audit_status != 2) html += "<span style='color: red;'>" + data.audit_status_name + "</span>";
  279. else html += data.audit_status_name;
  280. return html;
  281. }
  282. }, {
  283. title: '操作',
  284. toolbar: '#operation',
  285. align:'right'
  286. }]
  287. ],
  288. // bottomToolbar: "#batchOperation"
  289. });
  290. /**
  291. * 监听工具栏操作商家拒绝退款
  292. */
  293. table.tool(function (obj) {
  294. var data = obj.data,
  295. event = obj.event;
  296. switch (obj.event) {
  297. // case 'select':
  298. // var html = $("#sms_template_info").html();
  299. // laytpl(html).render(data, function (html) {
  300. // layerIndex = layer.open({
  301. // title: '短信模板详情',
  302. // skin: 'layer-tips-class',
  303. // type: 1,
  304. // area: ['650px'],
  305. // content: html,
  306. // success: function () {
  307. // form.render();
  308. // }
  309. // });
  310. // });
  311. // break;
  312. case 'examine':
  313. var url = ns.url("niusms://shop/message/edit", {"keywords": data.keywords});
  314. window.open(url);
  315. break;
  316. case 'open':
  317. enableTemplate(data.template_id, 1);
  318. break;
  319. case 'close':
  320. enableTemplate(data.template_id, 0);
  321. break;
  322. }
  323. });
  324. // // 批量操作
  325. // table.bottomToolbar(function (obj) {
  326. //
  327. // if (obj.data.length < 1) {
  328. // layer.msg('请选择要操作的数据');
  329. // return;
  330. // }
  331. // var id_array = new Array();
  332. // for (i in obj.data) id_array.push(obj.data[i].template_id);
  333. // switch (obj.event) {
  334. // case "batch_open":
  335. // //批量开启
  336. // for (var i = 0; i < id_array.length; i++) {
  337. // enableTemplate(id_array[i],1);
  338. // }
  339. // break;
  340. // case 'batch_close':
  341. // //批量关闭
  342. // enableTemplate(id_array.toString(),0);
  343. // break;
  344. // case 'batch_check':
  345. // //批量审核
  346. // layer.open({
  347. // title: "批量设置",
  348. // type: 1,
  349. // area: ['700px', '600px'],
  350. // content: $('#batchSet').html(),
  351. // success: function(){
  352. // form.render();
  353. // }
  354. // })
  355. // break;
  356. // }
  357. // });
  358. /* 发送记录 */
  359. grantTable = new Table({
  360. elem: '#sms_list',
  361. url: ns.url("shop/message/smsRecords"),
  362. cols: [
  363. [{
  364. field: 'keywords_name',
  365. title: '标题',
  366. width: '20%',
  367. unresize: 'false'
  368. }, {
  369. field: 'account',
  370. title: '接收人账号',
  371. width: '12%',
  372. unresize: 'false'
  373. }, {
  374. field: 'create_time',
  375. title: '创建时间',
  376. width: '15%',
  377. unresize: 'false',
  378. templet: function (data) {
  379. return ns.time_to_date(data.create_time);
  380. }
  381. }, {
  382. field: 'send_time',
  383. title: '发送时间',
  384. width: '15%',
  385. unresize: 'false',
  386. templet: function (data) {
  387. return ns.time_to_date(data.send_time);
  388. }
  389. }, {
  390. title: '发送状态',
  391. width: '18%',
  392. unresize: 'false',
  393. templet: '#grantStatus'
  394. }, {
  395. title: '操作',
  396. width: '20%',
  397. unresize: 'false',
  398. templet: '#grantOperation',
  399. align:'right'
  400. }]
  401. ]
  402. });
  403. grantTable.tool(function (obj) {
  404. if (obj.event == "detail") {
  405. var detailHtml = $("#smsDetail").html();
  406. laytpl(detailHtml).render(obj.data, function (html) {
  407. layer.open({
  408. type: 1,
  409. title: '通知详情',
  410. area: ['550px'],
  411. content: html
  412. });
  413. })
  414. }
  415. });
  416. /**
  417. * 搜索功能
  418. */
  419. form.on('submit(search)', function (data) {
  420. table.reload({
  421. page: {
  422. curr: 1
  423. },
  424. where: data.field
  425. });
  426. });
  427. form.on('submit(setlabel)', function(data) {
  428. if(data.field.tel == ""){
  429. layer.msg('请输入手机号');
  430. return ;
  431. }
  432. if (!ns.parse_mobile(data.field.tel)) {
  433. layer.msg('请输入正确的手机号码!');
  434. return;
  435. }
  436. $.ajax({
  437. type: "POST",
  438. url: ns.url("niusms://shop/sms/updateNiusmsTel"),
  439. data: {
  440. tel : data.field.tel,
  441. username : data.field.username_to
  442. },
  443. dataType: 'JSON',
  444. success: function(res) {
  445. layer.msg(res.message);
  446. layer.close(layer_label);
  447. layer.close(code_label);
  448. location.reload();
  449. }
  450. });
  451. });
  452. form.on('submit(setCode)', function(data) {
  453. if (data.field.code == ""){
  454. layer.msg("请输入动态码");
  455. return;
  456. }
  457. $.ajax({
  458. type: "POST",
  459. url: ns.url("niusms://shop/sms/codeValidate"),
  460. data: {
  461. code : data.field.code,
  462. code_mobile : data.field.code_mobile,
  463. key : data.field.key
  464. },
  465. dataType: 'JSON',
  466. success: function(res) {
  467. layer.close(code_label);
  468. if(res == 1){
  469. layer_label = layer.open({
  470. title: '更换手机号',
  471. skin: 'layer-tips-class',
  472. type: 1,
  473. area: ['450px'],
  474. content: $("#set_tel").html(),
  475. });
  476. }else{
  477. layer.msg("动态码不正确");
  478. }
  479. }
  480. });
  481. });
  482. /* 充值记录 */
  483. rechargeTable = new Table({
  484. elem: '#recharge_sms_list',
  485. url: ns.url("niusms://shop/sms/getSmsOrderList"),
  486. cols: [
  487. [{
  488. field: 'order_no',
  489. title: '订单编号',
  490. width: '20%',
  491. unresize: 'false'
  492. }, {
  493. field: 'package_name',
  494. title: '短信套餐',
  495. width: '15%',
  496. unresize: 'false'
  497. }, {
  498. field: 'sms_num',
  499. title: '短信条数',
  500. width: '10%',
  501. unresize: 'false'
  502. }, {
  503. field: 'create_time',
  504. title: '订单总价',
  505. width: '15%',
  506. unresize: 'false',
  507. templet: function (data) {
  508. var value = data.order_money;
  509. return value;
  510. }
  511. }, {
  512. field: 'pay_money',
  513. title: '实付金额',
  514. width: '10%',
  515. unresize: 'false'
  516. }, {
  517. title: '订单状态',
  518. width: '10%',
  519. unresize: 'false',
  520. templet: function (data) {
  521. var start = data.order_status == 0 ? '待支付' : data.order_status == 1 ? '已支付' : '已关闭';
  522. return start;
  523. }
  524. }, {
  525. title: '付款时间',
  526. width: '18%',
  527. unresize: 'false',
  528. templet: function (res) {
  529. return ns.time_to_date(res.create_time);
  530. }
  531. }]
  532. ]
  533. });
  534. });
  535. function enableTemplate(template_id, status) {
  536. $.ajax({
  537. url: ns.url("niusms://shop/template/enableTemplate"),
  538. data: {template_id: template_id, status: status},
  539. dataType: 'JSON',
  540. type: 'POST',
  541. success: function (res) {
  542. if (res.code >= 0) {
  543. location.reload();
  544. }
  545. layer.msg(res.message);
  546. }
  547. });
  548. }
  549. function addChildSignature(signature) {
  550. var url = ns.url("niusms://shop/sms/signlist");
  551. //iframe层-父子操作
  552. var layerIndex = layer.open({
  553. title: "签名管理",
  554. type: 2,
  555. area: ['1200px', '800px'],
  556. // btn: '保存',
  557. content: url,
  558. end: function () {
  559. location.reload();
  560. }
  561. });
  562. // signature = signature.replace("【","").replace("】","");
  563. // layer.prompt({
  564. // formType: 2,
  565. // title: '请输入短信签名',
  566. // value: signature,
  567. // }, function(value, index, elem){
  568. // $.ajax({
  569. // url: ns.url("niusms://shop/sms/addChildSignature"),
  570. // data: {signature: value},
  571. // dataType: 'JSON',
  572. // type: 'POST',
  573. // success: function (res) {
  574. // var successList = res.data.successList;
  575. // var failList = res.data.failList;
  576. // if(successList.length){
  577. // layer.msg(successList[0].msg);
  578. // }else if(failList.length){
  579. // layer.msg(failList[0].msg);
  580. // }
  581. // }
  582. // });
  583. // layer.close(index);
  584. // });
  585. }
  586. function updateTel(){
  587. code_label = layer.open({
  588. title: "获取动态码",
  589. skin: 'layer-tips-class',
  590. type: 1,
  591. area: ['450px'],
  592. content: $("#code_tel").html(),
  593. });
  594. }
  595. function getCode(){
  596. var mobile = $("#code_mobile").val();
  597. $.ajax({
  598. url: ns.url("niusms://shop/sms/getMobleCode"),
  599. data: {mobile: mobile},
  600. dataType: 'JSON',
  601. type: 'POST',
  602. success: function (res) {
  603. layer.msg(res.message);
  604. if(res['code'] >= 0){
  605. curCount = count;
  606. $(".code-last").attr("disabled", true);
  607. $(".code-last").val(curCount + "秒后重新获取");
  608. interValObj = setInterval(setRemainTime, 1000); // 启动计时器timer处理函数,1秒执行一次
  609. $("#key").val(res['key']);
  610. }
  611. }
  612. });
  613. }
  614. function closeCodeLabel(){
  615. // curCount = 0;
  616. layer.close(code_label);
  617. }
  618. function closeLabel() {
  619. layer.close(layer_label);
  620. }
  621. //timer处理函数
  622. function setRemainTime() {
  623. if (curCount == 0) { // 超时重新获取验证码
  624. window.clearInterval(interValObj);// 停止计时器
  625. $(".code-last").attr("disabled", false);
  626. $(".code-last").val("获取验证码");
  627. }else {
  628. curCount--;
  629. $(".code-last").attr("disabled", true);
  630. $(".code-last").val(curCount + "秒后重新获取");
  631. }
  632. }
  633. </script>
  634. <script type="text/html" id="smsDetail">
  635. <table class="layui-table">
  636. <colgroup>
  637. <col width="20%">
  638. <col width="80%">
  639. </colgroup>
  640. <tbody>
  641. <tr>
  642. <td>接收账号</td>
  643. <td colspan="3">{{d.account}}</td>
  644. </tr>
  645. <tr>
  646. <td>通知名称</td>
  647. <td colspan="3">{{d.keywords_name}}</td>
  648. </tr>
  649. <tr>
  650. <td>创建时间</td>
  651. <td colspan="3">{{ns.time_to_date(d.create_time)}}</td>
  652. </tr>
  653. <tr>
  654. <td>发送时间</td>
  655. <td colspan="3">{{ns.time_to_date(d.send_time)}}</td>
  656. </tr>
  657. <tr>
  658. <td>状态</td>
  659. <td>{{# if(d.status == 0){ }}发送中
  660. {{# }else if(d.status == 1){ }}发送成功
  661. {{# }else{ }}发送失败
  662. {{# } }}
  663. </td>
  664. </tr>
  665. <tr>
  666. <td>通知内容</td>
  667. <td colspan="3">{{d.content}}</td>
  668. </tr>
  669. <tr>
  670. <td>返回结果</td>
  671. <td colspan="3">{{d.result}}</td>
  672. </tr>
  673. </tbody>
  674. </table>
  675. </script>
  676. <!-- 批量操作 -->
  677. <!--<script type="text/html" id="batchOperation">-->
  678. <!--<button class="layui-btn layui-btn-primary" lay-event="batch_open">批量开启</button>-->
  679. <!--<button class="layui-btn layui-btn-primary" lay-event="batch_close">批量关闭</button>-->
  680. <!--</script>-->
  681. <!-- 状态 -->
  682. <script type="text/html" id="grantStatus">
  683. {{# if(d.status == 0){ }}
  684. <span>待发送</span>
  685. {{# }else if(d.status == 1){ }}
  686. <span>发送成功</span>
  687. {{# }else{ }}
  688. <span>发送失败</span>
  689. {{# } }}
  690. </script>
  691. {/block}