Files
nxxmdata/bank-frontend/test-supervision-tasks.html

207 lines
8.8 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html>
<head>
<title>监管任务API测试</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
.test-section { margin-bottom: 20px; padding: 15px; border: 1px solid #ddd; border-radius: 4px; }
button { background: #1890ff; color: white; padding: 8px 16px; border: none; border-radius: 4px; cursor: pointer; margin: 5px; }
button:hover { background: #40a9ff; }
.result { margin-top: 10px; padding: 10px; background: #f5f5f5; border-radius: 4px; white-space: pre-wrap; font-family: monospace; font-size: 12px; }
.success { background: #f6ffed; border: 1px solid #b7eb8f; }
.error { background: #fff2f0; border: 1px solid #ffccc7; }
</style>
</head>
<body>
<h1>监管任务API测试页面</h1>
<div class="test-section">
<h2>1. 登录测试</h2>
<button onclick="testLogin()">测试登录</button>
<div id="loginResult" class="result" style="display: none;"></div>
</div>
<div class="test-section">
<h2>2. 获取监管任务列表</h2>
<button onclick="testGetTasks()" id="getTasksBtn" disabled>获取监管任务列表</button>
<div id="tasksResult" class="result" style="display: none;"></div>
</div>
<div class="test-section">
<h2>3. 获取监管任务统计</h2>
<button onclick="testGetStats()" id="getStatsBtn" disabled>获取监管任务统计</button>
<div id="statsResult" class="result" style="display: none;"></div>
</div>
<div class="test-section">
<h2>4. 创建监管任务</h2>
<button onclick="testCreateTask()" id="createTaskBtn" disabled>创建监管任务</button>
<div id="createResult" class="result" style="display: none;"></div>
</div>
<script>
let token = '';
async function testLogin() {
try {
const response = await fetch('http://localhost:5351/api/auth/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: 'admin',
password: 'Admin123456'
})
});
const data = await response.json();
const resultDiv = document.getElementById('loginResult');
resultDiv.style.display = 'block';
if (data.success) {
token = data.data.token;
resultDiv.className = 'result success';
resultDiv.textContent = `登录成功!\nToken: ${token.substring(0, 50)}...\n用户: ${data.data.user.username}`;
// 启用其他按钮
document.getElementById('getTasksBtn').disabled = false;
document.getElementById('getStatsBtn').disabled = false;
document.getElementById('createTaskBtn').disabled = false;
} else {
resultDiv.className = 'result error';
resultDiv.textContent = `登录失败: ${data.message}`;
}
} catch (error) {
const resultDiv = document.getElementById('loginResult');
resultDiv.style.display = 'block';
resultDiv.className = 'result error';
resultDiv.textContent = `登录错误: ${error.message}`;
}
}
async function testGetTasks() {
if (!token) {
alert('请先登录!');
return;
}
try {
const response = await fetch('http://localhost:5351/api/supervision-tasks?page=1&limit=10', {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();
const resultDiv = document.getElementById('tasksResult');
resultDiv.style.display = 'block';
if (data.success) {
resultDiv.className = 'result success';
resultDiv.textContent = `获取监管任务列表成功!\n任务数量: ${data.data.tasks.length}\n总数量: ${data.data.pagination.total}\n\n前3个任务:\n${JSON.stringify(data.data.tasks.slice(0, 3), null, 2)}`;
} else {
resultDiv.className = 'result error';
resultDiv.textContent = `获取失败: ${data.message}`;
}
} catch (error) {
const resultDiv = document.getElementById('tasksResult');
resultDiv.style.display = 'block';
resultDiv.className = 'result error';
resultDiv.textContent = `请求错误: ${error.message}`;
}
}
async function testGetStats() {
if (!token) {
alert('请先登录!');
return;
}
try {
const response = await fetch('http://localhost:5351/api/supervision-tasks/stats', {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();
const resultDiv = document.getElementById('statsResult');
resultDiv.style.display = 'block';
if (data.success) {
resultDiv.className = 'result success';
resultDiv.textContent = `获取监管任务统计成功!\n总计: ${data.data.total}\n待监管: ${data.data.pending}\n监管中: ${data.data.supervising}\n已完成: ${data.data.completed}\n已暂停: ${data.data.suspended}`;
} else {
resultDiv.className = 'result error';
resultDiv.textContent = `获取失败: ${data.message}`;
}
} catch (error) {
const resultDiv = document.getElementById('statsResult');
resultDiv.style.display = 'block';
resultDiv.className = 'result error';
resultDiv.textContent = `请求错误: ${error.message}`;
}
}
async function testCreateTask() {
if (!token) {
alert('请先登录!');
return;
}
try {
const newTask = {
applicationNumber: 'APP_TEST_' + Date.now(),
contractNumber: 'CONTRACT_TEST_' + Date.now(),
productName: '测试农业贷款产品',
customerName: '测试客户',
idType: 'id_card',
idNumber: '110101199001011234',
assetType: 'cattle',
assetQuantity: 10,
supervisionStatus: 'pending',
startTime: '2024-12-20',
endTime: '2024-12-31',
loanAmount: 100000.00,
interestRate: 0.0600,
loanTerm: 12,
supervisorName: '测试监管员',
supervisorPhone: '13800138000',
farmAddress: '测试养殖场地址',
remarks: '这是一个测试监管任务'
};
const response = await fetch('http://localhost:5351/api/supervision-tasks', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(newTask)
});
const data = await response.json();
const resultDiv = document.getElementById('createResult');
resultDiv.style.display = 'block';
if (data.success) {
resultDiv.className = 'result success';
resultDiv.textContent = `创建监管任务成功!\n任务ID: ${data.data.id}\n申请单号: ${data.data.applicationNumber}\n客户姓名: ${data.data.customerName}\n监管状态: ${data.data.supervisionStatus}`;
} else {
resultDiv.className = 'result error';
resultDiv.textContent = `创建失败: ${data.message}`;
}
} catch (error) {
const resultDiv = document.getElementById('createResult');
resultDiv.style.display = 'block';
resultDiv.className = 'result error';
resultDiv.textContent = `请求错误: ${error.message}`;
}
}
</script>
</body>
</html>