店铺数据列表（示例插件：首页应用 / 常驻面板）
=====================================

它是什么
  遍历"本应用可用的全部店铺"，展示抖店经营数据与账户资金，并支持**直接提现**：
    成交金额 / 订单数 / 曝光人数 / 成交人数 / 点击人数 / 退款数 / 退款金额 /
    账户总金额 / 限制提款 / 可提现 / 体验分 / 待发货 / 待结算
  数据口径与 ERP 的 internal/stores（店铺数据）一致，取数逻辑见 `共用/店铺数据.js`。

怎么跑（本地调试）
  1. 客户端「开发者中心 → 我的应用 → 版本 → 选择/更换目录」选中**本目录**（有 index.html 的这一层）
  2. 点「本地调试」→ 入口页会列出所有店铺的数据
  3. 点「注册为首页面板」→ 去「我的应用 → 首页面板」点**授权**
     → 左侧边栏「云捷科技」下面会出现「功能」列表里的「店铺数据」，**点开就是整页**（和「云捷科技」一样占满内容区）

面板里能做什么
  · 每 60 秒自动轮询一轮（关掉应用标签也照跑：面板由客户端托管，客户端启动即恢复）
  · 顶部统计卡：成交金额 / 可提现 / 待结算 / 登录状态（在线·掉线）
  · 每家店铺一张卡片（样式对齐 ERP 的 internal/店铺数据）：12 项指标 + 「提现」+「刷新」+ 可提现金额
  · 提现弹窗（标准表单样式，与 ERP 一致）：打开时**实时**拉主体列表 + 账户（拿实时的可提现金额 / 银行卡 / 提现uid）
    · **多主体店铺**：下拉选主体 → 重新拉该主体的可提现金额与银行卡（同一家的不同主体可以分别提现）
      说明：抖店"带主体"的账户接口**不返回冻结金额**，所以「限制提款」按**全店合计**显示，并从可提现金额里扣掉
    · 图形验证码（点图片换一张）→ 获取短信验证码（60 秒倒计时）→ 确认提现（提交带 member_id）

文件结构
  index.html / app.js      入口页：注册面板 + 顶部统计卡 + 店铺卡片（含提现按钮 / 单店刷新 / 搜索）
  面板/index.html / app.js 首页面板页：常驻运行的那一份（窄版卡片 + 提现 + 标签角标）
  共用/店铺数据.js          取数逻辑（两页共用）：抖店接口 → 指标对象；以及提现的四个接口
  共用/提现弹窗.js          提现弹窗（共用 Vue 组件）：两页都用 <wd-dialog ref="提现"></wd-dialog>
                           ⚠️ 标签名必须是 ASCII（中文标签会被 HTML 当文本），且不能自闭合
  资源/                    Vue2 + ElementUI（本地文件，别改成 CDN）
  云捷SDK.js               SDK（不要手写、不要改）

用到的接口（都由客户端用该店铺登录态发出，插件不用管 Cookie 与签名）
  GET  /pc/api/home/homepage                首页经营数据（成交/曝光/点击/退款/待发货/体验分/账户资金）
  GET  /shop/be/bic/subjectChangeList       店铺主体列表（多主体提现要选主体）
  GET  /settlement/account/getAccountList   结算账户（待结算/账户总金额/可提现/限制提款/银行卡）
  GET  /settlement/index/buildImageverify   提现图形验证码（图片 → 用 编码:'base64' 取回）
  POST /settlement/index/getmsgverificationcode   发短信验证码
  POST /settlement/index/verifyimage              校验图形验证码
  POST /settlement/index/verifymsgcode            提交提现（成功时返回空响应体）

注意
  · 面板是**常驻**的：授权后客户端启动即运行、退出登录停止；用户可随时在「我的应用 → 首页面板」关闭或移除
  · 轮询要多店铺逐家调接口，第一轮会给每家店铺静默准备一个店铺标签（这是 SDK 的既有机制）
  · 提现是**不可逆**的资金操作，务必核对金额与银行卡后再提交
  · 上架后的应用没有开发者工具：调面板页请用「本地调试」跑
