Skip to content

yyyyyh649/yanguangdanshibie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

眼镜店验光单管理系统

一个简单易用的验光单上传与 OCR 识别管理系统,专为眼镜店设计。

📋 功能特点

  • ✅ 上传与拍照:支持拖拽/选择文件;手机端可直接调起摄像头拍照上传
  • ✅ OCR 识别:PaddleOCR 自动识别姓名、年龄、手机号、验光师、日期、视力结果、金额(含镜片/镜架价)
  • ✅ 记录管理:查看、搜索、排序、编辑、删除;软删进回收站,30 天后自动清理
  • ✅ 统计提醒:列表金额汇总、选中金额汇总;验光超过 90 天标红提醒
  • ✅ 批量操作:多选批量删除;回收站可恢复/彻底删除
  • ✅ 移动端访问:页面展示本机局域网 IP、Wi-Fi 名、上传页链接与复制按钮;若二维码库可用则显示扫码入口
  • ✅ 多店部署:可配合 Syncthing 同步数据库与图片实现多店共享

🚀 快速开始

1. 安装 Python

  1. 下载 Python 3.8+,安装时勾选 “Add Python to PATH”
  2. python --version 验证成功即可

2. 安装依赖

pip install -r requirements.txt

如需加速:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

PaddleOCR 如安装失败,系统会自动降级:OCR 关闭,手动填写即可。

3. 启动系统

方式 A:双击 start_app.bat(推荐)

方式 B:命令行

python app.py

看到日志:

[INFO] 数据库初始化完成
[INFO] 服务启动于 http://0.0.0.0:5000

4. 访问系统

  • 本机浏览器:http://localhost:5000
  • 同一 Wi‑Fi 下手机/平板:浏览器访问 http://<本机IP>:5000
  • 上传页会显示本机 IP、当前 Wi‑Fi 名、可复制的上传链接,若二维码库可用会显示扫码入口。

📱 手机扫码/上传

  • 上传页顶部提供:当前 IP、Wi‑Fi 名、上传链接、一键复制;若能加载二维码库则显示扫码二维码。
  • 手机同一 Wi‑Fi 下访问链接即可;上传区有“拍照上传”按钮可直接调用摄像头。
  • 如二维码加载不出:直接复制链接到手机浏览器。

🏪 多店部署方案

如果您有多家门店需要共享数据,请按以下步骤配置:

第一步:在每家店运行系统

  1. 将整个项目文件夹复制到每台电脑
  2. 在每台电脑上运行 python app.py

第二步:配置 Syncthing 同步

Syncthing 是一个免费的文件同步工具,用于在多台电脑之间同步数据。

安装 Syncthing

  1. 访问 https://syncthing.net/downloads/
  2. 下载 Windows 版本并安装
  3. 运行 Syncthing,会自动打开浏览器管理界面

配置同步

  1. 在 Syncthing 中点击 "添加文件夹"
  2. 添加以下两个路径:
    • 验光系统\store.db 所在目录
    • 验光系统\uploads 文件夹
  3. 在另一台电脑上同样安装 Syncthing
  4. 通过 "添加设备" 连接两台电脑
  5. 共享刚才添加的文件夹

同步设置建议

  • 同步间隔:建议设置为 1 分钟
  • 版本控制:建议启用"简单版本控制",保留 5 个版本

⚠️ 冲突处理警告

重要提示:当两家店同时编辑数据时,Syncthing 可能产生冲突文件!

识别冲突文件

  • 冲突文件名格式:store.sync-conflict-20240115-123456-XXXXXXXX.db
  • 文件会出现在同一目录下

处理方法

  1. 冲突发生时,数据不会丢失,只是分散在两个文件中
  2. 停止两边的系统(关闭 python app.py
  3. 比较两个文件的修改时间,选择保留较新的
  4. 或使用 SQLite 工具合并两个数据库的数据
  5. 删除冲突文件,重启系统

预防建议

  • 尽量避免两店同时大量操作
  • 如必须同时使用,一店负责上传,另一店只查看

🌐 远程访问(Tailscale)

如需从外部网络(如在家)访问店内系统,可使用 Tailscale:

第一步:安装 Tailscale

  1. 访问 https://tailscale.com/download
  2. 下载并安装 Windows 版本
  3. 使用 Google 或 Microsoft 账号登录

第二步:连接设备

  1. 在店内电脑上安装并登录 Tailscale
  2. 在您的个人电脑/手机上也安装并登录 同一账号
  3. 两台设备会自动连接到同一个虚拟网络

第三步:获取虚拟 IP

  1. 点击系统托盘中的 Tailscale 图标
  2. 查看店内电脑的 Tailscale IP(格式如 100.x.x.x

第四步:远程访问

在任意已连接的设备上,打开浏览器访问:

http://100.x.x.x:5000

(将 100.x.x.x 替换为店内电脑的 Tailscale IP)


📁 文件结构

验光系统/
├── app.py              # 主程序
├── requirements.txt    # 依赖包列表
├── start_app.bat       # 一键启动脚本
├── store.db           # 数据库文件(运行后自动生成)
├── uploads/           # 上传的图片存储目录
├── templates/         # 网页模板
│   ├── index.html     # 首页(记录列表)
│   ├── upload.html    # 上传页面
│   └── recycle.html   # 回收站页面
└── README.md          # 本说明文件

❓ 常见问题

Q: 启动时显示 "PaddleOCR 初始化失败"

A: 这是正常情况,系统会以降级模式运行。OCR 功能不可用,但您仍可以:

  • 正常上传验光单图片
  • 手动填写所有信息

如需启用 OCR,请参考上方的 PaddleOCR 安装说明。

Q: 无法访问 http://localhost:5000

A: 请检查:

  1. 命令行窗口是否显示"服务启动于 http://0.0.0.0:5000"
  2. 是否有防火墙阻止了 5000 端口
  3. 尝试关闭防火墙或添加例外规则

Q: 其他设备无法通过 IP 访问

A: 请确保:

  1. 设备在同一局域网/WiFi 下
  2. Windows 防火墙允许 Python 通过
  3. 路由器没有启用设备隔离功能

Q: 数据会丢失吗?

A: 数据存储在 store.db 文件中:

  • 删除的记录会进入回收站,30 天内可恢复
  • 建议定期备份 store.db 文件和 uploads 文件夹

📞 技术支持

如有问题,请检查:

  1. Python 是否正确安装(命令行输入 python --version
  2. 依赖是否完整安装(重新运行 pip install -r requirements.txt
  3. 命令行窗口的错误信息

📄 版本信息

  • 版本:1.1.0
  • 更新日期:2026-02-05
  • 技术栈:Flask + SQLite + PaddleOCR + Bootstrap 5

About

🔍 眼镜店验光单管理系统 - 支持 OCR 自动识别验光单信息,记录管理,金额统计,超期提醒,多店数据同步

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors