source_index.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. {extend name="public/container"}
  2. {block name="content"}
  3. <div class="layui-fluid">
  4. <div class="layui-row layui-col-space15" id="app">
  5. <div class="layui-col-md12">
  6. <div class="layui-card">
  7. <div class="layui-card-header">
  8. <div style="font-weight: bold;">素材列表</div>
  9. </div>
  10. <div class="layui-card-body">
  11. <div class="layui-row layui-col-space15">
  12. <div class="layui-col-md12">
  13. <form class="layui-form layui-form-pane" action="">
  14. <div class="layui-form-item">
  15. <div class="layui-inline">
  16. <label class="layui-form-label">是否显示</label>
  17. <div class="layui-input-inline">
  18. <select name="is_show">
  19. <option value="">是否显示</option>
  20. <option value="1">显示</option>
  21. <option value="0">不显示</option>
  22. </select>
  23. </div>
  24. </div>
  25. <div class="layui-inline">
  26. <label class="layui-form-label">素材分类</label>
  27. <div class="layui-input-inline">
  28. <select name="pid" lay-search="">
  29. <option value="">全部</option>
  30. {volist name='category' id='vo'}
  31. <option value="{$vo.id}">{$vo.html}{$vo.title}</option>
  32. {/volist}
  33. </select>
  34. </div>
  35. </div>
  36. <div class="layui-inline">
  37. <label class="layui-form-label">素材名称</label>
  38. <div class="layui-input-inline">
  39. <input type="text" name="title" class="layui-input" placeholder="请输入素材名称">
  40. </div>
  41. </div>
  42. <div class="layui-inline">
  43. <div class="layui-input-inline">
  44. <button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit="search" lay-filter="search">
  45. <i class="layui-icon">&#xe615;</i> 搜索</button>
  46. </div>
  47. </div>
  48. </div>
  49. </form>
  50. </div>
  51. <div class="layui-col-md12">
  52. <div class="layui-btn-group">
  53. <button type="button" class="layui-btn layui-btn-normal layui-btn-sm" data-type="add" onclick="action.open_add('{:Url('admin/special.special_type/addSources')}','新增素材')">
  54. <i class="layui-icon">&#xe608;</i> 添加素材
  55. </button>
  56. <button type="button" class="layui-btn layui-btn-normal layui-btn-sm" data-type="refresh" onclick="window.location.reload()">
  57. <i class="layui-icon">&#xe669;</i> 刷新
  58. </button>
  59. </div>
  60. <table id="List" lay-filter="List"></table>
  61. <script type="text/html" id="image">
  62. <img style="cursor: pointer;" height="50" lay-event='open_image' src="{{d.image}}">
  63. </script>
  64. <script type="text/html" id="is_show">
  65. <input type='checkbox' name='id' lay-skin='switch' value="{{d.id}}" lay-filter='is_show' lay-text='显示|隐藏' {{ d.is_show == 1 ? 'checked' : '' }}>
  66. </script>
  67. <script type="text/html" id="act">
  68. <button type="button" class="layui-btn layui-btn-normal layui-btn-xs" onclick="dropdown(this)">
  69. <i class="layui-icon">&#xe625;</i> 操作
  70. </button>
  71. <ul class="layui-nav-child layui-anim layui-anim-upbit">
  72. <li>
  73. <a href="javascript:;" onclick="action.open_add('{:Url('admin/special.special_type/addSources')}?id={{d.id}}','编辑')" >
  74. <i class="layui-icon">&#xe642;</i> 编辑
  75. </a>
  76. </li>
  77. <li>
  78. <a lay-event='delete' href="javascript:;">
  79. <i class="layui-icon">&#xe640;</i> 删除
  80. </a>
  81. </li>
  82. </ul>
  83. </script>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. </div>
  91. <script src="{__ADMIN_PATH}js/layuiList.js"></script>
  92. {/block}
  93. {block name="script"}
  94. <script>
  95. //实例化form
  96. layList.form.render();
  97. //加载列表
  98. layList.tableList('List',"{:Url('source_list')}",function (){
  99. return [
  100. {field: 'id', title: '编号', align: 'center',width:60},
  101. {field: 'title', title: '素材名称'},
  102. {field: 'types', title: '素材类型',align: 'center'},
  103. {field: 'image', title: '素材封面',templet:'#image',align: 'center',style:'height:auto'},
  104. {field: 'sort', title: '应用次数',align: 'center'},
  105. {field: 'is_show', title: '状态',templet:'#is_show',align: 'center'},
  106. {field: 'right', title: '操作',align:'center',toolbar:'#act'},
  107. ];
  108. });
  109. //下拉框
  110. $(document).click(function (e) {
  111. $('.layui-nav-child').hide();
  112. })
  113. function dropdown(that){
  114. var oEvent = arguments.callee.caller.arguments[0] || event;
  115. oEvent.stopPropagation();
  116. var offset = $(that).offset();
  117. var top=offset.top-$(window).scrollTop();
  118. var index = $(that).parents('tr').data('index');
  119. $('.layui-nav-child').each(function (key) {
  120. if (key != index) {
  121. $(this).hide();
  122. }
  123. })
  124. if($(document).height() < top+$(that).next('ul').height()){
  125. $(that).next('ul').css({
  126. 'padding': 10,
  127. 'top': - ($(that).parent('td').height() / 2 + $(that).height() + $(that).next('ul').height()/2),
  128. 'min-width': 'inherit',
  129. 'position': 'absolute'
  130. }).toggle();
  131. }else{
  132. $(that).next('ul').css({
  133. 'padding': 10,
  134. 'top':$(that).parent('td').height() / 2 + $(that).height(),
  135. 'min-width': 'inherit',
  136. 'position': 'absolute'
  137. }).toggle();
  138. }
  139. }
  140. //自定义方法
  141. var action= {
  142. set_value: function (field, id, value, model_type) {
  143. layList.baseGet(layList.Url({
  144. a: 'set_value',
  145. q: {field: field, id: id, value: value, model_type:model_type}
  146. }), function (res) {
  147. layList.msg(res.msg);
  148. });
  149. },
  150. //打开新添加页面
  151. open_add: function (url,title) {
  152. layer.open({
  153. type: 2 //Page层类型
  154. ,area: ['100%', '100%']
  155. ,title: title
  156. ,shade: 0.6 //遮罩透明度
  157. ,maxmin: true //允许全屏最小化
  158. ,anim: 1 //0-6的动画形式,-1不开启
  159. ,content: url
  160. ,end:function () {
  161. location.reload();
  162. }
  163. });
  164. }
  165. };
  166. //查询
  167. layList.search('search',function(where){
  168. layList.reload(where,true);
  169. });
  170. layList.switch('is_show',function (odj,value) {
  171. var is_show_value = 0
  172. if(odj.elem.checked==true){
  173. is_show_value = 1
  174. }
  175. action.set_value('is_show',value,is_show_value,'task');
  176. });
  177. //快速编辑
  178. layList.edit(function (obj) {
  179. var id=obj.data.id,value=obj.value;
  180. switch (obj.field) {
  181. case 'title':
  182. action.set_value('title',id,value,'task');
  183. break;
  184. case 'sort':
  185. if(value < 0) return layList.msg('排序不能小于0');
  186. action.set_value('sort',id,value,'task');
  187. break;
  188. }
  189. });
  190. //监听并执行排序
  191. layList.sort(['id','sort'],true);
  192. //点击事件绑定
  193. layList.tool(function (event,data,obj) {
  194. switch (event) {
  195. case 'delete':
  196. var url=layList.U({a:'delete',q:{id:data.id, model_type:'task'}});
  197. $eb.$swal('delete',function(){
  198. $eb.axios.get(url).then(function(res){
  199. if(res.status == 200 && res.data.code == 200) {
  200. if(data.videoId){
  201. layList.basePost(layList.U({a: 'video_upload_address_voucher'}),
  202. {
  203. FileName:'',type:4,image:'',videoId:data.videoId
  204. }, function (res) {
  205. var url=res.msg;
  206. $.ajax({
  207. url:url,
  208. data:{},
  209. type:"GET",
  210. dataType:'json',
  211. success:function (data) {
  212. if(data.RequestId){
  213. $eb.$swal('success','删除成功!');
  214. obj.del();
  215. }
  216. },
  217. error:function (err) {
  218. $eb.$swal('error',err['responseJSON'].Message);
  219. obj.del();
  220. }
  221. });
  222. });
  223. }else{
  224. $eb.$swal('success','删除成功!');
  225. obj.del();
  226. }
  227. }else{
  228. return Promise.reject(res.data.msg || '删除失败');
  229. }
  230. }).catch(function(err){
  231. $eb.$swal('error',err);
  232. });
  233. });
  234. break;
  235. case 'open_image':
  236. $eb.openImage(data.image);
  237. break;
  238. }
  239. })
  240. </script>
  241. {/block}