web_list.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. layui.use(['table', 'jquery', 'madmin', 'mhttp', 'layer', 'form', 'common'], function () {
  2. let table = layui.table;
  3. let $ = layui.jquery;
  4. let admin = layui.madmin;
  5. let layer = layui.layer;
  6. let form = layui.form;
  7. let common = layui.common;
  8. let mhttp = layui.mhttp;
  9. admin.getConfig();
  10. getStorageServersConfig();
  11. //搜索条件
  12. let title = GetQueryString('title') ?? null;
  13. $('.title').val(title);
  14. let cols = [
  15. [
  16. {
  17. title: '域名',
  18. field: 'url',
  19. align: 'center'
  20. },
  21. {
  22. title: '推广页图片',
  23. field: 'cover',
  24. align: 'center',
  25. toolbar: '#web-cover'
  26. },
  27. {
  28. title: '标题',
  29. field: 'title',
  30. align: 'center'
  31. },
  32. {
  33. title: '排序',
  34. field: 'sort',
  35. align: 'center'
  36. },
  37. {
  38. title: '状态',
  39. field: 'status',
  40. align: 'center',
  41. toolbar: '#web-status'
  42. },
  43. {
  44. title: '所属应用',
  45. align: 'center',
  46. toolbar: "#web-app-name"
  47. },
  48. {
  49. title: '备注',
  50. align: 'center',
  51. field: 'note'
  52. },
  53. {
  54. title: '更新时间',
  55. field: 'updated_at',
  56. align: 'center'
  57. },
  58. {
  59. title: '操作',
  60. align: 'center',
  61. toolbar: '#web-bar'
  62. }
  63. ]
  64. ];
  65. let search = httpRequestPostData({
  66. title: title,
  67. });
  68. table.render({
  69. elem: '#web-table',
  70. method: 'POST',
  71. request: {
  72. pageName: 'page',
  73. limitName: 'page_size'
  74. },
  75. async: false,
  76. headers: {
  77. "AUTH-TOKEN": localStorage.getItem('XSRF-TOKEN') ?? ''
  78. },
  79. contentType: 'application/json',
  80. where: search,
  81. url: getMyApiUrl('/web/lists'),
  82. limit: 20,
  83. limits: [20, 30, 40, 50, 80, 100],
  84. parseData: function (res) {
  85. return httpRequestPagesParseData(res);
  86. },
  87. response: {
  88. "statusCode": 200,
  89. },
  90. done: function (data, page, total) {
  91. var intCode = parseInt(data.code);
  92. if (intCode === 403) {
  93. cbRespnseRedirectLogin(data);
  94. } else if (intCode === 401) {
  95. // 仅仅是过期了,这里可以有其他逻辑补偿.
  96. // 暂时跳到登陆页面
  97. cbRespnse401(data);
  98. }
  99. onloadRender();
  100. },
  101. error: function (obj, message) {
  102. cbRespnseReloadPage(obj, message);
  103. },
  104. page: true,
  105. cols: cols,
  106. skin: 'line',
  107. toolbar: '#web-toolbar',
  108. defaultToolbar: [{
  109. title: '刷新',
  110. layEvent: 'refresh',
  111. icon: 'layui-icon-refresh',
  112. }, 'filter', 'print', 'exports']
  113. });
  114. table.on('toolbar(web-table)', function (obj) {
  115. if (obj.event === 'add') {
  116. window.add();
  117. } else if (obj.event === 'refresh') {
  118. window.refresh();
  119. }
  120. });
  121. window.add = function () {
  122. layer.open({
  123. id: 'web_create',
  124. type: 2,
  125. title: '添加',
  126. shade: 0.1,
  127. offset: '20px',
  128. area: ['410px', '600px'],
  129. maxWidth: 500,
  130. maxHeight: 600,
  131. scrollbar: true,
  132. content: 'web_create.html',
  133. });
  134. }
  135. // 表单内
  136. table.on('tool(web-table)', function (obj) {
  137. if (obj.event === 'remove') {
  138. window.remove(obj);
  139. } else if (obj.event === 'edit') {
  140. window.edit(obj);
  141. }
  142. });
  143. window.edit = function (obj) {
  144. layer.open({
  145. id: 'web-edit',
  146. type: 2,
  147. title: '修改',
  148. shade: 0.1,
  149. offset: '20px',
  150. area: ['410px', '600px'],
  151. maxWidth: 500,
  152. maxHeight: 600,
  153. scrollbar: true,
  154. content: 'web_edit.html?web_id=' + obj.data.id,
  155. });
  156. }
  157. // 状态修改
  158. form.on('switch(web-status-edit)', function (obj) {
  159. let status = layer.load();
  160. let postData = {
  161. id: this.value
  162. };
  163. let ret = mhttp.ajax({
  164. url: '/web/edit/status',
  165. data: postData,
  166. });
  167. ret.then((data) => {
  168. layer.close(status);
  169. if (data.code === 200) {
  170. layer.msg(data.message, {icon: 1, time: 1000});
  171. } else {
  172. layer.msg(data.message, {icon: 2, time: 1000});
  173. }
  174. });
  175. });
  176. // 删除
  177. window.remove = function (obj) {
  178. layer.confirm('确定要删除标题为:' + obj.data.title + ' ?', {
  179. icon: 3,
  180. title: '提示'
  181. }, function () {
  182. let deleteLoading = layer.msg('操作数据中...', {icon: 16, time: 0, shade: 0.3, shadeClose: false});
  183. let postData = {
  184. id: obj.data.id
  185. };
  186. let ret = mhttp.ajax({
  187. url: '/web/delete',
  188. data: postData,
  189. });
  190. ret.then((data) => {
  191. layer.close(deleteLoading);
  192. if (data.code === 200) {
  193. layer.msg(data.message, {icon: 1, time: 1000});
  194. obj.del();
  195. } else {
  196. layer.msg(data.message, {icon: 2, time: 1000});
  197. }
  198. });
  199. });
  200. }
  201. window.refresh = function (param) {
  202. table.reload('web-table');
  203. }
  204. })