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,560 +0,0 @@
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
- }