Spaces:
Sleeping
Sleeping
Update templates/index.html
Browse files- templates/index.html +30 -12
templates/index.html
CHANGED
|
@@ -304,7 +304,7 @@
|
|
| 304 |
<body>
|
| 305 |
<div class="container">
|
| 306 |
<header class="header">
|
| 307 |
-
<h1>
|
| 308 |
<p>AI驱动的智能皮肤疾病诊断与分析平台</p>
|
| 309 |
</header>
|
| 310 |
|
|
@@ -316,7 +316,7 @@
|
|
| 316 |
</h2>
|
| 317 |
|
| 318 |
<form id="analysisForm" enctype="multipart/form-data">
|
| 319 |
-
<
|
| 320 |
<i data-lucide="camera"></i>
|
| 321 |
<h3>上传皮肤图像</h3>
|
| 322 |
<p>拖拽图片到此处或点击选择文件</p>
|
|
@@ -324,10 +324,10 @@
|
|
| 324 |
支持 JPG, PNG, GIF 格式,最大10MB
|
| 325 |
</p>
|
| 326 |
<input type="file" id="imageInput" name="image" accept="image/*" style="display: none;">
|
| 327 |
-
</
|
| 328 |
-
|
| 329 |
<div id="imagePreview"></div>
|
| 330 |
-
|
| 331 |
<div style="margin: 25px 0;">
|
| 332 |
<label for="textInput" style="display: block; margin-bottom: 10px; font-weight: 600;">
|
| 333 |
<i data-lucide="file-text"></i> 症状描述或问题咨询:
|
|
@@ -339,7 +339,7 @@
|
|
| 339 |
placeholder="请描述患者的症状、病史、用药情况或其他相关信息... 例如:患者皮肤出现红疹,伴有瘙痒,持续一周..."
|
| 340 |
></textarea>
|
| 341 |
</div>
|
| 342 |
-
|
| 343 |
<button type="submit" id="submitBtn" class="submit-btn">
|
| 344 |
<i data-lucide="brain"></i>
|
| 345 |
开始AI诊断分析
|
|
@@ -359,7 +359,7 @@
|
|
| 359 |
<ul style="margin-left: 20px; margin-top: 10px;">
|
| 360 |
<li>📸 支持皮肤图像上传与分析</li>
|
| 361 |
<li>💬 结合文字症状描述</li>
|
| 362 |
-
|
| 363 |
<li>⚡ 快速准确的诊断建议</li>
|
| 364 |
<li>📋 详细的治疗方案推荐</li>
|
| 365 |
</ul>
|
|
@@ -392,18 +392,36 @@
|
|
| 392 |
const results = document.getElementById('results');
|
| 393 |
const imagePreview = document.getElementById('imagePreview');
|
| 394 |
const form = document.getElementById('analysisForm');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 395 |
|
| 396 |
-
// 上传区域的点击和拖放逻辑
|
| 397 |
-
uploadArea.addEventListener('click', () => imageInput.click());
|
| 398 |
-
imageInput.addEventListener('change', (e) => handleFile(e.target.files[0]));
|
| 399 |
-
uploadArea.addEventListener('dragover', (e) => { e.preventDefault(); uploadArea.classList.add('dragover'); });
|
| 400 |
-
uploadArea.addEventListener('dragleave', () => uploadArea.classList.remove('dragover'));
|
| 401 |
uploadArea.addEventListener('drop', (e) => {
|
| 402 |
e.preventDefault();
|
| 403 |
uploadArea.classList.remove('dragover');
|
| 404 |
const file = e.dataTransfer.files[0];
|
| 405 |
if (file && file.type.startsWith('image/')) {
|
|
|
|
| 406 |
handleFile(file);
|
|
|
|
|
|
|
|
|
|
|
|
|
| 407 |
}
|
| 408 |
});
|
| 409 |
|
|
|
|
| 304 |
<body>
|
| 305 |
<div class="container">
|
| 306 |
<header class="header">
|
| 307 |
+
<h1> 皮镜 (SkinLens)</h1>
|
| 308 |
<p>AI驱动的智能皮肤疾病诊断与分析平台</p>
|
| 309 |
</header>
|
| 310 |
|
|
|
|
| 316 |
</h2>
|
| 317 |
|
| 318 |
<form id="analysisForm" enctype="multipart/form-data">
|
| 319 |
+
<label for="imageInput" class="upload-area" id="uploadArea">
|
| 320 |
<i data-lucide="camera"></i>
|
| 321 |
<h3>上传皮肤图像</h3>
|
| 322 |
<p>拖拽图片到此处或点击选择文件</p>
|
|
|
|
| 324 |
支持 JPG, PNG, GIF 格式,最大10MB
|
| 325 |
</p>
|
| 326 |
<input type="file" id="imageInput" name="image" accept="image/*" style="display: none;">
|
| 327 |
+
</label>
|
| 328 |
+
|
| 329 |
<div id="imagePreview"></div>
|
| 330 |
+
|
| 331 |
<div style="margin: 25px 0;">
|
| 332 |
<label for="textInput" style="display: block; margin-bottom: 10px; font-weight: 600;">
|
| 333 |
<i data-lucide="file-text"></i> 症状描述或问题咨询:
|
|
|
|
| 339 |
placeholder="请描述患者的症状、病史、用药情况或其他相关信息... 例如:患者皮肤出现红疹,伴有瘙痒,持续一周..."
|
| 340 |
></textarea>
|
| 341 |
</div>
|
| 342 |
+
|
| 343 |
<button type="submit" id="submitBtn" class="submit-btn">
|
| 344 |
<i data-lucide="brain"></i>
|
| 345 |
开始AI诊断分析
|
|
|
|
| 359 |
<ul style="margin-left: 20px; margin-top: 10px;">
|
| 360 |
<li>📸 支持皮肤图像上传与分析</li>
|
| 361 |
<li>💬 结合文字症状描述</li>
|
| 362 |
+
<li>🤖 基于Gemini-2.0-Pro AI模型</li>
|
| 363 |
<li>⚡ 快速准确的诊断建议</li>
|
| 364 |
<li>📋 详细的治疗方案推荐</li>
|
| 365 |
</ul>
|
|
|
|
| 392 |
const results = document.getElementById('results');
|
| 393 |
const imagePreview = document.getElementById('imagePreview');
|
| 394 |
const form = document.getElementById('analysisForm');
|
| 395 |
+
|
| 396 |
+
// 文件输入框改变事件,处理文件预览
|
| 397 |
+
imageInput.addEventListener('change', (e) => {
|
| 398 |
+
const file = e.target.files[0];
|
| 399 |
+
if (file) {
|
| 400 |
+
handleFile(file);
|
| 401 |
+
}
|
| 402 |
+
});
|
| 403 |
+
|
| 404 |
+
// 拖放事件处理
|
| 405 |
+
uploadArea.addEventListener('dragover', (e) => {
|
| 406 |
+
e.preventDefault();
|
| 407 |
+
uploadArea.classList.add('dragover');
|
| 408 |
+
});
|
| 409 |
+
|
| 410 |
+
uploadArea.addEventListener('dragleave', () => {
|
| 411 |
+
uploadArea.classList.remove('dragover');
|
| 412 |
+
});
|
| 413 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 414 |
uploadArea.addEventListener('drop', (e) => {
|
| 415 |
e.preventDefault();
|
| 416 |
uploadArea.classList.remove('dragover');
|
| 417 |
const file = e.dataTransfer.files[0];
|
| 418 |
if (file && file.type.startsWith('image/')) {
|
| 419 |
+
// 将文件传递给 handleFile 函数
|
| 420 |
handleFile(file);
|
| 421 |
+
// 也要设置到 file input 中,以便表单能提交
|
| 422 |
+
const dataTransfer = new DataTransfer();
|
| 423 |
+
dataTransfer.items.add(file);
|
| 424 |
+
imageInput.files = dataTransfer.files;
|
| 425 |
}
|
| 426 |
});
|
| 427 |
|