rulemanage.js 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  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: 'kl/rulemanage/index',
  8. add_url: 'kl/rulemanage/add',
  9. edit_url: 'kl/rulemanage/edit',
  10. del_url: 'kl/rulemanage/del',
  11. table: 'kl_rule_config',
  12. }
  13. });
  14. var table = $("#table");
  15. // 初始化表格
  16. table.bootstrapTable({
  17. url: $.fn.bootstrapTable.defaults.extend.index_url,
  18. pk: 'id',
  19. sortName: 'id',
  20. search: false,
  21. columns: [
  22. [
  23. {checkbox: true},
  24. {field: 'id', title: __('Id')},
  25. {field: 'name', title: __('Name'), operate: 'LIKE %...%'},
  26. {
  27. field: 'createtime',
  28. title: __('Createtime'),
  29. operate:false,
  30. addclass: 'datetimerange',
  31. formatter: Table.api.formatter.datetime
  32. },
  33. {
  34. field: 'updatetime',
  35. title: __('Updatetime'),
  36. operate:false,
  37. addclass: 'datetimerange',
  38. formatter: Table.api.formatter.datetime
  39. },
  40. {
  41. field: 'opuser_name',
  42. title: __('Opusername'),
  43. },
  44. {
  45. field: 'status',
  46. title: __('Status'),
  47. searchList: {'1': __('正常'), '0': __('隐藏')},
  48. addClass:'btn-start',
  49. formatter: Controller.api.formatter.changestatus
  50. },
  51. {
  52. field: 'id',
  53. title: __('添加规则'),
  54. operate:false,
  55. formatter: Controller.api.formatter.fm_viewrule
  56. },
  57. {
  58. field: 'weight',
  59. operate:false,
  60. title: __('Weight'),
  61. },
  62. {
  63. field: 'id',
  64. operate:false,
  65. title: __('关联渠道'),
  66. formatter: Controller.api.formatter.fm_associate_channels
  67. },
  68. {
  69. field: 'operate',
  70. title: __('Operate'),
  71. table: table,
  72. events: Table.api.events.operate,
  73. formatter: Table.api.formatter.operate
  74. }
  75. ]
  76. ]
  77. });
  78. //状态:打开或隐藏
  79. $(document).on("click", ".btn-start", function () {
  80. //在table外不可以使用添加.btn-change的方法
  81. //只能自己调用Table.api.multi实现
  82. var id = $(this).data('id');
  83. var thisvalue = $(this).val();
  84. var status = 1;
  85. if(thisvalue=='点击打开'){
  86. status = 1;
  87. }else{
  88. status = 0;
  89. }
  90. var textval = thisvalue.substring(2,4);
  91. var reloadfrom = $(this).data('reload');
  92. layer.confirm('确定要'+textval+'吗?', {
  93. btn: ['确定','取消'] //按钮
  94. }, function(){
  95. $.post('/admin/kl/rulemanage/changestatus',
  96. {
  97. id:id,
  98. status:status
  99. },
  100. function (data) {
  101. if (data) {
  102. layer.msg('操作成功');
  103. if (reloadfrom == 1) {
  104. window.location.reload();
  105. } else {
  106. table.bootstrapTable('refresh');
  107. }
  108. } else {
  109. layer.msg('操作失败');
  110. }
  111. });
  112. }, function(){
  113. layer.close();
  114. });
  115. });
  116. // 为表格绑定事件
  117. Table.api.bindevent(table);
  118. },
  119. add: function () {
  120. Controller.api.bindevent();
  121. },
  122. edit: function () {
  123. Controller.api.bindevent();
  124. },
  125. api: {
  126. bindevent: function () {
  127. Form.api.bindevent($("form[role=form]"));
  128. },
  129. formatter: {
  130. changestatus:function(value,row,index){
  131. if (row.status == '0'){
  132. return '<b>隐藏</b>&nbsp;&nbsp;<input type="button" class="btn-start btn btn-success" data-id="'+row.id+'" value="点击打开" />';
  133. }else{
  134. return '<b>正常</b>&nbsp;&nbsp;<input type="button" class="btn-start btn btn-warning" data-id="'+row.id+'" value="点击隐藏" />';
  135. }
  136. },
  137. fm_viewrule:function (value, row, index) {
  138. var url = row.config_url;
  139. return '<span style="cursor: pointer" data-url="' + url + '" class="label label-success addtabsit12" title="' + __("Search %s", value) + '">添加查看条件规则</span>';
  140. },
  141. fm_associate_channels:function (value, row, index) {
  142. html = '';
  143. if(row.channel_ids == '*'){
  144. html += "已关联所有渠道";
  145. }else{
  146. //html += "<a href='javascript:;' class='qd-associate' data-kl_id='" + value + "'>关联</a>&nbsp;&nbsp;";
  147. //html += "<a href='javascript:;' class='qd-view' data-kl_id='" + value + "'>查看</a>";
  148. html += "<a href='javascript:;' class='qd-associate' data-kl_id='" + value + "' data-config_id='"+ row.config_id+"'>关联</a>&nbsp;&nbsp;";
  149. html += "<a href='javascript:;' class='qd-view' data-kl_id='" + value + "' data-config_id='"+ row.config_id+"'>查看</a>";
  150. }
  151. return html;
  152. }
  153. }
  154. }
  155. };
  156. $(document).on('click', '.addtabsit12', function () {
  157. var url = $(this).data("url");
  158. Fast.api.open(url, $(this).text(), {});
  159. return false;
  160. });
  161. // 列表关联
  162. $(document).on('click', '.qd-associate', function () {
  163. var kl_id = $(this).data("kl_id");
  164. var rule_config_id = $(this).data("config_id");
  165. if(rule_config_id == null || rule_config_id ==''){
  166. layer.alert('您还没有添加规则');
  167. return false;
  168. }
  169. //iframe层-父子操作
  170. layer.open({
  171. type: 2,
  172. area: ['900px', '750px'],
  173. fixed: false, //不固定
  174. maxmin: true,
  175. content: '/admin/auth/channel?kl_id=' + kl_id + '&isassociated=2'
  176. });
  177. });
  178. // 列表 查看
  179. $(document).on('click', '.qd-view', function () {
  180. var kl_id = $(this).data("kl_id");
  181. var rule_config_id = $(this).data("config_id");
  182. if(rule_config_id == null || rule_config_id ==''){
  183. layer.alert('您还没有添加规则');
  184. return false;
  185. }
  186. //iframe层-父子操作
  187. layer.open({
  188. type: 2,
  189. area: ['900px', '750px'],
  190. fixed: false, //不固定
  191. maxmin: true,
  192. content: '/admin/auth/channel?kl_id=' + kl_id + '&isassociated=3'
  193. });
  194. });
  195. return Controller;
  196. });