From 39998f4de67a99078ef016511cabd317e1ad68ae Mon Sep 17 00:00:00 2001 From: fengpu <18691763612@163.com> Date: Wed, 12 Aug 2026 08:41:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=90=A5=E5=85=BB=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=B6=88=E8=B4=B9=E7=AE=A1=E7=90=86=E9=80=80?= =?UTF-8?q?=E6=AC=BE=E3=80=81=E5=87=80=E8=8F=9C=E8=AE=A2=E5=8D=95=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=80=89=E6=8B=A9=E5=86=85=E9=85=8D=E8=B0=83=E6=96=99?= =?UTF-8?q?=E3=80=81=E9=87=87=E4=BE=9B=E7=AE=A1=E7=90=86=E5=8A=A0=E5=BE=85?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web-admin/nutrition/din-data-consume.html | 491 +++++++++++++++++++- web-admin/nutrition/doc/CHANGELOG.md | 76 +++ web-admin/nutrition/farm-purchase.html | 101 +++- web-admin/nutrition/prod-clean-order.html | 125 ++++- web-admin/nutrition/sup-clean-external.html | 119 ++--- web-admin/nutrition/sup-clean-internal.html | 68 ++- 6 files changed, 851 insertions(+), 129 deletions(-) diff --git a/web-admin/nutrition/din-data-consume.html b/web-admin/nutrition/din-data-consume.html index 5905990..fbeb370 100644 --- a/web-admin/nutrition/din-data-consume.html +++ b/web-admin/nutrition/din-data-consume.html @@ -143,6 +143,62 @@ tbody tr:hover td.td-actions{background:#F8FBFF;} .detail-info{display:flex;gap:24px;padding:12px 16px;background:#FAFAFA;border-radius:var(--radius-sm);margin-bottom:16px;font-size:var(--font-sm);} .detail-info span{color:var(--text-secondary);} .detail-info b{color:var(--text-primary);font-weight:500;} + +/* 弹窗底部按钮区 */ +.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-top:1px solid var(--border);background:#FAFAFA;border-radius:0 0 8px 8px;} +.modal-footer__left{display:flex;align-items:center;gap:8px;font-size:var(--font-xs);color:var(--text-placeholder);} +.modal-footer__right{display:flex;align-items:center;gap:8px;} + +/* 退款信息区(黄色警示卡) */ +.refund-info{display:flex;align-items:center;gap:24px;padding:12px 16px;background:#FFF7E6;border:1px solid #FFE58F;border-radius:var(--radius-sm);margin-bottom:16px;font-size:var(--font-sm);} +.refund-info__item{display:flex;flex-direction:column;gap:2px;} +.refund-info__label{font-size:var(--font-xs);color:var(--text-secondary);} +.refund-info__value{font-size:var(--font-base);font-weight:600;color:var(--text-primary);} +.refund-info__value.danger{color:var(--danger);} +.refund-info__value.success{color:var(--success);} +.refund-info__divider{width:1px;height:32px;background:#FFE58F;} + +/* 退款表单 */ +.refund-form{padding:4px 0;} +.refund-tabs{display:inline-flex;background:#F5F5F5;border-radius:var(--radius-sm);padding:4px;margin-bottom:20px;gap:4px;} +.refund-tab{padding:6px 16px;border-radius:4px;font-size:var(--font-sm);cursor:pointer;color:var(--text-secondary);transition:all .15s;user-select:none;} +.refund-tab.active{background:#fff;color:var(--primary);font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.06);} +.form-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;} +.form-row__label{width:88px;flex-shrink:0;font-size:var(--font-sm);color:var(--text-secondary);padding-top:8px;} +.form-row__label.required::before{content:"* ";color:var(--danger);} +.form-row__content{flex:1;} +.form-row__content .tip{font-size:var(--font-xs);color:var(--text-placeholder);margin-top:4px;} +.form-input{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;} +.form-input:focus{border-color:var(--primary);} +.form-input:disabled{background:#F5F5F5;color:var(--text-secondary);cursor:not-allowed;} +.form-textarea{width:100%;min-height:72px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;resize:vertical;font-family:inherit;} +.form-textarea:focus{border-color:var(--primary);} +.form-select{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;cursor:pointer;} +.amount-input-group{display:flex;align-items:center;gap:8px;} +.amount-input-group .form-input{flex:1;} +.amount-input-group .quick-fill{height:36px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--primary);font-size:var(--font-xs);cursor:pointer;white-space:nowrap;} +.amount-input-group .quick-fill:hover{border-color:var(--primary);background:var(--primary-light);} + +/* 退款汇总区 */ +.refund-summary{padding:12px 16px;background:#FFF1F0;border:1px solid #FFCCC7;border-radius:var(--radius-sm);margin-top:16px;display:flex;align-items:center;justify-content:space-between;} +.refund-summary__text{font-size:var(--font-sm);color:var(--text-secondary);} +.refund-summary__amount{font-size:var(--font-xl);font-weight:700;color:var(--danger);} + +/* 二次确认弹窗 */ +.confirm-modal{background:#fff;border-radius:8px;width:480px;max-width:90vw;box-shadow:0 12px 48px rgba(0,0,0,.15);animation:modalSlideIn .25s ease;} +.confirm-modal .modal-body{padding:24px;} +.confirm-icon{width:48px;height:48px;border-radius:50%;background:#FFF1F0;display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 16px;} +.confirm-title{font-size:var(--font-lg);font-weight:600;text-align:center;margin-bottom:12px;} +.confirm-text{font-size:var(--font-sm);color:var(--text-secondary);text-align:center;line-height:1.6;margin-bottom:8px;} +.confirm-detail{background:#FAFAFA;border-radius:var(--radius-sm);padding:12px 16px;margin:12px 0;font-size:var(--font-sm);} +.confirm-detail__row{display:flex;justify-content:space-between;padding:4px 0;} +.confirm-detail__row span{color:var(--text-secondary);} +.confirm-detail__row b{color:var(--text-primary);font-weight:500;} + +/* 退款方式标签 */ +.refund-method-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);margin-left:8px;} +.refund-method-tag.full{background:#FFF1F0;color:var(--danger);} +.refund-method-tag.partial{background:#FFF7E6;color:var(--warning);} @@ -317,7 +373,7 @@ tbody tr:hover td.td-actions{background:#F8FBFF;} TX-20260421-001张伟(EMP001)总部机关/研发部点餐午餐消费¥22.00¥22.00余额支付成功88分已对账—¥234.502026-04-21 11:02交易明细 餐品明细 TX-20260421-002李娜(EMP002)总部机关/市场部点餐午餐消费¥18.00¥18.00余额支付成功92分已对账—¥86.202026-04-21 11:08交易明细 餐品明细 - TX-20260421-003王磊(EMP003)总部机关/运营部餐线午餐消费¥28.00¥25.20微信支付成功68分待对账短时多笔—2026-04-21 11:15交易明细 餐品明细 + TX-20260421-003王磊(EMP003)总部机关/运营部餐线午餐消费¥28.00¥25.20微信支付部分退款68分待对账短时多笔—2026-04-21 11:15交易明细 餐品明细 TX-20260421-004赵敏(EMP004)总部机关/财务部账户充值+¥100.00¥100.00微信支付成功已对账—¥356.802026-04-21 09:30交易明细 餐品明细 TX-20260421-005陈刚(EMP005)总部机关/人事部餐线早餐消费¥12.00¥12.00余额支付成功85分已对账—¥142.602026-04-21 07:45交易明细 餐品明细 TX-20260421-006刘芳(EMP006)总部机关/市场部点餐午餐退款+¥18.00¥18.00原路退回已退款76分差异退款频繁¥68.402026-04-21 10:20交易明细 餐品明细 @@ -344,56 +400,99 @@ function toggleSubgroup(header){header.parentElement.classList.toggle('open');} /* 日期默认今天 */ (function(){var d=document.getElementById('filterDate');if(d){var t=new Date();d.value=t.getFullYear()+'-'+String(t.getMonth()+1).padStart(2,'0')+'-'+String(t.getDate()).padStart(2,'0');}})(); -/* ========== 弹窗基础 ========== */ +/* ========== 弹窗基础 ========== + * open(title, bodyHtml, footerHtml?, options?) + * options.keepExisting 是否保留已有弹窗(叠加模式,用于二次确认) + * options.zIndex 自定义 z-index(叠加层) + * options.modalClass 自定义 modal 类名(如 confirm-modal) + * options.hideHeader 是否隐藏 header(二次确认弹窗自带图标标题) + * close() 关闭最上层弹窗 + * closeAll() 关闭所有弹窗 + */ const Modal = { - open(title, bodyHtml) { - this.close(); + open(title, bodyHtml, footerHtml, options = {}) { + if (!options.keepExisting) this.closeAll(); const overlay = document.createElement('div'); overlay.className = 'modal-overlay'; - overlay.innerHTML = `