分销商城二开实战:FastAdmin+Shopro+Uni-App佣金结算与上线踩坑
上周终于把模拟项目X的最后一版分销佣金规则部署上线了。表面上看这只是给一个基于FastAdmin、Shopro和Uni-App的分销商城做二次开发和功能定制实际拆完才发现要动的地方横跨三块FastAdmin后台的佣金等级与提现配置、订单结算链路里的分佣节点、还有Uni-App端的分销中心与推广海报页面。如果你正准备用Shopro做分销商城定制或者已经在二开路上、正被佣金精度、状态流转、并发结算这些细节卡住这篇文章大概率能帮你少走点弯路。我会把这次从需求拆解到上线的完整过程包括后台表设计、前端页面定制、结算链路改造和版本升级保护讲清楚最后再聊两个我最后悔的决定。1. 分销商城定制为什么第一件事是拆解结算链路1.1 需求方嘴里的分销可能完全不是你理解的样子我见过不少商城项目翻车都是从需求没对齐开始的。对接的运营同学说我们就要那种分销跟隔壁商城一样但等你打开隔壁商城一看人家做的是满减拼团根本不是分销或者运营说要三级分销实际上他们想要的是一级佣金团队阶梯奖这两种逻辑的后台模型完全不同。模拟项目X一开始也是这个状态。需求方给了一段很模糊的描述用户分享商品给朋友朋友下单后分享人获得佣金邀请的人越多等级越高。这句话真正落到代码里需要拆成五个问题谁给谁钱给多少什么时候给钱从哪里来什么时候能提现我当时的做法是先不写代码把这五个问题按结算口径整理成一张表跟运营逐条确认分销层级只算两级还是算到三级甚至更多佣金基数按单个商品实付金额还是订单整体实付金额含运费算结算时点用户下单时就计算还是确认收货后计算还是过了售后期再结算佣金比例固定一个比例还是按分销等级对应不同比例提现规则余额实时可提还是有门槛、有手续费模拟项目X最终的结算口径是这样顾客A通过B的推荐海报首单绑定关系A下单确认收货后满7天B和B的上级按订单实付金额对应比例获得佣金佣金先进入待结算状态满100元可申请提现提现时扣除2%手续费。这个口径听起来简单但它决定了后面所有表结构和代码的走向也决定了运营在后台能看到哪些配置项。1.2 把三级分销翻译成数据表与状态机很多二开项目死在上来就画页面、写接口分销这种强业务逻辑的功能正确顺序是先建模。我把分销体系拆成三张核心表分销关系表记录用户uid、上级uid、绑定类型扫码/链接、绑定时间、状态。一个用户只能有一个上级绑定后不可变更这是分销返佣的基础。分销等级表等级名称、升级条件累计订单量、累计销售额、直推人数、各级佣金比例。等级不同拿到的比例不同。佣金记录表订单id、分销商uid、来源用户uid、佣金层级、佣金金额、状态冻结/待结算/可提现/已提现/已失效。三张表再配一个状态流转方向用户付款后生成冻结记录确认收货后进入待结算售后期结束后转可提现申请提现后进入提现流程。刚开始我差点省掉冻结这一步直接把佣金记为待结算后来想明白一个问题如果用户下单不付款或者退款了待结算佣金怎么撤回没有中间状态账就乱了。在这里给自己提个醒分销业务的表结构设计先画状态机再写建表语句。把下单冻结、收货结算、售后期转可提现、退款回滚这几个节点用白纸画出来跟产品确认过比闷头写十张表都管用。这个原则在后面的结算改造里省了我大量返工时间。2. FastAdmin后台扩展改表、CRUD与表单验证的实操顺序2.1 用FastAdmin的CRUD快速搭出分销等级配置表FastAdmin最舒服的地方是它的后台生成器。我先把分销等级表建好字段注释写完整然后一条命令生成控制器、模型、视图和菜单节点CREATE TABLE fa_distribution_level ( id int(11) unsigned NOT NULL AUTO_INCREMENT, name varchar(50) NOT NULL DEFAULT COMMENT 等级名称, level tinyint(1) NOT NULL DEFAULT 1 COMMENT 等级序号1-3, direct_people int(11) NOT NULL DEFAULT 0 COMMENT 直推人数要求, total_sales decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT 累计销售额要求, commission_rate decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT 一级佣金比例(%), second_rate decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT 二级佣金比例(%), status tinyint(1) NOT NULL DEFAULT 1 COMMENT 状态:0禁用,1启用, createtime int(11) NOT NULL DEFAULT 0 COMMENT 创建时间, updatetime int(11) NOT NULL DEFAULT 0 COMMENT 更新时间, PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT分销等级配置表;php think crud -t distribution_level -u 1这条命令会生成控制器、模型、验证器、视图模板同时往权限规则表里写入菜单节点。然后到后台权限分组里给对应管理员组勾选新生成的节点再到菜单管理里把这些节点挂到Shopro的菜单分组下运营同学就有入口配置等级佣金了。需要注意一个细节FastAdmin生成器很依赖表注释。comments写得清楚生成出来的表单标签就是中文的comments写得潦草生成的表单还要人工补一遍。我建表时把每个佣金字段的单位都写明白了比如一级佣金比例(%)避免运营误以为填的是金额。这个习惯在Shopro后台配置项特别多的时候非常救命不然运营天天来问这个字段填什么。2.2 分销关系数据放到扩展表别动Shopro原生表这里可能是二开最核心的一个原则能用扩展表解决的绝不改Shopro原表。Shopro是一套公版商城后续升级会把原生文件整体覆盖如果你直接把parent_id加进它的用户表升级一次哭一次。我的做法是新建了一张分销关系表用user_id做唯一键和用户表一对一关联。绑定上级的时机有两个注册时通过分享链接创建账号登录后检查关系表里没有记录就把邀请关系写进去。写入用事务包一层public function bindParent($userId, $parentId) { if ($userId $parentId) { return false; } $exist Db::name(distribution_relation) -where(user_id, $userId) -find(); if (!empty($exist)) { return true; } Db::startTrans(); try { Db::name(distribution_relation)-insert([ user_id $userId, parent_id $parentId, bind_type scan, createtime time() ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); return false; } }有两点一定要处理一是防自己绑定自己二是防重复绑定。重复绑定靠关系表的user_id唯一索引兜底程序里即使并发请求数据库也会拒绝第二条插入。单纯在代码里判断存在性是不够的并发情况下两个请求同时通过了判断最后还是一样会插进去唯一索引才是最后一道防线。2.3 验证器与防呆宁可多拦截不能进脏数据运营后台表单最容易出问题的是佣金比例配错。模拟项目X上线前测试时运营把一级佣金配成0.8、二级0.5、三级0.1三个数字加起来超出商品毛利好几个点如果不在后台拦截每一单都亏钱。FastAdmin的验证器支持自定义规则。我给分销等级配置表单加了一个校验方法专门处理佣金规则protected $rule [ commission_rate require|between:0,0.99|checkRate, ]; protected $message [ commission_rate.require 一级佣金比例不能为空, commission_rate.between 佣金比例必须在0到0.99之间, ]; protected function checkRate($value) { // 比较一二级比例上级比例不能低于下级 if ($this-data[second_rate] $value) { return 上级分销商比例不能低于下级; } return true; }这种防呆逻辑比事后查数据高效得多。运营后台不是开发环境填错一个数字线上分佣全部走偏用户投诉佣金不对最后还是开发背锅。3. Uni-App端的分销定制分销中心、海报生成与绑定跳转3.1 分销中心页面骨架与分包加载模拟项目X的前端是Uni-AppVue2语法页面统一用rpx做单位。分销中心主要承载四个模块佣金概览、我的团队、海报推广、提现入口。页面拆组件的时候注意不要把几十个变量全堆在一个页面文件里我拆成了佣金卡片、团队列表、推广海报、提现面板四个子组件主页面只做状态协调。小程序对主包体积有硬性限制分销相关页面全部放进分包这样用户不点分销中心就不会加载这部分代码首屏速度快不少。分销中心里比较特殊的是预估佣金这个数值。它和已结算佣金不同是在订单支付后、确认收货前给分销商一个参考收益。这个值不能直接查佣金记录里的可提现字段而是要根据订单当前状态实时算。我给后端单独出了个预估接口把冻结中的订单和对应佣金比例汇总一下返回前端只负责展示。3.2 海报生成canvas绘制跨端差异不能想当然分销海报是整个功能里视觉最直观、坑也最多的部分。海报由背景图、商品图、标题、价格、二维码组合而成二维码需要带上邀请人ID。第一个坑是跨域。H5端canvas直接画远程图片如果图片服务器没有配跨域白名单画布会被污染导出图片就是一张白图。我的处理是先下载图片到本地拿到本地临时路径再绘制小程序端则要注意下载域名合法配置否则开发环境正常、生产环境白图。第二个坑是canvas层级。小程序里canvas属于原生组件层级高于普通view容易挡住弹窗。这时候要么动态控制canvas的显示隐藏要么用cover-view覆盖。我之前图省事不改层级结果分享弹窗被海报挡了一半项目方差点退货。绘制时文字换行需要自己算宽度常规fillText不会自动换行。我封装了一个多行绘制方法按字体大小测量字符串宽度超过画布宽度就截断换行再做居中绘制。海报标题那种一行放不下的长商品名全靠这个方法兜底。3.3 推广二维码与绑定跳转的端差异推广二维码要解决的是新用户扫了码之后系统知道是谁推荐的。不同端携带参数的方式不一样小程序用scene参数App和H5用URL参数。小程序端生成二维码时把邀请人ID做一层编码放进scene用户扫码进入分销绑定页后读取scene值。H5端则是在分享链接上带inviter参数。两个端最终都调同一个绑定接口但参数来源完全不同我在公共页面里做了条件编译处理// #ifdef MP-WEIXIN const scene decodeURIComponent(options.scene || ); // #endif // #ifdef H5 const inviter getQueryParam(inviter); // #endif这里最容易被忽略的是绑定时机新用户从小程序扫码进来可能还没登录如果直接绑定拿不到uid。正确顺序是先完成登录授权拿到uid后再调绑定接口否则会出现上级绑定到空用户这种脏数据。我后来在绑定时加了uid非空判断和事务总算把这个藏了几天的问题根除了。4. 结算链路二次开发浮点陷阱、状态流转与并发兜底4.1 佣金计算统一用分为单位不要碰浮点这是分销二开里最老生常谈、又最容易被新手忽略的坑。PHP里0.1加0.2并不等于0.3佣金比例算出来的金额如果直接用浮点数累加短期内看不出问题跑上几个月账就对不上了。正确做法是统一把金额转成分来算。实付金额是42.50元就转成4250分佣金比例5%计算4250乘以5除以100结果四舍五入后得到213分最后输出时再除以100显示成2.13元。全程用整数运算不做浮点除法需要用bcmul这类函数的场景就用函数处理。我在模拟项目X的佣金结算方法里入口统一做了金额格式转换出口统一做分转元。前端传过来的任何金额都先过一层转换函数避免直接在业务代码里写小数运算。这个习惯在做完这个商城二开后我把它写进了自己的资金代码规范凡是涉及乘法后取多位小数的一律整数化。4.2 状态机流转确认收货不是分佣的开始是待结算的开始模拟项目X的结算口径是确认收货后满7天可提现。为什么一定要这个延迟因为生鲜类目退货率高确认收货后7天内用户可能发起售后如果确认收货立刻把钱算成可提现用户一边退款一边提现账就平不上。状态机在Shopro默认逻辑上扩展成了这样付款且订单完成生成佣金记录状态为冻结订单确认收货状态改为待结算同步一个定时任务扫描确认时间超过7天的待结算记录改成可提现用户申请提现时可提现余额转入处理中打款完成后记已提现。如果用户退款呢这就要做佣金回滚找到该订单下的佣金记录把已结算的扣回来。扣回顺序我按优先级处理先扣可提现余额再扣待结算金额最后锁定余额。这里要特别小心负数用户提现后订单又退款可提现不够扣余额就被扣成负数必须在逻辑上给余额下限兜底。我在代码里对状态流转做了一个原则所有状态变更必须走统一方法不允许业务代码里直接改状态字段。这样每次状态变化都能写日志后面排查为什么这笔佣金没了时看日志就能还原。4.3 并发重复结算唯一索引加事务两道保险分销结算的并发风险很容易被小流量项目忽视。模拟项目X上线第一天就遇到问题同一个用户短时间内下了两单同一分销商的两笔佣金在定时任务结算时被重复入账团队小伙伴立刻慌了。根因是结算脚本没有幂等保护。我给出的处理是两层第一层佣金记录表加唯一索引订单id加分销商uid同一个订单同一个分销商只能有一条记录第二层结算方法里先查再插查询和插入包在事务里插入冲突就抛异常回滚。加了唯一索引之后即使定时任务和用户手动刷新页面同时触发数据库也会把重复插入挡住最多记一条日志不影响账目。另外一个容易被忽略的并发源是用户主动触发。比如我在分销中心放了刷新收益按钮后端定时任务也在跑结算同一个订单id就可能被两个入口同时处理。光靠程序判断状态不够唯一索引才是最后一道保险这也是我事后复盘总结出来的分销结算的幂等宁可依赖数据库约束也不要依赖代码流程。5. 二次开发的升级保护改造越少越好记录越全越好5.1 先分清楚哪些能改哪些尽量别碰Shopro公版会持续迭代升级时把整个项目文件一覆盖本地所有改动全部消失。为了不让自己一个月的工作白做我从第一天就定了一条强制规则所有改动过的Shopro原生文件必须在文件头部加一行注释// [MOD] 分销结算状态扩展:2025-03/模拟项目X这样升级后无论文件被覆盖还是被对比都能一眼看出哪些文件本地有特殊改动哪些没有。跑一次git diff就能把改动清单拉出来对账非常方便。另一个原则能用扩展表、扩展控制器解决的绝不去动Shopro自带的核心控制器。分销等级、佣金记录、绑定关系这三块我都建了新表、新建了独立控制器Shopro的订单回调只是在事件通知处留了一个钩子点侵入面尽可能小。5.2 用git做补丁包而不是手动复制文件刚开始做二开时我习惯手动把改过的文件单独拷出来备份后来觉得不靠谱改用git管理整个项目。每次改版前基于Shopro原版分支切一个功能分支发布后把本地相对原版的差异导出成补丁文件git diff origin/shopro-base-v2.0.0 local-changes.patchShopro发布新版本后先拉取新版分支再把补丁打上去git apply --3way local-changes.patch如果新版源码改动了同一段逻辑--3way会留下冲突标记手工解决完再提交。这套流程比手动复制文件稳妥得多关键时候还能看每个文件的改动历史知道某段逻辑当初为什么这么写。补丁文件本身也要纳入版本管理我放在项目的docs/patches目录里每一版补丁对应一个说明文件记录改动原因和涉及业务。这个习惯在半年后再接手这个项目时帮了大忙——那时候连我自己都快忘了某些改动是干嘛的。5.3 升级后的回归清单Shopro升级后流程回归是必需品。我整理了一份专门针对分销链路的回归清单每次升级后照着跑一遍测试项预期结果高风险点新用户扫码注册绑定上级成功关系表有记录参数解析、登录时序下单支付佣金记录生成且状态冻结事件回调、唯一索引确认收货待结算佣金生效状态机节点满7天后佣金转可提现定时任务执行申请提现余额扣减、记录处理中支付接口、手续费H5海报分享图片生成且二维码带参跨域、canvas分销等级升级佣金比例切换正确升级判断、历史订单归属这份清单不是凭空想出来的是模拟项目X上线前一条一条踩出来的。如果你团队没有专职测试这个清单能让你在半小时内把核心链路过一遍。6. 这次定制里最后悔的两个决定以及如果再让我来一次6.1 后悔之一没有在动工前把结算口径和运营签死模拟项目X一开始最耗时的不是写代码是佣金口径反复变。第一次按下单即结算开发做了两天运营说改成确认收货结算改成确认收货后又说要加7天售后期加了售后期又说手续费从提现里扣而不是从佣金里扣。每改一次口径后端状态机、前端展示、提现逻辑全要跟着动等于同一个功能写了三遍。后来我把结算口径写成一页纸的确认单让运营确认后再动工效率立刻不一样。分销业务的二开技术不是最大的瓶颈口径才是。代码可以随时改但口径不定的损失是隐蔽的因为它会消耗你几倍的时间。6.2 后悔之二海报的H5跨域问题没有提前预判海报功能在开发环境跑得好好的结果发布到预发环境后H5端海报一片白用户点分享全是不带参数的活动页。查了一圈才定位到是图片服务器没配跨域头canvas被污染。如果我在最早设计海报时就把所有图片先下载到本地再绘制作为强制方案这个线上问题完全可以避免。这类问题不致命但特别伤信任。分销功能直接和钱有关出一次海报打不开、佣金不见了运营对系统的信任就打折一次。6.3 如果重来一次我会坚持的三条铁律第一所有SQL结构变更沉淀成固定脚本按日期编号放在docs/migrations目录上线前按顺序执行避免我记得好像改过这个字段。第二资金相关逻辑先写测试再写业务代码佣金计算、状态流转、回滚这些核心算法跑通了再接入界面。第三任何分销活动上线后前72小时每天对账一次比较佣金记录总额和订单实付总额是否在预期范围内。做分销商城二开代码写得花哨不如链路走得通。分销最怕的不是页面丑而是佣金算错了这四个字。只要结算链路稳哪怕界面朴素用户和运营也都能接受。

相关新闻

PAE物理地址扩展:32位系统突破4GB内存限制的核心机制

PAE物理地址扩展:32位系统突破4GB内存限制的核心机制

1. 什么是PAE:从“物理地址扩展”到现代内存管理的底层支点PAE,全称Physical Address Extension,中文直译为“物理地址扩展”。这个词听起来像教科书里的冷门术语,但其实它早已悄悄嵌入你每天使用的设备底层——无论是某实验室正在…

2026/10/13 7:18:36 阅读更多 →
wecom-cli:5分钟扫码授权调用企业微信API

wecom-cli:5分钟扫码授权调用企业微信API

1. 为什么“5分钟上手”不是营销话术,而是真实可达成的操作目标你点开这篇教程时,大概率正被三件事卡住:第一,公司刚启用企业微信,IT同事甩来一串API文档却没给现成工具;第二,你手头有个自动化需…

2026/10/12 18:29:35 阅读更多 →
Ubuntu命令行实战指南:从入门到系统救急

Ubuntu命令行实战指南:从入门到系统救急

上次帮同事救一台连桌面都进不去的Ubuntu服务器,远程敲了半小时命令就把系统盘数据捞了回来。对方在电话里感叹了一句:“原来命令行才是这系统的灵魂啊。”这话我特别认同。很多人装完Ubuntu就一直在图形界面里点来点去,遇到鼠标失效、输入法…

2026/10/12 20:17:34 阅读更多 →

最新新闻

Python实现重复文档查找与清理工具

Python实现重复文档查找与清理工具

1. 重复文档查找工具的设计与实现在日常工作中,我们经常会遇到文档重复的问题,特别是从QQ、微信等平台接收的文件,经常会在不同文件夹中保存多份相同内容但不同名称的文件。这些重复文件不仅占用宝贵的存储空间,还会导致文件管理混…

2026/10/14 11:02:10 阅读更多 →
SpringBoot文旅系统开发:微服务架构与智能推荐实践

SpringBoot文旅系统开发:微服务架构与智能推荐实践

1. 项目背景与核心价值 绍兴作为拥有2500年建城史的文化名城,其"水乡、桥乡、酒乡、书法之乡"的文旅资源数字化呈现具有典型示范意义。这个基于SpringBoot的旅游系统毕业设计,实际上构建了一个可复用的区域文旅数字化解决方案原型。我在参与某…

2026/10/14 11:02:10 阅读更多 →
自考备考:8款工具有效降低AI误判率

自考备考:8款工具有效降低AI误判率

1. 项目背景与核心价值作为一名连续5年参与自学考试辅导的从业者,我深刻理解考生在备考过程中面临的核心痛点。2023年某省自考办统计数据显示,78%的考生在主观题作答时因表述不规范被系统误判为AI生成内容,导致平均每科损失12-15分。这种现象…

2026/10/14 11:02:10 阅读更多 →
AI辅助自考工具测评:如何科学选择与使用

AI辅助自考工具测评:如何科学选择与使用

1. 自考备考新趋势:AI辅助工具的崛起与选择困境作为一名连续三年跟踪自考工具演变的备考顾问,我亲眼见证了AI技术如何重塑自学考试的准备方式。2023年以前,考生们还在用纸质笔记和传统题库;而到了2025年,已有78%的自考…

2026/10/14 11:02:10 阅读更多 →
给AI Agent配一套Skills工程工作流:从玩具到工具的落地指南

给AI Agent配一套Skills工程工作流:从玩具到工具的落地指南

最近一段时间,AI Agent 的热度又起来了,但真正能把 Agent 用进生产环境的人其实不多。我见过太多团队把 Agent 当成一个“聊天机器人”来调,结果 Chat 的时候什么都好,一放到工作流里就怎么都不对。今天想聊的这套东西&#xff0c…

2026/10/14 11:02:10 阅读更多 →
C++字符类型char与wchar_t深度解析

C++字符类型char与wchar_t深度解析

1. 理解C中的字符类型本质在C开发中,字符处理是每个程序员都会遇到的基础问题。char和wchar_t看似简单,但背后涉及字符编码、国际化支持等复杂概念。我们先从内存层面理解它们的物理差异:char类型保证至少8位宽度,这源于C语言的遗…

2026/10/14 11:01:09 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →