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,331 +0,0 @@
1
- // 人员选择器样式
2
- .personnelSelector {
3
- position: relative;
4
- width: 100%;
5
- }
6
-
7
- // 自定义输入框
8
- .customInput {
9
- display: flex;
10
- align-items: center;
11
- width: 100%;
12
- min-height: 32px;
13
- padding: 1px 11px;
14
- background: #fff;
15
- border: 1px solid #dcdfe6;
16
- border-radius: 4px;
17
- cursor: pointer;
18
- transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
19
- outline: none;
20
- box-sizing: border-box;
21
-
22
- &:hover {
23
- border-color: #c0c4cc;
24
- }
25
-
26
- &.focused {
27
- border-color: #409eff;
28
- }
29
-
30
- &.disabled {
31
- background-color: #f5f7fa;
32
- border-color: #e4e7ed;
33
- color: #c0c4cc;
34
- cursor: not-allowed;
35
- }
36
- }
37
-
38
- // 输入框内容区域
39
- .inputContent {
40
- flex: 1;
41
- display: flex;
42
- align-items: center;
43
- min-width: 0;
44
- min-height: 30px;
45
- padding: 2px 0;
46
- }
47
-
48
- // 占位符
49
- .placeholder {
50
- color: #c0c4cc;
51
- font-size: 14px;
52
- }
53
-
54
- // 前置标签
55
- .label {
56
- color: #606266;
57
- font-size: 14px;
58
- margin-right: 4px;
59
- flex-shrink: 0;
60
- }
61
-
62
- // 单选文本
63
- .text {
64
- color: #606266;
65
- font-size: 14px;
66
- overflow: hidden;
67
- text-overflow: ellipsis;
68
- white-space: nowrap;
69
- }
70
-
71
- // 标签容器
72
- .tagsWrapper {
73
- display: flex;
74
- align-items: center;
75
- flex-wrap: wrap;
76
- gap: 4px;
77
- }
78
-
79
- // 标签
80
- .tag {
81
- margin: 0;
82
- max-width: 100%;
83
-
84
- :global(.el-tag__content) {
85
- overflow: hidden;
86
- text-overflow: ellipsis;
87
- white-space: nowrap;
88
- }
89
- }
90
-
91
- // 按钮模式包装器
92
- .buttonWrapper {
93
- // width: 100%;
94
- }
95
-
96
- // 按钮内部容器
97
- .buttonInner {
98
- display: flex;
99
- align-items: center;
100
- justify-content: space-between;
101
- width: 100%;
102
- gap: 8px;
103
- }
104
-
105
- // 按钮内容区域
106
- .buttonContent {
107
- flex: 1;
108
- display: flex;
109
- align-items: center;
110
- min-width: 0;
111
- text-align: left;
112
- overflow: hidden;
113
- }
114
-
115
- // 按钮文字包装器(用于显示文字+徽章)
116
- .buttonTextWrapper {
117
- display: flex;
118
- align-items: center;
119
- gap: 8px;
120
- }
121
-
122
- // 数量徽章(圆圈显示 +N)
123
- .countBadge {
124
- display: inline-flex;
125
- align-items: center;
126
- justify-content: center;
127
- min-width: 20px;
128
- height: 20px;
129
- padding: 0 4px;
130
- background-color: #ecf5ff;
131
- color: #409eff;
132
- font-size: 12px;
133
- font-weight: 500;
134
- border-radius: 10px;
135
- white-space: nowrap;
136
- flex-shrink: 0;
137
- }
138
-
139
- // 右侧图标区域
140
- .suffixIcons {
141
- display: flex;
142
- align-items: center;
143
- gap: 4px;
144
- margin-left: 8px;
145
- flex-shrink: 0;
146
- }
147
-
148
- // 清除图标
149
- .clearIcon {
150
- font-size: 14px;
151
- color: #c0c4cc;
152
- cursor: pointer;
153
- transition: color 0.2s;
154
-
155
- &:hover {
156
- color: #909399;
157
- }
158
- }
159
-
160
- // 下拉箭头图标
161
- .arrowIcon {
162
- font-size: 14px;
163
- color: #c0c4cc;
164
- transition: transform 0.3s;
165
-
166
- &.reverse {
167
- transform: rotate(180deg);
168
- }
169
- }
170
-
171
- .disabled {
172
- .clearIcon,
173
- .arrowIcon {
174
- cursor: not-allowed;
175
- }
176
- }
177
-
178
- // 下拉框容器
179
- .dropdown {
180
- position: fixed;
181
- background: #fff;
182
- border: 1px solid #e4e7ed;
183
- border-radius: 4px;
184
- box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
185
- z-index: 2000;
186
- display: flex;
187
- flex-direction: column;
188
- overflow: hidden;
189
- }
190
-
191
- // 悬浮窗内容
192
- .dropdownContent {
193
- display: flex;
194
- flex-direction: column;
195
- height: 100%;
196
- max-height: inherit; // 继承父容器的 maxHeight
197
- overflow: hidden; // 防止内容溢出到悬浮窗外
198
- }
199
-
200
- // 搜索框区域
201
- .searchBox {
202
- padding: 8px;
203
- border-bottom: 1px solid #e4e7ed;
204
- background: #fff;
205
- }
206
-
207
- // 列表容器
208
- .listWrapper {
209
- flex: 1;
210
- overflow-y: auto;
211
-
212
- // 自定义滚动条样式
213
- &::-webkit-scrollbar {
214
- width: 6px;
215
- }
216
-
217
- &::-webkit-scrollbar-track {
218
- background: #f1f1f1;
219
- border-radius: 3px;
220
- }
221
-
222
- &::-webkit-scrollbar-thumb {
223
- background: #c1c1c1;
224
- border-radius: 3px;
225
-
226
- &:hover {
227
- background: #a8a8a8;
228
- }
229
- }
230
- }
231
-
232
- // 人员列表
233
- .personnelList {
234
- padding: 4px 0;
235
- }
236
-
237
- // 人员列表项
238
- .personnelItem {
239
- display: flex;
240
- align-items: center;
241
- padding: 8px 12px;
242
- cursor: pointer;
243
- transition: background-color 0.2s;
244
-
245
- &:hover {
246
- background-color: #f5f7fa;
247
- }
248
-
249
- &.selected {
250
- background-color: #ecf5ff;
251
-
252
- .personName {
253
- color: #409eff;
254
- font-weight: 500;
255
- }
256
- }
257
- }
258
-
259
- // 复选框
260
- .checkbox {
261
- margin-right: 8px;
262
- pointer-events: none;
263
- }
264
-
265
- // 人员信息
266
- .personInfo {
267
- flex: 1;
268
- min-width: 0;
269
- }
270
-
271
- // 人员姓名
272
- .personName {
273
- font-size: 14px;
274
- color: #606266;
275
- margin-bottom: 4px;
276
- overflow: hidden;
277
- text-overflow: ellipsis;
278
- white-space: nowrap;
279
- }
280
-
281
- // 人员元数据
282
- .personMeta {
283
- display: flex;
284
- align-items: center;
285
- font-size: 12px;
286
- color: #909399;
287
- }
288
-
289
- // 职位
290
- .position {
291
- overflow: hidden;
292
- text-overflow: ellipsis;
293
- white-space: nowrap;
294
- }
295
-
296
- // 分隔符
297
- .divider {
298
- margin: 0 6px;
299
- color: #dcdfe6;
300
- }
301
-
302
- // 电话
303
- .phone {
304
- overflow: hidden;
305
- text-overflow: ellipsis;
306
- white-space: nowrap;
307
- }
308
-
309
- // 空状态
310
- .empty {
311
- padding: 40px 16px;
312
- text-align: center;
313
- color: #909399;
314
- font-size: 14px;
315
- }
316
-
317
- // 加载状态
318
- .loading {
319
- display: flex;
320
- flex-direction: column;
321
- align-items: center;
322
- justify-content: center;
323
- padding: 40px 16px;
324
- color: #909399;
325
- font-size: 14px;
326
-
327
- .el-icon {
328
- font-size: 24px;
329
- margin-bottom: 8px;
330
- }
331
- }
@@ -1,392 +0,0 @@
1
- import { defineComponent, ref, onMounted, onBeforeUnmount, nextTick } from 'vue'
2
- import styles from './PopoverSelector.module.scss'
3
-
4
- /**
5
- * 通用悬浮窗选择器组件
6
- * @component PopoverSelector
7
- * @description 提供触发器和悬浮窗两个插槽,实现解耦的选择器组件
8
- *
9
- * @example
10
- * <PopoverSelector width={400} maxHeight={500}>
11
- * {{
12
- * trigger: ({ open, visible }) => (
13
- * <el-button onClick={open}>选择部门</el-button>
14
- * ),
15
- * default: ({ close }) => (
16
- * <div>悬浮窗内容</div>
17
- * )
18
- * }}
19
- * </PopoverSelector>
20
- */
21
- export default defineComponent({
22
- name: 'PopoverSelector',
23
-
24
- props: {
25
- /**
26
- * 悬浮窗宽度
27
- * @type {number|string}
28
- */
29
- width: {
30
- type: [Number, String],
31
- default: 400,
32
- },
33
- /**
34
- * 悬浮窗高度(不设置则自适应)
35
- * @type {number|string}
36
- */
37
- height: {
38
- type: [Number, String],
39
- default: null,
40
- },
41
- /**
42
- * 悬浮窗最大高度
43
- * @type {number}
44
- */
45
- maxHeight: {
46
- type: Number,
47
- default: 400,
48
- },
49
- /**
50
- * 悬浮窗自定义 class
51
- * @type {string|Array|Object}
52
- */
53
- dropdownClass: {
54
- type: [String, Array, Object],
55
- default: '',
56
- },
57
- /**
58
- * 悬浮窗自定义 style
59
- * @type {Object}
60
- */
61
- dropdownStyle: {
62
- type: Object,
63
- default: () => ({}),
64
- },
65
- /**
66
- * 是否禁用
67
- * @type {boolean}
68
- */
69
- disabled: {
70
- type: Boolean,
71
- default: false,
72
- },
73
- /**
74
- * 悬浮窗位置:auto 自动 | top 上方 | bottom 下方
75
- * @type {string}
76
- */
77
- placement: {
78
- type: String,
79
- default: 'auto',
80
- validator: (value) => ['auto', 'top', 'bottom'].includes(value),
81
- },
82
- /**
83
- * 悬浮窗与触发器的间距
84
- * @type {number}
85
- */
86
- offset: {
87
- type: Number,
88
- default: 4,
89
- },
90
- /**
91
- * 是否显示动画
92
- * @type {boolean}
93
- */
94
- animated: {
95
- type: Boolean,
96
- default: true,
97
- },
98
- /**
99
- * 触发方式:click 点击 | hover 悬浮
100
- * @type {string}
101
- */
102
- triggerEvent: {
103
- type: String,
104
- default: 'click',
105
- validator: (value) => ['click', 'hover'].includes(value),
106
- },
107
- /**
108
- * hover 触发时的延迟(毫秒)
109
- * @type {number}
110
- */
111
- hoverDelay: {
112
- type: Number,
113
- default: 200,
114
- },
115
- },
116
-
117
- emits: ['open', 'close', 'update:visible'],
118
-
119
- setup(props, { emit, slots }) {
120
- // 是否显示悬浮窗
121
- const visible = ref(false)
122
-
123
- // 触发器 ref
124
- const triggerRef = ref(null)
125
-
126
- // 悬浮窗 ref
127
- const dropdownRef = ref(null)
128
-
129
- // 悬浮窗动态样式
130
- const computedDropdownStyle = ref({})
131
-
132
- // hover 延迟定时器
133
- let hoverTimer = null
134
-
135
- /**
136
- * 计算悬浮窗位置
137
- */
138
- const calculatePosition = () => {
139
- if (!triggerRef.value || !dropdownRef.value) return
140
-
141
- // 获取真正的 DOM 元素(处理 el-button 等组件实例)
142
- const triggerEl = triggerRef.value.$el || triggerRef.value
143
- const rect = triggerEl.getBoundingClientRect()
144
-
145
- // 悬浮窗尺寸
146
- const dropdownWidth = typeof props.width === 'number' ? props.width : parseInt(props.width)
147
- const dropdownHeight = props.height
148
- ? (typeof props.height === 'number' ? props.height : parseInt(props.height))
149
- : null
150
-
151
- // 计算可用空间
152
- const spaceBelow = window.innerHeight - rect.bottom
153
- const spaceAbove = rect.top
154
-
155
- // 判断显示位置
156
- let showAbove = false
157
- if (props.placement === 'top') {
158
- showAbove = true
159
- } else if (props.placement === 'bottom') {
160
- showAbove = false
161
- } else {
162
- // auto 模式:根据空间自动判断
163
- showAbove = spaceBelow < props.maxHeight && spaceAbove > spaceBelow
164
- }
165
-
166
- // 基础样式
167
- const baseStyle = {
168
- position: 'fixed',
169
- left: `${rect.left}px`,
170
- width: `${dropdownWidth}px`,
171
- }
172
-
173
- // 根据位置计算样式
174
- if (showAbove) {
175
- // 显示在上方
176
- const availableHeight = Math.min(props.maxHeight, spaceAbove - props.offset)
177
- computedDropdownStyle.value = {
178
- ...baseStyle,
179
- bottom: `${window.innerHeight - rect.top + props.offset}px`,
180
- maxHeight: dropdownHeight ? 'none' : `${availableHeight}px`,
181
- height: dropdownHeight ? `${Math.min(dropdownHeight, availableHeight)}px` : 'auto',
182
- }
183
- } else {
184
- // 显示在下方
185
- const availableHeight = Math.min(props.maxHeight, spaceBelow - props.offset)
186
- computedDropdownStyle.value = {
187
- ...baseStyle,
188
- top: `${rect.bottom + props.offset}px`,
189
- maxHeight: dropdownHeight ? 'none' : `${availableHeight}px`,
190
- height: dropdownHeight ? `${Math.min(dropdownHeight, availableHeight)}px` : 'auto',
191
- }
192
- }
193
-
194
- // 合并用户自定义样式
195
- computedDropdownStyle.value = {
196
- ...computedDropdownStyle.value,
197
- ...props.dropdownStyle,
198
- }
199
- }
200
-
201
- /**
202
- * 打开悬浮窗
203
- */
204
- const open = async () => {
205
- if (props.disabled) return
206
-
207
- visible.value = true
208
- emit('update:visible', true)
209
- emit('open')
210
-
211
- // 等待 DOM 更新后计算位置
212
- await nextTick()
213
- calculatePosition()
214
- }
215
-
216
- /**
217
- * 关闭悬浮窗
218
- */
219
- const close = () => {
220
- visible.value = false
221
- emit('update:visible', false)
222
- emit('close')
223
- }
224
-
225
- /**
226
- * 切换悬浮窗
227
- */
228
- const toggle = () => {
229
- if (visible.value) {
230
- close()
231
- } else {
232
- open()
233
- }
234
- }
235
-
236
- /**
237
- * 处理 hover 进入
238
- */
239
- const handleMouseEnter = () => {
240
- if (props.triggerEvent !== 'hover' || props.disabled) return
241
-
242
- // 清除之前的定时器
243
- if (hoverTimer) {
244
- clearTimeout(hoverTimer)
245
- }
246
-
247
- // 延迟打开
248
- hoverTimer = setTimeout(() => {
249
- open()
250
- }, props.hoverDelay)
251
- }
252
-
253
- /**
254
- * 处理 hover 离开
255
- */
256
- const handleMouseLeave = () => {
257
- if (props.triggerEvent !== 'hover') return
258
-
259
- // 清除定时器
260
- if (hoverTimer) {
261
- clearTimeout(hoverTimer)
262
- }
263
-
264
- // 延迟关闭
265
- hoverTimer = setTimeout(() => {
266
- close()
267
- }, props.hoverDelay)
268
- }
269
-
270
- /**
271
- * 取消关闭(鼠标进入悬浮窗时)
272
- */
273
- const cancelClose = () => {
274
- if (hoverTimer) {
275
- clearTimeout(hoverTimer)
276
- }
277
- }
278
-
279
- /**
280
- * 点击外部关闭
281
- */
282
- const handleClickOutside = (e) => {
283
- if (!visible.value) return
284
-
285
- const triggerEl = triggerRef.value?.$el || triggerRef.value
286
- const dropdownEl = dropdownRef.value
287
-
288
- if (
289
- triggerEl &&
290
- dropdownEl &&
291
- !triggerEl.contains(e.target) &&
292
- !dropdownEl.contains(e.target)
293
- ) {
294
- close()
295
- }
296
- }
297
-
298
- /**
299
- * 窗口大小改变时重新计算位置
300
- */
301
- const handleResize = () => {
302
- if (visible.value) {
303
- calculatePosition()
304
- }
305
- }
306
-
307
- // 生命周期
308
- onMounted(() => {
309
- document.addEventListener('click', handleClickOutside)
310
- window.addEventListener('resize', handleResize)
311
- window.addEventListener('scroll', handleResize, true)
312
- })
313
-
314
- onBeforeUnmount(() => {
315
- document.removeEventListener('click', handleClickOutside)
316
- window.removeEventListener('resize', handleResize)
317
- window.removeEventListener('scroll', handleResize, true)
318
-
319
- // 清除定时器
320
- if (hoverTimer) {
321
- clearTimeout(hoverTimer)
322
- }
323
- })
324
-
325
- return () => {
326
- // 检查是否提供了必需的插槽
327
- if (!slots.trigger) {
328
- console.warn('PopoverSelector: trigger 插槽是必需的')
329
- return null
330
- }
331
-
332
- // 构建触发器事件
333
- const triggerEvents = {}
334
- if (props.triggerEvent === 'hover') {
335
- triggerEvents.onMouseenter = handleMouseEnter
336
- triggerEvents.onMouseleave = handleMouseLeave
337
- }
338
-
339
- // 渲染触发器插槽
340
- const triggerSlot = slots.trigger?.({
341
- open,
342
- close,
343
- toggle,
344
- visible: visible.value,
345
- // 传递事件给插槽,让用户可以自定义
346
- events: triggerEvents,
347
- })
348
-
349
- // 渲染悬浮窗内容插槽
350
- const dropdownContent = slots.default?.({
351
- close,
352
- visible: visible.value,
353
- })
354
-
355
- // 悬浮窗的 hover 事件(用于 hover 模式)
356
- const dropdownEvents = {}
357
- if (props.triggerEvent === 'hover') {
358
- dropdownEvents.onMouseenter = cancelClose
359
- dropdownEvents.onMouseleave = handleMouseLeave
360
- }
361
-
362
- return (
363
- <div class={styles.popoverSelector}>
364
- {/* 触发器 */}
365
- <div
366
- ref={triggerRef}
367
- class={styles.trigger}
368
- {...triggerEvents}
369
- >
370
- {triggerSlot}
371
- </div>
372
-
373
- {/* 悬浮窗 */}
374
- {visible.value && (
375
- <div
376
- ref={dropdownRef}
377
- class={[
378
- styles.dropdown,
379
- props.animated && styles.animated,
380
- props.dropdownClass,
381
- ]}
382
- style={computedDropdownStyle.value}
383
- {...dropdownEvents}
384
- >
385
- {dropdownContent}
386
- </div>
387
- )}
388
- </div>
389
- )
390
- }
391
- },
392
- })