faq.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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: 'wwh/faq/index' + location.search,
  8. add_url: 'wwh/faq/add',
  9. edit_url: 'wwh/faq/edit',
  10. del_url: 'wwh/faq/del',
  11. multi_url: 'wwh/faq/multi',
  12. import_url: 'wwh/faq/import',
  13. table: 'wwh_faq',
  14. dragsort_url:'',
  15. }
  16. });
  17. var table = $("#table");
  18. // 初始化表格
  19. table.bootstrapTable({
  20. url: $.fn.bootstrapTable.defaults.extend.index_url,
  21. pk: 'id',
  22. sortName: 'weigh',
  23. fixedColumns: true,
  24. fixedRightNumber: 1,
  25. columns: [
  26. [
  27. {
  28. checkbox: true, formatter:function (value,row,index){
  29. if (row.status == 1){
  30. return{
  31. disabled:true
  32. };
  33. }
  34. }
  35. },
  36. {field: 'id', title: __('Id')},
  37. {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
  38. {field: 'title', title: __('Title'), operate: 'LIKE'},
  39. {
  40. field: 'weigh',
  41. title: __('Weigh'),
  42. operate: false,
  43. sortable: true,
  44. formatter: function (value, row, index) {
  45. return '<input type="text" class="form-control text-center text-weigh" data-id="' + row.id + '" value="' + value + '" style="width:50px;margin:0 auto;" />';
  46. },
  47. events: {
  48. "dblclick .text-weigh": function (e) {
  49. e.preventDefault();
  50. e.stopPropagation();
  51. return false;
  52. }
  53. }
  54. },
  55. {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
  56. {field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1')}, custom: {0: 'grey', 1: 'info'}, formatter: Table.api.formatter.flag},
  57. {field: 'lang', title: __('Lang'), searchList: {"1":__('Lang 1'),"2":__('Lang 2')}, custom: {1: 'success', 2: 'warning'}, formatter: Table.api.formatter.normal},
  58. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
  59. buttons: [
  60. {
  61. name: 'faudit',
  62. text: __('反审核'),
  63. title: __('反审核'),
  64. classname: 'btn btn-xs btn-danger btn-magic btn-ajax',
  65. // icon: 'fa fa-close',
  66. url: 'wwh/faq/faudit',
  67. hidden:function(row){
  68. if(row.status != '1'){
  69. return true;
  70. }
  71. },
  72. success: function (data, ret) {
  73. table.bootstrapTable('refresh'); //自动刷新
  74. },
  75. }
  76. ],
  77. formatter: function (value, row, index) {
  78. var that = $.extend({}, this);
  79. var table = $(that.table).clone(true);
  80. if (row.status == 1){
  81. $(table).data("operate-edit",null);
  82. $(table).data("operate-del",null);
  83. }
  84. that.table = table;
  85. return Table.api.formatter.operate.call(that, value, row, index);
  86. }}
  87. ]
  88. ]
  89. });
  90. // 权重修改
  91. $(document).on("change", ".text-weigh", function () {
  92. $(this).data("params", {weigh: $(this).val()});
  93. Table.api.multi('', [$(this).data("id")], table, this);
  94. return false;
  95. });
  96. // 审核
  97. $(document).on("click", ".btn-audit", function () {
  98. var data = table.bootstrapTable('getSelections');
  99. var ids = [];
  100. if (data.length === 0) {
  101. Toastr.error("请选择操作信息");
  102. return;
  103. }
  104. for (var i = 0; i < data.length; i++) {
  105. ids[i] = data[i]['id']
  106. }
  107. Layer.confirm(
  108. '确认选中'+ids.length+'条审核吗?',
  109. {icon: 3, title: __('Warning'), offset: '40%', shadeClose: true},
  110. function (index) {
  111. Layer.close(index);
  112. Backend.api.ajax({
  113. url: "wwh/faq/audit",
  114. data: {ids:ids}
  115. }, function(data, ret){//成功的回调
  116. if (ret.code === 1) {
  117. table.bootstrapTable('refresh');
  118. Layer.close(index);
  119. } else {
  120. Layer.close(index);
  121. Toastr.error(ret.msg);
  122. }
  123. }, function(data, ret){//失败的回调
  124. console.log(ret);
  125. Layer.close(index);
  126. });
  127. }
  128. );
  129. });
  130. // 为表格绑定事件
  131. Table.api.bindevent(table);
  132. // 弹窗窗口大小
  133. table.on('post-body.bs.table',function(e, settings, json, xhr){
  134. $(".btn-add").data("area", ['80%','80%']);
  135. $(".btn-editone").data("area", ['80%','80%']);
  136. });
  137. // TAB选项卡默认选中简体中文
  138. $('ul.nav-tabs li a[data-toggle="tab"]').eq(0).trigger("click");
  139. // 获取TAB选项卡值,通过options.extend.add_url传递
  140. $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
  141. var options = table.bootstrapTable('getOptions');
  142. options.extend.add_url = 'wwh/faq/add?lang=' + $(this).data('value');
  143. });
  144. },
  145. add: function () {
  146. // 将TAB选项卡赋值给lang
  147. $('#c-lang option').each(function(){
  148. if($(this).attr('value') == Fast.api.query('lang'))
  149. {
  150. $(this).attr('selected', 'selected');
  151. }
  152. });
  153. Controller.api.bindevent();
  154. },
  155. edit: function () {
  156. Controller.api.bindevent();
  157. },
  158. api: {
  159. bindevent: function () {
  160. Form.api.bindevent($("form[role=form]"));
  161. }
  162. }
  163. };
  164. return Controller;
  165. });