wui-components-v2 1.1.70 → 1.1.72

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 (82) hide show
  1. package/api/feishu.ts +20 -20
  2. package/api/index.ts +4 -4
  3. package/api/login.ts +51 -51
  4. package/api/tree.ts +28 -28
  5. package/components/action-popup/action-popup.vue +116 -116
  6. package/components/add-address-list/add-address-list.vue +187 -187
  7. package/components/add-address-page/config.ts +297 -297
  8. package/components/audio-play/audio-play.vue +220 -220
  9. package/components/batch-upload-file/batch-upload-file.vue +75 -75
  10. package/components/card-botom-buttons/card-botom-buttons.vue +279 -279
  11. package/components/demo-card/demo-card.vue +44 -44
  12. package/components/fold-card/fold-card.vue +2 -2
  13. package/components/form-control/form-control.vue +9 -1
  14. package/components/global-loading/GlobalLoading.md +366 -366
  15. package/components/global-loading/global-loading.vue +55 -55
  16. package/components/global-message/GlobalMessage.md +570 -570
  17. package/components/global-toast/GlobalToast.md +261 -261
  18. package/components/global-toast/global-toast.vue +56 -56
  19. package/components/label-value/open-value-more.vue +56 -56
  20. package/components/loading/loading.vue +5 -5
  21. package/components/login-form-box/login-form-box.vue +65 -65
  22. package/components/phone-login-form/phone-login-form.vue +204 -204
  23. package/components/privacy-popup/privacy-popup.vue +191 -191
  24. package/components/scan-input/scan-input.vue +406 -406
  25. package/components/select-col-picker/select-col-picker.vue +168 -168
  26. package/components/tab-search/tab-search.vue +73 -73
  27. package/components/tree-select/components/TreeNode.vue +200 -200
  28. package/components/tree-select/components/index.vue +471 -471
  29. package/components/tree-select/components/tree-select.vue +56 -56
  30. package/components/tree-select/index.vue +93 -93
  31. package/components/user-choose/user-choose.vue +169 -151
  32. package/components/video-play/video-play.vue +56 -56
  33. package/components/wui-auto-update-component/wui-auto-update-component.vue +132 -132
  34. package/components/wui-default/wui-default.vue +49 -49
  35. package/components/wui-details-page/wui-details-page.vue +147 -147
  36. package/components/wui-edit-page/wui-edit-page-copy.vue +757 -757
  37. package/components/wui-edit-page/wui-edit-page.vue +793 -793
  38. package/components/wui-login/wui-login.vue +43 -43
  39. package/components/wui-login1/wui-login.vue +41 -41
  40. package/components/wui-menus/wui-menus-top.vue +137 -137
  41. package/components/wui-menus/wui-menus-top1.vue +8 -8
  42. package/components/wui-menus1/components/banner-carousel.vue +320 -320
  43. package/components/wui-menus1/components/quick-panel.vue +55 -55
  44. package/components/wui-menus1/components/search-bar.vue +49 -49
  45. package/components/wui-menus1/components/section-menus.vue +208 -208
  46. package/components/wui-menus1/wui-menus-top.vue +718 -718
  47. package/components/wui-menus1/wui-menus-top1.vue +398 -398
  48. package/components/wui-notify-info/notify-handle.vue +53 -53
  49. package/components/wui-scan-binding-sensor/wui-scan-binding-sensor.vue +75 -75
  50. package/components/wui-search-history-babbar/components/SearchBar.vue +70 -70
  51. package/components/wui-select-list/wui-select-list.vue +1 -9
  52. package/components/wui-select-popup/wui-select-popup.vue +1 -0
  53. package/components/wui-tree-page/wui-tree-page.vue +297 -297
  54. package/components/wui-update-component/wui-update-component.vue +221 -221
  55. package/composables/types/theme.ts +65 -65
  56. package/composables/types/user.ts +5 -5
  57. package/composables/useColorGenerator.ts +221 -221
  58. package/composables/useCompanyFieldFilter.ts +26 -24
  59. package/composables/useEnumes.ts +43 -43
  60. package/composables/useEventBus.ts +37 -37
  61. package/composables/useGlobalLoading.ts +47 -47
  62. package/composables/useGlobalMessage.ts +53 -53
  63. package/composables/useGlobalToast.ts +63 -63
  64. package/composables/useLocale.ts +54 -54
  65. package/composables/useManualTheme.ts +179 -179
  66. package/composables/useSectionMenus.ts +120 -120
  67. package/composables/useTabbar.ts +50 -50
  68. package/composables/useTheme.ts +74 -74
  69. package/composables/useUser.ts +24 -24
  70. package/index.d.ts +90 -90
  71. package/package.json +24 -24
  72. package/store/manualThemeStore.ts +143 -143
  73. package/store/persist.ts +41 -41
  74. package/store/themeStore.ts +74 -74
  75. package/store/userStore.ts +22 -22
  76. package/styles/dark-mode.scss +498 -498
  77. package/type.ts +154 -154
  78. package/utils/control-tree.ts +353 -353
  79. package/utils/eventBus.ts +36 -36
  80. package/utils/idata-scan.ts +99 -99
  81. package/utils/index.ts +979 -979
  82. package/utils/rsaEncrypt.ts +10 -10
@@ -1,498 +1,498 @@
1
- /**
2
- * 暗黑模式全局样式覆盖
3
- * 用于强制覆盖 wot-design-uni 组件内部样式(:deep() 无法穿透的场景)
4
- *
5
- * 注意:此文件不能使用 scoped,否则无法穿透第三方组件
6
- *
7
- * @package wui-components-v2
8
- *
9
- * 使用方式:在项目 main.ts 中 import 此文件
10
- * import 'wui-components-v2/styles/dark-mode'
11
- */
12
-
13
- /* ====== CSS 变量定义(修正命名不匹配问题)====== */
14
- /* wot-design-uni 的 kebabCase 转换会把 darkBackground2 → --wot-dark-background-2 */
15
- /* 但项目中模板引用的是 --wot-dark-background2,需手动补齐 */
16
- :root,
17
- .wot-theme-dark {
18
- --wot-dark-background: #1b1b1e;
19
- --wot-dark-background2: #161616;
20
- --wot-dark-background3: #1e1e1e;
21
- --wot-dark-background4: #262626;
22
- --wot-dark-background5: #333333;
23
- --wot-dark-color: #ffffff;
24
- --wot-dark-color2: #e8e8e8;
25
- --wot-dark-color3: #999999;
26
- }
27
-
28
- /* ====== 暗黑模式下 wot-design-uni 组件内部文字颜色覆盖 ====== */
29
- .wot-theme-dark {
30
- /* Cell 组件 */
31
- .wd-cell__title {
32
- color: #e8e8e8 !important;
33
- }
34
-
35
- .wd-cell__right {
36
- color: #666666 !important;
37
- }
38
-
39
- .wd-cell__icon {
40
- color: #666666 !important;
41
- }
42
-
43
- /* CellGroup */
44
- .wd-cell-group {
45
- background-color: #111111 !important;
46
- }
47
-
48
- .wd-cell {
49
- background-color: #161616 !important;
50
- border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
51
-
52
- &:active {
53
- background-color: #1b1b1e !important;
54
- }
55
- }
56
-
57
- /* Switch 开关 */
58
- .wd-switch__node {
59
- background-color: #3d3d3d !important;
60
- }
61
-
62
- .wd-switch__node--checked {
63
- background-color: var(--wot-color-primary, #2164f3) !important;
64
- }
65
-
66
- /* Input 输入框 */
67
- .wd-input {
68
- --wot-input-bg: #252530;
69
- --wot-input-inner-color: #e8e8e8;
70
- --wot-input-inner-placeholder-color: #fff;
71
- }
72
-
73
- /* 原生 input 元素 - 必须用 uni- 前缀类名才能在小程序中命中 */
74
- .uni-input-input,
75
- .wd-input__input,
76
- .wd-input.is-compact .uni-input-input {
77
- color: var(--wot-input-inner-color, #e8e8e8) !important;
78
- caret-color: var(--wot-color-primary, #2164f3) !important;
79
- background-color: transparent !important;
80
- }
81
-
82
- .uni-input-placeholder,
83
- .wd-input__placeholder,
84
- .wd-input.is-compact .uni-input-placeholder {
85
- color: #fff !important;
86
- }
87
-
88
- /* InputNumber 数字输入框 */
89
- .wd-input-number {
90
- --wot-input-number-bg: #252530;
91
- --wot-input-number-inner-color: #000000;
92
- }
93
-
94
- .wd-input-number .uni-input-input,
95
- .wd-input-number__input {
96
- color: var(--wot-input-number-inner-color, #000000) !important;
97
- caret-color: var(--wot-color-primary, #2164f3) !important;
98
- background-color: transparent !important;
99
- }
100
-
101
- .wd-input-number .uni-input-placeholder,
102
- .wd-input-number__input::placeholder,
103
- .wd-input-number__placeholder {
104
- color: #fff !important;
105
- }
106
-
107
- /* Textarea 多行文本输入框 */
108
- .wd-textarea {
109
- --wot-textarea-bg: #252530;
110
- --wot-textarea-inner-color: #e8e8e8;
111
- --wot-textarea-inner-placeholder-color: #fff;
112
- }
113
-
114
- .wd-textarea__inner {
115
- color: var(--wot-textarea-inner-color, #e8e8e8) !important;
116
- caret-color: var(--wot-color-primary, #2164f3) !important;
117
- background-color: transparent !important;
118
- }
119
-
120
- .wd-textarea__inner::placeholder,
121
- .wd-textarea__placeholder {
122
- color: #fff !important;
123
- }
124
-
125
- /* Form 表单 */
126
- .wd-form {
127
- background-color: transparent;
128
- }
129
-
130
- .wd-form-item {
131
- background-color: transparent !important;
132
-
133
- .wd-cell {
134
- background-color: transparent !important;
135
- }
136
- }
137
-
138
- .wd-form-item__label,
139
- .wd-form-item__title {
140
- color: var(--wot-dark-color2, #e8e8e8) !important;
141
- }
142
-
143
- .wd-form-item__body {
144
- background-color: transparent;
145
- }
146
-
147
- /* Button 按钮 */
148
- .wd-button--primary {
149
- --wd-button-primary-bg-color: var(--wot-color-primary, #2164f3) !important;
150
- }
151
-
152
- /* Popup 弹窗 */
153
- .wd-popup {
154
- background-color: transparent !important;
155
- }
156
-
157
- .wd-popup__container {
158
- background-color: #161616 !important;
159
- }
160
-
161
- .wd-popup__body {
162
- background-color: #1b1b1e !important;
163
- }
164
-
165
- /* ActionSheet */
166
- .wd-action-sheet {
167
- background-color: #161616 !important;
168
- }
169
-
170
- .wd-action-sheet__title {
171
- color: var(--wot-dark-color, #fff) !important;
172
- }
173
-
174
- .wd-action-sheet__item {
175
- color: var(--wot-dark-color2, #e0e0e0) !important;
176
- }
177
-
178
- .wd-action-sheet__action {
179
- background-color: #1b1b1e !important;
180
- }
181
-
182
- /* Checkbox 复选框 */
183
- .wd-checkbox__label {
184
- color: var(--wot-dark-color, #fff) !important;
185
- }
186
-
187
- /* SelectPicker 选择器弹窗 */
188
- .wd-select-picker__wrapper {
189
- background-color: #1b1b1e;
190
- }
191
-
192
- .wd-select-picker__popup {
193
- background-color: #161616 !important;
194
- }
195
-
196
- .wd-select-picker__checkbox-label,
197
- .wd-select-picker__radio-label {
198
- color: var(--wot-dark-color2, #e8e8e8) !important;
199
- }
200
-
201
- .wd-select-picker__text-active {
202
- color: var(--wot-color-primary, #2164f3) !important;
203
- }
204
-
205
- .wd-select-picker__footer {
206
- background-color: #161616;
207
- }
208
-
209
- /* Calendar 日历选择器弹窗 */
210
- .wd-calendar__wrapper {
211
- background-color: #1b1b1e;
212
- }
213
-
214
- .wd-calendar__popup {
215
- background-color: #161616 !important;
216
- }
217
-
218
- .wd-calendar__header {
219
- color: var(--wot-dark-color, #fff);
220
- }
221
-
222
- /* Calendar 日历日期单元格暗黑适配(覆盖 wot-design-uni 内部变量)*/
223
- .wd-calendar__view,
224
- .wd-month-panel {
225
- --wot-calendar-view-day-color: #e8e8e8; /* 日期数字 */
226
- --wot-calendar-view-week-color: #999999; /* 星期头(日一二三四五六) */
227
- --wot-calendar-view-panel-title-color: #ccc; /* 面板标题(2026年6月) */
228
- --wot-calendar-view-control-icon-color: #aaa; /* 左右箭头图标 */
229
- --wot-calendar-view-control-color-disabled: #444; /* 禁用箭头 */
230
- --wot-calendar-view-color-disabled: #555555; /* 禁用/不可选日期 */
231
- --wot-calendar-view-time-picker-color: #e8e8e8; /* 时间选择器文字 */
232
- --wot-calendar-view-time-picker-bg: #252530; /* 时间选择器背景 */
233
- --wot-calendar-view-range-color: #e8e8e8; /* 区间模式文字色 */
234
- background-color: transparent !important;
235
- }
236
-
237
- .wd-calendar__tabs {
238
- color: var(--wot-dark-color3, #999999) !important;
239
- }
240
-
241
- .wd-calendar__shortcuts {
242
- border-bottom-color: rgba(255, 255, 255, 0.06);
243
- }
244
-
245
- .wd-calendar__view {
246
- background-color: transparent;
247
- color: var(--wot-dark-color2, #e8e8e8);
248
- }
249
-
250
- .wd-calendar__range-item.is-placeholder {
251
- color: var(--wot-dark-color3, #666666) !important;
252
- }
253
-
254
- .wd-calendar__range-separator {
255
- color: var(--wot-dark-color3, #666666) !important;
256
- }
257
-
258
- /* YearPanel 年份选择器 */
259
- .wd-year-panel {
260
- --wot-calendar-bg: #1b1b1e;
261
- --wot-picker-view-bg: #1b1b1e;
262
- background-color: #1b1b1e;
263
- }
264
-
265
- .wd-picker-view {
266
- --wot-picker-view-bg: #1b1b1e;
267
- --wot-picker-view-mask-start-color: rgba(0, 0, 0, 0.85);
268
- --wot-picker-view-mask-end-color: rgba(0, 0, 0, 0.2);
269
- --wot-picker-view-roller-bg: #2a2a30;
270
- --wot-picker-view-column-item-color: #e8e8e8;
271
- background-color: #1b1b1e;
272
- }
273
-
274
- /* picker-view 滚轮遮罩 - 暗黑模式下去掉白色渐变 */
275
- .wd-picker-view__mask {
276
- background-image:
277
- linear-gradient(180deg, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.2)),
278
- linear-gradient(0deg, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.2)) !important;
279
- }
280
-
281
- .wd-picker-view__roller {
282
- background-color: #2a2a30 !important;
283
- }
284
-
285
- .wd-picker-view__column-item {
286
- color: #e8e8e8 !important;
287
- }
288
-
289
- .wd-picker-view__column-item--active {
290
- color: var(--wot-dark-color, #fff) !important;
291
- }
292
-
293
- .wd-year-panel__text {
294
- color: var(--wot-dark-color2, #e8e8e8);
295
- }
296
-
297
- .wd-year-panel__item.is-active .wd-year-panel__text,
298
- .wd-year-panel__item.is-active {
299
- color: var(--wot-color-primary, #2164f3) !important;
300
- }
301
-
302
- /* DateTimePicker 时间选择器弹窗 */
303
- .wd-datetime-picker__wrapper {
304
- background-color: #1b1b1e;
305
- color: var(--wot-dark-color2, #e8e8e8);
306
- }
307
-
308
- .wd-datetime-picker__popup {
309
- background-color: #161616 !important;
310
- }
311
-
312
- &::after {
313
- background-color: transparent !important;
314
- }
315
-
316
- /* Toast / Notify */
317
- .wd-toast {
318
- color: #fff !important;
319
- }
320
-
321
- /* Picker */
322
- .wd-picker__title,
323
- .wd-picker__toolbar {
324
- color: var(--wot-dark-color2, #e0e0) !important;
325
- }
326
-
327
- /* Dialog */
328
- .wd-dialog {
329
- color: var(--wot-dark-color2, #e0e0e0) !important;
330
- }
331
-
332
- .wd-dialog__header {
333
- color: var(--wot-dark-color, #fff) !important;
334
- }
335
-
336
- /* Loading */
337
- .wd-loading-text {
338
- color: var(--wot-dark-color3, #a0a0a0) !important;
339
- }
340
-
341
- /* Tag 标签 */
342
- .wd-tag {
343
- color: #fff !important;
344
- }
345
-
346
- /* Collapse 折叠面板 */
347
- .wd-collapse {
348
- background-color: transparent !important;
349
- }
350
-
351
- .wd-collapse-item__title {
352
- color: var(--wot-dark-color2, #e0e0e0) !important;
353
- }
354
-
355
- /* Tabbar tab栏 */
356
- .wd-tabbar {
357
- background-color: #111111 !important;
358
- border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
359
- }
360
-
361
- /* 未选中:白色 */
362
- .wd-tabbar-item {
363
- color: #ffffff;
364
- }
365
- .wd-tabbar-item__body .is-inactive {
366
- color: #ffffff !important;
367
- }
368
-
369
- /* 选中态:蓝色(同权重,后定义覆盖前) */
370
- .wd-tabbar-item--active {
371
- color: var(--wot-color-primary, #2164f3) !important;
372
- }
373
- .wd-tabbar-item--active .wd-icon,
374
- .wd-tabbar-item--active .wd-tabbar-item__icon {
375
- color: var(--wot-color-primary, #2164f3) !important;
376
- }
377
- .wd-tabbar-item--active .wd-tabbar-item__body-title {
378
- color: var(--wot-color-primary, #2164f3) !important;
379
- }
380
-
381
- /* Navbar 导航栏 */
382
- .wd-navbar {
383
- background-color: #1b1b1e !important;
384
- }
385
-
386
- /* Cell 右侧箭头图标 */
387
- .wd-cell__arrow {
388
- color: #555555 !important;
389
- }
390
-
391
- /* Cell 左侧图标 */
392
- .wd-cell__left-icon {
393
- color: #e0e0e0 !important;
394
- }
395
-
396
- /* Card 卡片 - 菜单卡片暗黑背景 */
397
- .wd-card {
398
- background: linear-gradient(180deg, #1e1e23 0%, #19191e 100%) !important;
399
- box-shadow:
400
- 0 8rpx 32rpx rgba(0, 0, 0, 0.25),
401
- 0 2rpx 8rpx rgba(0, 0, 0, 0.15) !important;
402
- border-color: rgba(255, 255, 255, 0.06) !important;
403
- }
404
-
405
- .wd-card__title {
406
- color: #f9fafb !important;
407
- }
408
-
409
- /* Grid 网格 */
410
- .wd-grid-item__text,
411
- .wd-grid-item__content text {
412
- color: #e5e7eb !important;
413
- }
414
-
415
- /* Grid 图标区域 - 去掉白色背景 */
416
- .wd-grid-item__wrapper,
417
- .wd-grid-item__content {
418
- background-color: transparent !important;
419
- }
420
-
421
- .wd-grid-item {
422
- background-color: transparent !important;
423
- }
424
-
425
- /* 快速访问区域(section-menus) */
426
- .recent-section {
427
- background-color: #1e1e23 !important;
428
- box-shadow:
429
- 0 4px 16px rgba(0, 0, 0, 0.2),
430
- inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
431
- border: 1px solid rgba(255, 255, 255, 0.06) !important;
432
- }
433
-
434
- .recent-label {
435
- color: #d1d5db !important;
436
- }
437
-
438
- /* 非TabBar区域内的普通图标(排除tabbar避免干扰选中态) */
439
- .wd-cell .wd-icon,
440
- .wd-navbar .wd-icon,
441
- .wd-button .wd-icon {
442
- color: #e0e0e0 !important;
443
-
444
- svg,
445
- path {
446
- fill: currentColor !important;
447
- color: currentColor !important;
448
- }
449
- }
450
-
451
- /* Search 搜索栏 */
452
- .wd-search,
453
- .wd-search.is-light,
454
- .wd-search.is-plain {
455
- background: transparent !important;
456
- --wot-search-input-bg: #252530 !important;
457
- --wot-search-cover-bg: #252530 !important;
458
- --wot-search-placeholder-color: #666666 !important;
459
- --wot-search-cancel-color: var(--wot-color-primary, #2164f3) !important;
460
- --wot-search-icon-color: #888888 !important;
461
-
462
- .wd-search__block {
463
- background-color: #252530 !important;
464
- }
465
-
466
- .wd-search__cover {
467
- background-color: #252530 !important;
468
- }
469
- }
470
-
471
- /* Rate 评分星级 - 暗黑模式下恢复星星选中效果 */
472
- .wd-rate {
473
- --wot-rate-color: #555555;
474
- --wot-rate-active-color: #f5a623;
475
- }
476
-
477
- /* 恢复 wd-rate 星级颜色:放弃 background-clip:text(小程序不支持),改用原生 color 控制 SVG fill */
478
- .wd-rate .wd-rate__item-star {
479
- background: none !important;
480
- -webkit-background-clip: initial !important;
481
- background-clip: initial !important;
482
- color: var(--wot-rate-color, #555555) !important;
483
-
484
- svg,
485
- path {
486
- fill: currentColor !important;
487
- }
488
-
489
- &.wd-rate__item-star--active {
490
- color: var(--wot-rate-active-color, #f5a623) !important;
491
-
492
- svg,
493
- path {
494
- fill: currentColor !important;
495
- }
496
- }
497
- }
498
- }
1
+ /**
2
+ * 暗黑模式全局样式覆盖
3
+ * 用于强制覆盖 wot-design-uni 组件内部样式(:deep() 无法穿透的场景)
4
+ *
5
+ * 注意:此文件不能使用 scoped,否则无法穿透第三方组件
6
+ *
7
+ * @package wui-components-v2
8
+ *
9
+ * 使用方式:在项目 main.ts 中 import 此文件
10
+ * import 'wui-components-v2/styles/dark-mode'
11
+ */
12
+
13
+ /* ====== CSS 变量定义(修正命名不匹配问题)====== */
14
+ /* wot-design-uni 的 kebabCase 转换会把 darkBackground2 → --wot-dark-background-2 */
15
+ /* 但项目中模板引用的是 --wot-dark-background2,需手动补齐 */
16
+ :root,
17
+ .wot-theme-dark {
18
+ --wot-dark-background: #1b1b1e;
19
+ --wot-dark-background2: #161616;
20
+ --wot-dark-background3: #1e1e1e;
21
+ --wot-dark-background4: #262626;
22
+ --wot-dark-background5: #333333;
23
+ --wot-dark-color: #ffffff;
24
+ --wot-dark-color2: #e8e8e8;
25
+ --wot-dark-color3: #999999;
26
+ }
27
+
28
+ /* ====== 暗黑模式下 wot-design-uni 组件内部文字颜色覆盖 ====== */
29
+ .wot-theme-dark {
30
+ /* Cell 组件 */
31
+ .wd-cell__title {
32
+ color: #e8e8e8 !important;
33
+ }
34
+
35
+ .wd-cell__right {
36
+ color: #666666 !important;
37
+ }
38
+
39
+ .wd-cell__icon {
40
+ color: #666666 !important;
41
+ }
42
+
43
+ /* CellGroup */
44
+ .wd-cell-group {
45
+ background-color: #111111 !important;
46
+ }
47
+
48
+ .wd-cell {
49
+ background-color: #161616 !important;
50
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
51
+
52
+ &:active {
53
+ background-color: #1b1b1e !important;
54
+ }
55
+ }
56
+
57
+ /* Switch 开关 */
58
+ .wd-switch__node {
59
+ background-color: #3d3d3d !important;
60
+ }
61
+
62
+ .wd-switch__node--checked {
63
+ background-color: var(--wot-color-primary, #2164f3) !important;
64
+ }
65
+
66
+ /* Input 输入框 */
67
+ .wd-input {
68
+ --wot-input-bg: #252530;
69
+ --wot-input-inner-color: #e8e8e8;
70
+ --wot-input-inner-placeholder-color: #fff;
71
+ }
72
+
73
+ /* 原生 input 元素 - 必须用 uni- 前缀类名才能在小程序中命中 */
74
+ .uni-input-input,
75
+ .wd-input__input,
76
+ .wd-input.is-compact .uni-input-input {
77
+ color: var(--wot-input-inner-color, #e8e8e8) !important;
78
+ caret-color: var(--wot-color-primary, #2164f3) !important;
79
+ background-color: transparent !important;
80
+ }
81
+
82
+ .uni-input-placeholder,
83
+ .wd-input__placeholder,
84
+ .wd-input.is-compact .uni-input-placeholder {
85
+ color: #fff !important;
86
+ }
87
+
88
+ /* InputNumber 数字输入框 */
89
+ .wd-input-number {
90
+ --wot-input-number-bg: #252530;
91
+ --wot-input-number-inner-color: #000000;
92
+ }
93
+
94
+ .wd-input-number .uni-input-input,
95
+ .wd-input-number__input {
96
+ color: var(--wot-input-number-inner-color, #000000) !important;
97
+ caret-color: var(--wot-color-primary, #2164f3) !important;
98
+ background-color: transparent !important;
99
+ }
100
+
101
+ .wd-input-number .uni-input-placeholder,
102
+ .wd-input-number__input::placeholder,
103
+ .wd-input-number__placeholder {
104
+ color: #fff !important;
105
+ }
106
+
107
+ /* Textarea 多行文本输入框 */
108
+ .wd-textarea {
109
+ --wot-textarea-bg: #252530;
110
+ --wot-textarea-inner-color: #e8e8e8;
111
+ --wot-textarea-inner-placeholder-color: #fff;
112
+ }
113
+
114
+ .wd-textarea__inner {
115
+ color: var(--wot-textarea-inner-color, #e8e8e8) !important;
116
+ caret-color: var(--wot-color-primary, #2164f3) !important;
117
+ background-color: transparent !important;
118
+ }
119
+
120
+ .wd-textarea__inner::placeholder,
121
+ .wd-textarea__placeholder {
122
+ color: #fff !important;
123
+ }
124
+
125
+ /* Form 表单 */
126
+ .wd-form {
127
+ background-color: transparent;
128
+ }
129
+
130
+ .wd-form-item {
131
+ background-color: transparent !important;
132
+
133
+ .wd-cell {
134
+ background-color: transparent !important;
135
+ }
136
+ }
137
+
138
+ .wd-form-item__label,
139
+ .wd-form-item__title {
140
+ color: var(--wot-dark-color2, #e8e8e8) !important;
141
+ }
142
+
143
+ .wd-form-item__body {
144
+ background-color: transparent;
145
+ }
146
+
147
+ /* Button 按钮 */
148
+ .wd-button--primary {
149
+ --wd-button-primary-bg-color: var(--wot-color-primary, #2164f3) !important;
150
+ }
151
+
152
+ /* Popup 弹窗 */
153
+ .wd-popup {
154
+ background-color: transparent !important;
155
+ }
156
+
157
+ .wd-popup__container {
158
+ background-color: #161616 !important;
159
+ }
160
+
161
+ .wd-popup__body {
162
+ background-color: #1b1b1e !important;
163
+ }
164
+
165
+ /* ActionSheet */
166
+ .wd-action-sheet {
167
+ background-color: #161616 !important;
168
+ }
169
+
170
+ .wd-action-sheet__title {
171
+ color: var(--wot-dark-color, #fff) !important;
172
+ }
173
+
174
+ .wd-action-sheet__item {
175
+ color: var(--wot-dark-color2, #e0e0e0) !important;
176
+ }
177
+
178
+ .wd-action-sheet__action {
179
+ background-color: #1b1b1e !important;
180
+ }
181
+
182
+ /* Checkbox 复选框 */
183
+ .wd-checkbox__label {
184
+ color: var(--wot-dark-color, #fff) !important;
185
+ }
186
+
187
+ /* SelectPicker 选择器弹窗 */
188
+ .wd-select-picker__wrapper {
189
+ background-color: #1b1b1e;
190
+ }
191
+
192
+ .wd-select-picker__popup {
193
+ background-color: #161616 !important;
194
+ }
195
+
196
+ .wd-select-picker__checkbox-label,
197
+ .wd-select-picker__radio-label {
198
+ color: var(--wot-dark-color2, #e8e8e8) !important;
199
+ }
200
+
201
+ .wd-select-picker__text-active {
202
+ color: var(--wot-color-primary, #2164f3) !important;
203
+ }
204
+
205
+ .wd-select-picker__footer {
206
+ background-color: #161616;
207
+ }
208
+
209
+ /* Calendar 日历选择器弹窗 */
210
+ .wd-calendar__wrapper {
211
+ background-color: #1b1b1e;
212
+ }
213
+
214
+ .wd-calendar__popup {
215
+ background-color: #161616 !important;
216
+ }
217
+
218
+ .wd-calendar__header {
219
+ color: var(--wot-dark-color, #fff);
220
+ }
221
+
222
+ /* Calendar 日历日期单元格暗黑适配(覆盖 wot-design-uni 内部变量)*/
223
+ .wd-calendar__view,
224
+ .wd-month-panel {
225
+ --wot-calendar-view-day-color: #e8e8e8; /* 日期数字 */
226
+ --wot-calendar-view-week-color: #999999; /* 星期头(日一二三四五六) */
227
+ --wot-calendar-view-panel-title-color: #ccc; /* 面板标题(2026年6月) */
228
+ --wot-calendar-view-control-icon-color: #aaa; /* 左右箭头图标 */
229
+ --wot-calendar-view-control-color-disabled: #444; /* 禁用箭头 */
230
+ --wot-calendar-view-color-disabled: #555555; /* 禁用/不可选日期 */
231
+ --wot-calendar-view-time-picker-color: #e8e8e8; /* 时间选择器文字 */
232
+ --wot-calendar-view-time-picker-bg: #252530; /* 时间选择器背景 */
233
+ --wot-calendar-view-range-color: #e8e8e8; /* 区间模式文字色 */
234
+ background-color: transparent !important;
235
+ }
236
+
237
+ .wd-calendar__tabs {
238
+ color: var(--wot-dark-color3, #999999) !important;
239
+ }
240
+
241
+ .wd-calendar__shortcuts {
242
+ border-bottom-color: rgba(255, 255, 255, 0.06);
243
+ }
244
+
245
+ .wd-calendar__view {
246
+ background-color: transparent;
247
+ color: var(--wot-dark-color2, #e8e8e8);
248
+ }
249
+
250
+ .wd-calendar__range-item.is-placeholder {
251
+ color: var(--wot-dark-color3, #666666) !important;
252
+ }
253
+
254
+ .wd-calendar__range-separator {
255
+ color: var(--wot-dark-color3, #666666) !important;
256
+ }
257
+
258
+ /* YearPanel 年份选择器 */
259
+ .wd-year-panel {
260
+ --wot-calendar-bg: #1b1b1e;
261
+ --wot-picker-view-bg: #1b1b1e;
262
+ background-color: #1b1b1e;
263
+ }
264
+
265
+ .wd-picker-view {
266
+ --wot-picker-view-bg: #1b1b1e;
267
+ --wot-picker-view-mask-start-color: rgba(0, 0, 0, 0.85);
268
+ --wot-picker-view-mask-end-color: rgba(0, 0, 0, 0.2);
269
+ --wot-picker-view-roller-bg: #2a2a30;
270
+ --wot-picker-view-column-item-color: #e8e8e8;
271
+ background-color: #1b1b1e;
272
+ }
273
+
274
+ /* picker-view 滚轮遮罩 - 暗黑模式下去掉白色渐变 */
275
+ .wd-picker-view__mask {
276
+ background-image:
277
+ linear-gradient(180deg, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.2)),
278
+ linear-gradient(0deg, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.2)) !important;
279
+ }
280
+
281
+ .wd-picker-view__roller {
282
+ background-color: #2a2a30 !important;
283
+ }
284
+
285
+ .wd-picker-view__column-item {
286
+ color: #e8e8e8 !important;
287
+ }
288
+
289
+ .wd-picker-view__column-item--active {
290
+ color: var(--wot-dark-color, #fff) !important;
291
+ }
292
+
293
+ .wd-year-panel__text {
294
+ color: var(--wot-dark-color2, #e8e8e8);
295
+ }
296
+
297
+ .wd-year-panel__item.is-active .wd-year-panel__text,
298
+ .wd-year-panel__item.is-active {
299
+ color: var(--wot-color-primary, #2164f3) !important;
300
+ }
301
+
302
+ /* DateTimePicker 时间选择器弹窗 */
303
+ .wd-datetime-picker__wrapper {
304
+ background-color: #1b1b1e;
305
+ color: var(--wot-dark-color2, #e8e8e8);
306
+ }
307
+
308
+ .wd-datetime-picker__popup {
309
+ background-color: #161616 !important;
310
+ }
311
+
312
+ &::after {
313
+ background-color: transparent !important;
314
+ }
315
+
316
+ /* Toast / Notify */
317
+ .wd-toast {
318
+ color: #fff !important;
319
+ }
320
+
321
+ /* Picker */
322
+ .wd-picker__title,
323
+ .wd-picker__toolbar {
324
+ color: var(--wot-dark-color2, #e0e0) !important;
325
+ }
326
+
327
+ /* Dialog */
328
+ .wd-dialog {
329
+ color: var(--wot-dark-color2, #e0e0e0) !important;
330
+ }
331
+
332
+ .wd-dialog__header {
333
+ color: var(--wot-dark-color, #fff) !important;
334
+ }
335
+
336
+ /* Loading */
337
+ .wd-loading-text {
338
+ color: var(--wot-dark-color3, #a0a0a0) !important;
339
+ }
340
+
341
+ /* Tag 标签 */
342
+ .wd-tag {
343
+ color: #fff !important;
344
+ }
345
+
346
+ /* Collapse 折叠面板 */
347
+ .wd-collapse {
348
+ background-color: transparent !important;
349
+ }
350
+
351
+ .wd-collapse-item__title {
352
+ color: var(--wot-dark-color2, #e0e0e0) !important;
353
+ }
354
+
355
+ /* Tabbar tab栏 */
356
+ .wd-tabbar {
357
+ background-color: #111111 !important;
358
+ border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
359
+ }
360
+
361
+ /* 未选中:白色 */
362
+ .wd-tabbar-item {
363
+ color: #ffffff;
364
+ }
365
+ .wd-tabbar-item__body .is-inactive {
366
+ color: #ffffff !important;
367
+ }
368
+
369
+ /* 选中态:蓝色(同权重,后定义覆盖前) */
370
+ .wd-tabbar-item--active {
371
+ color: var(--wot-color-primary, #2164f3) !important;
372
+ }
373
+ .wd-tabbar-item--active .wd-icon,
374
+ .wd-tabbar-item--active .wd-tabbar-item__icon {
375
+ color: var(--wot-color-primary, #2164f3) !important;
376
+ }
377
+ .wd-tabbar-item--active .wd-tabbar-item__body-title {
378
+ color: var(--wot-color-primary, #2164f3) !important;
379
+ }
380
+
381
+ /* Navbar 导航栏 */
382
+ .wd-navbar {
383
+ background-color: #1b1b1e !important;
384
+ }
385
+
386
+ /* Cell 右侧箭头图标 */
387
+ .wd-cell__arrow {
388
+ color: #555555 !important;
389
+ }
390
+
391
+ /* Cell 左侧图标 */
392
+ .wd-cell__left-icon {
393
+ color: #e0e0e0 !important;
394
+ }
395
+
396
+ /* Card 卡片 - 菜单卡片暗黑背景 */
397
+ .wd-card {
398
+ background: linear-gradient(180deg, #1e1e23 0%, #19191e 100%) !important;
399
+ box-shadow:
400
+ 0 8rpx 32rpx rgba(0, 0, 0, 0.25),
401
+ 0 2rpx 8rpx rgba(0, 0, 0, 0.15) !important;
402
+ border-color: rgba(255, 255, 255, 0.06) !important;
403
+ }
404
+
405
+ .wd-card__title {
406
+ color: #f9fafb !important;
407
+ }
408
+
409
+ /* Grid 网格 */
410
+ .wd-grid-item__text,
411
+ .wd-grid-item__content text {
412
+ color: #e5e7eb !important;
413
+ }
414
+
415
+ /* Grid 图标区域 - 去掉白色背景 */
416
+ .wd-grid-item__wrapper,
417
+ .wd-grid-item__content {
418
+ background-color: transparent !important;
419
+ }
420
+
421
+ .wd-grid-item {
422
+ background-color: transparent !important;
423
+ }
424
+
425
+ /* 快速访问区域(section-menus) */
426
+ .recent-section {
427
+ background-color: #1e1e23 !important;
428
+ box-shadow:
429
+ 0 4px 16px rgba(0, 0, 0, 0.2),
430
+ inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
431
+ border: 1px solid rgba(255, 255, 255, 0.06) !important;
432
+ }
433
+
434
+ .recent-label {
435
+ color: #d1d5db !important;
436
+ }
437
+
438
+ /* 非TabBar区域内的普通图标(排除tabbar避免干扰选中态) */
439
+ .wd-cell .wd-icon,
440
+ .wd-navbar .wd-icon,
441
+ .wd-button .wd-icon {
442
+ color: #e0e0e0 !important;
443
+
444
+ svg,
445
+ path {
446
+ fill: currentColor !important;
447
+ color: currentColor !important;
448
+ }
449
+ }
450
+
451
+ /* Search 搜索栏 */
452
+ .wd-search,
453
+ .wd-search.is-light,
454
+ .wd-search.is-plain {
455
+ background: transparent !important;
456
+ --wot-search-input-bg: #252530 !important;
457
+ --wot-search-cover-bg: #252530 !important;
458
+ --wot-search-placeholder-color: #666666 !important;
459
+ --wot-search-cancel-color: var(--wot-color-primary, #2164f3) !important;
460
+ --wot-search-icon-color: #888888 !important;
461
+
462
+ .wd-search__block {
463
+ background-color: #252530 !important;
464
+ }
465
+
466
+ .wd-search__cover {
467
+ background-color: #252530 !important;
468
+ }
469
+ }
470
+
471
+ /* Rate 评分星级 - 暗黑模式下恢复星星选中效果 */
472
+ .wd-rate {
473
+ --wot-rate-color: #555555;
474
+ --wot-rate-active-color: #f5a623;
475
+ }
476
+
477
+ /* 恢复 wd-rate 星级颜色:放弃 background-clip:text(小程序不支持),改用原生 color 控制 SVG fill */
478
+ .wd-rate .wd-rate__item-star {
479
+ background: none !important;
480
+ -webkit-background-clip: initial !important;
481
+ background-clip: initial !important;
482
+ color: var(--wot-rate-color, #555555) !important;
483
+
484
+ svg,
485
+ path {
486
+ fill: currentColor !important;
487
+ }
488
+
489
+ &.wd-rate__item-star--active {
490
+ color: var(--wot-rate-active-color, #f5a623) !important;
491
+
492
+ svg,
493
+ path {
494
+ fill: currentColor !important;
495
+ }
496
+ }
497
+ }
498
+ }