海南旅游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.

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