config.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. var Controller = {
  3. index: function () {
  4. // 设置表单验证选项
  5. $("form.edit-form").data("validator-options", {
  6. display: function (elem) {
  7. return $(elem).closest('.form-group').find('label').text();
  8. }
  9. });
  10. // 绑定表单提交事件 - 使用前端提示
  11. Form.api.bindevent($("form.edit-form"), function (data, ret) {
  12. console.log('Form submit callback', ret);
  13. // 表单提交成功后显示前端提示
  14. if (ret.code == 1) {
  15. // 成功提示,不跳转,停留在当前页面
  16. Toastr.success(ret.msg || '保存成功');
  17. }
  18. });
  19. // 成为分销商条件切换事件
  20. $(document).on('change', '.become-agent-type', function() {
  21. var value = $(this).val();
  22. var valueContainer = $('.become-agent-value');
  23. // 消费累计条件显示/隐藏
  24. if (value === 'consume') {
  25. valueContainer.removeClass('hidden').show();
  26. valueContainer.find('input').attr('required', true);
  27. } else {
  28. valueContainer.addClass('hidden').hide();
  29. valueContainer.find('input').attr('required', false);
  30. }
  31. // 自助申请相关字段显示/隐藏
  32. var applyRelatedFields = [
  33. 'input[name="row[need_form]"]', // 完善资料
  34. 'input[name="row[background_image]"]', // 表单背景图
  35. 'input[name="row[show_protocol]"]', // 申请协议
  36. 'textarea[name="row[apply_protocol]"]' // 协议内容
  37. ];
  38. applyRelatedFields.forEach(function(fieldSelector) {
  39. var fieldGroup = $(fieldSelector).closest('.form-group');
  40. if (value === 'apply') {
  41. fieldGroup.removeClass('hidden').show();
  42. } else {
  43. fieldGroup.addClass('hidden').hide();
  44. }
  45. });
  46. });
  47. // 初始化成为分销商条件显示状态
  48. setTimeout(function() {
  49. var selectedType = $('input[name="row[become_agent][type]"]:checked').val();
  50. // 处理消费累计条件
  51. if (selectedType === 'consume') {
  52. $('.become-agent-value').removeClass('hidden').show();
  53. } else {
  54. $('.become-agent-value').addClass('hidden').hide();
  55. }
  56. // 处理自助申请相关字段
  57. var applyRelatedFields = [
  58. 'input[name="row[need_form]"]',
  59. 'input[name="row[background_image]"]',
  60. 'input[name="row[show_protocol]"]',
  61. 'textarea[name="row[apply_protocol]"]'
  62. ];
  63. applyRelatedFields.forEach(function(fieldSelector) {
  64. var fieldGroup = $(fieldSelector).closest('.form-group');
  65. if (selectedType === 'apply') {
  66. fieldGroup.removeClass('hidden').show();
  67. } else {
  68. fieldGroup.addClass('hidden').hide();
  69. }
  70. });
  71. }, 100);
  72. // 申请协议开关联动协议内容
  73. $(document).on('change', 'input[name="row[show_protocol]"]', function() {
  74. var showProtocol = $(this).val() === '1';
  75. var protocolContentGroup = $('textarea[name="row[apply_protocol]"]').closest('.form-group');
  76. if (showProtocol) {
  77. protocolContentGroup.removeClass('hidden').show();
  78. } else {
  79. protocolContentGroup.addClass('hidden').hide();
  80. }
  81. });
  82. // 初始化申请协议内容显示状态
  83. setTimeout(function() {
  84. var showProtocol = $('input[name="row[show_protocol]"]:checked').val() === '1';
  85. var selectedType = $('input[name="row[become_agent][type]"]:checked').val();
  86. var protocolContentGroup = $('textarea[name="row[apply_protocol]"]').closest('.form-group');
  87. if (selectedType === 'apply' && showProtocol) {
  88. protocolContentGroup.removeClass('hidden').show();
  89. } else {
  90. protocolContentGroup.addClass('hidden').hide();
  91. }
  92. }, 150);
  93. Controller.api.bindevent();
  94. },
  95. add: function () {
  96. Controller.api.bindevent();
  97. },
  98. edit: function () {
  99. Controller.api.bindevent();
  100. },
  101. api: {
  102. bindevent: function () {
  103. Form.api.bindevent($("form[role=form]"));
  104. }
  105. },
  106. };
  107. return Controller;
  108. });