skill-home 0.3.12 → 0.3.13

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.
Files changed (230) hide show
  1. package/dist/cli/config.d.ts.map +1 -1
  2. package/dist/cli/config.js +11 -1
  3. package/dist/cli/config.js.map +1 -1
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +14 -7
  6. package/dist/config.js.map +1 -1
  7. package/dist/express/pages/express.d.ts +4 -1
  8. package/dist/express/pages/express.d.ts.map +1 -1
  9. package/dist/express/pages/express.js +14 -10
  10. package/dist/express/pages/express.js.map +1 -1
  11. package/dist/express/pages/list.d.ts +4 -1
  12. package/dist/express/pages/list.d.ts.map +1 -1
  13. package/dist/express/pages/list.js +21 -15
  14. package/dist/express/pages/list.js.map +1 -1
  15. package/dist/express/pages/missing.d.ts +4 -1
  16. package/dist/express/pages/missing.d.ts.map +1 -1
  17. package/dist/express/pages/missing.js +15 -10
  18. package/dist/express/pages/missing.js.map +1 -1
  19. package/dist/express/pages/stock.d.ts +4 -1
  20. package/dist/express/pages/stock.d.ts.map +1 -1
  21. package/dist/express/pages/stock.js +29 -17
  22. package/dist/express/pages/stock.js.map +1 -1
  23. package/dist/family/pages/family_borrow.d.ts +4 -1
  24. package/dist/family/pages/family_borrow.d.ts.map +1 -1
  25. package/dist/family/pages/family_borrow.js +1 -1
  26. package/dist/family/pages/family_borrow.js.map +1 -1
  27. package/dist/family/pages/family_members.d.ts +4 -1
  28. package/dist/family/pages/family_members.d.ts.map +1 -1
  29. package/dist/family/pages/family_members.js +1 -1
  30. package/dist/family/pages/family_members.js.map +1 -1
  31. package/dist/family/routes.js +3 -3
  32. package/dist/family/routes.js.map +1 -1
  33. package/dist/fetch/domains.d.ts +89 -0
  34. package/dist/fetch/domains.d.ts.map +1 -1
  35. package/dist/fetch/domains.js +163 -25
  36. package/dist/fetch/domains.js.map +1 -1
  37. package/dist/fetch/index.d.ts +1 -1
  38. package/dist/fetch/index.d.ts.map +1 -1
  39. package/dist/fetch/index.js +5 -1
  40. package/dist/fetch/index.js.map +1 -1
  41. package/dist/health.d.ts +9 -0
  42. package/dist/health.d.ts.map +1 -1
  43. package/dist/health.js +19 -0
  44. package/dist/health.js.map +1 -1
  45. package/dist/items/pages/add_form.d.ts +4 -1
  46. package/dist/items/pages/add_form.d.ts.map +1 -1
  47. package/dist/items/pages/add_form.js +8 -3
  48. package/dist/items/pages/add_form.js.map +1 -1
  49. package/dist/items/pages/browse.d.ts +4 -1
  50. package/dist/items/pages/browse.d.ts.map +1 -1
  51. package/dist/items/pages/browse.js +1 -1
  52. package/dist/items/pages/browse.js.map +1 -1
  53. package/dist/items/pages/category_manage.d.ts +4 -1
  54. package/dist/items/pages/category_manage.d.ts.map +1 -1
  55. package/dist/items/pages/category_manage.js +1 -1
  56. package/dist/items/pages/category_manage.js.map +1 -1
  57. package/dist/items/pages/confirm.d.ts +4 -1
  58. package/dist/items/pages/confirm.d.ts.map +1 -1
  59. package/dist/items/pages/confirm.js +4 -2
  60. package/dist/items/pages/confirm.js.map +1 -1
  61. package/dist/items/pages/detail.d.ts +4 -1
  62. package/dist/items/pages/detail.d.ts.map +1 -1
  63. package/dist/items/pages/detail.js +1 -1
  64. package/dist/items/pages/detail.js.map +1 -1
  65. package/dist/items/pages/duplicates.d.ts +4 -1
  66. package/dist/items/pages/duplicates.d.ts.map +1 -1
  67. package/dist/items/pages/duplicates.js +1 -1
  68. package/dist/items/pages/duplicates.js.map +1 -1
  69. package/dist/items/pages/history.d.ts +4 -1
  70. package/dist/items/pages/history.d.ts.map +1 -1
  71. package/dist/items/pages/history.js +1 -1
  72. package/dist/items/pages/history.js.map +1 -1
  73. package/dist/items/pages/inventory_diff.d.ts +4 -1
  74. package/dist/items/pages/inventory_diff.d.ts.map +1 -1
  75. package/dist/items/pages/inventory_diff.js +1 -1
  76. package/dist/items/pages/inventory_diff.js.map +1 -1
  77. package/dist/items/pages/inventory_records.d.ts +4 -1
  78. package/dist/items/pages/inventory_records.d.ts.map +1 -1
  79. package/dist/items/pages/inventory_records.js +7 -2
  80. package/dist/items/pages/inventory_records.js.map +1 -1
  81. package/dist/items/pages/inventory_round.d.ts +4 -1
  82. package/dist/items/pages/inventory_round.d.ts.map +1 -1
  83. package/dist/items/pages/inventory_round.js +1 -1
  84. package/dist/items/pages/inventory_round.js.map +1 -1
  85. package/dist/items/pages/locate.d.ts +4 -1
  86. package/dist/items/pages/locate.d.ts.map +1 -1
  87. package/dist/items/pages/locate.js +7 -4
  88. package/dist/items/pages/locate.js.map +1 -1
  89. package/dist/items/pages/move_checklist.d.ts +4 -1
  90. package/dist/items/pages/move_checklist.d.ts.map +1 -1
  91. package/dist/items/pages/move_checklist.js +1 -1
  92. package/dist/items/pages/move_checklist.js.map +1 -1
  93. package/dist/items/pages/photo_wall.d.ts +4 -1
  94. package/dist/items/pages/photo_wall.d.ts.map +1 -1
  95. package/dist/items/pages/photo_wall.js +1 -1
  96. package/dist/items/pages/photo_wall.js.map +1 -1
  97. package/dist/items/pages/photos.d.ts +4 -1
  98. package/dist/items/pages/photos.d.ts.map +1 -1
  99. package/dist/items/pages/photos.js +7 -5
  100. package/dist/items/pages/photos.js.map +1 -1
  101. package/dist/items/pages/receipt.d.ts +4 -1
  102. package/dist/items/pages/receipt.d.ts.map +1 -1
  103. package/dist/items/pages/receipt.js +1 -1
  104. package/dist/items/pages/receipt.js.map +1 -1
  105. package/dist/items/pages/relations.d.ts +4 -1
  106. package/dist/items/pages/relations.d.ts.map +1 -1
  107. package/dist/items/pages/relations.js +1 -1
  108. package/dist/items/pages/relations.js.map +1 -1
  109. package/dist/items/pages/search_list.d.ts +4 -1
  110. package/dist/items/pages/search_list.d.ts.map +1 -1
  111. package/dist/items/pages/search_list.js +1 -1
  112. package/dist/items/pages/search_list.js.map +1 -1
  113. package/dist/items/pages/tag_manage.d.ts +4 -1
  114. package/dist/items/pages/tag_manage.d.ts.map +1 -1
  115. package/dist/items/pages/tag_manage.js +2 -2
  116. package/dist/items/pages/tag_manage.js.map +1 -1
  117. package/dist/items/pages/undo_select.d.ts +4 -1
  118. package/dist/items/pages/undo_select.d.ts.map +1 -1
  119. package/dist/items/pages/undo_select.js +1 -1
  120. package/dist/items/pages/undo_select.js.map +1 -1
  121. package/dist/outfit/pages/outfit_picker.d.ts +4 -1
  122. package/dist/outfit/pages/outfit_picker.d.ts.map +1 -1
  123. package/dist/outfit/pages/outfit_picker.js +1 -1
  124. package/dist/outfit/pages/outfit_picker.js.map +1 -1
  125. package/dist/outfit/pages/travel_trip.d.ts +4 -1
  126. package/dist/outfit/pages/travel_trip.d.ts.map +1 -1
  127. package/dist/outfit/pages/travel_trip.js +1 -1
  128. package/dist/outfit/pages/travel_trip.js.map +1 -1
  129. package/dist/outfit/pages/trip_outfit_plan.d.ts +4 -1
  130. package/dist/outfit/pages/trip_outfit_plan.d.ts.map +1 -1
  131. package/dist/outfit/pages/trip_outfit_plan.js +1 -1
  132. package/dist/outfit/pages/trip_outfit_plan.js.map +1 -1
  133. package/dist/outfit/pages/wardrobe_analyze.d.ts +4 -1
  134. package/dist/outfit/pages/wardrobe_analyze.d.ts.map +1 -1
  135. package/dist/outfit/pages/wardrobe_analyze.js +1 -1
  136. package/dist/outfit/pages/wardrobe_analyze.js.map +1 -1
  137. package/dist/outfit/pages/wardrobe_season.d.ts +4 -1
  138. package/dist/outfit/pages/wardrobe_season.d.ts.map +1 -1
  139. package/dist/outfit/pages/wardrobe_season.js +1 -1
  140. package/dist/outfit/pages/wardrobe_season.js.map +1 -1
  141. package/dist/receipt/pages/accounts.d.ts +4 -1
  142. package/dist/receipt/pages/accounts.d.ts.map +1 -1
  143. package/dist/receipt/pages/accounts.js +1 -1
  144. package/dist/receipt/pages/accounts.js.map +1 -1
  145. package/dist/receipt/pages/certificates.d.ts +4 -1
  146. package/dist/receipt/pages/certificates.d.ts.map +1 -1
  147. package/dist/receipt/pages/certificates.js +6 -11
  148. package/dist/receipt/pages/certificates.js.map +1 -1
  149. package/dist/receipt/pages/purchase_records.d.ts +4 -1
  150. package/dist/receipt/pages/purchase_records.d.ts.map +1 -1
  151. package/dist/receipt/pages/purchase_records.js +19 -2
  152. package/dist/receipt/pages/purchase_records.js.map +1 -1
  153. package/dist/receipt/pages/warranty.d.ts +4 -1
  154. package/dist/receipt/pages/warranty.d.ts.map +1 -1
  155. package/dist/receipt/pages/warranty.js +1 -1
  156. package/dist/receipt/pages/warranty.js.map +1 -1
  157. package/dist/receipt/ticket.d.ts.map +1 -1
  158. package/dist/receipt/ticket.js +132 -23
  159. package/dist/receipt/ticket.js.map +1 -1
  160. package/dist/render/familyPage.d.ts +1 -1
  161. package/dist/render/familyPage.d.ts.map +1 -1
  162. package/dist/render/familyPage.js +2 -4
  163. package/dist/render/familyPage.js.map +1 -1
  164. package/dist/render/html.d.ts.map +1 -1
  165. package/dist/render/html.js +59 -3
  166. package/dist/render/html.js.map +1 -1
  167. package/dist/render/index.d.ts +1 -1
  168. package/dist/render/index.d.ts.map +1 -1
  169. package/dist/render/index.js +1 -1
  170. package/dist/render/index.js.map +1 -1
  171. package/dist/render/sceneNaming.d.ts +3 -3
  172. package/dist/render/sceneNaming.d.ts.map +1 -1
  173. package/dist/render/sceneNaming.js +122 -120
  174. package/dist/render/sceneNaming.js.map +1 -1
  175. package/dist/render/views.d.ts +34 -2
  176. package/dist/render/views.d.ts.map +1 -1
  177. package/dist/render/views.js +28 -4
  178. package/dist/render/views.js.map +1 -1
  179. package/dist/setup/pages/backup_receipt.d.ts +4 -1
  180. package/dist/setup/pages/backup_receipt.d.ts.map +1 -1
  181. package/dist/setup/pages/backup_receipt.js +1 -1
  182. package/dist/setup/pages/backup_receipt.js.map +1 -1
  183. package/dist/setup/pages/first_use_wizard.d.ts +4 -1
  184. package/dist/setup/pages/first_use_wizard.d.ts.map +1 -1
  185. package/dist/setup/pages/first_use_wizard.js +1 -1
  186. package/dist/setup/pages/first_use_wizard.js.map +1 -1
  187. package/dist/setup/pages/health_report.d.ts +4 -1
  188. package/dist/setup/pages/health_report.d.ts.map +1 -1
  189. package/dist/setup/pages/health_report.js +1 -1
  190. package/dist/setup/pages/health_report.js.map +1 -1
  191. package/dist/setup/pages/import_restore.d.ts +4 -1
  192. package/dist/setup/pages/import_restore.d.ts.map +1 -1
  193. package/dist/setup/pages/import_restore.js +1 -1
  194. package/dist/setup/pages/import_restore.js.map +1 -1
  195. package/dist/space/pages/fixed_spot.d.ts +4 -1
  196. package/dist/space/pages/fixed_spot.d.ts.map +1 -1
  197. package/dist/space/pages/fixed_spot.js +1 -1
  198. package/dist/space/pages/fixed_spot.js.map +1 -1
  199. package/dist/space/pages/location_manage.d.ts +4 -1
  200. package/dist/space/pages/location_manage.d.ts.map +1 -1
  201. package/dist/space/pages/location_manage.js +1 -1
  202. package/dist/space/pages/location_manage.js.map +1 -1
  203. package/dist/space/pages/space_view.d.ts +4 -1
  204. package/dist/space/pages/space_view.d.ts.map +1 -1
  205. package/dist/space/pages/space_view.js +1 -1
  206. package/dist/space/pages/space_view.js.map +1 -1
  207. package/dist/space/pages/suggest_storage.d.ts +4 -1
  208. package/dist/space/pages/suggest_storage.d.ts.map +1 -1
  209. package/dist/space/pages/suggest_storage.js +1 -1
  210. package/dist/space/pages/suggest_storage.js.map +1 -1
  211. package/dist/stats/pages/expiring.d.ts +4 -1
  212. package/dist/stats/pages/expiring.d.ts.map +1 -1
  213. package/dist/stats/pages/expiring.js +21 -5
  214. package/dist/stats/pages/expiring.js.map +1 -1
  215. package/dist/stats/pages/idle.d.ts +4 -1
  216. package/dist/stats/pages/idle.d.ts.map +1 -1
  217. package/dist/stats/pages/idle.js +25 -7
  218. package/dist/stats/pages/idle.js.map +1 -1
  219. package/dist/stats/pages/inventory_stat.d.ts +4 -1
  220. package/dist/stats/pages/inventory_stat.d.ts.map +1 -1
  221. package/dist/stats/pages/inventory_stat.js +43 -11
  222. package/dist/stats/pages/inventory_stat.js.map +1 -1
  223. package/dist/stats/pages/overview.d.ts +4 -1
  224. package/dist/stats/pages/overview.d.ts.map +1 -1
  225. package/dist/stats/pages/overview.js +74 -15
  226. package/dist/stats/pages/overview.js.map +1 -1
  227. package/dist/stats/stats.d.ts.map +1 -1
  228. package/dist/stats/stats.js +46 -11
  229. package/dist/stats/stats.js.map +1 -1
  230. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAgBA,2EAA2E;AAC3E,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX,yBAAyB;AACzB,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhD;AAyCD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAgBjF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAiBA,2EAA2E;AAC3E,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX,yBAAyB;AACzB,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhD;AAyCD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAyBjF"}
@@ -12,6 +12,7 @@
12
12
  import { ENVELOPE_VERSION } from 'base-link-core';
13
13
  import { loadHomeConfig, resetHomeConfig, saveHomeConfig } from '../config.js';
14
14
  import { resolvedHomePaths } from '../fetch/paths.js';
15
+ import { homeDataDirAlert } from '../health.js';
15
16
  /** 三个 key 的唯一定义地(插件侧镜像同值,见 `packages/plugin-home-ilife/src/bridge.ts`)。 */
16
17
  export const CONFIG_KEYS = {
17
18
  read: 'home.config.read',
@@ -73,7 +74,16 @@ export function runConfigKey(key, params) {
73
74
  if (key === CONFIG_KEYS.read) {
74
75
  const c = withHumanError(() => loadHomeConfig());
75
76
  const resolved = withHumanError(() => resolvedHomePaths());
76
- return envelope(key, 'detail', { path: c.path, dataDir: c.dataDir, created: c.created, values: c.values, resolved });
77
+ // #915 第二步:只把「数据目录真用不了」这件事当独立事实交出去,面板原样画;能用就缺席(没问题不显示)。
78
+ const alerts = homeDataDirAlert(c.values, c.dataDir);
79
+ return envelope(key, 'detail', {
80
+ path: c.path,
81
+ dataDir: c.dataDir,
82
+ created: c.created,
83
+ values: c.values,
84
+ resolved,
85
+ ...(alerts === undefined ? {} : { alerts }),
86
+ });
77
87
  }
78
88
  if (key === CONFIG_KEYS.write) {
79
89
  const raw = params['values'];
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,EAAG,MAAe,CAAC;AAEhD,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;CAKhC,CAAC;AAEF;;;;;yBAKyB;AACzB,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAmC,CAAC;AAErF,gCAAgC;AAChC,MAAM,MAAM,gBAAgB,GAAG,OAAO,oBAAoB,CAAC;AAoC3D,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAKD;;;mDAGmD;AACnD,wBAAgB,cAAc,IAAI,gBAAgB,CAajD;AAED,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAIrE;AAED,yCAAyC;AACzC,wBAAgB,eAAe,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAI7E;AAED;6DAC6D;AAC7D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,EAAG,MAAe,CAAC;AAEhD,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;CAKhC,CAAC;AAEF;;;;;yBAKyB;AACzB,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAmC,CAAC;AAErF,gCAAgC;AAChC,MAAM,MAAM,gBAAgB,GAAG,OAAO,oBAAoB,CAAC;AAoC3D,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAQD;;;mDAGmD;AACnD,wBAAgB,cAAc,IAAI,gBAAgB,CAiBjD;AAED,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAIrE;AAED,yCAAyC;AACzC,wBAAgB,eAAe,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAI7E;AAED;6DAC6D;AAC7D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD"}
package/dist/config.js CHANGED
@@ -75,25 +75,32 @@ function withoutBlankEditableDir(values) {
75
75
  out['db'] = next;
76
76
  return out;
77
77
  }
78
- /** 每进程只读一次:配置文件的「保存即生效」靠**下一次调用现读**,同一个进程里不反复读盘。 */
78
+ /** 每进程按**配置文件路径**记一份(#915 就地摆正:与五家兄弟件同形,`skill-bill/src/config.ts` 的
79
+ * 理由逐字相同——「记忆位不绑『进程』而绑『配置文件路径』,是为了不让换目录后的读落到上一份的缓存上」:
80
+ * 测试逐用例换临时家目录、同一进程里连读几份配置,绑进程就会把第二份读成第一份)。
81
+ * 「保存即生效」仍由写路径清记忆保证(见 `saveHomeConfig`/`resetHomeConfig`),不靠长连接。 */
79
82
  let memo = null;
80
83
  /** 读一份配置(文件不存在即按默认值落一份并把配置目录/数据目录建出来)。
81
84
  *
82
85
  * 读回来的 `values` 是**文件里那份 ⊕ 默认值**(文件里写空串则仍是空串=按默认落点);
83
86
  * 首次落文件时写下去的是 `writableDefaults()`(可改落点=绝对路径)。 */
84
87
  export function loadHomeConfig() {
85
- if (memo === null) {
88
+ const file = configPaths(HOME_CONFIG_STEM).configFile;
89
+ if (memo === null || memo.file !== file) {
86
90
  const loaded = loadConfig(HOME_CONFIG_STEM, writableDefaults(), HOME_CONFIG_RETIRED);
87
91
  // base-link-core 读回来时已经过了「键齐 + 类型对」两道校验(不认识的键、类型不符一律抛),
88
92
  // 故这一处从宽松记录到形状记录的转换是有依据的投影,不是猜测。
89
93
  memo = {
90
- path: loaded.path,
91
- dataDir: loaded.dataDir,
92
- created: loaded.created,
93
- values: loaded.values,
94
+ file,
95
+ loaded: {
96
+ path: loaded.path,
97
+ dataDir: loaded.dataDir,
98
+ created: loaded.created,
99
+ values: loaded.values,
100
+ },
94
101
  };
95
102
  }
96
- return memo;
103
+ return memo.loaded;
97
104
  }
98
105
  /** 写一份配置(写出去的是完整一份:没给的项按默认值补齐)。写完清记忆,同进程后续读也现取。 */
99
106
  export function saveHomeConfig(values) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,10 @@ export declare const PAGE_META: {
6
6
  readonly key: "home.shopping.query";
7
7
  readonly shape: "list";
8
8
  readonly preset: Record<string, unknown>;
9
- readonly scenarios: readonly string[];
9
+ readonly rows: readonly {
10
+ readonly key: string;
11
+ readonly preset: Record<string, unknown>;
12
+ }[];
10
13
  };
11
14
  export declare const REQUIRED_BLOCKS: {
12
15
  readonly fields: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../../src/express/pages/express.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,SAAkB,CAAC;AAEzC,eAAO,MAAM,SAAS;;;;;qBAKU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;wBAC7B,SAAS,MAAM,EAAE;CACjC,CAAC;AAEX,eAAO,MAAM,eAAe,EAyBvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AA+CF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAoFvH"}
1
+ {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../../src/express/pages/express.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,SAAkB,CAAC;AAEzC,eAAO,MAAM,SAAS;;;;;qBAKU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACgB,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE;CAC1I,CAAC;AAEX,eAAO,MAAM,eAAe,EAyBvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AA+CF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAwFvH"}
@@ -14,7 +14,7 @@ export const PAGE_META = {
14
14
  key: 'home.shopping.query',
15
15
  shape: 'list',
16
16
  preset: { "kind": "express" },
17
- scenarios: ["SM5-3"],
17
+ rows: [{ "key": "home.shopping.query", "preset": { "kind": "express" } }],
18
18
  };
19
19
  export const REQUIRED_BLOCKS = {
20
20
  "empty": [
@@ -104,6 +104,8 @@ export function renderFamilyPage(env, ctx) {
104
104
  + '</style>';
105
105
  const P_BACKUP = '请加载居家管家技能,帮我确认收货,收到的放备用';
106
106
  const P_NEW = '请加载居家管家技能,帮我录入新到的物品';
107
+ // #890:「我收到了」的初始载荷(点后由页内 `onclick` 按当刻勾选改写 `data-t`)。
108
+ const P_RECEIVE = '请加载居家管家技能,帮我确认收货';
107
109
  let body = style;
108
110
  body += '<p class="x-lead">勾选收到的快递,点下方的按钮标记到家,超过 ' + timeout + ' 天会标红提醒</p>';
109
111
  body += '<div class="x-metrics">'
@@ -121,22 +123,24 @@ export function renderFamilyPage(env, ctx) {
121
123
  + '<span class="x-state ' + (it.overdue ? 'over' : 'days') + '">已等 ' + it.days + ' 天' + (it.overdue ? ' 超时' : '') + '</span></div>'
122
124
  + '<div class="x-meta">' + escapeHtml(it.category_name) + ' ' + escapeHtml(it.location) + ' 数量 ' + it.quantity + '</div></div></div>').join('')
123
125
  + '</div><div class="x-actions">'
124
- + '<button class="x-btn" onclick="xReceive()">我收到了</button>'
125
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_BACKUP) + '">收到的放备用</button>'
126
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_NEW) + '">新到物品去录入</button>'
126
+ + '<button class="x-btn" data-action-id="x-receive" data-t="' + escapeHtml(P_RECEIVE) + '" onclick="xReceive(this)">我收到了</button>'
127
+ + '<button class="x-btn ghost" data-action-id="x-backup" data-t="' + escapeHtml(P_BACKUP) + '">收到的放备用</button>'
128
+ + '<button class="x-btn ghost" data-action-id="x-new" data-t="' + escapeHtml(P_NEW) + '">新到物品去录入</button>'
127
129
  + '</div></section>';
128
130
  }
129
131
  else {
130
132
  body += '<section><div class="x-empty">当前没有快递中<br>新到的物品可以先录入<div class="x-actions" style="justify-content:center">'
131
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_NEW) + '">新到物品去录入</button>'
133
+ + '<button class="x-btn ghost" data-action-id="x-new" data-t="' + escapeHtml(P_NEW) + '">新到物品去录入</button>'
132
134
  + '</div></div></section>';
133
135
  }
136
+ // #890:复制路径交给公共层共享运行时(`<!--SHARED-HELPERS-->` 槽的 `buildSharedHelpersJs`),
137
+ // 不再页内自造 `xCopy`(无反馈/无 `catch`/无 `execCommand` 降级)。按钮带 `data-action-id`
138
+ // + `data-t` 即由 document 委派复制;按当刻勾选现算的那一颗,用元素级 `onclick` 先把载荷写回
139
+ // 自己的 `data-t`(目标阶段先于 document 冒泡),没勾选时置空并保留拦截提示。
134
140
  body += '<script>'
135
- + 'function xCopy(t){if(navigator.clipboard){navigator.clipboard.writeText(t);}}'
136
- + 'document.querySelectorAll("[data-prompt]").forEach(function(b){b.addEventListener("click",function(){xCopy(b.getAttribute("data-prompt")||"");});});'
137
- + 'function xReceive(){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){alert("请先勾选收到的物品");return;}var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name");}).join("、");xCopy("请加载居家管家技能,帮我确认收货:"+names+" 编号["+ids+"]");}'
138
- // #886:`xCopyData`/`xCopyLog` 两个空壳随复制区一起删——本页复制数据/复制日志已由
139
- // `homeCopyArea` 出(三格式菜单+六段日志),这两颗 `function (){}` 没有任何调用方。
141
+ + 'function xReceive(b){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){b.setAttribute("data-t","");alert("请先勾选收到的物品");return;}'
142
+ + 'var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name");}).join("、");'
143
+ + 'b.setAttribute("data-t","请加载居家管家技能,帮我确认收货:"+names+" 编号["+ids+"]");}'
140
144
  + '</script>';
141
145
  // 主 operations 唯一复制区(envelope 投影;上下两分支旧按钮已删,只留这一处)。
142
146
  body += homeCopyArea({
@@ -1 +1 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../../../src/express/pages/express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"express.js","sourceRoot":"","sources":["../../../src/express/pages/express.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,10 @@ export declare const PAGE_META: {
6
6
  readonly key: "home.shopping.query";
7
7
  readonly shape: "list";
8
8
  readonly preset: Record<string, unknown>;
9
- readonly scenarios: readonly string[];
9
+ readonly rows: readonly {
10
+ readonly key: string;
11
+ readonly preset: Record<string, unknown>;
12
+ }[];
10
13
  };
11
14
  export declare const REQUIRED_BLOCKS: {
12
15
  readonly fields: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/express/pages/list.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,MAAe,CAAC;AAEtC,eAAO,MAAM,SAAS;;;;;qBAKO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;wBAC1B,SAAS,MAAM,EAAE;CACjC,CAAC;AAEX,eAAO,MAAM,eAAe,EA0BvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAqCF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAiGvH"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/express/pages/list.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,MAAe,CAAC;AAEtC,eAAO,MAAM,SAAS;;;;;qBAKO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACgB,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE;CACvI,CAAC;AAEX,eAAO,MAAM,eAAe,EA0BvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAqCF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAuGvH"}
@@ -14,7 +14,7 @@ export const PAGE_META = {
14
14
  key: 'home.shopping.query',
15
15
  shape: 'list',
16
16
  preset: { "kind": "list" },
17
- scenarios: ["SM5-1"],
17
+ rows: [{ "key": "home.shopping.query", "preset": { "kind": "list" } }],
18
18
  };
19
19
  export const REQUIRED_BLOCKS = {
20
20
  "empty": [
@@ -102,8 +102,12 @@ export function renderFamilyPage(env, ctx) {
102
102
  const P_ADD = '请加载居家管家技能,帮我添加购物清单条目';
103
103
  const P_MISSING = '请加载居家管家技能,帮我检测缺货';
104
104
  const P_CLEAN = '请加载居家管家技能,帮我清理已买的购物清单条目';
105
+ // #890:「我买到了」的初始载荷(点后由页内 `onclick` 按当刻勾选改写 `data-t`)。
106
+ const P_CHECK = '请加载居家管家技能,帮我标记购物清单条目已买到';
105
107
  let body = style;
106
- body += '<p class="x-lead">勾选买到的条目,点下方的按钮划掉,例行物品会按周期自动提醒</p>';
108
+ // #890(说明句与真实行为不符):原文写「点下方的按钮划掉」——点下方那颗只把一句指令复制进剪贴板,
109
+ // 页上不会划掉任何条目;划掉是回到对话里让助手执行的那一步。改成两句都说得上的说法。
110
+ body += '<p class="x-lead">勾选买到的条目,点「我买到了」复制指令</p>';
107
111
  body += '<div class="x-metrics">'
108
112
  + '<span class="x-pill">待买 ' + pending.length + ' 件</span>'
109
113
  + '<span class="x-pill">已买 ' + done.length + ' 件</span>'
@@ -124,26 +128,28 @@ export function renderFamilyPage(env, ctx) {
124
128
  + '<div class="x-note">数量 ' + it.quantity + '</div></div></div>').join('')
125
129
  + '</div></section>';
126
130
  body += '<section><div class="x-actions">'
127
- + '<button class="x-btn" onclick="xCheck()">我买到了</button>'
128
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_NEW) + '">清单外新买的</button>'
129
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_RESTOCK) + '">给已有物品补数量</button>'
130
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_ADD) + '">记一笔要买的</button>'
131
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_MISSING) + '">看看家里缺什么</button>'
132
- + '<button class="x-btn danger" data-prompt="' + escapeHtml(P_CLEAN) + '">清掉已买记录</button>'
131
+ + '<button class="x-btn" data-action-id="x-check" data-t="' + escapeHtml(P_CHECK) + '" onclick="xCheck(this)">我买到了</button>'
132
+ + '<button class="x-btn ghost" data-action-id="x-new" data-t="' + escapeHtml(P_NEW) + '">清单外新买的</button>'
133
+ + '<button class="x-btn ghost" data-action-id="x-restock" data-t="' + escapeHtml(P_RESTOCK) + '">给已有物品补数量</button>'
134
+ + '<button class="x-btn ghost" data-action-id="x-add" data-t="' + escapeHtml(P_ADD) + '">记一笔要买的</button>'
135
+ + '<button class="x-btn ghost" data-action-id="x-missing" data-t="' + escapeHtml(P_MISSING) + '">看看家里缺什么</button>'
136
+ + '<button class="x-btn danger" data-action-id="x-clean" data-t="' + escapeHtml(P_CLEAN) + '">清掉已买记录</button>'
133
137
  + '</div></section>';
134
138
  }
135
139
  else {
136
140
  body += '<section><div class="x-empty">清单是空的<br>可以先看看家里缺什么,或者记一笔要买的<div class="x-actions" style="justify-content:center">'
137
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_MISSING) + '">看看家里缺什么</button>'
138
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_ADD) + '">记一笔要买的</button>'
141
+ + '<button class="x-btn ghost" data-action-id="x-missing" data-t="' + escapeHtml(P_MISSING) + '">看看家里缺什么</button>'
142
+ + '<button class="x-btn ghost" data-action-id="x-add" data-t="' + escapeHtml(P_ADD) + '">记一笔要买的</button>'
139
143
  + '</div></div></section>';
140
144
  }
145
+ // #890:复制路径交给公共层共享运行时(`<!--SHARED-HELPERS-->` 槽的 `buildSharedHelpersJs`),
146
+ // 不再页内自造 `xCopy`:按钮带 `data-action-id` + `data-t` 即由 document 委派复制,
147
+ // 双通道复制 + toast + `execCommand` 降级都走共用件。按当刻勾选现算的那一颗,用元素级
148
+ // `onclick` 先把载荷写回自己的 `data-t`(目标阶段先于 document 冒泡),没勾选时置空并保留拦截提示。
141
149
  body += '<script>'
142
- + 'function xCopy(t){if(navigator.clipboard){navigator.clipboard.writeText(t);}}'
143
- + 'document.querySelectorAll("[data-prompt]").forEach(function(b){b.addEventListener("click",function(){xCopy(b.getAttribute("data-prompt")||"");});});'
144
- + 'function xCheck(){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){alert("请先勾选买到的条目");return;}var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name");}).join("、");xCopy("请加载居家管家技能,帮我标记购物清单条目已买到:"+names+" 编号["+ids+"]");}'
145
- // #886:`xCopyData`/`xCopyLog` 两个空壳随复制区一起删(本页复制数据/复制日志已由
146
- // `homeCopyArea` 出:三格式菜单+六段日志),这两颗 `function (){}` 没有调用方。
150
+ + 'function xCheck(b){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){b.setAttribute("data-t","");alert("请先勾选买到的条目");return;}'
151
+ + 'var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name");}).join("、");'
152
+ + 'b.setAttribute("data-t","请加载居家管家技能,帮我标记购物清单条目已买到:"+names+" 编号["+ids+"]");}'
147
153
  + '</script>';
148
154
  // 主 operations 唯一复制区(envelope 投影;旧标题计数按钮已删,只留这一处)。
149
155
  body += homeCopyArea({
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/express/pages/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/express/pages/list.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,10 @@ export declare const PAGE_META: {
6
6
  readonly key: "home.shopping.query";
7
7
  readonly shape: "list";
8
8
  readonly preset: Record<string, unknown>;
9
- readonly scenarios: readonly string[];
9
+ readonly rows: readonly {
10
+ readonly key: string;
11
+ readonly preset: Record<string, unknown>;
12
+ }[];
10
13
  };
11
14
  export declare const REQUIRED_BLOCKS: {
12
15
  readonly fields: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"missing.d.ts","sourceRoot":"","sources":["../../../src/express/pages/missing.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,SAAkB,CAAC;AAEzC,eAAO,MAAM,SAAS;;;;;qBAKU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;wBAC7B,SAAS,MAAM,EAAE;CACjC,CAAC;AAEX,eAAO,MAAM,eAAe,EAuBvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAwCF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CA8EvH"}
1
+ {"version":3,"file":"missing.d.ts","sourceRoot":"","sources":["../../../src/express/pages/missing.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,SAAkB,CAAC;AAEzC,eAAO,MAAM,SAAS;;;;;qBAKU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACgB,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE;CAC1I,CAAC;AAEX,eAAO,MAAM,eAAe,EAuBvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAwCF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAmFvH"}
@@ -14,7 +14,7 @@ export const PAGE_META = {
14
14
  key: 'home.shopping.query',
15
15
  shape: 'list',
16
16
  preset: { "kind": "missing" },
17
- scenarios: ["SM5-2"],
17
+ rows: [{ "key": "home.shopping.query", "preset": { "kind": "missing" } }],
18
18
  };
19
19
  export const REQUIRED_BLOCKS = {
20
20
  "empty": [
@@ -91,6 +91,8 @@ export function renderFamilyPage(env, ctx) {
91
91
  + '</style>';
92
92
  const P_SCOPE = '请加载居家管家技能,帮我按范围检测缺货';
93
93
  const P_TH = '请加载居家管家技能,帮我查看囤货并设置阈值';
94
+ // #890:「加入购物清单」的初始载荷(点后由页内 `onclick` 按当刻勾选改写 `data-t`)。
95
+ const P_LIST = '请加载居家管家技能,帮我将缺货物品加入购物清单';
94
96
  let body = style;
95
97
  // #817(③双端不塌)第二波:说明句压到 390 档一行放得下(20 字)——原来 25 字在 390 档折行后
96
98
  // 第二行只剩一个「出」孤字。
@@ -108,22 +110,25 @@ export function renderFamilyPage(env, ctx) {
108
110
  + '<div class="x-meta">' + escapeHtml(it.category_name) + ' 当前 ' + it.current + ' 阈值 ' + it.threshold + '</div></div>'
109
111
  + '<span class="x-suggest">建议买 <b>' + it.suggest + '</b></span></div>').join('')
110
112
  + '</div><div class="x-actions">'
111
- + '<button class="x-btn" onclick="xToList()">加入购物清单</button>'
112
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_SCOPE) + '">按范围检测</button>'
113
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_TH) + '">设置阈值</button>'
113
+ + '<button class="x-btn" data-action-id="x-to-list" data-t="' + escapeHtml(P_LIST) + '" onclick="xToList(this)">加入购物清单</button>'
114
+ + '<button class="x-btn ghost" data-action-id="x-scope" data-t="' + escapeHtml(P_SCOPE) + '">按范围检测</button>'
115
+ + '<button class="x-btn ghost" data-action-id="x-th" data-t="' + escapeHtml(P_TH) + '">设置阈值</button>'
114
116
  + '</div></section>';
115
117
  }
116
118
  else {
117
119
  body += '<section><div class="x-empty">库存充足没有缺货<br>范围 ' + escapeHtml(scope) + '<div class="x-actions" style="justify-content:center">'
118
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_TH) + '">设置阈值</button>'
120
+ + '<button class="x-btn ghost" data-action-id="x-th" data-t="' + escapeHtml(P_TH) + '">设置阈值</button>'
119
121
  + '</div></div></section>';
120
122
  }
123
+ // #890:复制路径交给公共层共享运行时(`<!--SHARED-HELPERS-->` 槽的 `buildSharedHelpersJs`)——
124
+ // 页内自造 `xCopy`(无反馈/无 `catch`/无 `execCommand` 降级)与 #886 收口时漏删的
125
+ // `xCopyData`/`xCopyLog` 两个空壳(`function (){}`,无调用方)一并清掉。接法=按钮带
126
+ // `data-action-id` + `data-t`;按当刻勾选现算的那一颗,用元素级 `onclick` 先把载荷写回自己的
127
+ // `data-t`(目标阶段先于 document 冒泡),没勾选时置空并保留拦截提示。
121
128
  body += '<script>'
122
- + 'function xCopy(t){if(navigator.clipboard){navigator.clipboard.writeText(t);}}'
123
- + 'document.querySelectorAll("[data-prompt]").forEach(function(b){b.addEventListener("click",function(){xCopy(b.getAttribute("data-prompt")||"");});});'
124
- + 'function xToList(){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){alert("请先勾选缺货物品");return;}var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name")+"建议买"+c.getAttribute("data-suggest");}).join("、");xCopy("请加载居家管家技能,帮我将缺货物品加入购物清单:"+names+" 编号["+ids+"]");}'
125
- + 'function xCopyData(){}'
126
- + 'function xCopyLog(){}'
129
+ + 'function xToList(b){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){b.setAttribute("data-t","");alert("请先勾选缺货物品");return;}'
130
+ + 'var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name")+"建议买"+c.getAttribute("data-suggest");}).join("、");'
131
+ + 'b.setAttribute("data-t","请加载居家管家技能,帮我将缺货物品加入购物清单:"+names+" 编号["+ids+"]");}'
127
132
  + '</script>';
128
133
  // 主 operations 唯一复制区(envelope 投影;上下两分支旧按钮已删,只留这一处)。
129
134
  body += homeCopyArea({
@@ -1 +1 @@
1
- {"version":3,"file":"missing.js","sourceRoot":"","sources":["../../../src/express/pages/missing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"missing.js","sourceRoot":"","sources":["../../../src/express/pages/missing.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,10 @@ export declare const PAGE_META: {
6
6
  readonly key: "home.shopping.query";
7
7
  readonly shape: "list";
8
8
  readonly preset: Record<string, unknown>;
9
- readonly scenarios: readonly string[];
9
+ readonly rows: readonly {
10
+ readonly key: string;
11
+ readonly preset: Record<string, unknown>;
12
+ }[];
10
13
  };
11
14
  export declare const REQUIRED_BLOCKS: {
12
15
  readonly fields: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"stock.d.ts","sourceRoot":"","sources":["../../../src/express/pages/stock.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,OAAgB,CAAC;AAEvC,eAAO,MAAM,SAAS;;;;;qBAKQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;wBAC3B,SAAS,MAAM,EAAE;CACjC,CAAC;AAEX,eAAO,MAAM,eAAe,EA0BvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AA2CF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CA4FvH"}
1
+ {"version":3,"file":"stock.d.ts","sourceRoot":"","sources":["../../../src/express/pages/stock.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,OAAgB,CAAC;AAEvC,eAAO,MAAM,SAAS;;;;;qBAKQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACgB,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE;CACxI,CAAC;AAEX,eAAO,MAAM,eAAe,EA0BvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AA2CF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAwGvH"}
@@ -18,7 +18,7 @@ export const PAGE_META = {
18
18
  key: 'home.shopping.query',
19
19
  shape: 'list',
20
20
  preset: { "kind": "stock" },
21
- scenarios: ["SM5-4"],
21
+ rows: [{ "key": "home.shopping.query", "preset": { "kind": "stock" } }],
22
22
  };
23
23
  export const REQUIRED_BLOCKS = {
24
24
  "empty": [
@@ -99,12 +99,17 @@ export function renderFamilyPage(env, ctx) {
99
99
  + '.x-check{width:44px;height:44px;flex:none;appearance:none;border:1.5px solid #c7c7cc;border-radius:12px;background:#fff center/22px 22px no-repeat;margin:0 6px 0 0;vertical-align:middle}.x-check:checked{border-color:#0a63ce;background-color:#0a63ce;background-image:url(\'data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%223%22><path d=%22M4 12l6 6L20 6%22/></svg>\')}'
100
100
  + '.x-empty{text-align:center;color:#666;padding:26px 0;line-height:2}'
101
101
  // #817 第二波(③双端不塌):390/820 以下原先把 `.x-btn` 一律拉成整行——行内那颗「设阈值」
102
- // 因此变整行白条(一页堆出两千多像素)。收窄到动作行 `.x-actions > .x-btn` 才拉满,
103
- // 行内的按钮按内容宽自持(`.x-row` 竖排时 `align-items:stretch` 会把它横着撑满,故还它 flex-start)。
104
- + '@media(max-width:820px){.x-row{flex-direction:column;align-items:stretch}.x-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}'
105
- + '.x-actions>.x-btn{width:100%}.x-row>.x-btn{align-self:flex-start}}'
102
+ // 因此变整行白条(一页堆出两千多像素)。收窄到动作行 `.x-actions > .x-btn` 才拉满。
103
+ // #890:`.x-row` 一并改回横排——上一波只收了 `.x-btn`,行本身仍 `flex-direction:column`,
104
+ // 44px 勾选件因此独占首行(行高 68→128px,一屏少看一条);口径与同域 43/44/45 三页一致
105
+ // (`list.ts:120`/`missing.ts:114`/`express.ts:127` 都是横排)。行内按钮回到垂直居中。
106
+ + '@media(max-width:820px){.x-row{flex-direction:row;align-items:center}.x-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}'
107
+ + '.x-actions>.x-btn{width:100%}.x-row>.x-btn{align-self:center}}'
106
108
  + '</style>';
107
109
  const P_MISSING = '请加载居家管家技能,帮我检测缺货';
110
+ // #890:选择区两颗的初始载荷(点了以后由页内监听按当刻勾选改写 `data-t`,见件尾脚本)。
111
+ const P_FIX = '请加载居家管家技能,帮我修正物品实际数量';
112
+ const P_THR = '请加载居家管家技能,帮我设置囤货阈值';
108
113
  let body = style;
109
114
  body += '<p class="x-lead">阈值是缺货检测的提醒线,盘点时发现数量不对,勾选后修正</p>';
110
115
  body += '<div class="x-metrics">'
@@ -120,14 +125,14 @@ export function renderFamilyPage(env, ctx) {
120
125
  + '<div class="x-meta">' + escapeHtml(it.category_name) + ' 阈值 ' + it.threshold + ' 当前 ' + it.current + '</div></div>'
121
126
  + '</div>').join('')
122
127
  + '</div><div class="x-actions">'
123
- + '<button class="x-btn" onclick="xFix()">修正实际数量</button>'
124
- + '<button class="x-btn ghost" onclick="xThr()">设阈值</button>'
125
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_MISSING) + '">检测缺货</button>'
128
+ + '<button class="x-btn" data-action-id="x-fix" data-t="' + escapeHtml(P_FIX) + '" onclick="xFix(this)">修正实际数量</button>'
129
+ + '<button class="x-btn ghost" data-action-id="x-thr" data-t="' + escapeHtml(P_THR) + '" onclick="xThr(this)">设阈值</button>'
130
+ + '<button class="x-btn ghost" data-action-id="x-missing" data-t="' + escapeHtml(P_MISSING) + '">检测缺货</button>'
126
131
  + '</div></section>';
127
132
  }
128
133
  else {
129
134
  body += '<section><div class="x-empty">还没有设阈值的物品<br>给常用消耗品设个阈值,缺货检测就能自动提醒<div class="x-actions" style="justify-content:center">'
130
- + '<button class="x-btn ghost" data-prompt="' + escapeHtml(P_MISSING) + '">检测缺货</button>'
135
+ + '<button class="x-btn ghost" data-action-id="x-missing" data-t="' + escapeHtml(P_MISSING) + '">检测缺货</button>'
131
136
  + '</div></div></section>';
132
137
  }
133
138
  if (hints.length) {
@@ -136,17 +141,24 @@ export function renderFamilyPage(env, ctx) {
136
141
  const uniqHints = hints.filter((h) => (seenHint.has(h.name) ? false : seenHint.add(h.name)));
137
142
  body += '<section><h2>常用品还没设阈值</h2><div>'
138
143
  + uniqHints.map((h) => '<div class="x-row"><div class="x-name">' + escapeHtml(latinFree(h.name)) + '</div><div class="x-meta">' + escapeHtml(h.category_name) + '</div>'
139
- + '<button class="x-btn ghost" data-id="' + h.id + '" data-name="' + escapeHtml(h.name) + '" onclick="xOneThr(this)">设阈值</button></div>').join('')
144
+ + '<button class="x-btn ghost" data-action-id="x-one-thr" data-t="' + escapeHtml(P_THR) + '" data-id="' + h.id + '" data-name="' + escapeHtml(h.name) + '" onclick="xOneThr(this)">设阈值</button></div>').join('')
140
145
  + '</div></section>';
141
146
  }
147
+ // #890:本页原先自带 `xCopy(t){if(navigator.clipboard){…}}`——无反馈、无 `catch`、无 `execCommand`
148
+ // 降级。按铁律一「把对方那份抄一遍不算走了接口」,不在这里再抄一份更厚的 `xCopy`,而是把复制
149
+ // 交给公共层共享运行时(模板 `<!--SHARED-HELPERS-->` 槽的 `buildSharedHelpersJs`,见 `render/html.ts`):
150
+ // 双通道复制 + toast 反馈 + `execCommand` 降级 + 两通道皆败的失败提示。接法=按钮带
151
+ // `data-action-id` + `data-t`,运行时在 document 上委派(与 #886 的复制区同一口径)。
152
+ // 选择区两颗要按当刻勾选现算载荷:元素级 `onclick` 在目标阶段先跑、把载荷写回自己的 `data-t`,
153
+ // 随后才冒泡到 document 被复制;没勾选时把 `data-t` 置空(空串在共享运行时里短路、不出
154
+ // 「已复制」的假反馈)并保留原来的拦截提示。
142
155
  body += '<script>'
143
- + 'function xCopy(t){if(navigator.clipboard){navigator.clipboard.writeText(t);}}'
144
- + 'document.querySelectorAll("[data-prompt]").forEach(function(b){if(b.getAttribute("onclick"))return;b.addEventListener("click",function(){xCopy(b.getAttribute("data-prompt")||"");});});'
145
- + 'function xFix(){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){alert("请先勾选要修正的物品");return;}var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name");}).join("、");xCopy("请加载居家管家技能,帮我修正物品实际数量:"+names+" 编号["+ids+"] 修正后数量___");}'
146
- + 'function xThr(){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){alert("请先勾选要设置阈值的物品");return;}var names=s.map(function(c){return c.getAttribute("data-name");}).join("、");xCopy("请加载居家管家技能,帮我设置囤货阈值:"+names+" 阈值___");}'
147
- + 'function xOneThr(b){xCopy("请加载居家管家技能,帮我设置囤货阈值:"+b.getAttribute("data-name")+" 编号["+b.getAttribute("data-id")+"] 阈值___");}'
148
- // #886:`xCopyData`/`xCopyLog` 两个空壳随复制区一起删(本页复制数据/复制日志已由
149
- // `homeCopyArea` 出:三格式菜单+六段日志),这两颗 `function (){}` 没有调用方。
156
+ + 'function xFix(b){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){b.setAttribute("data-t","");alert("请先勾选要修正的物品");return;}'
157
+ + 'var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name");}).join("、");'
158
+ + 'b.setAttribute("data-t","请加载居家管家技能,帮我修正物品实际数量:"+names+" 编号["+ids+"] 修正后数量___");}'
159
+ + 'function xThr(b){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){b.setAttribute("data-t","");alert("请先勾选要设置阈值的物品");return;}'
160
+ + 'b.setAttribute("data-t","请加载居家管家技能,帮我设置囤货阈值:"+s.map(function(c){return c.getAttribute("data-name");}).join("、")+" 阈值___");}'
161
+ + 'function xOneThr(b){b.setAttribute("data-t","请加载居家管家技能,帮我设置囤货阈值:"+b.getAttribute("data-name")+" 编号["+b.getAttribute("data-id")+"] 阈值___");}'
150
162
  + '</script>';
151
163
  // 主 operations 唯一复制区(envelope 投影;上下两分支旧按钮已删,只留这一处)。
152
164
  body += homeCopyArea({