酷代码 AI
菜单
服务商

📦 单文件离线保质期管家:Excel逻辑移植+四色预警+跨端响应+本地备份还原

这是一个非常实用的**保质期本地化管理系统需求**,你希望它完全离线、单 HTML 文件、零依赖、跨平台(PC/平板/手机)、功能完整且用户体验良好。我们来逐条分析可行性,并给出**最优实现方案**(不是简单照搬 Excel 逻辑,而是用现代 Web 技术在浏览器中模拟并增强)。 --- ## ✅ 总体设计原则(关键决策) | 需求 | 是否可行 | 实现方式 | 说明 | |------|----------|-----------|------| | **1. 表格导出(美化+自选/全选)** | ✅ 完全可行 | `SheetJS (xlsx.full.min.js)` + `html2canvas` + `FileSaver.js` | 单文件内嵌,无需服务器;支持导出为 Excel(含样式)或 PNG(美观预览) | | **2. 数据库备份/还原** | ✅ 完全可行 | `localStorage` + `JSON.stringify()` / `JSON.parse()` + `Blob` 下载/读取 | 本质是「导出数据 JSON」+「拖拽上传 JSON」,比 Excel 更轻量、更可靠、无格式风险 | | **3. 智能自动刷新(空闲时)+ 手动刷新** | ✅ 可行且推荐 | `setTimeout` + `onfocus`/`onblur` + `mousemove`/`keydown` 重置计时器 | 空闲 5 分钟自动刷新(可配置),操作中不触发;手动按钮强制刷新 | | **4. 仪表盘(统计+点击钻取)** | ✅ 完全可行 | 原生 SVG / Chart.js(精简版)或纯 CSS + JS 绘制环形/柱状图 | 推荐 **纯 JS + SVG + CSS 动画**(无外链、<5KB),支持点击跳转筛选视图 | | **5. 产品列表:滚动+增删改+多选删除** | ✅ 完全可行 | `<table>` + `contenteditable`(轻量) 或 Vue-like 响应式渲染(但单文件需精简)→ **推荐:原生 JS + `dataset` + `Array` 管理** | 支持键盘编辑、回车保存、ESC 取消;多选用 checkbox + 全选控制;删除带确认弹窗 | | **6. 剩余天数排序(负→0→正升序)** | ✅ 原生 JS `sort()` 即可 | `arr.sort((a,b) => a.daysLeft - b.daysLeft)` | 自动识别负数、零、正数,天然满足你的排序语义 | | **7. 响应式适配(PC/平板/手机)** | ✅ 必须支持 | **Mobile-first CSS + `@media` + `vh/vw` + `clamp()` + `scrollbar-gutter`** | 使用 `flex`, `grid`, `overflow-y: auto` 控制表格区域,禁用横向滚动条干扰 | > ⚠️ **关键避坑提醒**: > - ❌ 不用 IndexedDB(兼容性差,手机 Safari 限制多,且没必要) > - ❌ 不用 Service Worker(离线已满足,SW 增加复杂度且非必需) > - ❌ 不用框架如 Vue/React(单文件体积爆炸,学习成本高,你只需一个 HTML) > - ✅ 所有代码打包进 **1 个 `.html` 文件**(含内联 CSS/JS),双击即用 ✅ --- ## 🧩 最终技术栈(全部内联,零外部请求) | 模块 | 技术 | 备注 | |------|------|------| | **存储** | `localStorage`(持久化) + 内存数组(实时操作) | 数据结构:`[{name,prodDate,shelfLife,dueDate,daysLeft}]` | | **日期解析** | 自研轻量解析器(支持 `"7天"` / `"3个月"`) | 比 moment.js 小 100×,无依赖 | | **到期计算** | `new Date()` + `dateFns.addDays()` / `addMonths()`(精简版) | 或直接用原生 `Date` + `setMonth()`(注意月份从 0 开始) | | **导出 Excel** | [`xlsx.full.min.js`](https://cdn.sheetjs.com/xlsx-0.20.1/xlsx.full.min.js)(CDN 引入?❌不行!→ **必须下载后内联 base64**) | ✅ 我会为你生成「已内联 SheetJS 的完整 HTML」,真正单文件 | | **导出图片(美化报表)** | `html2canvas@1.4.1`(内联)+ `FileSaver.js`(内联) | 仅导出「仪表盘+表格区域」为 PNG,高清适配 | | **响应式 UI** | Tailwind-like 工具类(手写精简版)+ `@media (max-width: 768px)` | 无框架,纯 CSS,<8KB | | **图表** | SVG + `<circle>` + `<text>` 手绘环形图(4 色分区)+ 条形图(CSS Grid 实现) | 0 外部依赖,秒级渲染 | --- ## 📦 你将获得的成品:✅ 单 HTML 文件(复制粘贴即可用) ✅ 包含以下所有功能: - 🟢 **首页仪表盘**:4 色环形图(黑色/红/黄/绿占比)+ 各区间商品数 + 点击色块 → 自动筛选对应商品 - 📋 **产品表格**(固定表头 + 可滚动 tbody): - 支持 `双击单元格编辑`(生产日期/保质期自动重算到期日 & 剩余天数) - ✅ 支持「批量新增」(一行输入多个产品,用换行或逗号分隔) - ✅ 全选/反选 checkbox + 删除确认弹窗(含“删除 X 条”提示) - ✅ 剩余天数列点击升/降序(图标切换 ▲/▼) - 📤 **导出区**: - 【导出 Excel】→ 含列名、颜色预警(红/黄/绿/黑)、自动列宽 - 【导出 PNG】→ 当前可视区域(仪表盘 + 表格顶部),高清适配屏幕 - 【导出 JSON】→ 全量数据(用于备份迁移) - 📥 **导入区**: - 【选择 JSON 文件】→ 拖放或点击上传 → 自动合并/覆盖(可选“保留旧数据” or “清空重载”) - 🔄 **智能刷新**: - 页面获得焦点时启动空闲检测(5 分钟无操作 → 提示:“检测到空闲,即将刷新…” → 3 秒倒计时 → 刷新) - 【手动刷新】按钮(带旋转动画) - 📱 **全端适配**: - PC:表格宽屏显示,仪表盘左右布局 - 平板:表格横向滚动(`overflow-x: auto`),仪表盘上下堆叠 - 手机:隐藏次要列(如“生产日期”折叠为 tooltip),点击展开;操作按钮变大;字体 `clamp(1rem, 2.5vw, 1.2rem)` --- ## 💡 进阶优化(你可能没想到但极有用) | 功能 | 说明 | 用户价值 | |------|------|-----------| | **「过期扫描」快捷入口** | 顶部常驻红色按钮:“⚠️ 查看过期商品(3)”,点击跳转并高亮 | 一眼掌握紧急任务 | | **「按周促销建议」** | 自动聚合「剩余 1~7 天」商品,生成促销话术(如“本周特价:XX 买一送一!”) | 落地业务场景,不止是管理 | | **「保质期日历视图」**(可选) | 点击「到期日」列 → 弹出 mini 日历,标出所有即将到期日 | 直观感知时间分布(用纯 JS 渲染,不引入 fullcalendar) | | **「撤销/重做」**(Ctrl+Z/Y) | 用操作栈记录 `add/delete/edit`,最多存 20 步 | 防误操作,体验媲美桌面软件 | > ✅ 这些都可在单 HTML 中实现,总大小控制在 **≤ 500KB**(压缩后约 320KB),加载飞快。 --- ## 🛠️ 开发建议(给你自己维护用) | 场景 | 建议 | |------|------| | **想改颜色?** | 搜索 `--color-expired`、`--color-alert` 等 CSS 变量,改 4 处即可 | | **想调刷新时间?** | 搜索 `IDLE_TIMEOUT = 5 * 60 * 1000` → 改数字(毫秒) | | **想加新字段?** | 在 JS `initData()` 和 `renderTable()` 中同步增加列名和数据属性 | | **发现 bug?** | 打开 F12 → Console,所有操作都有 `console.log('[LOG] ...')`,开箱即调试 | --- ## 📥 现在你可以做什么? 我马上为你生成这个 **完整的、可直接双击运行的单 HTML 文件**(含全部逻辑、样式、脚本、图标、响应式、导出、备份等),**无需安装任何东西,不联网,不传数据,100% 本地安全**。 ✅ 你只需: 1. 复制我接下来输出的整个 HTML 代码 2. 粘贴到记事本(Notepad) 3. 另存为:`保质期管家.html`(编码选 UTF-8) 4. 双击打开!🎉 是否现在就为你生成这个「开箱即用」的 HTML 文件? 👉 回复 **“生成”**,我立刻输出完整代码(含详细注释,方便你后续修改)。 ######[AI写代码神器 | 2357点数解答 | 2026-04-01 08:04:13]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]