TMS 船舶证书录入
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_650d82d3/tms-ship-entry。
技能介绍
要解决的问题
手动把船舶证书信息录进 TMS 的“新增船舶”弹窗既重复又容易出错。一条船通常对应 5 张证书:所有权、AIS、国籍、检验、营运,每张版式不同,字段又散落在表单各处。人工录入时,船名拼写、尺度(长×宽×深)和证书编号很容易对不上,尤其在批量新增或换班交接时,返工成本会迅速放大。
技能如何工作
该技能把证书图像整理成结构化的 14 字段记录,再通过 xbrowser 的 CDP 通道驱动 Edge 浏览器,把结果填进 TMS 弹窗。流程先自动探测 QClaw 运行时并设置 QCLAW_HOME;随后 scripts/tms_fill.ps1 作为主调度,依次执行点击“新增”、等待弹窗出现、运行浏览器侧 IIFE 模板 scripts/tms_fill.js、最后解析运行日志。
填充器采用标签驱动的查找逻辑:它匹配表单标签文本而不是脆弱的 CSS 选择器,并通过 React 兼容的 setter 写入受控输入。scripts/tms_verify.ps1 负责从弹窗回读实际字段值,便于定位哪一格没写对;scripts/fill_ship.bat 只是薄封装,方便双击触发;data/tms_ships.ps1 以哈希表保存每艘船的数据,保证重复执行时字段来源一致。如果弹窗已经打开,可以通过说“新增”或提供船名触发同一套流程。
适用边界与注意点
自动化强依赖 TMS 当前 DOM 结构和证书清晰度,因此不要把它当成万能表单机器人。查找范围必须锁定在 .ant-modal-body 内,因为页面顶部搜索栏存在重复字段,一旦越界就会填错位置。尺寸字段的标签是 船舶尺度(长×宽×深),它不在 .ant-form-item 里,需要单独处理。
另外,直接使用 atob() 处理含中文的 Base64 会破坏 UTF-8,应改用 TextDecoder().decode(Uint8Array.from(atob(b64), ...)) 解码。.ps1 文件必须保存为 UTF-8 with BOM,并在捕获 xbrowser 输出前设置 [Console]::OutputEncoding = UTF8,否则中文日志会变成乱码。Edge 登录状态需要保持有效;若字段标签或证书类型发生变化,应先更新 data/tms_ships.ps1 的映射,再用回读脚本验证一艘船,确认无误后再放量运行。
使用场景
- 批量新增船舶时,一次性上传5张证书图片,希望自动填充到TMS新增弹窗
- TMS新增船舶弹窗已打开,说出船名或"新增"即可直接完成字段录入
- 需要将一艘新船的所有权、AIS等5张证书中的14个字段录入TMS
- 船舶换班或批量建档时,希望从证书图片自动提取信息避免手工逐项填写
适合人员
- 航运公司船舶管理员,需要在TMS中频繁录入新船证书信息
- 船舶代理或船务操作员,负责将客户证书资料录入管理系统
- QClaw与xbrowser技术运维,需要调试和维护TMS自动化填表流程