cashier_channel_config.blade.php 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. @extends('base.base')
  2. @section('base')
  3. <!-- 内容区域 -->
  4. <div class="main-panel">
  5. <div class="content-wrapper">
  6. <div class="page-header">
  7. <h3 class="page-title">
  8. <span class="page-title-icon bg-gradient-primary text-white mr-2">
  9. <i class="mdi mdi-cash-multiple"></i>
  10. </span>
  11. 提现渠道配置
  12. </h3>
  13. <nav aria-label="breadcrumb">
  14. <ol class="breadcrumb">
  15. <li class="breadcrumb-item"><a href="#">茶叶管理</a></li>
  16. <li class="breadcrumb-item active" aria-current="page">提现渠道配置</li>
  17. </ol>
  18. </nav>
  19. </div>
  20. <div class="row">
  21. <div class="col-lg-12 grid-margin stretch-card">
  22. <div class="card">
  23. <div class="card-body">
  24. <div class="d-flex justify-content-between align-items-center mb-3">
  25. <h4 class="card-title mb-0">配置渠道权重</h4>
  26. <button type="button" onclick="addChannel()" class="btn btn-sm btn-gradient-success btn-icon-text">
  27. <i class="mdi mdi-plus btn-icon-prepend"></i>
  28. 新增渠道
  29. </button>
  30. </div>
  31. <div class="alert alert-info" role="alert">
  32. <i class="mdi mdi-information"></i>
  33. <strong>说明:</strong>
  34. <ul class="mb-0">
  35. <li>开启的渠道权重总和必须为 100%</li>
  36. <li>关闭的渠道权重将自动设置为 0</li>
  37. <li>系统会根据权重比例自动分配提现订单到各渠道</li>
  38. </ul>
  39. </div>
  40. <form action="" method="post" class="form-inline form-ajax">
  41. {!! csrf_field() !!}
  42. @foreach($list as $k => $v)
  43. <div style="margin: 10px 0; padding: 10px; border: 1px solid #e8e8e8; border-radius: 4px; width: 100%; background: {{ $v->status == 1 ? '#f8fff8' : '#f8f8f8' }};">
  44. <div class="form-group" style="width: 100%;">
  45. <div class="row align-items-center" style="width: 100%;">
  46. <div class="col-md-2">
  47. <label for="">渠道名称(name):</label>
  48. <input class="form-control" type="text" disabled value="{{ $v->name }}">
  49. </div>
  50. <div class="col-md-2">
  51. <label for="">渠道值(config_value):</label>
  52. <input class="form-control" type="text" disabled value="{{ $v->config_value }}">
  53. </div>
  54. <div class="col-md-2">
  55. <label for="">权重(sort) (%):</label>
  56. <input class="form-control" type="number" min="0" max="100"
  57. name="config[{{$v->id}}][sort]" value="{{$v->sort}}">
  58. </div>
  59. <div class="col-md-2">
  60. <label for="">状态(status):</label>
  61. @component('components.select', [
  62. 'name' => "config[{$v->id}][status]",
  63. 'class' => $v->status == 1 ? 'btn-primary' : 'btn-danger',
  64. 'options' => [1 => '开启', -1 => '关闭'],
  65. 'default' => $v->status])
  66. @endcomponent
  67. </div>
  68. <div class="col-md-2">
  69. <label for="">操作人(admin_id):</label>
  70. <input class="form-control" type="text" disabled value="{{ $v->account ?? '-' }}">
  71. </div>
  72. <div class="col-md-2">
  73. <label for="">&nbsp;</label>
  74. <button type="button" onclick="editChannel({{ $v->id }})" class="btn btn-sm btn-gradient-info btn-block">
  75. <i class="mdi mdi-pencil"></i> 编辑
  76. </button>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. @endforeach
  82. <div style="width: 100%; margin-top: 15px;">
  83. <button class="btn btn-gradient-primary">
  84. <i class="mdi mdi-check"></i> 提交保存
  85. </button>
  86. </div>
  87. </form>
  88. </div>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. <script>
  95. function addChannel() {
  96. layer.open({
  97. type: 2,
  98. title: '新增提现渠道',
  99. shadeClose: true,
  100. shade: 0.8,
  101. area: ['60%', '70%'],
  102. content: '/admin/withdrawal/cashier_channel_add'
  103. });
  104. }
  105. function editChannel(id) {
  106. layer.open({
  107. type: 2,
  108. title: '修改提现渠道',
  109. shadeClose: true,
  110. shade: 0.8,
  111. area: ['60%', '70%'],
  112. content: '/admin/withdrawal/cashier_channel_update/' + id
  113. });
  114. }
  115. // 实时计算权重总和
  116. $(document).ready(function() {
  117. function calculateTotal() {
  118. let total = 0;
  119. $('input[name*="[sort]"]').each(function() {
  120. let statusSelect = $(this).closest('.row').find('select[name*="[status]"]');
  121. if (statusSelect.val() == 1) {
  122. total += parseInt($(this).val()) || 0;
  123. }
  124. });
  125. // 显示总和提示
  126. let alertClass = total === 100 ? 'alert-success' : 'alert-warning';
  127. let message = total === 100 ?
  128. '<i class="mdi mdi-check-circle"></i> 权重配置正确' :
  129. '<i class="mdi mdi-alert-circle"></i> 当前开启渠道权重总和: ' + total + '% (需要100%)';
  130. if ($('.weight-alert').length === 0) {
  131. $('form').before('<div class="alert weight-alert ' + alertClass + '">' + message + '</div>');
  132. } else {
  133. $('.weight-alert').removeClass('alert-success alert-warning').addClass(alertClass).html(message);
  134. }
  135. }
  136. // 监听权重输入变化
  137. $('input[name*="[sort]"]').on('input', calculateTotal);
  138. // 监听状态变化
  139. $('select[name*="[status]"]').on('change', calculateTotal);
  140. // 初始计算
  141. calculateTotal();
  142. });
  143. </script>
  144. @endsection