[{"data":1,"prerenderedAt":357},["ShallowReactive",2],{"project-rental-order-manager":3,"all-projects-nav":263,"project-posts-rental-order-manager":356},{"id":4,"title":5,"architecture":6,"body":7,"category":217,"client":218,"cover":219,"date":220,"demo":195,"demoMobile":204,"description":208,"extension":221,"featured":222,"features":223,"github":6,"manual":6,"meta":243,"modules":6,"navigation":244,"order":209,"path":245,"seo":246,"slug":247,"stem":248,"summary":249,"techStack":250,"visible":244,"year":261,"__hash__":262},"projects\u002Fprojects\u002Frental-order-manager.md","设备出租订单管理系统",null,{"type":8,"value":9,"toc":207},"minimark",[10,14,18,21,24,27,30,33,85,88,156,175,178,181,184,187],[11,12,13],"h2",{"id":13},"缘起",[15,16,17],"p",{},"撞单那回我正好在场：同一台机身被两个人订了同一个周末，定金都收了，最后争的是谁先开的口。那台机器一天的租金不算便宜，要赔两边都不肯让。他们的档期记在几个人的脑子里，台账是一份谁都能改的共享表格。",[15,19,20],{},"那天之后我觉得，租赁这门生意的核心其实就一句话：同一件东西，同一时间，只能在一个人的手上。",[11,22,23],{"id":23},"背景",[15,25,26],{},"把这句话落成系统，要处理的是设备租赁特有的一圈事：按序列号管到每一台机器而不是按型号管一堆；档期要能在下单时就发现冲突；租期到期、逾期、延租都要有人被提醒；押金、损坏赔付、维修记录得挂在具体那台机器上；客户和复购关系要留得下来；闲置中的设备还得说得出这一台到底赚没赚回本钱。三端可用、开箱即用是顺带的要求——做这行的人不会为了记一笔订单去装数据库。",[11,28,29],{"id":29},"方案",[15,31,32],{},"构建三端一体（PC Web + 移动端 H5 + 后端）的 monorepo 系统，把租赁经营全流程数字化：",[34,35,36,44,50,56,62,68,79],"ul",{},[37,38,39,43],"li",{},[40,41,42],"strong",{},"订单状态机","：待确认 → 待发货 → 已借出 → 已归还 → 已完结，任意未完结态可取消；「已延期 \u002F 待归还」为派生标记，不污染状态字段",[37,45,46,49],{},[40,47,48],{},"档期可视化 + 防撞单","：列表 \u002F 甘特双视图，同一套档期校验逻辑同时服务 PC 与移动端",[37,51,52,55],{},[40,53,54],{},"设备台账","：状态（空闲 \u002F 维修 \u002F 报废）与「出租中」由活跃订单实时派生，不落冗余计数器",[37,57,58,61],{},[40,59,60],{},"租客管理","：累计下单与消费金额实时聚合，复租一键调取客户资料",[37,63,64,67],{},[40,65,66],{},"支出台账","：维修 \u002F 运费 \u002F 配件等多维记录，与营收口径构成完整损益核算",[37,69,70,73,74,78],{},[40,71,72],{},"RBAC 系统管理","：用户-角色-权限三级模型，按权限码（如 ",[75,76,77],"code",{},"order:view","）精细控制",[37,80,81,84],{},[40,82,83],{},"移动端五大场景","：今日待办、档期时间轴、30 秒极速录单、卡片式状态流转、经营报表",[11,86,87],{"id":87},"技术架构",[89,90,91,104],"table",{},[92,93,94],"thead",{},[95,96,97,101],"tr",{},[98,99,100],"th",{},"模块",[98,102,103],{},"技术选型",[105,106,107,116,124,132,140,148],"tbody",{},[95,108,109,113],{},[110,111,112],"td",{},"PC 前端",[110,114,115],{},"Vue3 + Element Plus + Pinia + ECharts",[95,117,118,121],{},[110,119,120],{},"移动端",[110,122,123],{},"Vue3 + Vant + Pinia（按需引入 + 路由懒加载）",[95,125,126,129],{},[110,127,128],{},"后端",[110,130,131],{},"Go + Gin + GORM",[95,133,134,137],{},[110,135,136],{},"数据库",[110,138,139],{},"SQLite（开箱即用）\u002F MySQL（生产）",[95,141,142,145],{},[110,143,144],{},"鉴权",[110,146,147],{},"JWT + RBAC 权限码两级中间件",[95,149,150,153],{},[110,151,152],{},"工程",[110,154,155],{},"Makefile 统一入口 + 架构护栏测试 + OpenSpec 规格流",[15,157,158,159,162,163,166,167,170,171,174],{},"三端统一约定（",[75,160,161],{},"stores\u002F"," 目录、",[75,164,165],{},"@"," 路径别名、JSON snake_case），架构护栏测试把分层铁律编译成会红的静态检查，",[75,168,169],{},"make test"," \u002F ",[75,172,173],{},"make smoke"," 作为强校验入口。",[11,176,177],{"id":177},"成果",[15,179,180],{},"档期冲突从「靠脑子记」变成系统级约束，防撞单校验同源服务于双端；设备回本进度、单台创收从拍脑袋变成实时可查的经营看板。移动端承担快速录单与提醒场景，PC 端负责甘特图与完整看板；SQLite 开箱即用与单二进制部署，让小微企业也能零运维用上专业租赁管理工具。",[11,182,183],{"id":183},"体验",[15,185,186],{},"系统已部署，PC 与移动端可分别体验：",[34,188,189,199],{},[37,190,191,192],{},"PC 端：",[193,194,198],"a",{"href":195,"rel":196},"http:\u002F\u002Freo.bennywen.xyz",[197],"nofollow","reo.bennywen.xyz",[37,200,201,202],{},"移动端（推荐手机打开）：",[193,203,206],{"href":204,"rel":205},"http:\u002F\u002Freo.bennywen.xyz\u002Fm",[197],"reo.bennywen.xyz\u002Fm",{"title":208,"searchDepth":209,"depth":209,"links":210},"",2,[211,212,213,214,215,216],{"id":13,"depth":209,"text":13},{"id":23,"depth":209,"text":23},{"id":29,"depth":209,"text":29},{"id":87,"depth":209,"text":87},{"id":177,"depth":209,"text":177},{"id":183,"depth":209,"text":183},"operations","个人项目","https:\u002F\u002Fname.os.bennywen.xyz\u002Fbennywen.xyz\u002Fassets\u002Frental-order-manager\u002Frental-order-hero.webp","2026-09-02","md",false,[224,227,231,235,239],{"title":225,"description":226},"经营仪表盘","营收\u002F支出\u002F利润与设备回本进度一屏掌握，闲置设备自动提醒",{"title":228,"description":229,"image":230},"档期可视化 · 防撞单","订单甘特视图拖拽排期，PC 与移动端共用同一套档期校验，杜绝撞单","https:\u002F\u002Fname.os.bennywen.xyz\u002Fbennywen.xyz\u002Fassets\u002Frental-order-manager\u002Frental-order-gantt.webp",{"title":232,"description":233,"image":234},"设备台账 · 回本进度","设备状态由活跃订单实时派生，单台收益\u002F出租次数\u002F闲置时长清晰可溯","https:\u002F\u002Fname.os.bennywen.xyz\u002Fbennywen.xyz\u002Fassets\u002Frental-order-manager\u002Frental-order-equipment.webp",{"title":236,"description":237,"image":238},"移动端经营报表","近 7\u002F30 天营收利润曲线、回本进度与设备创收排行，随时纵览经营全貌","https:\u002F\u002Fname.os.bennywen.xyz\u002Fbennywen.xyz\u002Fassets\u002Frental-order-manager\u002Frental-order-mobile-stats.webp",{"title":240,"description":241,"image":242},"30 秒极速录单","移动端快速开单，租期一键选择，档期冲突即时提示","https:\u002F\u002Fname.os.bennywen.xyz\u002Fbennywen.xyz\u002Fassets\u002Frental-order-manager\u002Frental-order-mobile-create.webp",{},true,"\u002Fprojects\u002Frental-order-manager",{"title":5,"description":208},"rental-order-manager","projects\u002Frental-order-manager","面向相机\u002F无人机租赁小微商家的三端订单管理系统——档期防撞单、设备回本核算、移动端 30 秒极速开单",[251,252,253,254,255,256,257,258,259,260],"Go","Gin","GORM","Vue3","Element Plus","Vant","Pinia","SQLite","MySQL","ECharts","2026","NfCUrwS3Byzpi5J7Jey9YNdd1rEAPM2xVvSSMTgTr8Y",[264,270,275,280,285,290,296,301,305,306,311,317,323,327,332,336,340,344,348,352],{"title":265,"slug":266,"order":267,"year":261,"date":268,"category":269},"图片工坊 · 离线批量图片处理","image-workshop",20,"2026-10-24","desktop",{"title":271,"slug":272,"order":273,"year":261,"date":274,"category":269},"Morrow · 桌面健康提醒","morrow",19,"2026-10-23",{"title":276,"slug":277,"order":278,"year":261,"date":279,"category":217},"家教学情管理系统","tutor-analytics",17,"2026-09-30",{"title":281,"slug":282,"order":283,"year":261,"date":279,"category":284},"闲鱼素材工坊","xianyu-content-gen",18,"ai",{"title":286,"slug":287,"order":288,"year":261,"date":289,"category":284},"电商详情页 AI 生成客户端","ecom-detail-ai",16,"2026-09-29",{"title":291,"slug":292,"order":293,"year":261,"date":294,"category":295},"Wails 桌面端脚手架基座","wails-bailer-starter",15,"2026-09-15","toolkit",{"title":297,"slug":298,"order":299,"year":261,"date":300,"category":295},"多端管理脚手架基座","admin-scaffold",8,"2026-09-04",{"title":302,"slug":303,"order":304,"year":261,"date":220,"category":217},"公车车辆管理系统","bus-admin-system",1,{"title":5,"slug":247,"order":209,"year":261,"date":220,"category":217},{"title":307,"slug":308,"order":309,"year":261,"date":310,"category":284},"家庭绿植管家","family-plant-manager",3,"2026-08-19",{"title":312,"slug":313,"order":314,"year":315,"date":316,"category":284},"古诗词AI取名工具","chinese-poetry-give-name",7,"2025","2026-06-22",{"title":318,"slug":319,"order":320,"year":315,"date":321,"category":322},"企业固定资产管理系统","asset-admin",4,"2026-06-16","admin",{"title":324,"slug":325,"order":326,"year":315,"date":321,"category":284},"知祖AI","kingpt",5,{"title":328,"slug":329,"order":330,"year":315,"date":321,"category":331},"深圳房产智能分析平台","sz-realestate",6,"data",{"title":333,"slug":334,"order":335,"year":315,"date":321,"category":322},"工厂轻量化智能排班系统","staff-scheduling",9,{"title":337,"slug":338,"order":339,"year":315,"date":321,"category":217},"电商服装仓库物流管理系统","clothing-warehouse",10,{"title":341,"slug":342,"order":343,"year":315,"date":321,"category":284},"知识库问答系统","kb-qa",11,{"title":345,"slug":346,"order":347,"year":315,"date":321,"category":322},"企业微信邮箱运营管理系统","mail-manager",12,{"title":349,"slug":350,"order":351,"year":315,"date":321,"category":217},"Switch 电玩库存管理系统","switch-manager",13,{"title":353,"slug":354,"order":355,"year":315,"date":321,"category":322},"学生宿舍管理系统","dorm-manager",14,[],1792857942295]