Print-Registration-System

印刷登记快速录入系统

License

项目简介

商丘市人民印刷有限公司印刷登记快速录入系统是一个专为商丘市第一高级中学设计的印刷数据统计与管理工具。该系统提供了便捷的印刷登记、数据统计和可视化分析功能,帮助学校高效管理印刷资源,追踪印刷费用,并生成详细的统计报告。

主要功能

界面展示

系统界面

技术栈

安装与使用

前提条件

桌面应用:

如需自行构建:

如需使用Python启动脚本

安装方式

方式一:使用安装包(推荐)

Release页面下载最新版本的安装包,按照安装向导完成安装即可。(目前只有x64的安装包)

方式二:使用启动程序启动 (1.0.3版本开始已经废弃,会导致功能不全)

Windows XP及以上可使用此方法启动 双击项目根目录的start.exe即可启动系统。

start.exe的源代码在./py/

方式三:使用批处理文件启动 (1.0.3版本开始已经废弃,会导致功能不全)

如果已安装Python并配置了环境变量,双击start.bat即可启动系统。

系统配置

启动配置 (1.0.3版本开始已经废弃)

打开config/host_config.json文件,可配置以下选项:

{
  "log_print": true,
  "local_host": 1145
}

默认信息配置

学科与费用类型

config/select.json存储系统中的”学科”和”费用类型”信息:

{
  "subject": [
    "语文",
    "数学",
    "英语",
    "物理",
    "化学",
    "生物",
    "地理",
    "政治",
    "历史"
  ],
  "added_expense_type": ["办公文件", "教学资料", "过级考资料"]
}

送印人信息

config/submitter.json存储送印人的默认信息。 你可以按下面的格式进行默认信息的配置

{
  "张三": ["高一", "政治"],
  "李四": ["高二", "物理"]
}

您也可以在系统界面的设置/编辑教师信息中添加和管理送印人信息。

价格规则示例

以下为系统默认的价格表 其中spec代表纸张类型,region代表价格区间

{
  "prices": [
    {
      "spec": "8K",
      "data": [
        {
          "price": 0.18,
          "region": [0, 500]
        },
        {
          "price": 0.15,
          "region": [501, 1000]
        },
        {
          "price": 0.13,
          "region": [1001, 1500]
        },
        {
          "price": 0.11,
          "region": [1501, 2000]
        },
        {
          "price": 0.07,
          "region": [2001, "infinity"]
        }
      ]
    },
    {
      "spec": "A4",
      "data": [
        {
          "price": 0.14,
          "region": [0, 500]
        },
        {
          "price": 0.13,
          "region": [501, 1000]
        },
        {
          "price": 0.13,
          "region": [1001, 1500]
        },
        {
          "price": 0.11,
          "region": [1501, 2000]
        },
        {
          "price": 0.08,
          "region": [2001, "infinity"]
        }
      ]
    }
  ]
}

spec中的类型在原来的纸张类型下拉框中没有,则会在下拉框中自动添加这个纸张类型 这种格式的json文件可以被系统识别,用户可以自定义价格表,但是要注意:

项目结构

PrintRegistrationSystem/
├── config/              # 配置文件目录
│   ├── host_config.json # 服务器配置
│   ├── select.json      # 学科和费用类型配置
│   └── submitter.json   # 送印人信息配置
├── data/                # 前端资源目录
│   ├── assets           # 一些默认配置文件
│   ├── css/             # 样式文件
│   └── script/          # JavaScript文件
├── py/                  # Python启动脚本目录
│   ├── start_host.py    # 服务器启动脚本
│   └── hud.html         # 启动测试界面
├── resources/           # 资源文件
│   ├── icon.png         # 应用图标
│   └── 1.png            # 界面截图
├── hub.html             # 主界面
├── index.js             # Electron主进程
├── preload.js           # Electron预加载进程
├── package.json         # 项目配置
├── dev-app-update.yml   # dev端的更新地址配置
└── start.bat            # Windows批处理启动脚本

开发指南

开发环境设置

  1. 克隆项目仓库:git clone https://github.com/Skrepy0/Print-Registration-System.git
  2. 进入项目目录:cd PrintRegistrationSystem
  3. 安装依赖:npm install
  4. 启动开发服务器:

代码格式化

项目使用Prettier进行代码格式化,运行以下命令格式化代码:

npm run format

构建应用

使用以下命令构建应用:

npm run build

构建产物将输出在dist目录中。

常见问题

Q: 如何修改系统默认端口?

A: 编辑config/host_config.json文件,修改local_host字段的值。

Q: 如何添加新的学科或费用类型?

A: 编辑config/select.json文件,在相应的数组中添加新项。 Q: 如何设置默认的送印人信息,以方便使用?

A: 编辑config/submmit.json文件。具体见这里

Q: 配置了默认信息或添加了学科或费用类型,但是程序没有加载,如何处理?

A: 重启服务器, 还不能解决就强制刷新当前界面(Ctrl+Shift+R),然后重启服务器即可。

Q: 数据存储在哪里?

A: 当前版本数据存储在浏览器的本地存储中(如果使用的是桌面软件则保存在软件的缓存里),清除浏览器数据将导致数据丢失(桌面软件则不会)。

Q: 如何备份数据?

A: 使用系统提供的数据导出功能,将数据导出为JSON文件进行备份。

致谢

本项目基于某开源项目进行二次开发,感谢原作者的贡献。

许可证

本项目采用 Apache-2.0 许可证,详见 LICENSE 文件。

联系方式