海南旅游SAAS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
4.1 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <?php
  2. namespace App\AdminSupplier\Controllers;
  3. use App\AdminSupplier\Repositories\Withdrawal;
  4. use App\Traits\DemandTraits;
  5. use App\Traits\WithdrawalTraits;
  6. use Dcat\Admin\Admin;
  7. use Dcat\Admin\Form;
  8. use Dcat\Admin\Grid;
  9. use Dcat\Admin\Layout\Column;
  10. use Dcat\Admin\Layout\Content;
  11. use Dcat\Admin\Layout\Row;
  12. use Dcat\Admin\Http\Controllers\AdminController;
  13. use Dcat\Admin\Widgets\Card;
  14. class WalletController extends AdminController
  15. {
  16. public function index(Content $content)
  17. {
  18. return $content->title('账户余额')
  19. ->body($this->build())
  20. ->body(function (Row $row) {
  21. $row->column(4, function (Column $column){
  22. $column->row(Card::make('当前余额', function () {
  23. $balance = Admin::user()->balance ?? 0;
  24. return <<<HTML
  25. <div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
  26. <h2 class="ml-1 font-large-1 text-primary">$balance</h2>
  27. </div>
  28. HTML;
  29. }));
  30. });
  31. $row->column(4, function (Column $column){
  32. $column->row(Card::make('已提现', function () {
  33. $price = \App\Models\Withdrawal::query()
  34. ->where([
  35. 'user_id' => Admin::user()->id,
  36. 'user_type' => DemandTraits::$col[1],
  37. 'status' => WithdrawalTraits::$state[3]
  38. ])
  39. ->sum('price');
  40. return <<<HTML
  41. <div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
  42. <h2 class="ml-1 font-large-1 text-primary">$price</h2>
  43. </div>
  44. HTML;
  45. }));
  46. });
  47. $row->column(4, function (Column $column) {
  48. $column->row(Card::make('提现中', function () {
  49. $price = \App\Models\Withdrawal::query()
  50. ->where([
  51. 'user_id' => Admin::user()->id,
  52. 'user_type' => DemandTraits::$col[1],
  53. 'status' => WithdrawalTraits::$state[0]
  54. ])
  55. ->sum('price');
  56. return <<<HTML
  57. <div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
  58. <h2 class="ml-1 font-large-1 text-primary">$price</h2>
  59. </div>
  60. HTML;
  61. }));
  62. });
  63. })
  64. ->body(
  65. Grid::make(new Withdrawal(), function (Grid $grid) {
  66. $grid->disableActions();
  67. $grid->disableCreateButton();
  68. $grid->disableRowSelector();
  69. $grid->model()->orderBy('id', 'desc')->where([
  70. 'user_id' => Admin::user()->id,
  71. 'user_type' => DemandTraits::$col[1]
  72. ]);
  73. $grid->column('id')->sortable();
  74. $grid->column('price', '提现金额');
  75. $grid->column('pay_type', '提现方式')->using(WithdrawalTraits::$userTypeText);
  76. $grid->column('status', '状态')
  77. ->using(WithdrawalTraits::$stateText)
  78. ->dot([
  79. 1 => Admin::color()->yellow(),
  80. 2 => 'danger',
  81. 3 => 'success',
  82. 4 => Admin::color()->info(),
  83. ]);
  84. $grid->column('created_at', '提现时间');
  85. $grid->column('updated_at')->sortable();
  86. $grid->filter(function (Grid\Filter $filter) {
  87. $filter->equal('id')->width(2);
  88. $filter->equal('status', '状态')->select(WithdrawalTraits::$stateText)->width(2);
  89. });
  90. })->title('<span style="font-size: 24px;">提现记录</span>')
  91. );
  92. }
  93. protected function build()
  94. {
  95. Form::dialog('支付宝提现')
  96. ->click('.alipay-create-form') // 绑定点击按钮
  97. ->url('/withdrawak_alipay/create') // 表单页面链接,此参数会被按钮中的 “data-url” 属性替换。。
  98. ->width('700px') // 指定弹窗宽度,可填写百分比,默认 720px
  99. ->height('650px') // 指定弹窗高度,可填写百分比,默认 690px
  100. ->success('Dcat.reload()'); // 新增成功后刷新页面
  101. Form::dialog('银行卡提现')
  102. ->click('.bank-create-form') // 绑定点击按钮
  103. ->url('/withdrawak_bank/create') // 表单页面链接,此参数会被按钮中的 “data-url” 属性替换。。
  104. ->width('700px') // 指定弹窗宽度,可填写百分比,默认 720px
  105. ->height('650px') // 指定弹窗高度,可填写百分比,默认 690px
  106. ->success('Dcat.reload()'); // 新增成功后刷新页面
  107. return "
  108. <div style='padding-bottom:20px'>
  109. <span class='btn btn-success alipay-create-form'> 支付宝提现 </span> &nbsp;&nbsp;
  110. <span class='btn btn-success bank-create-form'> 银行卡提现 </span> &nbsp;&nbsp;
  111. </div>";
  112. }
  113. }