{"allowContribute":false,"item":{"content":"圖表採兩階段建模：**先建 chart 類型（itemType `CHART_FOLDER`，帶 `chartKind`），再在該類型底下建 chart 實例（itemType `CHART`，帶 `data`）**。\n\n一律用 `vault_create_items` / `vault_update_items` 建改，**禁止寫檔**（item 區 0555 唯讀，寫檔會 EACCES）。所有欄位（`chartKind` / `data` / `parents`）一律放 **top-level**，不要包進 `fields` 或其他巢狀物件。建立前可用 `vault_get_itemtype_schema` 查 `CHART_FOLDER` / `CHART` 的欄位。\n\n## Step 0：先查現有 chart 類型（不是每次都要建新的）\n\n先看現有的 `CHART_FOLDER`：\n- 找到相符類型 → 跳過 Step 1，直接 Step 2 把 `CHART` 掛到該 `CHART_FOLDER` 的 id 底下\n- 沒有相符 → 執行 Step 1 建新 `CHART_FOLDER`\n\n## Step 1：建 chart 類型（CHART_FOLDER，只在 Step 0 找不到時）\n\n`chartKind` 必須是以下 10 個 Recharts 元件名稱之一：\nLineChart / AreaChart / BarChart / PieChart / ScatterChart / RadarChart / RadialBarChart / Treemap / FunnelChart / ComposedChart\n\n選型建議：\n- LineChart / AreaChart：時間序列趨勢\n- BarChart：分類比較\n- PieChart / RadialBarChart：占比 / 比例\n- ScatterChart：兩變數關聯\n- RadarChart：多面向分數比較\n- Treemap：階層占比\n- FunnelChart：流程轉換率\n- ComposedChart：混合（折線+柱狀等）\n\n`CHART_FOLDER` 掛在 chart plugin root（parents key 用 `\"chart\"`）。範例：\n\nvault_create_items({ \"items\": [{\n  \"itemType\": \"CHART_FOLDER\",\n  \"name\": \"每月支出\",\n  \"parents\": { \"chart\": 0 },\n  \"chartKind\": \"BarChart\"\n}] })\n\n## Step 2：建 chart 實例（CHART）\n\n`CHART` 掛在上一步 `CHART_FOLDER` 的 **item id** 底下（parents key 用該 folder id，不是 `\"chart\"`）。資料放 top-level 的 `data` 欄位，格式為**物件陣列**（array of objects），每筆 row 一個物件。\n\nData 格式規則：\n- 第一個 string 型別的 key 會自動被當 X 軸 / 分類（例：月份、類別、姓名）\n- 其他 number 型別的 key 會被當作數據線 / 數值軸（例：筆記數、任務數、銷售額）\n- 每筆 row 的 key 要一致\n- `data` 直接放 JSON 陣列（不要 JSON.stringify 成字串、不要包進 `fields`）\n\n範例（folder id 假設為 `6a155045f7f935ede3d4bdad`）：\n\nvault_create_items({ \"items\": [{\n  \"itemType\": \"CHART\",\n  \"name\": \"2024年\",\n  \"parents\": { \"6a155045f7f935ede3d4bdad\": 0 },\n  \"data\": [\n    {\"月份\":\"1月\",\"筆記數\":30,\"任務數\":15},\n    {\"月份\":\"2月\",\"筆記數\":45,\"任務數\":20},\n    {\"月份\":\"3月\",\"筆記數\":52,\"任務數\":18}\n  ]\n}] })\n\n## 改既有圖表的資料\n\n用 `vault_update_items` 帶 `itemType:\"CHART\"` + `id` + 新的 `data`（整包替換，不是子鍵 merge）。\n\n渲染時前端用 `CHART_FOLDER` 的 `chartKind` 挑對應 Recharts 元件畫圖。","createdAt":1783557142883,"deletedAt":null,"id":"52154f8f26ceb7284857efa8","isNew":false,"isPublic":true,"itemType":"NOTE","name":"chart-creation-guide","parents":{"c15de673632a3de7f1391fa4":1783557143083},"preParentID":null,"updatedAt":1783557254077,"version":3},"ownerName":"展佑 陳","subtree":[{"content":"圖表採兩階段建模：**先建 chart 類型（itemType `CHART_FOLDER`，帶 `chartKind`），再在該類型底下建 chart 實例（itemType `CHART`，帶 `data`）**。\n\n一律用 `vault_create_items` / `vault_update_items` 建改，**禁止寫檔**（item 區 0555 唯讀，寫檔會 EACCES）。所有欄位（`chartKind` / `data` / `parents`）一律放 **top-level**，不要包進 `fields` 或其他巢狀物件。建立前可用 `vault_get_itemtype_schema` 查 `CHART_FOLDER` / `CHART` 的欄位。\n\n## Step 0：先查現有 chart 類型（不是每次都要建新的）\n\n先看現有的 `CHART_FOLDER`：\n- 找到相符類型 → 跳過 Step 1，直接 Step 2 把 `CHART` 掛到該 `CHART_FOLDER` 的 id 底下\n- 沒有相符 → 執行 Step 1 建新 `CHART_FOLDER`\n\n## Step 1：建 chart 類型（CHART_FOLDER，只在 Step 0 找不到時）\n\n`chartKind` 必須是以下 10 個 Recharts 元件名稱之一：\nLineChart / AreaChart / BarChart / PieChart / ScatterChart / RadarChart / RadialBarChart / Treemap / FunnelChart / ComposedChart\n\n選型建議：\n- LineChart / AreaChart：時間序列趨勢\n- BarChart：分類比較\n- PieChart / RadialBarChart：占比 / 比例\n- ScatterChart：兩變數關聯\n- RadarChart：多面向分數比較\n- Treemap：階層占比\n- FunnelChart：流程轉換率\n- ComposedChart：混合（折線+柱狀等）\n\n`CHART_FOLDER` 掛在 chart plugin root（parents key 用 `\"chart\"`）。範例：\n\nvault_create_items({ \"items\": [{\n  \"itemType\": \"CHART_FOLDER\",\n  \"name\": \"每月支出\",\n  \"parents\": { \"chart\": 0 },\n  \"chartKind\": \"BarChart\"\n}] })\n\n## Step 2：建 chart 實例（CHART）\n\n`CHART` 掛在上一步 `CHART_FOLDER` 的 **item id** 底下（parents key 用該 folder id，不是 `\"chart\"`）。資料放 top-level 的 `data` 欄位，格式為**物件陣列**（array of objects），每筆 row 一個物件。\n\nData 格式規則：\n- 第一個 string 型別的 key 會自動被當 X 軸 / 分類（例：月份、類別、姓名）\n- 其他 number 型別的 key 會被當作數據線 / 數值軸（例：筆記數、任務數、銷售額）\n- 每筆 row 的 key 要一致\n- `data` 直接放 JSON 陣列（不要 JSON.stringify 成字串、不要包進 `fields`）\n\n範例（folder id 假設為 `6a155045f7f935ede3d4bdad`）：\n\nvault_create_items({ \"items\": [{\n  \"itemType\": \"CHART\",\n  \"name\": \"2024年\",\n  \"parents\": { \"6a155045f7f935ede3d4bdad\": 0 },\n  \"data\": [\n    {\"月份\":\"1月\",\"筆記數\":30,\"任務數\":15},\n    {\"月份\":\"2月\",\"筆記數\":45,\"任務數\":20},\n    {\"月份\":\"3月\",\"筆記數\":52,\"任務數\":18}\n  ]\n}] })\n\n## 改既有圖表的資料\n\n用 `vault_update_items` 帶 `itemType:\"CHART\"` + `id` + 新的 `data`（整包替換，不是子鍵 merge）。\n\n渲染時前端用 `CHART_FOLDER` 的 `chartKind` 挑對應 Recharts 元件畫圖。","createdAt":1783557142883,"deletedAt":null,"id":"52154f8f26ceb7284857efa8","isNew":false,"isPublic":true,"itemType":"NOTE","name":"chart-creation-guide","parents":{"c15de673632a3de7f1391fa4":1783557143083},"preParentID":null,"updatedAt":1783557254077,"version":3}]}