index.html 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>自助开卡系统</title>
  7. <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
  8. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  9. </head>
  10. <body>
  11. <div class="container">
  12. <header>
  13. <h1><i class="fas fa-credit-card"></i> 自助开卡系统</h1>
  14. <div class="header-actions">
  15. <a href="/import" class="btn btn-primary">
  16. <i class="fas fa-file-import"></i> 批量导入
  17. </a>
  18. <a href="#" id="refresh-btn" class="btn btn-secondary">
  19. <i class="fas fa-sync-alt"></i> 刷新
  20. </a>
  21. </div>
  22. </header>
  23. <div class="dashboard">
  24. <div class="stats-card">
  25. <h3><i class="fas fa-chart-bar"></i> 申请统计</h3>
  26. <div id="stats-container">
  27. <p>加载中...</p>
  28. </div>
  29. </div>
  30. <div class="filter-card">
  31. <h3><i class="fas fa-filter"></i> 筛选</h3>
  32. <form method="get" action="/" class="filter-form">
  33. <div class="form-group">
  34. <label for="state-filter">状态筛选:</label>
  35. <select id="state-filter" name="state">
  36. <option value="">所有状态</option>
  37. {% for state in states %}
  38. <option value="{{ state.application_state }}"
  39. {% if current_filter == state.application_state %}selected{% endif %}>
  40. {{ state.application_state }}
  41. </option>
  42. {% endfor %}
  43. </select>
  44. </div>
  45. <button type="submit" class="btn btn-primary">
  46. <i class="fas fa-search"></i> 筛选
  47. </button>
  48. <a href="/" class="btn btn-secondary">
  49. <i class="fas fa-times"></i> 清除
  50. </a>
  51. </form>
  52. </div>
  53. </div>
  54. <main>
  55. <h2><i class="fas fa-list"></i> 开卡申请列表</h2>
  56. {% if applications %}
  57. <div class="table-responsive">
  58. <table class="data-table">
  59. <thead>
  60. <tr>
  61. <th>ID</th>
  62. <th>激活码</th>
  63. <th>类型</th>
  64. <th>姓名</th>
  65. <th>邮箱</th>
  66. <th>卡号</th>
  67. <th>CVC</th>
  68. <th>到期时间</th>
  69. <th>余额</th>
  70. <th>状态</th>
  71. <th>操作</th>
  72. </tr>
  73. </thead>
  74. <tbody>
  75. {% for app in applications %}
  76. <tr>
  77. <td>{{ app.id }}</td>
  78. <td>{{ app.verification_code }}</td>
  79. <td>
  80. {% if app.type == 0 %}
  81. 金卡
  82. {% else %}
  83. 银卡
  84. {% endif %}
  85. </td>
  86. <td>{{ app.last_name }}, {{ app.first_name }}</td>
  87. <td>{{ app.email }}</td>
  88. <td>{{ app.card_number or "" }}</td>
  89. <td>{{ app.cvc or "" }}</td>
  90. <td>{{ app.expiration_date or "" }}</td>
  91. <td>{{ app.balance or "" }}</td>
  92. <td>
  93. <span class="status-badge status-{{ app.application_state }}">
  94. {{ app.application_state }}
  95. </span>
  96. </td>
  97. <td class="actions">
  98. <a href="/application/{{ app.id }}" class="btn btn-sm btn-info" title="查看详情">
  99. <i class="fas fa-eye"></i>
  100. </a>
  101. <button class="btn btn-sm btn-danger delete-btn"
  102. data-id="{{ app.id }}"
  103. data-name="{{ app.last_name }}, {{ app.first_name }}"
  104. title="删除">
  105. <i class="fas fa-trash"></i>
  106. </button>
  107. </td>
  108. </tr>
  109. {% endfor %}
  110. </tbody>
  111. </table>
  112. </div>
  113. {% else %}
  114. <div class="empty-state">
  115. <i class="fas fa-clipboard-list fa-3x"></i>
  116. <h3>暂无申请记录</h3>
  117. <p>点击上方"批量导入"按钮添加开卡申请数据</p>
  118. </div>
  119. {% endif %}
  120. </main>
  121. <main>
  122. <iframe src="https://mail.lamp.run/?search=myprepaidcenter" style=" width: 100%; border: none; height: 800px; "></iframe>
  123. </main>
  124. <main>
  125. <iframe src="https://user.lamp.run/subuser/manage?type=bank" style=" width: 100%; border: none; height: 800px; "></iframe>
  126. </main>
  127. <footer>
  128. <p>自助开卡系统 &copy; 2026</p>
  129. </footer>
  130. </div>
  131. <!-- 删除确认对话框 -->
  132. <div id="delete-modal" class="modal">
  133. <div class="modal-content">
  134. <h3><i class="fas fa-exclamation-triangle"></i> 确认删除</h3>
  135. <p>确定要删除申请记录 <strong id="delete-name"></strong> 吗?此操作无法撤销。</p>
  136. <div class="modal-actions">
  137. <button id="cancel-delete" class="btn btn-secondary">取消</button>
  138. <button id="confirm-delete" class="btn btn-danger">删除</button>
  139. </div>
  140. </div>
  141. </div>
  142. <script src="{{ url_for('static', filename='js/script.js') }}"></script>
  143. <script>
  144. window.appType = 'bankAdmin';
  145. window.owoLoginSuccess = (userData) => {
  146. console.log(userData)
  147. }
  148. </script>
  149. <script src="https://cunchu.site/work/login/iframe.js"></script>
  150. </body>
  151. </html>