| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- @extends('base.base')
- @section('base')
- <meta name="csrf-token" content="{{ csrf_token() }}">
- <div class="main-panel">
- <div class="content-wrapper">
- <div class="page-header">
- <h3 class="page-title">
- <span class="page-title-icon bg-gradient-primary text-white mr-2">
- <i class="mdi mdi-percent"></i>
- </span>
- 游戏税收比例管理
- </h3>
- <nav aria-label="breadcrumb">
- <ol class="breadcrumb">
- <li class="breadcrumb-item"><a href="#">游戏配置</a></li>
- <li class="breadcrumb-item active" aria-current="page">税收比例管理</li>
- </ol>
- </nav>
- </div>
- <div class="row">
- <div class="col-12">
- <div class="card">
- <div class="card-header">
- <h3 class="card-title mb-0">游戏税收比例配置</h3>
- </div>
- <div class="card-body">
- <div class="row">
- <div class="col-md-8">
- <form id="taxForm">
- <div class="form-group">
- <label for="revenue_ratio">税收比例 <small class="text-muted">(所有游戏共用此比例)</small></label>
- <div class="input-group" style="max-width: 300px;">
- <input type="number"
- class="form-control"
- id="revenue_ratio"
- name="revenue_ratio"
- value="{{ $revenueRatio }}"
- min="0"
- max="100"
- step="0.1"
- placeholder="请输入税收比例">
- <div class="input-group-append">
- <span class="input-group-text">%</span>
- </div>
- </div>
- <small class="form-text text-muted">
- 说明:此税收比例将应用到所有游戏房间。输入5表示5%,系统会自动转换为千分比(50)存储到数据库。
- </small>
- </div>
- <div class="form-group">
- <button type="submit" class="btn btn-gradient-primary" id="saveBtn">
- <i class="mdi mdi-content-save"></i> 保存修改
- </button>
- <span class="ml-3" id="saveStatus"></span>
- </div>
- </form>
- </div>
- </div>
- <div class="row mt-4">
- <div class="col-md-12">
- <div class="alert alert-info">
- <h5 class="alert-heading"><i class="mdi mdi-information"></i> 注意事项</h5>
- <ul class="mb-0">
- <li>税收比例范围为 0% - 100%</li>
- <li>所有游戏的税收值都是统一的,修改后将更新 <code>QPPlatformDB.dbo.GameRoomInfo</code> 表中所有记录的 <code>RevenueRatio</code> 字段</li>
- <li>数据库存储格式为千分比,例如:输入 5% 会存储为 50</li>
- <li>修改操作会影响所有游戏房间,请谨慎操作</li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <script>
- $(function() {
- // 设置CSRF token
- $.ajaxSetup({
- headers: {
- 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
- }
- });
- $('#taxForm').on('submit', function(e) {
- e.preventDefault();
-
- const $btn = $('#saveBtn');
- const $status = $('#saveStatus');
- const revenueRatio = $('#revenue_ratio').val();
- // 验证输入
- if (!revenueRatio || revenueRatio === '') {
- $status.html('<span class="text-danger">请输入税收比例</span>');
- return;
- }
- const revenueRatioFloat = parseFloat(revenueRatio);
- if (isNaN(revenueRatioFloat) || revenueRatioFloat < 0 || revenueRatioFloat > 100) {
- $status.html('<span class="text-danger">税收比例必须在 0-100 之间</span>');
- return;
- }
- // 禁用按钮,显示加载状态
- $btn.prop('disabled', true).html('<i class="fa fa-spinner fa-spin"></i> 保存中...');
- $status.html('');
- // 发送AJAX请求
- $.ajax({
- url: "{{ url('/admin/game-tax/update') }}",
- type: 'POST',
- data: {
- revenue_ratio: revenueRatioFloat
- },
- success: function(response) {
- $btn.prop('disabled', false).html('<i class="mdi mdi-content-save"></i> 保存修改');
-
- if (response.code == 200) {
- $status.html('<span class="text-success"><i class="mdi mdi-check-circle"></i> ' + response.msg + '</span>');
- // 3秒后清除提示
- setTimeout(function() {
- $status.fadeOut(function() {
- $(this).html('').show();
- });
- }, 3000);
- } else {
- $status.html('<span class="text-danger"><i class="mdi mdi-alert-circle"></i> ' + (response.msg || '保存失败') + '</span>');
- }
- },
- error: function(xhr) {
- $btn.prop('disabled', false).html('<i class="mdi mdi-content-save"></i> 保存修改');
-
- let errorMsg = '系统错误';
- if (xhr.responseJSON && xhr.responseJSON.msg) {
- errorMsg = xhr.responseJSON.msg;
- } else if (xhr.responseText) {
- try {
- const response = JSON.parse(xhr.responseText);
- errorMsg = response.msg || errorMsg;
- } catch(e) {
- errorMsg = '保存失败,请稍后重试';
- }
- }
-
- $status.html('<span class="text-danger"><i class="mdi mdi-alert-circle"></i> ' + errorMsg + '</span>');
- }
- });
- });
- });
- </script>
- <style>
- .input-group-text {
- min-width: 40px;
- justify-content: center;
- }
- .alert ul {
- padding-left: 20px;
- }
- .alert code {
- background-color: rgba(0,0,0,0.1);
- padding: 2px 6px;
- border-radius: 3px;
- }
- </style>
- @endsection
|