内网后台管理系统 / V1.0
账、货、人、票放在一套系统里
中小企业的日常管理往往散在若干个表格里:合同一张、库存一张、应收应付一张、考勤一张,月底对账要来回翻。这套系统把它们收进一套内网 Web 系统,入库单可以带出应付账款,经营看板按合同、人力成本与财务三个维度汇总。
经营看板、库存管理、账款管理、发票管理、人员管理、考勤打卡、员工管理、账号管理、反馈中心、后台管理,共 36 个功能视图。
数据存本机单文件数据库,不依赖外部数据库服务,不上传云端。局域网内其它机器用浏览器即可访问。
超级管理员、管理员、普通用户、只读用户四级内置角色,另有 15 个权限点可自定义角色,只读用户看不到增删改按钮。
功能模块
十个一级模块与下面的子模块
下面这份清单就是系统左侧导航的全部内容,按业务域分组。
| 模块 | 子模块 | 能做哪些操作 |
|---|---|---|
| 经营看板 | 合同分析 | 合同台账与状态统计(履约中、已完成、待签署、风险);新建、编辑、删除(二次确认)、详情弹窗;月度合同金额柱图与状态分布;支持附件上传与单据扫描识别录入。 |
| 人力成本分析 | 部门薪酬、人均成本、薪酬占营收比例;月度薪酬与营销投入对比图、各部门薪酬分布、月度明细表可增删改、营销渠道投入占比、部门投入明细。 | |
| 财务分析 | 收入、成本、利润与利润率,含现金流;月度收入成本双线图、季度利润柱图、月度收支明细、季度汇总、同比数据,毛利率自动计算。 | |
| 库存管理 | 商品管理 | 商品档案增删改查与实时库存查询:编码、名称、分类、单价、库存、最低库存。 |
| 供应商档案 | 供应商信息的维护与查询。 | |
| 采购订单 | 采购订单管理。 | |
| 销售订单 | 销售订单管理。 | |
| 未入库明细 | 查看未入库品目,并直接在这一页做入库处理。 | |
| 入库记录 | 采购入库单据管理,支持下载导入模板、从采购订单选择生成、增删改。 | |
| 出库记录 | 销售出库单据管理。 | |
| 库存预警 | 库存低于最低库存的商品预警与统计。 | |
| 采购报告 | 采购入库明细的汇总与查询。 | |
| 账款管理 | 应收账款 | 客户欠款管理与催收,状态分未到期、逾期、已结清;增删改。 |
| 应付账款 | 供应商欠款管理,入库单可以带出应付账款,在这一页可查。 | |
| 收款记录 | 收款凭证登记:客户、金额、日期、方式(转账、支票)、备注。 | |
| 付款记录 | 付款凭证登记。 | |
| 发票管理 | 发票开具 | 发票登记与开具;表单分基本、购买方、销售方、备注与附件四段;状态分已开具与待审核。 |
| 发票查验 | 查验记录管理,结果分一致与待核实,可以标注为一致。 | |
| 人员管理 | 员工档案 | 添加员工(工号自动生成)、编辑、查看详情、点状态徽章循环切换在职与休假与离职、删除(二次确认);关键字搜索与部门、状态筛选;导出 CSV;导入时自动去重并给出数据质量报告;数据报告列出完整性检查发现的问题。 |
| 考勤打卡 | 打卡与请假 | 上班打卡与下班打卡;今日在岗人员;月度统计与打卡记录;管理员可编辑与删除打卡记录;提交请假申请,查看自己的请假状态(待审批、已批准、已拒绝、已撤回)。打卡需在班次白名单内。 |
| 员工管理 仅管理员可见 |
用户管理 | 新建与编辑系统登录账号(用户名、姓名、角色、邮箱、手机、状态);重置密码;删除用户,超级管理员账号不可被删。 |
| 排班管理 | 班次配置与打卡白名单,只有白名单内的用户可以按该班次打卡;增删改。 | |
| 请假审批 | 待审批列表、查看请假详情、批准、拒绝并填写理由,审批人自动回写。 | |
| 账号管理 | 个人设置 | 头像上传、查看基本信息、修改显示名与联系方式、修改密码(需验证原密码)。只能管理自己的账号。 |
| 反馈中心 | 工单 | 提交问题或建议、查看自己的工单、编辑与删除、查看工单详情与回复、对处理结果评分。 |
| 后台管理 仅管理员可见 |
系统日志 | 操作日志查询与审计,可按级别、用户与关键字筛选;导出 CSV 与 JSON;清空日志需二次确认。 |
| 工单概览 | 全部反馈工单的处理与统计:查看详情、回复、查看评分、删除工单。区别于员工侧的反馈中心,这里是管理员视角。 | |
| 角色权限 | 新建、编辑、删除角色;权限按系统管理、经营看板、人员管理、库存管理四组勾选;超级管理员角色不可编辑删除。 | |
| 数据工具 | 导出全部数据、导入数据、导入库存示例数据、初始化全部数据(双重确认)。 |
这一页没有放界面截图。内部管理系统的界面里带员工姓名、联系方式与薪资数额,截图不便对外公开,所以这里只列功能清单与模块结构。需要看实际界面可以约一次演示。
模块结构
从导航到数据的两层结构
左侧导航按业务域分组,页面之间通过业务数据联动,而不是各管一摊。
分层示意,手绘线条图。业务域之间通过业务数据联动:入库单写入应付账款,销售出库影响商品库存,经营看板汇总合同与人力成本。
技术做法
这套系统用什么搭的
选型偏保守,目的是让一台普通机器就能把它跑起来,后期接手的人也容易看懂。
| 前端 | React 18 与 Vite 6 构建,未引入第三方界面组件库,按钮、表格、弹窗、图表等基础组件自行实现 |
|---|---|
| 后端 | Node.js 与 Express,提供鉴权与业务数据接口,共 20 个接口 |
| 数据 | SQLite 单文件数据库,启用日志模式与内存缓存,读写性能在单机场景下够用,不需要单独部署数据库服务 |
| 登录与密码 | 用户名加密码登录,密码用 bcrypt 哈希存储,登录后签发有效期 7 天的令牌 |
| 安装到桌面 | 支持作为可安装的网页应用添加到桌面,离线缓存的资源可以继续打开 |
| 安全响应头 | 服务端设置了内容安全策略、禁止被嵌套、内容类型嗅探防护、来源策略与传输安全等响应头,并限制了请求体大小与登录频率 |
| 数据出入 | 支持一键导出全部数据与导入数据,便于备份与迁移;人员数据支持导出 CSV 与导入去重 |
功能边界
这套系统不做什么
这一节按当前版本的实际情况写,包含还没做到的地方。
目前只有请假审批这一条审批链,不做金额分级、多级会签与合同审批流。
侧边栏有通知提醒与登录后的打卡提醒,但不做站内信、短信与移动端推送。
合同与发票页面支持附件上传,但没有独立的文档库与版本管理。
入库与出库单据可以带出库存变动与应付账款,但商品库存数字目前仍以手工维护为主,自动化联动还在补齐。
菜单与操作按钮按角色隐藏,服务端只对部分账号管理接口做角色校验。要做到每个接口都按角色拦截,还需要在服务端补齐一层,这一项已经列入待办。
客户信息以字段形式分散在账款与发票业务里,没有独立的客户档案与往来视图。
当前用 Node.js 直接启动的方式部署,没有提供容器镜像与编排配置。
部署
怎么装到公司内网
一台普通机器即可承担,不需要单独的数据库服务器。
| 服务器 | 一台装有 Node.js 的机器,Windows 或 Linux 均可 |
|---|---|
| 数据库 | 无需单独部署。首次启动自动建表并写入初始账号,数据文件随程序目录一起备份 |
| 访问方式 | 服务默认监听本机所有网卡,局域网内的电脑用浏览器访问服务器地址即可 |
| 备份 | 备份数据文件即可;系统内另提供一键导出全部数据的功能 |
| 外网依赖 | 业务功能不依赖外网。其中合同页的单据扫描识别需要联网加载识别组件,内网完全离线时该功能会给出提示,其余功能不受影响 |
下一步
想看看实际界面
界面上有员工与金额数据,不便放在公网上。约一次演示,我们用演示数据把整套流程走一遍。