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,879 +0,0 @@
1
- <script setup>
2
- // 移除不需要的导入
3
- import { ref, watch, nextTick, onMounted, onUnmounted } from 'vue'
4
- import { ElNotification, ElDialog } from 'element-plus'
5
- import { useRouter } from 'vue-router'
6
- import WujieVue from 'wujie-vue3'
7
- import { useMicroAppStore } from './store/useMicroAppStore'
8
-
9
- const {bus} = WujieVue
10
- const microAppStore = useMicroAppStore()
11
-
12
- bus.$on('child-event', (data,from) => {
13
- // 先存储消息到 pinia
14
- microAppStore.receiveMessage({
15
- ...data,
16
- from: from || 'child-app' // 添加消息来源标识
17
- })
18
-
19
- // 然后显示通知
20
- ElNotification({
21
- message: data.message,
22
- type: data.type,
23
- duration: data.duration,
24
- title:'主应用接受:' + data.title
25
- })
26
- })
27
-
28
- const router = useRouter()
29
-
30
-
31
-
32
- const isMenuOpen = ref(false)
33
- const position = ref({
34
- x: window.innerWidth - 56, // 窗口宽度减去按钮宽度(36px)和右边距(20px)
35
- y: window.innerHeight - 56 // 窗口高度减去按钮高度(36px)和底部距离(20px)
36
- })
37
- const isDragging = ref(false)
38
- const startPosition = ref({ x: 0, y: 0 })
39
- // 添加一个变量来追踪是否发生了拖动
40
- const hasMoved = ref(false)
41
-
42
- // 计算菜单位置
43
- const menuPosition = ref({ direction: 'top', align: 'right' })
44
-
45
- const updateMenuPosition = () => {
46
- const buttonRect = document.querySelector('.menu-button').getBoundingClientRect()
47
- const menuEl = document.querySelector('.menu-content')
48
- if (!menuEl) return
49
-
50
- const menuRect = menuEl.getBoundingClientRect()
51
- const windowHeight = window.innerHeight
52
- const windowWidth = window.innerWidth
53
-
54
- // 计算垂直方向
55
- if (buttonRect.top < menuRect.height + 10) {
56
- menuPosition.value.direction = 'bottom'
57
- } else {
58
- menuPosition.value.direction = 'top'
59
- }
60
-
61
- // 计算水平方向
62
- if (buttonRect.right < menuRect.width) {
63
- menuPosition.value.align = 'right'
64
- } else if (windowWidth - buttonRect.left < menuRect.width) {
65
- menuPosition.value.align = 'left'
66
- } else {
67
- menuPosition.value.align = 'center'
68
- }
69
- }
70
-
71
- // 监听菜单打开状态
72
- watch(isMenuOpen, (newValue) => {
73
- if (newValue) {
74
- nextTick(() => {
75
- updateMenuPosition()
76
- })
77
- }
78
- })
79
-
80
- // 监听位置变化
81
- watch(position, () => {
82
- if (isMenuOpen.value) {
83
- updateMenuPosition()
84
- }
85
- checkStickToEdge()
86
- })
87
-
88
- // 监听窗口大小变化
89
- onMounted(() => {
90
- // 获取保存的位置
91
- const savedPosition = localStorage.getItem('menuPosition')
92
- if (savedPosition) {
93
- position.value = JSON.parse(savedPosition)
94
- } else {
95
- // 如果没有保存的位置,设置默认位置在右下角
96
- position.value = {
97
- x: window.innerWidth - 56,
98
- y: window.innerHeight - 56
99
- }
100
- }
101
-
102
- document.addEventListener('click', handleClickOutside)
103
- window.addEventListener('resize', () => {
104
- if (isMenuOpen.value) {
105
- updateMenuPosition()
106
- }
107
- })
108
- document.addEventListener('mousemove', onDialogDrag)
109
- document.addEventListener('mouseup', stopDialogDrag)
110
- })
111
-
112
- // 在组件卸载时移除事件监听
113
- onUnmounted(() => {
114
- document.removeEventListener('click', handleClickOutside)
115
- document.removeEventListener('mousemove', onDialogDrag)
116
- document.removeEventListener('mouseup', stopDialogDrag)
117
- })
118
-
119
- const isStickToEdge = ref(false)
120
- const stickDirection = ref(null) // 'left' or 'right'
121
- const STICK_THRESHOLD = 10 // 距离边缘多少像素时触发吸附
122
-
123
- // 获取滚动条宽度
124
- const getScrollbarWidth = () => {
125
- const outer = document.createElement('div')
126
- outer.style.visibility = 'hidden'
127
- outer.style.overflow = 'scroll'
128
- document.body.appendChild(outer)
129
-
130
- const inner = document.createElement('div')
131
- outer.appendChild(inner)
132
-
133
- const scrollbarWidth = outer.offsetWidth - inner.offsetWidth
134
- outer.parentNode.removeChild(outer)
135
-
136
- return scrollbarWidth
137
- }
138
-
139
- // 检查是否应该吸附到边缘
140
- const checkStickToEdge = () => {
141
- const windowWidth = window.innerWidth
142
- const buttonWidth = 36 // 按钮的正常宽度
143
-
144
- if (position.value.x < STICK_THRESHOLD) {
145
- stickDirection.value = 'left'
146
- isStickToEdge.value = true
147
- isMenuOpen.value = false
148
- position.value.x = 0 // 直接设置位置为0,完全贴边
149
- } else if (windowWidth - position.value.x - buttonWidth < STICK_THRESHOLD) {
150
- stickDirection.value = 'right'
151
- isStickToEdge.value = true
152
- isMenuOpen.value = false
153
- position.value.x = windowWidth - buttonWidth // 直接设置位置到右边缘
154
- } else {
155
- isStickToEdge.value = false
156
- }
157
- }
158
-
159
- // 修改 onDrag 函数
160
- const onDrag = (e) => {
161
- if (isDragging.value) {
162
- const buttonWidth = 36 // 按钮的正常宽度
163
- const maxX = window.innerWidth - buttonWidth // 修改最大 X 坐标
164
- const maxY = window.innerHeight - 40
165
-
166
- const newX = e.clientX - startPosition.value.x
167
- const newY = e.clientY - startPosition.value.y
168
-
169
- if (newX !== position.value.x || newY !== position.value.y) {
170
- hasMoved.value = true
171
- isStickToEdge.value = false
172
- }
173
-
174
- position.value = {
175
- x: Math.min(Math.max(0, newX), maxX),
176
- y: Math.min(Math.max(0, newY), maxY)
177
- }
178
- }
179
- }
180
-
181
- // 添加全局鼠标事件监听,优化拖拽体验
182
- const setupGlobalEvents = () => {
183
- window.addEventListener('mousemove', onDrag)
184
- window.addEventListener('mouseup', stopDrag)
185
- }
186
-
187
- const startDrag = (e) => {
188
- if (e.target.closest('.menu-button')) {
189
- isDragging.value = true
190
- hasMoved.value = false
191
- startPosition.value = {
192
- x: e.clientX - position.value.x,
193
- y: e.clientY - position.value.y
194
- }
195
- document.body.style.userSelect = 'none'
196
- document.body.style.cursor = 'move'
197
- setupGlobalEvents()
198
- }
199
- }
200
-
201
- const stopDrag = () => {
202
- isDragging.value = false
203
- document.body.style.userSelect = ''
204
- document.body.style.cursor = ''
205
- window.removeEventListener('mousemove', onDrag)
206
- window.removeEventListener('mouseup', stopDrag)
207
- localStorage.setItem('menuPosition', JSON.stringify(position.value))
208
- checkStickToEdge() // 停止拖动时检查是否需要吸附
209
- }
210
-
211
- // 添加点击外部关闭菜单的处理
212
- const handleClickOutside = (e) => {
213
- const floatingMenu = document.querySelector('.floating-menu')
214
- if (isMenuOpen.value && floatingMenu && !floatingMenu.contains(e.target)) {
215
- isMenuOpen.value = false
216
- checkStickToEdge()
217
- }
218
- }
219
-
220
- // 鼠标移入时展开
221
- const handleMouseEnter = () => {
222
- if (isStickToEdge.value) {
223
- isStickToEdge.value = false
224
- }
225
- }
226
-
227
- // 鼠标移出时检查是否需要吸附
228
- const handleMouseLeave = (e) => {
229
- // 检查鼠标是否移动到菜单内容区域
230
- const menuContent = document.querySelector('.menu-content')
231
- if (menuContent && menuContent.contains(e.relatedTarget)) {
232
- return
233
- }
234
-
235
- if (isMenuOpen.value) {
236
- isMenuOpen.value = false
237
- }
238
-
239
- // 立即检查吸附
240
- if (!isDragging.value) {
241
- checkStickToEdge()
242
- }
243
- }
244
-
245
- // 添加菜单内容区域的标移出处理
246
- const handleMenuContentLeave = (e) => {
247
- // 检查鼠标是否移动到按钮区域
248
- const button = document.querySelector('.menu-button')
249
- if (button && button.contains(e.relatedTarget)) {
250
- return
251
- }
252
-
253
- isMenuOpen.value = false
254
- // 重置状态并检查吸附
255
- isDragging.value = false
256
- hasMoved.value = false
257
- checkStickToEdge()
258
- }
259
-
260
- // 修改点击处理函数,阻止事件冒泡
261
- const handleClick = (e) => {
262
- e.stopPropagation() // 阻止事件冒泡
263
- if (!hasMoved.value) {
264
- isMenuOpen.value = !isMenuOpen.value
265
- }
266
- }
267
-
268
- // 添加对 isStickToEdge 的监听
269
- watch(isStickToEdge, (newValue) => {
270
- if (!newValue) {
271
- // 当取消吸附时,启动一个短暂延时,然后重新检查吸附
272
- setTimeout(() => {
273
- if (!isDragging.value && !isMenuOpen.value) {
274
- checkStickToEdge()
275
- }
276
- }, 300) // 300ms 延时,与 CSS 过渡时间匹配
277
- }
278
- })
279
-
280
- // 添加新的响应式变量
281
- const dialogVisible = ref(false)
282
- const messageText = ref('')
283
- const selectedTarget = ref('')
284
- const targets = ref([
285
- { label: 'vue3子应用', value: 'vue3-child-message' },
286
- { label: 'vue2子应用', value: 'vue2-child-message' },
287
- { label: 'react子应用', value: 'react-child-message' }
288
- ])
289
-
290
- // 修改 menuItems 数组
291
- const menuItems = [
292
- { name: '主应用首页', path: '/' },
293
- { name: 'Vue3Child', path: '/vue3-child' },
294
- { name: 'Vue3ChildCopy(保活)', path: '/vue3-child-copy' },
295
- { name: 'Vue2Child', path: '/vue2-child' },
296
- { name: 'ReactChild', path: '/react-child' },
297
- { name: '发送消息', action: 'openMessageDialog' } // 新增菜单项
298
- ]
299
-
300
- // 修改菜单点击处理函数
301
- const handleMenuItemClick = (path, action) => {
302
- if (action === 'openMessageDialog') {
303
- dialogVisible.value = true
304
- // 设置弹窗初始位置为居中
305
- nextTick(() => {
306
- const dialog = document.querySelector('.custom-dialog')
307
- if (dialog) {
308
- const windowWidth = window.innerWidth
309
- const windowHeight = window.innerHeight
310
- const dialogWidth = dialog.offsetWidth
311
- const dialogHeight = dialog.offsetHeight
312
-
313
- dialogPosition.value = {
314
- x: (windowWidth - dialogWidth) / 2,
315
- y: (windowHeight - dialogHeight) / 2
316
- }
317
- }
318
- })
319
- } else {
320
- router.push(path)
321
- }
322
- isMenuOpen.value = false
323
- }
324
-
325
- // 添加消息类型选项
326
- const messageTypes = ref([
327
- { label: '成功', value: 'success' },
328
- { label: '警告', value: 'warning' },
329
- { label: '信息', value: 'info' },
330
- { label: '错误', value: 'error' }
331
- ])
332
-
333
- // 添加选中的消息类型
334
- const selectedType = ref('success')
335
-
336
- // 修改发送消息的函数
337
- const sendGlobalMessage = () => {
338
- if (!messageText.value) return
339
- bus.$emit('global-message', {
340
- message: messageText.value,
341
- type: selectedType.value, // 使用选中的类型
342
- duration: 3000,
343
- title: '全局消息'
344
- })
345
- dialogVisible.value = false
346
- messageText.value = ''
347
- }
348
-
349
- const sendTargetMessage = () => {
350
- if (!messageText.value || !selectedTarget.value) return
351
- bus.$emit(selectedTarget.value, {
352
- message: messageText.value,
353
- type: selectedType.value, // 使用选中的类型
354
- duration: 3000,
355
- title: '定向消息'
356
- })
357
- dialogVisible.value = false
358
- messageText.value = ''
359
- }
360
-
361
- // 添加拖拽相关的变量
362
- const dialogDragging = ref(false)
363
- const dialogPosition = ref({ x: 0, y: 0 })
364
- const dialogStartPosition = ref({ x: 0, y: 0 })
365
-
366
- // 添加拖拽相关的方法
367
- const startDialogDrag = (e) => {
368
- if (e.target.classList.contains('dialog-header')) {
369
- dialogDragging.value = true
370
- const dialog = document.querySelector('.custom-dialog')
371
- const rect = dialog.getBoundingClientRect()
372
- dialogStartPosition.value = {
373
- x: e.clientX - rect.left,
374
- y: e.clientY - rect.top
375
- }
376
- document.body.style.userSelect = 'none'
377
- }
378
- }
379
-
380
- const onDialogDrag = (e) => {
381
- if (dialogDragging.value) {
382
- dialogPosition.value = {
383
- x: e.clientX - dialogStartPosition.value.x,
384
- y: e.clientY - dialogStartPosition.value.y
385
- }
386
- }
387
- }
388
-
389
- const stopDialogDrag = () => {
390
- dialogDragging.value = false
391
- document.body.style.userSelect = ''
392
- }
393
- bus.$on('router-jump-to-main', (data) => {
394
- if(data.app === 'main'){
395
- router.push({
396
- path: data.path,
397
- query: data.query
398
- })
399
- }else{
400
- router.push({
401
- path: `/${data.app}${data.path}`
402
- })
403
- jumpToChild(data)
404
- }
405
- })
406
- const isAlive = {
407
- 'vue3-child':false,
408
- 'vue3-child-copy':true
409
- }
410
-
411
- const jumpToChild = (data) => {
412
- router.push(data.app);
413
- // 判断子应用是否存在
414
- if ( isAlive[data.app] && window.document.querySelector(`iframe[name=${data.app}]`)) {
415
- bus.$emit("router-jump", {
416
- app: data.app,
417
- path: data.path,
418
- query: data.query,
419
- });
420
- } else {
421
- console.log("子应用不存在");
422
- // 监听子应用加载完成
423
- bus.$on("loaded", (app) => handleLoaded(app,data));
424
- }
425
- };
426
-
427
- // 定义一个具体的函数
428
- const handleLoaded = (app,data) => {
429
- if (app === data.app) {
430
- bus.$emit("router-jump", {
431
- app: data.app,
432
- path: data.path,
433
- query: data.query,
434
- });
435
- // 使用相同的函数引用来移除监听器
436
- bus.$off("loaded", handleLoaded);
437
- }
438
- };
439
- </script>
440
-
441
- <template>
442
- <div class="container">
443
- <router-view></router-view>
444
- <div class="floating-menu"
445
- :style="{
446
- left: `${position.x}px`,
447
- top: `${position.y}px`
448
- }"
449
- :class="{
450
- 'menu-expanded': isMenuOpen,
451
- 'stick-to-edge': isStickToEdge,
452
- 'stick-left': stickDirection === 'left',
453
- 'stick-right': stickDirection === 'right'
454
- }"
455
- @mouseenter="handleMouseEnter">
456
- <button class="menu-button"
457
- @mousedown="startDrag"
458
- @click="handleClick">
459
- <div class="menu-icon" @mousedown.stop>
460
- <span class="icon-line"></span>
461
- <span class="icon-line"></span>
462
- <span class="icon-line"></span>
463
- </div>
464
- </button>
465
- <div class="menu-content"
466
- :class="[
467
- `menu-${menuPosition.direction}`,
468
- `menu-align-${menuPosition.align}`
469
- ]">
470
- <ul>
471
- <li v-for="(item, index) in menuItems"
472
- :key="index"
473
- :style="{ '--i': index }"
474
- @click.stop="handleMenuItemClick(item.path, item.action)">
475
- {{ item.name }}
476
- </li>
477
- </ul>
478
- </div>
479
- </div>
480
-
481
-
482
- <!-- 自定义弹窗 -->
483
- <div v-if="dialogVisible"
484
- class="custom-dialog"
485
- :style="{
486
- left: `${dialogPosition.x}px`,
487
- top: `${dialogPosition.y}px`
488
- }">
489
- <div class="dialog-header" @mousedown="startDialogDrag">
490
- <span>发送消息</span>
491
- <button class="close-btn" @click="dialogVisible = false">×</button>
492
- </div>
493
- <div class="dialog-body">
494
- <div class="form-item">
495
- <label>消息内容</label>
496
- <textarea
497
- v-model="messageText"
498
- placeholder="请输入消息内容"
499
- rows="3"
500
- ></textarea>
501
- </div>
502
- <div class="form-item">
503
- <label>消息类型</label>
504
- <select v-model="selectedType">
505
- <option
506
- v-for="type in messageTypes"
507
- :key="type.value"
508
- :value="type.value"
509
- >
510
- {{ type.label }}
511
- </option>
512
- </select>
513
- </div>
514
- <div class="form-item">
515
- <label>接收方</label>
516
- <select v-model="selectedTarget">
517
- <option value="">请选择接收方</option>
518
- <option
519
- v-for="item in targets"
520
- :key="item.value"
521
- :value="item.value"
522
- >
523
- {{ item.label }}
524
- </option>
525
- </select>
526
- </div>
527
- </div>
528
- <div class="dialog-footer">
529
- <button class="btn btn-cancel" @click="dialogVisible = false">取消</button>
530
- <button class="btn btn-primary" @click="sendGlobalMessage">全局发送</button>
531
- <button class="btn btn-success" @click="sendTargetMessage">定向发送</button>
532
- </div>
533
- </div>
534
- </div>
535
- </template>
536
-
537
- <style scoped>
538
- .container {
539
- min-height: 100vh;
540
- position: relative;
541
- }
542
-
543
- .floating-menu {
544
- position: fixed;
545
- z-index: 1000;
546
- cursor: move;
547
- user-select: none;
548
- }
549
-
550
- .menu-button {
551
- width: 36px;
552
- height: 36px;
553
- border-radius: 50%;
554
- background: linear-gradient(145deg, #4cc592, #42b883);
555
- border: none;
556
- cursor: pointer;
557
- display: flex;
558
- align-items: center;
559
- justify-content: center;
560
- box-shadow: 0 3px 8px rgba(66, 184, 131, 0.2);
561
- transition: all 0.2s ease;
562
- outline: none;
563
- padding: 0;
564
- min-width: 36px;
565
- position: relative;
566
- z-index: 2;
567
- }
568
-
569
- /* 修改吸附状态下的按钮样式 */
570
- .stick-to-edge .menu-button {
571
- width: 10px !important; /* 强制置宽度为10px */
572
- min-width: 10px !important; /* 确保最小宽度也是10px */
573
- border-radius: 3px;
574
- height: 40px;
575
- background: #42b883;
576
- transform: none; /* 移除任何可能的transform */
577
- }
578
-
579
- /* 隐藏吸附状态下的图标 */
580
- .stick-to-edge .menu-icon {
581
- opacity: 0;
582
- }
583
-
584
- .menu-icon {
585
- width: 18px;
586
- height: 18px;
587
- position: relative;
588
- display: flex;
589
- flex-direction: column;
590
- justify-content: space-between;
591
- transform: translateY(0);
592
- pointer-events: none;
593
- }
594
-
595
- .icon-line {
596
- width: 100%;
597
- height: 2px;
598
- background-color: white;
599
- border-radius: 1px;
600
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
601
- transform-origin: center;
602
- }
603
-
604
- /* 间线的特殊处理 */
605
- .icon-line:nth-child(2) {
606
- transform-origin: center;
607
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
608
- }
609
-
610
- /* 菜单展开时图标动画 */
611
- .menu-expanded .icon-line:first-child {
612
- transform: translateY(8px) rotate(45deg);
613
- }
614
-
615
- .menu-expanded .icon-line:nth-child(2) {
616
- opacity: 0;
617
- transform: scaleX(0);
618
- }
619
-
620
- .menu-expanded .icon-line:last-child {
621
- transform: translateY(-8px) rotate(-45deg);
622
- }
623
-
624
- .menu-button:hover {
625
- transform: scale(1.05);
626
- background: linear-gradient(145deg, #42b883, #3aa876);
627
- box-shadow: 0 4px 12px rgba(66, 184, 131, 0.3);
628
- }
629
-
630
- .menu-button:active {
631
- transform: scale(0.95);
632
- }
633
-
634
- .menu-content {
635
- position: absolute;
636
- background-color: white;
637
- border-radius: 12px;
638
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
639
- padding: 8px 0;
640
- min-width: 120px;
641
- opacity: 0;
642
- visibility: hidden;
643
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
644
- }
645
-
646
- /* 垂直方向定位 */
647
- .menu-top {
648
- bottom: 45px;
649
- transform-origin: bottom;
650
- transform: scale(0.95) translateY(-10px);
651
- }
652
-
653
- .menu-bottom {
654
- top: 45px;
655
- transform-origin: top;
656
- transform: scale(0.95) translateY(10px);
657
- }
658
-
659
- /* 水平方向定位 */
660
- .menu-align-left {
661
- right: 0;
662
- transform-origin: bottom right;
663
- }
664
-
665
- .menu-align-right {
666
- left: 0;
667
- transform-origin: bottom left;
668
- }
669
-
670
- .menu-align-center {
671
- left: 50%;
672
- transform: translateX(-50%) scale(0.95) translateY(-10px);
673
- transform-origin: bottom center;
674
- }
675
-
676
- /* 展开状态 */
677
- .menu-expanded .menu-content {
678
- opacity: 1;
679
- visibility: visible;
680
- transform: scale(1) translateY(0);
681
- }
682
-
683
- .menu-expanded .menu-align-center {
684
- transform: translateX(-50%) scale(1) translateY(0);
685
- }
686
-
687
- .menu-content ul {
688
- list-style: none;
689
- margin: 0;
690
- padding: 0;
691
- }
692
-
693
- .menu-content li {
694
- padding: 8px 16px;
695
- cursor: pointer;
696
- transition: all 0.2s;
697
- color: #333;
698
- font-size: 14px;
699
- opacity: 0;
700
- transform: translateX(-10px);
701
- }
702
-
703
- /* 菜单项动画 */
704
- .menu-expanded .menu-content li {
705
- opacity: 1;
706
- transform: translateX(0);
707
- transition-delay: calc(0.05s * var(--i));
708
- }
709
-
710
- .menu-content li:hover {
711
- background-color: rgba(66, 184, 131, 0.1);
712
- color: #42b883;
713
- padding-left: 20px;
714
- }
715
-
716
- /* 修改吸附样式 */
717
- .stick-to-edge {
718
- transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
719
- }
720
-
721
- .stick-to-edge.stick-left {
722
- transform: translateX(-3px);
723
- }
724
-
725
- .stick-to-edge.stick-right {
726
- transform: translateX(26px);
727
- }
728
-
729
- /* 确保悬停时恢复原样 */
730
- .stick-to-edge:hover .menu-button {
731
- width: 36px !important;
732
- min-width: 36px !important;
733
- height: 36px;
734
- border-radius: 50%;
735
- background: linear-gradient(145deg, #4cc592, #42b883);
736
- }
737
-
738
- .stick-to-edge:hover .menu-icon {
739
- opacity: 1;
740
- }
741
-
742
- .stick-to-edge:hover {
743
- transform: translateX(0);
744
- transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
745
- }
746
-
747
- /* 添加自定义弹窗样式 */
748
- .custom-dialog {
749
- position: fixed;
750
- background: white;
751
- border-radius: 8px;
752
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
753
- width: 400px;
754
- z-index: 2000;
755
- }
756
-
757
- .dialog-header {
758
- padding: 16px 20px;
759
- border-bottom: 1px solid #eee;
760
- display: flex;
761
- justify-content: space-between;
762
- align-items: center;
763
- cursor: move;
764
- background: #f8f9fa;
765
- border-radius: 8px 8px 0 0;
766
- }
767
-
768
- .dialog-header span {
769
- font-size: 16px;
770
- font-weight: 500;
771
- color: #333;
772
- }
773
-
774
- .close-btn {
775
- border: none;
776
- background: none;
777
- font-size: 20px;
778
- color: #999;
779
- cursor: pointer;
780
- padding: 0;
781
- width: 24px;
782
- height: 24px;
783
- display: flex;
784
- align-items: center;
785
- justify-content: center;
786
- border-radius: 4px;
787
- transition: all 0.2s;
788
- }
789
-
790
- .close-btn:hover {
791
- background: #eee;
792
- color: #666;
793
- }
794
-
795
- .dialog-body {
796
- padding: 20px;
797
- }
798
-
799
- .form-item {
800
- margin-bottom: 16px;
801
- }
802
-
803
- .form-item label {
804
- display: block;
805
- margin-bottom: 8px;
806
- color: #333;
807
- font-size: 14px;
808
- }
809
-
810
- .form-item textarea,
811
- .form-item select {
812
- width: 100%;
813
- padding: 8px 12px;
814
- border: 1px solid #dcdfe6;
815
- border-radius: 4px;
816
- font-size: 14px;
817
- transition: border-color 0.2s;
818
- outline: none;
819
- box-sizing: border-box;
820
- }
821
-
822
- .form-item textarea:focus,
823
- .form-item select:focus {
824
- border-color: #409eff;
825
- }
826
-
827
- .dialog-footer {
828
- padding: 10px 20px 20px;
829
- text-align: right;
830
- }
831
-
832
- .btn {
833
- padding: 8px 16px;
834
- border-radius: 4px;
835
- border: none;
836
- font-size: 14px;
837
- cursor: pointer;
838
- margin-left: 8px;
839
- transition: all 0.2s;
840
- }
841
-
842
- .btn-cancel {
843
- background: #f4f4f5;
844
- color: #606266;
845
- }
846
-
847
- .btn-cancel:hover {
848
- background: #e9e9eb;
849
- }
850
-
851
- .btn-primary {
852
- background: #409eff;
853
- color: white;
854
- }
855
-
856
- .btn-primary:hover {
857
- background: #66b1ff;
858
- }
859
-
860
- .btn-success {
861
- background: #67c23a;
862
- color: white;
863
- }
864
-
865
- .btn-success:hover {
866
- background: #85ce61;
867
- }
868
- </style>
869
-
870
- <script>
871
- // 添加响应式数据
872
- export default {
873
- data() {
874
- return {
875
- isMenuOpen: false
876
- }
877
- }
878
- }
879
- </script>