From 1acd97b9e098d7c23254ba3558fd12047f480375 Mon Sep 17 00:00:00 2001 From: yueyang <2495544247@qq.com> Date: Tue, 20 Oct 2026 09:32:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=9A=E7=BB=A9=E6=98=8E=E7=BB=86=EF=BC=9A?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E6=94=B9=E4=B8=BA=E4=B8=87=E5=85=83=E5=B9=B6?= =?UTF-8?q?=E6=95=B4=E7=90=86=E6=8C=87=E6=A0=87=E5=8F=A3=E5=BE=84=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 金额构成统一按万元显示两位小数并逐项标注万;长口径说明拆为匹配口径、金额字段、差额判定、匹配原因四组,完整规则默认折叠。 --- .../pages/partials/directory-table.blade.php | 182 +++++++++++++++++- 1 file changed, 172 insertions(+), 10 deletions(-) diff --git a/resources/views/business/pages/partials/directory-table.blade.php b/resources/views/business/pages/partials/directory-table.blade.php index 73bef4c0..a198e623 100644 --- a/resources/views/business/pages/partials/directory-table.blade.php +++ b/resources/views/business/pages/partials/directory-table.blade.php @@ -739,6 +739,86 @@ display: none; } + /* 业绩明细:把长口径说明拆成可扫描的规则分组,完整原文默认折叠 */ + .receipt-method-guide { + margin: 0 0 1rem; + padding: .9rem 1rem; + border: 1px solid var(--vip-border, #d8d2c7); + border-radius: .75rem; + background: #fff; + } + + .receipt-method-guide__grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); + gap: .7rem 1.5rem; + } + + .receipt-method-guide__section { + min-width: 0; + } + + .receipt-method-guide__section h3 { + margin: 0 0 .3rem; + color: var(--vip-text, #171717); + font-size: .75rem; + font-weight: 600; + line-height: 1.4; + } + + .receipt-method-guide__section ul { + display: grid; + gap: .12rem; + margin: 0; + padding-left: 1rem; + color: var(--vip-text-muted, #595959); + font-size: .75rem; + line-height: 1.55; + } + + .receipt-method-guide__formula { + color: var(--vip-text, #171717); + font-weight: 600; + } + + .receipt-method-guide__chips { + display: flex; + flex-wrap: wrap; + gap: .3rem; + } + + .receipt-method-guide__chip { + display: inline-flex; + align-items: center; + padding: .08rem .4rem; + border: 1px solid #e8dfcd; + border-radius: .3rem; + background: #fffdf8; + color: var(--vip-text-muted, #595959); + font-size: .6875rem; + line-height: 1.5; + } + + .receipt-method-guide__details { + margin-top: .7rem; + padding-top: .65rem; + border-top: 1px solid #eee7da; + } + + .receipt-method-guide__details summary { + color: var(--vip-content-accent-dark, #856632); + cursor: pointer; + font-size: .75rem; + font-weight: 600; + } + + .receipt-method-guide__details p { + margin: .55rem 0 0; + color: var(--vip-text-muted, #595959); + font-size: .75rem; + line-height: 1.7; + } + /* 业绩明细:店铺收款匹配统计条 */ .receipt-match-summary { display: flex; @@ -774,6 +854,18 @@ gap: .35rem 1.25rem; } + .receipt-match-summary__items--amounts { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: .4rem 1.75rem; + } + + @media (max-width: 900px) { + .receipt-match-summary__items--amounts { + grid-template-columns: 1fr; + } + } + .receipt-match-summary__item--lead strong { font-size: 1.25rem; color: #b80000; @@ -797,6 +889,25 @@ color: var(--vip-text, #1f2937); } + .receipt-match-summary__item--amount { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + align-items: baseline; + gap: .75rem; + } + + .receipt-match-summary__item--amount strong { + text-align: right; + white-space: nowrap; + } + + .receipt-match-summary__value-unit { + margin-left: .15em; + color: #8a8377; + font-size: .75rem; + font-weight: 500; + } + .receipt-match-summary__item.is-ok strong { color: var(--vip-success, #137a3c); } @@ -1076,7 +1187,7 @@
{{ $page['title'] ?? $section['title'] }} · 字段结构 - @if (!empty($directory['description'])) + @if (!empty($directory['description']) && ($page['slug'] ?? '') !== 'performance-details')

{{ $directory['description'] }}

@endif
@@ -1118,6 +1229,57 @@ @endif @endif + @if (($page['slug'] ?? '') === 'performance-details' && !empty($directory['description'])) +
+
+
+

匹配口径

+
    +
  • 一行 = 一个店铺 + 一个线上订单号
  • +
  • 商品金额:主单 → 原单行 → 全部行
  • +
  • 合单/拆单只挂一次,排除 X0000x 虚拟条码
  • +
  • 订单实付取订单级实付,再扣虚拟条码行实付
  • +
+
+
+

金额字段

+
    +
  • 收入:总账备注 = 订单收入
  • +
  • 优惠/冲减:分别取优惠收入、冲减收入,不计入收入
  • +
  • 退款:单独列示,不参与收入和差额
  • +
  • 种菜:种菜订单的收入子集,不参与差额
  • +
+
+
+

差额判定

+
    +
  • 差额 = 收入 + 优惠 + 冲减 − 订单实付
  • +
  • 未匹配时按订单实付 = 0 计入差额
  • +
  • 原因按顺序命中;无明确原因时标「差额待核实」
  • +
  • 卖家实收 / 应付已付能对平的行,差额按 0 计
  • +
+
+
+

匹配原因

+
+ 账单无单号 + 单号格式异常 + 订单表无此单 + 订单无实付金额 + 无收款账单 + 1688 采销收款 + 店铺名不一致 + 同单多笔收款 +
+
+
+
+ 查看完整字段与差额判定规则 +

{{ $directory['description'] }}

+
+
+ @endif + @if (($page['slug'] ?? '') === 'performance-details' && !empty($receiptStats)) {{-- 匹配统计:账单笔数、成功/未匹配笔数、双方收入合计核对结果 --}}
@@ -1134,15 +1296,15 @@
金额构成
-
- 账单收入合计{{ number_format((float) $receiptStats['income_total'], 2) }} - 优惠金额合计{{ number_format((float) ($receiptStats['discount_total'] ?? 0), 2) }} - 冲减金额合计{{ number_format((float) ($receiptStats['offset_total'] ?? 0), 2) }} - 退款金额合计{{ number_format((float) ($receiptStats['refund_total'] ?? 0), 2) }} - 种菜金额合计{{ number_format((float) ($receiptStats['planting_total'] ?? 0), 2) }} - 订单商品金额合计{{ number_format((float) $receiptStats['goods_total'], 2) }} - 订单实付金额合计{{ number_format((float) ($receiptStats['paid_total'] ?? 0), 2) }} - 差额合计{{ number_format((float) $receiptStats['difference_total'], 2) }} +
+ 账单收入合计{{ number_format((float) $receiptStats['income_total'] / 10000, 2) }}万 + 订单商品金额合计{{ number_format((float) $receiptStats['goods_total'] / 10000, 2) }}万 + 订单实付金额合计{{ number_format((float) ($receiptStats['paid_total'] ?? 0) / 10000, 2) }}万 + 优惠金额合计{{ number_format((float) ($receiptStats['discount_total'] ?? 0) / 10000, 2) }}万 + 冲减金额合计{{ number_format((float) ($receiptStats['offset_total'] ?? 0) / 10000, 2) }}万 + 退款金额合计{{ number_format((float) ($receiptStats['refund_total'] ?? 0) / 10000, 2) }}万 + 种菜金额合计{{ number_format((float) ($receiptStats['planting_total'] ?? 0) / 10000, 2) }}万 + 差额合计{{ number_format((float) $receiptStats['difference_total'] / 10000, 2) }}万