Install
openclaw skills install @liu-tao-hash/jielong-cli接龙活动管理工具(CLI版)。通过 jielong 命令行工具管理接龙活动。 支持创建、查看、修改、删除接龙活动、收费报名活动、打卡接龙活动, 以及查看报名列表、查看活动详情、管理填表项、控制活动状态(开始/结束/重启)、 删除报名记录、清空报名等操作。 触发场景: - 用户提到"创建接龙/报名/打卡"、"帮我发一个活动"、"查看报名"、"看看我的活动" - "帮我报名"、"代报名"、"我要参加"、"报名一下" - "删除活动"、"修改活动时间/名称/描述"、"添加填表项"、"删除报名" - "清空报名"、"结束活动"、"开始活动"、"重启活动"等 NOT for: 与接龙活动无关的请求。
openclaw skills install @liu-tao-hash/jielong-cli前提条件:机器上必须已安装
jielong命令行工具。 所有操作通过终端执行jielong命令完成。
【禁止跳过以下步骤】在回复用户任何关于接龙活动的请求之前,你必须先用终端执行下面的命令来检查接龙工具的登录状态。这不是在检查 OpenClaw 的登录状态!
这里检查的是 接龙小程序(jielong CLI 命令行工具)的登录状态,跟 OpenClaw 本身的登录状态完全无关。
先确保工具是最新版本,在终端执行:
npm install -g jielong-cli@latest
(如果已是最新版会秒过,有新版才会下载更新)
然后验证工具可用:
jielong --help
在终端中执行:
jielong whoami
根据命令的实际输出判断(不是根据 OpenClaw 的登录状态判断):
昵称: L
用户ID: 12345
手机号: 131xxxxxxx
OpenID: oXXXXXXXXXXXX
⚠️ 这一步是 AI 必须自己执行的命令,绝对不能让用户自己去终端操作!
jielong login不是交互式命令,它会自动弹出浏览器窗口显示二维码,AI 可以直接执行。 禁止回复"我无法代替你完成"、"请你自己去终端执行"之类的话!
发现 token 过期或未登录时,立即执行以下命令(不要问用户,直接执行):
jielong login
这个命令会:
执行后,告诉用户:
🔒 接龙工具登录已过期,已为你打开登录二维码,请在浏览器中用微信扫码完成登录。扫码成功后告诉我"登录好了"。
注意事项:
jielong login,不能让用户自己去终端执行jielong login 会自动弹出浏览器显示二维码,AI 直接执行即可jielong whoami 确认jielong login【禁止跳过以下步骤】创建活动时,不允许直接执行 jielong create 命令!必须按以下流程操作:
根据用户的需求,整理出以下信息并以清晰的格式展示给用户:
📋 即将创建以下活动,请确认信息是否正确:
活动名称:周末聚餐
活动类型:接龙报名(106)
开始时间:2026-06-01 00:00:00
结束时间:2026-06-07 23:59:59
活动描述:请大家准时参加
填表项:姓名、手机号
请回复"确认创建"或"创建"来创建活动,或者告诉我需要修改的地方。
用户确认后才执行 jielong create 命令。
适用于:只需要文本、手机号、日期等简单填表项的活动。
jielong create -n "活动名称" -t 类型 -b "开始时间" -e "结束时间" -f "填表项" -c "活动描述"
| 参数 | 说明 | 示例 |
|---|---|---|
-n | 活动名称(必填) | "周末聚餐报名" |
-t | 活动类型(默认106) | 106接龙报名 / 101收费报名 / 109打卡接龙 |
-b | 开始时间(必填) | "2026-06-01 00:00:00" |
-e | 结束时间(必填) | "2026-06-07 23:59:59" |
-f | 填表项,逗号分隔 | "姓名,手机号,备注" |
-c | 活动描述(选填) | "请大家准时参加" |
| 用户说法 | 对应类型值 | 说明 |
|---|---|---|
| 接龙、报名、通用接龙、普通报名 | 106 | 默认类型 |
| 收费、收费报名、付费、购票 | 101 | 需要设置收费项 |
| 打卡、打卡接龙、签到 | 109 | 需要设置打卡配置 |
用户提到的字段名自动映射:
| 用户说 | 字段名 | 类型 |
|---|---|---|
| 姓名/名字/名称 | 姓名 | 文本(1) |
| 手机/电话/手机号 | 手机号 | 手机号(11) |
| 日期/时间 | 日期 | 日期(3) |
| 备注/说明/留言 | 备注 | 多行文本(9) |
| 身份证 | 身份证 | 身份证(10) |
| 图片/照片 | 图片 | 图片(5) |
| 数量/人数/份数 | 数量 | 数量(13) |
多个字段用英文逗号拼接,如 -f "姓名,手机号,备注"。
00:00:00,结束时间 23:59:59"yyyy-MM-dd HH:mm:ss"用户说"帮我创建一个周末聚餐接龙,要填姓名和手机号":
jielong create -n "周末聚餐" -t 106 -b "2026-05-30 00:00:00" -e "2026-06-01 23:59:59" -f "姓名,手机号"
用户说"建一个每天打卡的接龙":
jielong create -n "每日打卡" -t 109 -b "2026-05-30 00:00:00" -e "2026-06-30 23:59:59" -f "姓名"
当用户的请求包含以下任意一个时,必须使用 JSON 文件模式:
第一步:用 write_file 工具生成 JSON 配置文件到 %TEMP%\jielong_activity.json
第二步:执行命令
jielong create --file "%TEMP%\jielong_activity.json"
以下是完整的 JSON 模板,所有字段都必须包含,不要省略任何字段:
{
"name": "活动名称",
"content": "活动描述",
"activityType": 106,
"activityMode": 1,
"activityBigType": 1,
"beginTime": "2026-06-01 00:00:00",
"endTime": "2026-06-07 23:59:59",
"generalCheckTimes": 0,
"confirmWord": "立即报名",
"createSource": 4,
"paymentSwitch": 0,
"rebateSwitch": 0,
"verificationSwitch": 1,
"is_it_over": 1,
"signStatus": 1,
"signInfoStatus": 1,
"copyStatus": 1,
"shareStatus": 1,
"multipleActivitiesStatus": 1,
"removeSignStatus": 4,
"updateSignInfo": 1,
"userIfDel": 2,
"adminIfDel": 2,
"isTemplate": 2,
"commentStatus": 2,
"giftStatus": 2,
"projectVos": [],
"goods": [],
"modular": [],
"fmActivityChargeItemVOS": [],
"signList": [
{
"signListName": "报名信息",
"signField": [
{
"fieldName": "姓名",
"type": 1,
"isRequired": 1,
"sort": 0
},
{
"fieldName": "是否参加",
"type": 2,
"isRequired": 1,
"sort": 1,
"content": "[{\"value\":\"是\",\"maxNum\":-1},{\"value\":\"否\",\"maxNum\":-1}]"
}
]
}
],
"fmClockIn": {
"clockFrequencyType": 3,
"clockFrequencyName": "每天",
"clockFrequency": "0,1,2,3,4,5,6",
"beginTime": "00:00",
"endTime": "23:59",
"checkSwitch": 1,
"checkTimes": 0,
"clockMaxSwitch": 2,
"clockMaxNum": 1,
"multiPeriodSwitch": 2,
"clockLocationStatus": 2,
"clockLocationInfo": "",
"clockRange": "",
"clockRemindStatus": 1,
"remindTime": "10:00",
"clockSupplyStatus": 1,
"clockSupplyType": -1,
"supplyTimes": "-1",
"customDate": "",
"dayOfDate": "",
"timeOfDay": "",
"clockInTimeSlot": [
{
"startTime": "00:00",
"endTime": "23:59",
"ifDel": 2,
"randomDecimal": 1234567890
}
]
}
}
关键说明:
paymentSwitch 设为 0,fmActivityChargeItemVOS 设为空数组 []paymentSwitch 设为 1,fmActivityChargeItemVOS 填充收费项数组fmClockIn 字段fmClockIn 对象,不能省略任何字段projectVos、goods、modular 固定为空数组 []activityBigType 固定为 1verificationSwitch 固定为 1| type值 | 含义 | 是否需要 content | 说明 |
|---|---|---|---|
| 1 | 文本 | 否 | 普通输入框 |
| 2 | 单选 | 是 | content 为选项JSON数组 |
| 3 | 日期 | 否 | 日期选择器 |
| 4 | 多选 | 是 | content 为选项JSON数组 |
| 5 | 图片 | 否 | 图片上传 |
| 9 | 多行文本 | 否 | 多行输入框 |
| 10 | 身份证 | 否 | 身份证号输入 |
| 11 | 手机号 | 否 | 手机号输入 |
| 13 | 数量 | 否 | 数字输入 |
content 是一个 JSON字符串(注意:是字符串里嵌套JSON),格式:
"[{\"value\":\"选项A\",\"maxNum\":10},{\"value\":\"选项B\",\"maxNum\":-1}]"
value:选项名称maxNum:名额限制,-1 表示不限fmActivityChargeItemVOS 数组,最多20项。同时必须设置 paymentSwitch: 1。
{
"itemName": "成人票",
"unitPrice": 50.0,
"stock": 100,
"remainingStock": 100,
"minBuyNum": 1,
"maxBuyNum": 10
}
fmClockIn 完整字段如下,根据 clockFrequencyType 不同,部分字段有特殊要求:
| 字段 | 说明 | 默认值 |
|---|---|---|
clockFrequencyType | 1=每月 2=每周 3=每天 4=法定工作日 5=法定节假日 6=自定义周几 7=自定义日期 8=一次性 | 3 |
clockFrequencyName | 频率中文名,如 "每天"/"每周"/"自定义周几打卡" | "每天" |
clockFrequency | 周几选择,"0,1,2,3,4,5,6" 表示全周 | "0,1,2,3,4,5,6" |
beginTime | 打卡开始时间 | "00:00" |
endTime | 打卡结束时间 | "23:59" |
checkSwitch | 1=开启审核 2=不审核 | 1(Go默认开启) |
checkTimes | 打卡次数(一次性打卡时由 generalCheckTimes 控制) | 0 |
clockLocationStatus | 1=开启定位 2=不定位 | 2 |
clockLocationInfo | 定位信息 | "" |
clockRange | 定位范围 | "" |
clockRemindStatus | 1=开启提醒 2=不提醒 | 1(Go默认开启) |
remindTime | 提醒时间,如 "10:00"(clockRemindStatus=1时必填) | "10:00"(Go默认) |
clockSupplyStatus | 1=允许补卡 2=不允许(一次性打卡固定=2) | 1(Go默认允许) |
clockSupplyType | 补卡类型 | -1 |
supplyTimes | 补卡次数(字符串) | "-1" |
clockMaxSwitch | 1=限制打卡人数 2=不限制 | 2 |
clockMaxNum | 最大打卡人数 | 1 |
multiPeriodSwitch | 1=多时段 2=单时段 | 2 |
customDate | 自定义日期,逗号分隔(仅 clockFrequencyType=7) | "" |
dayOfDate | 日期值:每月=当月最后一天日期数字,每周=6(周日) | "" |
timeOfDay | 截止时间(仅每月/每周有效),如 "20:00" | "" |
clockInTimeSlot | 打卡时间段数组 | 见下方 |
clockFrequencyType 对应的特殊字段:
| clockFrequencyType | 必须额外设置的字段 | 示例 |
|---|---|---|
| 1=每月 | dayOfDate=月末日(如"31"), timeOfDay="20:00" | 每月最后一天20:00截止 |
| 2=每周 | dayOfDate="6"(周日), timeOfDay="20:00" | 每周日20:00截止 |
| 3=每天 | 无额外字段 | |
| 6=自定义周几 | clockFrequency="0,2,4" | 周一三五打卡 |
| 7=自定义日期 | customDate="2026-06-01,2026-06-15" | 指定日期打卡 |
| 8=一次性 | clockSupplyStatus=2, supplyTimes="-1" | 不可补卡 |
clockInTimeSlot 格式:
"clockInTimeSlot": [
{
"startTime": "08:00",
"endTime": "22:00",
"ifDel": 2,
"randomDecimal": 1234567890
}
]
打卡 JSON 完整示例(每天打卡 8:00-22:00,允许补卡):
"fmClockIn": {
"clockFrequencyType": 3,
"clockFrequencyName": "每天",
"clockFrequency": "0,1,2,3,4,5,6",
"beginTime": "08:00",
"endTime": "22:00",
"checkSwitch": 1,
"checkTimes": 0,
"clockMaxSwitch": 2,
"clockMaxNum": 1,
"multiPeriodSwitch": 2,
"clockLocationStatus": 2,
"clockLocationInfo": "",
"clockRange": "",
"clockRemindStatus": 1,
"remindTime": "10:00",
"clockSupplyStatus": 1,
"clockSupplyType": -1,
"supplyTimes": "-1",
"customDate": "",
"dayOfDate": "",
"timeOfDay": "",
"clockInTimeSlot": [
{
"startTime": "08:00",
"endTime": "22:00",
"ifDel": 2,
"randomDecimal": 1234567890
}
]
}
打卡 JSON 示例(自定义周几打卡,周一三五):
"fmClockIn": {
"clockFrequencyType": 6,
"clockFrequencyName": "自定义周几打卡",
"clockFrequency": "0,2,4",
"beginTime": "09:00",
"endTime": "18:00",
"checkSwitch": 1,
"checkTimes": 0,
"clockMaxSwitch": 2,
"clockMaxNum": 1,
"multiPeriodSwitch": 2,
"clockLocationStatus": 2,
"clockLocationInfo": "",
"clockRange": "",
"clockRemindStatus": 1,
"remindTime": "10:00",
"clockSupplyStatus": 1,
"clockSupplyType": -1,
"supplyTimes": "-1",
"customDate": "",
"dayOfDate": "",
"timeOfDay": "",
"clockInTimeSlot": [
{
"startTime": "09:00",
"endTime": "18:00",
"ifDel": 2,
"randomDecimal": 1234567890
}
]
}
打卡 JSON 示例(每月最后一天打卡):
"fmClockIn": {
"clockFrequencyType": 1,
"clockFrequencyName": "每月",
"clockFrequency": "0,1,2,3,4,5,6",
"beginTime": "00:00",
"endTime": "23:59",
"checkSwitch": 1,
"checkTimes": 0,
"clockMaxSwitch": 2,
"clockMaxNum": 1,
"multiPeriodSwitch": 2,
"clockLocationStatus": 2,
"clockLocationInfo": "",
"clockRange": "",
"clockRemindStatus": 1,
"remindTime": "10:00",
"clockSupplyStatus": 1,
"clockSupplyType": -1,
"supplyTimes": "-1",
"customDate": "",
"dayOfDate": "31",
"timeOfDay": "20:00",
"clockInTimeSlot": [
{
"startTime": "00:00",
"endTime": "23:59",
"ifDel": 2,
"randomDecimal": 1234567890
}
]
}
打卡 JSON 示例(自定义日期打卡,指定某几天):
"fmClockIn": {
"clockFrequencyType": 7,
"clockFrequencyName": "自定义日期",
"clockFrequency": "0,1,2,3,4,5,6",
"beginTime": "00:00",
"endTime": "23:59",
"checkSwitch": 1,
"checkTimes": 0,
"clockMaxSwitch": 2,
"clockMaxNum": 1,
"multiPeriodSwitch": 2,
"clockLocationStatus": 2,
"clockLocationInfo": "",
"clockRange": "",
"clockRemindStatus": 1,
"remindTime": "10:00",
"clockSupplyStatus": 1,
"clockSupplyType": -1,
"supplyTimes": "-1",
"customDate": "2026-06-01,2026-06-15,2026-06-30",
"dayOfDate": "",
"timeOfDay": "",
"clockInTimeSlot": [
{
"startTime": "00:00",
"endTime": "23:59",
"ifDel": 2,
"randomDecimal": 1234567890
}
]
}
打卡 JSON 示例(一次性打卡):
"fmClockIn": {
"clockFrequencyType": 8,
"clockFrequencyName": "一次性",
"clockFrequency": "0,1,2,3,4,5,6",
"beginTime": "00:00",
"endTime": "23:59",
"checkSwitch": 1,
"checkTimes": 0,
"clockMaxSwitch": 2,
"clockMaxNum": 1,
"multiPeriodSwitch": 2,
"clockLocationStatus": 2,
"clockLocationInfo": "",
"clockRange": "",
"clockRemindStatus": 1,
"remindTime": "10:00",
"clockSupplyStatus": 2,
"clockSupplyType": -1,
"supplyTimes": "-1",
"customDate": "",
"dayOfDate": "",
"timeOfDay": "",
"clockInTimeSlot": [
{
"startTime": "00:00",
"endTime": "23:59",
"ifDel": 2,
"randomDecimal": 1234567890
}
]
}
用户说"创建签售会报名,需要填姓名、是否携带购书凭证(是/否),成人票50元库存100,一周时间":
%TEMP%\jielong_activity.json:{
"name": "签售会报名",
"activityType": 101,
"activityMode": 1,
"activityBigType": 1,
"beginTime": "2026-05-30 00:00:00",
"endTime": "2026-06-06 23:59:59",
"generalCheckTimes": 0,
"confirmWord": "立即报名",
"createSource": 4,
"paymentSwitch": 1,
"rebateSwitch": 0,
"verificationSwitch": 1,
"is_it_over": 1, "signStatus": 1, "signInfoStatus": 1, "copyStatus": 1,
"shareStatus": 1, "multipleActivitiesStatus": 1, "removeSignStatus": 4,
"updateSignInfo": 1, "userIfDel": 2, "adminIfDel": 2, "isTemplate": 2,
"commentStatus": 2, "giftStatus": 2,
"projectVos": [],
"goods": [],
"modular": [],
"signList": [
{
"signListName": "报名信息",
"signField": [
{"fieldName": "姓名", "type": 1, "isRequired": 1, "sort": 0},
{"fieldName": "是否携带购书凭证", "type": 2, "isRequired": 1, "sort": 1,
"content": "[{\"value\":\"是\",\"maxNum\":-1},{\"value\":\"否\",\"maxNum\":-1}]"}
]
}
],
"fmActivityChargeItemVOS": [
{"itemName": "成人票", "unitPrice": 50.0, "stock": 100, "remainingStock": 100, "minBuyNum": 1, "maxBuyNum": 10}
]
}
jielong create --file "%TEMP%\jielong_activity.json"
jielong get 活动ID
jielong list
jielong list -t 2 # 我参加的
jielong list --status 1 # 进行中
jielong list -p 2 -s 20 # 第2页,每页20条
| 参数 | 说明 |
|---|---|
-t 1 | 我创建的(默认) |
-t 2 | 我参加的 |
--status 1 | 进行中 |
--status 2 | 已结束 |
--status 3 | 未开始 |
jielong signups 活动ID
jielong signups 活动ID -p 2 -s 20
⚠️ 关键流程:确定活动ID
用户说"修改活动"、"改一下时间"、"加个填表项"时,必须先确定要修改哪个活动。按以下顺序判断:
- 用户直接说了活动ID(如"修改活动45480")→ 直接用这个ID
- 用户说了活动名称但没有ID(如"把周末聚餐的活动改一下")→ 执行
jielong list查看活动列表,找到名称匹配的活动ID,然后告诉用户并确认- 用户什么都没说(如"帮我改一下活动")→ 执行
jielong list显示活动列表,让用户选- 同一次对话中之前已经创建/查看过某个活动 → 可以直接用那个活动ID,但最好跟用户确认一下
绝对不能凭猜测使用活动ID!必须从
jielong list的输出中获取。
jielong update 活动ID -n "新名称"
jielong update 活动ID -b "2026-06-01 00:00:00" -e "2026-06-30 23:59:59"
jielong update 活动ID -c "新的活动描述"
jielong update 活动ID -n "新名称" -b "2026-06-01 00:00:00" -e "2026-06-30 23:59:59" -c "新描述"
| 参数 | 说明 |
|---|---|
-n | 修改活动名称 |
-b | 修改开始时间 |
-e | 修改结束时间 |
-c | 修改活动描述 |
可以同时修改多个属性,也可以只修改其中一个。
示例:
# 只改名称
jielong update 45480 -n "周末聚餐(第二期)"
# 只改时间
jielong update 45480 -b "2026-06-10 00:00:00" -e "2026-06-15 23:59:59"
# 改名称+时间+描述
jielong update 45480 -n "周末聚餐" -b "2026-06-10 00:00:00" -e "2026-06-15 23:59:59" -c "请大家准时参加"
jielong delete 活动ID
注意:删除操作不可恢复,执行前必须向用户确认!
jielong redo
jielong redo -n "新的活动名称"
jielong whoami
查看、添加、删除、修改活动的填表项。
确定活动ID:如果用户没有提供活动ID,先执行
jielong list查看活动列表找到对应的活动。
jielong fields 活动ID
会列出所有填表项的序号、名称、类型、是否必填,以及单选/多选的选项。
jielong fields 活动ID --add "字段名:类型"
jielong fields 活动ID --add "字段名:类型:选项1,选项2"
jielong fields 活动ID --add "备注:多行文本" --optional
格式:"字段名:类型" 或 "字段名:类型:选项1,选项2"
类型对照:
| 类型名 | 类型值 | 说明 | 是否需要选项 |
|---|---|---|---|
| 文本 | 1 | 普通输入框 | 否 |
| 单选 | 2 | 单选按钮 | 是 |
| 日期 | 3 | 日期选择器 | 否 |
| 多选 | 4 | 多选按钮 | 是 |
| 图片 | 5 | 图片上传 | 否 |
| 多行文本 | 9 | 多行输入框 | 否 |
| 身份证 | 10 | 身份证号 | 否 |
| 手机号 | 11 | 手机号输入 | 否 |
| 数量 | 13 | 数字输入 | 否 |
参数:
--optional:设为选填(默认是必填)示例:
# 添加文本字段(必填)
jielong fields 45480 --add "姓名:文本"
# 添加单选字段(带选项)
jielong fields 45480 --add "是否参加:单选:是,否"
# 添加多选字段
jielong fields 45480 --add "兴趣爱好:多选:篮球,足球,游泳,跑步"
# 添加选填字段
jielong fields 45480 --add "备注:多行文本" --optional
# 添加手机号字段
jielong fields 45480 --add "联系电话:手机号"
jielong fields 活动ID --remove 序号
先用 jielong fields 活动ID 查看当前填表项获取序号,然后删除。
示例:
# 先查看
jielong fields 45480
# 输出: 1. 姓名 [文本] 2. 手机号 [手机号] 3. 备注 [多行文本]
# 删除第2个(手机号)
jielong fields 45480 --remove 2
jielong fields 活动ID --remove 序号 --rename "新名称"
注意:用 --remove 指定要修改的序号,用 --rename 指定新名称。两个参数必须同时使用。
示例:
# 把第1个字段从"姓名"改为"参与者姓名"
jielong fields 45480 --remove 1 --rename "参与者姓名"
jielong fields 活动ID --file signlist.json
jielong fields 活动ID -F signlist.json
先用 write_file 生成 JSON 文件,然后用 -F 参数替换。
JSON 文件格式(是一个数组,包含分组):
[
{
"signListName": "报名信息",
"signField": [
{"fieldName": "姓名", "type": 1, "isRequired": 1, "sort": 0},
{"fieldName": "是否参加", "type": 2, "isRequired": 1, "sort": 1, "content": "[{\"value\":\"是\",\"maxNum\":-1},{\"value\":\"否\",\"maxNum\":-1}]"},
{"fieldName": "备注", "type": 9, "isRequired": 0, "sort": 2}
]
}
]
确定活动ID:如果用户没有提供活动ID,先执行
jielong list查看活动列表找到对应的活动。
jielong stop 活动ID
jielong stop 活动ID --confirm
将正在进行中的活动提前结束。会显示活动名称和当前状态,需要确认后才执行。
--confirm 可跳过确认提示jielong start 活动ID
jielong start 活动ID --confirm
将"未开始"的活动立即改为"进行中"。
restart 命令--confirm 可跳过确认提示jielong restart 活动ID
jielong restart 活动ID -b "2026-06-01 00:00:00" -e "2026-06-30 23:59:59"
jielong restart 活动ID -b "2026-06-01 00:00:00" -e "2026-06-30 23:59:59" --confirm
重启一个已结束的活动,可以指定新的时间范围。
| 参数 | 说明 |
|---|---|
-b | 新的开始时间(不指定则使用原时间) |
-e | 新的结束时间(不指定则使用原时间) |
--confirm | 跳过确认提示 |
示例:
# 用原来的时间重启
jielong restart 45480
# 重启并设置新的时间范围
jielong restart 45480 -b "2026-06-01 00:00:00" -e "2026-06-30 23:59:59"
jielong copy 源活动ID
jielong copy 源活动ID -n "新活动名称"
jielong copy 源活动ID -n "新名称" --with-signlist=false
从已有活动复制配置(类型、时间、填表项)创建一个新的活动。
| 参数 | 说明 |
|---|---|
-n | 新活动名称(不指定则默认用源活动名称) |
--with-signlist | 是否复制填表项(默认 true) |
--with-clockin | 是否复制打卡配置(默认 true,仅打卡活动) |
注意:copy 命令需要交互式确认。AI 环境中使用时无法交互确认,请用以下替代方案:
先用 jielong get 源活动ID 获取配置,再用 jielong create 创建新活动。
确定活动ID:如果用户没有提供活动ID,先执行
jielong list查看活动列表找到对应的活动。
jielong sign 活动ID
不传 --field 参数时,会列出活动的所有填表项及其类型、是否必填、选项列表,方便确认后报名。
jielong sign 活动ID --field "姓名:张三" --field "常用电话:13800138000"
jielong sign 活动ID --field "姓名:李四" --field "今晚吃什么:火锅"
jielong sign 活动ID --field "姓名:王五" --field "喜欢什么花:牡丹,茉莉"
| 用法 | 说明 |
|---|---|
--field "字段名=值" | 填写一个字段,Windows 下用 = 分隔 |
--field "字段名:值" | 填写一个字段,兼容冒号分隔 |
| 多选用逗号分隔 | --field "喜欢什么花:牡丹,茉莉" |
| 不提供图片字段 | 图片字段会自动留空(CLI 无法上传图片) |
字段名必须与活动的填表项名称完全匹配。如果不确定字段名,先执行 jielong sign 活动ID 查看。
# 查看活动45522的填表项
jielong sign 45522
# 报名(填写文本和手机号)
jielong sign 45522 --field "姓名=张三" --field "常用电话=13800138000"
# 报名(含单选:今晚吃什么=火锅)
jielong sign 45522 --field "姓名=张三" --field "今晚吃什么=火锅"
# 报名(含多选:喜欢什么花=牡丹和茉莉)
jielong sign 45522 --field "姓名=张三" --field "喜欢什么花=牡丹,茉莉"
# 报名(含数量字段)
jielong sign 45522 --field "姓名=张三" --field "购买数量=3"
--field 提供的字段值为空字符串确定活动ID:如果用户没有提供活动ID,先执行
jielong list查看活动列表找到对应的活动。
jielong sign-del 活动ID 订单ID
jielong sign-del 活动ID 订单ID --confirm
先用 jielong signups 活动ID 查看报名列表,每条记录前会显示 [订单ID],获取订单ID后再删除。
--confirm 可跳过确认提示示例:
# 第一步:查看报名列表,获取订单ID
jielong signups 45480
# 输出: [订单1001] 张三 姓名:张三 手机号:131xxxx
# [订单1002] 李四 姓名:李四 手机号:132xxxx
# 第二步:删除指定订单
jielong sign-del 45480 1001 --confirm
jielong sign-clear 活动ID
jielong sign-clear 活动ID --confirm
清空一个活动的所有报名记录。
--confirm 可跳过确认提示示例:
jielong sign-clear 45480 --confirm
⚠️ 重要:
jielong edit是交互式命令,需要逐步输入修改内容,AI 环境无法使用交互式终端。AI 环境中如需修改活动,请用以下两个命令组合替代:
需求 使用的命令 修改活动名称/时间/描述 jielong update 活动ID -n/-b/-e/-c(见第六节)添加/删除/改名填表项 jielong fields 活动ID --add/--remove/--rename(见第十节)替换全部填表项 jielong fields 活动ID -F signlist.json(见第十节)绝对不要执行
jielong edit,它会卡住等待输入!
jielong whoami 检查登录状态(不是检查 OpenClaw 的登录,是检查 jielong CLI 的登录),确认看到昵称和手机号后才能继续。绝对不能跳过这一步。jielong new(交互式命令),始终使用 jielong createjielong edit(交互式命令),用 jielong update + jielong fields 替代jielong copy(需要交互确认),用 jielong get 获取配置 + jielong create 创建替代jielong create -n ... -f ...write_file 生成 JSON + jielong create --filejielong updatejielong fields"yyyy-MM-dd HH:mm:ss"jielong login 扫码paymentSwitch: 1 和 fmActivityChargeItemVOS 数组--confirm 参数用于跳过交互确认,在 AI 环境中建议加上此参数以避免命令卡住--confirm:stop、start、restart、sign-del、sign-clear