comment.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  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: 'massager/comment/index' + location.search,
  8. edit_url: 'massager/comment/edit',
  9. del_url: 'massager/comment/del',
  10. multi_url: 'massager/comment/multi',
  11. import_url: 'massager/comment/import',
  12. table: 'massager_comment',
  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. fixedColumns: true,
  22. fixedRightNumber: 1,
  23. columns: [
  24. [
  25. {checkbox: true},
  26. {field: 'id', title: __('Id')},
  27. {field: 'is_anonymity', title: __('Is_anonymity'), formatter: (data) => ["否", "是"][data]},
  28. {field: 'massager.name', title: __('Massager.name'), operate: 'LIKE'},
  29. {field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
  30. {field: 'negative', title: __('Negative'), formatter: (data) => ["否", "是"][data]},
  31. {field: 'allegedly', title: __('Allegedly'), formatter: (data) => ["否", "是"][data]},
  32. {field: 'tags', title: __('Tags'), operate: 'LIKE', formatter: Table.api.formatter.flag},
  33. {field: 'star', title: __('Star'), operate: 'BETWEEN'},
  34. {
  35. field: 'status',
  36. title: __('Status'),
  37. searchList: {"hidden": __('Hidden'), "checking": __('Checking'), "normal": __('Normal')},
  38. formatter: Table.api.formatter.status
  39. },
  40. {
  41. field: 'allegedly_status',
  42. title: __('Allegedly_status'),
  43. searchList: {"default": __('Default'), "reject": __('Reject'), "pass": __('Pass')},
  44. formatter: Table.api.formatter.status
  45. },
  46. {
  47. field: 'allegedly_text',
  48. title: __('Allegedly_text'),
  49. operate: 'LIKE',
  50. formatter: (data) => {
  51. if (!data) return '';
  52. var
  53. len = 0,
  54. reg = /[\x00-\xff]/, //半角字符的正则匹配
  55. strs = data.split(''),
  56. inx = strs.findIndex(s => {
  57. len += reg.test(s) ? 1 : 2;
  58. if (len > 10) return true;
  59. });
  60. return inx === -1 ? data : data.substr(0, inx) + '...';
  61. }
  62. },
  63. {
  64. field: 'updatetime',
  65. title: __('Updatetime'),
  66. operate: 'RANGE',
  67. addclass: 'datetimerange',
  68. autocomplete: false,
  69. formatter: Table.api.formatter.datetime
  70. },
  71. {
  72. field: 'massager.city_code',
  73. title: __('区域'),
  74. searchList: Config.allow_areas,
  75. visible: false
  76. },
  77. {
  78. field: 'operate',
  79. title: __('Operate'),
  80. table: table,
  81. buttons: [
  82. {
  83. name: 'check_pass',
  84. text: '',
  85. title: '通过',
  86. classname: 'btn btn-xs btn-success btn-view btn-ajax',
  87. icon: 'fa fa-check',
  88. url: 'massager/comment/check?id={id}&check=pass',
  89. visible: function (row) {
  90. return 1 == row["allegedly"] && "default" === row["allegedly_status"];
  91. },
  92. refresh: true
  93. },
  94. {
  95. name: 'check_reject',
  96. text: '',
  97. title: '驳回',
  98. classname: 'btn btn-xs btn-warning btn-view btn-ajax',
  99. icon: 'fa fa-times',
  100. url: 'massager/comment/check?id={id}&check=reject',
  101. visible: function (row) {
  102. return 1 == row["allegedly"] && "default" === row["allegedly_status"];
  103. },
  104. refresh: true
  105. },
  106. ],
  107. events: Table.api.events.operate,
  108. formatter: Table.api.formatter.operate
  109. }
  110. ]
  111. ]
  112. });
  113. // 为表格绑定事件
  114. Table.api.bindevent(table);
  115. },
  116. add: function () {
  117. Controller.api.bindevent();
  118. },
  119. edit: function () {
  120. Controller.api.bindevent();
  121. },
  122. api: {
  123. bindevent: function () {
  124. Form.api.bindevent($("form[role=form]"));
  125. }
  126. }
  127. };
  128. return Controller;
  129. });