Files
root 582f454a5a refactor: 重构后端目录结构和命名规范
- 将后端目录名从大写改为小写 (Controller->controller 等)
- 将命名空间从 App\ 改为 app\ (符合 webman 官方规范)
- 移除不必要的 bootstrap 目录
- 完善出差审批业务功能:
  - 添加删除草稿功能
  - 添加审批操作功能(同意/拒绝)
  - 完善审批详情页,显示审批人和审批记录
- 前端优化:
  - 调整列表页行高
  - 隐藏底部导航栏
  - 仪表盘只显示3个快捷入口

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:09:04 +08:00

75 lines
3.1 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Token 设置工具</title>
<style>
body { font-family: sans-serif; padding: 20px; max-width: 600px; margin: 0 auto; }
h1 { color: #333; }
.section { background: #f5f5f5; padding: 20px; margin: 20px 0; border-radius: 8px; }
button { background: #1677ff; color: white; border: none; padding: 12px 30px; font-size: 16px; border-radius: 6px; cursor: pointer; }
button:hover { background: #0958d9; }
.success { color: #52c41a; font-weight: bold; margin-top: 10px; }
.token-display { background: #fff; padding: 10px; border-radius: 4px; word-break: break-all; font-family: monospace; font-size: 12px; margin-top: 10px; }
</style>
</head>
<body>
<h1>🔧 开发调试工具</h1>
<div class="section">
<h3>步骤 1:复制 Token</h3>
<div class="token-display" id="tokenDisplay"></div>
<button onclick="copyToken()">复制 Token</button>
<span id="copyResult"></span>
</div>
<div class="section">
<h3>步骤 2:设置 Token</h3>
<ol>
<li>按 F12 打开开发者工具</li>
<li>切换到 Console 标签</li>
<li>粘贴并执行:<br><code>localStorage.setItem('token', 刚才复制的token)</code></li>
</ol>
</div>
<div class="section">
<h3>步骤 3:验证</h3>
<button onclick="verifyToken()">验证 Token 是否设置成功</button>
<div id="verifyResult" style="margin-top: 10px;"></div>
</div>
<script>
const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJjb21wYW55X2lkIjoyLCJ1c2VybmFtZSI6Ilx1Njc0ZVx1NGY3M1x1NTM1YSIsImlhdCI6MTc3MjAwOTA0MCwiZXhwIjoxNzcyNjEzODQwfQ.mFsGM4bxRZdAMTQ3QgHO-DoFCWZUhUNY2N62VkN6FZ4';
document.getElementById('tokenDisplay').textContent = token;
function copyToken() {
navigator.clipboard.writeText(token).then(() => {
document.getElementById('copyResult').textContent = ' ✅ 已复制!';
}).catch(() => {
// 备用方案
const textarea = document.createElement('textarea');
textarea.value = token;
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
document.getElementById('copyResult').textContent = ' ✅ 已复制!';
});
}
function verifyToken() {
const saved = localStorage.getItem('token');
const resultDiv = document.getElementById('verifyResult');
if (saved === token) {
resultDiv.innerHTML = '<span class="success">✅ Token 验证成功!可以刷新主页面了。</span>';
} else if (saved) {
resultDiv.innerHTML = '<span style="color: orange;">⚠️ Token 已存在但不匹配,请重新设置</span>';
} else {
resultDiv.innerHTML = '<span style="color: red;">✗ Token 未设置,请按照步骤2设置</span>';
}
}
</script>
</body>
</html>