可嵌入的可视化工单系统

让反馈
它发生的地方

宿主站点粘一段 <script>,用户在页面上点哪儿、钉哪儿。页面地址、CSS 选择器、视口尺寸随工单一起记下来,不用再来回追问。

免费开始

这个页面自己也嵌了 SDK —— 右下角的悬浮球是真的,点了就能钉

点击页面任意位置添加工单 · 按 N 或 Esc 取消
example.com/dashboard
1
待处理#132刚刚

提交按钮点击没反应,麻烦看下

阿茶 · 网页反馈 · 2 分钟前
+

同一个 bug

同一个 bug,两种提法

一句话丢过来,你要来回问三轮才能复现。点一下钉上去,现场已经在单子里了。

那个按钮点不了
就首页啊,你自己看下
哪个按钮?什么浏览器?地址发我
  • 哪个页面
  • 哪个按钮
  • 什么环境
  • 谁提的
VS
待处理 #241 刚刚

结算页「提交订单」按钮点击没反应

页面/checkout?step=2 元素#order-form > button.submit-btn 文本提交订单 视口1440 × 900 来自阿茶 · 广东 深圳 附件1 图 · 1 附件 · 2 条评论

一次点击,全都在单子里

任何技术栈都一样
React
Vue.js
Angular
Svelte
Next.js
Nuxt
WordPress
Laravel
Django
jQuery

一个 IIFE 文件,没有 npm 依赖,没有构建步骤。

上下文

每条工单自带现场

不用再问「你在哪个页面、点了什么、窗口多大」。用户点下去那一刻,现场就被记完了。

1

#checkout > form.order-form > button.submit-btn

DOM 元素级定位

优先记录 CSS 选择器和元素内的精确点击偏移;页面改版导致选择器失效时,自动回落到视口百分比坐标,位置依然能对上。

页面/checkout
参数?step=2&plan=pro
视口1440 × 900

页面与视口

路径、query、hash 分开记录,加上视口宽高,复现环境一次到位。

"提交订单"

点中元素的文字

被点中元素的文字摘录随工单一起保存,一眼认出说的是哪个按钮。

处理

点完之后,事情才开始

A 完成
这里应该有确认弹窗

截图即标注

一键抓取当前页面,画框、加箭头、写文字,浏览器不支持截屏时自动退回 Ctrl+V 粘贴图片。

待处理 处理中 已解决 已拒绝 暂不处理 已归档
#221
#220
#219
已选 2 项改为「已解决」应用

批量流转状态

待处理、处理中、已解决、已拒绝、暂不处理、已归档,六种状态一次改一批。

ws connected

ticket.created #128

ticket.updated #126 → 处理中

comment.created #124

WebSocket 实时事件流

工单创建、状态变化即时推送,宿主站点可以自行订阅这条事件流。

NEscCtrl+F10

键盘优先

按 N 进入标注,Esc 取消,Ctrl+F10 随时隐藏或唤出整个 SDK。

planpro
orderIdORD-88291

自定义业务字段

init({extraFields}) 传对象或函数,业务信息跟着工单一起入库。

接入

两段 script,就这样

没有构建链路,没有 npm 依赖。一个原生 JS 文件,粘进页面就能用。

index.html
<script>
  window.PinmarkConfig = {
    endpoint: "https://pinmark.lighttools.net",
    siteToken: "pk_live_你的应用token",
    user: { id: "u_310", name: "阿茶" }, // 可选
    allowHotkey: true
  }
</script>

<script
  src="https://pinmark.lighttools.net/sdk/pinmark.iife.js"
  defer></script>

注册并创建应用

在管理台新建应用,拿到这个站点专属的 siteToken。

粘贴两段 script

放进页面任意位置,任何技术栈都一样,不需要构建。

N 开始标注

点悬浮球或按快捷键,点哪儿,钉哪儿。

还有一些小事

下一条反馈,让它自己带上上下文

开放注册,创建应用就能接自己的站点。