Files
TakeoutSaaS.Prototypes/Tenant-Admin-UI-Prototype/pages/cpl-expiry.html

137 lines
6.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- 到期提醒页 -->
<style>
.cle-status-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;}
.cle-status-card{border-radius:var(--g-radius);padding:20px;display:flex;align-items:center;gap:14px;box-shadow:var(--g-shadow-sm);transition:var(--g-transition);}
.cle-status-card:hover{box-shadow:var(--g-shadow-md);}
.cle-status-card.red{background:#fff1f0;border-left:4px solid var(--g-danger);}
.cle-status-card.orange{background:#fff7e6;border-left:4px solid var(--g-warning);}
.cle-status-card.green{background:#f6ffed;border-left:4px solid var(--g-success);}
.cle-sc-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.7);}
.cle-sc-icon svg{width:22px;height:22px;}
.cle-status-card.red .cle-sc-icon svg{color:var(--g-danger);}
.cle-status-card.orange .cle-sc-icon svg{color:var(--g-warning);}
.cle-status-card.green .cle-sc-icon svg{color:var(--g-success);}
.cle-sc-num{font-size:26px;font-weight:700;color:var(--g-text);}
.cle-sc-label{font-size:13px;color:var(--g-text-secondary);margin-top:2px;}
.cle-section-hd{font-size:15px;font-weight:600;color:var(--g-text);padding-left:10px;border-left:3px solid var(--primary);margin-bottom:16px;}
.cle-timeline{position:relative;padding-left:20px;}
.cle-timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:#e5e7eb;}
.cle-tl-item{position:relative;padding:0 0 24px 20px;}
.cle-tl-dot{position:absolute;left:-16px;top:6px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 2px currentColor;}
.cle-tl-item.red .cle-tl-dot{color:var(--g-danger);background:var(--g-danger);}
.cle-tl-item.orange .cle-tl-dot{color:var(--g-warning);background:var(--g-warning);}
.cle-tl-date{font-size:12px;color:var(--g-text-muted);margin-bottom:6px;}
.cle-tl-card{background:#fff;border-radius:var(--g-radius);padding:14px 18px;box-shadow:var(--g-shadow-sm);display:flex;align-items:center;gap:12px;flex-wrap:wrap;transition:var(--g-transition);}
.cle-tl-card:hover{box-shadow:var(--g-shadow-md);}
.cle-tl-item.red .cle-tl-card{border-left:3px solid var(--g-danger);}
.cle-tl-item.orange .cle-tl-card{border-left:3px solid var(--g-warning);}
.cle-tl-name{font-size:14px;font-weight:600;color:var(--g-text);}
.cle-tl-remain{font-size:13px;font-weight:600;margin-left:auto;}
.cle-tl-remain.red{color:var(--g-danger);}
.cle-tl-remain.orange{color:var(--g-warning);}
.cle-setting-row{display:flex;align-items:center;gap:16px;margin-bottom:14px;font-size:13px;color:var(--g-text);}
.cle-setting-row label{min-width:100px;font-weight:500;color:var(--g-text-secondary);}
.cle-notify-list{display:flex;flex-direction:column;gap:12px;}
.cle-notify-item{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f3f4f6;}
.cle-notify-item:last-child{border-bottom:none;}
.cle-notify-label{font-size:13px;color:var(--g-text);}
@media(max-width:700px){.cle-status-cards{grid-template-columns:1fr;}}
</style>
<!-- 状态卡片 -->
<div class="cle-status-cards">
<div class="cle-status-card red">
<div class="cle-sc-icon"><i data-lucide="alert-circle"></i></div>
<div><div class="cle-sc-num">1</div><div class="cle-sc-label">已过期</div></div>
</div>
<div class="cle-status-card orange">
<div class="cle-sc-icon"><i data-lucide="clock"></i></div>
<div><div class="cle-sc-num">3</div><div class="cle-sc-label">30天内到期</div></div>
</div>
<div class="cle-status-card green">
<div class="cle-sc-icon"><i data-lucide="check-circle"></i></div>
<div><div class="cle-sc-num">8</div><div class="cle-sc-label">状态正常</div></div>
</div>
</div>
<!-- 即将到期列表 -->
<div class="g-card" style="margin-bottom:20px;">
<div class="cle-section-hd">即将到期项目</div>
<div class="cle-timeline">
<div class="cle-tl-item red">
<div class="cle-tl-dot"></div>
<div class="cle-tl-date">到期日2026-02-10</div>
<div class="cle-tl-card">
<span class="cle-tl-name">健康证 - 李娜</span>
<span class="g-tag g-tag-red">健康证</span>
<span class="cle-tl-remain red">已过期 3 天</span>
<button class="g-btn g-btn-danger g-btn-sm">去处理</button>
</div>
</div>
<div class="cle-tl-item orange">
<div class="cle-tl-dot"></div>
<div class="cle-tl-date">到期日2026-03-15</div>
<div class="cle-tl-card">
<span class="cle-tl-name">食品经营许可证</span>
<span class="g-tag g-tag-orange">证照</span>
<span class="cle-tl-remain orange">剩余 30 天</span>
<button class="g-btn g-btn-sm">去处理</button>
</div>
</div>
<div class="cle-tl-item orange">
<div class="cle-tl-dot"></div>
<div class="cle-tl-date">到期日2026-03-30</div>
<div class="cle-tl-card">
<span class="cle-tl-name">消防安全检查合格证</span>
<span class="g-tag g-tag-orange">证照</span>
<span class="cle-tl-remain orange">剩余 45 天</span>
<button class="g-btn g-btn-sm">去处理</button>
</div>
</div>
<div class="cle-tl-item orange">
<div class="cle-tl-dot"></div>
<div class="cle-tl-date">到期日2026-02-28</div>
<div class="cle-tl-card">
<span class="cle-tl-name">花生油 批次BN20260110</span>
<span class="g-tag g-tag-blue">食材</span>
<span class="cle-tl-remain orange">剩余 15 天</span>
<button class="g-btn g-btn-sm">去处理</button>
</div>
</div>
</div>
</div>
<!-- 提醒设置 -->
<div class="g-card">
<div class="cle-section-hd">提醒设置</div>
<div class="cle-setting-row">
<label>提前提醒天数</label>
<select class="g-select" style="width:140px;">
<option>7 天</option>
<option>15 天</option>
<option selected>30 天</option>
<option>60 天</option>
</select>
</div>
<div class="g-divider" style="margin:12px 0;"></div>
<div class="cle-notify-list">
<div class="cle-notify-item">
<span class="cle-notify-label">站内通知</span>
<div class="g-toggle on" onclick="toggleSwitch(this)"><div class="g-toggle-thumb"></div></div>
</div>
<div class="cle-notify-item">
<span class="cle-notify-label">微信推送</span>
<div class="g-toggle on" onclick="toggleSwitch(this)"><div class="g-toggle-thumb"></div></div>
</div>
<div class="cle-notify-item">
<span class="cle-notify-label">短信通知</span>
<div class="g-toggle" onclick="toggleSwitch(this)"><div class="g-toggle-thumb"></div></div>
</div>
</div>
</div>
<script>
function toggleSwitch(el){el.classList.toggle('on');}
if(typeof lucide!=='undefined'){lucide.createIcons();}
</script>