announce_list.js 5.6 KB

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