npmapps 1.1.6 → 1.2.0

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 (178) hide show
  1. package/package.json +1 -1
  2. package/app/wujie-wk/dev.log +0 -1979
  3. package/app/wujie-wk/wujie-react-child/README.md +0 -126
  4. package/app/wujie-wk/wujie-react-child/eslint.config.js +0 -28
  5. package/app/wujie-wk/wujie-react-child/index.html +0 -13
  6. package/app/wujie-wk/wujie-react-child/package-lock.json +0 -4344
  7. package/app/wujie-wk/wujie-react-child/package.json +0 -32
  8. package/app/wujie-wk/wujie-react-child/public/vite.svg +0 -1
  9. package/app/wujie-wk/wujie-react-child/src/App.css +0 -0
  10. package/app/wujie-wk/wujie-react-child/src/App.tsx +0 -72
  11. package/app/wujie-wk/wujie-react-child/src/assets/react.svg +0 -1
  12. package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.css +0 -63
  13. package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.tsx +0 -112
  14. package/app/wujie-wk/wujie-react-child/src/components/LightCard/index.tsx +0 -36
  15. package/app/wujie-wk/wujie-react-child/src/components/LightCard/style.css +0 -20
  16. package/app/wujie-wk/wujie-react-child/src/hooks/use3DCard.ts +0 -53
  17. package/app/wujie-wk/wujie-react-child/src/hooks/useLightCard.ts +0 -141
  18. package/app/wujie-wk/wujie-react-child/src/index.css +0 -0
  19. package/app/wujie-wk/wujie-react-child/src/main.tsx +0 -8
  20. package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.css +0 -55
  21. package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.tsx +0 -88
  22. package/app/wujie-wk/wujie-react-child/src/pages/Css.tsx +0 -28
  23. package/app/wujie-wk/wujie-react-child/src/pages/Home.tsx +0 -72
  24. package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.css +0 -85
  25. package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.tsx +0 -119
  26. package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.css +0 -61
  27. package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.tsx +0 -87
  28. package/app/wujie-wk/wujie-react-child/src/router/index.tsx +0 -63
  29. package/app/wujie-wk/wujie-react-child/src/types/wujie.d.ts +0 -26
  30. package/app/wujie-wk/wujie-react-child/src/vite-env.d.ts +0 -1
  31. package/app/wujie-wk/wujie-react-child/tsconfig.app.json +0 -26
  32. package/app/wujie-wk/wujie-react-child/tsconfig.json +0 -7
  33. package/app/wujie-wk/wujie-react-child/tsconfig.node.json +0 -24
  34. package/app/wujie-wk/wujie-react-child/vite.config.ts +0 -10
  35. package/app/wujie-wk/wujie-vue3-child/.claude/settings.local.json +0 -8
  36. package/app/wujie-wk/wujie-vue3-child/.vscode/extensions.json +0 -3
  37. package/app/wujie-wk/wujie-vue3-child/PROJECT_MEMORY.md +0 -427
  38. package/app/wujie-wk/wujie-vue3-child/README.md +0 -5
  39. package/app/wujie-wk/wujie-vue3-child/index.html +0 -13
  40. package/app/wujie-wk/wujie-vue3-child/package-lock.json +0 -5744
  41. package/app/wujie-wk/wujie-vue3-child/package.json +0 -28
  42. package/app/wujie-wk/wujie-vue3-child/public/vite.svg +0 -1
  43. package/app/wujie-wk/wujie-vue3-child/src/App.vue +0 -130
  44. package/app/wujie-wk/wujie-vue3-child/src/assets/vue.svg +0 -1
  45. package/app/wujie-wk/wujie-vue3-child/src/components/HelloWorld.vue +0 -43
  46. package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/index.jsx +0 -224
  47. package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/style.css +0 -154
  48. package/app/wujie-wk/wujie-vue3-child/src/components/tags-view.vue +0 -193
  49. package/app/wujie-wk/wujie-vue3-child/src/components/tags-view1.vue +0 -131
  50. package/app/wujie-wk/wujie-vue3-child/src/directives/aiLoading.js +0 -182
  51. package/app/wujie-wk/wujie-vue3-child/src/hooks/useClickOutside.js +0 -11
  52. package/app/wujie-wk/wujie-vue3-child/src/hooks/useTableDragSort.js +0 -28
  53. package/app/wujie-wk/wujie-vue3-child/src/main.js +0 -18
  54. package/app/wujie-wk/wujie-vue3-child/src/router/index.js +0 -104
  55. package/app/wujie-wk/wujie-vue3-child/src/store/tagsViewStroe.js +0 -34
  56. package/app/wujie-wk/wujie-vue3-child/src/style.css +0 -171
  57. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.jsx +0 -108
  58. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.module.scss +0 -97
  59. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/README.md +0 -836
  60. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/REFLEX_EXAMPLES.md +0 -728
  61. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.jsx +0 -687
  62. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.module.scss +0 -560
  63. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.jsx +0 -570
  64. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.module.scss +0 -330
  65. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.jsx +0 -378
  66. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.module.scss +0 -228
  67. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.jsx +0 -399
  68. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.module.scss +0 -252
  69. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.jsx +0 -585
  70. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.module.scss +0 -331
  71. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.jsx +0 -392
  72. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.module.scss +0 -39
  73. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/README.md +0 -248
  74. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/SelectorTrigger.jsx +0 -194
  75. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/index.jsx +0 -1459
  76. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/mockData.js +0 -301
  77. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.jsx +0 -182
  78. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.module.scss +0 -28
  79. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/index.jsx +0 -375
  80. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.jsx +0 -121
  81. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.module.scss +0 -76
  82. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/DonutChart/index.jsx +0 -104
  83. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.jsx +0 -75
  84. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.module.scss +0 -12
  85. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.jsx +0 -62
  86. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.module.scss +0 -43
  87. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.jsx +0 -29
  88. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.module.scss +0 -5
  89. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.jsx +0 -58
  90. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.module.scss +0 -85
  91. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.jsx +0 -92
  92. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.module.scss +0 -56
  93. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.jsx +0 -40
  94. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.module.scss +0 -53
  95. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsDonut.jsx +0 -106
  96. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsRankBar.jsx +0 -132
  97. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.jsx +0 -176
  98. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.module.scss +0 -96
  99. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.jsx +0 -162
  100. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.module.scss +0 -16
  101. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.jsx +0 -29
  102. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.module.scss +0 -25
  103. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.jsx +0 -106
  104. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.module.scss +0 -164
  105. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.jsx +0 -182
  106. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.module.scss +0 -203
  107. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.jsx +0 -145
  108. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.module.scss +0 -126
  109. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.jsx +0 -67
  110. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.module.scss +0 -105
  111. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.jsx +0 -81
  112. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.module.scss +0 -47
  113. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.jsx +0 -64
  114. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.module.scss +0 -85
  115. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.jsx +0 -39
  116. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.module.scss +0 -44
  117. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.jsx +0 -83
  118. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.module.scss +0 -101
  119. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.jsx +0 -50
  120. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.module.scss +0 -25
  121. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.jsx +0 -196
  122. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.module.scss +0 -41
  123. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.jsx +0 -183
  124. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.module.scss +0 -115
  125. package/app/wujie-wk/wujie-vue3-child/src/views/child-to-parent.vue +0 -117
  126. package/app/wujie-wk/wujie-vue3-child/src/views/home.vue +0 -53
  127. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/btnSelect.vue +0 -169
  128. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/index.vue +0 -69
  129. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/com.vue +0 -44
  130. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/dialog.jsx +0 -66
  131. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/index.vue +0 -72
  132. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/props.vue +0 -33
  133. package/app/wujie-wk/wujie-vue3-child/src/views/parent-to-child.vue +0 -225
  134. package/app/wujie-wk/wujie-vue3-child/src/views/phone-code.vue +0 -318
  135. package/app/wujie-wk/wujie-vue3-child/src/views/router-jump.vue +0 -123
  136. package/app/wujie-wk/wujie-vue3-child/src/views/test.vue +0 -192
  137. package/app/wujie-wk/wujie-vue3-child/vite.config.js +0 -15
  138. package/app/wujie-wk/wujie-vue3-child copy/.vscode/extensions.json +0 -3
  139. package/app/wujie-wk/wujie-vue3-child copy/README.md +0 -5
  140. package/app/wujie-wk/wujie-vue3-child copy/index.html +0 -13
  141. package/app/wujie-wk/wujie-vue3-child copy/package-lock.json +0 -4617
  142. package/app/wujie-wk/wujie-vue3-child copy/package.json +0 -22
  143. package/app/wujie-wk/wujie-vue3-child copy/public/vite.svg +0 -1
  144. package/app/wujie-wk/wujie-vue3-child copy/src/App.vue +0 -124
  145. package/app/wujie-wk/wujie-vue3-child copy/src/assets/vue.svg +0 -1
  146. package/app/wujie-wk/wujie-vue3-child copy/src/components/HelloWorld.vue +0 -43
  147. package/app/wujie-wk/wujie-vue3-child copy/src/main.js +0 -12
  148. package/app/wujie-wk/wujie-vue3-child copy/src/router/index.js +0 -84
  149. package/app/wujie-wk/wujie-vue3-child copy/src/style.css +0 -4
  150. package/app/wujie-wk/wujie-vue3-child copy/src/views/child-to-parent.vue +0 -117
  151. package/app/wujie-wk/wujie-vue3-child copy/src/views/home.vue +0 -53
  152. package/app/wujie-wk/wujie-vue3-child copy/src/views/parent-to-child.vue +0 -225
  153. package/app/wujie-wk/wujie-vue3-child copy/src/views/phone-code.vue +0 -318
  154. package/app/wujie-wk/wujie-vue3-child copy/src/views/router-jump.vue +0 -115
  155. package/app/wujie-wk/wujie-vue3-child copy/src/views/test.vue +0 -192
  156. package/app/wujie-wk/wujie-vue3-child copy/vite.config.js +0 -10
  157. package/app/wujie-wk/wujie-vue3-main/.vscode/extensions.json +0 -3
  158. package/app/wujie-wk/wujie-vue3-main/README.md +0 -154
  159. package/app/wujie-wk/wujie-vue3-main/index.html +0 -13
  160. package/app/wujie-wk/wujie-vue3-main/package-lock.json +0 -4736
  161. package/app/wujie-wk/wujie-vue3-main/package.json +0 -25
  162. package/app/wujie-wk/wujie-vue3-main/public/vite.svg +0 -1
  163. package/app/wujie-wk/wujie-vue3-main/src/App.vue +0 -879
  164. package/app/wujie-wk/wujie-vue3-main/src/assets/vue.svg +0 -1
  165. package/app/wujie-wk/wujie-vue3-main/src/components/HelloWorld.vue +0 -43
  166. package/app/wujie-wk/wujie-vue3-main/src/components/WujieReact/index.vue +0 -20
  167. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue2/index.vue +0 -8
  168. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3/index.vue +0 -8
  169. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3Copy/index.vue +0 -8
  170. package/app/wujie-wk/wujie-vue3-main/src/main.js +0 -23
  171. package/app/wujie-wk/wujie-vue3-main/src/router/index.js +0 -88
  172. package/app/wujie-wk/wujie-vue3-main/src/store/useMicroAppStore.js +0 -66
  173. package/app/wujie-wk/wujie-vue3-main/src/style.css +0 -3
  174. package/app/wujie-wk/wujie-vue3-main/src/views/home.vue +0 -103
  175. package/app/wujie-wk/wujie-vue3-main/src/views/router-jump.vue +0 -159
  176. package/app/wujie-wk/wujie-vue3-main/src/views/test.vue +0 -125
  177. package/app/wujie-wk/wujie-vue3-main/src/views/vue3-child-msg.vue +0 -108
  178. package/app/wujie-wk/wujie-vue3-main/vite.config.js +0 -12
@@ -1,196 +0,0 @@
1
- import { defineComponent, ref, computed, watch, onUnmounted, nextTick } from 'vue'
2
- import styles from './index.module.scss'
3
- import { Expand, DeleteFilled } from '@element-plus/icons-vue'
4
- import InputColumn from './inputColumn/index.jsx'
5
- import Sortable from 'sortablejs'
6
- export default defineComponent({
7
- // 脚本表格组件
8
- name: 'ScriptTable',
9
- props: {
10
- scripts: {
11
- type: Object,
12
- default: () => { },
13
- },
14
- },
15
- setup(props, { emit, attrs, slots }) {
16
- console.log(props.scripts);
17
- const labelEmu = {
18
- qaScripts: '问答脚本',
19
- proactiveScript: '主动脚本',
20
- }
21
- const type = ref('all')
22
- const activeName = ref('qaScripts')
23
-
24
- const tabs = computed(() => {
25
- const lsit = []
26
- for (const key in props.scripts) {
27
- lsit.push({
28
- label: labelEmu[key],
29
- value: props.scripts[key],
30
- key: key,
31
- })
32
- }
33
- return lsit
34
- })
35
-
36
- watch(() => props.scripts, (newVal, oldVal) => {
37
- console.log(newVal, oldVal, 'scripts变化');
38
-
39
- }, {
40
- deep: true,
41
- })
42
-
43
- const tableRef = ref(null)
44
- let sortable = null
45
- watch(() => tableRef.value, async (newVal, oldVal) => {
46
- if (newVal) {
47
- await nextTick()
48
- const tbody = tableRef.value?.$el.querySelector('.el-table__body-wrapper tbody')
49
- if (!tbody) return
50
- sortable?.destroy()
51
- sortable = Sortable.create(tbody, {
52
- animation: 150,
53
- handle: '.drag-cell', // 只有手柄能拖
54
- onEnd: evt => {
55
- const { oldIndex, newIndex } = evt
56
- if (oldIndex === undefined || newIndex === undefined) return
57
- const [removed] = props.scripts[activeName.value].splice(oldIndex, 1)
58
- props.scripts[activeName.value].splice(newIndex, 0, removed)
59
- },
60
- })
61
- }
62
- })
63
- onUnmounted(() => sortable?.destroy())
64
- return () => (
65
- <div class={styles.scriptTable}>
66
- {/* <el-button type="primary" size="small" onClick={() => {
67
- console.log(props.scripts[activeName.value]);
68
- }}>测试 </el-button> */}
69
- <div class={[styles.header]}>
70
- <div class={[styles.tabs]}>
71
- {
72
- tabs.value.map((item) => (
73
- <div
74
- class={[styles.tab, { [styles.active]: item.key === activeName.value }]}
75
- key={item.key}
76
- onClick={() => activeName.value = item.key}
77
- >
78
- {item.label} {item.value.length}
79
- </div>
80
- ))
81
- }
82
- </div>
83
- <div class={[styles.right]}>
84
- <span>学员需练习</span>
85
- <el-select size="small" v-model={type.value} style={{ width: '60px', marginLeft: '10px', marginRight: '10px' }}>
86
- {
87
- {
88
- default: () => (
89
- <>
90
- <el-option label="全部" value="all" />
91
- <el-option label="部分" value="partial" />
92
- </>
93
- ),
94
- }
95
- }
96
- </el-select>
97
- <span>话术</span>
98
- </div>
99
- </div>
100
- <div>
101
- <el-table
102
- ref={tableRef}
103
- data={props.scripts[activeName.value]}
104
- style={{ width: '100%' }}
105
- border
106
- size="small"
107
- row-key="id"
108
- headerCellStyle={{
109
- background: '#F8F8F8',
110
- color: '#303133',
111
- fontWeight: 'bold',
112
- }}
113
- >
114
- {{
115
- default: (scope) => (
116
- <>
117
- {
118
- attrs.isDraggable &&
119
-
120
- <el-table-column prop="order" label="排序" width="50px">
121
- {{
122
- default: (scope) => (
123
- <div class="drag-cell" style={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
124
- <el-icon style={{ cursor: 'grab' }} class={'drag-icon'} size={20}><Expand /></el-icon>
125
- </div>
126
- )
127
- }}
128
- </el-table-column>
129
- }
130
- <el-table-column prop="problemDesc" label="问题描述">
131
- {{
132
- default: (scope) => (
133
- <InputColumn scope={scope} tableColumn={{
134
- prop: 'problemDesc',
135
- label: '问题描述',
136
- }} />
137
- )
138
- }}
139
- </el-table-column>
140
- <el-table-column prop="standardScript" label="标准话术">
141
- {{
142
- default: (scope) => (
143
- <InputColumn scope={scope} tableColumn={{
144
- prop: 'standardScript',
145
- label: '标准话术',
146
- }} />
147
- )
148
- }}
149
- </el-table-column>
150
- <el-table-column prop="keyword" label="关键词">
151
- {{
152
- default: (scope) => (
153
- <InputColumn scope={scope} tableColumn={{
154
- prop: 'keyword',
155
- label: '关键词',
156
- placeholder: '请输入请输入请输入关键词,多个关键词用逗号分隔',
157
- tag: true,
158
- split: ',',
159
- noAiGenerate: true,
160
- }} />
161
- )
162
- }}
163
- </el-table-column>
164
- <el-table-column prop="aiScript" label="操作" width="50px">
165
- {{
166
- default: (scope) => (
167
- <el-icon style={{ cursor: 'pointer' }} ><DeleteFilled /></el-icon>
168
- )
169
- }}
170
- </el-table-column>
171
- {/* <InputColumn tableColumn={{
172
- prop: 'standardScript',
173
- label: '标准话术',
174
- }} />
175
- <InputColumn tableColumn={{
176
- prop: 'keyword',
177
- label: '关键词',
178
- }} /> */}
179
- </>
180
- ),
181
- }}
182
- </el-table>
183
- </div>
184
- <div>
185
- {
186
- attrs.footer && attrs.footer({
187
- labelEmu,
188
- activeName: activeName.value,
189
- type: type.value,
190
- })
191
- }
192
- </div>
193
- </div>
194
- )
195
- }
196
- })
@@ -1,41 +0,0 @@
1
- .scriptTable{
2
- .header{
3
- display: flex;
4
- justify-content: space-between;
5
- align-items: center;
6
- background-color: #F8F8F8;
7
- border: 1px solid #EBEEF5;
8
- border-bottom: none;
9
- padding: 10px;
10
- .tabs{
11
- display: flex;
12
- justify-content: flex-start;
13
- align-items: center;
14
- }
15
- .tab{
16
- padding: 5px 10px;
17
- cursor: pointer;
18
- }
19
- .tab.active{
20
- color: #FC6506;
21
- font-weight: bold;
22
- position: relative;
23
- &::after{
24
- content: '';
25
- position: absolute;
26
- bottom: -10px;
27
- left: 0;
28
- display: block;
29
- transform: translateX(50%);
30
- width: 50%;
31
- height: 2px;
32
- background-color: #FC6506;
33
- }
34
- }
35
- .right{
36
- display: flex;
37
- justify-content: flex-end;
38
- align-items: center;
39
- }
40
- }
41
- }
@@ -1,183 +0,0 @@
1
- import { defineComponent, ref, nextTick, watch, Teleport } from 'vue'
2
- import styles from './index.module.scss'
3
- import { Close } from '@element-plus/icons-vue'
4
- export default defineComponent({
5
- // 输入列组件
6
- name: 'InputColumn',
7
- props: {
8
-
9
- },
10
-
11
-
12
- setup(props, { attrs }) {
13
- const showInput = ref(false)
14
-
15
- const inputColumnnRef = ref(null)
16
- const textareaRef = ref(null)
17
- const aiGenerateRef = ref(null)
18
- const showAiGenerate = ref(false)
19
- const aiGenerateValue = ref('你好,我想咨询一下关于高品质跑步机的选购问题。 你好,我想咨询一下关于高品质跑步机的选购问题。')
20
- const onClickOutside = (element, handler) => {
21
- const listener = (e) => {
22
- if (!element || element.contains(e.target)) return;
23
- handler(e);
24
- };
25
- document.addEventListener('click', listener, false);
26
- // 返回取消函数,想停就调它
27
- return () => document.removeEventListener('click', listener, false);
28
- }
29
- watch(() => showInput.value, (newVal) => {
30
- console.log(attrs, 'attrs');
31
-
32
- if (newVal) {
33
- const cell = inputColumnnRef.value.parentNode
34
- if (!cell) return
35
- const column = cell.parentNode
36
- console.log(column, 'column');
37
- if (!column) return
38
- const elTable__cell = column.parentNode
39
- if (!elTable__cell) return
40
- const width = elTable__cell.offsetWidth
41
- const rect = elTable__cell.getBoundingClientRect() // 相对于视口
42
- const x = rect.left + window.scrollX
43
- const y = rect.top + window.scrollY
44
- nextTick(() => {
45
- const textarea = textareaRef.value
46
- if (!textarea) return
47
- textarea.style.width = `${width}px`
48
- document.body.style.position = 'relative'
49
- textarea.style.top = `${y}px`
50
- textarea.style.left = `${x}px`
51
-
52
- })
53
-
54
-
55
- }
56
- })
57
-
58
- watch(() => textareaRef.value, (newVal, _, onCleanup) => {
59
- if (newVal) {
60
- setTimeout(() => {
61
- const removeClickOutside = onClickOutside(newVal, () => {
62
- showInput.value = false
63
- showAiGenerate.value = false
64
- })
65
- onCleanup(() => {
66
- removeClickOutside()
67
- })
68
- const elTextareaInner = textareaRef.value.querySelector('.el-textarea__inner')
69
- if (elTextareaInner) {
70
- elTextareaInner.focus()
71
- }
72
- }, 0)
73
-
74
- }
75
- })
76
-
77
-
78
- watch(() => showAiGenerate.value, async (newVal) => {
79
- if (newVal) {
80
- await nextTick()
81
- const width = textareaRef.value.offsetWidth
82
- const rect = textareaRef.value.getBoundingClientRect() // 相对于视口
83
- const left = rect.left
84
- if (left > width) {
85
- aiGenerateRef.value.style.left = `${-width}px`
86
- } else {
87
- aiGenerateRef.value.style.left = `${width}px`
88
- }
89
-
90
- }
91
- })
92
-
93
- return () => {
94
- return <div class={[styles.inputColumn]}>
95
- <div ref={inputColumnnRef} >
96
- {
97
- showInput.value && (
98
- <Teleport to="body">
99
- <div class={[styles.inputColumnTextarea]} ref={textareaRef}>
100
- <div>
101
- <el-input maxlength={500} type="textarea" rows={4} v-model={attrs.scope.row[attrs.tableColumn.prop]} />
102
- <div class={[styles.aiGenerateBtnContainer]}>
103
- {
104
- !attrs.tableColumn.noAiGenerate ?(
105
- <span class={[styles.aiGenerateBtn]} onClick={() => {
106
- showAiGenerate.value = true
107
- }}>
108
- AI润色
109
- </span>
110
- )
111
- :
112
- <span> </span>
113
- }
114
- <span>
115
- {attrs.scope.row[attrs.tableColumn.prop].length}/<span style={{ color: '#999' }}>500</span>
116
- </span>
117
- </div>
118
- </div>
119
- {
120
- showAiGenerate.value &&
121
-
122
- <div class={[styles.aiGenerate]} ref={aiGenerateRef}>
123
- <div class={[styles.header]}>
124
- <div class={[styles.title]}>
125
- AI生成
126
- </div>
127
- <el-icon class={[styles.close]} onClick={(e) => {
128
- showAiGenerate.value = false
129
- e.stopPropagation()
130
- }}>
131
- <Close />
132
- </el-icon>
133
- </div>
134
- <el-scrollbar>
135
- <div class={[styles.content]}>
136
- {aiGenerateValue.value || 'AI润色后的脚本'}
137
- </div>
138
- </el-scrollbar>
139
- <div class={[styles.footer]} >
140
- <span onClick={(e) => {
141
- attrs.scope.row[attrs.tableColumn.prop] = aiGenerateValue.value
142
- showAiGenerate.value = false
143
- e.stopPropagation()
144
- }}>
145
- 一键使用
146
- </span>
147
- <span onClick={(e) => {
148
- e.stopPropagation()
149
- }}>
150
- 重新生成
151
- </span>
152
- </div>
153
- </div>
154
- }
155
- </div>
156
- </Teleport >
157
- )}
158
- <div onClick={(e) => {
159
- console.log(e.target, attrs.scope.row[attrs.tableColumn.prop], '点击了输入框');
160
- showInput.value = true
161
- // e.stopPropagation()
162
- }}>
163
- {
164
- attrs.scope.row[attrs.tableColumn.prop] ?
165
- (attrs.tableColumn.tag ?
166
- <div class={[styles.tagContainer]} title={attrs.scope.row[attrs.tableColumn.prop]}>
167
-
168
- {attrs.scope.row[attrs.tableColumn.prop].split(attrs.tableColumn.split).map((item, index) => (
169
- item.trim() ? <div class={[styles.tag]} key={index}>{item}</div> : null
170
- ))}
171
- </div>
172
- :
173
- <div class={[styles.inputColumnTextareaValue]} title={attrs.scope.row[attrs.tableColumn.prop]}>{attrs.scope.row[attrs.tableColumn.prop]}111</div>
174
- )
175
- :
176
- <div class={[styles.inputColumnTextareaValue]}>{attrs.tableColumn.placeholder || '请输入'}</div>
177
- }
178
- </div>
179
- </div>
180
- </div>
181
- }
182
- }
183
- })
@@ -1,115 +0,0 @@
1
- .inputColumn {
2
- .inputColumnTextareaValue {
3
- overflow: hidden;
4
- display: -webkit-box;
5
- -webkit-box-orient: vertical;
6
- -webkit-line-clamp: 2;
7
- /* 想几行就写几 */
8
- text-overflow: ellipsis;
9
- word-break: break-all;
10
- /* 可选,英文长单词截断 */
11
- line-height: 18px;
12
- }
13
-
14
- .tagContainer {
15
- display: flex;
16
- flex-wrap: wrap;
17
- gap: 4px;
18
- .tag {
19
- padding: 2px 8px;
20
- background-color: #F5F5F5;
21
- border-radius: 4px;
22
- font-size: 12px;
23
- }
24
- }
25
-
26
- }
27
-
28
- .inputColumnTextarea {
29
- border: 1px solid #D9D9D9;
30
- background-color: #fff;
31
- border-radius: 8px;
32
-
33
- .aiGenerateBtnContainer {
34
- background-color: #fff;
35
- padding: 0 10px 6px;
36
- display: flex;
37
- justify-content: space-between;
38
- border-radius: 8px;
39
-
40
- .aiGenerateBtn {
41
- color: #4F8BFF;
42
- cursor: pointer;
43
- }
44
- }
45
-
46
- :global {
47
- .el-textarea__inner {
48
- box-shadow: none;
49
- border-radius: 8px;
50
- }
51
-
52
- .el-textarea {
53
- box-shadow: none;
54
- border-radius: 8px;
55
- }
56
- }
57
-
58
-
59
- position: absolute;
60
- top: 0;
61
- left: 0;
62
- z-index: 999999;
63
-
64
- .aiGenerate {
65
- box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
66
- border-radius: 8px;
67
- position: absolute;
68
- top: 0;
69
- left: -100%;
70
- z-index: 999999;
71
- background-color: #F2F4FA;
72
- width: 100%;
73
- height: 100%;
74
- padding: 10px;
75
- box-sizing: border-box;
76
- display: flex;
77
- flex-direction: column;
78
- justify-content: space-between;
79
-
80
- .header {
81
- display: flex;
82
- justify-content: space-between;
83
- align-items: center;
84
- font-size: 12px;
85
- color: #222222;
86
- font-weight: bold;
87
-
88
- .close {
89
- cursor: pointer;
90
- }
91
- }
92
-
93
- .content {
94
- font-size: 12px;
95
- color: #222222;
96
- flex: 1;
97
- }
98
-
99
- .footer {
100
- display: flex;
101
- height: 12px;
102
- gap: 10px;
103
-
104
- span {
105
- cursor: pointer;
106
- font-size: 12px;
107
- color: #4F8BFF;
108
-
109
- &:hover {
110
- color: #3A73E8;
111
- }
112
- }
113
- }
114
- }
115
- }
@@ -1,117 +0,0 @@
1
- <template>
2
- <div class="child-to-parent">
3
- <h1>子应用消息发送</h1>
4
- <div class="form-container">
5
- <div class="form-item">
6
- <label>标题:</label>
7
- <input type="text" v-model="formData.title" placeholder="请输入标题">
8
- </div>
9
- <div class="form-item">
10
- <label>消息:</label>
11
- <input type="text" v-model="formData.message" placeholder="请输入消息内容">
12
- </div>
13
- <div class="form-item">
14
- <label>类型:</label>
15
- <select v-model="formData.type">
16
- <option value="success">成功</option>
17
- <option value="warning">警告</option>
18
- <option value="error">错误</option>
19
- <option value="info">信息</option>
20
- </select>
21
- </div>
22
- <div class="form-item">
23
- <label>持续时间:</label>
24
- <input type="number" v-model="formData.duration" placeholder="持续时间(ms)">
25
- </div>
26
- <button class="submit-btn" @click="sendToParent">发送消息</button>
27
- </div>
28
- </div>
29
- </template>
30
-
31
- <script setup>
32
- import { reactive } from 'vue'
33
-
34
- const formData = reactive({
35
- title: 'vue3子应用测试title',
36
- message: 'vue3子应用测试消息',
37
- type: 'success',
38
- duration: 3000
39
- })
40
-
41
- const sendToParent = () => {
42
- window.$wujie?.bus.$emit('child-event', {
43
- message: formData.message,
44
- type: formData.type,
45
- duration: formData.duration,
46
- title: formData.title
47
- },'vue3子应用')
48
- }
49
- </script>
50
-
51
- <style scoped>
52
- .child-to-parent {
53
- padding: 20px;
54
- max-width: 600px;
55
- margin: 0 auto;
56
- }
57
-
58
- h1 {
59
- color: #333;
60
- margin-bottom: 30px;
61
- text-align: center;
62
- }
63
-
64
- .form-container {
65
- background: #fff;
66
- padding: 24px;
67
- border-radius: 8px;
68
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
69
- }
70
-
71
- .form-item {
72
- margin-bottom: 20px;
73
- display: flex;
74
- align-items: center;
75
- }
76
-
77
- label {
78
- width: 100px;
79
- text-align: right;
80
- padding-right: 12px;
81
- color: #606266;
82
- }
83
-
84
- input, select {
85
- flex: 1;
86
- height: 36px;
87
- line-height: 36px;
88
- padding: 0 12px;
89
- border: 1px solid #dcdfe6;
90
- border-radius: 4px;
91
- transition: border-color 0.2s;
92
- }
93
-
94
- input:focus, select:focus {
95
- outline: none;
96
- border-color: #409eff;
97
- }
98
-
99
- .submit-btn {
100
- width: 100%;
101
- height: 40px;
102
- background-color: #409eff;
103
- color: white;
104
- border: none;
105
- border-radius: 4px;
106
- cursor: pointer;
107
- transition: background-color 0.3s;
108
- }
109
-
110
- .submit-btn:hover {
111
- background-color: #66b1ff;
112
- }
113
-
114
- .submit-btn:active {
115
- background-color: #3a8ee6;
116
- }
117
- </style>