@yaoxiu/marketing-dsl 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -68,7 +68,7 @@ import { createRuntime } from '@yaoxiu/marketing-dsl';
68
68
  const runtime = createRuntime(dsl, {
69
69
  user: { shopName: '麦爆了旗舰店', version: '专业版' },
70
70
  sources: { listRenewTiers: params => api.getTiers(params) },
71
- handlers: { setNeverRemind: () => localStorage.setItem('never', '1') },
71
+ handlers: { openRecharge: () => showRechargeModal() },
72
72
  emit: (event, payload) => console.log(event, payload),
73
73
  });
74
74
 
@@ -135,6 +135,34 @@ unsubscribe();
135
135
  | 不能打任意接口 | 数据源用注册名引用,配置里写不了 URL |
136
136
  | 不能调任意方法 | `call` 只能调宿主注册在 `handlers` 里的方法 |
137
137
 
138
+ ## `call` 的适用边界
139
+
140
+ `call` 是「**让宿主去做一件事**」,不是「记一笔账」。
141
+
142
+ | ✅ 该用 `call` | ❌ 不该用 `call` |
143
+ | ---------------------------------------------------------- | --------------------------------------------- |
144
+ | 唤起充值弹窗、打开客服会话、复制到剪贴板、跳转应用内特定页 | 记录用户意图、写本地存储(`localStorage` 等) |
145
+
146
+ 判断标准只有一条:**这件事后端需不需要知道**。
147
+
148
+ - 需要 → 走**上报**:`close` 的 `reason`,或 `track` 动作。
149
+ - 纯粹是宿主的本地动作、后端不关心 → 才用 `call`。
150
+
151
+ 典型反例是「不再提醒」。曾经的写法是 `close` 之外再配一条 `call` 让宿主写 `localStorage`,这是错的:
152
+
153
+ 1. **频控职责分裂**。「这条还要不要出」由后端算,前端存一份频控依据后端看不见,两边依据不一致,规则就是假的。
154
+ 2. **换设备、清缓存就失效**。这是用户的长期意图,该跟着账号走,不该跟着浏览器走。
155
+ 3. **每个宿主各写一份**。`handlers` 由宿主注册,前台一份、调试台一份、将来 Vue3 宿主再一份,行为迟早分叉。
156
+
157
+ 正确写法不需要任何新增代码,`close` 带上 `reason` 即可:
158
+
159
+ ```jsonc
160
+ { "type": "close", "reason": "user-dismiss" }
161
+ ```
162
+
163
+ 上报出去就是 `{ "id": "...", "event": "close", "reason": "user-dismiss" }`,后端看到这个 `reason`
164
+ 就永久压制这条物料。注意这个信息走 **`close` 的 `reason`**,不走 `extra`——`extra` 只属于 `click`。
165
+
138
166
  ## 完整 DSL 语法
139
167
 
140
168
  见调试台的「开发文档」页,或从那里导出 markdown / AI 提示词。
@@ -144,7 +144,11 @@ var actionRows = [
144
144
  ["closeAll", "\u2014", "\u4E0D\u7BA1\u51E0\u5C42\uFF0C\u5168\u90E8\u5173\u6389"],
145
145
  ["setState", "`key`\u3001`value`", "\u6539\u5C40\u90E8\u72B6\u6001\uFF0C\u7528\u6765\u505A\u9009\u4E2D\u5207\u6362"],
146
146
  ["track", "`event`\u3001`params`", "\u57CB\u70B9\u4E0A\u62A5\u3002`event` \u6709\u547D\u540D\u89C4\u8303\uFF0C\u89C1\u4E0B"],
147
- ["call", "`name`\u3001`params`", "\u8C03\u7528\u5BBF\u4E3B\u6CE8\u518C\u7684\u65B9\u6CD5\uFF08\u5982\u9886\u5238\uFF09\uFF0C`name` \u662F\u767D\u540D\u5355"],
147
+ [
148
+ "call",
149
+ "`name`\u3001`params`",
150
+ "\u8BA9\u5BBF\u4E3B\u53BB\u505A\u4E00\u4EF6\u4E8B\uFF08\u5982\u5524\u8D77\u5145\u503C\uFF09\uFF0C`name` \u662F\u767D\u540D\u5355\uFF0C\u8FB9\u754C\u89C1\u4E0B"
151
+ ],
148
152
  ["sequence", "`actions`", "\u4F9D\u6B21\u6267\u884C\u591A\u4E2A\u52A8\u4F5C"]
149
153
  ];
150
154
  var sections = [
@@ -257,12 +261,45 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6`
257
261
  {
258
262
  t: "note",
259
263
  tone: "info",
260
- text: '`close` \u7684 `reason` \u4F1A\u4E00\u8D77\u4F20\u7ED9\u5BBF\u4E3B\uFF0C\u5BBF\u4E3B\u636E\u6B64\u51B3\u5B9A\u540E\u7EED\u884C\u4E3A\u2014\u2014\u6BD4\u5982 `reason: "user-dismiss"` \u65F6\u8BB0\u4F4F\u300C\u4ECA\u5929\u4E0D\u518D\u663E\u793A\u300D\u3002\u4E0D\u5199 `reason` \u9ED8\u8BA4\u662F `action`\u3002'
264
+ text: "`close` \u7684 `reason` \u4F1A\u4E00\u8D77\u4F20\u7ED9\u5BBF\u4E3B\uFF0C\u5BBF\u4E3B\u636E\u6B64\u51B3\u5B9A\u540E\u7EED\u884C\u4E3A\uFF0C\u5E76\u539F\u6837\u4E0A\u62A5\u7ED9\u540E\u7AEF\u3002\u4E0D\u5199 `reason` \u9ED8\u8BA4\u662F `action`\u3002"
265
+ },
266
+ { t: "h3", text: "\u300C\u4E0D\u518D\u63D0\u9192\u300D\u5C31\u5199 close \u7684 reason\uFF0C\u4E0D\u8981\u914D call" },
267
+ {
268
+ t: "p",
269
+ text: "\u60F3\u8BA9\u7269\u6599\u300C\u5173\u4E86\u5C31\u522B\u518D\u51FA\u73B0\u300D\uFF0C\u4E00\u6761 `close` \u5C31\u591F\u4E86\uFF0C\u628A\u7528\u6237\u7684\u610F\u56FE\u5199\u8FDB `reason`\uFF1A"
270
+ },
271
+ {
272
+ t: "code",
273
+ code: `{ "type": "close", "reason": "user-dismiss" }`
274
+ },
275
+ {
276
+ t: "p",
277
+ text: '\u4E0A\u62A5\u51FA\u53BB\u5C31\u662F `{ "id": "...", "event": "close", "reason": "user-dismiss" }`\uFF0C\u540E\u7AEF\u770B\u5230\u8FD9\u4E2A `reason` \u5C31\u6C38\u4E45\u538B\u5236\u8FD9\u6761\u7269\u6599\u3002\u8FD9\u4E2A\u4FE1\u606F\u8D70 `close` \u7684 `reason`\uFF0C\u4E0D\u8D70 `extra`\u2014\u2014`extra` \u53EA\u5C5E\u4E8E `click`\u3002'
261
278
  },
262
279
  {
263
280
  t: "note",
264
281
  tone: "warn",
265
- text: "\u60F3\u8BA9\u5F39\u7A97\u300C\u5173\u4E86\u5C31\u522B\u518D\u51FA\u73B0\u300D\uFF0C\u5149\u9760 `close` \u4E0D\u591F\u2014\u2014\u5B83\u53EA\u7BA1\u8FD9\u4E00\u6B21\u3002\u8981\u914D\u4E00\u6761 `call` \u8BA9\u5BBF\u4E3B\u8BB0\u4E0B\u6765\uFF08\u89C1\u793A\u4F8B \u2461 \u548C \u2464 \u7684\u300C\u4E0D\u518D\u63D0\u9192\u300D\uFF09\u3002"
282
+ text: "**\u4E0D\u8981**\u518D\u914D\u4E00\u6761 `call` \u8BA9\u5BBF\u4E3B\u5199 `localStorage` \u8BB0\u4F4F\u3002\u9891\u63A7\u7531\u540E\u7AEF\u7B97\uFF0C\u524D\u7AEF\u5B58\u4E00\u4EFD\u540E\u7AEF\u770B\u4E0D\u89C1\u7684\u4F9D\u636E\uFF0C\u4E24\u8FB9\u5C31\u5BF9\u4E0D\u4E0A\uFF1B\u800C\u4E14\u6362\u8BBE\u5907\u3001\u6E05\u7F13\u5B58\u5C31\u5931\u6548\u2014\u2014\u7528\u6237\u7684\u957F\u671F\u610F\u56FE\u8BE5\u8DDF\u7740\u8D26\u53F7\u8D70\uFF0C\u4E0D\u8BE5\u8DDF\u7740\u6D4F\u89C8\u5668\u8D70\uFF1B`call` \u7684\u65B9\u6CD5\u8FD8\u662F\u5404\u4E2A\u5BBF\u4E3B\u5404\u6CE8\u518C\u4E00\u4EFD\u7684\uFF0C\u884C\u4E3A\u8FDF\u65E9\u5206\u53C9\u3002"
283
+ },
284
+ { t: "h3", text: "call \u7684\u9002\u7528\u8FB9\u754C" },
285
+ {
286
+ t: "p",
287
+ text: "`call` \u662F\u300C**\u8BA9\u5BBF\u4E3B\u53BB\u505A\u4E00\u4EF6\u4E8B**\u300D\uFF0C\u4E0D\u662F\u300C\u8BB0\u4E00\u7B14\u8D26\u300D\u3002"
288
+ },
289
+ {
290
+ t: "table",
291
+ head: ["\u2705 \u8BE5\u7528 call", "\u274C \u4E0D\u8BE5\u7528 call"],
292
+ rows: [
293
+ [
294
+ "\u5524\u8D77\u5145\u503C\u5F39\u7A97\u3001\u6253\u5F00\u5BA2\u670D\u4F1A\u8BDD\u3001\u590D\u5236\u5230\u526A\u8D34\u677F\u3001\u8DF3\u8F6C\u5E94\u7528\u5185\u7279\u5B9A\u9875\u9762",
295
+ "\u8BB0\u5F55\u7528\u6237\u610F\u56FE\u3001\u5199\u672C\u5730\u5B58\u50A8"
296
+ ]
297
+ ]
298
+ },
299
+ {
300
+ t: "note",
301
+ tone: "info",
302
+ text: "\u5224\u65AD\u6807\u51C6\u53EA\u6709\u4E00\u6761\uFF1A**\u8FD9\u4EF6\u4E8B\u540E\u7AEF\u9700\u4E0D\u9700\u8981\u77E5\u9053**\u3002\u9700\u8981 \u2192 \u8D70\u4E0A\u62A5\uFF08`close` \u7684 `reason`\uFF0C\u6216 `track`\uFF09\uFF1B\u7EAF\u7CB9\u662F\u5BBF\u4E3B\u7684\u672C\u5730\u52A8\u4F5C\u3001\u540E\u7AEF\u4E0D\u5173\u5FC3 \u2192 \u624D\u7528 `call`\u3002"
266
303
  },
267
304
  { t: "h3", text: "\u66DD\u5149\u548C\u5173\u95ED\u4E5F\u8981\u57CB\u70B9\uFF1Astage.onShow / stage.onClose" },
268
305
  {
@@ -289,7 +326,7 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6`
289
326
  ["`close-button`", "\u70B9\u4E86\u5173\u95ED\u6309\u94AE"],
290
327
  ["`mask`", "\u70B9\u4E86\u906E\u7F69\uFF08\u9700\u8981 `maskClosable: true`\uFF09"],
291
328
  ["`replace`", "\u88AB `open` \u7684 `replace` \u6A21\u5F0F\u9876\u6389"],
292
- ["\u81EA\u5B9A\u4E49\u503C", '`close` \u52A8\u4F5C\u91CC\u81EA\u5DF1\u5199\u7684 `reason`\uFF0C\u5982 `"never-remind"`'],
329
+ ["\u81EA\u5B9A\u4E49\u503C", '`close` \u52A8\u4F5C\u91CC\u81EA\u5DF1\u5199\u7684 `reason`\uFF0C\u5982 `"user-dismiss"`'],
293
330
  ["`action`", "`close` \u52A8\u4F5C\u6CA1\u5199 `reason` \u65F6\u7684\u9ED8\u8BA4\u503C"]
294
331
  ]
295
332
  },
@@ -310,14 +347,13 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6`
310
347
  "textAlign": "center", "lineHeight": 22, "cursor": "pointer" },
311
348
  "action": { "type": "sequence", "actions": [
312
349
  { "type": "track", "event": "notice_close" },
313
- { "type": "call", "name": "setNeverRemind" }, // \u8BB0\u4F4F\u522B\u518D\u51FA
314
- { "type": "close", "reason": "user-dismiss" }
350
+ { "type": "close", "reason": "user-dismiss" } // reason \u4E0A\u62A5\u7ED9\u540E\u7AEF\uFF0C\u636E\u6B64\u4E0D\u518D\u4E0B\u53D1
315
351
  ] } }`
316
352
  },
317
353
  {
318
354
  t: "note",
319
355
  tone: "info",
320
- text: "`close` \u53EA\u662F\u901A\u77E5\u5BBF\u4E3B\u300C\u7528\u6237\u5173\u6389\u4E86\u300D\uFF0C**\u5173\u6389\u4E4B\u540E\u8981\u4E0D\u8981\u518D\u51FA\u3001\u9694\u591A\u4E45\u518D\u51FA\u7531\u5BBF\u4E3B\u51B3\u5B9A**\u3002\u60F3\u8BA9\u5B83\u522B\u518D\u51FA\u73B0\uFF0C\u914D\u4E00\u6761 `call` \u8BA9\u5BBF\u4E3B\u8BB0\u4E0B\u6765\u3002"
356
+ text: '`close` \u53EA\u662F\u901A\u77E5\u5BBF\u4E3B\u300C\u7528\u6237\u5173\u6389\u4E86\u300D\uFF0C**\u8FD9\u4E00\u6B21\u5173\u4E0D\u5173\u7531\u5BBF\u4E3B\u51B3\u5B9A**\uFF1B\u800C\u300C\u4EE5\u540E\u8FD8\u51FA\u4E0D\u51FA\u300D\u7531\u540E\u7AEF\u6839\u636E\u4E0A\u62A5\u7684 `reason` \u51B3\u5B9A\uFF0C\u6240\u4EE5\u60F3\u8BA9\u5B83\u522B\u518D\u51FA\u73B0\uFF0C\u5199 `reason: "user-dismiss"` \u5373\u53EF\uFF0C\u4E0D\u9700\u8981\u518D\u914D `call`\u3002'
321
357
  },
322
358
  {
323
359
  t: "note",
@@ -2301,13 +2337,7 @@ var noticeToPopup = {
2301
2337
  fontSize: 13,
2302
2338
  cursor: "pointer"
2303
2339
  },
2304
- action: {
2305
- type: "sequence",
2306
- actions: [
2307
- { type: "call", name: "setNeverRemind" },
2308
- { type: "close", reason: "user-dismiss" }
2309
- ]
2310
- }
2340
+ action: { type: "close", reason: "user-dismiss" }
2311
2341
  }
2312
2342
  ]
2313
2343
  }
@@ -2673,13 +2703,13 @@ var confirmAndSwitch = {
2673
2703
  background: ORANGE3,
2674
2704
  cursor: "pointer"
2675
2705
  },
2676
- // 确认后整个关掉,两层一起消失
2706
+ // 确认后整个关掉,两层一起消失。
2707
+ // 「不再提醒」的意图靠 reason 上报给后端,不配 call 写本地存储
2677
2708
  action: {
2678
2709
  type: "sequence",
2679
2710
  actions: [
2680
2711
  { type: "track", event: "popup_never_remind_confirm" },
2681
- { type: "call", name: "setNeverRemind" },
2682
- { type: "closeAll" }
2712
+ { type: "closeAll", reason: "user-dismiss" }
2683
2713
  ]
2684
2714
  },
2685
2715
  children: [
@@ -2993,13 +3023,8 @@ var imageBanner = {
2993
3023
  fontSize: 13,
2994
3024
  cursor: "pointer"
2995
3025
  },
2996
- action: {
2997
- type: "sequence",
2998
- actions: [
2999
- { type: "call", name: "setNeverRemind" },
3000
- { type: "close", reason: "user-dismiss" }
3001
- ]
3002
- }
3026
+ // 「不再提醒」写在 close 的 reason 上,上报给后端即可,不配 call 写本地存储
3027
+ action: { type: "close", reason: "user-dismiss" }
3003
3028
  }
3004
3029
  ]
3005
3030
  }
@@ -3130,16 +3155,11 @@ var imageHotspot = {
3130
3155
  {
3131
3156
  id: "hotspot-never",
3132
3157
  type: "box",
3133
- // 最底部「不再提醒」,动作是关弹窗而不是跳转
3158
+ // 最底部「不再提醒」,动作是关弹窗而不是跳转。
3159
+ // reason 上报给后端,后端据此不再下发这条物料——不需要写本地存储
3134
3160
  rect: ["30%", 478, "40%", 26],
3135
3161
  style: { radius: 13, background: HOTSPOT_BG, cursor: "pointer" },
3136
- action: {
3137
- type: "sequence",
3138
- actions: [
3139
- { type: "call", name: "setNeverRemind" },
3140
- { type: "close", reason: "never-remind" }
3141
- ]
3142
- }
3162
+ action: { type: "close", reason: "user-dismiss" }
3143
3163
  }
3144
3164
  ]
3145
3165
  };
@@ -3217,7 +3237,6 @@ var noticeBar = {
3217
3237
  type: "sequence",
3218
3238
  actions: [
3219
3239
  { type: "track", event: "notice_close", params: { notice: "guide" } },
3220
- { type: "call", name: "setNeverRemind" },
3221
3240
  { type: "close", reason: "user-dismiss" }
3222
3241
  ]
3223
3242
  }
@@ -3417,6 +3436,7 @@ function checklistSection() {
3417
3436
  \u6709\u4E00\u4E2A\u4E0D\u5408\u89C4\uFF0C\u6574\u4EFD\u914D\u7F6E\u5C31\u5B58\u4E0D\u4E0A
3418
3437
  - [ ] \u6BCF\u4E2A\u89C6\u56FE\u7684 \`stage\` \u90FD\u6709 \`onShow\` \u66DD\u5149\u57CB\u70B9\u548C \`onClose\` \u5173\u95ED\u57CB\u70B9\uFF0C\`onClose\` \u7684 params \u91CC\u5E26\u4E0A \`"reason": "{{ closeReason }}"\`
3419
3438
  - [ ] \u5173\u95ED\u6309\u94AE\u6CA1\u6709\u591A\u4F59\u7684 \`icon\`\uFF08\u9ED8\u8BA4\u7684\u5185\u7F6E\u77E2\u91CF\u56FE\u6807\u5C31\u662F\u5BF9\u7684\uFF09
3439
+ - [ ] \u6CA1\u6709\u7528 \`call\` \u53BB\u8BB0\u5F55\u7528\u6237\u610F\u56FE\u6216\u5199\u672C\u5730\u5B58\u50A8\uFF08\`call\` \u53EA\u7528\u6765\u8BA9\u5BBF\u4E3B\u505A\u4E00\u4EF6\u4E8B\uFF0C\u5982\u5524\u8D77\u5145\u503C / \u6253\u5F00\u5BA2\u670D / \u590D\u5236\u5230\u526A\u8D34\u677F\uFF09\u3002\u300C\u4E0D\u518D\u63D0\u9192\u300D\u5199\u6210 \`{ "type": "close", "reason": "user-dismiss" }\`\uFF0C\u4E0D\u914D \`call\`
3420
3440
  - [ ] \u8F93\u51FA\u7684\u662F\u5408\u6CD5 JSON\uFF08\u6CA1\u6709\u591A\u4F59\u9017\u53F7\u3001\u6CA1\u6709\u6CE8\u91CA\uFF09`;
3421
3441
  }
3422
3442
  function requirementSection() {
@@ -3454,7 +3474,8 @@ function actionSection() {
3454
3474
  - \`setState\`\uFF1A\`{ "type": "setState", "key": "period", "value": "{{ index }}" }\` \u505A\u9009\u4E2D\u5207\u6362
3455
3475
  - \`close\`\uFF1A\u5173\u6389\u5F53\u524D\u8FD9\u4E00\u5C42\uFF08\u53EA\u6709\u4E00\u5C42\u65F6\u5C31\u662F\u6574\u4F53\u5173\u95ED\uFF09\u3002\u6CE8\u610F\u5B83\u53EA\u662F**\u901A\u77E5\u5BBF\u4E3B\u9875\u9762**\u300C\u7528\u6237\u60F3\u5173\u4E86\u300D\uFF0C\u7531\u5BBF\u4E3B\u51B3\u5B9A\u5173\u4E0D\u5173\uFF1B\u591A\u89C6\u56FE\u65F6\u5173\u5185\u5C42\u4E0D\u4F1A\u901A\u77E5\u5BBF\u4E3B\uFF0C\u53EA\u662F\u56DE\u5230\u4E0B\u9762\u90A3\u5C42
3456
3476
  - \`closeAll\`\uFF1A\u51E0\u5C42\u90FD\u5173\u6389\uFF0C\u4E00\u5B9A\u4F1A\u901A\u77E5\u5BBF\u4E3B
3457
- - \u60F3\u300C\u5173\u4E86\u5C31\u522B\u518D\u51FA\u73B0\u300D\uFF0C\u5149 \`close\` \u4E0D\u591F\uFF0C\u8981\u518D\u914D\u4E00\u6761 \`{ "type": "call", "name": "setNeverRemind" }\` \u8BA9\u5BBF\u4E3B\u8BB0\u4E0B\u6765
3477
+ - \u60F3\u300C\u5173\u4E86\u5C31\u522B\u518D\u51FA\u73B0\u300D\uFF0C\u5C31\u5199 \`{ "type": "close", "reason": "user-dismiss" }\`\u3002\u4E0A\u62A5\u51FA\u53BB\u662F \`{ "event": "close", "reason": "user-dismiss" }\`\uFF0C\u540E\u7AEF\u636E\u6B64\u6C38\u4E45\u538B\u5236\u8FD9\u6761\u7269\u6599\u3002**\u4E0D\u8981**\u518D\u914D \`call\` \u8BA9\u5BBF\u4E3B\u5199\u672C\u5730\u5B58\u50A8\u2014\u2014\u9891\u63A7\u7531\u540E\u7AEF\u7B97\uFF0C\u524D\u7AEF\u5B58\u7684\u4F9D\u636E\u540E\u7AEF\u770B\u4E0D\u89C1\uFF0C\u800C\u4E14\u6362\u8BBE\u5907\u3001\u6E05\u7F13\u5B58\u5C31\u6CA1\u4E86
3478
+ - \`call\`\uFF1A**\u8BA9\u5BBF\u4E3B\u53BB\u505A\u4E00\u4EF6\u4E8B**\uFF08\u5524\u8D77\u5145\u503C\u5F39\u7A97\u3001\u6253\u5F00\u5BA2\u670D\u4F1A\u8BDD\u3001\u590D\u5236\u5230\u526A\u8D34\u677F\u3001\u8DF3\u8F6C\u5E94\u7528\u5185\u7279\u5B9A\u9875\u9762\uFF09\u3002\u5224\u65AD\u6807\u51C6\uFF1A**\u8FD9\u4EF6\u4E8B\u540E\u7AEF\u9700\u4E0D\u9700\u8981\u77E5\u9053**\u2014\u2014\u9700\u8981\u5C31\u8D70\u4E0A\u62A5\uFF08\`close\` \u7684 \`reason\` \u6216 \`track\`\uFF09\uFF0C\u7EAF\u672C\u5730\u52A8\u4F5C\u624D\u7528 \`call\`\u3002\u7EDD\u4E0D\u7528 \`call\` \u8BB0\u5F55\u7528\u6237\u610F\u56FE\u6216\u5199\u672C\u5730\u5B58\u50A8
3458
3479
  - \`open\`\uFF1A\u6253\u5F00\u53E6\u4E00\u4E2A\u89C6\u56FE\uFF0C\u89C1\u4E0B\u4E00\u8282
3459
3480
  - \u4EFB\u4F55\u8282\u70B9\u52A0 \`action\` \u90FD\u80FD\u70B9\u51FB
3460
3481
  - **\u6BCF\u4E2A\u53EF\u70B9\u51FB\u5143\u7D20\u90FD\u5E94\u8BE5\u914D \`track\`**\uFF0C\u5426\u5219\u6CA1\u6709\u6570\u636E\u53EF\u770B
@@ -3504,7 +3525,7 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6
3504
3525
 
3505
3526
  - \`onShow\` \u5728\u6570\u636E\u5C31\u7EEA\u3001\u5F39\u7A97\u771F\u6B63\u6E32\u67D3\u51FA\u6765\u65F6\u89E6\u53D1\u4E00\u6B21
3506
3527
  - \`onClose\` \u5728\u70B9 X\u3001\u70B9\u906E\u7F69\u3001\u8D70 \`close\` \u52A8\u4F5C\u3001\u88AB \`replace\` \u9876\u6389\u65F6\u90FD\u4F1A\u89E6\u53D1
3507
- - \`{{ closeReason }}\` \u53D6\u503C\uFF1A\`close-button\` / \`mask\` / \`replace\` / \`close\` \u52A8\u4F5C\u81EA\u5E26\u7684 \`reason\`\uFF08\u5982 \`"never-remind"\`\uFF09/ \u9ED8\u8BA4 \`action\`
3528
+ - \`{{ closeReason }}\` \u53D6\u503C\uFF1A\`close-button\` / \`mask\` / \`replace\` / \`close\` \u52A8\u4F5C\u81EA\u5E26\u7684 \`reason\`\uFF08\u5982 \`"user-dismiss"\`\uFF09/ \u9ED8\u8BA4 \`action\`
3508
3529
  - \u591A\u89C6\u56FE\u65F6\u6BCF\u5C42\u5404\u5199\u5404\u7684\uFF0C\u624D\u80FD\u5206\u5F00\u7EDF\u8BA1
3509
3530
 
3510
3531
  ## \u516C\u544A\u6761 / Banner \u7684\u5173\u95ED
@@ -3517,12 +3538,11 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6
3517
3538
  "textAlign": "center", "lineHeight": 22, "cursor": "pointer" },
3518
3539
  "action": { "type": "sequence", "actions": [
3519
3540
  { "type": "track", "event": "notice_guide_close" },
3520
- { "type": "call", "name": "setNeverRemind" },
3521
3541
  { "type": "close", "reason": "user-dismiss" }
3522
3542
  ] } }
3523
3543
  \`\`\`
3524
3544
 
3525
- \`close\` \u53EA\u901A\u77E5\u5BBF\u4E3B\u300C\u7528\u6237\u5173\u6389\u4E86\u300D\uFF0C\u8981\u8BA9\u5B83\u522B\u518D\u51FA\u73B0\u5F97\u914D\u4E00\u6761 \`call\`\u3002
3545
+ \`close\` \u53EA\u901A\u77E5\u5BBF\u4E3B\u300C\u8FD9\u4E00\u6B21\u5173\u4E0D\u5173\u300D\uFF1B\u300C\u4EE5\u540E\u8FD8\u51FA\u4E0D\u51FA\u300D\u7531\u540E\u7AEF\u6309\u4E0A\u62A5\u7684 \`reason\` \u51B3\u5B9A\uFF0C\u6240\u4EE5 \`reason: "user-dismiss"\` \u5C31\u591F\u4E86\uFF0C\u4E0D\u8981\u518D\u914D \`call\`\u3002
3526
3546
  \u6574\u6761\u53EF\u70B9 + \u884C\u672B \xD7 \u4E0D\u4F1A\u51B2\u7A81\uFF1A\u5185\u5C42\u6709\u81EA\u5DF1\u7684 \`action\` \u5C31\u4E0D\u518D\u5192\u6CE1\u7ED9\u5916\u5C42\u3002`;
3527
3547
  }
3528
3548
  function viewsSection() {
@@ -47,7 +47,11 @@ var actionRows = [
47
47
  ["closeAll", "\u2014", "\u4E0D\u7BA1\u51E0\u5C42\uFF0C\u5168\u90E8\u5173\u6389"],
48
48
  ["setState", "`key`\u3001`value`", "\u6539\u5C40\u90E8\u72B6\u6001\uFF0C\u7528\u6765\u505A\u9009\u4E2D\u5207\u6362"],
49
49
  ["track", "`event`\u3001`params`", "\u57CB\u70B9\u4E0A\u62A5\u3002`event` \u6709\u547D\u540D\u89C4\u8303\uFF0C\u89C1\u4E0B"],
50
- ["call", "`name`\u3001`params`", "\u8C03\u7528\u5BBF\u4E3B\u6CE8\u518C\u7684\u65B9\u6CD5\uFF08\u5982\u9886\u5238\uFF09\uFF0C`name` \u662F\u767D\u540D\u5355"],
50
+ [
51
+ "call",
52
+ "`name`\u3001`params`",
53
+ "\u8BA9\u5BBF\u4E3B\u53BB\u505A\u4E00\u4EF6\u4E8B\uFF08\u5982\u5524\u8D77\u5145\u503C\uFF09\uFF0C`name` \u662F\u767D\u540D\u5355\uFF0C\u8FB9\u754C\u89C1\u4E0B"
54
+ ],
51
55
  ["sequence", "`actions`", "\u4F9D\u6B21\u6267\u884C\u591A\u4E2A\u52A8\u4F5C"]
52
56
  ];
53
57
  var sections = [
@@ -160,12 +164,45 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6`
160
164
  {
161
165
  t: "note",
162
166
  tone: "info",
163
- text: '`close` \u7684 `reason` \u4F1A\u4E00\u8D77\u4F20\u7ED9\u5BBF\u4E3B\uFF0C\u5BBF\u4E3B\u636E\u6B64\u51B3\u5B9A\u540E\u7EED\u884C\u4E3A\u2014\u2014\u6BD4\u5982 `reason: "user-dismiss"` \u65F6\u8BB0\u4F4F\u300C\u4ECA\u5929\u4E0D\u518D\u663E\u793A\u300D\u3002\u4E0D\u5199 `reason` \u9ED8\u8BA4\u662F `action`\u3002'
167
+ text: "`close` \u7684 `reason` \u4F1A\u4E00\u8D77\u4F20\u7ED9\u5BBF\u4E3B\uFF0C\u5BBF\u4E3B\u636E\u6B64\u51B3\u5B9A\u540E\u7EED\u884C\u4E3A\uFF0C\u5E76\u539F\u6837\u4E0A\u62A5\u7ED9\u540E\u7AEF\u3002\u4E0D\u5199 `reason` \u9ED8\u8BA4\u662F `action`\u3002"
168
+ },
169
+ { t: "h3", text: "\u300C\u4E0D\u518D\u63D0\u9192\u300D\u5C31\u5199 close \u7684 reason\uFF0C\u4E0D\u8981\u914D call" },
170
+ {
171
+ t: "p",
172
+ text: "\u60F3\u8BA9\u7269\u6599\u300C\u5173\u4E86\u5C31\u522B\u518D\u51FA\u73B0\u300D\uFF0C\u4E00\u6761 `close` \u5C31\u591F\u4E86\uFF0C\u628A\u7528\u6237\u7684\u610F\u56FE\u5199\u8FDB `reason`\uFF1A"
173
+ },
174
+ {
175
+ t: "code",
176
+ code: `{ "type": "close", "reason": "user-dismiss" }`
177
+ },
178
+ {
179
+ t: "p",
180
+ text: '\u4E0A\u62A5\u51FA\u53BB\u5C31\u662F `{ "id": "...", "event": "close", "reason": "user-dismiss" }`\uFF0C\u540E\u7AEF\u770B\u5230\u8FD9\u4E2A `reason` \u5C31\u6C38\u4E45\u538B\u5236\u8FD9\u6761\u7269\u6599\u3002\u8FD9\u4E2A\u4FE1\u606F\u8D70 `close` \u7684 `reason`\uFF0C\u4E0D\u8D70 `extra`\u2014\u2014`extra` \u53EA\u5C5E\u4E8E `click`\u3002'
164
181
  },
165
182
  {
166
183
  t: "note",
167
184
  tone: "warn",
168
- text: "\u60F3\u8BA9\u5F39\u7A97\u300C\u5173\u4E86\u5C31\u522B\u518D\u51FA\u73B0\u300D\uFF0C\u5149\u9760 `close` \u4E0D\u591F\u2014\u2014\u5B83\u53EA\u7BA1\u8FD9\u4E00\u6B21\u3002\u8981\u914D\u4E00\u6761 `call` \u8BA9\u5BBF\u4E3B\u8BB0\u4E0B\u6765\uFF08\u89C1\u793A\u4F8B \u2461 \u548C \u2464 \u7684\u300C\u4E0D\u518D\u63D0\u9192\u300D\uFF09\u3002"
185
+ text: "**\u4E0D\u8981**\u518D\u914D\u4E00\u6761 `call` \u8BA9\u5BBF\u4E3B\u5199 `localStorage` \u8BB0\u4F4F\u3002\u9891\u63A7\u7531\u540E\u7AEF\u7B97\uFF0C\u524D\u7AEF\u5B58\u4E00\u4EFD\u540E\u7AEF\u770B\u4E0D\u89C1\u7684\u4F9D\u636E\uFF0C\u4E24\u8FB9\u5C31\u5BF9\u4E0D\u4E0A\uFF1B\u800C\u4E14\u6362\u8BBE\u5907\u3001\u6E05\u7F13\u5B58\u5C31\u5931\u6548\u2014\u2014\u7528\u6237\u7684\u957F\u671F\u610F\u56FE\u8BE5\u8DDF\u7740\u8D26\u53F7\u8D70\uFF0C\u4E0D\u8BE5\u8DDF\u7740\u6D4F\u89C8\u5668\u8D70\uFF1B`call` \u7684\u65B9\u6CD5\u8FD8\u662F\u5404\u4E2A\u5BBF\u4E3B\u5404\u6CE8\u518C\u4E00\u4EFD\u7684\uFF0C\u884C\u4E3A\u8FDF\u65E9\u5206\u53C9\u3002"
186
+ },
187
+ { t: "h3", text: "call \u7684\u9002\u7528\u8FB9\u754C" },
188
+ {
189
+ t: "p",
190
+ text: "`call` \u662F\u300C**\u8BA9\u5BBF\u4E3B\u53BB\u505A\u4E00\u4EF6\u4E8B**\u300D\uFF0C\u4E0D\u662F\u300C\u8BB0\u4E00\u7B14\u8D26\u300D\u3002"
191
+ },
192
+ {
193
+ t: "table",
194
+ head: ["\u2705 \u8BE5\u7528 call", "\u274C \u4E0D\u8BE5\u7528 call"],
195
+ rows: [
196
+ [
197
+ "\u5524\u8D77\u5145\u503C\u5F39\u7A97\u3001\u6253\u5F00\u5BA2\u670D\u4F1A\u8BDD\u3001\u590D\u5236\u5230\u526A\u8D34\u677F\u3001\u8DF3\u8F6C\u5E94\u7528\u5185\u7279\u5B9A\u9875\u9762",
198
+ "\u8BB0\u5F55\u7528\u6237\u610F\u56FE\u3001\u5199\u672C\u5730\u5B58\u50A8"
199
+ ]
200
+ ]
201
+ },
202
+ {
203
+ t: "note",
204
+ tone: "info",
205
+ text: "\u5224\u65AD\u6807\u51C6\u53EA\u6709\u4E00\u6761\uFF1A**\u8FD9\u4EF6\u4E8B\u540E\u7AEF\u9700\u4E0D\u9700\u8981\u77E5\u9053**\u3002\u9700\u8981 \u2192 \u8D70\u4E0A\u62A5\uFF08`close` \u7684 `reason`\uFF0C\u6216 `track`\uFF09\uFF1B\u7EAF\u7CB9\u662F\u5BBF\u4E3B\u7684\u672C\u5730\u52A8\u4F5C\u3001\u540E\u7AEF\u4E0D\u5173\u5FC3 \u2192 \u624D\u7528 `call`\u3002"
169
206
  },
170
207
  { t: "h3", text: "\u66DD\u5149\u548C\u5173\u95ED\u4E5F\u8981\u57CB\u70B9\uFF1Astage.onShow / stage.onClose" },
171
208
  {
@@ -192,7 +229,7 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6`
192
229
  ["`close-button`", "\u70B9\u4E86\u5173\u95ED\u6309\u94AE"],
193
230
  ["`mask`", "\u70B9\u4E86\u906E\u7F69\uFF08\u9700\u8981 `maskClosable: true`\uFF09"],
194
231
  ["`replace`", "\u88AB `open` \u7684 `replace` \u6A21\u5F0F\u9876\u6389"],
195
- ["\u81EA\u5B9A\u4E49\u503C", '`close` \u52A8\u4F5C\u91CC\u81EA\u5DF1\u5199\u7684 `reason`\uFF0C\u5982 `"never-remind"`'],
232
+ ["\u81EA\u5B9A\u4E49\u503C", '`close` \u52A8\u4F5C\u91CC\u81EA\u5DF1\u5199\u7684 `reason`\uFF0C\u5982 `"user-dismiss"`'],
196
233
  ["`action`", "`close` \u52A8\u4F5C\u6CA1\u5199 `reason` \u65F6\u7684\u9ED8\u8BA4\u503C"]
197
234
  ]
198
235
  },
@@ -213,14 +250,13 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6`
213
250
  "textAlign": "center", "lineHeight": 22, "cursor": "pointer" },
214
251
  "action": { "type": "sequence", "actions": [
215
252
  { "type": "track", "event": "notice_close" },
216
- { "type": "call", "name": "setNeverRemind" }, // \u8BB0\u4F4F\u522B\u518D\u51FA
217
- { "type": "close", "reason": "user-dismiss" }
253
+ { "type": "close", "reason": "user-dismiss" } // reason \u4E0A\u62A5\u7ED9\u540E\u7AEF\uFF0C\u636E\u6B64\u4E0D\u518D\u4E0B\u53D1
218
254
  ] } }`
219
255
  },
220
256
  {
221
257
  t: "note",
222
258
  tone: "info",
223
- text: "`close` \u53EA\u662F\u901A\u77E5\u5BBF\u4E3B\u300C\u7528\u6237\u5173\u6389\u4E86\u300D\uFF0C**\u5173\u6389\u4E4B\u540E\u8981\u4E0D\u8981\u518D\u51FA\u3001\u9694\u591A\u4E45\u518D\u51FA\u7531\u5BBF\u4E3B\u51B3\u5B9A**\u3002\u60F3\u8BA9\u5B83\u522B\u518D\u51FA\u73B0\uFF0C\u914D\u4E00\u6761 `call` \u8BA9\u5BBF\u4E3B\u8BB0\u4E0B\u6765\u3002"
259
+ text: '`close` \u53EA\u662F\u901A\u77E5\u5BBF\u4E3B\u300C\u7528\u6237\u5173\u6389\u4E86\u300D\uFF0C**\u8FD9\u4E00\u6B21\u5173\u4E0D\u5173\u7531\u5BBF\u4E3B\u51B3\u5B9A**\uFF1B\u800C\u300C\u4EE5\u540E\u8FD8\u51FA\u4E0D\u51FA\u300D\u7531\u540E\u7AEF\u6839\u636E\u4E0A\u62A5\u7684 `reason` \u51B3\u5B9A\uFF0C\u6240\u4EE5\u60F3\u8BA9\u5B83\u522B\u518D\u51FA\u73B0\uFF0C\u5199 `reason: "user-dismiss"` \u5373\u53EF\uFF0C\u4E0D\u9700\u8981\u518D\u914D `call`\u3002'
224
260
  },
225
261
  {
226
262
  t: "note",
@@ -2204,13 +2240,7 @@ var noticeToPopup = {
2204
2240
  fontSize: 13,
2205
2241
  cursor: "pointer"
2206
2242
  },
2207
- action: {
2208
- type: "sequence",
2209
- actions: [
2210
- { type: "call", name: "setNeverRemind" },
2211
- { type: "close", reason: "user-dismiss" }
2212
- ]
2213
- }
2243
+ action: { type: "close", reason: "user-dismiss" }
2214
2244
  }
2215
2245
  ]
2216
2246
  }
@@ -2576,13 +2606,13 @@ var confirmAndSwitch = {
2576
2606
  background: ORANGE3,
2577
2607
  cursor: "pointer"
2578
2608
  },
2579
- // 确认后整个关掉,两层一起消失
2609
+ // 确认后整个关掉,两层一起消失。
2610
+ // 「不再提醒」的意图靠 reason 上报给后端,不配 call 写本地存储
2580
2611
  action: {
2581
2612
  type: "sequence",
2582
2613
  actions: [
2583
2614
  { type: "track", event: "popup_never_remind_confirm" },
2584
- { type: "call", name: "setNeverRemind" },
2585
- { type: "closeAll" }
2615
+ { type: "closeAll", reason: "user-dismiss" }
2586
2616
  ]
2587
2617
  },
2588
2618
  children: [
@@ -2896,13 +2926,8 @@ var imageBanner = {
2896
2926
  fontSize: 13,
2897
2927
  cursor: "pointer"
2898
2928
  },
2899
- action: {
2900
- type: "sequence",
2901
- actions: [
2902
- { type: "call", name: "setNeverRemind" },
2903
- { type: "close", reason: "user-dismiss" }
2904
- ]
2905
- }
2929
+ // 「不再提醒」写在 close 的 reason 上,上报给后端即可,不配 call 写本地存储
2930
+ action: { type: "close", reason: "user-dismiss" }
2906
2931
  }
2907
2932
  ]
2908
2933
  }
@@ -3033,16 +3058,11 @@ var imageHotspot = {
3033
3058
  {
3034
3059
  id: "hotspot-never",
3035
3060
  type: "box",
3036
- // 最底部「不再提醒」,动作是关弹窗而不是跳转
3061
+ // 最底部「不再提醒」,动作是关弹窗而不是跳转。
3062
+ // reason 上报给后端,后端据此不再下发这条物料——不需要写本地存储
3037
3063
  rect: ["30%", 478, "40%", 26],
3038
3064
  style: { radius: 13, background: HOTSPOT_BG, cursor: "pointer" },
3039
- action: {
3040
- type: "sequence",
3041
- actions: [
3042
- { type: "call", name: "setNeverRemind" },
3043
- { type: "close", reason: "never-remind" }
3044
- ]
3045
- }
3065
+ action: { type: "close", reason: "user-dismiss" }
3046
3066
  }
3047
3067
  ]
3048
3068
  };
@@ -3120,7 +3140,6 @@ var noticeBar = {
3120
3140
  type: "sequence",
3121
3141
  actions: [
3122
3142
  { type: "track", event: "notice_close", params: { notice: "guide" } },
3123
- { type: "call", name: "setNeverRemind" },
3124
3143
  { type: "close", reason: "user-dismiss" }
3125
3144
  ]
3126
3145
  }
@@ -3320,6 +3339,7 @@ function checklistSection() {
3320
3339
  \u6709\u4E00\u4E2A\u4E0D\u5408\u89C4\uFF0C\u6574\u4EFD\u914D\u7F6E\u5C31\u5B58\u4E0D\u4E0A
3321
3340
  - [ ] \u6BCF\u4E2A\u89C6\u56FE\u7684 \`stage\` \u90FD\u6709 \`onShow\` \u66DD\u5149\u57CB\u70B9\u548C \`onClose\` \u5173\u95ED\u57CB\u70B9\uFF0C\`onClose\` \u7684 params \u91CC\u5E26\u4E0A \`"reason": "{{ closeReason }}"\`
3322
3341
  - [ ] \u5173\u95ED\u6309\u94AE\u6CA1\u6709\u591A\u4F59\u7684 \`icon\`\uFF08\u9ED8\u8BA4\u7684\u5185\u7F6E\u77E2\u91CF\u56FE\u6807\u5C31\u662F\u5BF9\u7684\uFF09
3342
+ - [ ] \u6CA1\u6709\u7528 \`call\` \u53BB\u8BB0\u5F55\u7528\u6237\u610F\u56FE\u6216\u5199\u672C\u5730\u5B58\u50A8\uFF08\`call\` \u53EA\u7528\u6765\u8BA9\u5BBF\u4E3B\u505A\u4E00\u4EF6\u4E8B\uFF0C\u5982\u5524\u8D77\u5145\u503C / \u6253\u5F00\u5BA2\u670D / \u590D\u5236\u5230\u526A\u8D34\u677F\uFF09\u3002\u300C\u4E0D\u518D\u63D0\u9192\u300D\u5199\u6210 \`{ "type": "close", "reason": "user-dismiss" }\`\uFF0C\u4E0D\u914D \`call\`
3323
3343
  - [ ] \u8F93\u51FA\u7684\u662F\u5408\u6CD5 JSON\uFF08\u6CA1\u6709\u591A\u4F59\u9017\u53F7\u3001\u6CA1\u6709\u6CE8\u91CA\uFF09`;
3324
3344
  }
3325
3345
  function requirementSection() {
@@ -3357,7 +3377,8 @@ function actionSection() {
3357
3377
  - \`setState\`\uFF1A\`{ "type": "setState", "key": "period", "value": "{{ index }}" }\` \u505A\u9009\u4E2D\u5207\u6362
3358
3378
  - \`close\`\uFF1A\u5173\u6389\u5F53\u524D\u8FD9\u4E00\u5C42\uFF08\u53EA\u6709\u4E00\u5C42\u65F6\u5C31\u662F\u6574\u4F53\u5173\u95ED\uFF09\u3002\u6CE8\u610F\u5B83\u53EA\u662F**\u901A\u77E5\u5BBF\u4E3B\u9875\u9762**\u300C\u7528\u6237\u60F3\u5173\u4E86\u300D\uFF0C\u7531\u5BBF\u4E3B\u51B3\u5B9A\u5173\u4E0D\u5173\uFF1B\u591A\u89C6\u56FE\u65F6\u5173\u5185\u5C42\u4E0D\u4F1A\u901A\u77E5\u5BBF\u4E3B\uFF0C\u53EA\u662F\u56DE\u5230\u4E0B\u9762\u90A3\u5C42
3359
3379
  - \`closeAll\`\uFF1A\u51E0\u5C42\u90FD\u5173\u6389\uFF0C\u4E00\u5B9A\u4F1A\u901A\u77E5\u5BBF\u4E3B
3360
- - \u60F3\u300C\u5173\u4E86\u5C31\u522B\u518D\u51FA\u73B0\u300D\uFF0C\u5149 \`close\` \u4E0D\u591F\uFF0C\u8981\u518D\u914D\u4E00\u6761 \`{ "type": "call", "name": "setNeverRemind" }\` \u8BA9\u5BBF\u4E3B\u8BB0\u4E0B\u6765
3380
+ - \u60F3\u300C\u5173\u4E86\u5C31\u522B\u518D\u51FA\u73B0\u300D\uFF0C\u5C31\u5199 \`{ "type": "close", "reason": "user-dismiss" }\`\u3002\u4E0A\u62A5\u51FA\u53BB\u662F \`{ "event": "close", "reason": "user-dismiss" }\`\uFF0C\u540E\u7AEF\u636E\u6B64\u6C38\u4E45\u538B\u5236\u8FD9\u6761\u7269\u6599\u3002**\u4E0D\u8981**\u518D\u914D \`call\` \u8BA9\u5BBF\u4E3B\u5199\u672C\u5730\u5B58\u50A8\u2014\u2014\u9891\u63A7\u7531\u540E\u7AEF\u7B97\uFF0C\u524D\u7AEF\u5B58\u7684\u4F9D\u636E\u540E\u7AEF\u770B\u4E0D\u89C1\uFF0C\u800C\u4E14\u6362\u8BBE\u5907\u3001\u6E05\u7F13\u5B58\u5C31\u6CA1\u4E86
3381
+ - \`call\`\uFF1A**\u8BA9\u5BBF\u4E3B\u53BB\u505A\u4E00\u4EF6\u4E8B**\uFF08\u5524\u8D77\u5145\u503C\u5F39\u7A97\u3001\u6253\u5F00\u5BA2\u670D\u4F1A\u8BDD\u3001\u590D\u5236\u5230\u526A\u8D34\u677F\u3001\u8DF3\u8F6C\u5E94\u7528\u5185\u7279\u5B9A\u9875\u9762\uFF09\u3002\u5224\u65AD\u6807\u51C6\uFF1A**\u8FD9\u4EF6\u4E8B\u540E\u7AEF\u9700\u4E0D\u9700\u8981\u77E5\u9053**\u2014\u2014\u9700\u8981\u5C31\u8D70\u4E0A\u62A5\uFF08\`close\` \u7684 \`reason\` \u6216 \`track\`\uFF09\uFF0C\u7EAF\u672C\u5730\u52A8\u4F5C\u624D\u7528 \`call\`\u3002\u7EDD\u4E0D\u7528 \`call\` \u8BB0\u5F55\u7528\u6237\u610F\u56FE\u6216\u5199\u672C\u5730\u5B58\u50A8
3361
3382
  - \`open\`\uFF1A\u6253\u5F00\u53E6\u4E00\u4E2A\u89C6\u56FE\uFF0C\u89C1\u4E0B\u4E00\u8282
3362
3383
  - \u4EFB\u4F55\u8282\u70B9\u52A0 \`action\` \u90FD\u80FD\u70B9\u51FB
3363
3384
  - **\u6BCF\u4E2A\u53EF\u70B9\u51FB\u5143\u7D20\u90FD\u5E94\u8BE5\u914D \`track\`**\uFF0C\u5426\u5219\u6CA1\u6709\u6570\u636E\u53EF\u770B
@@ -3407,7 +3428,7 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6
3407
3428
 
3408
3429
  - \`onShow\` \u5728\u6570\u636E\u5C31\u7EEA\u3001\u5F39\u7A97\u771F\u6B63\u6E32\u67D3\u51FA\u6765\u65F6\u89E6\u53D1\u4E00\u6B21
3409
3430
  - \`onClose\` \u5728\u70B9 X\u3001\u70B9\u906E\u7F69\u3001\u8D70 \`close\` \u52A8\u4F5C\u3001\u88AB \`replace\` \u9876\u6389\u65F6\u90FD\u4F1A\u89E6\u53D1
3410
- - \`{{ closeReason }}\` \u53D6\u503C\uFF1A\`close-button\` / \`mask\` / \`replace\` / \`close\` \u52A8\u4F5C\u81EA\u5E26\u7684 \`reason\`\uFF08\u5982 \`"never-remind"\`\uFF09/ \u9ED8\u8BA4 \`action\`
3431
+ - \`{{ closeReason }}\` \u53D6\u503C\uFF1A\`close-button\` / \`mask\` / \`replace\` / \`close\` \u52A8\u4F5C\u81EA\u5E26\u7684 \`reason\`\uFF08\u5982 \`"user-dismiss"\`\uFF09/ \u9ED8\u8BA4 \`action\`
3411
3432
  - \u591A\u89C6\u56FE\u65F6\u6BCF\u5C42\u5404\u5199\u5404\u7684\uFF0C\u624D\u80FD\u5206\u5F00\u7EDF\u8BA1
3412
3433
 
3413
3434
  ## \u516C\u544A\u6761 / Banner \u7684\u5173\u95ED
@@ -3420,12 +3441,11 @@ countdown_end // \u5012\u8BA1\u65F6\u5F52\u96F6
3420
3441
  "textAlign": "center", "lineHeight": 22, "cursor": "pointer" },
3421
3442
  "action": { "type": "sequence", "actions": [
3422
3443
  { "type": "track", "event": "notice_guide_close" },
3423
- { "type": "call", "name": "setNeverRemind" },
3424
3444
  { "type": "close", "reason": "user-dismiss" }
3425
3445
  ] } }
3426
3446
  \`\`\`
3427
3447
 
3428
- \`close\` \u53EA\u901A\u77E5\u5BBF\u4E3B\u300C\u7528\u6237\u5173\u6389\u4E86\u300D\uFF0C\u8981\u8BA9\u5B83\u522B\u518D\u51FA\u73B0\u5F97\u914D\u4E00\u6761 \`call\`\u3002
3448
+ \`close\` \u53EA\u901A\u77E5\u5BBF\u4E3B\u300C\u8FD9\u4E00\u6B21\u5173\u4E0D\u5173\u300D\uFF1B\u300C\u4EE5\u540E\u8FD8\u51FA\u4E0D\u51FA\u300D\u7531\u540E\u7AEF\u6309\u4E0A\u62A5\u7684 \`reason\` \u51B3\u5B9A\uFF0C\u6240\u4EE5 \`reason: "user-dismiss"\` \u5C31\u591F\u4E86\uFF0C\u4E0D\u8981\u518D\u914D \`call\`\u3002
3429
3449
  \u6574\u6761\u53EF\u70B9 + \u884C\u672B \xD7 \u4E0D\u4F1A\u51B2\u7A81\uFF1A\u5185\u5C42\u6709\u81EA\u5DF1\u7684 \`action\` \u5C31\u4E0D\u518D\u5192\u6CE1\u7ED9\u5916\u5C42\u3002`;
3430
3450
  }
3431
3451
  function viewsSection() {
package/dist/index.cjs CHANGED
@@ -1173,7 +1173,7 @@ function createRuntime(dsl, options = {}) {
1173
1173
  setState,
1174
1174
  emit,
1175
1175
  openView,
1176
- // 配置里 close 可以自带 reason(如 'never-remind'),要透传给埋点,不能吞掉
1176
+ // 配置里 close 可以自带 reason(如 'user-dismiss'),要透传给埋点,不能吞掉
1177
1177
  closeTop: (reason) => closeTop(reason),
1178
1178
  closeAll: (reason) => closeAll(reason),
1179
1179
  get handlers() {
package/dist/index.js CHANGED
@@ -645,7 +645,7 @@ function createRuntime(dsl, options = {}) {
645
645
  setState,
646
646
  emit,
647
647
  openView,
648
- // 配置里 close 可以自带 reason(如 'never-remind'),要透传给埋点,不能吞掉
648
+ // 配置里 close 可以自带 reason(如 'user-dismiss'),要透传给埋点,不能吞掉
649
649
  closeTop: (reason) => closeTop(reason),
650
650
  closeAll: (reason) => closeAll(reason),
651
651
  get handlers() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaoxiu/marketing-dsl",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "type": "module",
5
5
  "description": "营销弹窗 DSL 解释器核心,纯逻辑无框架依赖",
6
6
  "license": "MIT",