npmapps 1.0.24 → 1.0.26

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 (210) hide show
  1. package/app/.codegraph/daemon.pid +6 -0
  2. package/app/.eslintrc.js +19 -0
  3. package/app/README.md +24 -0
  4. package/app/babel.config.js +5 -0
  5. package/app/devtool-windows-amd64.zip +0 -0
  6. package/app/docs/superpowers/plans/2026-05-29-quill-editor.md +836 -0
  7. package/app/docs/superpowers/specs/2026-05-29-quill-editor-design.md +210 -0
  8. package/app/docs/superpowers/specs/2026-06-06-lazy-cascader-design.md +400 -0
  9. package/app/jsconfig.json +19 -0
  10. package/app/package-lock.json +21347 -0
  11. package/app/package.json +63 -0
  12. package/app/postcss.config.js +10 -0
  13. package/app/public/favicon.ico +0 -0
  14. package/app/public/index.html +17 -0
  15. package/app/public//344/270/200/351/224/256/351/273/221/346/232/227.html +136 -0
  16. package/app/src/App.vue +110 -0
  17. package/app/src/assets/bpmn-camunda.jpg +0 -0
  18. package/app/src/assets/css/diagram.less +17 -0
  19. package/app/src/assets/icon/Icon.less +31 -0
  20. package/app/src/assets/icon/font/app-codes.css +26 -0
  21. package/app/src/assets/icon/font/app.eot +0 -0
  22. package/app/src/assets/icon/font/app.svg +60 -0
  23. package/app/src/assets/icon/font/app.ttf +0 -0
  24. package/app/src/assets/icon/font/app.woff +0 -0
  25. package/app/src/assets/icon/font/app.woff2 +0 -0
  26. package/app/src/assets/icon/font/config.json +248 -0
  27. package/app/src/assets/icon/font/source/raw/align-bottom-tool.svg +30 -0
  28. package/app/src/assets/icon/font/source/raw/align-horizontal-center-tool.svg +85 -0
  29. package/app/src/assets/icon/font/source/raw/align-left-tool.svg +84 -0
  30. package/app/src/assets/icon/font/source/raw/align-right-tool.svg +80 -0
  31. package/app/src/assets/icon/font/source/raw/align-top-tool.svg +84 -0
  32. package/app/src/assets/icon/font/source/raw/align-vertical-center-tool.svg +89 -0
  33. package/app/src/assets/icon/font/source/raw/distribute-horizontally-tool.svg +95 -0
  34. package/app/src/assets/icon/font/source/raw/distribute-vertically-tool.svg +99 -0
  35. package/app/src/assets/icon/font/source/raw/set-color-tool.svg +111 -0
  36. package/app/src/assets/icon/font/source/symbols/align-bottom-tool.svg +30 -0
  37. package/app/src/assets/icon/font/source/symbols/align-horizontal-center-tool.svg +30 -0
  38. package/app/src/assets/icon/font/source/symbols/align-left-tool.svg +30 -0
  39. package/app/src/assets/icon/font/source/symbols/align-right-tool.svg +30 -0
  40. package/app/src/assets/icon/font/source/symbols/align-top-tool.svg +30 -0
  41. package/app/src/assets/icon/font/source/symbols/align-vertical-center-tool.svg +30 -0
  42. package/app/src/assets/icon/font/source/symbols/distribute-horizontally-tool.svg +30 -0
  43. package/app/src/assets/icon/font/source/symbols/distribute-vertically-tool.svg +30 -0
  44. package/app/src/assets/icon/font/source/symbols/set-color-tool.svg +63 -0
  45. package/app/src/assets/logo.png +0 -0
  46. package/app/src/components/EllTable/README.md +70 -0
  47. package/app/src/components/EllTable/article.md +184 -0
  48. package/app/src/components/EllTable/index.js +213 -0
  49. package/app/src/components/FormulaEditor/FunctionSelector.vue +123 -0
  50. package/app/src/components/FormulaEditor/OperatorSelector.vue +184 -0
  51. package/app/src/components/FormulaEditor/ParameterSelector.vue +123 -0
  52. package/app/src/components/FormulaEditor/api.js +69 -0
  53. package/app/src/components/FormulaEditor/index.vue +435 -0
  54. package/app/src/components/HelloWorld.vue +58 -0
  55. package/app/src/components/PageHeader/index.vue +158 -0
  56. package/app/src/components/Splitter/README.md +144 -0
  57. package/app/src/components/Splitter/example.vue +88 -0
  58. package/app/src/components/Splitter/index.vue +203 -0
  59. package/app/src/components/diagram/ToolBar.vue +357 -0
  60. package/app/src/components/diagram/customTranslate/customTranslate.js +12 -0
  61. package/app/src/components/diagram/customTranslate/translationsGerman.js +241 -0
  62. package/app/src/components/diagram/index.vue +261 -0
  63. package/app/src/components/diagram/xmlData.js +29 -0
  64. package/app/src/directives/filldown.js +155 -0
  65. package/app/src/directives/filldownTable.js +291 -0
  66. package/app/src/main.js +40 -0
  67. package/app/src/router/index.js +63 -0
  68. package/app/src/store/index.js +23 -0
  69. package/app/src/utils/winBox.js +23 -0
  70. package/app/src/views/Extend/A.vue +12 -0
  71. package/app/src/views/Extend/B.vue +10 -0
  72. package/app/src/views/Extend/MagicalComponentsForELFormItem.vue +87 -0
  73. package/app/src/views/Extend/index.vue +59 -0
  74. package/app/src/views/Extend/tableMouseHorizontalWheel.vue +193 -0
  75. package/app/src/views/Home.vue +37 -0
  76. package/app/src/views/RouterJump.vue +155 -0
  77. package/app/src/views/css.vue +57 -0
  78. package/app/src/views/cssComponents/EllipsisText.vue +83 -0
  79. package/app/src/views/cssComponents/HoverCard.vue +79 -0
  80. package/app/src/views/cssComponents/TableHover.vue +140 -0
  81. package/app/src/views/cssComponents/inputSlo.vue +52 -0
  82. package/app/src/views/cssComponents/tableFixed.vue +158 -0
  83. package/app/src/views/echarts/echart-dome.vue +82 -0
  84. package/app/src/views/echarts/index.vue +118 -0
  85. package/app/src/views/echarts/pei3d.vue +667 -0
  86. package/app/src/views/element/bpmn/index.vue +18 -0
  87. package/app/src/views/element/components/attendanceCycle/index.vue +131 -0
  88. package/app/src/views/element/components/attendanceGroup/index.vue +147 -0
  89. package/app/src/views/element/components/attendancePersonnel/index.vue +158 -0
  90. package/app/src/views/element/components/companyCalendar/index.vue +147 -0
  91. package/app/src/views/element/components/shift/index.vue +147 -0
  92. package/app/src/views/element/components/shiftRotationSystem/index.vue +147 -0
  93. package/app/src/views/element/elTableJsx/columnManagement.vue +340 -0
  94. package/app/src/views/element/elTableJsx/dialogInput.vue +71 -0
  95. package/app/src/views/element/elTableJsx/elTableJsx.vue +1826 -0
  96. package/app/src/views/element/elTableJsx/formTable.vue +598 -0
  97. package/app/src/views/element/elTableJsx/index.vue +29 -0
  98. package/app/src/views/element/elTableJsx/simpleTable.vue +192 -0
  99. package/app/src/views/element/elTableJsx.zip +0 -0
  100. package/app/src/views/element/index.vue +44 -0
  101. package/app/src/views/element/lazyCascader/LazyCascader.vue +302 -0
  102. package/app/src/views/element/lazyCascader/data.js +205 -0
  103. package/app/src/views/element/lazyCascader/index.vue +315 -0
  104. package/app/src/views/element/quillEditor/README.md +163 -0
  105. package/app/src/views/element/quillEditor/example.vue +314 -0
  106. package/app/src/views/element/quillEditor/index.vue +409 -0
  107. package/app/src/views/element/quillEditor/toolbar.js +122 -0
  108. package/app/vue.config.js +15 -0
  109. package/package.json +1 -1
  110. package/app/wujie-vue3-child/.claude/settings.local.json +0 -8
  111. package/app/wujie-vue3-child/.vscode/extensions.json +0 -3
  112. package/app/wujie-vue3-child/PROJECT_MEMORY.md +0 -427
  113. package/app/wujie-vue3-child/README.md +0 -5
  114. package/app/wujie-vue3-child/index.html +0 -13
  115. package/app/wujie-vue3-child/package-lock.json +0 -5744
  116. package/app/wujie-vue3-child/package.json +0 -28
  117. package/app/wujie-vue3-child/public/vite.svg +0 -1
  118. package/app/wujie-vue3-child/src/App.vue +0 -130
  119. package/app/wujie-vue3-child/src/assets/vue.svg +0 -1
  120. package/app/wujie-vue3-child/src/components/HelloWorld.vue +0 -43
  121. package/app/wujie-vue3-child/src/components/tags-view.vue +0 -193
  122. package/app/wujie-vue3-child/src/components/tags-view1.vue +0 -131
  123. package/app/wujie-vue3-child/src/directives/aiLoading.js +0 -182
  124. package/app/wujie-vue3-child/src/hooks/useClickOutside.js +0 -11
  125. package/app/wujie-vue3-child/src/hooks/useTableDragSort.js +0 -28
  126. package/app/wujie-vue3-child/src/main.js +0 -18
  127. package/app/wujie-vue3-child/src/router/index.js +0 -104
  128. package/app/wujie-vue3-child/src/store/tagsViewStroe.js +0 -34
  129. package/app/wujie-vue3-child/src/style.css +0 -171
  130. package/app/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.jsx +0 -108
  131. package/app/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.module.scss +0 -97
  132. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/README.md +0 -836
  133. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/REFLEX_EXAMPLES.md +0 -728
  134. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.jsx +0 -687
  135. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.module.scss +0 -560
  136. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.jsx +0 -570
  137. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.module.scss +0 -330
  138. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.jsx +0 -378
  139. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.module.scss +0 -228
  140. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.jsx +0 -399
  141. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.module.scss +0 -252
  142. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.jsx +0 -585
  143. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.module.scss +0 -331
  144. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.jsx +0 -392
  145. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.module.scss +0 -39
  146. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/README.md +0 -248
  147. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/SelectorTrigger.jsx +0 -194
  148. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/index.jsx +0 -1459
  149. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/mockData.js +0 -301
  150. package/app/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.jsx +0 -182
  151. package/app/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.module.scss +0 -28
  152. package/app/wujie-vue3-child/src/views/aiCoach/index.jsx +0 -293
  153. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.jsx +0 -121
  154. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.module.scss +0 -76
  155. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/DonutChart/index.jsx +0 -104
  156. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.jsx +0 -75
  157. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.module.scss +0 -12
  158. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.jsx +0 -62
  159. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.module.scss +0 -43
  160. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.jsx +0 -29
  161. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.module.scss +0 -5
  162. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.jsx +0 -58
  163. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.module.scss +0 -85
  164. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.jsx +0 -92
  165. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.module.scss +0 -56
  166. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.jsx +0 -40
  167. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.module.scss +0 -53
  168. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsDonut.jsx +0 -106
  169. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsRankBar.jsx +0 -132
  170. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.jsx +0 -176
  171. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.module.scss +0 -96
  172. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.jsx +0 -162
  173. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.module.scss +0 -16
  174. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.jsx +0 -29
  175. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.module.scss +0 -25
  176. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.jsx +0 -106
  177. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.module.scss +0 -164
  178. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.jsx +0 -182
  179. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.module.scss +0 -203
  180. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.jsx +0 -145
  181. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.module.scss +0 -126
  182. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.jsx +0 -67
  183. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.module.scss +0 -105
  184. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.jsx +0 -81
  185. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.module.scss +0 -47
  186. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.jsx +0 -64
  187. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.module.scss +0 -85
  188. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.jsx +0 -39
  189. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.module.scss +0 -44
  190. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.jsx +0 -83
  191. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.module.scss +0 -101
  192. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/index.jsx +0 -50
  193. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/index.module.scss +0 -25
  194. package/app/wujie-vue3-child/src/views/aiCoach/scriptTable/index.jsx +0 -196
  195. package/app/wujie-vue3-child/src/views/aiCoach/scriptTable/index.module.scss +0 -41
  196. package/app/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.jsx +0 -183
  197. package/app/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.module.scss +0 -115
  198. package/app/wujie-vue3-child/src/views/child-to-parent.vue +0 -117
  199. package/app/wujie-vue3-child/src/views/home.vue +0 -53
  200. package/app/wujie-vue3-child/src/views/jsx/btnSelect/btnSelect.vue +0 -169
  201. package/app/wujie-vue3-child/src/views/jsx/btnSelect/index.vue +0 -69
  202. package/app/wujie-vue3-child/src/views/jsx/com.vue +0 -44
  203. package/app/wujie-vue3-child/src/views/jsx/dialog.jsx +0 -66
  204. package/app/wujie-vue3-child/src/views/jsx/index.vue +0 -72
  205. package/app/wujie-vue3-child/src/views/jsx/props.vue +0 -33
  206. package/app/wujie-vue3-child/src/views/parent-to-child.vue +0 -225
  207. package/app/wujie-vue3-child/src/views/phone-code.vue +0 -318
  208. package/app/wujie-vue3-child/src/views/router-jump.vue +0 -123
  209. package/app/wujie-vue3-child/src/views/test.vue +0 -192
  210. package/app/wujie-vue3-child/vite.config.js +0 -15
@@ -1,318 +0,0 @@
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>
@@ -1,123 +0,0 @@
1
- <template>
2
- <div class="flex-container">
3
- <div class="container">
4
- <h1>子应用路由跳转</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="main" value="main"></el-option>
10
- <el-option label="vue3-child-copy" value="vue3-child-copy"></el-option>
11
- <el-option label="vue2-child" value="vue2-child"></el-option>
12
- </el-select>
13
- <el-button type="primary" @click="jumpToMain">跳转到主应用</el-button>
14
- </div>
15
- <div class="route-params">
16
- <h1>接收到的路由参数:</h1>
17
- <p>路径: {{ $route.path }}</p>
18
- <p v-for="(item,key) in $route.query" :key="item">{{ key }}:{{ item }}</p>
19
- </div>
20
- </div>
21
- </template>
22
-
23
- <script setup>
24
- import { ref } from 'vue'
25
- import { ElInput, ElButton, ElSelect, ElOption } from 'element-plus'
26
- const url = ref('/router-jump')
27
- const name = ref('name')
28
- const age = ref('age')
29
- const selectedApp = ref('main')
30
- const jumpToMain = () => {
31
- window.$wujie?.bus.$emit('router-jump-to-main', {
32
- app: selectedApp.value,
33
- path: url.value,
34
- query: {
35
- name: name.value,
36
- age: age.value
37
- }
38
- })
39
- }
40
-
41
-
42
-
43
- </script>
44
-
45
- <style scoped>
46
- .container {
47
- display: flex;
48
- flex-direction: column;
49
- align-items: center;
50
- gap: 20px;
51
- padding: 20px;
52
- background-color: #f8f8f8;
53
- border-radius: 10px;
54
- box-shadow: 0 4px 8px rgba(0,0,0,0.15);
55
- width: 45%;
56
- margin: 0;
57
- transition: box-shadow 0.3s ease-in-out;
58
- }
59
-
60
- h1 {
61
- color: #333;
62
- margin-bottom: 20px;
63
- font-family: 'Helvetica Neue', Arial, sans-serif;
64
- }
65
-
66
- el-input, el-select {
67
- width: 100%;
68
- border: 1px solid #ccc;
69
- border-radius: 5px;
70
- padding: 10px;
71
- transition: border-color 0.3s ease-in-out;
72
- }
73
-
74
- el-input:focus, el-select:focus {
75
- border-color: #007BFF;
76
- }
77
-
78
- el-button {
79
- width: 100%;
80
- height: 40px;
81
- background-color: #007BFF;
82
- color: white;
83
- border: none;
84
- border-radius: 5px;
85
- transition: background-color 0.3s ease-in-out;
86
- }
87
-
88
- el-button:hover {
89
- background-color: #0056b3;
90
- }
91
-
92
- .route-params {
93
- padding: 20px;
94
- background-color: #eef2f7;
95
- border-radius: 8px;
96
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
97
- width: 45%;
98
- margin: 0;
99
- }
100
-
101
- .route-params h1 {
102
- color: #007BFF;
103
- font-size: 24px;
104
- }
105
-
106
- .route-params p {
107
- font-size: 16px;
108
- color: #333;
109
- margin-bottom: 10px;
110
- background-color: #fff;
111
- padding: 10px;
112
- border-radius: 5px;
113
- border: 1px solid #ccc;
114
- }
115
-
116
- .flex-container {
117
- display: flex;
118
- justify-content: space-around;
119
- align-items: flex-start;
120
- padding: 20px;
121
- gap: 20px;
122
- }
123
- </style>
@@ -1,192 +0,0 @@
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>
@@ -1,15 +0,0 @@
1
- import { defineConfig } from 'vite'
2
- import vue from '@vitejs/plugin-vue'
3
- import vueJsx from '@vitejs/plugin-vue-jsx'
4
-
5
- // https://vite.dev/config/
6
- export default defineConfig({
7
- plugins: [vue(), vueJsx()],
8
- esbuild: {
9
- jsxFactory: 'h',
10
- jsxFragment: 'Fragment'
11
- },
12
- server: {
13
- port: 3001
14
- }
15
- })