npmapps 1.0.21 → 1.0.23

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 (105) hide show
  1. package/app/Wscats.vue-1.0.26.vsix +0 -0
  2. package/app/febean.vue-format-0.1.8.vsix +0 -0
  3. package/app/wujie-vue3-child/.claude/settings.local.json +8 -0
  4. package/app/wujie-vue3-child/.vscode/extensions.json +3 -0
  5. package/app/wujie-vue3-child/PROJECT_MEMORY.md +427 -0
  6. package/app/wujie-vue3-child/README.md +5 -0
  7. package/app/wujie-vue3-child/index.html +13 -0
  8. package/app/wujie-vue3-child/package-lock.json +5744 -0
  9. package/app/wujie-vue3-child/package.json +28 -0
  10. package/app/wujie-vue3-child/public/vite.svg +1 -0
  11. package/app/wujie-vue3-child/src/App.vue +130 -0
  12. package/app/wujie-vue3-child/src/assets/vue.svg +1 -0
  13. package/app/wujie-vue3-child/src/components/HelloWorld.vue +43 -0
  14. package/app/wujie-vue3-child/src/components/tags-view.vue +193 -0
  15. package/app/wujie-vue3-child/src/components/tags-view1.vue +131 -0
  16. package/app/wujie-vue3-child/src/hooks/useClickOutside.js +11 -0
  17. package/app/wujie-vue3-child/src/hooks/useTableDragSort.js +28 -0
  18. package/app/wujie-vue3-child/src/main.js +15 -0
  19. package/app/wujie-vue3-child/src/router/index.js +104 -0
  20. package/app/wujie-vue3-child/src/store/tagsViewStroe.js +34 -0
  21. package/app/wujie-vue3-child/src/style.css +4 -0
  22. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/README.md +836 -0
  23. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/REFLEX_EXAMPLES.md +728 -0
  24. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.jsx +687 -0
  25. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.module.scss +560 -0
  26. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.jsx +570 -0
  27. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.module.scss +330 -0
  28. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.jsx +378 -0
  29. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.module.scss +228 -0
  30. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.jsx +399 -0
  31. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.module.scss +252 -0
  32. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.jsx +585 -0
  33. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.module.scss +331 -0
  34. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.jsx +392 -0
  35. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.module.scss +39 -0
  36. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/README.md +248 -0
  37. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/SelectorTrigger.jsx +194 -0
  38. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/index.jsx +1459 -0
  39. package/app/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/mockData.js +301 -0
  40. package/app/{aiCoach → wujie-vue3-child/src/views/aiCoach}/dialogueSegment/index.jsx +28 -4
  41. package/app/wujie-vue3-child/src/views/aiCoach/index.jsx +32 -0
  42. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.jsx +121 -0
  43. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.module.scss +76 -0
  44. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/DonutChart/index.jsx +104 -0
  45. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.jsx +75 -0
  46. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.module.scss +12 -0
  47. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.jsx +62 -0
  48. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.module.scss +43 -0
  49. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.jsx +29 -0
  50. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.module.scss +5 -0
  51. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.jsx +58 -0
  52. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.module.scss +85 -0
  53. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.jsx +92 -0
  54. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.module.scss +56 -0
  55. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.jsx +40 -0
  56. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.module.scss +53 -0
  57. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsDonut.jsx +106 -0
  58. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsRankBar.jsx +132 -0
  59. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.jsx +176 -0
  60. package/app/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.module.scss +96 -0
  61. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.jsx +162 -0
  62. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.module.scss +16 -0
  63. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.jsx +29 -0
  64. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.module.scss +25 -0
  65. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.jsx +106 -0
  66. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.module.scss +164 -0
  67. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.jsx +182 -0
  68. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.module.scss +203 -0
  69. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.jsx +145 -0
  70. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.module.scss +126 -0
  71. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.jsx +67 -0
  72. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.module.scss +105 -0
  73. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.jsx +81 -0
  74. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.module.scss +47 -0
  75. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.jsx +64 -0
  76. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.module.scss +85 -0
  77. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.jsx +39 -0
  78. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.module.scss +44 -0
  79. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.jsx +83 -0
  80. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.module.scss +101 -0
  81. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/index.jsx +50 -0
  82. package/app/wujie-vue3-child/src/views/aiCoach/reportDetail/index.module.scss +25 -0
  83. package/app/wujie-vue3-child/src/views/child-to-parent.vue +117 -0
  84. package/app/wujie-vue3-child/src/views/home.vue +53 -0
  85. package/app/wujie-vue3-child/src/views/jsx/btnSelect/btnSelect.vue +169 -0
  86. package/app/wujie-vue3-child/src/views/jsx/btnSelect/index.vue +69 -0
  87. package/app/wujie-vue3-child/src/views/jsx/com.vue +44 -0
  88. package/app/wujie-vue3-child/src/views/jsx/dialog.jsx +66 -0
  89. package/app/wujie-vue3-child/src/views/jsx/index.vue +72 -0
  90. package/app/wujie-vue3-child/src/views/jsx/props.vue +33 -0
  91. package/app/wujie-vue3-child/src/views/parent-to-child.vue +225 -0
  92. package/app/wujie-vue3-child/src/views/phone-code.vue +318 -0
  93. package/app/wujie-vue3-child/src/views/router-jump.vue +123 -0
  94. package/app/wujie-vue3-child/src/views/test.vue +192 -0
  95. package/app/wujie-vue3-child/vite.config.js +15 -0
  96. package/package.json +1 -1
  97. package/app/aiCoach/index.jsx +0 -20
  98. package/npmapps-1.0.20.tgz +0 -0
  99. /package/app/{aiCoach → wujie-vue3-child/src/views/aiCoach}/collapseExpand/index.jsx +0 -0
  100. /package/app/{aiCoach → wujie-vue3-child/src/views/aiCoach}/collapseExpand/index.module.scss +0 -0
  101. /package/app/{aiCoach → wujie-vue3-child/src/views/aiCoach}/dialogueSegment/index.module.scss +0 -0
  102. /package/app/{aiCoach → wujie-vue3-child/src/views/aiCoach}/scriptTable/index.jsx +0 -0
  103. /package/app/{aiCoach → wujie-vue3-child/src/views/aiCoach}/scriptTable/index.module.scss +0 -0
  104. /package/app/{aiCoach → wujie-vue3-child/src/views/aiCoach}/scriptTable/inputColumn/index.jsx +0 -0
  105. /package/app/{aiCoach → wujie-vue3-child/src/views/aiCoach}/scriptTable/inputColumn/index.module.scss +0 -0
@@ -0,0 +1,560 @@
1
+ // 部门人员选择器样式(三栏布局)
2
+ .departmentPersonnelSelector {
3
+ position: relative;
4
+ width: 100%;
5
+ }
6
+
7
+ // 自定义输入框
8
+ .customInput {
9
+ display: flex;
10
+ align-items: center;
11
+ width: 100%;
12
+ min-height: 32px;
13
+ padding: 1px 11px;
14
+ background: #fff;
15
+ border: 1px solid #dcdfe6;
16
+ border-radius: 4px;
17
+ cursor: pointer;
18
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
19
+ outline: none;
20
+ box-sizing: border-box;
21
+
22
+ &:hover {
23
+ border-color: #c0c4cc;
24
+ }
25
+
26
+ &.focused {
27
+ border-color: #409eff;
28
+ }
29
+
30
+ &.disabled {
31
+ background-color: #f5f7fa;
32
+ border-color: #e4e7ed;
33
+ color: #c0c4cc;
34
+ cursor: not-allowed;
35
+ }
36
+ }
37
+
38
+ // 输入框内容区域
39
+ .inputContent {
40
+ flex: 1;
41
+ display: flex;
42
+ align-items: center;
43
+ min-width: 0;
44
+ min-height: 30px;
45
+ padding: 2px 0;
46
+ }
47
+
48
+ // 占位符
49
+ .placeholder {
50
+ color: #c0c4cc;
51
+ font-size: 14px;
52
+ }
53
+
54
+ // 前置标签
55
+ .label {
56
+ color: #606266;
57
+ font-size: 14px;
58
+ margin-right: 4px;
59
+ flex-shrink: 0;
60
+ }
61
+
62
+ // 单选文本
63
+ .text {
64
+ color: #606266;
65
+ font-size: 14px;
66
+ overflow: hidden;
67
+ text-overflow: ellipsis;
68
+ white-space: nowrap;
69
+ }
70
+
71
+ // 标签容器
72
+ .tagsWrapper {
73
+ display: flex;
74
+ align-items: center;
75
+ flex-wrap: wrap;
76
+ gap: 4px;
77
+ }
78
+
79
+ // 标签
80
+ .tag {
81
+ margin: 0;
82
+ max-width: 100%;
83
+
84
+ :global(.el-tag__content) {
85
+ overflow: hidden;
86
+ text-overflow: ellipsis;
87
+ white-space: nowrap;
88
+ }
89
+ }
90
+
91
+ // 按钮模式包装器
92
+ .buttonWrapper {
93
+ // width: 100%;
94
+ }
95
+
96
+ // 按钮内部容器
97
+ .buttonInner {
98
+ display: flex;
99
+ align-items: center;
100
+ justify-content: space-between;
101
+ width: 100%;
102
+ gap: 8px;
103
+ }
104
+
105
+ // 按钮内容区域
106
+ .buttonContent {
107
+ flex: 1;
108
+ display: flex;
109
+ align-items: center;
110
+ min-width: 0;
111
+ text-align: left;
112
+ overflow: hidden;
113
+ }
114
+
115
+ // 按钮文字包装器(用于显示文字+徽章)
116
+ .buttonTextWrapper {
117
+ display: flex;
118
+ align-items: center;
119
+ gap: 8px;
120
+ }
121
+
122
+ // 数量徽章(圆圈显示 +N)
123
+ .countBadge {
124
+ display: inline-flex;
125
+ align-items: center;
126
+ justify-content: center;
127
+ min-width: 20px;
128
+ height: 20px;
129
+ padding: 0 4px;
130
+ background-color: #ecf5ff;
131
+ color: #409eff;
132
+ font-size: 12px;
133
+ font-weight: 500;
134
+ border-radius: 10px;
135
+ white-space: nowrap;
136
+ flex-shrink: 0;
137
+ }
138
+
139
+ // 右侧图标区域
140
+ .suffixIcons {
141
+ display: flex;
142
+ align-items: center;
143
+ gap: 4px;
144
+ margin-left: 8px;
145
+ flex-shrink: 0;
146
+ }
147
+
148
+ // 清除图标
149
+ .clearIcon {
150
+ font-size: 14px;
151
+ color: #c0c4cc;
152
+ cursor: pointer;
153
+ transition: color 0.2s;
154
+
155
+ &:hover {
156
+ color: #909399;
157
+ }
158
+ }
159
+
160
+ // 下拉箭头图标
161
+ .arrowIcon {
162
+ font-size: 14px;
163
+ color: #c0c4cc;
164
+ transition: transform 0.3s;
165
+
166
+ &.reverse {
167
+ transform: rotate(180deg);
168
+ }
169
+ }
170
+
171
+ .disabled {
172
+ .clearIcon,
173
+ .arrowIcon {
174
+ cursor: not-allowed;
175
+ }
176
+ }
177
+
178
+ // 下拉弹窗容器
179
+ .dropdown {
180
+ position: fixed;
181
+ background: #fff;
182
+ border: 1px solid #e4e7ed;
183
+ border-radius: 4px;
184
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
185
+ z-index: 2000;
186
+ display: flex;
187
+ flex-direction: column;
188
+ overflow: hidden;
189
+
190
+ // 添加动画效果
191
+ animation: dropdownFadeIn 0.2s ease-out;
192
+ transform-origin: top;
193
+ }
194
+
195
+ // 下拉弹窗淡入动画
196
+ @keyframes dropdownFadeIn {
197
+ from {
198
+ opacity: 0;
199
+ transform: translateY(-10px) scaleY(0.9);
200
+ }
201
+ to {
202
+ opacity: 1;
203
+ transform: translateY(0) scaleY(1);
204
+ }
205
+ }
206
+
207
+ // 搜索栏
208
+ .searchBar {
209
+ padding: 12px;
210
+ border-bottom: 1px solid #e4e7ed;
211
+ background: #fff;
212
+ }
213
+
214
+ // 三栏内容区域
215
+ .contentArea {
216
+ flex: 1;
217
+ display: flex;
218
+ overflow: hidden;
219
+ min-height: 0; // 确保 flex 子元素可以正确收缩
220
+ }
221
+
222
+ // 左侧面板(部门树)
223
+ .leftPanel {
224
+ width: 240px;
225
+ border-right: 1px solid #e4e7ed;
226
+ display: flex;
227
+ flex-direction: column;
228
+ background: #fafafa;
229
+ }
230
+
231
+ // 中间面板(人员列表)
232
+ .middlePanel {
233
+ flex: 1;
234
+ display: flex;
235
+ flex-direction: column;
236
+ background: #fff;
237
+ border-right: 1px solid #e4e7ed;
238
+ }
239
+
240
+ // 右侧面板(已选人员)
241
+ .rightPanel {
242
+ width: 280px;
243
+ display: flex;
244
+ flex-direction: column;
245
+ background: #fafafa;
246
+ }
247
+
248
+ // 面板标题
249
+ .panelTitle {
250
+ padding: 12px 16px;
251
+ font-size: 14px;
252
+ font-weight: 500;
253
+ color: #303133;
254
+ border-bottom: 1px solid #e4e7ed;
255
+ background: #fff;
256
+ display: flex;
257
+ align-items: center;
258
+ justify-content: space-between;
259
+ }
260
+
261
+ // 清空按钮
262
+ .clearAll {
263
+ font-size: 12px;
264
+ color: #409eff;
265
+ font-weight: normal;
266
+ cursor: pointer;
267
+ transition: color 0.2s;
268
+
269
+ &:hover {
270
+ color: #66b1ff;
271
+ }
272
+ }
273
+
274
+ // 树容器
275
+ .treeWrapper {
276
+ flex: 1;
277
+ overflow-y: auto;
278
+ padding: 8px 0;
279
+
280
+ // 自定义滚动条样式
281
+ &::-webkit-scrollbar {
282
+ width: 6px;
283
+ }
284
+
285
+ &::-webkit-scrollbar-track {
286
+ background: #f1f1f1;
287
+ border-radius: 3px;
288
+ }
289
+
290
+ &::-webkit-scrollbar-thumb {
291
+ background: #c1c1c1;
292
+ border-radius: 3px;
293
+
294
+ &:hover {
295
+ background: #a8a8a8;
296
+ }
297
+ }
298
+
299
+ // 树节点样式
300
+ :global {
301
+ .el-tree {
302
+ background: transparent;
303
+
304
+ .el-tree-node {
305
+ &:focus > .el-tree-node__content {
306
+ background-color: #f5f7fa;
307
+ }
308
+ }
309
+
310
+ .el-tree-node__content {
311
+ height: 32px;
312
+ padding-right: 12px;
313
+ transition: background-color 0.2s;
314
+
315
+ &:hover {
316
+ background-color: #e6f7ff;
317
+ }
318
+ }
319
+
320
+ .el-tree-node__label {
321
+ font-size: 14px;
322
+ color: #606266;
323
+ }
324
+
325
+ // 高亮当前选中节点
326
+ .el-tree-node.is-current > .el-tree-node__content {
327
+ background-color: #e6f7ff;
328
+ color: #409eff;
329
+
330
+ .el-tree-node__label {
331
+ color: #409eff;
332
+ font-weight: 500;
333
+ }
334
+ }
335
+
336
+ // 展开/收起图标
337
+ .el-tree-node__expand-icon {
338
+ font-size: 12px;
339
+ color: #c0c4cc;
340
+
341
+ &.is-leaf {
342
+ color: transparent;
343
+ }
344
+ }
345
+ }
346
+ }
347
+ }
348
+
349
+ // 人员列表
350
+ .personnelList {
351
+ flex: 1;
352
+ overflow-y: auto;
353
+ padding: 4px 0;
354
+
355
+ // 自定义滚动条样式
356
+ &::-webkit-scrollbar {
357
+ width: 6px;
358
+ }
359
+
360
+ &::-webkit-scrollbar-track {
361
+ background: #f1f1f1;
362
+ border-radius: 3px;
363
+ }
364
+
365
+ &::-webkit-scrollbar-thumb {
366
+ background: #c1c1c1;
367
+ border-radius: 3px;
368
+
369
+ &:hover {
370
+ background: #a8a8a8;
371
+ }
372
+ }
373
+ }
374
+
375
+ // 人员列表项
376
+ .personnelItem {
377
+ display: flex;
378
+ align-items: center;
379
+ padding: 10px 16px;
380
+ cursor: pointer;
381
+ transition: background-color 0.2s;
382
+ border-bottom: 1px solid #f5f7fa;
383
+
384
+ &:hover {
385
+ background-color: #f5f7fa;
386
+ }
387
+
388
+ &.selected {
389
+ background-color: #ecf5ff;
390
+
391
+ .personName {
392
+ color: #409eff;
393
+ font-weight: 500;
394
+ }
395
+ }
396
+
397
+ &:last-child {
398
+ border-bottom: none;
399
+ }
400
+ }
401
+
402
+ // 复选框
403
+ .checkbox {
404
+ margin-right: 12px;
405
+ pointer-events: none;
406
+ }
407
+
408
+ // 人员信息
409
+ .personInfo {
410
+ flex: 1;
411
+ min-width: 0;
412
+ }
413
+
414
+ // 人员姓名
415
+ .personName {
416
+ font-size: 14px;
417
+ color: #303133;
418
+ margin-bottom: 4px;
419
+ overflow: hidden;
420
+ text-overflow: ellipsis;
421
+ white-space: nowrap;
422
+ }
423
+
424
+ // 人员元数据
425
+ .personMeta {
426
+ font-size: 12px;
427
+ color: #909399;
428
+ overflow: hidden;
429
+ text-overflow: ellipsis;
430
+ white-space: nowrap;
431
+ }
432
+
433
+ // 职位
434
+ .position {
435
+ overflow: hidden;
436
+ text-overflow: ellipsis;
437
+ white-space: nowrap;
438
+ }
439
+
440
+ // 已选人员列表
441
+ .selectedList {
442
+ flex: 1;
443
+ overflow-y: auto;
444
+ padding: 4px 0;
445
+
446
+ // 自定义滚动条样式
447
+ &::-webkit-scrollbar {
448
+ width: 6px;
449
+ }
450
+
451
+ &::-webkit-scrollbar-track {
452
+ background: #f1f1f1;
453
+ border-radius: 3px;
454
+ }
455
+
456
+ &::-webkit-scrollbar-thumb {
457
+ background: #c1c1c1;
458
+ border-radius: 3px;
459
+
460
+ &:hover {
461
+ background: #a8a8a8;
462
+ }
463
+ }
464
+ }
465
+
466
+ // 已选人员项
467
+ .selectedItem {
468
+ display: flex;
469
+ align-items: center;
470
+ padding: 10px 16px;
471
+ transition: background-color 0.2s;
472
+ border-bottom: 1px solid #f0f0f0;
473
+
474
+ &:hover {
475
+ background-color: #f5f7fa;
476
+
477
+ .removeIcon {
478
+ opacity: 1;
479
+ }
480
+ }
481
+
482
+ &:last-child {
483
+ border-bottom: none;
484
+ }
485
+ }
486
+
487
+ // 已选人员信息
488
+ .selectedPersonInfo {
489
+ flex: 1;
490
+ min-width: 0;
491
+ margin-right: 8px;
492
+ }
493
+
494
+ // 已选人员姓名
495
+ .selectedPersonName {
496
+ font-size: 14px;
497
+ color: #303133;
498
+ margin-bottom: 4px;
499
+ overflow: hidden;
500
+ text-overflow: ellipsis;
501
+ white-space: nowrap;
502
+ }
503
+
504
+ // 已选人员元数据
505
+ .selectedPersonMeta {
506
+ font-size: 12px;
507
+ color: #909399;
508
+ overflow: hidden;
509
+ text-overflow: ellipsis;
510
+ white-space: nowrap;
511
+ }
512
+
513
+ // 移除图标
514
+ .removeIcon {
515
+ font-size: 16px;
516
+ color: #909399;
517
+ cursor: pointer;
518
+ opacity: 0.6;
519
+ transition: all 0.2s;
520
+ flex-shrink: 0;
521
+
522
+ &:hover {
523
+ color: #f56c6c;
524
+ opacity: 1;
525
+ }
526
+ }
527
+
528
+ // 空状态
529
+ .empty {
530
+ padding: 40px 16px;
531
+ text-align: center;
532
+ color: #909399;
533
+ font-size: 14px;
534
+ }
535
+
536
+ // 底部按钮区
537
+ .footer {
538
+ padding: 12px 16px;
539
+ border-top: 1px solid #e4e7ed;
540
+ background: #fff;
541
+ display: flex;
542
+ justify-content: flex-end;
543
+ gap: 12px;
544
+ }
545
+
546
+ // 加载状态
547
+ .loading {
548
+ display: flex;
549
+ flex-direction: column;
550
+ align-items: center;
551
+ justify-content: center;
552
+ padding: 40px 16px;
553
+ color: #909399;
554
+ font-size: 14px;
555
+
556
+ :global(.el-icon) {
557
+ font-size: 24px;
558
+ margin-bottom: 8px;
559
+ }
560
+ }