ai-engineering-init 1.1.0

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 (313) hide show
  1. package/.claude/agents/code-reviewer.md +139 -0
  2. package/.claude/agents/project-manager.md +159 -0
  3. package/.claude/audio/completed.wav +0 -0
  4. package/.claude/commands/add-todo.md +255 -0
  5. package/.claude/commands/check.md +210 -0
  6. package/.claude/commands/crud.md +454 -0
  7. package/.claude/commands/dev.md +503 -0
  8. package/.claude/commands/init-docs.md +681 -0
  9. package/.claude/commands/next.md +251 -0
  10. package/.claude/commands/progress.md +242 -0
  11. package/.claude/commands/start.md +199 -0
  12. package/.claude/commands/sync.md +307 -0
  13. package/.claude/commands/update-status.md +428 -0
  14. package/.claude/docs/Mixin/344/275/277/347/224/250/346/214/207/345/215/227.md +299 -0
  15. package/.claude/docs/README.md +167 -0
  16. package/.claude/docs//345/211/215/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +599 -0
  17. package/.claude/docs//345/220/216/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +726 -0
  18. package/.claude/docs//345/267/245/344/275/234/346/265/201/345/274/200/345/217/221/346/214/207/345/215/227.md +714 -0
  19. package/.claude/docs//345/267/245/345/205/267/347/261/273/344/275/277/347/224/250/346/214/207/345/215/227.md +463 -0
  20. package/.claude/docs//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/350/247/204/350/214/203.md +390 -0
  21. package/.claude/docs//346/226/260/345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213/350/247/204/350/214/203.md +688 -0
  22. package/.claude/docs//346/226/260/351/241/271/347/233/256/345/274/200/345/217/221/346/265/201/347/250/213.md +365 -0
  23. package/.claude/docs//346/241/206/346/236/266/350/257/264/346/230/216.md +393 -0
  24. package/.claude/docs//350/267/257/347/224/261/351/205/215/347/275/256/346/214/207/345/215/227.md +246 -0
  25. package/.claude/framework-config.json +73 -0
  26. package/.claude/hooks/pre-tool-use.js +117 -0
  27. package/.claude/hooks/skill-forced-eval.js +167 -0
  28. package/.claude/hooks/stop.js +58 -0
  29. package/.claude/settings.json +41 -0
  30. package/.claude/skills/add-skill/SKILL.md +352 -0
  31. package/.claude/skills/api-development/SKILL.md +560 -0
  32. package/.claude/skills/architecture-design/SKILL.md +756 -0
  33. package/.claude/skills/backend-annotations/SKILL.md +674 -0
  34. package/.claude/skills/banana-image/CHANGELOG.md +37 -0
  35. package/.claude/skills/banana-image/README.md +146 -0
  36. package/.claude/skills/banana-image/SKILL.md +164 -0
  37. package/.claude/skills/banana-image/assets/logo.png +0 -0
  38. package/.claude/skills/banana-image/references/advanced-usage.md +189 -0
  39. package/.claude/skills/banana-image/scripts/apply_template.py +125 -0
  40. package/.claude/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  41. package/.claude/skills/banana-image/scripts/batch_prep.py +82 -0
  42. package/.claude/skills/banana-image/scripts/package-lock.json +1437 -0
  43. package/.claude/skills/banana-image/scripts/package.json +18 -0
  44. package/.claude/skills/banana-image/scripts/requirements.txt +10 -0
  45. package/.claude/skills/banana-image/templates/poster.json +22 -0
  46. package/.claude/skills/banana-image/templates/product.json +17 -0
  47. package/.claude/skills/banana-image/templates/social.json +22 -0
  48. package/.claude/skills/banana-image/templates/thumbnail.json +17 -0
  49. package/.claude/skills/brainstorm/SKILL.md +648 -0
  50. package/.claude/skills/bug-detective/SKILL.md +1206 -0
  51. package/.claude/skills/code-patterns/SKILL.md +590 -0
  52. package/.claude/skills/collaborating-with-codex/SKILL.md +174 -0
  53. package/.claude/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  54. package/.claude/skills/collaborating-with-gemini/SKILL.md +194 -0
  55. package/.claude/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  56. package/.claude/skills/crud-development/SKILL.md +649 -0
  57. package/.claude/skills/data-permission/SKILL.md +599 -0
  58. package/.claude/skills/database-ops/SKILL.md +407 -0
  59. package/.claude/skills/error-handler/SKILL.md +371 -0
  60. package/.claude/skills/file-oss-management/SKILL.md +863 -0
  61. package/.claude/skills/git-workflow/SKILL.md +375 -0
  62. package/.claude/skills/json-serialization/SKILL.md +357 -0
  63. package/.claude/skills/leniu-api-development/SKILL.md +803 -0
  64. package/.claude/skills/leniu-architecture-design/SKILL.md +598 -0
  65. package/.claude/skills/leniu-backend-annotations/SKILL.md +664 -0
  66. package/.claude/skills/leniu-code-patterns/SKILL.md +365 -0
  67. package/.claude/skills/leniu-crud-development/SKILL.md +1110 -0
  68. package/.claude/skills/leniu-data-permission/SKILL.md +256 -0
  69. package/.claude/skills/leniu-database-ops/SKILL.md +426 -0
  70. package/.claude/skills/leniu-error-handler/SKILL.md +462 -0
  71. package/.claude/skills/leniu-java-amount-handling/SKILL.md +461 -0
  72. package/.claude/skills/leniu-java-code-style/SKILL.md +510 -0
  73. package/.claude/skills/leniu-java-concurrent/SKILL.md +400 -0
  74. package/.claude/skills/leniu-java-entity/SKILL.md +751 -0
  75. package/.claude/skills/leniu-java-export/SKILL.md +560 -0
  76. package/.claude/skills/leniu-java-logging/SKILL.md +832 -0
  77. package/.claude/skills/leniu-java-mq/SKILL.md +338 -0
  78. package/.claude/skills/leniu-java-mybatis/SKILL.md +640 -0
  79. package/.claude/skills/leniu-java-report-query-param/SKILL.md +291 -0
  80. package/.claude/skills/leniu-java-task/SKILL.md +367 -0
  81. package/.claude/skills/leniu-java-total-line/SKILL.md +195 -0
  82. package/.claude/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  83. package/.claude/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  84. package/.claude/skills/leniu-mealtime/SKILL.md +215 -0
  85. package/.claude/skills/leniu-redis-cache/SKILL.md +316 -0
  86. package/.claude/skills/leniu-security-guard/SKILL.md +520 -0
  87. package/.claude/skills/leniu-utils-toolkit/SKILL.md +380 -0
  88. package/.claude/skills/openspec-apply-change/SKILL.md +156 -0
  89. package/.claude/skills/openspec-archive-change/SKILL.md +114 -0
  90. package/.claude/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  91. package/.claude/skills/openspec-continue-change/SKILL.md +118 -0
  92. package/.claude/skills/openspec-explore/SKILL.md +290 -0
  93. package/.claude/skills/openspec-ff-change/SKILL.md +101 -0
  94. package/.claude/skills/openspec-new-change/SKILL.md +74 -0
  95. package/.claude/skills/openspec-onboard/SKILL.md +529 -0
  96. package/.claude/skills/openspec-sync-specs/SKILL.md +138 -0
  97. package/.claude/skills/openspec-verify-change/SKILL.md +168 -0
  98. package/.claude/skills/performance-doctor/SKILL.md +627 -0
  99. package/.claude/skills/project-navigator/SKILL.md +305 -0
  100. package/.claude/skills/redis-cache/SKILL.md +839 -0
  101. package/.claude/skills/scheduled-jobs/SKILL.md +633 -0
  102. package/.claude/skills/security-guard/SKILL.md +748 -0
  103. package/.claude/skills/sms-mail/SKILL.md +766 -0
  104. package/.claude/skills/social-login/SKILL.md +668 -0
  105. package/.claude/skills/store-pc/SKILL.md +366 -0
  106. package/.claude/skills/task-tracker/SKILL.md +307 -0
  107. package/.claude/skills/tech-decision/SKILL.md +393 -0
  108. package/.claude/skills/tenant-management/SKILL.md +603 -0
  109. package/.claude/skills/test-development/SKILL.md +755 -0
  110. package/.claude/skills/ui-pc/SKILL.md +438 -0
  111. package/.claude/skills/utils-toolkit/SKILL.md +615 -0
  112. package/.claude/skills/websocket-sse/SKILL.md +716 -0
  113. package/.claude/skills/workflow-engine/SKILL.md +676 -0
  114. package/.claude/templates//345/276/205/345/212/236/346/270/205/345/215/225/346/250/241/346/235/277.md +56 -0
  115. package/.claude/templates//351/234/200/346/261/202/346/226/207/346/241/243/346/250/241/346/235/277.md +85 -0
  116. package/.claude/templates//351/241/271/347/233/256/347/212/266/346/200/201/346/250/241/346/235/277.md +43 -0
  117. package/.codex/skills/add-skill/SKILL.md +352 -0
  118. package/.codex/skills/add-todo/SKILL.md +269 -0
  119. package/.codex/skills/api-development/SKILL.md +693 -0
  120. package/.codex/skills/architecture-design/SKILL.md +628 -0
  121. package/.codex/skills/backend-annotations/SKILL.md +664 -0
  122. package/.codex/skills/banana-image/CHANGELOG.md +37 -0
  123. package/.codex/skills/banana-image/README.md +146 -0
  124. package/.codex/skills/banana-image/SKILL.md +164 -0
  125. package/.codex/skills/banana-image/assets/logo.png +0 -0
  126. package/.codex/skills/banana-image/references/advanced-usage.md +189 -0
  127. package/.codex/skills/banana-image/scripts/apply_template.py +125 -0
  128. package/.codex/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  129. package/.codex/skills/banana-image/scripts/batch_prep.py +82 -0
  130. package/.codex/skills/banana-image/scripts/package-lock.json +1437 -0
  131. package/.codex/skills/banana-image/scripts/package.json +18 -0
  132. package/.codex/skills/banana-image/scripts/requirements.txt +10 -0
  133. package/.codex/skills/banana-image/templates/poster.json +22 -0
  134. package/.codex/skills/banana-image/templates/product.json +17 -0
  135. package/.codex/skills/banana-image/templates/social.json +22 -0
  136. package/.codex/skills/banana-image/templates/thumbnail.json +17 -0
  137. package/.codex/skills/brainstorm/SKILL.md +648 -0
  138. package/.codex/skills/bug-detective/SKILL.md +1206 -0
  139. package/.codex/skills/check/SKILL.md +367 -0
  140. package/.codex/skills/code-patterns/SKILL.md +442 -0
  141. package/.codex/skills/collaborating-with-codex/SKILL.md +174 -0
  142. package/.codex/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  143. package/.codex/skills/collaborating-with-gemini/SKILL.md +194 -0
  144. package/.codex/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  145. package/.codex/skills/crud/SKILL.md +265 -0
  146. package/.codex/skills/crud-development/SKILL.md +637 -0
  147. package/.codex/skills/data-permission/SKILL.md +591 -0
  148. package/.codex/skills/database-ops/SKILL.md +553 -0
  149. package/.codex/skills/dev/SKILL.md +187 -0
  150. package/.codex/skills/error-handler/SKILL.md +361 -0
  151. package/.codex/skills/file-oss-management/SKILL.md +863 -0
  152. package/.codex/skills/git-workflow/SKILL.md +375 -0
  153. package/.codex/skills/init-docs/SKILL.md +194 -0
  154. package/.codex/skills/json-serialization/SKILL.md +357 -0
  155. package/.codex/skills/leniu-api-development/SKILL.md +803 -0
  156. package/.codex/skills/leniu-architecture-design/SKILL.md +594 -0
  157. package/.codex/skills/leniu-backend-annotations/SKILL.md +662 -0
  158. package/.codex/skills/leniu-code-patterns/SKILL.md +365 -0
  159. package/.codex/skills/leniu-crud-development/SKILL.md +1110 -0
  160. package/.codex/skills/leniu-data-permission/SKILL.md +256 -0
  161. package/.codex/skills/leniu-database-ops/SKILL.md +426 -0
  162. package/.codex/skills/leniu-error-handler/SKILL.md +462 -0
  163. package/.codex/skills/leniu-java-amount-handling/SKILL.md +461 -0
  164. package/.codex/skills/leniu-java-code-style/SKILL.md +510 -0
  165. package/.codex/skills/leniu-java-concurrent/SKILL.md +400 -0
  166. package/.codex/skills/leniu-java-entity/SKILL.md +751 -0
  167. package/.codex/skills/leniu-java-export/SKILL.md +560 -0
  168. package/.codex/skills/leniu-java-logging/SKILL.md +832 -0
  169. package/.codex/skills/leniu-java-mq/SKILL.md +338 -0
  170. package/.codex/skills/leniu-java-mybatis/SKILL.md +640 -0
  171. package/.codex/skills/leniu-java-report-query-param/SKILL.md +291 -0
  172. package/.codex/skills/leniu-java-task/SKILL.md +367 -0
  173. package/.codex/skills/leniu-java-total-line/SKILL.md +195 -0
  174. package/.codex/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  175. package/.codex/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  176. package/.codex/skills/leniu-mealtime/SKILL.md +215 -0
  177. package/.codex/skills/leniu-redis-cache/SKILL.md +316 -0
  178. package/.codex/skills/leniu-security-guard/SKILL.md +520 -0
  179. package/.codex/skills/leniu-utils-toolkit/SKILL.md +378 -0
  180. package/.codex/skills/next/SKILL.md +137 -0
  181. package/.codex/skills/openspec-apply-change/SKILL.md +156 -0
  182. package/.codex/skills/openspec-archive-change/SKILL.md +114 -0
  183. package/.codex/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  184. package/.codex/skills/openspec-continue-change/SKILL.md +118 -0
  185. package/.codex/skills/openspec-explore/SKILL.md +290 -0
  186. package/.codex/skills/openspec-ff-change/SKILL.md +101 -0
  187. package/.codex/skills/openspec-new-change/SKILL.md +74 -0
  188. package/.codex/skills/openspec-onboard/SKILL.md +529 -0
  189. package/.codex/skills/openspec-sync-specs/SKILL.md +138 -0
  190. package/.codex/skills/openspec-verify-change/SKILL.md +168 -0
  191. package/.codex/skills/performance-doctor/SKILL.md +627 -0
  192. package/.codex/skills/progress/SKILL.md +193 -0
  193. package/.codex/skills/project-navigator/SKILL.md +286 -0
  194. package/.codex/skills/redis-cache/SKILL.md +829 -0
  195. package/.codex/skills/scheduled-jobs/SKILL.md +633 -0
  196. package/.codex/skills/security-guard/SKILL.md +739 -0
  197. package/.codex/skills/sms-mail/SKILL.md +766 -0
  198. package/.codex/skills/social-login/SKILL.md +668 -0
  199. package/.codex/skills/start/SKILL.md +154 -0
  200. package/.codex/skills/store-pc/SKILL.md +491 -0
  201. package/.codex/skills/sync/SKILL.md +149 -0
  202. package/.codex/skills/task-tracker/SKILL.md +307 -0
  203. package/.codex/skills/tech-decision/SKILL.md +393 -0
  204. package/.codex/skills/tenant-management/SKILL.md +603 -0
  205. package/.codex/skills/test-development/SKILL.md +755 -0
  206. package/.codex/skills/ui-pc/SKILL.md +475 -0
  207. package/.codex/skills/update-status/SKILL.md +159 -0
  208. package/.codex/skills/utils-toolkit/SKILL.md +593 -0
  209. package/.codex/skills/websocket-sse/SKILL.md +716 -0
  210. package/.codex/skills/workflow-engine/SKILL.md +676 -0
  211. package/.cursor/agents/code-reviewer.md +139 -0
  212. package/.cursor/agents/project-manager.md +159 -0
  213. package/.cursor/commands/opsx-apply.md +152 -0
  214. package/.cursor/commands/opsx-archive.md +157 -0
  215. package/.cursor/commands/opsx-bulk-archive.md +242 -0
  216. package/.cursor/commands/opsx-continue.md +114 -0
  217. package/.cursor/commands/opsx-explore.md +174 -0
  218. package/.cursor/commands/opsx-ff.md +94 -0
  219. package/.cursor/commands/opsx-new.md +69 -0
  220. package/.cursor/commands/opsx-onboard.md +525 -0
  221. package/.cursor/commands/opsx-sync.md +134 -0
  222. package/.cursor/commands/opsx-verify.md +164 -0
  223. package/.cursor/mcp.json +22 -0
  224. package/.cursor/skills/add-skill/SKILL.md +352 -0
  225. package/.cursor/skills/api-development/SKILL.md +560 -0
  226. package/.cursor/skills/architecture-design/SKILL.md +756 -0
  227. package/.cursor/skills/backend-annotations/SKILL.md +674 -0
  228. package/.cursor/skills/banana-image/CHANGELOG.md +37 -0
  229. package/.cursor/skills/banana-image/README.md +146 -0
  230. package/.cursor/skills/banana-image/SKILL.md +164 -0
  231. package/.cursor/skills/banana-image/assets/logo.png +0 -0
  232. package/.cursor/skills/banana-image/references/advanced-usage.md +189 -0
  233. package/.cursor/skills/banana-image/scripts/apply_template.py +125 -0
  234. package/.cursor/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  235. package/.cursor/skills/banana-image/scripts/batch_prep.py +82 -0
  236. package/.cursor/skills/banana-image/scripts/package-lock.json +1437 -0
  237. package/.cursor/skills/banana-image/scripts/package.json +18 -0
  238. package/.cursor/skills/banana-image/scripts/requirements.txt +10 -0
  239. package/.cursor/skills/banana-image/templates/poster.json +22 -0
  240. package/.cursor/skills/banana-image/templates/product.json +17 -0
  241. package/.cursor/skills/banana-image/templates/social.json +22 -0
  242. package/.cursor/skills/banana-image/templates/thumbnail.json +17 -0
  243. package/.cursor/skills/brainstorm/SKILL.md +648 -0
  244. package/.cursor/skills/bug-detective/SKILL.md +1206 -0
  245. package/.cursor/skills/code-patterns/SKILL.md +590 -0
  246. package/.cursor/skills/collaborating-with-codex/SKILL.md +174 -0
  247. package/.cursor/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  248. package/.cursor/skills/collaborating-with-gemini/SKILL.md +194 -0
  249. package/.cursor/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  250. package/.cursor/skills/crud-development/SKILL.md +649 -0
  251. package/.cursor/skills/data-permission/SKILL.md +599 -0
  252. package/.cursor/skills/database-ops/SKILL.md +407 -0
  253. package/.cursor/skills/error-handler/SKILL.md +371 -0
  254. package/.cursor/skills/file-oss-management/SKILL.md +863 -0
  255. package/.cursor/skills/git-workflow/SKILL.md +375 -0
  256. package/.cursor/skills/json-serialization/SKILL.md +357 -0
  257. package/.cursor/skills/leniu-api-development/SKILL.md +803 -0
  258. package/.cursor/skills/leniu-architecture-design/SKILL.md +598 -0
  259. package/.cursor/skills/leniu-backend-annotations/SKILL.md +664 -0
  260. package/.cursor/skills/leniu-code-patterns/SKILL.md +365 -0
  261. package/.cursor/skills/leniu-crud-development/SKILL.md +1110 -0
  262. package/.cursor/skills/leniu-data-permission/SKILL.md +256 -0
  263. package/.cursor/skills/leniu-database-ops/SKILL.md +426 -0
  264. package/.cursor/skills/leniu-error-handler/SKILL.md +462 -0
  265. package/.cursor/skills/leniu-java-amount-handling/SKILL.md +461 -0
  266. package/.cursor/skills/leniu-java-code-style/SKILL.md +510 -0
  267. package/.cursor/skills/leniu-java-concurrent/SKILL.md +400 -0
  268. package/.cursor/skills/leniu-java-entity/SKILL.md +751 -0
  269. package/.cursor/skills/leniu-java-export/SKILL.md +560 -0
  270. package/.cursor/skills/leniu-java-logging/SKILL.md +832 -0
  271. package/.cursor/skills/leniu-java-mq/SKILL.md +338 -0
  272. package/.cursor/skills/leniu-java-mybatis/SKILL.md +640 -0
  273. package/.cursor/skills/leniu-java-report-query-param/SKILL.md +291 -0
  274. package/.cursor/skills/leniu-java-task/SKILL.md +367 -0
  275. package/.cursor/skills/leniu-java-total-line/SKILL.md +195 -0
  276. package/.cursor/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  277. package/.cursor/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  278. package/.cursor/skills/leniu-mealtime/SKILL.md +215 -0
  279. package/.cursor/skills/leniu-redis-cache/SKILL.md +316 -0
  280. package/.cursor/skills/leniu-security-guard/SKILL.md +520 -0
  281. package/.cursor/skills/leniu-utils-toolkit/SKILL.md +380 -0
  282. package/.cursor/skills/openspec-apply-change/SKILL.md +156 -0
  283. package/.cursor/skills/openspec-archive-change/SKILL.md +114 -0
  284. package/.cursor/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  285. package/.cursor/skills/openspec-continue-change/SKILL.md +118 -0
  286. package/.cursor/skills/openspec-explore/SKILL.md +290 -0
  287. package/.cursor/skills/openspec-ff-change/SKILL.md +101 -0
  288. package/.cursor/skills/openspec-new-change/SKILL.md +74 -0
  289. package/.cursor/skills/openspec-onboard/SKILL.md +529 -0
  290. package/.cursor/skills/openspec-sync-specs/SKILL.md +138 -0
  291. package/.cursor/skills/openspec-verify-change/SKILL.md +168 -0
  292. package/.cursor/skills/performance-doctor/SKILL.md +627 -0
  293. package/.cursor/skills/project-navigator/SKILL.md +305 -0
  294. package/.cursor/skills/redis-cache/SKILL.md +839 -0
  295. package/.cursor/skills/scheduled-jobs/SKILL.md +633 -0
  296. package/.cursor/skills/security-guard/SKILL.md +748 -0
  297. package/.cursor/skills/sms-mail/SKILL.md +766 -0
  298. package/.cursor/skills/social-login/SKILL.md +668 -0
  299. package/.cursor/skills/store-pc/SKILL.md +366 -0
  300. package/.cursor/skills/task-tracker/SKILL.md +307 -0
  301. package/.cursor/skills/tech-decision/SKILL.md +393 -0
  302. package/.cursor/skills/tenant-management/SKILL.md +603 -0
  303. package/.cursor/skills/test-development/SKILL.md +755 -0
  304. package/.cursor/skills/ui-pc/SKILL.md +438 -0
  305. package/.cursor/skills/utils-toolkit/SKILL.md +615 -0
  306. package/.cursor/skills/websocket-sse/SKILL.md +716 -0
  307. package/.cursor/skills/workflow-engine/SKILL.md +676 -0
  308. package/AGENTS.md +669 -0
  309. package/CLAUDE.md +205 -0
  310. package/README.md +205 -0
  311. package/bin/index.js +179 -0
  312. package/init.sh +178 -0
  313. package/package.json +27 -0
@@ -0,0 +1,428 @@
1
+ # /update-status - 项目状态智能更新
2
+
3
+ 日常使用的增量更新命令。自动扫描最近的代码变更,智能更新项目文档,保持文档与代码同步。
4
+
5
+ ---
6
+
7
+ ## 适用场景
8
+
9
+ | 场景 | 说明 | 频率 |
10
+ |------|------|------|
11
+ | **功能完成** | 完成一个功能或任务后更新状态 | 实时 |
12
+ | **日常同步** | 每天开始或结束时同步代码变更 | 每天1-2次 |
13
+ | **代码审查后** | 审查完成后更新文档 | 按需 |
14
+ | **周期回顾** | 本周末更新本周的工作成果 | 每周1次 |
15
+
16
+ ---
17
+
18
+ ## 与 /sync 的区别
19
+
20
+ | 对比项 | `/update-status`(增量)| `/sync`(全量)|
21
+ |--------|----------------------|----------------|
22
+ | **执行速度** | 快速 | 较慢 |
23
+ | **扫描范围** | 最近 N 条提交 | 整个项目 |
24
+ | **处理方式** | 增量更新 | 全量重建 |
25
+ | **使用频率** | 日常频繁使用 | 每周一次 |
26
+ | **风险等级** | 低(只追加) | 中(全量覆盖)|
27
+ | **何时使用** | 功能完成后立即 | 定期整理或数据不一致时 |
28
+
29
+ ---
30
+
31
+ ## 执行流程
32
+
33
+ ### 第一步:检查和初始化文档(强制执行)
34
+
35
+ #### 1.1 验证文档存在
36
+
37
+ ```bash
38
+ # 检查文档目录
39
+ Glob pattern: "docs/*.md"
40
+
41
+ # 必要的文档文件
42
+ docs/项目状态.md # 项目进度
43
+ docs/需求文档.md # 业务需求
44
+ docs/待办清单.md # 待办清单
45
+ ```
46
+
47
+ #### 1.2 自动创建缺失文档
48
+
49
+ ```bash
50
+ # 如果缺失某个文档,使用默认模板自动创建
51
+ if not exist docs/项目状态.md:
52
+ create 项目状态.md with default template
53
+ ```
54
+
55
+ **输出**:
56
+ ```markdown
57
+ 📂 文档初始化
58
+ - ✅ docs/项目状态.md 存在
59
+ - ✅ docs/需求文档.md 存在
60
+ - ⚠️ docs/待办清单.md 缺失(已创建)
61
+ ```
62
+
63
+ ---
64
+
65
+ ### 第二步:分析最近的代码变更(强制执行)
66
+
67
+ #### 2.1 获取最近的 Git 提交
68
+
69
+ ```bash
70
+ # 获取最近 20 条提交
71
+ git log -20 --oneline --format="%h|%s|%aI" --all
72
+
73
+ # 筛选业务相关提交(feat/fix/update/add)
74
+ ```
75
+
76
+ #### 2.2 扫描业务模块变更
77
+
78
+ ```bash
79
+ # 检测新添加或修改的模块(核心业务模块)
80
+ Glob pattern: "sys-canteen/src/main/java/**/controller/*Controller.java"
81
+ Glob pattern: "sys-kitchen/src/main/java/**/controller/*Controller.java"
82
+ Glob pattern: "sys-drp/src/main/java/**/controller/*Controller.java"
83
+ Glob pattern: "sys-common/src/main/java/**/controller/*Controller.java"
84
+
85
+ # 基础设施模块不统计:core-base、core-aggregator、sys-open、sys-logistics
86
+
87
+ # 对比上次更新时的模块列表,识别新增模块
88
+ ```
89
+
90
+ #### 2.3 扫描代码中的待办标记
91
+
92
+ ```bash
93
+ # 扫描所有业务代码
94
+ Grep pattern: "TODO:|FIXME:|XXX:" path: sys-canteen/,sys-kitchen/,sys-drp/,sys-common/ glob: "*.java" output_mode: content -B 1
95
+
96
+ # 与上次记录对比,识别新增和已解决的待办
97
+ ```
98
+
99
+ **输出**:
100
+ ```markdown
101
+ 🔍 代码变更分析
102
+ - 最近 N 天提交: X 条
103
+ - 业务相关提交: X 条
104
+ - 新增模块: X 个
105
+ - 新增 TODO: X 项
106
+ - 已解决 FIXME: X 项
107
+ ```
108
+
109
+ ---
110
+
111
+ ### 第三步:更新项目进度文档(docs/项目状态.md)
112
+
113
+ #### 3.1 分析功能完整性
114
+
115
+ 对每个业务模块(sys-canteen、sys-kitchen、sys-drp、sys-common)检查 **8 个必需文件**(leniu 四层架构):
116
+
117
+ | 文件类型 | 文件 | 完整度贡献 |
118
+ |---------|------|----------|
119
+ | Entity | `common/model/XxxInfo.java` | 1/8 |
120
+ | DTO | `web/dto/XxxInfoDTO.java` | 1/8 |
121
+ | VO | `web/vo/XxxInfoVO.java` | 1/8 |
122
+ | Mapper | `common/mapper/XxxInfoMapper.java` | 1/8 |
123
+ | MapperXML | `common/mapper/XxxInfoMapper.xml` | 1/8 |
124
+ | Service | `common/service/impl/XxxInfoService.java` | 1/8 |
125
+ | Business | `web/business/impl/XxxWebBusiness.java` | 1/8 |
126
+ | Controller | `web/controller/XxxWebController.java` | 1/8 |
127
+
128
+ #### 3.2 更新"已完成"功能
129
+
130
+ ```markdown
131
+ ### 本次新完成的功能
132
+
133
+ | 功能名 | 完成日期 | 所属模块 | 状态 |
134
+ |--------|---------|---------|------|
135
+ | [功能1] | YYYY-MM-DD | [sys-canteen/sys-kitchen/sys-drp] | ✅ |
136
+ | [功能2] | YYYY-MM-DD | [sys-common] | ✅ |
137
+ ```
138
+
139
+ **更新规则**:
140
+ - 仅从已完成的功能列表中选择(8个文件都存在的功能)
141
+ - 记录完成日期(从 Git 提交时间获取)
142
+ - 标注所属模块
143
+
144
+ #### 3.3 更新"进行中"功能
145
+
146
+ ```markdown
147
+ ### 进行中的功能
148
+
149
+ | 功能名 | 完成度 | 缺失文件 | 所属模块 | 预计完成 |
150
+ |--------|--------|---------|---------|---------|
151
+ | [功能] | 75% | Business, Controller | sys-canteen | 本周 |
152
+ ```
153
+
154
+ **更新规则**:
155
+ - 计算完成度:`(存在文件数 / 8) × 100%`
156
+ - 列出缺失的文件
157
+ - 识别长期未更新的功能(超过 7 天)并标记 ⚠️
158
+
159
+ #### 3.4 更新统计信息
160
+
161
+ ```markdown
162
+ ## 进度统计
163
+
164
+ **最后更新**:YYYY-MM-DD HH:mm
165
+ **总功能数**:X
166
+ **已完成**:X(XX%)
167
+ **进行中**:X(XX%)
168
+ **待开发**:X(XX%)
169
+ ```
170
+
171
+ ---
172
+
173
+ ### 第四步:更新待办清单文档(docs/待办清单.md)
174
+
175
+ #### 4.1 同步新完成的任务
176
+
177
+ ```markdown
178
+ ## ✅ 最近完成
179
+
180
+ - [x] [功能名] - 完成于 YYYY-MM-DD
181
+ ```
182
+
183
+ **处理规则**:
184
+ - 从 项目状态.md 中的新完成功能提取
185
+ - 移到"最近完成"区域
186
+ - 添加完成日期
187
+
188
+ #### 4.2 添加新发现的待办
189
+
190
+ ```markdown
191
+ ## 🔴 高优先级(本周必做)
192
+
193
+ - [ ] [FIXME 描述] - [文件:行号] - 预计 X 小时
194
+
195
+ ## 🟡 中优先级(本月完成)
196
+
197
+ - [ ] [TODO 描述] - [文件:行号] - 预计 X 小时
198
+ ```
199
+
200
+ **处理规则**:
201
+ - FIXME → 高优先级
202
+ - TODO → 中优先级
203
+ - 记录来源文件和行号(便于快速定位)
204
+ - 去重:检查是否已存在相同任务
205
+ - 不移除现有待办,只追加新发现的
206
+
207
+ #### 4.3 更新统计信息
208
+
209
+ ```markdown
210
+ ## 统计信息
211
+
212
+ **最后更新**:YYYY-MM-DD HH:mm
213
+ - 待办总数:X 项
214
+ - 高优先级:X 项
215
+ - 中优先级:X 项
216
+ - 低优先级:X 项
217
+ - 本周完成:X 项
218
+ ```
219
+
220
+ ---
221
+
222
+ ### 第五步:生成更新报告
223
+
224
+ ```markdown
225
+ # 项目状态更新报告
226
+
227
+ **更新时间**:YYYY-MM-DD HH:mm
228
+ **扫描范围**:最近 20 条 Git 提交
229
+
230
+ ---
231
+
232
+ ## 文档状态
233
+
234
+ | 文档 | 操作 | 状态 |
235
+ |------|------|------|
236
+ | 项目状态.md | 已更新 | ✅ |
237
+ | 待办清单.md | 已同步 | ✅ |
238
+ | 需求文档.md | 无需更新 | ⏭️ |
239
+
240
+ ---
241
+
242
+ ## 本次变更统计
243
+
244
+ ### 项目状态.md 更新
245
+ - ✅ 新增已完成:X 项
246
+ - 🔄 更新进行中:X 项(涉及 X 个功能)
247
+ - ℹ️ 未变更:X 项
248
+
249
+ ### 待办清单.md 联动更新
250
+ - ✅ 移至已完成:X 项
251
+ - 📋 新增待办:X 项
252
+ - 高优先级:X 项
253
+ - 中优先级:X 项
254
+ - 低优先级:X 项
255
+ - 📊 当前待办总数:X 项
256
+
257
+ ---
258
+
259
+ ## 主要完成内容
260
+
261
+ **本周完成的功能**:
262
+ 1. [功能1] - 完成日期:YYYY-MM-DD
263
+ 2. [功能2] - 完成日期:YYYY-MM-DD
264
+
265
+ **代码统计**:
266
+ - 业务模块:sys-canteen X 个、sys-kitchen X 个、sys-drp X 个
267
+ - 功能总数:X 个
268
+
269
+ ---
270
+
271
+ ## 发现的问题
272
+
273
+ ### 长期未更新的功能
274
+ - 🟠 [功能名] - 上次更新于 7+ 天前 - [所属模块]
275
+ 建议:检查是否有阻塞或遗忘
276
+
277
+ ### 高优先级待办
278
+ - 🔴 [FIXME 描述] - [文件:行号]
279
+ 建议:本周优先处理
280
+
281
+ ### 代码质量提醒
282
+ - ⚠️ 发现 X 个新的权限注解缺失(@RequiresAuthentication)
283
+ - ⚠️ 发现 X 处 POST 接口未使用 LeRequest<T> 封装
284
+
285
+ **处理建议**:
286
+ 运行 `/check` 进行完整的代码规范检查
287
+
288
+ ---
289
+
290
+ ## 下一步建议
291
+
292
+ ### 立即处理
293
+ ```bash
294
+ # 1. 检查代码规范
295
+ /check
296
+
297
+ # 2. 查看详细进度
298
+ /progress
299
+ ```
300
+
301
+ ### 日常操作
302
+ ```bash
303
+ # 1. 继续开发新功能(含表设计)
304
+ /dev 新功能名称
305
+
306
+ # 2. 为已有表生成代码
307
+ /crud 表名
308
+
309
+ # 3. 添加新的待办
310
+ /add-todo 任务描述
311
+ ```
312
+
313
+ ### 定期维护
314
+ ```bash
315
+ # 1. 每周末全量同步
316
+ /sync
317
+
318
+ # 2. 每月末生成项目报告
319
+ /progress
320
+ ```
321
+
322
+ ---
323
+
324
+ ## 注意事项
325
+
326
+ ### 保留用户手动编辑的内容
327
+
328
+ - ✅ 自动追加新发现的信息
329
+ - ✅ 自动更新完成度和统计数字
330
+ - ❌ 不删除用户手动添加的内容
331
+ - ❌ 不覆盖用户编写的描述
332
+
333
+ ### 时间和格式规范
334
+
335
+ - 时间格式:`YYYY-MM-DD` 或 `YYYY-MM-DD HH:mm`
336
+ - 进度百分比:整数(0-100%)
337
+ - 完成度:基于 8 个必需文件的存在情况计算(leniu 四层架构)
338
+ - 优先级标记:🔴高 🟡中 🟢低
339
+
340
+ ---
341
+
342
+ ## 工作流程示例
343
+
344
+ ### 场景:完成了一个功能
345
+
346
+ ```bash
347
+ # 1. 开发完成,提交代码
348
+ git commit -m "feat(canteen): 完成订单管理功能"
349
+
350
+ # 2. 立即更新项目状态
351
+ /update-status
352
+
353
+ # 输出:
354
+ # ✅ 检测到新完成的功能:订单管理(sys-canteen)
355
+ # ✅ 更新 项目状态.md(进度:100%)
356
+ # ✅ 同步 待办清单.md(移至已完成:1 项)
357
+ # ✅ 更新报告已生成
358
+ ```
359
+
360
+ ### 场景:日常工作回顾
361
+
362
+ ```bash
363
+ # 时间:每天下午结束时
364
+
365
+ # 1. 查看今天的完成情况
366
+ /update-status
367
+
368
+ # 2. 查看本周的进度
369
+ /progress
370
+
371
+ # 3. 获取明天的建议
372
+ /next
373
+ ```
374
+
375
+ ---
376
+
377
+ ## 相关命令
378
+
379
+ | 命令 | 用途 | 何时使用 |
380
+ |------|------|---------|
381
+ | `/update-status` | 增量更新(当前) | 功能完成后立即使用 |
382
+ | `/sync` | 全量同步 | 每周一次定期整理 |
383
+ | `/progress` | 项目进度分析 | 了解完成情况 |
384
+ | `/check` | 代码规范检查 | 代码审查前 |
385
+ | `/add-todo` | 添加单个待办 | 临时添加任务 |
386
+ | `/init-docs` | 文档初始化 | 首次使用项目 |
387
+
388
+ ---
389
+
390
+ ## 最佳实践
391
+
392
+ ### 推荐做法
393
+
394
+ 1. **功能完成后立即更新**
395
+ ```bash
396
+ git commit -m "feat(canteen): 完成XXX功能"
397
+ /update-status
398
+ ```
399
+
400
+ 2. **利用每天的开始或结束**
401
+ - 早晨:`/update-status` 了解最新状态
402
+ - 下午:`/update-status` 汇总今天的工作
403
+
404
+ 3. **每周末进行全量同步**
405
+ ```bash
406
+ /sync # 全量同步
407
+ ```
408
+
409
+ ### 避免做法
410
+
411
+ 1. ❌ 忽视 FIXME 和长期 TODO
412
+ - 定期查看并处理高优先级待办
413
+
414
+ 2. ❌ 从不更新项目状态
415
+ - 导致文档与代码不同步
416
+
417
+ 3. ❌ 完全依赖自动更新
418
+ - 定期运行 `/sync` 做全量检查
419
+
420
+ ---
421
+
422
+ ## 说明
423
+
424
+ - `/update-status` 是日常工作中频繁使用的命令
425
+ - 与 `/sync` 形成互补:快速更新 + 定期全量同步
426
+ - 更新内容保存到 `docs/` 目录中的相应文件
427
+ - 所有更新都有备份记录,可通过 Git 查看历史
428
+ - 建议每天使用 1-2 次,每周末运行一次 `/sync`
@@ -0,0 +1,299 @@
1
+ # Mixin 使用指南
2
+
3
+ > **适用于**: 腾云智慧食堂管理系统前端项目(`/Users/xujiajun/Developer/frontProj/web`)
4
+
5
+ 最后更新: 2026-02-18
6
+
7
+ ---
8
+
9
+ ## 概览
10
+
11
+ Mixin 文件位于 `src/mixins/` 目录,共 5 个(组):
12
+
13
+ | Mixin | 文件路径 | 提供的 data | 说明 |
14
+ |-------|---------|------------|------|
15
+ | `getOrgList` | `mixins/getOrgList.js` | `orgTreeList` | 前场组织树 |
16
+ | `getMealTimeList` | `mixins/getMealTimeList.js` | `mealTimeList` | 餐次列表 |
17
+ | `settingClomnsMixin` | `mixins/settingClomnsMixin.js` | `settingColimns`, `allColumns` | 表格列设置 |
18
+ | `areaCanteenMixin` | `mixins/areaCanteenMixin/areaCanteenForLeniu.js` | `areaOptions`, `canteenOptions`, `canteenOptionsForm` | 区域食堂级联选择 |
19
+ | `common` | `mixins/index.js` | - | 通用工具方法 |
20
+
21
+ ---
22
+
23
+ ## 1. getOrgList — 前场组织树
24
+
25
+ **用途**:自动在 `created` 时拉取组织树数据,挂到 `orgTreeList`
26
+
27
+ **提供的 data**:
28
+ - `orgTreeList: []` — 组织树列表
29
+
30
+ **使用示例**:
31
+
32
+ ```vue
33
+ <script>
34
+ import getOrgList from '@/mixins/getOrgList'
35
+
36
+ export default {
37
+ mixins: [getOrgList],
38
+ // orgTreeList 已自动加载,可直接在模板和方法中使用
39
+ methods: {
40
+ doSomething() {
41
+ console.log(this.orgTreeList)
42
+ }
43
+ }
44
+ }
45
+ </script>
46
+ ```
47
+
48
+ ```vue
49
+ <template>
50
+ <!-- 直接绑定 orgTreeList -->
51
+ <el-select v-model="form.orgId">
52
+ <el-option
53
+ v-for="item in orgTreeList"
54
+ :key="item.id"
55
+ :label="item.name"
56
+ :value="item.id"
57
+ />
58
+ </el-select>
59
+ </template>
60
+ ```
61
+
62
+ ---
63
+
64
+ ## 2. getMealTimeList — 餐次列表
65
+
66
+ **用途**:自动在 `created` 时拉取餐次数据,挂到 `mealTimeList`
67
+
68
+ **提供的 data**:
69
+ - `mealTimeList: []` — 餐次列表(records)
70
+
71
+ **使用示例**:
72
+
73
+ ```vue
74
+ <script>
75
+ import getMealTimeList from '@/mixins/getMealTimeList'
76
+
77
+ export default {
78
+ mixins: [getMealTimeList],
79
+ methods: {
80
+ doSomething() {
81
+ console.log(this.mealTimeList) // 餐次数组
82
+ }
83
+ }
84
+ }
85
+ </script>
86
+ ```
87
+
88
+ ```vue
89
+ <template>
90
+ <el-select v-model="listQuery.mealTimeId">
91
+ <el-option
92
+ v-for="item in mealTimeList"
93
+ :key="item.id"
94
+ :label="item.name"
95
+ :value="item.id"
96
+ />
97
+ </el-select>
98
+ </template>
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 3. settingClomnsMixin — 表格列设置
104
+
105
+ **用途**:配合 `leniu-table` 的列设置功能,管理可见列与导出列
106
+
107
+ **提供的 data**:
108
+ - `settingColimns: []` — 当前显示的列(计算属性 `computedColumns`)
109
+ - `allColumns: []` — 所有列(需组件自己在 `created` 中赋值)
110
+
111
+ **提供的 computed**:
112
+ - `computedColumns` — 返回 `settingColimns`(传给表格组件)
113
+ - `exportColumns` — 返回 `allColumns` 中 `hidden !== true` 的列(用于导出)
114
+
115
+ **提供的方法**:
116
+ - `changSettingTableColumn(e)` — 列设置变化时调用
117
+
118
+ **使用示例**:
119
+
120
+ ```vue
121
+ <script>
122
+ import settingClomnsMixin from '@/mixins/settingClomnsMixin'
123
+
124
+ export default {
125
+ mixins: [settingClomnsMixin],
126
+ created() {
127
+ // 初始化所有列定义
128
+ this.allColumns = [
129
+ { key: 'name', title: '姓名' },
130
+ { key: 'age', title: '年龄' },
131
+ { key: 'status', title: '状态' }
132
+ ]
133
+ this.settingColimns = [...this.allColumns]
134
+ }
135
+ }
136
+ </script>
137
+ ```
138
+
139
+ ```vue
140
+ <template>
141
+ <!-- 传入 computedColumns,监听列设置变化 -->
142
+ <leniu-table
143
+ ref="table"
144
+ :columns="computedColumns"
145
+ :all-columns="allColumns"
146
+ @setting-change="changSettingTableColumn"
147
+ />
148
+ </template>
149
+ ```
150
+
151
+ ---
152
+
153
+ ## 4. areaCanteenMixin — 区域食堂级联选择
154
+
155
+ > 文件:`src/mixins/areaCanteenMixin/areaCanteenForLeniu.js`
156
+
157
+ **用途**:提供区域 → 食堂的二级联动数据,区分"查询用"和"表单用"两套食堂列表
158
+
159
+ **提供的 data**:
160
+ - `areaOptions: []` — 区域列表(树形)
161
+ - `canteenOptions: []` — 查询条件用的食堂列表
162
+ - `canteenOptionsForm: []` — 表单用的食堂列表
163
+
164
+ **提供的方法**:
165
+ - `getAreaTree()` — 初始化区域数据(`created` 自动调用)
166
+ - `changeArea(areaId, formName, initFlag, type)` — 区域变化时联动食堂
167
+
168
+ **使用示例**:
169
+
170
+ ```vue
171
+ <script>
172
+ import areaCanteenMixin from '@/mixins/areaCanteenMixin/areaCanteenForLeniu'
173
+
174
+ export default {
175
+ mixins: [areaCanteenMixin],
176
+ data() {
177
+ return {
178
+ listQuery: {
179
+ areaIdList: [],
180
+ canteenIdList: []
181
+ },
182
+ // 注意:changeArea 内部会访问 this.config.listQuery 或 this.formData
183
+ config: {
184
+ listQuery: {}
185
+ }
186
+ }
187
+ }
188
+ }
189
+ </script>
190
+ ```
191
+
192
+ ```vue
193
+ <template>
194
+ <!-- 查询区域:区域选择 -->
195
+ <el-select
196
+ v-model="listQuery.areaIdList"
197
+ multiple
198
+ @change="changeArea($event, 'canteenOptions')"
199
+ >
200
+ <el-option v-for="a in areaOptions" :key="a.id" :label="a.name" :value="a.id" />
201
+ </el-select>
202
+
203
+ <!-- 查询区域:食堂选择(区域变化后更新) -->
204
+ <el-select v-model="listQuery.canteenIdList" multiple>
205
+ <el-option v-for="c in canteenOptions" :key="c.id" :label="c.name" :value="c.id" />
206
+ </el-select>
207
+
208
+ <!-- 表单中:食堂选择 -->
209
+ <el-select
210
+ v-model="formData.canteenId"
211
+ @change="changeArea($event, 'canteenOptionsForm')"
212
+ >
213
+ <el-option v-for="c in canteenOptionsForm" :key="c.id" :label="c.name" :value="c.id" />
214
+ </el-select>
215
+ </template>
216
+ ```
217
+
218
+ ---
219
+
220
+ ## 5. common — 通用工具 Mixin
221
+
222
+ > 文件:`src/mixins/index.js`
223
+
224
+ **用途**:提供图片 URL 拼接、金额输入校验等通用工具方法
225
+
226
+ **提供的 computed**:
227
+ - `baseUrl` — 从 Vuex 获取图片服务器基础地址
228
+
229
+ **提供的方法**:
230
+
231
+ | 方法 | 说明 | 示例 |
232
+ |------|------|------|
233
+ | `getUrl1(item)` | 拼接完整图片 URL(已是 http 则原样返回) | `this.getUrl1(imgPath)` |
234
+ | `oninput(num, limit, length, max)` | 金额输入校验(限制小数位、最大值) | `this.oninput(val, 2, 10, 9999)` |
235
+ | `LetterAndNum(num, length)` | 只允许字母和数字 | `this.LetterAndNum(val, 20)` |
236
+ | `Num(num, length)` | 只允许数字 | `this.Num(val, 10)` |
237
+ | `getTimestamp()` | 获取时间戳字符串 | `this.getTimestamp()` |
238
+ | `getNowDate()` | 获取当前时间字符串(YYYY-MM-DD HH:mm:ss) | `this.getNowDate()` |
239
+
240
+ **使用示例**:
241
+
242
+ ```vue
243
+ <script>
244
+ import common from '@/mixins/index'
245
+
246
+ export default {
247
+ mixins: [common],
248
+ methods: {
249
+ handleInput(val) {
250
+ // 金额校验:小数2位,最多10位,最大9999
251
+ this.form.amount = this.oninput(val, 2, 10, 9999)
252
+ }
253
+ }
254
+ }
255
+ </script>
256
+ ```
257
+
258
+ ```vue
259
+ <template>
260
+ <!-- 图片 URL 拼接 -->
261
+ <img :src="getUrl1(item.imgPath)" />
262
+
263
+ <!-- 金额输入框 -->
264
+ <el-input
265
+ v-model="form.amount"
266
+ @input="form.amount = oninput(form.amount, 2, 10)"
267
+ />
268
+ </template>
269
+ ```
270
+
271
+ ---
272
+
273
+ ## 4+. areaCanteenSubplaceForLeniu — 区域食堂子场所级联
274
+
275
+ > 文件:`src/mixins/areaCanteenMixin/areaCanteenSubplaceForLeniu.js`
276
+
277
+ 与 `areaCanteenForLeniu` 类似,增加了**子场所(Subplace)**的第三级联动,用于需要选择 区域 → 食堂 → 子场所 三级的场景。按需引入即可。
278
+
279
+ ---
280
+
281
+ ## 多 Mixin 组合使用
282
+
283
+ ```vue
284
+ <script>
285
+ import getOrgList from '@/mixins/getOrgList'
286
+ import getMealTimeList from '@/mixins/getMealTimeList'
287
+ import settingClomnsMixin from '@/mixins/settingClomnsMixin'
288
+ import areaCanteenMixin from '@/mixins/areaCanteenMixin/areaCanteenForLeniu'
289
+ import common from '@/mixins/index'
290
+
291
+ export default {
292
+ name: 'XxxList',
293
+ mixins: [getOrgList, getMealTimeList, settingClomnsMixin, areaCanteenMixin, common],
294
+ // 自动获取:orgTreeList, mealTimeList, areaOptions, canteenOptions, baseUrl 等
295
+ }
296
+ </script>
297
+ ```
298
+
299
+ > **注意**:多个 Mixin 都有 `created` 钩子时,Vue 会**按顺序全部执行**,不会覆盖。