128 lines
4.0 KiB
HTML
128 lines
4.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-TW" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html">
|
|
|
|
<head>
|
|
<!-- Required meta tags -->
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<title>新增角色</title>
|
|
|
|
<script>
|
|
const jwt = localStorage.getItem("jwtToken");
|
|
if (!jwt) {
|
|
window.location.href = "./login.html";
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<p>
|
|
<div class="page-title">新增角色</div>
|
|
</p>
|
|
<form id="upload-form">
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<div class="table-field-title">角色名稱</div>
|
|
</td>
|
|
<td>
|
|
<input type="text" id="character_name" placeholder="角色名稱">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div class="table-field-title">角色站位</div>
|
|
</td>
|
|
<td>
|
|
<input type="text" id="character_position" placeholder="角色位置">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div class="table-field-title">角色類型</div>
|
|
</td>
|
|
<td>
|
|
<select id="character_index"></select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div class="table-field-title">角色圖片</div>
|
|
</td>
|
|
<td>
|
|
<input type="file" id="image-input" />
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type="submit" value="上傳並新增" />
|
|
</form>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
|
<script>
|
|
let selectElement = document.getElementById("character_index");
|
|
const name = ["前衛", "中衛", "後衛"];
|
|
for (let i = 0; i < name.length; i++) {
|
|
const optionElement = document.createElement("option");
|
|
optionElement.value = i;
|
|
optionElement.textContent = name[i];
|
|
selectElement.appendChild(optionElement);
|
|
}
|
|
|
|
const charaName = document.getElementById("character_name");
|
|
const charaPos = document.getElementById("character_position");
|
|
|
|
// 监听表单提交事件
|
|
document.getElementById('upload-form').addEventListener('submit', async (event) => {
|
|
event.preventDefault(); // 阻止表单默认提交行为
|
|
|
|
const imageFile = document.getElementById('image-input').files[0];
|
|
if (charaName === "") {
|
|
alert('請輸入角色名稱');
|
|
return;
|
|
}
|
|
|
|
if (charaPos === "") {
|
|
alert('請輸入角色站位');
|
|
return;
|
|
}
|
|
|
|
if (!imageFile) {
|
|
alert('请选择一张图片');
|
|
return;
|
|
}
|
|
|
|
let data = {
|
|
name: charaName.value,
|
|
position: selectElement.value,
|
|
standIndex: parseInt(charaPos.value)
|
|
};
|
|
let jsonString = JSON.stringify(data);
|
|
console.log(jsonString); // 处理上传成功的响应
|
|
|
|
try {
|
|
// 创建一个 FormData 对象,用于包装文件和其他表单数据
|
|
const formData = new FormData();
|
|
formData.append('json', jsonString);
|
|
formData.append('image', imageFile);
|
|
|
|
// 发送 POST 请求
|
|
const response = await axios.post('./api/v1/character', formData, {
|
|
headers: {
|
|
'Authorization': 'Bearer ' + jwt, // 替换为实际的 JWT Token
|
|
'Content-Type': 'multipart/form-data',
|
|
},
|
|
});
|
|
|
|
console.log(response.data); // 处理上传成功的响应
|
|
alert('上传成功');
|
|
} catch (error) {
|
|
console.error(error); // 处理上传失败的错误
|
|
alert('上传失败');
|
|
}
|
|
});
|
|
</script>
|
|
</body>
|
|
|
|
</html> |