keys.index.html 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. {extend name='extra@admin/content'}
  2. {block name="button"}
  3. <div class="nowrap pull-right" style="margin-top:10px">
  4. <button data-open="{:url('add')}" class='layui-btn layui-btn-small'>添加规则</button>
  5. <button data-update data-field='delete' data-action='{:url("$classuri/del")}'
  6. class='layui-btn layui-btn-small layui-btn-danger'>删除规则
  7. </button>
  8. </div>
  9. {/block}
  10. {block name='content'}
  11. <form onsubmit="return false;" data-auto="true" action="__SELF__" method="post">
  12. {if !empty($list)}
  13. <input type="hidden" value="resort" name="action"/>
  14. <table class="table table-hover">
  15. <thead>
  16. <tr>
  17. <th class='list-table-check-td'>
  18. <input data-none-auto="" data-check-target='.list-check-box' type='checkbox'/>
  19. </th>
  20. <th class='list-table-sort-td'>
  21. <button type="submit" class="layui-btn layui-btn-normal layui-btn-mini">排 序</button>
  22. </th>
  23. <th class="text-left">关键字</th>
  24. <th class="text-center">回复类型</th>
  25. <th class="text-center">回复内容</th>
  26. <th class="text-center">更新时间</th>
  27. <th class="text-center">状态</th>
  28. <th class="text-center">操作</th>
  29. </tr>
  30. </thead>
  31. <tbody>
  32. {foreach $list as $key=>$vo}
  33. <tr>
  34. <td class='list-table-check-td'>
  35. <input class="list-check-box" value='{$vo.id}' type='checkbox'/>
  36. </td>
  37. <td class='list-table-sort-td'>
  38. <input name="_{$vo.id}" value="{$vo.sort}" class="list-sort-input"/>
  39. </td>
  40. <td class="text-left">
  41. {if !empty($vo.qrc)}
  42. <i class="fa fa-qrcode fa-lg pointer" data-tips-image="{$vo.qrc}" data-tips-text="关键字二维码"></i>
  43. {/if}
  44. {$vo.keys}
  45. </td>
  46. <td class="text-center">{$vo.type}</td>
  47. <td class="text-center">
  48. {if $vo.type eq '音乐'}
  49. <a data-phone-view='{:url("@wechat/review")}?type=music&title={$vo.music_title|urlencode}&desc={$vo.music_desc|urlencode}'
  50. class="btn btn-link"><i class="fa fa-eye"></i> 预览
  51. </a>
  52. {elseif $vo.type eq '文字'}
  53. <a data-phone-view='{:url("@wechat/review")}?type=text&content={$vo.content|urlencode}'
  54. class="btn btn-link"><i class="fa fa-eye"></i> 预览
  55. </a>
  56. {elseif $vo.type eq '图片'}
  57. <a data-phone-view='{:url("@wechat/review")}?type=image&content={$vo.image_url|urlencode}'
  58. class="btn btn-link"><i class="fa fa-eye"></i> 预览
  59. </a>
  60. {elseif $vo.type eq '图文'}
  61. <a data-phone-view='{:url("@wechat/review")}?type=news&content={$vo.news_id}'
  62. class="btn btn-link"><i class="fa fa-eye"></i> 预览
  63. </a>
  64. {elseif $vo.type eq '视频'}
  65. <a data-phone-view='{:url("@wechat/review")}?type=video&title={$vo.video_title|urlencode}&desc={$vo.video_desc|urlencode}&url={$vo.video_url|urlencode}'
  66. class="btn btn-link"><i class="fa fa-eye"></i> 预览
  67. </a>
  68. {else}
  69. {$vo.content}
  70. {/if}
  71. </td>
  72. <td class="text-center">{$vo.create_at}</td>
  73. <td class='text-center'>
  74. {if $vo.status eq 0}
  75. <span>已禁用</span>
  76. {elseif $vo.status eq 1}
  77. <span style="color:#090">使用中</span>
  78. {/if}
  79. </td>
  80. <td class='text-center nowrap'>
  81. {if auth("$classuri/edit")}
  82. <span class="text-explode">|</span>
  83. <a data-open='{:url("edit")}?id={$vo.id}'>编辑</a>
  84. {/if}
  85. {if $vo.status eq 1 and auth("$classuri/forbid")}
  86. <span class="text-explode">|</span>
  87. <a data-update="{$vo.id}" data-field='status' data-value='0' data-action='{:url("$classuri/forbid")}'
  88. href="javascript:void(0)">禁用</a>
  89. {elseif auth("$classuri/resume")}
  90. <span class="text-explode">|</span>
  91. <a data-update="{$vo.id}" data-field='status' data-value='1' data-action='{:url("$classuri/resume")}'
  92. href="javascript:void(0)">启用</a>
  93. {/if}
  94. {if auth("$classuri/del")}
  95. <span class="text-explode">|</span>
  96. <a data-update="{$vo.id}" data-field='delete' data-action='{:url("del")}'
  97. href="javascript:void(0)">删除</a>
  98. {/if}
  99. </td>
  100. </tr>
  101. {/foreach}
  102. </tbody>
  103. </table>
  104. {if isset($page)}<p>{$page}</p>{/if}
  105. {else}
  106. <p class="help-block">暂时无记录</p>
  107. {/if}
  108. </form>
  109. {/block}
  110. {block name="script"}
  111. <script>
  112. $(function () {
  113. /**
  114. * 默认类型事件
  115. * @type String
  116. */
  117. $('body').off('change', 'select[name=type]').on('change', 'select[name=type]', function () {
  118. var value = $(this).val(), $form = $(this).parents('form');
  119. var $current = $form.find('[data-keys-type="' + value + '"]').removeClass('hide');
  120. $form.find('[data-keys-type]').not($current).addClass('hide');
  121. switch (value) {
  122. case 'news':
  123. return $('[name="news_id"]').trigger('change');
  124. case 'text':
  125. return $('[name="content"]').trigger('change');
  126. case 'image':
  127. return $('[name="image_url"]').trigger('change');
  128. case 'video':
  129. return $('[name="video_url"]').trigger('change');
  130. case 'music':
  131. return $('[name="music_url"]').trigger('change');
  132. case 'voice':
  133. return $('[name="voice_url"]').trigger('change');
  134. }
  135. });
  136. function showReview(params) {
  137. params = params || {};
  138. $('#phone-preview').attr('src', '{"@wechat/review"|app_url}&' + $.param(params));
  139. }
  140. // 图文显示预览
  141. $('body').off('change', '[name="news_id"]').on('change', '[name="news_id"]', function () {
  142. showReview({type: 'news', content: this.value});
  143. });
  144. // 文字显示预览
  145. $('body').off('change', '[name="content"]').on('change', '[name="content"]', function () {
  146. showReview({type: 'text', content: this.value});
  147. });
  148. // 图片显示预览
  149. $('body').off('change', '[name="image_url"]').on('change', '[name="image_url"]', function () {
  150. showReview({type: 'image', content: this.value});
  151. });
  152. // 音乐显示预览
  153. var musicSelector = '[name="music_url"],[name="music_title"],[name="music_desc"],[name="music_image"]';
  154. $('body').off('change', musicSelector).on('change', musicSelector, function () {
  155. var params = {type: 'music'}, $parent = $(this).parents('form');
  156. params.title = $parent.find('[name="music_title"]').val();
  157. params.url = $parent.find('[name="music_url"]').val();
  158. params.image = $parent.find('[name="music_image"]').val();
  159. params.desc = $parent.find('[name="music_desc"]').val();
  160. showReview(params);
  161. });
  162. // 视频显示预览
  163. var videoSelector = '[name="video_title"],[name="video_url"],[name="video_desc"]';
  164. $('body').off('change', videoSelector).on('change', videoSelector, function () {
  165. var params = {type: 'video'}, $parent = $(this).parents('form');
  166. params.title = $parent.find('[name="video_title"]').val();
  167. params.url = $parent.find('[name="video_url"]').val();
  168. params.desc = $parent.find('[name="video_desc"]').val();
  169. showReview(params);
  170. });
  171. // 默认事件触发
  172. $('select[name=type]').map(function () {
  173. $(this).trigger('change');
  174. });
  175. /*! 删除关键字 */
  176. $('[data-delete]').on('click', function () {
  177. var id = this.getAttribute('data-delete');
  178. var url = this.getAttribute('data-action');
  179. $.msg.confirm('确定要删除这条记录吗?', function () {
  180. $.form.load(url, {id: id}, 'POST', function (ret) {
  181. if (ret.code === "SUCCESS") {
  182. window.location.reload();
  183. }
  184. });
  185. })
  186. });
  187. });
  188. </script>
  189. {/block}