From deb475222c7fc7cbffbb44a80ec93ed2f65e9dea Mon Sep 17 00:00:00 2001 From: fengpu <18691763612@163.com> Date: Mon, 10 Aug 2026 10:46:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=B6=E9=93=B6=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7=E7=B1=BB=E5=9E=8B=E5=BE=BD?= =?UTF-8?q?=E6=A0=87=E4=BD=93=E7=B3=BB=20+=20=E8=A1=A5=E9=BD=90=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E9=A1=B5=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 主屏(03/04/05/06/07)与副屏(user-02/03/04)统一用户类型徽标:会员/临时/员工三种配色 - 订单列表(05)与订单详情(06)增加用户类型展示,新增顾客信息卡片 - 订单详情(06)移除"补齐明细"入口(支付后不再适用) - 补齐明细页(08)重构为表格化结构,新增"未识别取餐记录"作为少记加入来源 - 导航页"结算设备"改名为"结算台" Co-Authored-By: Claude Opus 4.7 --- .../checkout-device/03-checkout.html | 1620 +++++++++++++---- .../checkout-device/04-pay-success.html | 251 ++- .../checkout-device/05-orders.html | 124 +- .../checkout-device/06-order-detail.html | 341 +++- .../checkout-device/07-statistics.html | 811 ++++----- .../checkout-device/08-reconcile.html | 1127 +++++++----- .../checkout-device/doc/CHANGELOG.md | 304 ++++ .../user-02-checkout-sync.html | 373 +++- .../checkout-device/user-03-paying.html | 1010 +++++++++- .../checkout-device/user-04-success.html | 418 +++-- other-module/canteen-device/index.html | 2 +- 11 files changed, 4900 insertions(+), 1481 deletions(-) diff --git a/other-module/canteen-device/checkout-device/03-checkout.html b/other-module/canteen-device/checkout-device/03-checkout.html index cf9d47a..ad5ae71 100644 --- a/other-module/canteen-device/checkout-device/03-checkout.html +++ b/other-module/canteen-device/checkout-device/03-checkout.html @@ -57,6 +57,7 @@ font-size: 12px; color: rgba(255, 255, 255, 0.5); font-family: Menlo, Consolas, monospace; + margin-left: 14px; } /* 用户信息条(顶部第二条) */ @@ -128,25 +129,37 @@ font-family: Menlo, Consolas, monospace; font-weight: 700; } - .user-bar__level { - padding: 5px 12px; - background: linear-gradient(135deg, rgba(251, 191, 36, 0.28), rgba(251, 146, 60, 0.2)); - border: 1px solid rgba(251, 191, 36, 0.55); - border-radius: 12px; + /* 用户类型徽标(参考 user-02 风格,支持会员/临时/员工三种) */ + .user-type { + padding: 6px 14px; + border-radius: 14px; font-size: 12px; - color: #fbbf24; font-weight: 700; - display: flex; - flex-direction: column; - align-items: center; - line-height: 1.2; + text-align: center; + line-height: 1.3; + letter-spacing: 0.5px; flex-shrink: 0; } - .user-bar__level small { - font-size: 9px; - color: rgba(251, 191, 36, 0.85); - font-weight: 500; - margin-top: 1px; + .user-type--member { + background: linear-gradient(135deg, rgba(96, 165, 250, 0.28), rgba(251, 191, 36, 0.32)); + border: 1px solid rgba(251, 191, 36, 0.55); + color: #fbbf24; + box-shadow: 0 2px 8px rgba(251, 191, 36, 0.18); + } + .user-type--member .level { + color: #fde68a; + font-weight: 800; + margin-left: 4px; + } + .user-type--temp { + background: rgba(148, 163, 184, 0.18); + border: 1px solid rgba(148, 163, 184, 0.45); + color: #cbd5e1; + } + .user-type--staff { + background: linear-gradient(135deg, rgba(96, 165, 250, 0.22), rgba(74, 144, 217, 0.14)); + border: 1px solid rgba(96, 165, 250, 0.5); + color: #60a5fa; } /* 主内容:三列 */ @@ -221,70 +234,54 @@ color: #fff; } - /* 商品列表区 */ + /* 商品列表区(参考 user-02 表格化风格,删除热量列,无自动滚动) */ .items-list { flex: 1; overflow-y: auto; - padding: 10px 28px 14px; + padding: 10px 24px 12px; scrollbar-width: none; } .items-list::-webkit-scrollbar { display: none; } - /* 表头 */ - .table-head { - display: grid; - grid-template-columns: 24px auto 1fr auto; - gap: 10px; - padding: 6px 14px; + /* 餐品明细表格(无热量列:序号 / 类别 / 餐品名称 / 单价 / 取餐量 / 金额) */ + .items-table { + width: 100%; + border-collapse: collapse; + table-layout: fixed; + } + .items-table th, + .items-table td { + padding: 9px 8px; + text-align: left; + vertical-align: middle; + } + /* 列宽分配(共 6 列,总宽 ~830px,与左栏宽度匹配) */ + .items-table col.col-seq { width: 40px; } + .items-table col.col-cat { width: 64px; } + .items-table col.col-name { width: auto; } + .items-table col.col-unit { width: 110px; } + .items-table col.col-weight { width: 100px; } + .items-table col.col-price { width: 100px; } + + .items-table thead th { font-size: 11px; - color: rgba(255, 255, 255, 0.4); + color: rgba(255, 255, 255, 0.5); letter-spacing: 1px; font-weight: 500; - border-bottom: 1px solid rgba(255, 255, 255, 0.08); - margin-bottom: 4px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + padding-bottom: 8px; } - .table-head__name { text-align: left; } - .table-head__weight { text-align: center; justify-self: center; } - .table-head__price { text-align: right; } + .items-table thead th.col-cat-h, + .items-table thead th.col-weight-h { text-align: center; } + .items-table thead th.col-unit-h, + .items-table thead th.col-price-h { text-align: right; } - /* 分组标题 */ - .zone-header { - font-size: 13px; - color: rgba(255, 255, 255, 0.6); - font-weight: 600; - letter-spacing: 0.5px; - padding: 6px 0 8px; - border-bottom: 1px dashed rgba(255, 255, 255, 0.1); - margin-bottom: 6px; - margin-top: 8px; - display: flex; - align-items: center; - gap: 8px; - } - .zone-header__count { - padding: 1px 8px; - background: rgba(74, 144, 217, 0.18); - border-radius: 10px; - font-size: 11px; - color: #60a5fa; - font-weight: 500; - } + .items-table tbody td { border-bottom: 1px dashed rgba(255, 255, 255, 0.05); } + .items-table tbody tr:hover td { background: rgba(74, 144, 217, 0.08); } - /* 商品行 */ - .item-card { - display: grid; - grid-template-columns: 24px auto 1fr auto; - gap: 10px; - padding: 8px 14px; - background: rgba(26, 43, 74, 0.35); - border: 1px solid rgba(255, 255, 255, 0.04); - border-radius: 8px; - margin-bottom: 4px; - align-items: center; - } - .item-card__seq { - width: 22px; - height: 22px; + .cell-seq { + width: 24px; + height: 24px; border-radius: 50%; background: rgba(74, 144, 217, 0.18); border: 1px solid rgba(74, 144, 217, 0.35); @@ -292,18 +289,11 @@ font-size: 11px; font-weight: 700; font-family: Menlo, Consolas, monospace; - display: flex; + display: inline-flex; align-items: center; justify-content: center; - flex-shrink: 0; } - .item-card__info { - display: flex; - align-items: baseline; - gap: 8px; - min-width: 0; - } - .item-card__name { + .cell-name { font-size: 15px; color: #fff; font-weight: 600; @@ -311,25 +301,52 @@ overflow: hidden; text-overflow: ellipsis; } - .item-card__unit-price { + /* 类别徽标:餐线 / 档口 */ + .cell-cat { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 2px 0; + width: 48px; + border-radius: 4px; + font-size: 11px; + font-weight: 700; + letter-spacing: 1px; + line-height: 1.4; + } + .cell-cat--line { + background: rgba(96, 165, 250, 0.18); + border: 1px solid rgba(96, 165, 250, 0.45); + color: #60a5fa; + } + .cell-cat--booth { + background: rgba(251, 146, 60, 0.18); + border: 1px solid rgba(251, 146, 60, 0.45); + color: #fb923c; + } + .cell-unit { + text-align: right; font-size: 12px; color: rgba(255, 255, 255, 0.55); font-family: Menlo, Consolas, monospace; - flex-shrink: 0; + white-space: nowrap; } - .item-card__weight { - font-size: 12px; + .cell-weight { + text-align: center; color: #0AC4A8; font-family: Menlo, Consolas, monospace; + font-size: 13px; + white-space: nowrap; + } + .cell-weight__pill { + display: inline-block; padding: 2px 10px; background: rgba(10, 196, 168, 0.12); border-radius: 10px; - white-space: nowrap; - text-align: center; - min-width: 76px; - justify-self: center; + min-width: 70px; } - .item-card__price { + .cell-price { + text-align: right; font-size: 16px; color: #0AC4A8; font-weight: 700; @@ -337,28 +354,43 @@ white-space: nowrap; } - /* 统一小计条 */ - .subtotal-bar { - margin-top: 10px; - padding: 12px 16px; - background: linear-gradient(90deg, rgba(10, 196, 168, 0.12), rgba(74, 144, 217, 0.08)); - border: 1px solid rgba(10, 196, 168, 0.3); + /* 合计行(固定底部,与表头列对齐,无热量列) */ + .items-footer { + margin-top: 8px; + border-top: 1.5px solid rgba(10, 196, 168, 0.4); + background: linear-gradient(90deg, rgba(10, 196, 168, 0.14), rgba(74, 144, 217, 0.08)); border-radius: 10px; - display: flex; - justify-content: space-between; - align-items: center; } - .subtotal-bar__count { + .items-footer table { + width: 100%; + border-collapse: collapse; + table-layout: fixed; + } + .items-footer td { + padding: 12px 8px; + font-size: 13px; + color: rgba(255, 255, 255, 0.75); + vertical-align: middle; + } + .items-footer td.col-seq-f { width: 40px; } + .items-footer td.col-cat-f { width: 64px; } + .items-footer td.col-name-f { width: auto; } + .items-footer td.col-unit-f { width: 110px; } + .items-footer td.col-weight-f { width: 100px; text-align: center; } + .items-footer td.col-price-f { width: 100px; text-align: right; } + .footer-label { font-size: 13px; color: rgba(255, 255, 255, 0.7); + letter-spacing: 1px; + font-weight: 600; } - .subtotal-bar__count strong { - color: #fff; + .footer-value { font-size: 15px; + color: #fff; + font-weight: 700; font-family: Menlo, Consolas, monospace; - margin: 0 2px; } - .subtotal-bar__amount { + .footer-amount { font-size: 22px; font-weight: 700; color: #0AC4A8; @@ -393,14 +425,14 @@ } .pay-col__body::-webkit-scrollbar { display: none; } - .pay-col__section { padding: 14px 20px; } + .pay-col__section { padding: 6px 14px; } .pay-col__section + .pay-col__section { border-top: 1px solid rgba(255, 255, 255, 0.06); } .section-label { font-size: 11px; color: rgba(255, 255, 255, 0.5); letter-spacing: 1px; - margin-bottom: 10px; + margin-bottom: 4px; display: flex; align-items: center; gap: 6px; @@ -414,19 +446,19 @@ } /* 金额汇总 */ - .amount-block { padding: 4px 0 0; } + .amount-block { padding: 1px 0 0; } .amount-row { display: flex; justify-content: space-between; align-items: baseline; - padding: 4px 0; - font-size: 13px; + padding: 2px 0; + font-size: 12.5px; } .amount-row__label { color: rgba(255, 255, 255, 0.6); } .amount-row__value { color: rgba(255, 255, 255, 0.9); font-weight: 600; } .amount-row--total { - margin-top: 6px; - padding-top: 10px; + margin-top: 3px; + padding-top: 6px; border-top: 1px dashed rgba(255, 255, 255, 0.12); } .amount-row--total .amount-row__label { @@ -440,21 +472,21 @@ font-weight: 700; } - /* 支付方式 Tab */ + /* 支付方式 Tab(3 列:在线/现金/余额,代金券独立为优惠入口) */ .pay-tabs { display: grid; - grid-template-columns: 1fr 1fr; + grid-template-columns: repeat(3, 1fr); gap: 8px; } .pay-tab { - padding: 14px 10px; + padding: 8px 6px; background: rgba(26, 43, 74, 0.4); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 10px; display: flex; flex-direction: column; align-items: center; - gap: 6px; + gap: 3px; cursor: pointer; transition: all 0.2s; text-align: center; @@ -468,38 +500,10 @@ border-color: #4a90d9; box-shadow: 0 0 0 1px rgba(74, 144, 217, 0.4), 0 4px 14px rgba(74, 144, 217, 0.25); } - .pay-tab__icon { font-size: 26px; } + .pay-tab__icon { font-size: 22px; } .pay-tab__name { font-size: 12px; color: rgba(255, 255, 255, 0.85); font-weight: 600; } .pay-tab.active .pay-tab__name { color: #fff; } - /* 支付详情区 */ - .pay-detail { - margin-top: 10px; - padding: 14px; - background: rgba(0, 0, 0, 0.2); - border: 1px solid rgba(255, 255, 255, 0.06); - border-radius: 10px; - font-size: 12px; - color: rgba(255, 255, 255, 0.75); - line-height: 1.7; - min-height: 76px; - } - .pay-detail__title { - font-weight: 600; - color: #fff; - margin-bottom: 4px; - font-size: 13px; - } - .pay-detail__hint { - color: rgba(255, 255, 255, 0.55); - font-size: 11px; - } - .pay-detail__status { - margin-top: 6px; - font-size: 11px; - color: #60a5fa; - } - /* 餐券输入区 */ .coupon-input-row { display: flex; @@ -537,6 +541,267 @@ transform: translateY(-1px); } + /* 现金实收输入区 */ + .cash-input-row { + display: flex; + gap: 6px; + align-items: center; + margin-top: 6px; + padding: 7px 12px; + background: rgba(0, 0, 0, 0.25); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 8px; + } + .cash-input-row__label { + font-size: 11px; + color: rgba(255, 255, 255, 0.65); + flex-shrink: 0; + } + .cash-input { + flex: 1; + padding: 6px 10px; + background: rgba(0, 0, 0, 0.35); + border: 1px solid rgba(74, 144, 217, 0.3); + border-radius: 6px; + color: #fff; + font-size: 15px; + font-weight: 700; + font-family: Menlo, Consolas, monospace; + outline: none; + min-width: 0; + } + .cash-input:focus { border-color: #4a90d9; } + .cash-input::placeholder { color: rgba(255, 255, 255, 0.3); font-weight: 400; } + + /* 快捷金额按钮 */ + .quick-cash { + display: grid; + grid-template-columns: repeat(6, 1fr); + gap: 4px; + margin-top: 5px; + } + .quick-cash__btn { + padding: 5px 4px; + background: rgba(26, 43, 74, 0.5); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 6px; + color: rgba(255, 255, 255, 0.85); + font-size: 11px; + font-weight: 600; + cursor: pointer; + transition: all 0.2s; + font-family: Menlo, Consolas, monospace; + } + .quick-cash__btn:hover { + background: rgba(74, 144, 217, 0.15); + border-color: rgba(74, 144, 217, 0.4); + color: #fff; + } + .quick-cash__btn--exact { + background: rgba(10, 196, 168, 0.15); + border-color: rgba(10, 196, 168, 0.4); + color: #0AC4A8; + } + .quick-cash__btn--exact:hover { + background: rgba(10, 196, 168, 0.25); + color: #fff; + } + + /* 找零/补差结果区(精简单行版,避免溢出) */ + .cash-result { + display: none; + margin-top: 5px; + padding: 5px 12px; + border-radius: 8px; + flex-direction: row; + align-items: center; + justify-content: space-between; + gap: 8px; + } + .cash-result.show { display: flex; } + .cash-result--change { + background: linear-gradient(135deg, rgba(82, 196, 26, 0.15), rgba(10, 196, 168, 0.08)); + border: 1px solid rgba(82, 196, 26, 0.4); + } + .cash-result--diff { + background: linear-gradient(135deg, rgba(251, 146, 60, 0.15), rgba(245, 34, 45, 0.05)); + border: 1px solid rgba(251, 146, 60, 0.45); + flex-direction: column; + align-items: stretch; + } + .cash-result__main { + display: flex; + justify-content: space-between; + align-items: baseline; + flex: 1; + min-width: 0; + } + .cash-result__label { + color: rgba(255, 255, 255, 0.7); + font-size: 12px; + } + .cash-result__value { + font-family: Menlo, Consolas, monospace; + font-weight: 800; + color: #4ade80; + font-size: 18px; + } + .cash-result--diff .cash-result__value { + color: #fb923c; + } + .cash-result__action { + padding: 4px 12px; + background: linear-gradient(135deg, #fb923c, #f97316); + border: none; + border-radius: 6px; + color: #fff; + font-size: 11.5px; + font-weight: 700; + cursor: pointer; + transition: all 0.2s; + font-family: inherit; + text-align: center; + width: 100%; + margin-top: 4px; + } + .cash-result__action:hover { + transform: translateY(-1px); + box-shadow: 0 4px 14px rgba(251, 146, 60, 0.35); + } + + /* 金额汇总新分行 */ + .amount-row__value--coupon { color: #fbbf24; } + .amount-row__value--balance-deduct { color: #0AC4A8; } + .amount-row__value--diff { color: #fb923c; } + + /* 混合支付状态条 */ + .mixed-progress { + display: none; + margin-bottom: 8px; + padding: 7px 10px; + background: linear-gradient(90deg, rgba(251, 146, 60, 0.15), rgba(74, 144, 217, 0.08)); + border: 1px solid rgba(251, 146, 60, 0.4); + border-radius: 8px; + } + .mixed-progress.show { display: block; } + .mixed-progress__head { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 5px; + } + .mixed-progress__title { + font-size: 12px; + font-weight: 700; + color: #fb923c; + display: flex; + align-items: center; + gap: 5px; + } + .mixed-progress__step { + font-size: 10px; + color: rgba(255, 255, 255, 0.55); + padding: 2px 8px; + background: rgba(0, 0, 0, 0.25); + border-radius: 8px; + } + .mixed-progress__steps { + display: grid; + grid-template-columns: 1fr 16px 1fr; + gap: 6px; + align-items: center; + } + .mixed-progress__step-card { + padding: 6px 8px; + border-radius: 6px; + font-size: 11px; + display: flex; + justify-content: space-between; + align-items: center; + } + .mixed-progress__step-card--done { + background: rgba(82, 196, 26, 0.15); + border: 1px solid rgba(82, 196, 26, 0.4); + color: #4ade80; + } + .mixed-progress__step-card--pending { + background: rgba(251, 146, 60, 0.12); + border: 1px solid rgba(251, 146, 60, 0.4); + color: #fb923c; + } + .mixed-progress__step-amount { + font-family: Menlo, Consolas, monospace; + font-weight: 700; + color: #fff; + } + .mixed-progress__connector { + height: 2px; + background: linear-gradient(90deg, #4ade80, #fb923c); + border-radius: 1px; + } + + /* 余额不足时的应补差额行 + 补差按钮(内嵌于 balance-info) */ + .balance-info__diff-row { + display: none; + margin-top: 6px; + padding: 6px 10px; + background: rgba(251, 146, 60, 0.12); + border-left: 2px solid #fb923c; + border-radius: 4px; + font-size: 13px; + color: rgba(255, 255, 255, 0.85); + align-items: center; + gap: 6px; + } + .balance-info__diff-row.show { display: flex; } + .balance-info__diff-value { + margin-left: auto; + color: #fb923c; + font-size: 18px; + font-weight: 800; + font-family: Menlo, Consolas, monospace; + } + .balance-info__actions { + display: none; + margin-top: 8px; + padding-top: 8px; + border-top: 1px dashed rgba(251, 146, 60, 0.3); + grid-template-columns: 1fr 1fr; + gap: 8px; + } + .balance-info__actions.show { display: grid; } + .balance-info__action { + padding: 10px 6px; + background: rgba(26, 43, 74, 0.6); + border: 1px solid rgba(74, 144, 217, 0.4); + border-radius: 8px; + cursor: pointer; + transition: all 0.2s; + text-align: center; + font-family: inherit; + } + .balance-info__action:hover { + background: rgba(74, 144, 217, 0.3); + border-color: #4a90d9; + transform: translateY(-1px); + } + /* 补差方式选中态(混合支付进行中标识当前选择) */ + .balance-info__action--active { + background: linear-gradient(135deg, rgba(251, 191, 36, 0.28), rgba(251, 146, 60, 0.22)); + border-color: #fbbf24; + box-shadow: 0 0 0 2px rgba(251, 191, 36, 0.18); + cursor: default; + transform: none; + } + .balance-info__action-icon { font-size: 18px; line-height: 1; } + .balance-info__action-name { + display: block; + font-size: 12px; + color: #fff; + font-weight: 600; + margin-top: 3px; + } + /* 餐券详情卡 */ .coupon-detail { display: none; @@ -597,8 +862,8 @@ /* 余额支付信息卡 */ .balance-info { display: none; - margin-top: 10px; - padding: 12px; + margin-top: 8px; + padding: 10px 12px; background: linear-gradient(135deg, rgba(10, 196, 168, 0.12), rgba(74, 144, 217, 0.06)); border: 1px solid rgba(10, 196, 168, 0.35); border-radius: 10px; @@ -608,7 +873,7 @@ display: flex; justify-content: space-between; align-items: center; - padding: 6px 0; + padding: 3px 0; } .balance-info__row + .balance-info__row { border-top: 1px dashed rgba(255, 255, 255, 0.08); @@ -641,8 +906,8 @@ font-weight: 700; } .balance-info__tip { - margin-top: 8px; - padding: 6px 8px; + margin-top: 6px; + padding: 5px 8px; background: rgba(82, 196, 26, 0.1); border-left: 2px solid #4ade80; border-radius: 4px; @@ -650,6 +915,132 @@ color: rgba(255, 255, 255, 0.78); } + /* ============ 代金券独立入口(金额汇总区下方) ============ */ + .coupon-entry { + margin-top: 5px; + padding: 7px 12px; + background: linear-gradient(135deg, rgba(251, 191, 36, 0.1), rgba(251, 146, 60, 0.04)); + border: 1px dashed rgba(251, 191, 36, 0.4); + border-radius: 10px; + } + .coupon-entry--active { + background: linear-gradient(135deg, rgba(251, 191, 36, 0.18), rgba(251, 146, 60, 0.08)); + border: 1px solid rgba(251, 191, 36, 0.55); + border-style: solid; + } + .coupon-entry__head { + display: flex; + justify-content: space-between; + align-items: center; + gap: 8px; + } + .coupon-entry__title { + font-size: 12px; + color: #fbbf24; + font-weight: 700; + display: flex; + align-items: center; + gap: 5px; + } + .coupon-entry__value { + font-size: 16px; + color: #fbbf24; + font-weight: 800; + font-family: Menlo, Consolas, monospace; + } + .coupon-entry__btn { + padding: 5px 12px; + background: rgba(251, 191, 36, 0.2); + border: 1px solid rgba(251, 191, 36, 0.5); + border-radius: 8px; + color: #fbbf24; + font-size: 11px; + font-weight: 600; + cursor: pointer; + transition: all 0.2s; + font-family: inherit; + } + .coupon-entry__btn:hover { + background: rgba(251, 191, 36, 0.35); + color: #fff; + } + .coupon-entry__btn--cancel { + background: rgba(255, 255, 255, 0.06); + border-color: rgba(255, 255, 255, 0.15); + color: rgba(255, 255, 255, 0.7); + } + .coupon-entry__btn--cancel:hover { + background: rgba(245, 34, 45, 0.18); + border-color: rgba(245, 34, 45, 0.45); + color: #ff6b6b; + } + .coupon-entry__input-row { + display: flex; + gap: 6px; + margin-top: 8px; + } + .coupon-entry__meta { + font-size: 10px; + color: rgba(255, 255, 255, 0.55); + margin-top: 5px; + line-height: 1.4; + display: none !important; /* 默认隐藏,演示预载场景下不展示券号(信息冗余),真实环境可显示 */ + } + .coupon-entry__meta strong { color: #fff; font-family: Menlo, Consolas, monospace; } + + /* ============ 原型演示控制徽标(嵌入 top-bar 右侧,作为演示工具条) ============ */ + .demo-control { + display: flex; + align-items: center; + gap: 5px; + padding: 3px 6px 3px 10px; + background: rgba(15, 8, 35, 0.85); + border: 1px solid rgba(167, 139, 250, 0.5); + border-radius: 14px; + backdrop-filter: blur(6px); + box-shadow: 0 2px 8px rgba(167, 139, 250, 0.2); + font-size: 10px; + color: rgba(255, 255, 255, 0.85); + } + .demo-control__label { + font-weight: 600; + color: #a7b3ff; + letter-spacing: 0.5px; + } + .demo-control__btn { + padding: 3px 9px; + background: transparent; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + font-size: 10px; + color: rgba(255, 255, 255, 0.7); + cursor: pointer; + transition: all 0.2s; + font-family: inherit; + white-space: nowrap; + } + .demo-control__btn:hover { + color: #fff; + background: rgba(167, 139, 250, 0.15); + border-color: rgba(167, 139, 250, 0.5); + } + .demo-control__btn.active { + background: rgba(167, 139, 250, 0.4); + color: #fff; + border-color: rgba(167, 139, 250, 0.7); + box-shadow: 0 2px 8px rgba(167, 139, 250, 0.3); + } + .demo-control__btn--toggle { + background: rgba(251, 191, 36, 0.15); + border-color: rgba(251, 191, 36, 0.4); + color: #fbbf24; + } + .demo-control__btn--toggle.on { + background: rgba(251, 191, 36, 0.5); + color: #fff; + box-shadow: 0 2px 8px rgba(251, 191, 36, 0.4); + } + /* 底部操作按钮(固定) */ .pay-col__actions { flex-shrink: 0; @@ -731,24 +1122,34 @@
- +
◀ 取消结算 + 订单号:CO-20260806-031 订单结算 - 订单号:CO-20260806-031 + +
+ 🎨 演示 + + + + +
- +
👤‍🌾
- 张*明 + 张小明 EMP002346
- 研发中心 · 二荤餐线
+
+ 会员用户· 金牌 LV5 +
账户余额 @@ -756,13 +1157,9 @@
本单应付 - ¥41.60 + ¥64.40
-
- 金牌会员 - LV5 -
@@ -773,7 +1170,7 @@
🛍️ 取餐明细 - 5 件 + 7 件
- -
- # - 餐品名称 / 单价 - 取餐量 - 金额 -
+ + + + + + + + + + + + + + + + + + + + +
#类别餐品名称单价取餐量金额
- -
- 🥜 餐线菜品 - 2 件 -
-
-
1
-
- 清炒时蔬 - ¥4.00/100g -
- 取 150g -
¥6.00
-
-
-
2
-
- 米饭 - ¥1.60/100g -
- 取 250g -
¥4.00
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1餐线
清炒时蔬
¥4.00/100g150g¥6.00
2餐线
米饭
¥1.60/100g250g¥4.00
3档口
红烧肉
¥12.00/100g180g¥21.60
4档口
鱼香肉丝
¥7.50/100g160g¥12.00
5档口
冬瓜排骨汤
¥1.00/100g300g¥3.00
6档口
卤鸡腿
¥15.00/100g120g¥18.00
7档口
凉拌木耳
¥6.00/100g80g¥4.80
- -
- ⚖️ 档口菜品 - 3 件 -
-
-
3
-
- 红烧肉 - ¥12.00/100g -
- 取 180g -
¥21.60
-
-
-
4
-
- 鱼香肉丝 - ¥7.50/100g -
- 取 160g -
¥12.00
-
-
-
5
-
- 冬瓜排骨汤 - ¥1.00/100g -
- 取 300g -
¥3.00
-
- - -
-
餐品种类 5 项 · 总重量 1040g · 餐线 2 · 档口 3
-
¥46.60
+ +
@@ -868,18 +1318,50 @@
+ + +
+
+ 🔀 混合支付进行中 + 第 1 / 2 步 +
+
+
+ ✅ 余额已扣 + ¥0.00 +
+
+
+ ⏳ 待在线补差 + ¥0.00 +
+
+
+
合计 - ¥46.60 + ¥69.40
- 优惠(企业补贴) + 优惠 -¥5.00
+
应付金额 - ¥41.60 + ¥64.40 +
+ +
@@ -896,79 +1378,109 @@
💶
现金
-
-
🎫
-
餐券/补贴码
-
💰
余额支付
- -
- - - - - -
-
- 🎫 企业餐券 - ¥10.00 + +