📋 新增基礎值記錄
可打字搜尋,或從下拉選單選。沒有需要的動物?請到「動物清單」新增。
預設帶現在時間,補登時可改
※ LINE 自動傳送功能將在下一階段整合 LINE Messaging API;現在按鈕會把訊息文字複製到剪貼簿,方便你直接貼到 LINE。
🕓 我今日的記錄
已選 0 項
📊 其他基礎值
💧 新增尿量
尿量可以是數字(ml)或 miss(漏接)。時間預設帶現在時間。
🚰 本班尿量
📊 全部結算總覽
0 隻
下班後本頁今日資料歸檔;醫生有問題時可重新上班叫回
🐕 動物入院
➕ 新增病例
🐕🐈⬛ 動物列表 0
🐕🐈⬛ 動物清單
🖱️ 點選「未認領」卡片來新增、或點「我的動物」卡片來釋放(換班、交接用)。完成後按下方「✅ 確認」。
⭐ 我的動物 0
👥 其他同事認領的 0
❤️🩹 未認領 0
⚪ 已出院 0
已選 0 隻
🔎 查詢
🏠 送出院
點選住院中動物 → 預覽記錄 → 匯出到 Google 試算表 → 才能確認出院
📋 住院期間記錄
👥 員工 / 帳號管理
管理全所員工帳號。新員工可在登入頁「註冊新帳號」自助申請,這裡核准後才能登入。
💾 資料備份與還原
所有資料目前儲存在此瀏覽器的本機儲存(localStorage)。建議定期匯出 JSON 備份。
之後若要遷移到 Google Sheets / 雲端資料庫,可直接拿匯出的 JSON 進行轉檔。
📲 LINE 整合
預設「📲 送 LINE」按鈕只把訊息複製到剪貼簿,自己貼到 LINE。
若你建好 LINE Bot + Supabase Edge Function proxy 後,貼上 webhook URL 並啟用「直送」,
系統會直接 POST 到 LINE 群組(無需手動貼)。失敗時自動 fallback 複製。
⚙️ 直送設定
📖 怎麼建立 LINE Bot + Supabase Edge Function(一次性 setup)
- 到 LINE Developers 建立 Provider → Channel (Messaging API)
- 在 Channel 「Messaging API」分頁取得 Channel access token (long-lived)
- 把 Bot 加為診所 LINE 群組成員(在 Channel 設定取得 Bot 的 QR code 或 ID 邀請進群)
- 在群組裡發一句話 → 到 LINE Developers → Webhook 看 log,找出 群組 ID(C 開頭);或用 LINE Bot Designer 工具抓
- 到 Supabase Dashboard → Edge Functions → New function,名稱
line-send - 貼下面這段 TypeScript,並到 Project Settings → Edge Functions → Secrets 設
LINE_TOKEN= 你的 Channel access token - Deploy 後拿到 function URL,貼到上方「Edge Function URL」欄位 + 群組 ID + 勾「啟用直送」+ 儲存 + 測試
// supabase/functions/line-send/index.ts
import { serve } from "https://deno.land/std@0.168.0/http/server.ts";
const TOKEN = Deno.env.get("LINE_TOKEN")!;
const CORS = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "POST, OPTIONS",
"Access-Control-Allow-Headers": "authorization, content-type",
};
serve(async (req) => {
if (req.method === "OPTIONS") return new Response("ok", { headers: CORS });
try {
const { to, text } = await req.json();
if (!to || !text) return new Response(JSON.stringify({ error: "missing to/text" }),
{ status: 400, headers: { ...CORS, "Content-Type": "application/json" } });
const r = await fetch("https://api.line.me/v2/bot/message/push", {
method: "POST",
headers: { "Content-Type": "application/json", "Authorization": "Bearer " + TOKEN },
body: JSON.stringify({ to, messages: [{ type: "text", text }] }),
});
return new Response(await r.text(), { status: r.status,
headers: { ...CORS, "Content-Type": "application/json" }});
} catch (e) {
return new Response(JSON.stringify({ error: String(e) }),
{ status: 500, headers: { ...CORS, "Content-Type": "application/json" } });
}
});
這個 function 接收 {to, text} JSON,server-side 帶上 token 打 LINE API(避開瀏覽器 CORS 限制)。
☁️ 雲端歸檔(Google 試算表)
送出院時用來上傳住院記錄到 Google 試算表。第一次用要先做下面的設定步驟。
📖 第一次設定步驟(點開)
- 到 Google Drive 建一個資料夾,命名「基礎值出院記錄」(每次出院的試算表都會放這)
- 進到資料夾內,右鍵 → Google 試算表 → 建立新的試算表(這份是「控制台」,命名隨意,例如「_控制台」)
- 選單列:擴充功能 → Apps Script
- 把編輯區所有預設程式碼刪掉,貼下面那段程式碼
- 右上角「部署」→「新增部署作業」→ 類型選「網路應用程式」
- 「執行身分」選「我」,「誰可以存取」選「所有人」→ 部署
- 第一次會跳權限請求,按「授權存取」→ 選你的 Google 帳號 → 進階 → 前往「未經驗證」→ 允許(會請求 Sheets + Drive 權限)
- 複製出現的「網路應用程式」URL(結尾是
/exec) - 貼到上面 Webhook URL 欄位 → 儲存 URL → 按「測試連線」
- 到控制台試算表確認有新增一列
__TEST__即成功 ✅
⚠️ 之後每次有動物出院,會在「控制台」試算表所在的資料夾內,自動建一個新的試算表檔案,檔名格式:
動物名 病歷號 出院YYYY-MM-DD
🔄 已經設定過舊版(每動物一分頁)的人:把下面新版程式碼貼上去蓋掉舊的 → 部署 → 管理部署作業 → 編輯(鉛筆圖示)→ 版本選「新版本」→ 部署 → 重新授權(會多要一個 Drive 權限)→ URL 不會變,不用重新貼。
⬇️ 複製這段貼到 Apps Script 編輯區:
ℹ️ 系統資訊
⚠️ 危險區(不要隨便點開)
下面這顆鈕會把所有動物、所有記錄、員工名單整個刪光,無法復原。
只有在你確定要從零開始時才用。
強烈建議按之前先到「💾 資料備份與還原」匯出 JSON 備份。
只有在你確定要從零開始時才用。
強烈建議按之前先到「💾 資料備份與還原」匯出 JSON 備份。