level.js 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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: 'commission/level/index' + location.search,
  8. add_url: 'commission/level/add',
  9. edit_url: 'commission/level/edit',
  10. del_url: 'commission/level/delete',
  11. multi_url: 'commission/level/multi',
  12. import_url: 'commission/level/import',
  13. table: 'commission_level',
  14. }
  15. });
  16. var table = $("#table");
  17. // 初始化表格
  18. table.bootstrapTable({
  19. url: $.fn.bootstrapTable.defaults.extend.index_url,
  20. pk: 'level',
  21. sortName: 'level',
  22. columns: [
  23. [
  24. {checkbox: true},
  25. {field: 'level', title: __('等级权重'), width: 80},
  26. {field: 'name', title: __('等级名称'), operate: 'LIKE'},
  27. {field: 'image', title: __('等级徽章'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
  28. {field: 'commission_rules.commission_1', title: __('一级佣金比例'), operate: false, formatter: function(value, row, index) {
  29. return (value || '0.00') + '%';
  30. }},
  31. {field: 'commission_rules.commission_2', title: __('二级佣金比例'), operate: false, formatter: function(value, row, index) {
  32. return (value || '0.00') + '%';
  33. }},
  34. {field: 'commission_rules.commission_3', title: __('三级佣金比例'), operate: false, formatter: function(value, row, index) {
  35. return (value || '0.00') + '%';
  36. }},
  37. {field: 'upgrade_type', title: __('升级方式'), searchList: {
  38. "0": __('手动升级'),
  39. "1": __('自动升级')
  40. }, formatter: function(value, row, index) {
  41. var typeMap = {
  42. '0': {text: '手动升级', color: 'info'},
  43. '1': {text: '自动升级', color: 'success'}
  44. };
  45. var type = typeMap[value] || {text: value, color: 'default'};
  46. return '<span class="label label-' + type.color + '">' + type.text + '</span>';
  47. }},
  48. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
  49. buttons: [
  50. {
  51. name: 'edit',
  52. text: __('编辑'),
  53. title: __('编辑'),
  54. classname: 'btn btn-xs btn-success btn-editone',
  55. icon: 'fa fa-edit',
  56. url: 'commission/level/edit',
  57. callback: function (data) {
  58. table.bootstrapTable('refresh');
  59. }
  60. },
  61. {
  62. name: 'del',
  63. text: __('删除'),
  64. title: __('删除'),
  65. classname: 'btn btn-xs btn-danger btn-delone',
  66. icon: 'fa fa-trash',
  67. url: 'commission/level/delete',
  68. visible: function (row) {
  69. return row.level != 1; // 默认等级不能删除
  70. },
  71. callback: function (data) {
  72. table.bootstrapTable('refresh');
  73. }
  74. }
  75. ],
  76. formatter: Table.api.formatter.operate}
  77. ]
  78. ]
  79. });
  80. // 为表格绑定事件
  81. Table.api.bindevent(table);
  82. },
  83. add: function () {
  84. Controller.api.bindevent();
  85. },
  86. edit: function () {
  87. Controller.api.bindevent();
  88. },
  89. select: function () {
  90. // 初始化表格参数
  91. Table.api.init({
  92. extend: {
  93. index_url: 'commission/level/select' + location.search,
  94. }
  95. });
  96. var table = $("#table");
  97. // 初始化表格
  98. table.bootstrapTable({
  99. url: $.fn.bootstrapTable.defaults.extend.index_url,
  100. pk: 'level',
  101. sortName: 'level',
  102. columns: [
  103. [
  104. {checkbox: true},
  105. {field: 'level', title: __('等级权重'), width: 80},
  106. {field: 'name', title: __('等级名称')},
  107. {field: 'image', title: __('等级徽章'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
  108. {field: 'commission_rules.commission_1', title: __('一级佣金比例'), operate: false, formatter: function(value, row, index) {
  109. return (value || '0.00') + '%';
  110. }},
  111. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
  112. buttons: [
  113. {
  114. name: 'choose',
  115. text: __('选择'),
  116. title: __('选择'),
  117. classname: 'btn btn-xs btn-primary btn-choose',
  118. icon: 'fa fa-check',
  119. click: function (data) {
  120. var multiple = Backend.api.query('multiple');
  121. multiple = multiple == 'true' ? true : false;
  122. Fast.api.close(data);
  123. }
  124. }
  125. ],
  126. formatter: Table.api.formatter.operate}
  127. ]
  128. ]
  129. });
  130. // 为表格绑定事件
  131. Table.api.bindevent(table);
  132. },
  133. api: {
  134. bindevent: function () {
  135. Form.api.bindevent($("form[role=form]"));
  136. // 绑定升级类型变化事件
  137. $(document).on('change', 'input[name="row[upgrade_type]"]', function() {
  138. var value = $(this).val();
  139. var upgradeRulesContainer = $('.upgrade-rules-container');
  140. if (value == '1') {
  141. upgradeRulesContainer.show();
  142. } else {
  143. upgradeRulesContainer.hide();
  144. }
  145. });
  146. // 添加升级条件
  147. $(document).on('click', '.add-upgrade-rule', function() {
  148. var container = $(this).closest('.upgrade-rules-container').find('.upgrade-rules-list');
  149. var template = container.find('.upgrade-rule-item:first').clone();
  150. template.find('input').val('');
  151. container.append(template);
  152. });
  153. // 删除升级条件
  154. $(document).on('click', '.remove-upgrade-rule', function() {
  155. var item = $(this).closest('.upgrade-rule-item');
  156. var container = item.closest('.upgrade-rules-list');
  157. if (container.find('.upgrade-rule-item').length > 1) {
  158. item.remove();
  159. }
  160. });
  161. }
  162. }
  163. };
  164. return Controller;
  165. });