npmapps 1.1.4 → 1.1.6

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 (293) hide show
  1. package/app/wujie-wk/dev.log +1979 -0
  2. package/app/wujie-wk/t.html +90 -0
  3. package/app/wujie-wk/wujie-react-child/README.md +126 -0
  4. package/app/wujie-wk/wujie-react-child/eslint.config.js +28 -0
  5. package/app/wujie-wk/wujie-react-child/index.html +13 -0
  6. package/app/wujie-wk/wujie-react-child/package-lock.json +4344 -0
  7. package/app/wujie-wk/wujie-react-child/package.json +32 -0
  8. package/app/wujie-wk/wujie-react-child/public/vite.svg +1 -0
  9. package/app/wujie-wk/wujie-react-child/src/App.css +0 -0
  10. package/app/wujie-wk/wujie-react-child/src/App.tsx +72 -0
  11. package/app/wujie-wk/wujie-react-child/src/assets/react.svg +1 -0
  12. package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.css +63 -0
  13. package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.tsx +112 -0
  14. package/app/wujie-wk/wujie-react-child/src/components/LightCard/index.tsx +36 -0
  15. package/app/wujie-wk/wujie-react-child/src/components/LightCard/style.css +20 -0
  16. package/app/wujie-wk/wujie-react-child/src/hooks/use3DCard.ts +53 -0
  17. package/app/wujie-wk/wujie-react-child/src/hooks/useLightCard.ts +141 -0
  18. package/app/wujie-wk/wujie-react-child/src/index.css +0 -0
  19. package/app/wujie-wk/wujie-react-child/src/main.tsx +8 -0
  20. package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.css +55 -0
  21. package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.tsx +88 -0
  22. package/app/wujie-wk/wujie-react-child/src/pages/Css.tsx +28 -0
  23. package/app/wujie-wk/wujie-react-child/src/pages/Home.tsx +72 -0
  24. package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.css +85 -0
  25. package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.tsx +119 -0
  26. package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.css +61 -0
  27. package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.tsx +87 -0
  28. package/app/wujie-wk/wujie-react-child/src/router/index.tsx +63 -0
  29. package/app/wujie-wk/wujie-react-child/src/types/wujie.d.ts +26 -0
  30. package/app/wujie-wk/wujie-react-child/src/vite-env.d.ts +1 -0
  31. package/app/wujie-wk/wujie-react-child/tsconfig.app.json +26 -0
  32. package/app/wujie-wk/wujie-react-child/tsconfig.json +7 -0
  33. package/app/wujie-wk/wujie-react-child/tsconfig.node.json +24 -0
  34. package/app/wujie-wk/wujie-react-child/vite.config.ts +10 -0
  35. package/app/wujie-wk/wujie-vue2-child/.eslintrc.js +19 -0
  36. package/app/wujie-wk/wujie-vue2-child/README.md +24 -0
  37. package/app/wujie-wk/wujie-vue2-child/babel.config.js +5 -0
  38. package/app/wujie-wk/wujie-vue2-child/docs/superpowers/plans/2026-05-29-quill-editor.md +836 -0
  39. package/app/wujie-wk/wujie-vue2-child/docs/superpowers/specs/2026-05-29-quill-editor-design.md +210 -0
  40. package/app/wujie-wk/wujie-vue2-child/jsconfig.json +19 -0
  41. package/app/wujie-wk/wujie-vue2-child/package-lock.json +21333 -0
  42. package/app/wujie-wk/wujie-vue2-child/package.json +63 -0
  43. package/app/wujie-wk/wujie-vue2-child/postcss.config.js +10 -0
  44. package/app/wujie-wk/wujie-vue2-child/public/favicon.ico +0 -0
  45. package/app/wujie-wk/wujie-vue2-child/public/index.html +17 -0
  46. package/app/wujie-wk/wujie-vue2-child/public/rili.jpg +0 -0
  47. package/app/wujie-wk/wujie-vue2-child/public//344/270/200/351/224/256/351/273/221/346/232/227.html +136 -0
  48. package/app/wujie-wk/wujie-vue2-child/src/App.vue +110 -0
  49. package/app/wujie-wk/wujie-vue2-child/src/assets/bpmn-camunda.jpg +0 -0
  50. package/app/wujie-wk/wujie-vue2-child/src/assets/css/diagram.less +17 -0
  51. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/Icon.less +31 -0
  52. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app-codes.css +26 -0
  53. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.eot +0 -0
  54. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.svg +60 -0
  55. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.ttf +0 -0
  56. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.woff +0 -0
  57. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.woff2 +0 -0
  58. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/config.json +248 -0
  59. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-bottom-tool.svg +30 -0
  60. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-horizontal-center-tool.svg +85 -0
  61. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-left-tool.svg +84 -0
  62. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-right-tool.svg +80 -0
  63. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-top-tool.svg +84 -0
  64. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-vertical-center-tool.svg +89 -0
  65. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/distribute-horizontally-tool.svg +95 -0
  66. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/distribute-vertically-tool.svg +99 -0
  67. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/set-color-tool.svg +111 -0
  68. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-bottom-tool.svg +30 -0
  69. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-horizontal-center-tool.svg +30 -0
  70. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-left-tool.svg +30 -0
  71. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-right-tool.svg +30 -0
  72. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-top-tool.svg +30 -0
  73. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-vertical-center-tool.svg +30 -0
  74. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/distribute-horizontally-tool.svg +30 -0
  75. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/distribute-vertically-tool.svg +30 -0
  76. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/set-color-tool.svg +63 -0
  77. package/app/wujie-wk/wujie-vue2-child/src/assets/logo.png +0 -0
  78. package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/README.md +70 -0
  79. package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/article.md +184 -0
  80. package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/index.js +213 -0
  81. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/CalendarSkeleton.vue +147 -0
  82. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/CodeBlock.vue +199 -0
  83. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/MonthSelect.vue +376 -0
  84. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/README.md +485 -0
  85. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/example.vue +1747 -0
  86. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/index.vue +2720 -0
  87. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/mockData.js +475 -0
  88. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/recruitmentAdapter.js +51 -0
  89. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/utils.js +202 -0
  90. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/FunctionSelector.vue +123 -0
  91. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/OperatorSelector.vue +184 -0
  92. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/ParameterSelector.vue +123 -0
  93. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/api.js +69 -0
  94. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/index.vue +435 -0
  95. package/app/wujie-wk/wujie-vue2-child/src/components/HelloWorld.vue +58 -0
  96. package/app/wujie-wk/wujie-vue2-child/src/components/PageHeader/index.vue +158 -0
  97. package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/README.md +144 -0
  98. package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/example.vue +84 -0
  99. package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/index.vue +203 -0
  100. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/ToolBar.vue +357 -0
  101. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/customTranslate/customTranslate.js +12 -0
  102. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/customTranslate/translationsGerman.js +241 -0
  103. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/index.vue +261 -0
  104. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/xmlData.js +29 -0
  105. package/app/wujie-wk/wujie-vue2-child/src/directives/filldown.js +155 -0
  106. package/app/wujie-wk/wujie-vue2-child/src/directives/filldownTable.js +291 -0
  107. package/app/wujie-wk/wujie-vue2-child/src/main.js +40 -0
  108. package/app/wujie-wk/wujie-vue2-child/src/router/index.js +72 -0
  109. package/app/wujie-wk/wujie-vue2-child/src/store/index.js +23 -0
  110. package/app/wujie-wk/wujie-vue2-child/src/utils/winBox.js +23 -0
  111. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/A.vue +12 -0
  112. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/B.vue +10 -0
  113. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/MagicalComponentsForELFormItem.vue +78 -0
  114. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/index.vue +59 -0
  115. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/tableMouseHorizontalWheel.vue +184 -0
  116. package/app/wujie-wk/wujie-vue2-child/src/views/Home.vue +27 -0
  117. package/app/wujie-wk/wujie-vue2-child/src/views/RouterJump.vue +145 -0
  118. package/app/wujie-wk/wujie-vue2-child/src/views/calendar/index.vue +19 -0
  119. package/app/wujie-wk/wujie-vue2-child/src/views/css.vue +57 -0
  120. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/EllipsisText.vue +73 -0
  121. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/HoverCard.vue +69 -0
  122. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/TableHover.vue +130 -0
  123. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/inputSlo.vue +42 -0
  124. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/tableFixed.vue +148 -0
  125. package/app/wujie-wk/wujie-vue2-child/src/views/echarts/echart-dome.vue +73 -0
  126. package/app/wujie-wk/wujie-vue2-child/src/views/echarts/index.vue +118 -0
  127. package/app/wujie-wk/wujie-vue2-child/src/views/echarts/pei3d.vue +658 -0
  128. package/app/wujie-wk/wujie-vue2-child/src/views/element/bpmn/index.vue +15 -0
  129. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendanceCycle/index.vue +131 -0
  130. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendanceGroup/index.vue +147 -0
  131. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendancePersonnel/index.vue +158 -0
  132. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/companyCalendar/index.vue +147 -0
  133. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/shift/index.vue +147 -0
  134. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/shiftRotationSystem/index.vue +147 -0
  135. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/columnManagement.vue +340 -0
  136. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/dialogInput.vue +71 -0
  137. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/elTableJsx.vue +1826 -0
  138. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/formTable.vue +595 -0
  139. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/index.vue +29 -0
  140. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/simpleTable.vue +189 -0
  141. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx.zip +0 -0
  142. package/app/wujie-wk/wujie-vue2-child/src/views/element/index.vue +39 -0
  143. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/README.md +163 -0
  144. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/example.vue +307 -0
  145. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/index.vue +409 -0
  146. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/toolbar.js +122 -0
  147. package/app/wujie-wk/wujie-vue2-child/vue.config.js +15 -0
  148. package/app/wujie-wk/wujie-vue3-child/.claude/settings.local.json +8 -0
  149. package/app/wujie-wk/wujie-vue3-child/.vscode/extensions.json +3 -0
  150. package/app/wujie-wk/wujie-vue3-child/PROJECT_MEMORY.md +427 -0
  151. package/app/wujie-wk/wujie-vue3-child/README.md +5 -0
  152. package/app/wujie-wk/wujie-vue3-child/index.html +13 -0
  153. package/app/wujie-wk/wujie-vue3-child/package-lock.json +5744 -0
  154. package/app/wujie-wk/wujie-vue3-child/package.json +28 -0
  155. package/app/wujie-wk/wujie-vue3-child/public/vite.svg +1 -0
  156. package/app/wujie-wk/wujie-vue3-child/src/App.vue +130 -0
  157. package/app/wujie-wk/wujie-vue3-child/src/assets/vue.svg +1 -0
  158. package/app/wujie-wk/wujie-vue3-child/src/components/HelloWorld.vue +43 -0
  159. package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/index.jsx +224 -0
  160. package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/style.css +154 -0
  161. package/app/wujie-wk/wujie-vue3-child/src/components/tags-view.vue +193 -0
  162. package/app/wujie-wk/wujie-vue3-child/src/components/tags-view1.vue +131 -0
  163. package/app/wujie-wk/wujie-vue3-child/src/directives/aiLoading.js +182 -0
  164. package/app/wujie-wk/wujie-vue3-child/src/hooks/useClickOutside.js +11 -0
  165. package/app/wujie-wk/wujie-vue3-child/src/hooks/useTableDragSort.js +28 -0
  166. package/app/wujie-wk/wujie-vue3-child/src/main.js +18 -0
  167. package/app/wujie-wk/wujie-vue3-child/src/router/index.js +104 -0
  168. package/app/wujie-wk/wujie-vue3-child/src/store/tagsViewStroe.js +34 -0
  169. package/app/wujie-wk/wujie-vue3-child/src/style.css +171 -0
  170. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.jsx +108 -0
  171. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.module.scss +97 -0
  172. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/README.md +836 -0
  173. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/REFLEX_EXAMPLES.md +728 -0
  174. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.jsx +687 -0
  175. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.module.scss +560 -0
  176. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.jsx +570 -0
  177. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.module.scss +330 -0
  178. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.jsx +378 -0
  179. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.module.scss +228 -0
  180. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.jsx +399 -0
  181. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.module.scss +252 -0
  182. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.jsx +585 -0
  183. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.module.scss +331 -0
  184. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.jsx +392 -0
  185. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.module.scss +39 -0
  186. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/README.md +248 -0
  187. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/SelectorTrigger.jsx +194 -0
  188. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/index.jsx +1459 -0
  189. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/mockData.js +301 -0
  190. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.jsx +182 -0
  191. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.module.scss +28 -0
  192. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/index.jsx +375 -0
  193. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.jsx +121 -0
  194. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.module.scss +76 -0
  195. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/DonutChart/index.jsx +104 -0
  196. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.jsx +75 -0
  197. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.module.scss +12 -0
  198. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.jsx +62 -0
  199. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.module.scss +43 -0
  200. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.jsx +29 -0
  201. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.module.scss +5 -0
  202. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.jsx +58 -0
  203. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.module.scss +85 -0
  204. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.jsx +92 -0
  205. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.module.scss +56 -0
  206. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.jsx +40 -0
  207. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.module.scss +53 -0
  208. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsDonut.jsx +106 -0
  209. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsRankBar.jsx +132 -0
  210. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.jsx +176 -0
  211. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.module.scss +96 -0
  212. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.jsx +162 -0
  213. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.module.scss +16 -0
  214. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.jsx +29 -0
  215. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.module.scss +25 -0
  216. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.jsx +106 -0
  217. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.module.scss +164 -0
  218. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.jsx +182 -0
  219. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.module.scss +203 -0
  220. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.jsx +145 -0
  221. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.module.scss +126 -0
  222. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.jsx +67 -0
  223. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.module.scss +105 -0
  224. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.jsx +81 -0
  225. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.module.scss +47 -0
  226. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.jsx +64 -0
  227. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.module.scss +85 -0
  228. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.jsx +39 -0
  229. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.module.scss +44 -0
  230. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.jsx +83 -0
  231. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.module.scss +101 -0
  232. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.jsx +50 -0
  233. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.module.scss +25 -0
  234. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.jsx +196 -0
  235. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.module.scss +41 -0
  236. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.jsx +183 -0
  237. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.module.scss +115 -0
  238. package/app/wujie-wk/wujie-vue3-child/src/views/child-to-parent.vue +117 -0
  239. package/app/wujie-wk/wujie-vue3-child/src/views/home.vue +53 -0
  240. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/btnSelect.vue +169 -0
  241. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/index.vue +69 -0
  242. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/com.vue +44 -0
  243. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/dialog.jsx +66 -0
  244. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/index.vue +72 -0
  245. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/props.vue +33 -0
  246. package/app/wujie-wk/wujie-vue3-child/src/views/parent-to-child.vue +225 -0
  247. package/app/wujie-wk/wujie-vue3-child/src/views/phone-code.vue +318 -0
  248. package/app/wujie-wk/wujie-vue3-child/src/views/router-jump.vue +123 -0
  249. package/app/wujie-wk/wujie-vue3-child/src/views/test.vue +192 -0
  250. package/app/wujie-wk/wujie-vue3-child/vite.config.js +15 -0
  251. package/app/wujie-wk/wujie-vue3-child copy/.vscode/extensions.json +3 -0
  252. package/app/wujie-wk/wujie-vue3-child copy/README.md +5 -0
  253. package/app/wujie-wk/wujie-vue3-child copy/index.html +13 -0
  254. package/app/wujie-wk/wujie-vue3-child copy/package-lock.json +4617 -0
  255. package/app/wujie-wk/wujie-vue3-child copy/package.json +22 -0
  256. package/app/wujie-wk/wujie-vue3-child copy/public/vite.svg +1 -0
  257. package/app/wujie-wk/wujie-vue3-child copy/src/App.vue +124 -0
  258. package/app/wujie-wk/wujie-vue3-child copy/src/assets/vue.svg +1 -0
  259. package/app/wujie-wk/wujie-vue3-child copy/src/components/HelloWorld.vue +43 -0
  260. package/app/wujie-wk/wujie-vue3-child copy/src/main.js +12 -0
  261. package/app/wujie-wk/wujie-vue3-child copy/src/router/index.js +84 -0
  262. package/app/wujie-wk/wujie-vue3-child copy/src/style.css +4 -0
  263. package/app/wujie-wk/wujie-vue3-child copy/src/views/child-to-parent.vue +117 -0
  264. package/app/wujie-wk/wujie-vue3-child copy/src/views/home.vue +53 -0
  265. package/app/wujie-wk/wujie-vue3-child copy/src/views/parent-to-child.vue +225 -0
  266. package/app/wujie-wk/wujie-vue3-child copy/src/views/phone-code.vue +318 -0
  267. package/app/wujie-wk/wujie-vue3-child copy/src/views/router-jump.vue +115 -0
  268. package/app/wujie-wk/wujie-vue3-child copy/src/views/test.vue +192 -0
  269. package/app/wujie-wk/wujie-vue3-child copy/vite.config.js +10 -0
  270. package/app/wujie-wk/wujie-vue3-main/.vscode/extensions.json +3 -0
  271. package/app/wujie-wk/wujie-vue3-main/README.md +154 -0
  272. package/app/wujie-wk/wujie-vue3-main/index.html +13 -0
  273. package/app/wujie-wk/wujie-vue3-main/package-lock.json +4736 -0
  274. package/app/wujie-wk/wujie-vue3-main/package.json +25 -0
  275. package/app/wujie-wk/wujie-vue3-main/public/vite.svg +1 -0
  276. package/app/wujie-wk/wujie-vue3-main/src/App.vue +879 -0
  277. package/app/wujie-wk/wujie-vue3-main/src/assets/vue.svg +1 -0
  278. package/app/wujie-wk/wujie-vue3-main/src/components/HelloWorld.vue +43 -0
  279. package/app/wujie-wk/wujie-vue3-main/src/components/WujieReact/index.vue +20 -0
  280. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue2/index.vue +8 -0
  281. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3/index.vue +8 -0
  282. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3Copy/index.vue +8 -0
  283. package/app/wujie-wk/wujie-vue3-main/src/main.js +23 -0
  284. package/app/wujie-wk/wujie-vue3-main/src/router/index.js +88 -0
  285. package/app/wujie-wk/wujie-vue3-main/src/store/useMicroAppStore.js +66 -0
  286. package/app/wujie-wk/wujie-vue3-main/src/style.css +3 -0
  287. package/app/wujie-wk/wujie-vue3-main/src/views/home.vue +103 -0
  288. package/app/wujie-wk/wujie-vue3-main/src/views/router-jump.vue +159 -0
  289. package/app/wujie-wk/wujie-vue3-main/src/views/test.vue +125 -0
  290. package/app/wujie-wk/wujie-vue3-main/src/views/vue3-child-msg.vue +108 -0
  291. package/app/wujie-wk/wujie-vue3-main/vite.config.js +12 -0
  292. package/package.json +1 -1
  293. package/app/check-import-case.js +0 -344
@@ -0,0 +1,318 @@
1
+ <template>
2
+ <div>
3
+ <button class="open-dialog-btn" @click="showDialog = true">获取验证码</button>
4
+
5
+ <el-dialog
6
+ v-model="showDialog"
7
+ title="验证码"
8
+ width="400px"
9
+ :show-close="true"
10
+ :close-on-click-modal="false"
11
+ @opened="handleDialogOpened"
12
+ >
13
+ <div class="code-container">
14
+ <div class="code-title">输入短信验证码</div>
15
+ <div class="code-tip">短信验证码发送至 182 **** 1234</div>
16
+
17
+ <div class="code-input-box">
18
+ <el-input
19
+ v-for="(item, index) in 6"
20
+ :key="index"
21
+ v-model="codeArray[index]"
22
+ maxlength="1"
23
+ :input-style="{ textAlign: 'center' }"
24
+ @input="(value) => handleInput(value, index)"
25
+ @keyup.delete="handleDelete(index)"
26
+ ref="inputRefs"
27
+ />
28
+ </div>
29
+
30
+ <div class="resend" @click="resendCode">
31
+ {{ counting ? `${counter}s后重新获取` : '重新获取' }}
32
+ </div>
33
+
34
+ <el-button
35
+ type="primary"
36
+ :loading="loading"
37
+ @click="handleSubmit"
38
+ >
39
+ 确认
40
+ </el-button>
41
+ </div>
42
+ </el-dialog>
43
+
44
+ <div v-if="submittedCode" class="submitted-code">
45
+ 您输入的验证码是: {{ submittedCode }}
46
+ </div>
47
+
48
+ <el-dialog
49
+ v-model="dialogVisible"
50
+ title="提示"
51
+ width="30%"
52
+ :before-close="handleClose"
53
+ @opened="handleDialogOpened"
54
+ >
55
+ <span>{{ dialogMessage }}</span>
56
+ <template #footer>
57
+ <span class="dialog-footer">
58
+ <el-button ref="cancelBtn" @click="dialogVisible = false">取消</el-button>
59
+ <el-button type="primary" ref="confirmBtn" @click="confirmDialog">
60
+ 确定
61
+ </el-button>
62
+ </span>
63
+ </template>
64
+ </el-dialog>
65
+ </div>
66
+ </template>
67
+
68
+ <script setup>
69
+ import { ref, onUnmounted, nextTick } from 'vue'
70
+ import { ElMessage } from 'element-plus'
71
+
72
+ const showDialog = ref(false)
73
+ const codeArray = ref(['', '', '', '', '', ''])
74
+ const inputRefs = ref([])
75
+ const counter = ref(60)
76
+ const counting = ref(false)
77
+ let timer = null
78
+
79
+ const handleInput = (value, index) => {
80
+ // 确保输入为数字
81
+ if (!/^\d*$/.test(value)) {
82
+ codeArray.value[index] = ''
83
+ return
84
+ }
85
+
86
+ // 更新值
87
+ codeArray.value[index] = value.slice(0, 1)
88
+
89
+ // 自动跳转到下一个输入框
90
+ if (value && index < 5) {
91
+ inputRefs.value[index + 1]?.focus()
92
+ }
93
+ }
94
+
95
+ const handleDelete = (index) => {
96
+ if (codeArray.value[index] === '' && index > 0) {
97
+ inputRefs.value[index - 1]?.focus()
98
+ }
99
+ }
100
+
101
+ // 重新发送验证码
102
+ const resendCode = () => {
103
+ if (counting.value) return
104
+ counting.value = true
105
+ counter.value = 60
106
+ timer = setInterval(() => {
107
+ if (counter.value > 0) {
108
+ counter.value--
109
+ } else {
110
+ counting.value = false
111
+ clearInterval(timer)
112
+ }
113
+ }, 1000)
114
+ }
115
+
116
+ // 替换原来的 alert 为 ElMessage
117
+ const showMessage = (message, type = 'warning') => {
118
+ ElMessage({
119
+ message,
120
+ type,
121
+ })
122
+ }
123
+
124
+ // 弹窗相关状态
125
+ const dialogVisible = ref(false)
126
+ const dialogMessage = ref('')
127
+ const submittedCode = ref('') // 用于存储提交的验证码
128
+ const confirmBtn = ref(null)
129
+
130
+ const handleClose = () => {
131
+ dialogVisible.value = false
132
+ }
133
+
134
+ // 处理弹窗打开时自动聚焦确认按钮
135
+ const handleDialogOpened = () => {
136
+ nextTick(() => {
137
+ if (inputRefs.value && inputRefs.value[0]) {
138
+ inputRefs.value[0].focus()
139
+ }
140
+ })
141
+ }
142
+
143
+ const confirmDialog = () => {
144
+ dialogVisible.value = false
145
+ // 保存验证码到显示区域
146
+ submittedCode.value = codeArray.value.join('')
147
+ }
148
+
149
+ // 确认提交
150
+ const handleSubmit = async () => {
151
+ if (codeArray.value.some(code => !code)) {
152
+ ElMessage.warning('验证码不能为空')
153
+ return
154
+ }
155
+ try {
156
+ // 这里是你的验证逻辑
157
+ // await verifyCode()
158
+
159
+ // 保存并显示验证码
160
+ submittedCode.value = codeArray.value.join('')
161
+ // 关闭弹窗
162
+ showDialog.value = false
163
+ ElMessage.success('验证成功')
164
+ } catch (error) {
165
+ ElMessage.error('验证失败')
166
+ } finally {
167
+ }
168
+ }
169
+
170
+ // 组件销毁时清除定时器
171
+ onUnmounted(() => {
172
+ if (timer) {
173
+ clearInterval(timer)
174
+ }
175
+ })
176
+ </script>
177
+
178
+ <style scoped>
179
+ .phone-code-dialog {
180
+ position: fixed;
181
+ top: 0;
182
+ left: 0;
183
+ width: 100%;
184
+ height: 100%;
185
+ z-index: 999;
186
+ }
187
+
188
+ .dialog-mask {
189
+ position: absolute;
190
+ top: 0;
191
+ left: 0;
192
+ width: 100%;
193
+ height: 100%;
194
+ background: rgba(0, 0, 0, 0.5);
195
+ }
196
+
197
+ .dialog-content {
198
+ position: absolute;
199
+ left: 50%;
200
+ top: 50%;
201
+ transform: translate(-50%, -50%);
202
+ width: 90%;
203
+ max-width: 320px;
204
+ background: #fff;
205
+ border-radius: 12px;
206
+ overflow: hidden;
207
+ }
208
+
209
+ .close-icon {
210
+ position: absolute;
211
+ right: 10px;
212
+ top: 10px;
213
+ font-size: 24px;
214
+ color: #999;
215
+ cursor: pointer;
216
+ z-index: 1;
217
+ }
218
+
219
+ .code-container {
220
+ width: 100%;
221
+ padding: 20px;
222
+ box-sizing: border-box;
223
+ }
224
+
225
+ .code-title {
226
+ font-size: 18px;
227
+ font-weight: bold;
228
+ margin-bottom: 8px;
229
+ }
230
+
231
+ .code-tip {
232
+ color: #666;
233
+ font-size: 14px;
234
+ margin-bottom: 20px;
235
+ }
236
+
237
+ .code-input-box {
238
+ display: flex;
239
+ justify-content: space-between;
240
+ margin-bottom: 20px;
241
+ gap: 8px;
242
+ }
243
+
244
+ .code-input-box input {
245
+ width: 40px;
246
+ height: 40px;
247
+ border: 1.5px solid #ddd;
248
+ border-radius: 8px;
249
+ text-align: center;
250
+ font-size: 18px;
251
+ transition: all 0.3s;
252
+ background-color: #f8f9fa;
253
+ }
254
+
255
+ .code-input-box input:focus {
256
+ border-color: #ff4d4f;
257
+ outline: none;
258
+ box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
259
+ background-color: #fff;
260
+ }
261
+
262
+ /* 修改input类型为tel,但仍然保留number的样式控制 */
263
+ .code-input-box input[type="tel"] {
264
+ -moz-appearance: textfield;
265
+ }
266
+
267
+ .code-input-box input::-webkit-outer-spin-button,
268
+ .code-input-box input::-webkit-inner-spin-button {
269
+ -webkit-appearance: none;
270
+ margin: 0;
271
+ }
272
+
273
+ .resend {
274
+ text-align: right;
275
+ color: #1890ff;
276
+ font-size: 14px;
277
+ cursor: pointer;
278
+ margin-bottom: 20px;
279
+ }
280
+
281
+ .confirm-btn {
282
+ width: 100%;
283
+ height: 44px;
284
+ background: #ff4d4f;
285
+ color: #fff;
286
+ border: none;
287
+ border-radius: 22px;
288
+ font-size: 16px;
289
+ cursor: pointer;
290
+ }
291
+
292
+ .confirm-btn:active {
293
+ opacity: 0.8;
294
+ }
295
+
296
+ .open-dialog-btn {
297
+ padding: 8px 20px;
298
+ background: #ff4d4f;
299
+ color: #fff;
300
+ border: none;
301
+ border-radius: 4px;
302
+ font-size: 14px;
303
+ cursor: pointer;
304
+ }
305
+
306
+ .open-dialog-btn:active {
307
+ opacity: 0.8;
308
+ }
309
+
310
+ .submitted-code {
311
+ margin-top: 20px;
312
+ padding: 10px;
313
+ background-color: #f0f9eb;
314
+ border-radius: 4px;
315
+ color: #67c23a;
316
+ font-size: 14px;
317
+ }
318
+ </style>
@@ -0,0 +1,115 @@
1
+ <template>
2
+ <div class="flex-container">
3
+ <div class="container">
4
+ <h1>vue3-child-copy子应用路由跳转(保活)</h1>
5
+ <el-input v-model="url" placeholder="请输入地址"></el-input>
6
+ <el-input v-model="name" placeholder="请输入姓名"></el-input>
7
+ <el-input v-model="age" placeholder="请输入年龄" type="number"></el-input>
8
+ <el-select v-model="selectedApp" placeholder="请选择应用">
9
+ <el-option label="vue3-child" value="vue3-child"></el-option>
10
+ <el-option label="vue2-child" value="vue2-child"></el-option>
11
+ </el-select>
12
+ <el-button type="primary" @click="jumpToMain">跳转到主应用</el-button>
13
+ </div>
14
+ <div class="route-params">
15
+ <h1>接收到的路由参数:</h1>
16
+ <p>路径: {{ $route.path }}</p>
17
+ <p v-for="(item,key) in $route.query" :key="item">{{ key }}:{{ item }}</p>
18
+ </div>
19
+ </div>
20
+ </template>
21
+
22
+ <script setup>
23
+ import { ref } from 'vue'
24
+ import { ElInput, ElButton, ElSelect, ElOption } from 'element-plus'
25
+ const url = ref('/test')
26
+ const name = ref('name')
27
+ const age = ref('age')
28
+ const selectedApp = ref('vue3-child')
29
+ const jumpToMain = () => {
30
+
31
+ }
32
+
33
+
34
+
35
+ </script>
36
+
37
+ <style scoped>
38
+ .container {
39
+ display: flex;
40
+ flex-direction: column;
41
+ align-items: center;
42
+ gap: 20px;
43
+ padding: 20px;
44
+ background-color: #f8f8f8;
45
+ border-radius: 10px;
46
+ box-shadow: 0 4px 8px rgba(0,0,0,0.15);
47
+ width: 45%;
48
+ margin: 0;
49
+ transition: box-shadow 0.3s ease-in-out;
50
+ }
51
+
52
+ h1 {
53
+ color: #333;
54
+ margin-bottom: 20px;
55
+ font-family: 'Helvetica Neue', Arial, sans-serif;
56
+ }
57
+
58
+ el-input, el-select {
59
+ width: 100%;
60
+ border: 1px solid #ccc;
61
+ border-radius: 5px;
62
+ padding: 10px;
63
+ transition: border-color 0.3s ease-in-out;
64
+ }
65
+
66
+ el-input:focus, el-select:focus {
67
+ border-color: #007BFF;
68
+ }
69
+
70
+ el-button {
71
+ width: 100%;
72
+ height: 40px;
73
+ background-color: #007BFF;
74
+ color: white;
75
+ border: none;
76
+ border-radius: 5px;
77
+ transition: background-color 0.3s ease-in-out;
78
+ }
79
+
80
+ el-button:hover {
81
+ background-color: #0056b3;
82
+ }
83
+
84
+ .route-params {
85
+ padding: 20px;
86
+ background-color: #eef2f7;
87
+ border-radius: 8px;
88
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
89
+ width: 45%;
90
+ margin: 0;
91
+ }
92
+
93
+ .route-params h1 {
94
+ color: #007BFF;
95
+ font-size: 24px;
96
+ }
97
+
98
+ .route-params p {
99
+ font-size: 16px;
100
+ color: #333;
101
+ margin-bottom: 10px;
102
+ background-color: #fff;
103
+ padding: 10px;
104
+ border-radius: 5px;
105
+ border: 1px solid #ccc;
106
+ }
107
+
108
+ .flex-container {
109
+ display: flex;
110
+ justify-content: space-around;
111
+ align-items: flex-start;
112
+ padding: 20px;
113
+ gap: 20px;
114
+ }
115
+ </style>
@@ -0,0 +1,192 @@
1
+ <template>
2
+ <div class="test-container">
3
+ <h1 class="test-title">vue3子应用功能测试页面</h1>
4
+ <button class="primary-btn" @click="sendMessage">发送消息</button>
5
+ <div class="test-section">
6
+ <h2 class="section-title">基础功能演示</h2>
7
+
8
+ <div class="card">
9
+ <h3>计数器示例</h3>
10
+ <div class="counter-wrapper">
11
+ <button class="btn" @click="decrease">-</button>
12
+ <span class="counter">{{ counter }}</span>
13
+ <button class="btn" @click="increase">+</button>
14
+ </div>
15
+ </div>
16
+
17
+ <div class="card">
18
+ <h3>数据列表示例</h3>
19
+ <ul class="test-list">
20
+ <li v-for="item in items" :key="item.id" class="list-item">
21
+ {{ item.name }}
22
+ </li>
23
+ </ul>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ </template>
28
+
29
+ <script setup>
30
+ import { ref } from 'vue'
31
+ import { useRoute } from 'vue-router'
32
+ const counter = ref(0)
33
+ const items = ref([
34
+ { id: 1, name: '测试项目 1' },
35
+ { id: 2, name: '测试项目 2' },
36
+ { id: 3, name: '测试项目 3' }
37
+ ])
38
+
39
+ const increase = () => {
40
+ counter.value++
41
+ }
42
+
43
+ const decrease = () => {
44
+ counter.value--
45
+ }
46
+
47
+ const sendMessage = () => {
48
+
49
+ window.$wujie?.bus.$emit('child-event', {
50
+ message: 'Hello from Vue3 Child',
51
+ type: 'success',
52
+ duration: 3000,
53
+ title: 'vue3子应用测试消息'
54
+ })
55
+ }
56
+ // 获取路由参数
57
+ const route = useRoute()
58
+ </script>
59
+
60
+ <style scoped>
61
+ .test-container {
62
+ padding: 3rem;
63
+ margin: 0 auto;
64
+ background-color: #f5f7fa;
65
+ min-height: 100vh;
66
+ }
67
+
68
+ .test-title {
69
+ color: #1a1a1a;
70
+ font-size: 2.5rem;
71
+ margin-bottom: 2rem;
72
+ text-align: center;
73
+ font-weight: 600;
74
+ text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
75
+ }
76
+
77
+ .primary-btn {
78
+ background: linear-gradient(135deg, #42b983 0%, #3aa876 100%);
79
+ color: white;
80
+ border: none;
81
+ padding: 0.8rem 1.5rem;
82
+ border-radius: 6px;
83
+ cursor: pointer;
84
+ font-size: 1rem;
85
+ font-weight: 500;
86
+ transition: all 0.3s ease;
87
+ display: block;
88
+ margin: 0 auto;
89
+ box-shadow: 0 2px 8px rgba(66, 185, 131, 0.2);
90
+ }
91
+
92
+ .primary-btn:hover {
93
+ transform: translateY(-2px);
94
+ box-shadow: 0 4px 12px rgba(66, 185, 131, 0.3);
95
+ }
96
+
97
+ .test-section {
98
+ margin-top: 3rem;
99
+ }
100
+
101
+ .section-title {
102
+ color: #2c3e50;
103
+ font-size: 1.8rem;
104
+ margin-bottom: 2rem;
105
+ font-weight: 600;
106
+ position: relative;
107
+ padding-left: 1rem;
108
+ }
109
+
110
+ .section-title::before {
111
+ content: '';
112
+ position: absolute;
113
+ left: 0;
114
+ top: 50%;
115
+ transform: translateY(-50%);
116
+ width: 4px;
117
+ height: 24px;
118
+ background: #42b983;
119
+ border-radius: 2px;
120
+ }
121
+
122
+ .card {
123
+ background-color: #fff;
124
+ border-radius: 12px;
125
+ padding: 2rem;
126
+ margin-bottom: 2rem;
127
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
128
+ transition: transform 0.3s ease;
129
+ }
130
+
131
+ .card:hover {
132
+ transform: translateY(-4px);
133
+ }
134
+
135
+ .card h3 {
136
+ color: #2c3e50;
137
+ margin-bottom: 1.5rem;
138
+ font-weight: 600;
139
+ font-size: 1.4rem;
140
+ }
141
+
142
+ .counter-wrapper {
143
+ display: flex;
144
+ align-items: center;
145
+ justify-content: center;
146
+ gap: 1.5rem;
147
+ }
148
+
149
+ .counter {
150
+ font-size: 2rem;
151
+ min-width: 4rem;
152
+ text-align: center;
153
+ font-weight: 600;
154
+ color: #42b983;
155
+ }
156
+
157
+ .btn {
158
+ background-color: #42b983;
159
+ color: white;
160
+ border: none;
161
+ padding: 0.8rem 1.2rem;
162
+ border-radius: 6px;
163
+ cursor: pointer;
164
+ font-size: 1.2rem;
165
+ transition: all 0.3s ease;
166
+ box-shadow: 0 2px 8px rgba(66, 185, 131, 0.2);
167
+ }
168
+
169
+ .btn:hover {
170
+ background-color: #3aa876;
171
+ transform: scale(1.05);
172
+ }
173
+
174
+ .test-list {
175
+ list-style: none;
176
+ padding: 0;
177
+ }
178
+
179
+ .list-item {
180
+ padding: 1rem;
181
+ border-bottom: 1px solid #eee;
182
+ transition: background-color 0.3s ease;
183
+ }
184
+
185
+ .list-item:hover {
186
+ background-color: #f8f9fa;
187
+ }
188
+
189
+ .list-item:last-child {
190
+ border-bottom: none;
191
+ }
192
+ </style>
@@ -0,0 +1,10 @@
1
+ import { defineConfig } from 'vite'
2
+ import vue from '@vitejs/plugin-vue'
3
+
4
+ // https://vite.dev/config/
5
+ export default defineConfig({
6
+ plugins: [vue()],
7
+ server: {
8
+ port: 3002
9
+ }
10
+ })
@@ -0,0 +1,3 @@
1
+ {
2
+ "recommendations": ["Vue.volar"]
3
+ }