📦 新北市再生家具匯出小工具安裝與使用教學 v載入中...

這是一個 Chrome / Edge 擴充功能,協助你在 新北市再生家具拍賣網 上更高效地管理資料,提供以下功能:

工具畫面預覽 ⬇️ 點我下載工具(ZIP 檔)

🔧 安裝步驟(僅需一次)

  1. 下載上方的 furniture-helper.zip 並「解壓縮
  2. 打開瀏覽器擴充功能管理頁面(請依你使用的瀏覽器選擇):
    Chrome 請輸入 chrome://extensions
    Edge 請輸入 edge://extensions
  3. 右上角打開「開發人員模式
  4. 點擊「載入未封裝項目」,選擇剛剛解壓縮的資料夾
  5. 完成!開啟拍賣網站後,自動出現「年度統計」、「列印表格」、「資料面板」、「設定」等功能按鈕

🚀 使用說明

📢 功能異動通知
官方系統已內建 CSV 匯出功能(輕量版與完整版),本工具的「輕量匯出」和「全部匯出」按鈕已移除。
如需 CSV 匯出,請使用官方內建功能。本工具專注於提供官方尚未支援的進階功能(統計分析、批次操作、JSON 匯入匯出等)。
按鈕樣式更新:所有按鈕已改為純文字樣式,不再使用 emoji 圖標。

📌 注意事項

🕒 功能開發順序軸


🧠 開發這個工具時學到的事(給未來想加功能的你)

🧪 開發時想看 tableFullData 或其他資料?這些 Console 指令幫你省時

1. 檢查 tableFullData


(() => {
  const el = document.querySelector('.vxe-table');
  let vue = el && el.__vue__;
  let safety = 20;
  while (vue && !vue.tableFullData && safety-- > 0) vue = vue.$parent;

  if (!vue || !vue.tableFullData || !vue.tableFullData.length) {
    console.warn('❌ 找不到 tableFullData 或沒有資料');
    return;
  }

  const raw = JSON.parse(JSON.stringify(vue.tableFullData[0]));
  console.log('✅ 第一筆資料(已解 Proxy):', raw);
  console.log('🧠 可用欄位列表:', Object.keys(raw));
})();
  

2. 檢查資料面板的 Photos 資料


(() => {
  const panel = document.getElementById('furniture-panel');
  if (!panel) {
    console.warn('❌ 資料面板未開啟');
    return;
  }
  const firstItem = panel.querySelector('div > div > span > strong');
  if (!firstItem) {
    console.warn('❌ 找不到資料項');
    return;
  }
  const index = 0; // 改成你想檢查的項目索引
  const vue = document.querySelector('.vxe-table')?.__vue__;
  let safety = 20;
  while (vue && !vue.tableFullData && safety-- > 0) vue = vue.$parent;
  const photos = vue?.tableFullData?.[index]?.Photos;
  console.log('✅ 第', index + 1, '筆資料的 Photos:', JSON.parse(JSON.stringify(photos || [])));
})();
  

3. 檢查編輯視窗的表單結構


(() => {
  const form = document.querySelector('.vxe-modal--box .el-form');
  if (!form) {
    console.warn('❌ 未找到編輯視窗表單');
    return;
  }
  const labels = Array.from(form.querySelectorAll('.el-form-item__label')).map(label => label.textContent.trim());
  console.log('✅ 表單欄位標籤:', labels);
  const categoryOptions = Array.from(form.querySelector('label[for="CategoryID"]')?.closest('.el-form-item')?.querySelector('select')?.options || []).map(opt => ({ value: opt.value, text: opt.textContent.trim() }));
  console.log('✅ 類別選項:', categoryOptions);
})();
  
「Vue 不會讓你失望,只會讓你懷疑人生。」
從 tableFullData 到 MutationObserver,再到圖片預覽的 CORS 地獄,每個功能都是一場與 Vue 的搏鬥。
列印表格的競標狀態判斷、統計樹狀圖的延遲載入優化、批次操作的安全機制,每一個細節都是從無數次除錯中淬煉出來的。
不要再用套件開發公家網站了,版本一更新過不了弱掃就要被叫去拉正了。
—— 從最初的圖片預覽到現在的 v4.1,每個凌晨都在與程式碼對話