Agent Skills
返回列表
金山工时填报助手

金山工时填报助手

办公效率 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_70e829ac/zcjsywdgstb。

技能介绍

它解决什么问题

很多团队把工时填报放在金山文档的轻维表/多维表格里,但表单里有两个自动化的"硬骨头":

  • 关联记录字段:填报人、填报项目的选项弹窗不是常规 DOM 列表,而是 Canvas 虚拟表格,el.click()、选择器点击全部无效,必须拿到画布坐标模拟真实鼠标事件。
  • React 受控文本域:工作内容描述框由 React 接管,直接 el.value=... 会被框架忽略,写入后必须派发原生事件才生效。

结果是:哪怕用户只说一句"帮我填今天的工时,填报人是赵杰,项目是 ZC 数智董事会平台建设",传统脚本也会卡在弹窗点不动、输入框不更新这两处。本技能把这类重复填报收敛成一条指令。

核心能力与执行流程

技能只接收 5 个显式输入:填报人、日期、计划文档地址、填报项目、填报入口(可留空走默认表单直链)。其余字段按默认配置区处理,日期/工作类型/工作地点/工时优先信任表单预填值,只在缺失时才写入。执行分六步:

  1. 前置检查并打开表单:依赖 web-access 提供的 CDP Proxy(localhost:3456)在自建后台 tab 操作,不触碰用户原有页面。
  2. 生成工作内容:通过 kdocs 连接器(MCP)读取计划文档,按 data.content.range_data.detail.rangeData 聚合行数据,提取项目当前阶段、阶段内关键模块与里程碑,再结合填报人角色(默认项目经理视角)生成 3–6 条贴合计划原文的实施事项。
  3. 识别表单结构:确认日期框、关联记录、文本域、工时数字框的顺序与类型。
  4. 填写关联记录:这是难点。在 /eval 中用 getBoundingClientRect() 取 .db-records-selector 弹窗里 canvas 的坐标,首行 y 约等于弹窗顶部 +55px,行高约 28px,派发 mousedown / mouseup / click 序列;点击后立即 /screenshot 肉眼校正,偏一行就增减 28px 重试。搜索过滤命中后通常一次成功。
  5. 写入 React 受控输入:文本域和数字框都走原生 setter(Object.getOwnPropertyDescriptor 取 value descriptor),再派发 input / change 事件,绕开框架拦截。
  6. 截图核对与提交:填完截图交用户确认,默认不提交,只有收到明确指令才执行最后一步,并在结束后关闭自建 tab。

适用边界与注意点

  • 表单必须由「关联记录」字段驱动,且弹窗内是 Canvas 虚拟表格;如果目标表是普通下拉列表,该技能的坐标点击逻辑没有用武之地。
  • 工作内容生成依赖计划文档的结构和原文,脚本不会编造计划之外的功能模块;计划文档长期不变时生成结果也稳定。
  • 浏览器自动化存在账号风控风险,运行环境需已完成 web-access 的依赖检查。
  • 提交前必须人工确认截图,涉及个人工时数据时不要改成自动提交。

使用场景

  • 在金山文档轻维表工时表单中填报当日工时,需自动选择填报人和项目,并生成工作内容
  • 表单弹窗为Canvas虚拟表格导致普通点击无效,需要按坐标模拟鼠标事件选中关联记录
  • 工作内容文本域是React受控组件,需要通过原生setter写入值并派发事件才能生效
  • 用户只给一句话指令(填报人、日期、计划文档、项目),其余字段自动推断或使用默认值

适合人员

  • 需要定期在金山文档填报工时的项目经理或研发人员,希望用一句话完成填报
  • 维护金山文档轻维表工时表单的团队管理员,需要自动化处理Canvas虚拟表格和React受控输入
  • 使用web-access和kdocs连接器的开发者,需要示例如何通过CDP Proxy和MCP读取计划文档生成内容