運作數據儀表板
設備運作明細
{{ i18n_t('web.adm.ui.dash.fa3729', {v0: dashScopeName, v1: dashScanners.length}) }}每台機台的位置、連線狀態與獨立掃描次數。
足壓判斷邏輯定義庫
| 代碼 | 定義名稱 | 判斷說明(前台顯示) | 管理 |
|---|---|---|---|
| {{ item.code }} | {{ item.name }} | {{ item.display || '—' }} |
設備管理
{{ deviceForm._isNew ? i18n_t('web.adm.ui.devices.6638a2') : (i18n_t('web.adm.ui.devices.0c36fe') + deviceForm.id) }}
{{ deviceForm._isNew ? i18n_t('web.adm.ui.devices.a8b6f3') : (fmtTime(deviceForm.created_at) + ' / ' + fmtTime(deviceForm.updated_at)) }}
| 設備 ID | 設備 SN | 分銷商 / 分店 | 購買時間 | 軟體版本 | 推送金鑰 | 累計量測 | 狀態 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ i18n_t('web.adm.ui.devices.1a9954', {v0: userRole === 'ATTA_ADMIN' ? i18n_t('web.adm.ui.devices.a7e536') : ''}) }} | ||||||||
| {{ d.id }} | {{ d.sn }}未登記(機台無法使用) |
{{ getDistName(d.distributor_id) }}
{{ d.branch || '—' }} |
{{ d.purchase_date || '—' }} |
💻 {{ d.host_name || '—' }}換機 |
{{ (d._scans || 0).toLocaleString() }} | {{ d._online ? i18n_t('web.adm.ui.devices.bd13cf') : i18n_t('web.adm.ui.dash.153e92') }} 感受 推薦停用 推薦關 MCP | ||
※「在線」=該設備近 3 分鐘內有成功心跳(機台每 60 秒一次;金鑰錯、板不符、斷線都會變離線)。推送金鑰填入機台 watcher 的 config.json(key=設備ID、secret=金鑰)。
待機廣告
{{ adsTarget.scope === 'hq' ? (adsTarget.id === 'images' ? i18n_t('web.adm.ui.ads.ecc448') : i18n_t('web.adm.ui.ads.5b4d00')) : adsTarget.scope === 'distributor' ? (i18n_t('web.adm.ui.ads.2f4bac') + getDistName(adsDist)) : (i18n_t('web.adm.ui.ads.8048f0') + adsTarget.id) }}
{{ i18n_t('web.adm.ui.ads.b123d5', {v0: fmtTime(adsRow.updated_at)}) }}{{ ({inherit:i18n_t('web.adm.ui.ads.d0e61e'), own:i18n_t('web.adm.ui.ads.cfc870'), hq_images:i18n_t('web.adm.ui.ads.56ebfa'), hq_video:i18n_t('web.adm.ui.ads.2ac5a9')})[adsDeviceScope] }}
※ 多支影片依編號順序輪播、播完循環;一律靜音自動播放。機台必須能連外網才播得出來;斷網時前台自動退回內建畫面。
※ 儲存後機台於下一次心跳(最長 60 秒)自動抓取更新,不需重開機台。
推薦版位
{{ recTarget.scope === 'hq' ? i18n_t('web.adm.ui.recs.2a7e40') : recTarget.scope === 'distributor' ? (i18n_t('web.adm.ui.recs.382147') + getDistName(recDist)) : (i18n_t('web.adm.ui.ads.8048f0') + recTarget.id) }}
{{ recRow.exists ? (i18n_t('web.adm.ui.recs.468595') + ' ') + fmtTime(recRow.updated_at) : i18n_t('web.adm.ui.recs.fe856a') }}永遠顯示鞋墊類別,ATTA 原廠鞋墊優先排最前
配對命中此類別的商品,按命中數排序、最多 6 款
※ 設定只影響之後的新量測;已產生的 QR Code/結果頁維持量測當下的內容不變。
量測紀錄
| 量測時間 | 設備 | 分銷商 | 性別/年齡 | BMI | TAGS | 感受部位 | 報告 |
|---|---|---|---|---|---|---|---|
| {{ measLoading ? i18n_t('ui.msgL.c38b87') : i18n_t('web.adm.ui.records.23f696') }} | |||||||
| {{ fmtTime(m.received_at) }} | {{ m.device_id || m.store_name || '—' }} | {{ getDistName(m.distributor_id) }} | {{ ({M:i18n_t('js.renderResults.51625d'),F:i18n_t('js.renderResults.26bc84')})[m.user_sex] || '—' }} / {{ m.user_age ?? '—' }} | {{ m.bmi ?? '—' }} {{ m.bmi_tag || '' }} |
{{ tagName(t) }}
|
—
{{ t }}
|
檢視 |
數據分析
| {{ c.label }}{{ ana.sortDir > 0 ? '▲' : '▼' }} |
|---|
| 無符合資料 |
|
{{ t }}
檢視
{{ anaCell(m, c.key) }}
|
{{ blk.title }}
| 標籤 | 意思 | 筆數 | 佔比 |
|---|---|---|---|
| {{ r.k }} | {{ r.def }} | {{ r.n }} | {{ r.pct }}% |
靜態 vs 動態 足弓分布(以「腳」為單位)
| 足弓類型 | 靜態 L | 靜態 R | 動態 L | 動態 R |
|---|---|---|---|---|
| {{ k }} | {{ ana.data.stats.staticL[k] || 0 }} | {{ ana.data.stats.staticR[k] || 0 }} | {{ ana.data.stats.dynamicL[k] || 0 }} | {{ ana.data.stats.dynamicR[k] || 0 }} |
{{ i18n_t('web.adm.ui.analytics.cd545d', {v0: g[1]}) }} {{ i18n_t('web.adm.ui.analytics.a4401e', {v0: anaGridTotal(g[0])}) }}
低
標準
高
每月筆數
| {{ k }} | {{ v }} |
每台機台筆數
| {{ k }} | {{ v }} |
每月量測筆數
各機台筆數
{{ g[1] }}
靜態 vs 動態 足弓分布(每腳)
{{ blk.title }}
PDM 產品開發數據 V2・九宮格+覆蓋率
視圖① 九宮格客群分佈
| {{ c }} | |
|---|---|
| {{ r }} |
G{{ ri*3+ci+1 }}
{{ pdmGrid[ri*3+ci].n }} 人
{{ pdmGrid[ri*3+ci].main || '—' }} +{{ pdmGrid[ri*3+ci].names.length - 1 }}
|
視圖② 功能需求碼需求分布
視圖③ 鞋墊需求量
格位明細:G{{ pdmSel }} {{ pdmCellInfo.name }} {{ pdmCellInfo.high ? '高弓支撐家族' : '標準高度家族' }}
壓力分區彙整
每格有沒有照顧到
| {{ c }} | |
|---|---|
| {{ r }} |
G{{ ri*3+ci+1 }}
{{ pdmLight.cells[ri*3+ci].cov < pdmLight.cells[ri*3+ci].need && pdmLight.cells[ri*3+ci].cov ? pdmLight.cells[ri*3+ci].cov + '/' : '' }}{{ pdmLight.cells[ri*3+ci].need }} 人
{{ pdmGrid[ri*3+ci].main || '—' }}
無需求
|
覆蓋率與缺口
| 功能需求碼 | 判定來源 | 需求人數 | 覆蓋率 | 缺口 | 紅格 | 處理方向 |
|---|---|---|---|---|---|---|
| {{ r.code }} {{ r.name }} | {{ r.grid ? '九宮格' : r.src }} | {{ r.need }} | {{ r.cov }}/{{ r.need }}={{ r.need ? Math.round(r.cov / r.need * 100) : 0 }}% | {{ Math.round(r.gap * 100) }}% {{ r.need - r.cov }} 人 | {{ r.cells.join('、') || '—' }} | 無缺口改推 {{ r.rule }}新品 {{ r.prod }} |
| 格位 | 主推款未含的需求 | 建議改推 | 人數 |
|---|---|---|---|
| G{{ r.g }} | {{ r.miss.join('+') }} | {{ r.from }} → {{ r.to }} | {{ r.n }} |
| 需求組合 | 設計屬性 | 格位 | 人數 |
|---|---|---|---|
| {{ r.codes.join('+') }} | {{ r.attrs.join(';') || '—' }} | {{ r.cells.join('、') }} | {{ r.n }} |
新品規格建議卡 可打樣參數+溯源
| 設計屬性 | {{ f.code }} {{ f.name }}:{{ f.attr || '—' }}(需求 {{ pct(f.need) }}、上架 {{ f.count }} 款) |
| 現有款式 | {{ pdmSelInfo.code }}:{{ pdmSelInfo.names.length ? pdmSelInfo.names.join('、') : '目前沒有上架商品勾此碼' }}點選儀表板視圖②的需求碼查看 |
分銷商管理
| ID | 分銷商 | 聯絡人 | 後台帳號 | 設備數 | 狀態 | 操作 |
|---|---|---|---|---|---|---|
| 尚無分銷商,按右上「新增分銷商」建立 | ||||||
| {{ di.id }} | {{ di.name }} {{ di.email || '' }} |
{{ di.contact || '—' }} {{ di.phone || '' }} |
●{{ a.email }}
|
{{ devices.filter(d => d.distributor_id === di.id).length }} | {{ di.status === 'active' ? i18n_t('web.adm.ui.dists.b4fddb') : i18n_t('ticket.v2SetPlayIcon.37676b') }} | |
※ 開通帳號後會顯示一次性初始密碼,請當場交付分銷商並提醒登入後修改。刪除前需先解除設備與帳號綁定。
帳號管理
| 顯示名稱 | 權限 | 狀態 | 最後登入 | 操作 | |
|---|---|---|---|---|---|
| 尚無總部帳號 | |||||
| {{ a.email }} | {{ a.display_name || '—' }} | {{ i18n_t('web.adm.ui.accounts.d079d2', {v0: roleTxt(a.role)}) }} | {{ a.status === 'active' ? i18n_t('web.adm.ui.accounts.ce6c3d') : i18n_t('web.adm.ui.dists.cb9907') }} | {{ fmtTime(a.last_login_at) }} | |
※ 一般使用者不能:註冊/編輯/刪除設備、管理邏輯庫、管理分銷商與帳號、管理商品類別。安全限制:不可重設其他「管理員」的密碼、不能停用自己。「編輯」可改 Email 與顯示名稱(改了自己的 Email 要重新登入)。
商品服務管理
| 狀態 | 產品名稱 / 類別 | 規格 / 定價 | 配對標籤同類任一・跨類皆須符合 | 操作 |
|---|---|---|---|---|
|
本店已隱藏
{{ p.status === 'listed' ? i18n_t('web.adm.ui.products.92bc0c') : i18n_t('web.adm.ui.products.b07628') }}
{{ p.owner === 'ATTA' ? i18n_t('web.adm.ui.app.620c44') : getDistName(p.owner) }} |
影片 {{ i18n_tv(p.category) }} {{ pn(p) }} {{ pd(p) }} |
YouTube 連結 {{ p.specs || '-' }} NT$ {{ p.price.toLocaleString() }} |
{{ row.label }}
{{ c.name }}
未設定標籤
|
唯讀 |
| 無符合篩選條件的項目 | ||||
{{ i18n_t('web.adm.ui.updateLog.76e34e', {v0: updateLog.device_id}) }}{{ updateLog.sw_version || '—' }}
載入中…
尚無更新紀錄(機台 V7.3.7 起才會回報版本)
| 時間 | 版本 | 更新內容 |
|---|---|---|
| {{ fmtTime(r.seen_at) }} | {{ r.from_version || '—' }} → {{ r.to_version }} | {{ r.notes || '—' }} |
電腦紀錄 目前:💻 {{ updateLog.host_name || '—' }}
尚無紀錄(機台 V7.4.2 起才會回報電腦)
| {{ fmtTime(h.seen_at) }} | {{ h.from_host_name }} → {{ h.to_host_name || '—' }}(換電腦){{ h.to_host_name || '—' }}(首次登記) |
維護分銷商檔案
編輯帳號
原 Email:{{ acctForm.email }} {{ i18n_t('web.adm.ui.editAccount.161e88', {v0: roleTxt(acctForm.role)}) }}
權限與停權在列表直接操作;密碼用「重置密碼」。改了自己的 Email 需重新登入。
新增總部帳號
建立後會顯示一次性初始密碼,請當場交付同仁並提醒登入後修改;權限之後可在列表直接調整。
{{ selectedItem?._isNew ? i18n_t('web.adm.ui.logic.f7f868') : i18n_t('web.adm.ui.editLogic.905b69') + selectedItem?.code }}
⚠️ 這段會直接呈現給受測者,避免療效宣稱用語(治療、醫療級)。
以「腳」為單位判定:任一腳同時滿足全部條件組即命中;性別/BMI/年齡為全人碼,兩腳都算。