material.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend: {
  7. index_url: 'ad/material/index',
  8. add_url: 'ad/material/add',
  9. edit_url: 'ad/material/edit',
  10. del_url: 'ad/material/del',
  11. multi_url: 'ad/material/multi',
  12. import_url: 'ad/material/import',
  13. table: 'ad_material',
  14. }
  15. });
  16. var table = $("#table");
  17. var list = {
  18. 1: '书籍详情页',
  19. 2: '追更页',
  20. 3: '阅读页底部',
  21. 4: '最近阅读',
  22. 5: '书架',
  23. 6: '阅读页顶部菜单下拉',
  24. 7: '阅读页中间1',
  25. 8: '阅读页中间2',
  26. 9: '阅读页中间3',
  27. 10: '充值返回插屏',
  28. 11: '阅读器插屏',
  29. 12: '签到成功插屏',
  30. 13: '个人中心',
  31. 14: '排行榜首页',
  32. 15: '分类首页',
  33. 16: '分类二级',
  34. 17: '书城首页轮播Banner',
  35. 18: '阅读页顶部浮窗Banner',
  36. 19: '阅读页插屏(整章)',
  37. 20: '书城首页Banner2',
  38. 21: '书城浮窗',
  39. 22: '书籍详情浮窗',
  40. };
  41. // 初始化表格
  42. table.bootstrapTable({
  43. url: $.fn.bootstrapTable.defaults.extend.index_url,
  44. pk: 'id',
  45. sortName: 'id',
  46. columns: [
  47. [
  48. {checkbox: true},
  49. {field: 'id', title: __('Id'), operate: false},
  50. {
  51. field: 'type', title: __('素材类型'), formatter: function (value) {
  52. var str = '';
  53. if (value == 1) {
  54. str = 'JS链接';
  55. } else if (value == 2) {
  56. str = '百度联盟';
  57. } else if (value == 3) {
  58. str = '福利广告';
  59. } else {
  60. str = '图片链接';
  61. }
  62. return str;
  63. }, searchList: {
  64. 0: '图片链接',
  65. 1: 'JS链接',
  66. 2: '百度联盟',
  67. 3: '福利广告'
  68. }
  69. },
  70. {field: 'img_url', title: __('Img_url'), formatter: Table.api.formatter.image, operate: false},
  71. {
  72. field: 'link_url', title: __('Link_url'), operate: false, formatter: function (value) {
  73. if (value.length == 0) {
  74. return '-';
  75. } else {
  76. return value;
  77. }
  78. }
  79. },
  80. {
  81. field: 'link_game', title: __('Link_game'), operate: false, cellStyle:Controller.api.formatter.linkcss, formatter: function (value) {
  82. if (value.length == 0) {
  83. return '-';
  84. } else {
  85. return value;
  86. }
  87. }
  88. },
  89. {
  90. field: 'material_position', title: __('Material_position'), cellStyle:Controller.api.formatter.positioncss, searchList: list, formatter: function (value) {
  91. if(value == ''){
  92. return '—';
  93. }
  94. var str = '';
  95. var arr = new Array();
  96. arr = String(value).split(',');
  97. $.each(arr, function (i, n) {
  98. str += list[n] + '\n\r';
  99. });
  100. return str;
  101. },operate: 'FIND_IN_SET'
  102. },
  103. {field: 'show_starttime', title: __('Show_starttime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime},
  104. {field: 'show_endtime', title: __('Show_endtime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime},
  105. {field: 'weight', title: __('Weight'), operate: false},
  106. {
  107. field: 'state',
  108. title: __('State'),
  109. searchList: {'0': '失效', '1': '有效'},
  110. formatter: function (value) {
  111. if (value) {
  112. return '有效';
  113. } else {
  114. return '失效';
  115. }
  116. }
  117. },
  118. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
  119. ]
  120. ]
  121. });
  122. // 为表格绑定事件
  123. Table.api.bindevent(table);
  124. //批量生效
  125. $('.btn-batch-validate').on('click', function () {
  126. var ids = Table.api.selectedids(table);
  127. Layer.confirm(
  128. '确定要把选中的' + ids.length + '项改为生效吗?',
  129. { icon: 3, title: __('Warning'), offset: 0, shadeClose: true },
  130. function () {
  131. $.ajax({
  132. url: '/admin/ad/material/batchvalidate',
  133. type: "post",
  134. data: {
  135. ids: ids,
  136. state: 1
  137. },
  138. success: function () {
  139. layer.msg('操作成功');
  140. table.bootstrapTable('refresh');
  141. }
  142. });
  143. }
  144. );
  145. });
  146. //批量失效
  147. $('.btn-batch-invalidate').on('click', function () {
  148. var ids = Table.api.selectedids(table);
  149. Layer.confirm(
  150. '确定要把选中的' + ids.length + '项改为失效吗?',
  151. { icon: 3, title: __('Warning'), offset: 0, shadeClose: true },
  152. function () {
  153. $.ajax({
  154. url: '/admin/ad/material/batchvalidate',
  155. type: "post",
  156. data: {
  157. ids: ids,
  158. state: 0
  159. },
  160. success: function () {
  161. layer.msg('操作成功');
  162. table.bootstrapTable('refresh');
  163. }
  164. });
  165. }
  166. );
  167. });
  168. // 更新所有缓存
  169. $(".btn-update-cache").click(function () {
  170. $.ajax({
  171. type:'post',
  172. url:'/admin/ad/manage/ajaxupdatecache',
  173. dataType:'json',
  174. cache:false,
  175. async:false,
  176. success:function(data){
  177. if (data.code == 1){
  178. Toastr.error(data.msg);
  179. };
  180. if(data.code == 0){
  181. Toastr.success(data.msg);
  182. }
  183. }
  184. });
  185. });
  186. },
  187. add: function () {
  188. Controller.api.bindevent();
  189. // 选中素材类型
  190. $("[name='row[type]']").change(function () {
  191. var selected_type = $(this).val();
  192. $(".common-type").hide();
  193. $(".type-" + selected_type).show();
  194. if(selected_type == 1 || selected_type == 2){
  195. $(".position-filter").hide();
  196. }else{
  197. $(".position-filter").show();
  198. }
  199. if (selected_type == 3) {
  200. $(".material-position").hide();
  201. } else {
  202. $(".material-position").show();
  203. }
  204. });
  205. },
  206. edit: function () {
  207. Controller.api.bindevent();
  208. // 选中素材类型
  209. $("[name='row[type]']").change(function () {
  210. var selected_type = $(this).val();
  211. $(".common-type").hide();
  212. $(".type-" + selected_type).show();
  213. if(selected_type == 1 || selected_type == 2){
  214. $(".position-filter").hide();
  215. }else{
  216. $(".position-filter").show();
  217. }
  218. if (selected_type == 3) {
  219. $(".material-position").hide();
  220. } else {
  221. $(".material-position").show();
  222. }
  223. });
  224. },
  225. api: {
  226. bindevent: function () {
  227. Form.api.bindevent($("form[role=form]"));
  228. },
  229. formatter:{
  230. linkcss:function(){
  231. return {
  232. css: {
  233. "max-width": "200px",
  234. "word-wrap": "break-word",
  235. "word-break": "normal"
  236. }
  237. };
  238. },
  239. positioncss:function(){
  240. return {
  241. css: {
  242. "max-width": "300px",
  243. "word-wrap": "break-word",
  244. "word-break": "normal"
  245. }
  246. };
  247. },
  248. }
  249. }
  250. };
  251. return Controller;
  252. });