Upload index.html
Browse files- index.html +265 -22
index.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
<!DOCTYPE html>
|
| 2 |
<html lang="zh-TW">
|
| 3 |
-
<head>
|
| 4 |
<meta charset="UTF-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
| 6 |
<title>Classroom Focus OS - 班級旗艦極光看板</title>
|
|
@@ -598,19 +598,139 @@
|
|
| 598 |
}
|
| 599 |
</style>
|
| 600 |
</head>
|
| 601 |
-
<body data-theme="dark-slate">
|
| 602 |
|
| 603 |
-
<canvas id="aurora-canvas"></canvas>
|
| 604 |
|
| 605 |
<div class="top-bar">
|
| 606 |
<div class="live-clock-line">
|
| 607 |
-
<div class="live-clock" id="liveClock">
|
| 608 |
<div class="period-indicator" id="periodIndicator">課堂專注模式</div>
|
| 609 |
</div>
|
| 610 |
-
<div class="quote-capsule" id="dailyQuoteText">
|
| 611 |
</div>
|
| 612 |
|
| 613 |
-
<div id="canvas-workspace"><
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 614 |
|
| 615 |
<!-- 編輯狀態控制列 -->
|
| 616 |
<div class="edit-banner" id="editBanner">
|
|
@@ -623,20 +743,20 @@
|
|
| 623 |
<!-- 齒輪解鎖按鈕 -->
|
| 624 |
<div class="settings-trigger" onclick="openPinModal()" title="開啟看板設定">
|
| 625 |
<svg width="26" height="26" fill="currentColor" viewBox="0 0 24 24">
|
| 626 |
-
<path d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>
|
| 627 |
</svg>
|
| 628 |
</div>
|
| 629 |
|
| 630 |
<!-- 螢幕數位按鍵鎖 -->
|
| 631 |
-
<div class="modal-backdrop" id="pinModal">
|
| 632 |
<div class="pin-modal-box">
|
| 633 |
<h3>管理員驗證</h3>
|
| 634 |
<p style="font-size:0.8rem; color:#94a3b8; margin-top:4px;">請點擊螢幕按鈕輸入 PIN 碼 (902)</p>
|
| 635 |
|
| 636 |
<div class="pin-dots-display" id="pinDots">
|
| 637 |
-
<div class="pin-dot"></div>
|
| 638 |
-
<div class="pin-dot"></div>
|
| 639 |
-
<div class="pin-dot"></div>
|
| 640 |
</div>
|
| 641 |
|
| 642 |
<div class="pin-keypad">
|
|
@@ -659,7 +779,7 @@
|
|
| 659 |
</div>
|
| 660 |
|
| 661 |
<!-- 後台側拉抽屜 -->
|
| 662 |
-
<div class="admin-drawer" id="adminDrawer">
|
| 663 |
<div class="drawer-header">
|
| 664 |
<h3>看板與上下課作息設定</h3>
|
| 665 |
<button class="btn btn-secondary" onclick="closeAdminDrawer()">關閉</button>
|
|
@@ -706,7 +826,75 @@
|
|
| 706 |
<h4>倒數項目資料庫 (可複選多個高亮)</h4>
|
| 707 |
<button class="btn btn-primary" onclick="addNewEvent()">+ 新增卡片</button>
|
| 708 |
</div>
|
| 709 |
-
<div id="editorItemList" style="display:flex; flex-direction:column; gap:10px;"><
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 710 |
</div>
|
| 711 |
</div>
|
| 712 |
|
|
@@ -839,14 +1027,68 @@
|
|
| 839 |
|
| 840 |
/*START_DEFAULT_DATA*/
|
| 841 |
const DEFAULT_DATA = {
|
| 842 |
-
|
| 843 |
-
|
| 844 |
-
|
| 845 |
-
|
| 846 |
-
|
| 847 |
-
|
| 848 |
-
|
| 849 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 850 |
/*END_DEFAULT_DATA*/
|
| 851 |
|
| 852 |
const STORAGE_KEY = "classroom_focus_master_data";
|
|
@@ -1449,5 +1691,6 @@
|
|
| 1449 |
|
| 1450 |
renderBoard();
|
| 1451 |
</script>
|
| 1452 |
-
|
|
|
|
| 1453 |
</html>
|
|
|
|
| 1 |
<!DOCTYPE html>
|
| 2 |
<html lang="zh-TW">
|
| 3 |
+
<html lang="zh-TW"><head><script>window.huggingface={variables:{"SPACE_CREATOR_USER_ID":"675d88eddd3e9eeed66ba88f"}};</script>
|
| 4 |
<meta charset="UTF-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
| 6 |
<title>Classroom Focus OS - 班級旗艦極光看板</title>
|
|
|
|
| 598 |
}
|
| 599 |
</style>
|
| 600 |
</head>
|
| 601 |
+
<body data-theme="dark-slate" class="is-editing">
|
| 602 |
|
| 603 |
+
<canvas id="aurora-canvas" width="1536" height="680"></canvas>
|
| 604 |
|
| 605 |
<div class="top-bar">
|
| 606 |
<div class="live-clock-line">
|
| 607 |
+
<div class="live-clock" id="liveClock">08:58:48</div>
|
| 608 |
<div class="period-indicator" id="periodIndicator">課堂專注模式</div>
|
| 609 |
</div>
|
| 610 |
+
<div class="quote-capsule" id="dailyQuoteText">緊張是因為你在乎,把在乎換成多做一題。</div>
|
| 611 |
</div>
|
| 612 |
|
| 613 |
+
<div id="canvas-workspace"><div class="board-card " id="card-1" data-cat="exam" style="left: 1069px; top: 109.6px; width: 448.8px; height: 281.8px;">
|
| 614 |
+
<div class="card-inner">
|
| 615 |
+
<div class="card-top">
|
| 616 |
+
<div class="card-header-line">
|
| 617 |
+
<div class="cat-icon"><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg></div>
|
| 618 |
+
<div class="card-title">第一次定期評量</div>
|
| 619 |
+
</div>
|
| 620 |
+
<div class="card-target-date">2026.10.14</div>
|
| 621 |
+
</div>
|
| 622 |
+
|
| 623 |
+
<div class="card-center-metric">
|
| 624 |
+
<span class="metric-number" style="font-size: 7.012500762939453rem;">25</span>
|
| 625 |
+
<span class="metric-unit">天</span>
|
| 626 |
+
</div>
|
| 627 |
+
|
| 628 |
+
<div class="card-dynamic-body" style="display: none;">
|
| 629 |
+
<div class="progress-track">
|
| 630 |
+
<div class="progress-fill" style="width: 58%;"></div>
|
| 631 |
+
</div>
|
| 632 |
+
<div class="metric-details">
|
| 633 |
+
<span>備考準備期進度:58%</span>
|
| 634 |
+
<span>約合 <b>3.6</b> 週</span>
|
| 635 |
+
</div>
|
| 636 |
+
</div>
|
| 637 |
+
|
| 638 |
+
<div class="card-badge-wrap">
|
| 639 |
+
<div class="status-capsule">倒數 25 天</div>
|
| 640 |
+
</div>
|
| 641 |
+
</div>
|
| 642 |
+
<div class="resize-handle"></div>
|
| 643 |
+
</div><div class="board-card " id="card-2" data-cat="sports" style="left: 1066.6px; top: 402px; width: 457.8px; height: 256.6px;">
|
| 644 |
+
<div class="card-inner">
|
| 645 |
+
<div class="card-top">
|
| 646 |
+
<div class="card-header-line">
|
| 647 |
+
<div class="cat-icon"><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M6 9H4.5a2.5 2.5 0 0 1 0-5H6"></path><path d="M18 9h1.5a2.5 2.5 0 0 0 0-5H18"></path><path d="M4 22h16"></path><path d="M10 14.66V17c0 .55-.45 1-1 1H7v4h10v-4h-2c-.55 0-1-.45-1-1v-2.34c3.08-.63 5.4-3.3 5.4-6.66V4H4v4c0 3.36 2.32 6.03 5.4 6.66z"></path></svg></div>
|
| 648 |
+
<div class="card-title">校慶運動大會</div>
|
| 649 |
+
</div>
|
| 650 |
+
<div class="card-target-date">2026.11.14</div>
|
| 651 |
+
</div>
|
| 652 |
+
|
| 653 |
+
<div class="card-center-metric">
|
| 654 |
+
<span class="metric-number" style="font-size: 6.414999389648438rem;">56</span>
|
| 655 |
+
<span class="metric-unit">天</span>
|
| 656 |
+
</div>
|
| 657 |
+
|
| 658 |
+
<div class="card-dynamic-body" style="display: none;">
|
| 659 |
+
<div class="progress-track">
|
| 660 |
+
<div class="progress-fill" style="width: 38%;"></div>
|
| 661 |
+
</div>
|
| 662 |
+
<div class="metric-details">
|
| 663 |
+
<span>備考準備期進度:38%</span>
|
| 664 |
+
<span>約合 <b>8.0</b> 週</span>
|
| 665 |
+
</div>
|
| 666 |
+
</div>
|
| 667 |
+
|
| 668 |
+
<div class="card-badge-wrap">
|
| 669 |
+
<div class="status-capsule">倒數 56 天</div>
|
| 670 |
+
</div>
|
| 671 |
+
</div>
|
| 672 |
+
<div class="resize-handle"></div>
|
| 673 |
+
</div><div class="board-card highlight" id="card-3" data-cat="exam" style="left: 32px; top: 115px; width: 550.6px; height: 534px;">
|
| 674 |
+
<div class="card-inner">
|
| 675 |
+
<div class="card-top">
|
| 676 |
+
<div class="card-header-line">
|
| 677 |
+
<div class="cat-icon"><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg></div>
|
| 678 |
+
<div class="card-title">國中教育會考</div>
|
| 679 |
+
</div>
|
| 680 |
+
<div class="card-target-date">2027.05.15</div>
|
| 681 |
+
</div>
|
| 682 |
+
|
| 683 |
+
<div class="card-center-metric">
|
| 684 |
+
<span class="metric-number" style="font-size: 7.5rem;">238</span>
|
| 685 |
+
<span class="metric-unit">天</span>
|
| 686 |
+
</div>
|
| 687 |
+
|
| 688 |
+
<div class="card-dynamic-body" style="display: flex;">
|
| 689 |
+
<div class="progress-track">
|
| 690 |
+
<div class="progress-fill" style="width: 21%;"></div>
|
| 691 |
+
</div>
|
| 692 |
+
<div class="metric-details">
|
| 693 |
+
<span>備考準備期進度:21%</span>
|
| 694 |
+
<span>約合 <b>34.0</b> 週</span>
|
| 695 |
+
</div>
|
| 696 |
+
</div>
|
| 697 |
+
|
| 698 |
+
<div class="card-badge-wrap">
|
| 699 |
+
<div class="status-capsule">倒數 238 天</div>
|
| 700 |
+
</div>
|
| 701 |
+
</div>
|
| 702 |
+
<div class="resize-handle"></div>
|
| 703 |
+
</div><div class="board-card highlight" id="card-1789777581106" data-cat="exam" style="left: 601.6px; top: 116.2px; width: 434.2px; height: 534px;">
|
| 704 |
+
<div class="card-inner">
|
| 705 |
+
<div class="card-top">
|
| 706 |
+
<div class="card-header-line">
|
| 707 |
+
<div class="cat-icon"><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg></div>
|
| 708 |
+
<div class="card-title">全縣模擬考(1-4冊)</div>
|
| 709 |
+
</div>
|
| 710 |
+
<div class="card-target-date">2026.12.23</div>
|
| 711 |
+
</div>
|
| 712 |
+
|
| 713 |
+
<div class="card-center-metric">
|
| 714 |
+
<span class="metric-number" style="font-size: 6.784375190734863rem;">95</span>
|
| 715 |
+
<span class="metric-unit">天</span>
|
| 716 |
+
</div>
|
| 717 |
+
|
| 718 |
+
<div class="card-dynamic-body" style="display: flex;">
|
| 719 |
+
<div class="progress-track">
|
| 720 |
+
<div class="progress-fill" style="width: 5%;"></div>
|
| 721 |
+
</div>
|
| 722 |
+
<div class="metric-details">
|
| 723 |
+
<span>備考準備期進度:5%</span>
|
| 724 |
+
<span>約合 <b>13.6</b> 週</span>
|
| 725 |
+
</div>
|
| 726 |
+
</div>
|
| 727 |
+
|
| 728 |
+
<div class="card-badge-wrap">
|
| 729 |
+
<div class="status-capsule">倒數 95 天</div>
|
| 730 |
+
</div>
|
| 731 |
+
</div>
|
| 732 |
+
<div class="resize-handle"></div>
|
| 733 |
+
</div></div>
|
| 734 |
|
| 735 |
<!-- 編輯狀態控制列 -->
|
| 736 |
<div class="edit-banner" id="editBanner">
|
|
|
|
| 743 |
<!-- 齒輪解鎖按鈕 -->
|
| 744 |
<div class="settings-trigger" onclick="openPinModal()" title="開啟看板設定">
|
| 745 |
<svg width="26" height="26" fill="currentColor" viewBox="0 0 24 24">
|
| 746 |
+
<path d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"></path>
|
| 747 |
</svg>
|
| 748 |
</div>
|
| 749 |
|
| 750 |
<!-- 螢幕數位按鍵鎖 -->
|
| 751 |
+
<div class="modal-backdrop" id="pinModal" style="display: none;">
|
| 752 |
<div class="pin-modal-box">
|
| 753 |
<h3>管理員驗證</h3>
|
| 754 |
<p style="font-size:0.8rem; color:#94a3b8; margin-top:4px;">請點擊螢幕按鈕輸入 PIN 碼 (902)</p>
|
| 755 |
|
| 756 |
<div class="pin-dots-display" id="pinDots">
|
| 757 |
+
<div class="pin-dot filled"></div>
|
| 758 |
+
<div class="pin-dot filled"></div>
|
| 759 |
+
<div class="pin-dot filled"></div>
|
| 760 |
</div>
|
| 761 |
|
| 762 |
<div class="pin-keypad">
|
|
|
|
| 779 |
</div>
|
| 780 |
|
| 781 |
<!-- 後台側拉抽屜 -->
|
| 782 |
+
<div class="admin-drawer" id="adminDrawer" style="display: flex;">
|
| 783 |
<div class="drawer-header">
|
| 784 |
<h3>看板與上下課作息設定</h3>
|
| 785 |
<button class="btn btn-secondary" onclick="closeAdminDrawer()">關閉</button>
|
|
|
|
| 826 |
<h4>倒數項目資料庫 (可複選多個高亮)</h4>
|
| 827 |
<button class="btn btn-primary" onclick="addNewEvent()">+ 新增卡片</button>
|
| 828 |
</div>
|
| 829 |
+
<div id="editorItemList" style="display:flex; flex-direction:column; gap:10px;"><div class="item-row">
|
| 830 |
+
<div class="item-inputs">
|
| 831 |
+
<input type="text" value="第一次定期評量" placeholder="名稱" onchange="appState.cards[0].title=this.value">
|
| 832 |
+
<input type="date" value="2026-10-14" onchange="appState.cards[0].date=this.value">
|
| 833 |
+
</div>
|
| 834 |
+
<div style="display:flex; justify-content:space-between; align-items:center;">
|
| 835 |
+
<select onchange="appState.cards[0].cat=this.value; renderBoard();">
|
| 836 |
+
<option value="exam" selected="">學業考試 (書本)</option>
|
| 837 |
+
<option value="sports">運動競賽 (獎盃)</option>
|
| 838 |
+
<option value="event">校慶活動 (旗幟)</option>
|
| 839 |
+
<option value="life">常態生活 (時鐘)</option>
|
| 840 |
+
</select>
|
| 841 |
+
<label style="font-size:0.8rem; color:#cbd5e1; display:flex; align-items:center; gap:4px; cursor:pointer;">
|
| 842 |
+
<input type="checkbox" onchange="toggleCardHighlight(0, this.checked)"> 重要高亮
|
| 843 |
+
</label>
|
| 844 |
+
<button class="btn btn-danger" style="padding:4px 8px;" onclick="removeCard(0)">刪除</button>
|
| 845 |
+
</div>
|
| 846 |
+
</div><div class="item-row">
|
| 847 |
+
<div class="item-inputs">
|
| 848 |
+
<input type="text" value="校慶運動大會" placeholder="名稱" onchange="appState.cards[1].title=this.value">
|
| 849 |
+
<input type="date" value="2026-11-14" onchange="appState.cards[1].date=this.value">
|
| 850 |
+
</div>
|
| 851 |
+
<div style="display:flex; justify-content:space-between; align-items:center;">
|
| 852 |
+
<select onchange="appState.cards[1].cat=this.value; renderBoard();">
|
| 853 |
+
<option value="exam">學業考試 (書本)</option>
|
| 854 |
+
<option value="sports" selected="">運動競賽 (獎盃)</option>
|
| 855 |
+
<option value="event">校慶活動 (旗幟)</option>
|
| 856 |
+
<option value="life">常態生活 (時鐘)</option>
|
| 857 |
+
</select>
|
| 858 |
+
<label style="font-size:0.8rem; color:#cbd5e1; display:flex; align-items:center; gap:4px; cursor:pointer;">
|
| 859 |
+
<input type="checkbox" onchange="toggleCardHighlight(1, this.checked)"> 重要高亮
|
| 860 |
+
</label>
|
| 861 |
+
<button class="btn btn-danger" style="padding:4px 8px;" onclick="removeCard(1)">刪除</button>
|
| 862 |
+
</div>
|
| 863 |
+
</div><div class="item-row">
|
| 864 |
+
<div class="item-inputs">
|
| 865 |
+
<input type="text" value="國中教育會考" placeholder="名稱" onchange="appState.cards[2].title=this.value">
|
| 866 |
+
<input type="date" value="2027-05-15" onchange="appState.cards[2].date=this.value">
|
| 867 |
+
</div>
|
| 868 |
+
<div style="display:flex; justify-content:space-between; align-items:center;">
|
| 869 |
+
<select onchange="appState.cards[2].cat=this.value; renderBoard();">
|
| 870 |
+
<option value="exam" selected="">學業考試 (書本)</option>
|
| 871 |
+
<option value="sports">運動競賽 (獎盃)</option>
|
| 872 |
+
<option value="event">校慶活動 (旗幟)</option>
|
| 873 |
+
<option value="life">常態生活 (時鐘)</option>
|
| 874 |
+
</select>
|
| 875 |
+
<label style="font-size:0.8rem; color:#cbd5e1; display:flex; align-items:center; gap:4px; cursor:pointer;">
|
| 876 |
+
<input type="checkbox" checked="" onchange="toggleCardHighlight(2, this.checked)"> 重要高亮
|
| 877 |
+
</label>
|
| 878 |
+
<button class="btn btn-danger" style="padding:4px 8px;" onclick="removeCard(2)">刪除</button>
|
| 879 |
+
</div>
|
| 880 |
+
</div><div class="item-row">
|
| 881 |
+
<div class="item-inputs">
|
| 882 |
+
<input type="text" value="全縣模擬考(1-4冊)" placeholder="名稱" onchange="appState.cards[3].title=this.value">
|
| 883 |
+
<input type="date" value="2026-12-23" onchange="appState.cards[3].date=this.value">
|
| 884 |
+
</div>
|
| 885 |
+
<div style="display:flex; justify-content:space-between; align-items:center;">
|
| 886 |
+
<select onchange="appState.cards[3].cat=this.value; renderBoard();">
|
| 887 |
+
<option value="exam" selected="">學業考試 (書本)</option>
|
| 888 |
+
<option value="sports">運動競賽 (獎盃)</option>
|
| 889 |
+
<option value="event">校慶活動 (旗幟)</option>
|
| 890 |
+
<option value="life">常態生活 (時鐘)</option>
|
| 891 |
+
</select>
|
| 892 |
+
<label style="font-size:0.8rem; color:#cbd5e1; display:flex; align-items:center; gap:4px; cursor:pointer;">
|
| 893 |
+
<input type="checkbox" checked="" onchange="toggleCardHighlight(3, this.checked)"> 重要高亮
|
| 894 |
+
</label>
|
| 895 |
+
<button class="btn btn-danger" style="padding:4px 8px;" onclick="removeCard(3)">刪除</button>
|
| 896 |
+
</div>
|
| 897 |
+
</div></div>
|
| 898 |
</div>
|
| 899 |
</div>
|
| 900 |
|
|
|
|
| 1027 |
|
| 1028 |
/*START_DEFAULT_DATA*/
|
| 1029 |
const DEFAULT_DATA = {
|
| 1030 |
+
"theme": "dark-slate",
|
| 1031 |
+
"schedule": [
|
| 1032 |
+
"08:15-09:00",
|
| 1033 |
+
"09:10-09:55",
|
| 1034 |
+
"10:10-10:55",
|
| 1035 |
+
"11:05-11:50",
|
| 1036 |
+
"13:10-13:55",
|
| 1037 |
+
"14:05-14:50",
|
| 1038 |
+
"15:05-15:50",
|
| 1039 |
+
"16:00-16:45"
|
| 1040 |
+
],
|
| 1041 |
+
"cards": [
|
| 1042 |
+
{
|
| 1043 |
+
"id": "1",
|
| 1044 |
+
"title": "第一次定期評量",
|
| 1045 |
+
"date": "2026-10-14",
|
| 1046 |
+
"cat": "exam",
|
| 1047 |
+
"highlight": false,
|
| 1048 |
+
"x": 1069,
|
| 1049 |
+
"y": 109.5999984741211,
|
| 1050 |
+
"w": 448.800048828125,
|
| 1051 |
+
"h": 281.800048828125,
|
| 1052 |
+
"totalSpan": 60
|
| 1053 |
+
},
|
| 1054 |
+
{
|
| 1055 |
+
"id": "2",
|
| 1056 |
+
"title": "校慶運動大會",
|
| 1057 |
+
"date": "2026-11-14",
|
| 1058 |
+
"cat": "sports",
|
| 1059 |
+
"highlight": false,
|
| 1060 |
+
"x": 1066.60009765625,
|
| 1061 |
+
"y": 402,
|
| 1062 |
+
"w": 457.7999267578125,
|
| 1063 |
+
"h": 256.5999755859375,
|
| 1064 |
+
"totalSpan": 90
|
| 1065 |
+
},
|
| 1066 |
+
{
|
| 1067 |
+
"id": "3",
|
| 1068 |
+
"title": "國中教育會考",
|
| 1069 |
+
"date": "2027-05-15",
|
| 1070 |
+
"cat": "exam",
|
| 1071 |
+
"highlight": true,
|
| 1072 |
+
"x": 32,
|
| 1073 |
+
"y": 115,
|
| 1074 |
+
"w": 550.5999755859375,
|
| 1075 |
+
"h": 534,
|
| 1076 |
+
"totalSpan": 300
|
| 1077 |
+
},
|
| 1078 |
+
{
|
| 1079 |
+
"id": "1789777581106",
|
| 1080 |
+
"title": "全縣模擬考(1-4冊)",
|
| 1081 |
+
"date": "2026-12-23",
|
| 1082 |
+
"cat": "exam",
|
| 1083 |
+
"highlight": true,
|
| 1084 |
+
"x": 601.6000366210938,
|
| 1085 |
+
"y": 116.19998168945312,
|
| 1086 |
+
"w": 434.20001220703125,
|
| 1087 |
+
"h": 534,
|
| 1088 |
+
"totalSpan": 100
|
| 1089 |
+
}
|
| 1090 |
+
]
|
| 1091 |
+
};
|
| 1092 |
/*END_DEFAULT_DATA*/
|
| 1093 |
|
| 1094 |
const STORAGE_KEY = "classroom_focus_master_data";
|
|
|
|
| 1691 |
|
| 1692 |
renderBoard();
|
| 1693 |
</script>
|
| 1694 |
+
|
| 1695 |
+
</body></html>
|
| 1696 |
</html>
|