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,29 +0,0 @@
1
- import { defineComponent } from 'vue'
2
- import styles from './index.module.scss'
3
-
4
- /**
5
- * 综合评价组件
6
- * @description 显示AI对练习表现的综合评价文字
7
- */
8
- export default defineComponent({
9
- name: 'ComprehensiveEvaluation',
10
-
11
- props: {
12
- // 评价内容
13
- content: {
14
- type: String,
15
- required: true,
16
- },
17
- },
18
-
19
- setup(props) {
20
- return () => {
21
- return (
22
- <div class={styles.comprehensiveEvaluation}>
23
- <h3 class={styles.title}>综合评价</h3>
24
- <div class={styles.content}>{props.content}</div>
25
- </div>
26
- )
27
- }
28
- },
29
- })
@@ -1,25 +0,0 @@
1
- // 综合评价样式
2
- .comprehensiveEvaluation {
3
- background: #fff;
4
- padding: 20px 24px;
5
- border-radius: 8px;
6
- height: 300px;
7
- display: flex;
8
- flex-direction: column;
9
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
10
- }
11
-
12
- .title {
13
- font-size: 16px;
14
- font-weight: 600;
15
- color: #262626;
16
- margin: 0 0 16px 0;
17
- padding-bottom: 12px;
18
- }
19
-
20
- .content {
21
- font-size: 14px;
22
- color: #595959;
23
- line-height: 1.8;
24
- text-align: justify;
25
- }
@@ -1,106 +0,0 @@
1
- import { defineComponent } from 'vue'
2
- import styles from './index.module.scss'
3
-
4
- /**
5
- * 对话气泡组件
6
- * @description 显示客户问题和AI回答的对话气泡
7
- */
8
- export default defineComponent({
9
- name: 'DialogueBubble',
10
-
11
- props: {
12
- // 对话数据
13
- dialogue: {
14
- type: Object,
15
- required: true,
16
- // 数据格式: { question: 'AI提问', answer: '用户回答', score: 98 }
17
- },
18
- // 得分详情
19
- scoreDetails: {
20
- type: Array,
21
- default: () => [],
22
- // 数据格式: [{ name: '关键词', score: 20, total: 20, tags: ['多重保障'] }]
23
- },
24
- // 指导建议
25
- suggestion: {
26
- type: String,
27
- default: '',
28
- },
29
- },
30
-
31
- setup(props) {
32
- // 获取评分等级表情
33
- const getScoreEmoji = (score) => {
34
- if (score >= 90) return '😃'
35
- if (score >= 70) return '🙂'
36
- if (score >= 60) return '😐'
37
- return '😟'
38
- }
39
-
40
- return () => {
41
- return (
42
- <div class={styles.dialogueBubble}>
43
- {/* 对话内容 */}
44
- <div class={styles.dialogueContent}>
45
- {/* AI提问 */}
46
- <div class={styles.questionBubble}>
47
- <div class={styles.bubbleText}>
48
- <span class={styles.audioIcon}>🔊</span>
49
- <span>{props.dialogue.question}</span>
50
- </div>
51
- </div>
52
-
53
- {/* 用户回答 */}
54
- <div class={styles.answerBubble}>
55
- <div class={styles.bubbleText}>
56
- {props.dialogue.answer}
57
- </div>
58
- <div class={styles.scoreTag}>
59
- <span class={styles.scoreValue}>{props.dialogue.score}分</span>
60
- <span class={styles.scoreEmoji}>{getScoreEmoji(props.dialogue.score)}</span>
61
- </div>
62
-
63
- {/* 得分明细卡片 */}
64
- <div class={styles.scoreCard}>
65
- {/* 得分明细 */}
66
- <div class={styles.scoreDetails}>
67
- <div class={styles.detailsTitle}>得分明细</div>
68
- {props.scoreDetails.map((detail, index) => (
69
- <div key={index} class={styles.detailItem}>
70
- <div class={styles.detailHeader}>
71
- <span class={styles.detailName}>{detail.name}</span>
72
- <span class={styles.detailScore}>
73
- {detail.score}/{detail.total}分
74
- </span>
75
- </div>
76
- {detail.tags && detail.tags.length > 0 && (
77
- <div class={styles.tags}>
78
- <span class={styles.tagLabel}>
79
- 关键词共{detail.tags.length}个,命中{detail.tags.length}个
80
- </span>
81
- {detail.tags.map((tag, idx) => (
82
- <el-tag key={idx} type="success" size="small">
83
- {tag}
84
- </el-tag>
85
- ))}
86
- </div>
87
- )}
88
- </div>
89
- ))}
90
- </div>
91
-
92
- {/* 指导建议 */}
93
- {props.suggestion && (
94
- <div class={styles.suggestion}>
95
- <div class={styles.suggestionTitle}>指导建议</div>
96
- <div class={styles.suggestionContent}>{props.suggestion}</div>
97
- </div>
98
- )}
99
- </div>
100
- </div>
101
- </div>
102
- </div>
103
- )
104
- }
105
- },
106
- })
@@ -1,164 +0,0 @@
1
- // 对话气泡样式
2
- .dialogueBubble {
3
- background: #f8f8f8;
4
- padding: 16px;
5
- border-radius: 0 0 8px 8px;
6
- }
7
-
8
- // 对话内容
9
- .dialogueContent {
10
- margin-bottom: 0;
11
- display: flex;
12
- flex-direction: column;
13
- gap: 16px;
14
- }
15
-
16
- .questionBubble {
17
- display: flex;
18
- justify-content: flex-start;
19
- align-self: flex-start;
20
- max-width: 70%;
21
-
22
- .bubbleText {
23
- background: #f5f5f5;
24
- color: #262626;
25
- padding: 14px 16px;
26
- border-radius: 8px 8px 8px 2px;
27
- line-height: 1.7;
28
- font-size: 14px;
29
- display: flex;
30
- align-items: center;
31
- gap: 8px;
32
- }
33
- }
34
-
35
- .answerBubble {
36
- display: flex;
37
- flex-direction: column;
38
- align-items: flex-end;
39
- align-self: flex-end;
40
- background: #e4ebfd;
41
- padding: 16px;
42
- border-radius: 8px;
43
- max-width: 80%;
44
-
45
- .bubbleText {
46
- background: transparent;
47
- color: #262626;
48
- padding: 0;
49
- max-width: 100%;
50
- line-height: 1.7;
51
- font-size: 14px;
52
- margin-bottom: 12px;
53
- width: 100%;
54
- }
55
- }
56
-
57
- .scoreTag {
58
- display: flex;
59
- align-items: center;
60
- gap: 6px;
61
- margin-bottom: 12px;
62
- align-self: flex-end;
63
- }
64
-
65
- .scoreValue {
66
- font-size: 16px;
67
- font-weight: 600;
68
- color: #ff8c00;
69
- }
70
-
71
- .scoreEmoji {
72
- font-size: 16px;
73
- }
74
-
75
- .audioIcon {
76
- font-size: 16px;
77
- cursor: pointer;
78
- opacity: 0.6;
79
- flex-shrink: 0;
80
- }
81
-
82
- // 得分明细卡片
83
- .scoreCard {
84
- background: #ffffff;
85
- padding: 16px 20px;
86
- border-radius: 8px;
87
- align-self: stretch;
88
- }
89
-
90
- // 得分明细
91
- .scoreDetails {
92
- margin-bottom: 16px;
93
-
94
- &:last-child {
95
- margin-bottom: 0;
96
- }
97
- }
98
-
99
- .detailsTitle {
100
- font-size: 15px;
101
- font-weight: 600;
102
- color: #fa8c16;
103
- margin-bottom: 12px;
104
- }
105
-
106
- .detailItem {
107
- margin-bottom: 12px;
108
-
109
- &:last-child {
110
- margin-bottom: 0;
111
- }
112
- }
113
-
114
- .detailHeader {
115
- display: flex;
116
- justify-content: space-between;
117
- align-items: center;
118
- margin-bottom: 6px;
119
- }
120
-
121
- .detailName {
122
- font-size: 14px;
123
- color: #262626;
124
- font-weight: 500;
125
- }
126
-
127
- .detailScore {
128
- font-size: 15px;
129
- color: #52c41a;
130
- font-weight: 600;
131
- }
132
-
133
- .tags {
134
- display: flex;
135
- gap: 8px;
136
- flex-wrap: wrap;
137
- align-items: center;
138
- }
139
-
140
- .tagLabel {
141
- font-size: 13px;
142
- color: #595959;
143
- }
144
-
145
- // 指导建议
146
- .suggestion {
147
- padding-top: 16px;
148
- border-top: 1px solid rgba(0, 0, 0, 0.06);
149
- }
150
-
151
- .suggestionTitle {
152
- font-size: 15px;
153
- font-weight: 600;
154
- color: #fa8c16;
155
- margin-bottom: 8px;
156
- }
157
-
158
- .suggestionContent {
159
- font-size: 14px;
160
- color: #262626;
161
- line-height: 1.7;
162
- }
163
-
164
-
@@ -1,182 +0,0 @@
1
- import { defineComponent, ref } from 'vue'
2
- import styles from './index.module.scss'
3
-
4
- /**
5
- * 对话记录组件
6
- * @description 显示陪练过程中的完整对话记录
7
- */
8
- export default defineComponent({
9
- name: 'DialogueRecord',
10
-
11
- setup() {
12
- // 对话记录数据
13
- const dialogues = ref([
14
- {
15
- question: '您好,我是XX银行的理财经理小李,请问您现在方便接听电话吗?',
16
- answer: '方便的,你说吧。',
17
- score: 85,
18
- scoreDetails: [
19
- { name: '关键词', score: 18, total: 20, tags: ['自我介绍'] },
20
- { name: '语义准确', score: 67, total: 80, tags: [] },
21
- ],
22
- suggestion: '开场白较为规范,建议语气可以更加热情一些。',
23
- },
24
- {
25
- question: '好的,王总。我看到您最近在我行有一笔定期存款即将到期,我想向您推荐一款更适合您的理财产品,不知道您是否感兴趣?',
26
- answer: '什么产品?收益怎么样?',
27
- score: 78,
28
- scoreDetails: [
29
- { name: '关键词', score: 16, total: 20, tags: ['定期存款', '理财产品'] },
30
- { name: '语义准确', score: 62, total: 80, tags: [] },
31
- ],
32
- suggestion: '产品引入比较自然,但可以先了解客户的理财需求再推荐。',
33
- },
34
- {
35
- question: '您好,速汇盈直联后我们内部系统就和你们打通了,安全性有保障吗?',
36
- answer:
37
- '王总,系统的安全性能您可以放心,我行会提供多重保障,主要是有三方面向您汇报。首先,第一是在客户端,我们会通过前置机加UK对物理数据进行一个隔离,那就像防火墙一样,保障信息的安全。二呢,是在数据端,系统会自动对企业发出的原始指令进行数据加密和加密,就跟摩斯密码一样,确保外部无法解析,但是在银行端呢,我们采用了国际上最高的安全标准,就像中国电建、上汽集团这样的国央企呢,已经和我们进行了试点。这个模式的安全性在国资委已经获得了普及...',
38
- score: 98,
39
- scoreDetails: [
40
- { name: '关键词', score: 20, total: 20, tags: ['多重保障'] },
41
- { name: '语义准确', score: 78, total: 80, tags: [] },
42
- ],
43
- suggestion: '你在对话中表现的非常好,请继续保持!',
44
- },
45
- {
46
- question: '这个产品的收益率是多少?',
47
- answer:
48
- '关于收益率,我们这款产品是浮动收益型的,近一年的年化收益率在4.5%-5.2%之间,相比市场同类产品具有较强的竞争力。而且我们有专业的投资团队进行管理,历史业绩表现稳定。',
49
- score: 95,
50
- scoreDetails: [
51
- { name: '关键词', score: 18, total: 20, tags: ['年化收益率'] },
52
- { name: '语义准确', score: 77, total: 80, tags: [] },
53
- ],
54
- suggestion: '回答准确,继续保持!',
55
- },
56
- {
57
- question: '产品的风险等级是多少?我能承受的风险有限。',
58
- answer: '这款产品的风险等级是R2级,属于中低风险产品,比较适合稳健型投资者。',
59
- score: 88,
60
- scoreDetails: [
61
- { name: '关键词', score: 18, total: 20, tags: ['风险等级', 'R2'] },
62
- { name: '语义准确', score: 70, total: 80, tags: [] },
63
- ],
64
- suggestion: '风险等级说明清楚,建议可以进一步询问客户的风险承受能力。',
65
- },
66
- {
67
- question: '购买这个产品有什么条件吗?起购金额是多少?',
68
- answer: '这个产品的起购金额是5万元,没有其他特殊条件,只要您是我行的客户就可以购买。',
69
- score: 82,
70
- scoreDetails: [
71
- { name: '关键词', score: 17, total: 20, tags: ['起购金额', '5万'] },
72
- { name: '语义准确', score: 65, total: 80, tags: [] },
73
- ],
74
- suggestion: '起购金额说明准确,可以补充说明产品的申购渠道。',
75
- },
76
- {
77
- question: '那这个产品什么时候可以赎回?有没有封闭期?',
78
- answer: '产品有3个月的封闭期,封闭期结束后可以随时赎回,赎回资金T+1到账。',
79
- score: 90,
80
- scoreDetails: [
81
- { name: '关键词', score: 19, total: 20, tags: ['封闭期', '赎回', 'T+1'] },
82
- { name: '语义准确', score: 71, total: 80, tags: [] },
83
- ],
84
- suggestion: '赎回规则说明清晰,表现优秀!',
85
- },
86
- {
87
- question: '好的,我考虑一下,可能明天给你答复。',
88
- answer: '没问题王总,您可以先考虑一下。如果有任何问题随时可以联系我,我的工号是XX,期待您的回复。',
89
- score: 92,
90
- scoreDetails: [
91
- { name: '关键词', score: 19, total: 20, tags: ['工号'] },
92
- { name: '语义准确', score: 73, total: 80, tags: [] },
93
- ],
94
- suggestion: '收尾专业得体,客户体验良好!',
95
- },
96
- ])
97
-
98
- return () => {
99
- return (
100
- <div class={styles.dialogueRecord}>
101
- <div class={styles.header}>
102
- <h3 class={styles.title}>完整对话记录</h3>
103
- <div class={styles.stats}>
104
- <span class={styles.statItem}>总轮次:{dialogues.value.length}</span>
105
- <span class={styles.statItem}>
106
- 平均得分:
107
- {Math.round(
108
- dialogues.value.reduce((sum, d) => sum + d.score, 0) /
109
- dialogues.value.length
110
- )}
111
-
112
- </span>
113
- </div>
114
- </div>
115
-
116
- <div class={styles.dialogueContainer}>
117
- <div class={styles.chatFlow}>
118
- {dialogues.value.map((dialogue, index) => (
119
- <>
120
- {/* AI提问 */}
121
- <div key={`q-${index}`} class={styles.messageLeft}>
122
- <div class={styles.messageBubble}>
123
- <span class={styles.audioIcon}>🔊</span>
124
- <span>{dialogue.question}</span>
125
- </div>
126
- </div>
127
-
128
- {/* 用户回答 */}
129
- <div key={`a-${index}`} class={styles.messageRight}>
130
- <div class={styles.messageBubble}>
131
- <div class={styles.answerContent}>{dialogue.answer}</div>
132
- <div class={styles.scoreTag}>
133
- <span class={styles.scoreValue}>{dialogue.score}分</span>
134
- </div>
135
-
136
- {/* 得分明细 */}
137
- <div class={styles.scoreCard}>
138
- <div class={styles.scoreDetails}>
139
- <div class={styles.detailsTitle}>得分明细</div>
140
- {dialogue.scoreDetails.map((detail, idx) => (
141
- <div key={idx} class={styles.detailItem}>
142
- <div class={styles.detailHeader}>
143
- <span class={styles.detailName}>{detail.name}</span>
144
- <span class={styles.detailScore}>
145
- {detail.score}/{detail.total}分
146
- </span>
147
- </div>
148
- {detail.tags && detail.tags.length > 0 && (
149
- <div class={styles.tags}>
150
- <span class={styles.tagLabel}>
151
- 关键词共{detail.tags.length}个,命中{detail.tags.length}个
152
- </span>
153
- {detail.tags.map((tag, tagIdx) => (
154
- <el-tag key={tagIdx} type="success" size="small">
155
- {tag}
156
- </el-tag>
157
- ))}
158
- </div>
159
- )}
160
- </div>
161
- ))}
162
- </div>
163
-
164
- {/* 指导建议 */}
165
- {dialogue.suggestion && (
166
- <div class={styles.suggestion}>
167
- <div class={styles.suggestionTitle}>指导建议</div>
168
- <div class={styles.suggestionContent}>{dialogue.suggestion}</div>
169
- </div>
170
- )}
171
- </div>
172
- </div>
173
- </div>
174
- </>
175
- ))}
176
- </div>
177
- </div>
178
- </div>
179
- )
180
- }
181
- },
182
- })