fastreply.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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: 'kefu/fastreply/index' + location.search,
  8. add_url: 'kefu/fastreply/add',
  9. edit_url: 'kefu/fastreply/edit',
  10. del_url: 'kefu/fastreply/del',
  11. multi_url: 'kefu/fastreply/multi',
  12. table: 'kefu_fast_reply',
  13. }
  14. });
  15. var table = $("#table");
  16. // 初始化表格
  17. table.bootstrapTable({
  18. url: $.fn.bootstrapTable.defaults.extend.index_url,
  19. pk: 'id',
  20. sortName: 'id',
  21. columns: [
  22. [
  23. {checkbox: true},
  24. {field: 'id', title: __('Id')},
  25. {field: 'admin.nickname', title: __('Admin_id')},
  26. {field: 'title', title: __('Title'), operate: 'LIKE', placeholder: '模糊查找'},
  27. {
  28. field: 'content',
  29. title: __('Content'),
  30. operate: 'LIKE',
  31. placeholder: '模糊查找',
  32. formatter: Controller.api.formatter.value_substring
  33. },
  34. {
  35. field: 'status',
  36. title: __('Status'),
  37. searchList: {"0": __('Status 0'), "1": __('Status 1')},
  38. formatter: Table.api.formatter.status
  39. },
  40. {
  41. field: 'createtime',
  42. title: __('Createtime'),
  43. operate: 'RANGE',
  44. addclass: 'datetimerange',
  45. formatter: Table.api.formatter.datetime
  46. },
  47. {
  48. field: 'operate',
  49. title: __('Operate'),
  50. table: table,
  51. events: Table.api.events.operate,
  52. formatter: Table.api.formatter.operate
  53. }
  54. ]
  55. ]
  56. });
  57. // 为表格绑定事件
  58. Table.api.bindevent(table);
  59. },
  60. recyclebin: function () {
  61. // 初始化表格参数配置
  62. Table.api.init({
  63. extend: {
  64. 'dragsort_url': ''
  65. }
  66. });
  67. var table = $("#table");
  68. // 初始化表格
  69. table.bootstrapTable({
  70. url: 'kefu/fastreply/recyclebin' + location.search,
  71. pk: 'id',
  72. sortName: 'id',
  73. columns: [
  74. [
  75. {checkbox: true},
  76. {field: 'id', title: __('Id')},
  77. {field: 'title', title: __('Title'), align: 'left'},
  78. {
  79. field: 'deletetime',
  80. title: __('Deletetime'),
  81. operate: 'RANGE',
  82. addclass: 'datetimerange',
  83. formatter: Table.api.formatter.datetime
  84. },
  85. {
  86. field: 'operate',
  87. width: '130px',
  88. title: __('Operate'),
  89. table: table,
  90. events: Table.api.events.operate,
  91. buttons: [
  92. {
  93. name: 'Restore',
  94. text: __('Restore'),
  95. classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',
  96. icon: 'fa fa-rotate-left',
  97. url: 'kefu/fastreply/restore',
  98. refresh: true
  99. },
  100. {
  101. name: 'Destroy',
  102. text: __('Destroy'),
  103. classname: 'btn btn-xs btn-danger btn-ajax btn-destroyit',
  104. icon: 'fa fa-times',
  105. url: 'kefu/fastreply/destroy',
  106. refresh: true
  107. }
  108. ],
  109. formatter: Table.api.formatter.operate
  110. }
  111. ]
  112. ]
  113. });
  114. // 为表格绑定事件
  115. Table.api.bindevent(table);
  116. },
  117. add: function () {
  118. Controller.api.bindevent();
  119. },
  120. edit: function () {
  121. Controller.api.bindevent();
  122. },
  123. api: {
  124. bindevent: function () {
  125. Form.api.bindevent($("form[role=form]"));
  126. },
  127. formatter: {
  128. value_substring: function (value) {
  129. let value_length = value.replace(/[\u0391-\uFFE5]/g, "aa").length;
  130. return value_length > 20 ? value.substring(0, 20) + '...' : value;
  131. }
  132. }
  133. }
  134. };
  135. return Controller;
  136. });