Files
yudao-ui-admin-vue3/src/views/ydoyun/report/lijun/reportpage6/API接口文档.md
2026-02-27 09:47:06 +08:00

46 KiB
Raw Blame History

报表系统 API 接口文档

目录

1. 查询条件

2. 顶部数据选项卡

3. 供应商表现 (Top 10) / 品类诊断(共用同一接口)

4. 中类销售排名 Top 5

5. 商品明细列表

6. 品类诊断列表(与品类表现共用接口)

7. 品类分析页面category-diagnostic

7.1 品类分析页面查询接口

品类分析页面(路径 /reports/lijun/category-diagnostic)用于展示中类销售排名 Top 5 的详情,以卡片列表形式展示各品类/中类的诊断结果。

接口信息

  • 接口路径: /api/reportpage/executeProcedureWithData
  • 请求方式: GET
  • 存储过程名: YDY_AI_GET_SPDP3
  • 接口说明: 获取品类分析卡片列表数据;返回所有品类/中类的 list用于卡片列表展示。

请求参数

统一查询参数设计 一致,不传 ghsdm

参数名 类型 必填 说明
reportId number 固定 6
name string 固定 YDY_AI_GET_SPDP3
rq_s string 开始日期 YYYY-MM-DD
rq_e string 结束日期 YYYY-MM-DD
ckdm string 门店代码,多选逗号分隔
pp string 品牌代码,多选逗号分隔
dalei string 大类代码,多选逗号分隔
jj string 季节代码,多选逗号分隔
zhonglei string 中类,默认空字符串
p string 秘钥,默认 "123"
username string 当前登录用户
ghsdm string 不传 品类分析页不传;供应商详情页传单个供应商 code

返回值结构

与供应商详情页完全一致{ code, msg, data },其中 data 支持两种形态:

  1. 二维数组data = [[列配置数组], [行数据数组]]

    • data[0]:列配置(每项含 title、keys/key、orders/order、labelKey、colorKey
    • data[1]:行数据 list每项为一条品类/中类数据(含 title/name、value1、value2、…、value1date、value2date、…、tag、tagcolor、titleName、titleValue 等)
  2. 一维数组(混合):含 keys 的项为列配置,其余为行数据。

前端使用方式:const columns = data[0]const list = data[1];品类分析页用 list 渲染卡片列表卡片布局包含标题、titleName/titleValue、检测指标/实际结果/基准参考表格。

针对「中类销售排名 Top 5 更多」:该页面即品类分析卡片页,查询接口与本节一致(使用 YDY_AI_GET_SPDP3,不传 ghsdm返回值结构与页面展示一致的示例数据(列配置 keys、行数据 title/tag/tagcolor/titleName/titleValue、value1/value1date/value1tag/value1color 等)见 4.2 中类销售排名 Top 5 更多

路由与查询条件

  • 入口: 仪表盘「中类销售排名 Top 5」点击「更多」或直接访问 /reports/lijun/category-diagnostic
  • Query 参数: rq、rq2、ckdm、pp、season、zgj、category、line与统一查询参数一致页面加载时从 URL 读取并带入请求。

1. 查询条件

1.0 统一查询参数设计

仪表盘及各子页(中类排名、品类诊断、商品明细、产品卡片)共用一套查询条件,多选参数以逗号分隔字符串传给后端。

参数名 类型 必填 说明 示例
rq / rq_s string 开始日期,格式 YYYY-MM-DD "2025-01-20"
rq2 / rq_e string 结束日期,格式 YYYY-MM-DD "2025-01-27"
ckdm string 门店代码,多选时逗号分隔;可从字典 ljsm_kehu 获取 "" 或 "S1,S2"
pp string 品牌代码,多选时逗号分隔;从 executeTable(pinpai) 获取 "" 或 "P1,P2"
season string 季节代码,多选时逗号分隔;从 executeTable(jijie) 获取 "" 或 "J1,J2"
zgj string 正特价1=正价0=特价,多选逗号分隔 "" 或 "1,0"
category string 大类代码,多选时逗号分隔;从 executeTable(dalei) 获取 "" 或 "D1,D2"
line string 线路代码,多选时逗号分隔;从 executeTable(xianlu) 获取 "" 或 "L1,L2"
zhonglei string 中类,默认空字符串 ""
username string 当前登录用户,用于权限与审计 "admin"

说明:前端多选组件得到数组后,传参时转为逗号拼接,例如 ckdm: ['S1','S2']ckdm: "S1,S2";空数组传空字符串表示不按该维度筛选。


1.1 下拉选项接口

仪表盘及各子页的下拉选项(品牌、季节、大类、线路、门店)统一通过 executeTable 获取。

  • 接口路径: GET /api/reportpage/executeTable
  • 请求参数: { reportId: 6, tableName: string }
tableName 说明 前端用途 返回字段映射示例
pinpai 品牌 品牌多选/单选 PPMC → label, PPDM → value
jijie 季节 季节多选 JJMC → label, JJDM → value
dalei 大类 大类/品类多选 DLMC → label, DLDM → value
xianlu 或 line 线路 线路多选 XLMC/name → label, XLDM/code → value
ljsm_kehu 门店 门店多选 字典 label/value
  • reportId 固定为 6。返回为数组或 { data/list/rows } 包裹的数组,前端取 list 后按上表映射为 { label, value }[]

2. 顶部数据选项卡

2.1 KPI 指标数据接口

接口信息

  • 接口路径: /api/report/product-dashboard/kpi 或 使用 executeProcedureWithDatareportId=6, name='YDY_AI_GET_SPDP1'
  • 请求方式: GETexecuteProcedureWithData 为 GET若独立接口可为 POST
  • 接口说明: 获取商品仪表板顶部 KPI 卡片数据:销售总额、平均折扣率、季末售罄率、库存周转、连带率。数据格式与下表一致,顶部数据卡片数据格式以本节及 kpiCardData 表为准,无需改动

请求参数

统一查询参数设计 一致。

特殊说明:若使用 executeProcedureWithData 方式调用,需额外传递:

  • reportId: 固定为 6
  • name: 存储过程/接口名KPI 为 YDY_AI_GET_SPDP1

返回值类型

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "kpiList": [
      {
        "title": "销售总额 (GMV)",
        "unit": "¥",
        "value": "842.5",
        "valueSuffix": "w",
        "trendText": 12,
        "trend": "up",
        "desc": "目标达成 92%",
        "rawValue": 8425000,
        "targetValue": 9150000,
        "achievementRate": 92,
        "miniBars": "33,50,40,75,100,67,50"
      },
      {
        "title": "平均折扣率",
        "unit": "%",
        "value": "8.2",
        "valueSuffix": "折",
        "trendText": -0.3,
        "trend": "down",
        "desc": "毛利空间健康",
        "bottomText": "正价占比: 65%",
        "rawValue": 8.2,
        "targetValue": 8.5
      },
      {
        "title": "季末售罄率",
        "unit": "%",
        "value": "68.5",
        "valueSuffix": "%",
        "trendText": 5.2,
        "trend": "up",
        "desc": "同比提升",
        "progress": 68.5,
        "rawValue": 68.5,
        "targetValue": 70
      },
      {
        "title": "库存周转",
        "unit": "Days",
        "value": "135",
        "trendText": -10,
        "trend": "down",
        "desc": "效率优化",
        "bottomText": "库销比: 4.2 (偏高)",
        "rawValue": 135,
        "targetValue": 120
      },
      {
        "title": "连带率 (UPT)",
        "unit": "件/单",
        "value": "1.85",
        "trendText": 0.1,
        "trend": "up",
        "desc": "搭配推荐有效",
        "bottomText": "客单价: ¥1,299",
        "rawValue": 1.85,
        "targetValue": 2.0
      }
    ]
  }
}

字段含义

字段 格式 必填 含义
code number 响应码200 表示成功
msg string 响应消息
data.kpiList array KPI 列表
kpiList[].title string 指标标题(如“销售总额 (GMV)”)
kpiList[].unit string 单位(如“¥”“%”“Days”“件/单”)
kpiList[].value string 展示值(已格式化字符串)
kpiList[].valueSuffix string 后缀如“w”“折”“%”)
kpiList[].trendText number 趋势变化值(数值本身,前端据此展示箭头与颜色)
kpiList[].trend string 趋势方向:up / down
kpiList[].desc string 描述文案(如“目标达成 92%”)
kpiList[].rawValue number 原始值(便于前端二次计算/格式化)
kpiList[].targetValue number 目标值
kpiList[].achievementRate number 达成率(百分比 0100
kpiList[].miniBars string 迷你柱状图数据:逗号分隔数字字符串(仅 GMV 使用)
kpiList[].progress number 进度条数值 0100仅季末售罄率使用
kpiList[].bottomText string 底部补充说明(如正价占比/库销比/客单价等)
  • trend:仅 up / down,所有指标必填;前端根据 trend 显示箭头与颜色。
  • miniBars:仅销售总额返回,逗号分隔数字,前端自动加 %≥100 深色、<100 浅色。
  • progress仅季末售罄率返回0100。
  • bottomText:平均折扣率、库存周转、连带率可返回;其他不返回。

3. 供应商表现 (Top 10) / 品类诊断(共用同一接口)

3.1 供应商表现与品类诊断接口(统一)

供应商表现 (Top 10)品类诊断列表 使用同一接口、同一返回值结构。仪表盘「供应商表现」取前 10 条以表格展示;品类诊断页使用同一接口返回的 list 以卡片列表展示。

接口信息

  • 接口路径: /api/report/product-dashboard/category-performanceexecuteProcedureWithDatareportId=6, name=YDY_AI_GET_SPDP2
  • 请求方式: GET / POST
  • 接口说明: 获取供应商表现/品类诊断数据,返回结构一致。用于仪表盘「供应商表现 (Top 10)」表格与品类诊断页卡片列表。

返回值结构data 为二维数组)

接口整体仍为 { code, msg, data }其他结构不变。仅 data 改为二维数组

  • data: [[列配置数组], [行数据数组]]
    • 第一组 data[0]:列配置数组(与下表「列配置」结构一致)。
    • 第二组 data[1]行数据数组list每行为一条品类对象字段与「返回值结构统一字段」一致。

前端使用方式:const columns = data[0]const list = data[1];仪表盘取 list 前 10 条做表格,品类诊断页用 list 渲染卡片。

请求参数

统一查询参数设计 一致。

供应商表现 Top 10 表格:列配置与动态列

列配置 categoryColumns(后端返回):表头与列按此配置渲染,列数不固定。

字段名 格式 必填 含义
title string 列标题(中文名,直接作为表头显示)
key string 该列取值字段名(行数据中对应 key 的值显示在单元格)
order number 列排序;数字越小越靠前,用于控制显示顺序
labelKey string 标签取值字段名;有值时在单元格内显示标签,不单独占一列;支持多值逗号拼接,与 colorKey 一一对应
colorKey string 标签颜色取值字段名;取值为 up/down/flatgreen/red/yellow;支持多值逗号拼接,与 labelKey 按顺序一一对应

行数据 categoryList:每行为一条对象。对每一列配置,单元格显示 row[key];若该列配置了 labelKeyrow[labelKey] 有值,则在同格内显示标签,颜色由 row[colorKey] 决定。标签与颜色支持多值labelKeycolorKey 对应字段可为逗号分隔字符串,前端按逗号拆成多组,每组「标签 + 颜色」一一对应渲染多个标签。携带“标签”“颜色”的字段仅用于展示标签与颜色,不作为单独列显示。

示例(单值){ supplier: "A公司", supplierLabel: "上升", supplierColor: "up" } → 单元格为「A公司 上升」(「上升」为绿色标签)。

示例(多值拼接){ supplier: "A公司", supplierLabel: "上升,持续突破", supplierColor: "up,up" } → 单元格为「A公司 上升 持续突破」(两个标签均为绿色)。

返回值结构(统一字段,品类诊断共用)

每条数据可包含以下字段;供应商表现 Top 10 的列由列配置 + list 动态决定。

字段名 格式 必填 含义
categoryId string 品类ID
name string 品类名称
label string 标签(文字);支持多值逗号拼接,与 trend 按顺序一一对应,如 "上升,持续突破"
trend string 标签颜色状态;支持多值逗号拼接,与 label 一一对应,如 "up,up";单值为 up/down/flat(绿/红/黄)
grossProfit number 毛利
grossMarginRate number 毛利率
turnoverDays number 周转天
status string 状态0全部、1低毛利、2缺货、3积压可多选用,拼接)
salesCount number 销量
salesAmount number 销售额
inventoryCount number 库存量
inventoryCost number 库存成本
inventoryTagAmount number 库存吊销额
digestionRate number 消化率
turnoverRate number 动销率
salesCountRef number 销量基准参考
salesAmountRef number 销售额基准参考
inventoryCountRef number 库存量基准参考
inventoryCostRef number 库存成本基准参考
inventoryTagAmountRef number 库存吊销额基准参考
digestionRateRef number 消化率基准参考
turnoverRateRef number 动销率基准参考

示例数据(与页面展示一致)

data二维数组:第一组为列配置,第二组为行数据 list。

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    [
      { "title": "供应商", "key": "supplier", "order": 1, "labelKey": "supplierLabel", "colorKey": "supplierColor" },
      { "title": "毛利率", "key": "grossMarginRate", "order": 2, "labelKey": "grossMarginRateLabel", "colorKey": "grossMarginRateColor" },
      { "title": "动销率", "key": "turnoverRate", "order": 3, "labelKey": "turnoverRateLabel", "colorKey": "turnoverRateColor" },
      { "title": "销售额", "key": "salesAmount", "order": 4, "labelKey": "salesAmountLabel", "colorKey": "salesAmountColor" }
    ],
    [
      {
        "categoryId": "C001",
        "name": "女装 - 连衣裙",
        "label": "销量领先",
        "trend": "up",
        "supplier": "杭州女装供应链",
        "supplierLabel": "上升,持续突破",
        "supplierColor": "up,up",
        "grossProfit": 1238500,
        "grossMarginRate": 42,
        "grossMarginRateLabel": "良好",
        "grossMarginRateColor": "up",
        "turnoverDays": 28,
        "status": "0",
        "salesCount": 12500,
        "salesAmount": 2948750,
        "inventoryCount": 12500,
        "inventoryCost": 1850000,
        "inventoryTagAmount": 3200000,
        "digestionRate": 68,
        "turnoverRate": 55,
        "salesCountRef": 11200,
        "salesAmountRef": 2650000,
        "inventoryCountRef": 11800,
        "inventoryCostRef": 1720000,
        "inventoryTagAmountRef": 2980000,
        "digestionRateRef": 65,
        "turnoverRateRef": 52
      },
      {
        "categoryId": "C002",
        "name": "女装 - 休闲裤",
        "label": "稳步运行",
        "trend": "flat",
        "grossProfit": 703300,
        "grossMarginRate": 38,
        "turnoverDays": 35,
        "status": "0",
        "salesCount": 8900,
        "salesAmount": 1853500,
        "inventoryCount": 9800,
        "inventoryCost": 1420000,
        "inventoryTagAmount": 2450000,
        "digestionRate": 62,
        "turnoverRate": 48,
        "salesCountRef": 8200,
        "salesAmountRef": 1690000,
        "inventoryCountRef": 9500,
        "inventoryCostRef": 1380000,
        "inventoryTagAmountRef": 2350000,
        "digestionRateRef": 59,
        "turnoverRateRef": 45
      },
      {
        "categoryId": "C003",
        "name": "女装 - 风衣/外套",
        "grossProfit": 606600,
        "grossMarginRate": 40,
        "turnoverDays": 52,
        "status": "3",
        "salesCount": 3200,
        "salesAmount": 1516500,
        "inventoryCount": 8500,
        "inventoryCost": 1180000,
        "inventoryTagAmount": 2000000,
        "digestionRate": 58,
        "turnoverRate": 52,
        "salesCountRef": 2850,
        "salesAmountRef": 1350000,
        "inventoryCountRef": 9200,
        "inventoryCostRef": 1250000,
        "inventoryTagAmountRef": 2150000,
        "digestionRateRef": 55,
        "turnoverRateRef": 48
      },
      {
        "categoryId": "C004",
        "name": "女装 - 衬衫",
        "grossProfit": 363960,
        "grossMarginRate": 36,
        "turnoverDays": 42,
        "status": "1",
        "salesCount": 6800,
        "salesAmount": 1011000,
        "inventoryCount": 7200,
        "inventoryCost": 920000,
        "inventoryTagAmount": 1580000,
        "digestionRate": 52,
        "turnoverRate": 45,
        "salesCountRef": 6400,
        "salesAmountRef": 950000,
        "inventoryCountRef": 7500,
        "inventoryCostRef": 960000,
        "inventoryTagAmountRef": 1620000,
        "digestionRateRef": 50,
        "turnoverRateRef": 42
      }
    ]
  ]
}

说明:最外层为 { code, msg, data }data 为长度为 2 的数组,data[0] 为列配置,data[1] 为 list。

数据用途说明

  • 仪表盘「供应商表现 (Top 10)」:请求本接口,取 data[0](列配置)与 data[1](行数据 list前 10 条;表头与列按 data[0] 渲染(每列 title、key可选 labelKey、colorKey筛选项:从当前 list 中收集每条数据的 label(按逗号拆分)去重后,与「全部」一起作为筛选条件(如:全部、销量领先、持续突破、低毛利…);选中某标签时仅显示该行 label 包含该标签的条目。点击行可跳转品类诊断。
  • 品类诊断页:请求本接口,用同一 data[1]list渲染卡片列表卡片展示上述全部指标及基准参考列带升降箭头。

3.2 供应商表现 (Top 10) 更多

点击「更多」跳转品类诊断页,仍调用 3.1 品类表现与品类诊断接口,仅展示形式变为卡片列表。


4. 中类销售排名 Top 5

4.1 中类销售排名 Top 5 接口

接口信息

  • 接口路径: /api/reportpage/executeProcedureWithData
  • 存储过程名: YDY_AI_GET_SPDP3
  • 请求方式: GET
  • 接口说明: 获取中类销售排名 Top5仪表盘以饼图形式展示,饼图居中偏上,图例在底部横向排列;饼图标签仅显示百分比,图例显示「名称 占比%」;点击饼图扇区可跳转品类诊断页;悬停显示详情卡片(销量信息)。

请求参数

统一查询参数设计 一致,zhonglei 固定为空字符串

参数 类型 必填 说明
reportId number 固定 6
name string 固定 YDY_AI_GET_SPDP3
rq_s string 开始日期 YYYY-MM-DD
rq_e string 结束日期 YYYY-MM-DD
ckdm string 门店代码,多选逗号分隔
pp string 品牌代码,多选逗号分隔
dalei string 大类代码,多选逗号分隔
jj string 季节代码,多选逗号分隔
zgj string 正特价多选逗号分隔1=正价0=特价)
line string 线路代码,多选逗号分隔
zhonglei string 中类,固定为空字符串 ''
p string 秘钥,默认 "123"
username string 当前登录用户

返回值结构

返回格式:{ code, msg, data },其中 data 为一维数组(混合格式):

  • 列配置项(含 keys 字段):前几项为列配置
    • keys="title":对应 name中类名称数据行中对应 title 字段
    • keys="value1":对应 value销量数据行中对应 value1 字段
  • 数据行(不含 keys 字段):后续项为数据行
    • title:中类名称
    • value1:销量值(用于饼图展示)

数据解析逻辑

  1. 分离列配置(含 keys 字段)和数据行(不含 keys 字段)
  2. 从列配置中找到 keys="title" 的列(对应 namekeys="value1" 的列(对应 value
  3. 从数据行中提取 title 作为名称,value1 作为销量值
  4. 按销量降序排序,计算各中类的销量占比,取前 5 条用于饼图展示

返回值示例

{
  "code": 0,
  "msg": "",
  "data": [
    {
      "keys": "title",
      "title": "name",
      "orders": 1
    },
    {
      "keys": "value1",
      "title": "value",
      "orders": 2
    },
    {
      "title": "K休闲裤类",
      "value1": 394
    },
    {
      "title": "外套类",
      "value1": 254
    },
    {
      "title": "棉衣类",
      "value1": 229
    }
  ]
}

数据用途说明

  • 仪表盘「中类销售排名 Top 5」:以饼图展示,前端通过数据映射逻辑获取各中类的销量,计算占比后取前 5 条绘制扇区;悬停显示销量信息;点击扇区跳转品类诊断页。
  • 点击「更多」:跳转品类诊断页,携带当前查询条件。

4.2 中类销售排名 Top 5 更多(品类分析卡片页)

点击「中类销售排名 Top 5」的「更多」进入品类分析页(路径 /reports/lijun/category-diagnostic),以卡片列表展示各品类/中类的诊断结果。该页面与 7.1 品类分析页面查询接口 使用同一查询接口同一返回值结构

查询接口

  • 接口路径: GET /api/reportpage/executeProcedureWithData
  • 存储过程名: YDY_AI_GET_SPDP3(与品类分析页 7.1 一致)
  • 请求参数: 与 统一查询参数设计 一致,不传 ghsdm;传 rq_s、rq_e、ckdm、pp、dalei、jj、zhonglei、p、username 等。

返回值结构

3.1 供应商表现与品类诊断接口 / 7.1 品类分析页面查询接口 一致:{ code, msg, data },其中 data 为长度为 2 的数组:

  • data[0]:列配置数组。每项为 { title, key/keys, order/orders, labelKey?, colorKey? }。第一列一般为品类名称(如 key 为 title),后续列为检测指标(如 key 为 value1value2…)。前端用其生成卡片内「检测指标 / 实际结果 / 基准参考」表格。
  • data[1]:行数据 list。每条对应一张品类诊断卡片字段需与列配置及页面展示一致。

行数据每条(与页面展示一致)

字段 类型 说明
title / name string 卡片标题(品类/中类名称)
tag string 状态标签,逗号分隔(如 "低毛利,缺货"),用于卡片左上角标签
tagcolor string 标签/边框颜色,逗号分隔(如 "red,down"),与 tag 顺序对应;含 down/red 时卡片边框为红
titleName / titleValue string 卡片右上角「名称: 值」(如 周转天: 28
key number/string 某指标实际值key 与列配置中 key 一致(如 value1、value2
key+date string 该指标基准参考值,展示在「基准参考」列
key+tag string 可选,该指标标签(如「上升」),逗号分隔多值
key+color string 可选该指标颜色up/down/flat 或 green/red逗号分隔与 key+tag 对应;用于升降箭头与标签样式

说明:列配置中除第一列外的每一列,若行数据中存在对应 col.key + 'date' 且非空,则卡片内展示一行「检测指标 = col.title / 实际结果 = row[col.key] / 基准参考 = row[col.key+date]」,并可带升降箭头(由 key+color 推断)及小标签(由 key+tag、key+color 解析)。

示例数据(与页面展示一致)

以下示例对应品类分析卡片页的展示:列配置为「品类 + 销量 + 销售额 + 库存量」,行数据含 title、tag、tagcolor、titleName、titleValue 及 value1/value1date、value2/value2date 等。

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    [
      { "title": "品类", "keys": "title", "orders": 0 },
      { "title": "销量", "keys": "value1", "orders": 1 },
      { "title": "销售额", "keys": "value2", "orders": 2 },
      { "title": "库存量", "keys": "value3", "orders": 3 }
    ],
    [
      {
        "title": "女装 - 连衣裙",
        "tag": "低毛利",
        "tagcolor": "red",
        "titleName": "周转天",
        "titleValue": "28",
        "value1": 12500,
        "value1date": "11,200",
        "value1tag": "上升",
        "value1color": "up",
        "value2": 2948750,
        "value2date": "2,650,000",
        "value2tag": "上升",
        "value2color": "up",
        "value3": 12500,
        "value3date": "11,800",
        "value3tag": "下降",
        "value3color": "down"
      },
      {
        "title": "女装 - 休闲裤",
        "tag": "稳步运行",
        "tagcolor": "flat",
        "titleName": "周转天",
        "titleValue": "35",
        "value1": 8900,
        "value1date": "8,200",
        "value2": 1853500,
        "value2date": "1,690,000",
        "value3": 9800,
        "value3date": "9,500"
      },
      {
        "title": "女装 - 风衣/外套",
        "tag": "积压",
        "tagcolor": "down",
        "titleName": "周转天",
        "titleValue": "52",
        "value1": 3200,
        "value1date": "2,850",
        "value2": 1516500,
        "value2date": "1,350,000",
        "value3": 8500,
        "value3date": "9,200",
        "value3tag": "下降",
        "value3color": "down"
      }
    ]
  ]
}

说明:最外层为 { code, msg, data }data[0] 为列配置(支持 title、keys、orders前端会取 keys 作为 key、orders 作为 orderdata[1] 为行数据 list。卡片标题取 row.title ?? row.name,标签取 row.tag 按逗号拆分,右上角取 row.titleNamerow.titleValue;表格每行由列配置(除首列)中该行存在 key+date 的列动态生成,实际结果取 row[key],基准参考取 row[key+date],箭头与标签由 row[key+tag]row[key+color] 解析。


5. 商品明细列表

5.1 商品明细列表接口

接口信息

  • 接口路径: /api/report/product-dashboard/product-listexecuteProcedureWithDatareportId=6, name 由后端约定)
  • 请求方式: GET / POST
  • 接口说明: 获取商品明细列表数据,包含销售、库存、售罄率、折扣率、尺码状态、生命周期等;用于仪表盘表格与产品卡片页(可选 productCode 定位当前商品)。

请求参数

统一查询参数设计 一致,并增加以下列表专用参数:

参数名 类型 必填 说明 示例
keyword string 关键词搜索(款号/名称) "" 或 "GZ6596Z"
pageNum number 页码,默认 1 1
pageSize number 每页条数,默认 20 20
productCode string 商品款号(用于定位当前商品) "" 或 "54000008"

数据用途说明

  • 仪表盘「商品明细列表」:表格列包括商品信息(图+名称+货号+颜色+季节)、类目/波段、销量、销售额、库存、周转、售罄率(进度条)、折扣率、断码监控(尺码芯片)、生命周期、供货商、操作;支持关键词搜索(款号/名称)、分页展示。

5.2 商品明细列表鼠标悬浮框

鼠标悬停在商品明细列表的表格行上时,展示商品详情悬浮卡片。

数据来源:建议使用「按产品 code 查询商品悬浮详情接口」单独查询,避免商品列表接口字段不足或分页导致的数据不全;同时确保必须携带产品 code 精确查询。

5.2.1 商品悬浮详情接口(按产品 code 查询)

接口信息
  • 接口路径: GET /api/reportpage/executeProcedureWithData
  • 请求方式: GET
  • 存储过程名: YDY_AI_GET_SPMX_DETAIL(建议;后端可按实际命名)
  • 接口说明: 根据产品款号 code + 当前查询条件,返回商品悬浮卡片所需的完整字段(图片、条码、颜色、尺码库存、价格、销售/库存、售罄率、折扣、生命周期等)。
请求参数

统一查询参数设计 基础上,增加并要求以下参数:

参数名 类型 必填 说明 示例
reportId number 固定 6 6
name string 固定 YDY_AI_GET_SPMX_DETAIL "YDY_AI_GET_SPMX_DETAIL"
code string 产品款号/货号(悬浮卡片必须携带) "54000008"
rq_s string 开始日期 YYYY-MM-DD "2025-01-20"
rq_e string 结束日期 YYYY-MM-DD "2025-01-27"
ckdm string 门店代码,多选逗号分隔 "S1,S2"
pp string 品牌代码,多选逗号分隔 "P1,P2"
dalei string 大类代码,多选逗号分隔 "D1,D2"
jj string 季节代码,多选逗号分隔 "J1,J2"
zgj string 正/特价,多选逗号分隔 "1,0"
line string 线路代码,多选逗号分隔 "L1,L2"
p string 秘钥,默认 "123" "123"
username string 当前登录用户 "admin"
返回值结构

{ code, msg, data },其中 data 为一个对象(单商品详情),字段与页面展示一致。

悬浮卡片展示字段

  • 商品图片imageUrl
  • 款号code
  • 条码barcode
  • 颜色color
  • 进价/卖价purchasePrice / sellingPrice
  • 毛利率grossMargin可选0-1 小数;若不传,前端可用 purchasePrice/sellingPrice 计算展示)
  • 类目category
  • 上市天数daysOnMarket
  • 销量/销售额/库存/周转salesCount / salesAmount / inventoryCount / turnoverText
  • 售罄率selloutRate(进度条颜色由 selloutRateStatus 在前端映射)
  • 折扣discount
  • 尺码剩余数量sizes(数组,显示每个尺码的库存状态)
  • 断码sizeStatusText
  • 生命周期lifecycle(标签,类型由 lifecycleType 控制)

说明

  • 必须带 code 查询:悬浮卡片不依赖列表行数据是否完整。
  • 兼容兜底:若后端暂未提供本接口,前端可先用 5.1 商品明细列表接口 的行数据做展示兜底,但字段可能缺失(如 barcode、sizes、purchasePrice 等)。
示例数据(与页面展示一致)
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "name": "GZ6596Z 法式收腰连衣裙",
    "code": "54000008",
    "barcode": "6901234567890",
    "color": "黑色",
    "season": "25春 一波段",
    "category": "女装 / 连衣裙",
    "supplierName": "杭州女装供应链有限公司",
    "imageUrl": "https://img.alicdn.com/imgextra/i1/2215397650053/O1CN01kQKs0S1COq3OWK7Wb_!!2215397650053.jpg",
    "purchasePrice": 168,
    "sellingPrice": 399,
    "grossMargin": 0.579,
    "daysOnMarket": 35,
    "salesCount": 320,
    "salesAmount": 85200,
    "inventoryCount": 120,
    "turnoverDays": 15,
    "turnoverText": "周转: 15天 (极快)",
    "turnoverStatus": "success",
    "selloutRate": 78,
    "selloutRateStatus": "danger",
    "discount": "9.5折",
    "discountStatus": "info",
    "sizes": [
      { "label": "S", "status": "out", "title": "S码 缺货", "stock": 0 },
      { "label": "M", "status": "out", "title": "M码 缺货", "stock": 0 },
      { "label": "L", "status": "low", "title": "L码 紧张", "stock": 8 },
      { "label": "XL", "status": "ok", "title": "XL码 充足", "stock": 45 }
    ],
    "sizeStatusText": "缺核心码",
    "sizeStatusStatus": "danger",
    "lifecycle": "爆发成长期",
    "lifecycleType": "success",
    "lifecycleIcon": "fa-solid:fire-alt"
  }
}

5.3 商品明细列表更多

点击商品明细列表的表格行,跳转到「查看更多产品卡片」页面。

数据来源:使用 5.1 商品明细列表接口,可选传 productCode 参数定位当前商品。

请求参数:在统一查询参数基础上增加:

  • keyword:款号/名称搜索(可选)
  • pageNum:页码(默认 1
  • pageSize:每页条数(默认 20
  • productCode:当前商品款号(可选,用于定位当前商品)

展示方式:产品卡片页以卡片形式展示商品列表,每个卡片包含商品图片、名称、款号、颜色、季节、类目、上市天数、销量、销售额、库存、周转、售罄率、折扣、尺码状态、生命周期、供货商等信息。

说明:与仪表盘商品明细列表使用相同的数据接口和数据结构,只是展示方式不同(表格 vs 卡片)。

示例数据(与页面展示一致)

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "list": [
      {
        "name": "GZ6596Z 法式收腰连衣裙",
        "code": "54000008",
        "color": "黑色",
        "season": "25春 一波段",
        "category": "女装 / 连衣裙",
        "daysOnMarket": 35,
        "salesAmount": 85200,
        "salesCount": 320,
        "inventoryCount": 120,
        "turnoverText": "周转: 15天 (极快)",
        "turnoverStatus": "success",
        "selloutRate": 78,
        "selloutRateStatus": "danger",
        "discount": "9.5折",
        "discountStatus": "info",
        "sizes": [
          { "label": "S", "status": "out", "title": "S码 缺货", "stock": 0 },
          { "label": "M", "status": "out", "title": "M码 缺货", "stock": 0 },
          { "label": "L", "status": "low", "title": "L码 紧张", "stock": 8 },
          { "label": "XL", "status": "ok", "title": "XL码 充足", "stock": 45 }
        ],
        "sizeStatusText": "缺核心码",
        "sizeStatusStatus": "danger",
        "lifecycle": "爆发成长期",
        "lifecycleType": "success",
        "lifecycleIcon": "fa-solid:fire-alt",
        "actionText": "补货",
        "actionType": "primary",
        "barcode": "6901234567890",
        "purchasePrice": 168,
        "sellingPrice": 399,
        "imageUrl": "https://img.alicdn.com/imgextra/i1/2215397650053/O1CN01kQKs0S1COq3OWK7Wb_!!2215397650053.jpg",
        "supplierName": "杭州女装供应链有限公司"
      },
      {
        "name": "7537X 双面呢大衣",
        "code": "54000321",
        "color": "驼色",
        "season": "24冬 三波段",
        "category": "女装 / 外套",
        "daysOnMarket": 120,
        "salesAmount": 22000,
        "salesCount": 18,
        "inventoryCount": 850,
        "turnoverText": "周转: 280天 (滞销)",
        "turnoverStatus": "info",
        "selloutRate": 15,
        "selloutRateStatus": "warning",
        "discount": "6.0折",
        "discountStatus": "danger",
        "sizes": [
          { "label": "S", "status": "ok", "title": "S码 充足", "stock": 210 },
          { "label": "M", "status": "ok", "title": "M码 充足", "stock": 220 },
          { "label": "L", "status": "ok", "title": "L码 充足", "stock": 215 },
          { "label": "XL", "status": "ok", "title": "XL码 充足", "stock": 205 }
        ],
        "sizeStatusText": "库存齐色齐码",
        "sizeStatusStatus": "info",
        "lifecycle": "严重滞销",
        "lifecycleType": "danger",
        "lifecycleIcon": "ep:circle-close",
        "actionText": "调价",
        "actionType": "warning",
        "barcode": "6901234567891",
        "supplierName": "上海大衣制造厂",
        "purchasePrice": 580,
        "sellingPrice": 1299,
        "imageUrl": "https://img.alicdn.com/imgextra/i2/2215397650053/O1CN01kQKs0S1COq3OWK7Wb_!!2215397650053.jpg"
      }
    ],
    "total": 156,
    "pageNum": 1,
    "pageSize": 20
  }
}

字段含义

字段 格式 必填 含义
code number 响应码200 表示成功
msg string 响应消息
data.list array 商品明细列表
data.total number 总记录数(分页用)
data.pageNum number 当前页码
data.pageSize number 每页条数
list[].name string 商品名称
list[].code string 款号/货号
list[].color string 颜色
list[].season string 季节/波段
list[].category string 类目
list[].daysOnMarket number 上市天数
list[].salesAmount number 销售额(单位:分)
list[].salesCount number 销量(件)
list[].inventoryCount number 库存量(件)
list[].turnoverText string 周转展示文案(如“周转: 15天 (极快)”)
list[].turnoverStatus string 周转展示状态success/warning/danger/info由前端映射为样式
list[].selloutRate number 售罄率0100
list[].selloutRateStatus string 售罄率展示状态success/warning/danger/info由前端映射为样式与进度条颜色
list[].discount string 折扣文案如“9.5折”)
list[].discountStatus string 折扣展示状态success/warning/danger/info由前端映射为样式
list[].sizes array 尺码状态数组
sizes[].label string 尺码S/M/L/XL…
sizes[].status string 尺码状态out/low/warn/ok由前端映射为样式类红/橙/黄/灰)
sizes[].title string 悬浮提示如“S码 缺货”)
sizes[].stock number 该尺码剩余数量
sizes[].outOfStock boolean 是否缺货
list[].sizeStatusText string 断码说明文案
list[].sizeStatusStatus string 断码展示状态success/warning/danger/info由前端映射为样式
list[].lifecycle string 生命周期文案
list[].lifecycleType string 生命周期标签类型success/danger/info/warning
list[].lifecycleIcon string 生命周期图标名
list[].actionText string 操作按钮文案
list[].actionType string 操作按钮类型primary/warning/default/danger
list[].productId string 商品 ID
list[].imageUrl string 商品图片 URL
list[].turnoverDays number 周转天数(数值)
list[].grossMargin number 毛利率01小数
list[].barcode string 条码
list[].purchasePrice number 进价(元)
list[].sellingPrice number 卖价(元)
list[].supplierName string 供货商名称

6. 品类诊断列表(与品类表现共用接口)

品类诊断页与「供应商表现 (Top 10)」使用同一接口同一返回值结构

  • 接口:见 3.1 品类表现与品类诊断接口(统一)
  • 请求参数:与统一查询参数一致。
  • 返回data 为二维数组 [[列配置], [list]]data[0] 为列配置,data[1] 为行数据 list品类表现表格按列配置动态渲染品类诊断共用 list 结构(品类名称、毛利、毛利率、周转天、状态、销量、销售额、库存量、库存成本、库存吊销额、消化率、动销率及对应基准参考字段)。

品类诊断页展示:品类分析页(路径 /reports/lijun/category-diagnostic)用上述 listdata[1])渲染卡片列表;卡片头部为品类名称、状态标签(由 status 解析)、周转天等;指标表格三列「检测指标 / 实际结果 / 基准参考」,对应销量、销售额、库存量、库存成本、库存吊销额、消化率、动销率及带 Ref 的基准参考,升降箭头由实际值与参考值比较得出。

品类代码说明dalei 参数值):

  • "1" - 女装 "2" - 男装 "3" - 童装 "4" - 鞋区 "5" - 内衣睡衣 "6" - 床上用品 "7" - 皮具箱包 "8" - 百货 "9" - 礼品区 "A" - 游戏厅 "B" - 联营 "0" - 玩具 "C" - 辅料


附录

A. 通用响应格式

所有接口统一使用以下响应格式:

{
  "code": 200,        // 响应码: 200-成功, 400-参数错误, 500-服务器错误
  "msg": "查询成功",   // 响应消息
  "data": {}          // 响应数据
}

B. 错误码说明

错误码 说明
200 请求成功
400 请求参数错误
401 未授权, 需要登录
403 无权限访问
404 资源不存在
500 服务器内部错误

C. 日期格式说明

  • 所有日期参数统一使用格式: YYYY-MM-DD
  • 示例: 2025-01-27
  • 时区: 服务器时区

D. 金额单位说明

  • 所有金额字段统一使用 作为单位
  • 前端显示时需要转换为元: 金额(元) = 金额(分) / 100
  • 示例: 后端返回 8425000 分, 前端显示为 84250.00

E. 分页说明

  • pageNum: 页码, 从1开始
  • pageSize: 每页数量, 默认20
  • 返回数据包含 total 总记录数, 用于前端分页组件

F. 筛选条件说明

  • "all" 表示不筛选, 查询全部
  • 多个值使用数组传递, 如: ["1", "2"]
  • 空数组 [] 等同于 "all"

文档版本: v1.7
最后更新: 2025-01-25
维护人员: 开发团队

v1.7 更新说明

  • 供应商表现与品类诊断统一接口:供应商表现 (Top 10) 与品类诊断列表共用同一接口;接口返回 data 为二维数组 [[列配置], [list]],第一组为列、第二组为行数据;供应商表现表格按列配置 + list 动态渲染(每列:名称、标签、颜色)。

v1.6 更新说明

  • 简化请求参数说明:所有接口的请求参数统一引用「统一查询参数设计」部分,不再在每个接口中重复叙述。仅保留特殊参数说明(如 KPI 接口的 reportId/name、商品明细列表的分页参数等

v1.5 更新说明

  • 删除不使用的接口文档:删除 BCG 矩阵接口文档,因为页面中已不再显示 BCG 矩阵图表。

v1.4 更新说明

  • 按页面功能模块重新组织文档结构:按照实际页面功能模块划分,分为查询条件、顶部数据选项卡、供应商表现 (Top 10)、中类销售排名 Top 5、商品明细列表、品类诊断列表等模块每个模块包含主接口和相关的"更多"页面接口说明。
  • 新增页面功能说明
    • 供应商表现 (Top 10) 更多:说明点击"更多"按钮跳转到品类诊断页
    • 中类销售排名 Top 5 更多:说明点击"更多"按钮跳转到品类诊断页
    • 商品明细列表鼠标悬浮框:说明悬浮卡片展示的字段和数据来源
    • 商品明细列表更多:说明点击表格行跳转到产品卡片页
  • 目录结构优化:按照页面功能模块组织,便于前端开发人员快速找到对应页面的接口文档。

v1.3 更新说明

  • 重新组织文档结构:按照功能模块划分,分为基础模块、仪表盘模块、商品管理模块、品类分析模块;更新目录结构,按模块组织接口,便于查找和维护。
  • 接口模块化重组
    • 基础模块:统一查询参数设计、下拉选项接口
    • 仪表盘模块KPI 指标、中类销售排名 Top5、供应商表现 (Top 10)
    • 商品管理模块:商品明细列表接口
    • 品类分析模块:品类诊断列表接口

v1.2 更新说明

  • 新增 1.3 供应商表现 (Top 10) 接口:表格按后端返回的列配置与行数据动态渲染;每列支持名称、标签、颜色;支持筛选和展开/收起。
  • 更新 1.2 中类销售排名 Top5 接口:更新接口说明,明确以饼图形式展示,饼图标签仅显示百分比,图例在底部横向排列;更新数据用途说明,明确饼图展示方式和交互。

v1.1 更新说明

  • 新增「0. 统一查询参数设计」,仪表盘及各子页共用 rq_s/rq_e、ckdm、pp、jj、dalei、line、zgj、username多选以逗号分隔。
  • 1.1 KPI 接口:补充 kpiCardData 表结构及与顶部数据卡片一致的响应示例trend 仅 up/downminiBars/progress/bottomText 按指标区分)。
  • 新增 1.3 中类销售排名 Top5、1.4 商品明细列表(含 productCode、keyword、分页的查询接口与参数。
  • 2.1 品类诊断列表请求参数改为统一查询参数。
  • 新增「3. 下拉选项接口」executeTablereportId=6tableName: pinpai/jijie/dalei/xianlu/line/ljsm_kehu