npmapps 1.1.6 → 1.3.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.
Files changed (297) hide show
  1. package/README.md +41 -0
  2. package/files/part-002 +4 -0
  3. package/get.js +193 -0
  4. package/manifest.json +28 -0
  5. package/package.json +17 -10
  6. package/PUBLISH.md +0 -268
  7. package/app/wujie-wk/dev.log +0 -1979
  8. package/app/wujie-wk/t.html +0 -90
  9. package/app/wujie-wk/wujie-react-child/README.md +0 -126
  10. package/app/wujie-wk/wujie-react-child/eslint.config.js +0 -28
  11. package/app/wujie-wk/wujie-react-child/index.html +0 -13
  12. package/app/wujie-wk/wujie-react-child/package-lock.json +0 -4344
  13. package/app/wujie-wk/wujie-react-child/package.json +0 -32
  14. package/app/wujie-wk/wujie-react-child/public/vite.svg +0 -1
  15. package/app/wujie-wk/wujie-react-child/src/App.css +0 -0
  16. package/app/wujie-wk/wujie-react-child/src/App.tsx +0 -72
  17. package/app/wujie-wk/wujie-react-child/src/assets/react.svg +0 -1
  18. package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.css +0 -63
  19. package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.tsx +0 -112
  20. package/app/wujie-wk/wujie-react-child/src/components/LightCard/index.tsx +0 -36
  21. package/app/wujie-wk/wujie-react-child/src/components/LightCard/style.css +0 -20
  22. package/app/wujie-wk/wujie-react-child/src/hooks/use3DCard.ts +0 -53
  23. package/app/wujie-wk/wujie-react-child/src/hooks/useLightCard.ts +0 -141
  24. package/app/wujie-wk/wujie-react-child/src/index.css +0 -0
  25. package/app/wujie-wk/wujie-react-child/src/main.tsx +0 -8
  26. package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.css +0 -55
  27. package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.tsx +0 -88
  28. package/app/wujie-wk/wujie-react-child/src/pages/Css.tsx +0 -28
  29. package/app/wujie-wk/wujie-react-child/src/pages/Home.tsx +0 -72
  30. package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.css +0 -85
  31. package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.tsx +0 -119
  32. package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.css +0 -61
  33. package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.tsx +0 -87
  34. package/app/wujie-wk/wujie-react-child/src/router/index.tsx +0 -63
  35. package/app/wujie-wk/wujie-react-child/src/types/wujie.d.ts +0 -26
  36. package/app/wujie-wk/wujie-react-child/src/vite-env.d.ts +0 -1
  37. package/app/wujie-wk/wujie-react-child/tsconfig.app.json +0 -26
  38. package/app/wujie-wk/wujie-react-child/tsconfig.json +0 -7
  39. package/app/wujie-wk/wujie-react-child/tsconfig.node.json +0 -24
  40. package/app/wujie-wk/wujie-react-child/vite.config.ts +0 -10
  41. package/app/wujie-wk/wujie-vue2-child/.eslintrc.js +0 -19
  42. package/app/wujie-wk/wujie-vue2-child/README.md +0 -24
  43. package/app/wujie-wk/wujie-vue2-child/babel.config.js +0 -5
  44. package/app/wujie-wk/wujie-vue2-child/docs/superpowers/plans/2026-05-29-quill-editor.md +0 -836
  45. package/app/wujie-wk/wujie-vue2-child/docs/superpowers/specs/2026-05-29-quill-editor-design.md +0 -210
  46. package/app/wujie-wk/wujie-vue2-child/jsconfig.json +0 -19
  47. package/app/wujie-wk/wujie-vue2-child/package-lock.json +0 -21333
  48. package/app/wujie-wk/wujie-vue2-child/package.json +0 -63
  49. package/app/wujie-wk/wujie-vue2-child/postcss.config.js +0 -10
  50. package/app/wujie-wk/wujie-vue2-child/public/favicon.ico +0 -0
  51. package/app/wujie-wk/wujie-vue2-child/public/index.html +0 -17
  52. package/app/wujie-wk/wujie-vue2-child/public/rili.jpg +0 -0
  53. package/app/wujie-wk/wujie-vue2-child/public//344/270/200/351/224/256/351/273/221/346/232/227.html +0 -136
  54. package/app/wujie-wk/wujie-vue2-child/src/App.vue +0 -110
  55. package/app/wujie-wk/wujie-vue2-child/src/assets/bpmn-camunda.jpg +0 -0
  56. package/app/wujie-wk/wujie-vue2-child/src/assets/css/diagram.less +0 -17
  57. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/Icon.less +0 -31
  58. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app-codes.css +0 -26
  59. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.eot +0 -0
  60. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.svg +0 -60
  61. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.ttf +0 -0
  62. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.woff +0 -0
  63. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.woff2 +0 -0
  64. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/config.json +0 -248
  65. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-bottom-tool.svg +0 -30
  66. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-horizontal-center-tool.svg +0 -85
  67. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-left-tool.svg +0 -84
  68. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-right-tool.svg +0 -80
  69. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-top-tool.svg +0 -84
  70. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-vertical-center-tool.svg +0 -89
  71. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/distribute-horizontally-tool.svg +0 -95
  72. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/distribute-vertically-tool.svg +0 -99
  73. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/set-color-tool.svg +0 -111
  74. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-bottom-tool.svg +0 -30
  75. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-horizontal-center-tool.svg +0 -30
  76. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-left-tool.svg +0 -30
  77. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-right-tool.svg +0 -30
  78. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-top-tool.svg +0 -30
  79. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-vertical-center-tool.svg +0 -30
  80. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/distribute-horizontally-tool.svg +0 -30
  81. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/distribute-vertically-tool.svg +0 -30
  82. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/set-color-tool.svg +0 -63
  83. package/app/wujie-wk/wujie-vue2-child/src/assets/logo.png +0 -0
  84. package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/README.md +0 -70
  85. package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/article.md +0 -184
  86. package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/index.js +0 -213
  87. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/CalendarSkeleton.vue +0 -147
  88. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/CodeBlock.vue +0 -199
  89. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/MonthSelect.vue +0 -376
  90. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/README.md +0 -485
  91. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/example.vue +0 -1747
  92. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/index.vue +0 -2720
  93. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/mockData.js +0 -475
  94. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/recruitmentAdapter.js +0 -51
  95. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/utils.js +0 -202
  96. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/FunctionSelector.vue +0 -123
  97. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/OperatorSelector.vue +0 -184
  98. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/ParameterSelector.vue +0 -123
  99. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/api.js +0 -69
  100. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/index.vue +0 -435
  101. package/app/wujie-wk/wujie-vue2-child/src/components/HelloWorld.vue +0 -58
  102. package/app/wujie-wk/wujie-vue2-child/src/components/PageHeader/index.vue +0 -158
  103. package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/README.md +0 -144
  104. package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/example.vue +0 -84
  105. package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/index.vue +0 -203
  106. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/ToolBar.vue +0 -357
  107. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/customTranslate/customTranslate.js +0 -12
  108. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/customTranslate/translationsGerman.js +0 -241
  109. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/index.vue +0 -261
  110. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/xmlData.js +0 -29
  111. package/app/wujie-wk/wujie-vue2-child/src/directives/filldown.js +0 -155
  112. package/app/wujie-wk/wujie-vue2-child/src/directives/filldownTable.js +0 -291
  113. package/app/wujie-wk/wujie-vue2-child/src/main.js +0 -40
  114. package/app/wujie-wk/wujie-vue2-child/src/router/index.js +0 -72
  115. package/app/wujie-wk/wujie-vue2-child/src/store/index.js +0 -23
  116. package/app/wujie-wk/wujie-vue2-child/src/utils/winBox.js +0 -23
  117. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/A.vue +0 -12
  118. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/B.vue +0 -10
  119. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/MagicalComponentsForELFormItem.vue +0 -78
  120. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/index.vue +0 -59
  121. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/tableMouseHorizontalWheel.vue +0 -184
  122. package/app/wujie-wk/wujie-vue2-child/src/views/Home.vue +0 -27
  123. package/app/wujie-wk/wujie-vue2-child/src/views/RouterJump.vue +0 -145
  124. package/app/wujie-wk/wujie-vue2-child/src/views/calendar/index.vue +0 -19
  125. package/app/wujie-wk/wujie-vue2-child/src/views/css.vue +0 -57
  126. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/EllipsisText.vue +0 -73
  127. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/HoverCard.vue +0 -69
  128. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/TableHover.vue +0 -130
  129. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/inputSlo.vue +0 -42
  130. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/tableFixed.vue +0 -148
  131. package/app/wujie-wk/wujie-vue2-child/src/views/echarts/echart-dome.vue +0 -73
  132. package/app/wujie-wk/wujie-vue2-child/src/views/echarts/index.vue +0 -118
  133. package/app/wujie-wk/wujie-vue2-child/src/views/echarts/pei3d.vue +0 -658
  134. package/app/wujie-wk/wujie-vue2-child/src/views/element/bpmn/index.vue +0 -15
  135. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendanceCycle/index.vue +0 -131
  136. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendanceGroup/index.vue +0 -147
  137. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendancePersonnel/index.vue +0 -158
  138. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/companyCalendar/index.vue +0 -147
  139. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/shift/index.vue +0 -147
  140. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/shiftRotationSystem/index.vue +0 -147
  141. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/columnManagement.vue +0 -340
  142. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/dialogInput.vue +0 -71
  143. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/elTableJsx.vue +0 -1826
  144. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/formTable.vue +0 -595
  145. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/index.vue +0 -29
  146. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/simpleTable.vue +0 -189
  147. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx.zip +0 -0
  148. package/app/wujie-wk/wujie-vue2-child/src/views/element/index.vue +0 -39
  149. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/README.md +0 -163
  150. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/example.vue +0 -307
  151. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/index.vue +0 -409
  152. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/toolbar.js +0 -122
  153. package/app/wujie-wk/wujie-vue2-child/vue.config.js +0 -15
  154. package/app/wujie-wk/wujie-vue3-child/.claude/settings.local.json +0 -8
  155. package/app/wujie-wk/wujie-vue3-child/.vscode/extensions.json +0 -3
  156. package/app/wujie-wk/wujie-vue3-child/PROJECT_MEMORY.md +0 -427
  157. package/app/wujie-wk/wujie-vue3-child/README.md +0 -5
  158. package/app/wujie-wk/wujie-vue3-child/index.html +0 -13
  159. package/app/wujie-wk/wujie-vue3-child/package-lock.json +0 -5744
  160. package/app/wujie-wk/wujie-vue3-child/package.json +0 -28
  161. package/app/wujie-wk/wujie-vue3-child/public/vite.svg +0 -1
  162. package/app/wujie-wk/wujie-vue3-child/src/App.vue +0 -130
  163. package/app/wujie-wk/wujie-vue3-child/src/assets/vue.svg +0 -1
  164. package/app/wujie-wk/wujie-vue3-child/src/components/HelloWorld.vue +0 -43
  165. package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/index.jsx +0 -224
  166. package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/style.css +0 -154
  167. package/app/wujie-wk/wujie-vue3-child/src/components/tags-view.vue +0 -193
  168. package/app/wujie-wk/wujie-vue3-child/src/components/tags-view1.vue +0 -131
  169. package/app/wujie-wk/wujie-vue3-child/src/directives/aiLoading.js +0 -182
  170. package/app/wujie-wk/wujie-vue3-child/src/hooks/useClickOutside.js +0 -11
  171. package/app/wujie-wk/wujie-vue3-child/src/hooks/useTableDragSort.js +0 -28
  172. package/app/wujie-wk/wujie-vue3-child/src/main.js +0 -18
  173. package/app/wujie-wk/wujie-vue3-child/src/router/index.js +0 -104
  174. package/app/wujie-wk/wujie-vue3-child/src/store/tagsViewStroe.js +0 -34
  175. package/app/wujie-wk/wujie-vue3-child/src/style.css +0 -171
  176. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.jsx +0 -108
  177. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.module.scss +0 -97
  178. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/README.md +0 -836
  179. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/REFLEX_EXAMPLES.md +0 -728
  180. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.jsx +0 -687
  181. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.module.scss +0 -560
  182. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.jsx +0 -570
  183. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.module.scss +0 -330
  184. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.jsx +0 -378
  185. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.module.scss +0 -228
  186. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.jsx +0 -399
  187. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.module.scss +0 -252
  188. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.jsx +0 -585
  189. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.module.scss +0 -331
  190. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.jsx +0 -392
  191. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.module.scss +0 -39
  192. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/README.md +0 -248
  193. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/SelectorTrigger.jsx +0 -194
  194. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/index.jsx +0 -1459
  195. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/mockData.js +0 -301
  196. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.jsx +0 -182
  197. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.module.scss +0 -28
  198. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/index.jsx +0 -375
  199. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.jsx +0 -121
  200. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.module.scss +0 -76
  201. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/DonutChart/index.jsx +0 -104
  202. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.jsx +0 -75
  203. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.module.scss +0 -12
  204. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.jsx +0 -62
  205. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.module.scss +0 -43
  206. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.jsx +0 -29
  207. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.module.scss +0 -5
  208. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.jsx +0 -58
  209. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.module.scss +0 -85
  210. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.jsx +0 -92
  211. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.module.scss +0 -56
  212. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.jsx +0 -40
  213. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.module.scss +0 -53
  214. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsDonut.jsx +0 -106
  215. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsRankBar.jsx +0 -132
  216. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.jsx +0 -176
  217. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.module.scss +0 -96
  218. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.jsx +0 -162
  219. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.module.scss +0 -16
  220. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.jsx +0 -29
  221. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.module.scss +0 -25
  222. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.jsx +0 -106
  223. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.module.scss +0 -164
  224. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.jsx +0 -182
  225. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.module.scss +0 -203
  226. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.jsx +0 -145
  227. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.module.scss +0 -126
  228. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.jsx +0 -67
  229. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.module.scss +0 -105
  230. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.jsx +0 -81
  231. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.module.scss +0 -47
  232. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.jsx +0 -64
  233. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.module.scss +0 -85
  234. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.jsx +0 -39
  235. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.module.scss +0 -44
  236. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.jsx +0 -83
  237. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.module.scss +0 -101
  238. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.jsx +0 -50
  239. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.module.scss +0 -25
  240. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.jsx +0 -196
  241. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.module.scss +0 -41
  242. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.jsx +0 -183
  243. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.module.scss +0 -115
  244. package/app/wujie-wk/wujie-vue3-child/src/views/child-to-parent.vue +0 -117
  245. package/app/wujie-wk/wujie-vue3-child/src/views/home.vue +0 -53
  246. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/btnSelect.vue +0 -169
  247. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/index.vue +0 -69
  248. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/com.vue +0 -44
  249. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/dialog.jsx +0 -66
  250. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/index.vue +0 -72
  251. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/props.vue +0 -33
  252. package/app/wujie-wk/wujie-vue3-child/src/views/parent-to-child.vue +0 -225
  253. package/app/wujie-wk/wujie-vue3-child/src/views/phone-code.vue +0 -318
  254. package/app/wujie-wk/wujie-vue3-child/src/views/router-jump.vue +0 -123
  255. package/app/wujie-wk/wujie-vue3-child/src/views/test.vue +0 -192
  256. package/app/wujie-wk/wujie-vue3-child/vite.config.js +0 -15
  257. package/app/wujie-wk/wujie-vue3-child copy/.vscode/extensions.json +0 -3
  258. package/app/wujie-wk/wujie-vue3-child copy/README.md +0 -5
  259. package/app/wujie-wk/wujie-vue3-child copy/index.html +0 -13
  260. package/app/wujie-wk/wujie-vue3-child copy/package-lock.json +0 -4617
  261. package/app/wujie-wk/wujie-vue3-child copy/package.json +0 -22
  262. package/app/wujie-wk/wujie-vue3-child copy/public/vite.svg +0 -1
  263. package/app/wujie-wk/wujie-vue3-child copy/src/App.vue +0 -124
  264. package/app/wujie-wk/wujie-vue3-child copy/src/assets/vue.svg +0 -1
  265. package/app/wujie-wk/wujie-vue3-child copy/src/components/HelloWorld.vue +0 -43
  266. package/app/wujie-wk/wujie-vue3-child copy/src/main.js +0 -12
  267. package/app/wujie-wk/wujie-vue3-child copy/src/router/index.js +0 -84
  268. package/app/wujie-wk/wujie-vue3-child copy/src/style.css +0 -4
  269. package/app/wujie-wk/wujie-vue3-child copy/src/views/child-to-parent.vue +0 -117
  270. package/app/wujie-wk/wujie-vue3-child copy/src/views/home.vue +0 -53
  271. package/app/wujie-wk/wujie-vue3-child copy/src/views/parent-to-child.vue +0 -225
  272. package/app/wujie-wk/wujie-vue3-child copy/src/views/phone-code.vue +0 -318
  273. package/app/wujie-wk/wujie-vue3-child copy/src/views/router-jump.vue +0 -115
  274. package/app/wujie-wk/wujie-vue3-child copy/src/views/test.vue +0 -192
  275. package/app/wujie-wk/wujie-vue3-child copy/vite.config.js +0 -10
  276. package/app/wujie-wk/wujie-vue3-main/.vscode/extensions.json +0 -3
  277. package/app/wujie-wk/wujie-vue3-main/README.md +0 -154
  278. package/app/wujie-wk/wujie-vue3-main/index.html +0 -13
  279. package/app/wujie-wk/wujie-vue3-main/package-lock.json +0 -4736
  280. package/app/wujie-wk/wujie-vue3-main/package.json +0 -25
  281. package/app/wujie-wk/wujie-vue3-main/public/vite.svg +0 -1
  282. package/app/wujie-wk/wujie-vue3-main/src/App.vue +0 -879
  283. package/app/wujie-wk/wujie-vue3-main/src/assets/vue.svg +0 -1
  284. package/app/wujie-wk/wujie-vue3-main/src/components/HelloWorld.vue +0 -43
  285. package/app/wujie-wk/wujie-vue3-main/src/components/WujieReact/index.vue +0 -20
  286. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue2/index.vue +0 -8
  287. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3/index.vue +0 -8
  288. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3Copy/index.vue +0 -8
  289. package/app/wujie-wk/wujie-vue3-main/src/main.js +0 -23
  290. package/app/wujie-wk/wujie-vue3-main/src/router/index.js +0 -88
  291. package/app/wujie-wk/wujie-vue3-main/src/store/useMicroAppStore.js +0 -66
  292. package/app/wujie-wk/wujie-vue3-main/src/style.css +0 -3
  293. package/app/wujie-wk/wujie-vue3-main/src/views/home.vue +0 -103
  294. package/app/wujie-wk/wujie-vue3-main/src/views/router-jump.vue +0 -159
  295. package/app/wujie-wk/wujie-vue3-main/src/views/test.vue +0 -125
  296. package/app/wujie-wk/wujie-vue3-main/src/views/vue3-child-msg.vue +0 -108
  297. package/app/wujie-wk/wujie-vue3-main/vite.config.js +0 -12
@@ -1,485 +0,0 @@
1
- # EventCalendar 日程日历组件
2
-
3
- 一个零第三方依赖的 Vue 2 月历组件。支持月份自动补全(含跨年)、下拉切换、自动轮播、
4
- 字段映射、插槽定制、骨架屏与多种切换动效。
5
-
6
- > 整个 `EventCalendar` 文件夹可以直接拷贝到任意 Vue 2 项目使用,
7
- > **不依赖 element-ui / dayjs / moment / lodash 等任何第三方库**,只用原生 `Date` 与 CSS。
8
-
9
- ## 目录结构
10
-
11
- ```
12
- EventCalendar/
13
- ├── index.vue # 组件本体
14
- ├── MonthSelect.vue # 自研月份下拉框(不依赖 UI 库)
15
- ├── CalendarSkeleton.vue # 骨架屏
16
- ├── CodeBlock.vue # 示例页用的代码块(业务中可删)
17
- ├── utils.js # 日期计算与字段映射工具
18
- ├── recruitmentAdapter.js # NodeQ mock 响应 -> EventCalendar 数据
19
- ├── mockData.js # 模拟数据(setTimeout 模拟异步接口)
20
- ├── example.vue # 完整示例集合(14 个 demo + API 文档)
21
- └── README.md
22
- ```
23
-
24
- 真正接入普通日历时,**必需**的只有 `index.vue`、`MonthSelect.vue`、`CalendarSkeleton.vue`、`utils.js`。
25
- 接 NodeQ 招聘接口时再加入 `recruitmentAdapter.js`。`mockData.js` / `example.vue` / `CodeBlock.vue`
26
- 是演示用的,可以删掉。
27
-
28
- ## 快速开始
29
-
30
- ```vue
31
- <template>
32
- <EventCalendar
33
- :data="data"
34
- :loading="loading"
35
- title="宣讲日历"
36
- subtitle="更多场次陆续上线中,宣讲进程以实际安排为准"
37
- @item-click="onItemClick"
38
- />
39
- </template>
40
-
41
- <script>
42
- import EventCalendar from '@/components/EventCalendar/index.vue'
43
-
44
- export default {
45
- components: { EventCalendar },
46
- data() {
47
- return { data: [], loading: true }
48
- },
49
- async created() {
50
- this.loading = true
51
- try {
52
- this.data = await this.$api.getCalendar()
53
- } finally {
54
- // 放 finally:接口失败也要收掉骨架屏,否则页面会一直卡在加载态
55
- this.loading = false
56
- }
57
- },
58
- methods: {
59
- onItemClick(scope) {
60
- console.log(scope.item) // 后端返回的原始对象
61
- }
62
- }
63
- }
64
- </script>
65
- ```
66
-
67
- ## 数据结构
68
-
69
- ### 默认结构(按月分组)
70
-
71
- ```js
72
- [
73
- {
74
- month: '2026-09', // 月份标识
75
- monthLabel: '2026年9月', // 下拉框文案,不传则自动生成
76
- days: [
77
- {
78
- date: '2026-09-09', // 日期标识
79
- items: [ // 当天的条目
80
- {
81
- id: 'a1',
82
- label: '香港中文大学(深圳)', // 主文案
83
- address: '深圳市南山区校区报告厅', // 地址,为空时不显示地址行
84
- badge: '宣讲', // 右上角角标
85
- type: 'talk' // 类型,决定配色
86
- }
87
- ]
88
- }
89
- ]
90
- }
91
- ]
92
- ```
93
-
94
- ### 扁平结构(也支持)
95
-
96
- 不按月分组,直接给一维日期数组,组件会自动按日期归月:
97
-
98
- ```js
99
- [
100
- { date: '2026-09-09', items: [...] },
101
- { date: '2026-10-01', items: [...] }
102
- ]
103
- ```
104
-
105
- ## NodeQ mock 数据转换
106
-
107
- 转换方法只负责把当前 mock 响应中的 `data.nbcbRecAnnJourneyMaps` 映射为组件默认结构,
108
- 不包含字段猜测或展示配置:
109
-
110
- ```js
111
- import EventCalendar from '@/components/EventCalendar/index.vue'
112
- import { transformNodeqCalendarResponse } from '@/components/EventCalendar/recruitmentAdapter'
113
-
114
- const data = transformNodeqCalendarResponse(response)
115
- ```
116
-
117
- ```vue
118
- <EventCalendar
119
- :data="data"
120
- item-align="center"
121
- :item-horizontal-padding="0"
122
- :item-height="40"
123
- />
124
- ```
125
-
126
- 转换后条目固定包含 `id`、`label`、`address`、`badge`、`type`、`disabled`。
127
- mock 中没有的值使用空字符串或 `false`。`address` 为空时,日历组件不会渲染地址行。
128
-
129
- 大学名称不超过 7 个字符时为 14px,超过 7 个字符时为 12px;地址统一为 12px。
130
- `item-align` 控制靠左或居中,`item-horizontal-padding="0"` 可去掉条目左右内边距。
131
-
132
- ## 原生布局配置工具栏
133
-
134
- 外边距、内边距、条目、溢出与行高、角标缩放等均为组件原生 Props。开启工具栏后,
135
- 改完点「复制配置」,把 JSON 粘回 `layoutConfig` 再 `v-bind` 即可:
136
-
137
- ```vue
138
- <EventCalendar
139
- :data="data"
140
- v-bind="layoutConfig"
141
- :show-config-toolbar="isDevelopment"
142
- />
143
- ```
144
-
145
- ```js
146
- export default {
147
- data() {
148
- return {
149
- isDevelopment: process.env.NODE_ENV !== 'production',
150
- // 结构与工具栏「复制配置」得到的 JSON 一致,可直接赋值应用
151
- layoutConfig: {
152
- itemAlign: 'center',
153
- calendarMargin: 0,
154
- calendarPadding: 0,
155
- headerPadding: '4px 4px 16px',
156
- cellPadding: '12px 10px',
157
- mobileCellPadding: '8px 6px',
158
- itemHorizontalPadding: 0,
159
- itemVerticalPadding: 4,
160
- itemGap: 6,
161
- itemLineGap: 2,
162
- itemBgGradient: false,
163
- itemBgGradientDir: 'to-bottom',
164
- itemBgHover: true,
165
- overflowMode: 'scroll',
166
- maxVisibleItems: 4,
167
- itemHeight: 28,
168
- minRowHeight: 118,
169
- badgeScale: 0.75,
170
- // 条目色留空表示沿用 type/主题配色
171
- itemTextColor: '',
172
- itemBgColor: ''
173
- }
174
- }
175
- }
176
- }
177
- ```
178
-
179
- `show-config-toolbar` 默认是 `false`。开启后组件顶部会出现配置工具栏(P1~P14):
180
- 条目对齐、日期格/窄屏日期格内边距(各拆「上下 / 左右」两块)、条目左右/上下内边距与间距、
181
- 名称与地址间距、单格最多显示、条目高度、条目背景效果(纯色/渐变,方向可上下或左右)、
182
- 悬浮加深(可关闭)与条目文字色/背景色;每张卡片右上角都有「还原」可回到初始值。
183
- 选定条目背景色后,鼠标悬浮会自动把背景调淡一档,不喜欢可在「悬浮加深」里关闭。
184
- 底部实时显示当前配置 JSON,右上角「复制配置」一键复制。用户把复制出的 JSON 发回后,
185
- 研发直接把它赋给 `layoutConfig` 通过 `v-bind` 应用即可。
186
-
187
- ## 字段映射(后端字段不一致时)
188
-
189
- **不需要改数据**,传 `field-names` 即可。字段路径支持 `'a.b.c'` 形式。
190
-
191
- ```js
192
- const fieldNames = {
193
- month: 'ym',
194
- monthLabel: 'ymText',
195
- days: 'dateList',
196
- date: 'dayStr',
197
- items: 'activityList',
198
- itemKey: 'activityId',
199
- itemLabel: 'schoolName',
200
- itemAddress: 'rawAddress',
201
- itemBadge: 'activityTypeName',
202
- itemType: 'activityType',
203
- itemDisabled: 'expired'
204
- }
205
- ```
206
-
207
- ```vue
208
- <EventCalendar :data="data" :field-names="fieldNames" />
209
- ```
210
-
211
- 完整默认值见 `utils.js` 里的 `DEFAULT_FIELD_NAMES`。
212
-
213
- ## 核心机制说明
214
-
215
- ### 1. 月份补全与跨年
216
-
217
- 每个月天数(28/29/30/31)和「1 号是星期几」都不固定,组件会自动补齐首尾:
218
-
219
- - 若 2 月 1 号是**周三**,首行补上 1 月的周日、周一、周二;
220
- - 若 2 月 28 号是**周三**,末行补上 3 月的周四、周五、周六;
221
- - 非当月的补位日期自动**置灰**(`.is-other-month`)。
222
-
223
- 实现上先算出本月 1 号相对「一周起始日」的偏移量 `leading`,再用
224
- `new Date(year, month - 1, 1 - leading + i)` 递推生成所有格子。
225
- 原生 `Date` 对天数越界会自动进位/借位,**跨年(1 月往前补 12 月、12 月往后补次年 1 月)无需任何特判**。
226
-
227
- 补位格子默认也会渲染条目,可用 `:show-adjacent-items="false"` 关掉。
228
-
229
- ### 2. 行高与条目溢出
230
-
231
- **行高由该行条目最多的那一天决定** —— 这是 CSS Grid 的天然行为
232
- (同一行的格子会自动拉伸到该行最高格子的高度),无需 JS 计算,也不会因为窗口缩放而失准。
233
-
234
- 单日条目超过 `max-visible-items`(默认 4)后有两种处理:
235
-
236
- | overflow-mode | 行为 |
237
- | --- | --- |
238
- | `scroll`(默认) | 格内出现细滚动条,滚动区高度 = `n × item-height + (n-1) × item-gap` |
239
- | `collapse` | 只显示前 n-1 条,末尾出现「还有 N 项」,可监听 `more-click` |
240
-
241
- 大学名称不超过 7 个字符时使用 14px,超过 7 个字符时使用 12px;地址行统一使用 12px,
242
- 地址为空时不渲染。
243
-
244
- `min-row-height` 保证没有条目的行不会塌陷。
245
-
246
- ### 3. 轮播与暂停
247
-
248
- `autoplay` 开启后按 `autoplay-interval` 自动切换月份,顶部细进度条展示剩余时间。
249
- 以下情况会**自动暂停并保留剩余时间**(恢复时接着走,进度条不跳):
250
-
251
- - 鼠标悬停在组件上(`pause-on-hover`,默认开)
252
- - 月份下拉框展开中
253
- - 浏览器标签页切到后台(`visibilitychange`)
254
- - 用户点击了暂停按钮
255
-
256
- `loop="false"` 时播到最后一个月会停止并触发 `autoplay-end`。
257
-
258
- ### 4. 切换动效
259
-
260
- | transition-effect | 效果 |
261
- | --- | --- |
262
- | `slide`(默认) | 按切换方向左右滑入滑出 |
263
- | `fade` | 淡入淡出 |
264
- | `zoom` | 缩放 |
265
- | `flip` | 带透视的 3D 翻页 |
266
- | `none` | 关闭动效 |
267
-
268
- 另有 `cell-stagger` 让单元格从左上到右下错峰入场。
269
- 动效时长由 `transition-duration` 控制,设为 `0` 亦可视作关闭。
270
-
271
- 切月时行数可能从 5 行变 6 行,组件用 `ResizeObserver` 测量面板高度并做高度过渡,不会突然跳动。
272
-
273
- > 组件已适配 `prefers-reduced-motion`:系统开启「减少动态效果」时自动关闭全部动画。
274
-
275
- ## API
276
-
277
- ### Props
278
-
279
- | 参数 | 说明 | 类型 | 默认值 |
280
- | --- | --- | --- | --- |
281
- | data | 日历数据,支持按月分组与扁平两种结构 | Array | `[]` |
282
- | field-names | 字段映射,支持 `a.b.c` 点路径 | Object | `{}` |
283
- | loading | 加载中,为 true 时渲染骨架屏 | Boolean | `false` |
284
- | skeleton-rows | 骨架屏行数 | Number | `5` |
285
- | active-month | 当前月份,支持 `v-model` / `.sync` | String | `''` |
286
- | show-month-select | 是否显示月份下拉框 | Boolean | `true` |
287
- | show-arrows | 是否显示左右翻月箭头 | Boolean | `false` |
288
- | autoplay | 是否开启自动轮播 | Boolean | `false` |
289
- | autoplay-interval | 轮播间隔(毫秒) | Number | `60000` |
290
- | loop | 播到最后一个月后是否回到第一个 | Boolean | `true` |
291
- | pause-on-hover | 鼠标悬停时暂停轮播 | Boolean | `true` |
292
- | show-progress | 显示轮播倒计时进度条 | Boolean | `true` |
293
- | show-autoplay-toggle | 显示播放/暂停按钮 | Boolean | `true` |
294
- | transition-effect | `slide` / `fade` / `zoom` / `flip` / `none` | String | `'slide'` |
295
- | transition-duration | 动效时长(毫秒) | Number | `420` |
296
- | cell-stagger | 单元格错峰入场动画 | Boolean | `false` |
297
- | show-header | 是否显示顶部区域 | Boolean | `true` |
298
- | title / subtitle | 默认标题与副标题(`header-left` 未传时生效) | String | `''` |
299
- | first-day-of-week | 一周起始日,0=周日 1=周一 | Number | `0` |
300
- | week-labels | 星期文案,下标对应 `Date.getDay()` | Array | `['周日'…'周六']` |
301
- | max-visible-items | 单日最多显示条目数 | Number | `4` |
302
- | overflow-mode | 溢出处理:`scroll` / `collapse` | String | `'scroll'` |
303
- | item-height | 单条条目高度(px) | Number | `28` |
304
- | item-gap | 条目间距(px) | Number | `6` |
305
- | item-align | 条目内容对齐方式:`left` / `center` | String | `'left'` |
306
- | calendar-margin | 日历根节点外边距;Number 按 px 处理,String 支持 CSS 简写 | Number / String | `0` |
307
- | calendar-padding | 日历根节点内边距;Number 按 px 处理,String 支持 CSS 简写 | Number / String | `0` |
308
- | header-padding | 顶部区域内边距,支持 CSS 简写 | Number / String | `'4px 4px 16px'` |
309
- | cell-padding | 日期格内边距,支持 CSS 简写 | Number / String | `'12px 10px'` |
310
- | mobile-cell-padding | 768px 及以下日期格内边距 | Number / String | `'8px 6px'` |
311
- | item-horizontal-padding | 条目左右内边距(px),传 0 可去除 | Number | `8` |
312
- | item-vertical-padding | 条目上下内边距(px) | Number | `4` |
313
- | item-line-gap | 条目内名称与地址的行间距(px) | Number | `2` |
314
- | item-bg-gradient | 条目背景是否启用渐变(在底色上叠柔和渐变) | Boolean | `false` |
315
- | item-bg-gradient-dir | 渐变方向:to-bottom 上到下 | to-right 左到右 | String | `'to-bottom'` |
316
- | item-bg-hover | 悬浮时是否自动把条目背景调淡一档 | Boolean | `true` |
317
- | badge-scale | 右上角角标整体缩放倍率(越小越紧凑) | Number | `0.75` |
318
- | show-config-toolbar | 显示原生布局配置工具栏 | Boolean | `false` |
319
- | item-bg-color | 条目(.ec__item)背景色覆盖;空串按 type/主题配色(工具栏可取色) | String | `''` |
320
- | item-text-color | 条目(.ec__item)文字色覆盖;空串按 type/主题配色(工具栏可取色) | String | `''` |
321
- | min-row-height | 单元格最小高度(px) | Number | `118` |
322
- | show-adjacent-items | 补位日期是否也渲染条目 | Boolean | `true` |
323
- | highlight-today | 高亮今天 | Boolean | `true` |
324
- | colorful | 角标是否按 type 上色 | Boolean | `true` |
325
- | type-colors | 类型配色 `{ type: { color, bg } }` | Object | 内置 4 种 |
326
- | day-formatter | 日期文案格式化 `(cell) => string` | Function | `'9月7日'` |
327
- | month-formatter | 月份下拉文案格式化 `(monthKey, raw) => string` | Function | `null` |
328
- | empty-text | 空数据文案 | String | `'暂无日程数据'` |
329
- | cell-focusable | 单元格可聚焦(键盘无障碍) | Boolean | `false` |
330
- | theme | 主题变量覆盖 | Object | `{}` |
331
-
332
- ### Events
333
-
334
- | 事件名 | 说明 | 回调参数 |
335
- | --- | --- | --- |
336
- | day-click | 点击日期格子 | `(scope, event)` |
337
- | item-click | 点击条目 | `(scope, event)` |
338
- | tag-click | 点击条目右上角角标;**未监听时自动退化为 item-click** | `(scope, event)` |
339
- | more-click | `collapse` 模式下点击「还有 N 项」 | `(scope, event)` |
340
- | month-change | 月份变化 | `(month, { index, source, option, raw })` |
341
- | update:activeMonth | 配合 `v-model` / `.sync` | `(month)` |
342
- | autoplay-toggle | 点击播放/暂停按钮 | `(playing: Boolean)` |
343
- | autoplay-end | `loop=false` 时播到最后一个月 | — |
344
- | transition-end | 月份切换动画结束 | `(month)` |
345
- | config-change | 工具栏配置变化(编辑每一项都会触发) | `(config)` |
346
-
347
- `month-change` 的 `source` 表明触发来源:`select` / `arrow` / `autoplay` / `prop` / `api`。
348
-
349
- 日期格子的 `scope`:
350
-
351
- ```js
352
- { day, date, dateKey, items, visibleItems, raw, isCurrentMonth, isToday, isWeekend, label }
353
- ```
354
-
355
- 条目的 `scope`:
356
-
357
- ```js
358
- { item, raw, label, badge, type, disabled, index, day, dateKey }
359
- ```
360
-
361
- 其中 `item` / `raw` 是后端返回的**原始对象**,字段齐全,不受 `field-names` 影响。
362
-
363
- ### Slots
364
-
365
- | 名称 | 说明 | 作用域参数 |
366
- | --- | --- | --- |
367
- | header-left | 顶部左侧(设计稿的标题区) | `{ month, monthLabel, monthIndex, monthCount, monthOptions, loading, paused, prev, next, goTo, toggleAutoplay }` |
368
- | header-right | 顶部右侧,整体替换默认按钮与下拉 | 同上 |
369
- | weekday | 星期表头单元 | `{ label, weekday, isWeekend, index }` |
370
- | day | 整个日期格子(覆盖所有默认内容) | 日期 scope |
371
- | day-header | 格子里的日期行 | 日期 scope |
372
- | items | 格子里的条目列表区域 | 日期 scope |
373
- | item | 单个条目 | 条目 scope |
374
- | day-empty | 当天无数据时的占位 | 日期 scope |
375
- | loading | 自定义骨架屏 | `{ rows }` |
376
- | empty | 整体空状态 | — |
377
-
378
- 不传插槽时全部回落到默认样式(即设计稿效果)。
379
-
380
- ```vue
381
- <EventCalendar :data="data">
382
- <template #header-left="{ monthLabel }">
383
- <div class="my-head">{{ monthLabel }}</div>
384
- </template>
385
-
386
- <template #item="{ item, label, badge }">
387
- <div class="my-item">{{ item.startTime }} {{ label }} · {{ badge }}</div>
388
- </template>
389
- </EventCalendar>
390
- ```
391
-
392
- ### Methods(通过 `ref` 调用)
393
-
394
- | 方法 | 说明 |
395
- | --- | --- |
396
- | `prev()` | 切到上一个月 |
397
- | `next()` | 切到下一个月 |
398
- | `goTo(index)` | 切到第 index 个月(从 0 开始) |
399
- | `setMonth(month)` | 切到指定月份,如 `setMonth('2026-10')` |
400
- | `restartAutoplay()` | 重置轮播计时 |
401
- | `getLayoutConfig()` | 获取可直接通过 `v-bind` 应用的当前布局配置 |
402
-
403
- ## 主题定制
404
-
405
- 所有颜色都走 CSS 变量,用 `theme` 传入即可换肤:
406
-
407
- ```vue
408
- <EventCalendar
409
- :data="data"
410
- :theme="{
411
- primary: '#10a37f',
412
- primaryGhost: 'rgba(16,163,127,.12)',
413
- border: '#e4e7ed',
414
- borderLight: '#eef0f4',
415
- text: '#303133',
416
- textSecondary: '#606266',
417
- muted: '#c8ccd4',
418
- itemBg: '#f2f9f6',
419
- cellHover: '#f7fcfa',
420
- radius: '10px'
421
- }"
422
- />
423
- ```
424
-
425
- 按业务类型配色用 `type-colors`:
426
-
427
- ```vue
428
- <EventCalendar
429
- :data="data"
430
- :type-colors="{
431
- talk: { color: '#3d6cf0', bg: 'rgba(61,108,240,.10)' },
432
- fair: { color: '#e0821b', bg: 'rgba(224,130,27,.12)' }
433
- }"
434
- />
435
- ```
436
-
437
- `:colorful="false"` 会让角标统一回到中性灰(更贴近原始设计稿)。
438
-
439
- ## 模拟数据
440
-
441
- `mockData.js` 用 `setTimeout` 模拟异步接口,方便脱离后端联调:
442
-
443
- ```js
444
- import {
445
- fetchCalendarData, // 默认字段,可指定月份 / 延迟 / 数据密度
446
- fetchCalendarDataV2, // 字段名完全不同,配合 ALT_FIELD_NAMES 演示映射
447
- fetchCrossYearData, // 2025-12 / 2026-01 / 2026-02,验证跨年补全
448
- fetchEmptyData, // 空数据
449
- fetchNodeqCalendarData, // NodeQ mock 响应(三个月、每天 3~5 条)
450
- NODEQ_MOCK_RESPONSE, // 同一份响应的同步版本
451
- createNodeqMockResponse,
452
- SIMPLE_DATA, // 一份写死的小数据
453
- ALT_FIELD_NAMES
454
- } from './mockData'
455
- import { transformNodeqCalendarResponse } from './recruitmentAdapter'
456
-
457
- const data = await fetchCalendarData({
458
- months: ['2026-09', '2026-10'],
459
- delay: 1500,
460
- maxItems: 6,
461
- density: 0.62
462
- })
463
-
464
- const nodeqResponse = await fetchNodeqCalendarData()
465
- const nodeqData = transformNodeqCalendarResponse(nodeqResponse)
466
- ```
467
-
468
- 数据用固定种子的伪随机生成,**每次刷新结果一致**,方便调样式和截图对比。
469
- `createNodeqMockResponse()` 默认生成 2026 年 9~11 月,每个月 14 个有安排的日期,
470
- 每天 3~5 条 NodeQ mock 记录。转换方法只按这份 mock 的固定字段做映射。
471
-
472
- ## 示例页
473
-
474
- `example.vue` 是按 UI 组件库文档形式组织的完整示例集合,包含 14 个可交互 demo
475
- (基础用法、异步骨架屏、多月切换、自动轮播、切换动效、跨年补全、字段映射、
476
- 溢出与行高、插槽定制、事件、主题、空状态、NodeQ 后端适配、布局配置与 JSON 导出)
477
- 与完整 API 表格。
478
-
479
- 本项目中已挂到路由 `/calendar`。
480
-
481
- ## 浏览器兼容
482
-
483
- - 依赖 CSS Grid、CSS 自定义属性 —— 现代浏览器均支持,不支持 IE11;
484
- - `ResizeObserver` 用于高度过渡,缺失时自动降级(高度不做动画,功能不受影响);
485
- - 复制代码在非 HTTPS 环境会回退到 `document.execCommand`。