@wujies/components 0.0.0-stage → 5.6.3

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.
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 宿主可共享的 UI 组件名。
3
+ *
4
+ * 唯一事实源:`@wujies/ui-plugin-bundler-kit` 用它注册构建期解析器,
5
+ * 宿主 `scripts/gen-runtime-shims.mjs` 用同一份清单生成运行时垫片。
6
+ * 新增组件时改这里 + 宿主 `runtime.ts` 的 SHARED_COMPONENTS。
7
+ */
8
+ export declare const WUJIES_COMPONENT_NAMES: readonly ["ImagePreview", "ImageUpload", "KCard", "KDictTag", "KPlainButton", "KSearchBar", "KSelectedAlert", "KTable", "KTableHeader", "ModuleBusinessSettings", "ModuleWebsiteSettings", "SettingTabs", "UserDetail"];
9
+ export type WujiesComponentName = (typeof WUJIES_COMPONENT_NAMES)[number];
package/dist/names.js ADDED
@@ -0,0 +1,19 @@
1
+ const WUJIES_COMPONENT_NAMES = [
2
+ "ImagePreview",
3
+ "ImageUpload",
4
+ "KCard",
5
+ "KDictTag",
6
+ "KPlainButton",
7
+ "KSearchBar",
8
+ "KSelectedAlert",
9
+ "KTable",
10
+ "KTableHeader",
11
+ "ModuleBusinessSettings",
12
+ "ModuleWebsiteSettings",
13
+ "SettingTabs",
14
+ "UserDetail"
15
+ ];
16
+ export {
17
+ WUJIES_COMPONENT_NAMES
18
+ };
19
+ //# sourceMappingURL=names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.js","sources":["../src/names.ts"],"sourcesContent":["/**\n * 宿主可共享的 UI 组件名。\n *\n * 唯一事实源:`@wujies/ui-plugin-bundler-kit` 用它注册构建期解析器,\n * 宿主 `scripts/gen-runtime-shims.mjs` 用同一份清单生成运行时垫片。\n * 新增组件时改这里 + 宿主 `runtime.ts` 的 SHARED_COMPONENTS。\n */\nexport const WUJIES_COMPONENT_NAMES = [\n 'ImagePreview',\n 'ImageUpload',\n 'KCard',\n 'KDictTag',\n 'KPlainButton',\n 'KSearchBar',\n 'KSelectedAlert',\n 'KTable',\n 'KTableHeader',\n 'ModuleBusinessSettings',\n 'ModuleWebsiteSettings',\n 'SettingTabs',\n 'UserDetail'\n] as const;\n\nexport type WujiesComponentName = (typeof WUJIES_COMPONENT_NAMES)[number];\n"],"names":[],"mappings":"AAOO,MAAM,yBAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}
package/dist/style.css ADDED
@@ -0,0 +1,614 @@
1
+ @charset "UTF-8";.el-image[data-v-ed5d331b] {
2
+ border-radius: 5px;
3
+ background-color: #ebeef5;
4
+ box-shadow: 0 0 5px 1px #ccc;
5
+ }
6
+ .el-image[data-v-ed5d331b] .el-image__inner {
7
+ transition: all 0.3s;
8
+ cursor: pointer;
9
+ }
10
+ .el-image[data-v-ed5d331b] .el-image__inner:hover {
11
+ transform: scale(1.2);
12
+ }
13
+ .el-image[data-v-ed5d331b] .image-slot {
14
+ display: flex;
15
+ justify-content: center;
16
+ align-items: center;
17
+ width: 100%;
18
+ height: 100%;
19
+ color: #909399;
20
+ font-size: 30px;
21
+ }
22
+ /**
23
+ * naive-ui Upload(list-type = image-card)皮肤
24
+ * ------------------------------------------------------------------
25
+ * 数值取自 naive-ui 源码:
26
+ * src/upload/src/styles/index.cssr.ts → &--image-card / --image-card-type / __action / __progress
27
+ * src/upload/styles/light.ts → itemBorderImageCard = 1px solid borderColor
28
+ * src/_styles/common/light.ts → borderColor #e0e0e6 / actionColor #fafafc / borderRadius 3px
29
+ */
30
+ .component-upload-image[data-v-ab47c3bc] {
31
+ /* ---------------- 触发区(加号卡片) ---------------- */
32
+ /* n-upload-trigger--image-card .n-base-icon { font-size: 24px } */
33
+ /* ---------------- 已上传卡片 ---------------- */
34
+ /* 干掉 Element Plus 自带的“成功对勾角标”,naive 没有这个元素 */
35
+ /* 干掉 Element Plus 自带的悬停遮罩层,改用 naive 的做法(缩略图降透明 + 操作居中) */
36
+ }
37
+ .component-upload-image[data-v-ab47c3bc] .el-upload--picture-card {
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ width: 96px;
42
+ height: 96px;
43
+ line-height: 1;
44
+ border: 1px dashed #e0e0e6;
45
+ border-radius: 3px;
46
+ background-color: #fafafc;
47
+ transition: border-color 0.3s, background-color 0.3s;
48
+ }
49
+ .component-upload-image[data-v-ab47c3bc] .el-upload--picture-card:hover {
50
+ border-color: var(--el-color-primary);
51
+ }
52
+ .component-upload-image .naive-image-card__plus[data-v-ab47c3bc] {
53
+ font-size: 24px;
54
+ color: #c2c2c2;
55
+ }
56
+ .component-upload-image[data-v-ab47c3bc] .el-upload-list--picture-card .el-upload-list__item {
57
+ width: 96px;
58
+ height: 96px;
59
+ padding: 0;
60
+ border: 1px solid #e0e0e6;
61
+ border-radius: 3px;
62
+ overflow: hidden;
63
+ background-color: transparent;
64
+ }
65
+ .component-upload-image[data-v-ab47c3bc] .el-upload-list--picture-card .el-upload-list__item-status-label {
66
+ display: none;
67
+ }
68
+ .component-upload-image[data-v-ab47c3bc] .el-upload-list--picture-card .el-upload-list__item-actions {
69
+ display: none;
70
+ }
71
+ .component-upload-image[data-v-ab47c3bc] .el-upload-list--picture-card .el-upload-list__item-thumbnail {
72
+ display: none;
73
+ }
74
+ .naive-image-card[data-v-ab47c3bc] {
75
+ position: relative;
76
+ width: 100%;
77
+ height: 100%;
78
+ /* n-upload-file--image-card-type .n-progress { left/right/bottom: 8px } */
79
+ /* n-upload-file-info__action--image-card-type:铺满并居中 */
80
+ /* 悬停:缩略图降到 .12,操作浮现(与 naive 的 ::before + thumbnail opacity .12 等价) */
81
+ }
82
+ .naive-image-card__img[data-v-ab47c3bc] {
83
+ width: 100%;
84
+ height: 100%;
85
+ object-fit: cover;
86
+ opacity: 1;
87
+ transition: opacity 0.2s;
88
+ }
89
+ .naive-image-card__progress[data-v-ab47c3bc] {
90
+ position: absolute;
91
+ left: 8px;
92
+ right: 8px;
93
+ bottom: 8px;
94
+ height: 2px;
95
+ border-radius: 1px;
96
+ background-color: rgba(0, 0, 0, 0.12);
97
+ overflow: hidden;
98
+ }
99
+ .naive-image-card__bar[data-v-ab47c3bc] {
100
+ height: 100%;
101
+ background-color: var(--el-color-primary);
102
+ transition: width 0.2s;
103
+ }
104
+ .naive-image-card__action[data-v-ab47c3bc] {
105
+ position: absolute;
106
+ inset: 0;
107
+ z-index: 2;
108
+ display: flex;
109
+ align-items: center;
110
+ justify-content: center;
111
+ gap: 4px;
112
+ opacity: 0;
113
+ transition: opacity 0.2s;
114
+ }
115
+ .naive-image-card__action[data-v-ab47c3bc] .el-button {
116
+ font-size: 18px;
117
+ color: #333639;
118
+ }
119
+ .naive-image-card__action[data-v-ab47c3bc] .el-button:hover {
120
+ color: var(--el-color-primary);
121
+ }
122
+ .naive-image-card:hover .naive-image-card__img[data-v-ab47c3bc] {
123
+ opacity: 0.12;
124
+ }
125
+ .naive-image-card:hover .naive-image-card__action[data-v-ab47c3bc] {
126
+ opacity: 1;
127
+ }
128
+
129
+ /* ---------------- 提示 ---------------- */
130
+ .naive-upload-tip[data-v-ab47c3bc] {
131
+ display: flex;
132
+ align-items: center;
133
+ gap: 4px;
134
+ margin-top: 8px;
135
+ font-size: 14px;
136
+ line-height: 1.6;
137
+ color: #767c82;
138
+ }
139
+ .naive-upload-tip__icon[data-v-ab47c3bc] {
140
+ font-size: 15px;
141
+ color: #c2c2c2;
142
+ cursor: help;
143
+ }
144
+ .naive-upload-tip__icon[data-v-ab47c3bc]:hover {
145
+ color: var(--el-color-primary);
146
+ }
147
+ [data-v-ab47c3bc] .hide .el-upload--picture-card {
148
+ display: none;
149
+ }.k-card[data-v-cbf723b1] {
150
+ border-radius: 8px;
151
+ background: var(--ele-card-bg);
152
+ }
153
+ .k-card[data-v-cbf723b1] .el-card__header {
154
+ border-bottom: 0;
155
+ font-size: 16px;
156
+ font-weight: bold;
157
+ padding: 12px 16px;
158
+ }
159
+ .k-card[data-v-cbf723b1] .el-card__body {
160
+ padding: 0 16px 12px;
161
+ }
162
+ .k-card.is-always-shadow[data-v-cbf723b1] {
163
+ box-shadow: var(--ele-card-shadow);
164
+ }.dict-tag[data-v-f24d054e] {
165
+ display: inline-flex;
166
+ align-items: center;
167
+ gap: 8px;
168
+ }
169
+ .dict-tag--wrap[data-v-f24d054e] {
170
+ flex-wrap: wrap;
171
+ }
172
+ .dict-tag__text[data-v-f24d054e] {
173
+ color: #475569;
174
+ font-size: 13px;
175
+ line-height: 1.4;
176
+ }
177
+ .dict-tag__item[data-v-f24d054e] {
178
+ margin: 0;
179
+ font-weight: 500;
180
+ border-radius: 999px;
181
+ border-width: 1px;
182
+ }
183
+ .dict-tag__item--light[data-v-f24d054e] {
184
+ box-shadow: none;
185
+ }
186
+ .dict-tag__item[data-v-f24d054e] .el-tag__content {
187
+ line-height: 1;
188
+ }
189
+ .dict-tag__item.el-tag--primary[data-v-f24d054e] {
190
+ color: #2563eb;
191
+ border-color: #bfdbfe;
192
+ background: #eff6ff;
193
+ }
194
+ .dict-tag__item.el-tag--success[data-v-f24d054e] {
195
+ color: #15803d;
196
+ border-color: #bbf7d0;
197
+ background: #f0fdf4;
198
+ }
199
+ .dict-tag__item.el-tag--info[data-v-f24d054e] {
200
+ color: #475569;
201
+ border-color: #cbd5e1;
202
+ background: #f8fafc;
203
+ }
204
+ .dict-tag__item.el-tag--warning[data-v-f24d054e] {
205
+ color: #b45309;
206
+ border-color: #fde68a;
207
+ background: #fffbeb;
208
+ }
209
+ .dict-tag__item.el-tag--danger[data-v-f24d054e] {
210
+ color: #dc2626;
211
+ border-color: #fecaca;
212
+ background: #fef2f2;
213
+ }
214
+ .dict-tag__item--dark.el-tag--primary[data-v-f24d054e] {
215
+ background: #2563eb;
216
+ border-color: #2563eb;
217
+ color: #fff;
218
+ }
219
+ .dict-tag__item--dark.el-tag--success[data-v-f24d054e] {
220
+ background: #16a34a;
221
+ border-color: #16a34a;
222
+ color: #fff;
223
+ }
224
+ .dict-tag__item--dark.el-tag--info[data-v-f24d054e] {
225
+ background: #64748b;
226
+ border-color: #64748b;
227
+ color: #fff;
228
+ }
229
+ .dict-tag__item--dark.el-tag--warning[data-v-f24d054e] {
230
+ background: #d97706;
231
+ border-color: #d97706;
232
+ color: #fff;
233
+ }
234
+ .dict-tag__item--dark.el-tag--danger[data-v-f24d054e] {
235
+ background: #dc2626;
236
+ border-color: #dc2626;
237
+ color: #fff;
238
+ }
239
+ .dict-tag__item--plain.el-tag--primary[data-v-f24d054e],
240
+ .dict-tag__item--plain.el-tag--success[data-v-f24d054e],
241
+ .dict-tag__item--plain.el-tag--info[data-v-f24d054e],
242
+ .dict-tag__item--plain.el-tag--warning[data-v-f24d054e],
243
+ .dict-tag__item--plain.el-tag--danger[data-v-f24d054e] {
244
+ background: #fff;
245
+ }
246
+ .dict-tag__item--fallback[data-v-f24d054e] {
247
+ background: #f8fafc;
248
+ }.k-search-bar[data-v-995c528d] .el-collapse {
249
+ border-radius: 8px;
250
+ overflow: hidden;
251
+ border: 1px solid var(--el-collapse-border-color);
252
+ }
253
+ .k-search-bar[data-v-995c528d] .el-collapse-item__wrap {
254
+ border-bottom: none;
255
+ }
256
+ .k-search-bar[data-v-995c528d] .el-collapse-item__header {
257
+ height: 48px;
258
+ padding: 0 16px;
259
+ border-bottom: none;
260
+ font-weight: 600;
261
+ }
262
+ .k-search-bar[data-v-995c528d] .el-collapse-item__content {
263
+ padding: 0 16px 16px;
264
+ }
265
+ .k-search-bar[data-v-995c528d] .el-form-item {
266
+ margin-bottom: 16px;
267
+ }
268
+ .k-search-bar__title[data-v-995c528d] {
269
+ display: flex;
270
+ align-items: center;
271
+ color: var(--el-text-color-primary);
272
+ }
273
+ .k-search-bar__actions-col[data-v-995c528d] {
274
+ margin-left: auto;
275
+ }
276
+ .k-search-bar__actions[data-v-995c528d] {
277
+ display: flex;
278
+ justify-content: flex-end;
279
+ align-items: center;
280
+ flex-wrap: wrap;
281
+ gap: 8px;
282
+ min-height: 100%;
283
+ }
284
+ @media (width <= 768px) {
285
+ .k-search-bar__actions[data-v-995c528d] {
286
+ justify-content: flex-start;
287
+ }
288
+ }.k-selected-alert[data-v-cf66b3b3] {
289
+ margin: 0 0 10px;
290
+ }
291
+ [data-v-cf66b3b3] .el-alert__title {
292
+ display: flex;
293
+ align-items: center;
294
+ gap: 10px;
295
+ }
296
+ .title[data-v-cf66b3b3] {
297
+ color: #2c3e50;
298
+ }.k-table[data-v-05ba2501] {
299
+ display: flex;
300
+ flex-direction: column;
301
+ gap: 12px;
302
+ }
303
+ .k-table__pagination[data-v-05ba2501] {
304
+ display: flex;
305
+ }
306
+ .k-table__pagination.left[data-v-05ba2501] {
307
+ justify-content: flex-start;
308
+ }
309
+ .k-table__pagination.center[data-v-05ba2501] {
310
+ justify-content: center;
311
+ }
312
+ .k-table__pagination.right[data-v-05ba2501] {
313
+ justify-content: flex-end;
314
+ }.k-table-header[data-v-b92b8ec9] {
315
+ display: flex;
316
+ align-items: center;
317
+ justify-content: space-between;
318
+ gap: 12px;
319
+ }
320
+ .k-table-header__left[data-v-b92b8ec9] {
321
+ display: flex;
322
+ align-items: center;
323
+ }
324
+ .k-table-header__right[data-v-b92b8ec9] {
325
+ text-align: right;
326
+ }
327
+ .k-table-header__right[data-v-b92b8ec9] > * {
328
+ vertical-align: middle;
329
+ }
330
+ .k-table-header__right[data-v-b92b8ec9] > * + * {
331
+ margin-left: 8px;
332
+ }
333
+ .k-table-header__title[data-v-b92b8ec9] {
334
+ font-size: 15px;
335
+ font-weight: 600;
336
+ line-height: 1;
337
+ color: var(--el-text-color-primary);
338
+ }
339
+ .column-panel__select-all[data-v-b92b8ec9] {
340
+ height: 36px;
341
+ display: flex;
342
+ align-items: center;
343
+ padding: 0 12px 0 26px;
344
+ border-radius: 6px;
345
+ transition: background-color 0.2s ease;
346
+ }
347
+ .column-panel__select-all[data-v-b92b8ec9]:hover {
348
+ background: var(--el-color-primary-light-9);
349
+ }
350
+ .column-panel__divider[data-v-b92b8ec9] {
351
+ height: 1px;
352
+ margin: 4px 0;
353
+ background: var(--el-border-color-lighter);
354
+ }
355
+ .column-panel__list[data-v-b92b8ec9] {
356
+ max-height: 240px;
357
+ overflow-y: auto;
358
+ padding-right: 2px;
359
+ }
360
+ .column-item[data-v-b92b8ec9] {
361
+ height: 36px;
362
+ display: flex;
363
+ align-items: center;
364
+ justify-content: space-between;
365
+ gap: 8px;
366
+ }
367
+ .column-item__main[data-v-b92b8ec9] {
368
+ height: 100%;
369
+ min-width: 0;
370
+ flex: 1;
371
+ display: flex;
372
+ align-items: center;
373
+ padding: 0 10px;
374
+ border-radius: 6px;
375
+ transition: background-color 0.2s ease;
376
+ }
377
+ .column-item__main[data-v-b92b8ec9]:hover {
378
+ background: var(--el-color-primary-light-9);
379
+ }
380
+ .column-item__drag[data-v-b92b8ec9] {
381
+ margin-right: 8px;
382
+ color: var(--el-text-color-secondary);
383
+ cursor: move;
384
+ }
385
+ .column-item__checkbox[data-v-b92b8ec9] {
386
+ min-width: 0;
387
+ flex: 1;
388
+ }
389
+ .column-item__label[data-v-b92b8ec9] {
390
+ display: inline-block;
391
+ max-width: 180px;
392
+ overflow: hidden;
393
+ text-overflow: ellipsis;
394
+ white-space: nowrap;
395
+ }
396
+ .column-item__fixed[data-v-b92b8ec9] {
397
+ width: 28px;
398
+ height: 28px;
399
+ padding: 0;
400
+ display: inline-flex;
401
+ align-items: center;
402
+ justify-content: center;
403
+ border: 1px solid var(--el-border-color);
404
+ border-radius: 6px;
405
+ background: transparent;
406
+ color: var(--el-text-color-regular);
407
+ cursor: pointer;
408
+ transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
409
+ }
410
+ .column-item__fixed[data-v-b92b8ec9]:hover:not(:disabled) {
411
+ border-color: var(--el-color-primary-light-5);
412
+ background: var(--el-color-primary-light-9);
413
+ transform: translateY(-1px);
414
+ }
415
+ .column-item__fixed[data-v-b92b8ec9]:disabled {
416
+ cursor: not-allowed;
417
+ opacity: 0.45;
418
+ }
419
+ .column-item__fixed.is-left[data-v-b92b8ec9] {
420
+ color: var(--el-color-primary);
421
+ border-color: var(--el-color-primary-light-5);
422
+ background: var(--el-color-primary-light-9);
423
+ }
424
+ .column-item__fixed.is-right[data-v-b92b8ec9] {
425
+ color: var(--el-color-warning);
426
+ border-color: var(--el-color-warning-light-5);
427
+ background: var(--el-color-warning-light-9);
428
+ }
429
+ [data-v-b92b8ec9] .column-item--ghost {
430
+ opacity: 0.45;
431
+ background: var(--el-color-primary-light-9);
432
+ }
433
+ [data-v-b92b8ec9] .column-item--chosen .column-item__main {
434
+ background: var(--el-color-primary-light-9);
435
+ }
436
+ .column-panel__list[data-v-b92b8ec9]::-webkit-scrollbar {
437
+ width: 6px;
438
+ }
439
+ .column-panel__list[data-v-b92b8ec9]::-webkit-scrollbar-thumb {
440
+ border-radius: 999px;
441
+ background: rgba(148, 163, 184, 0.55);
442
+ }
443
+ .column-panel__list[data-v-b92b8ec9]::-webkit-scrollbar-track {
444
+ background: transparent;
445
+ }
446
+ @media (width <= 768px) {
447
+ .k-table-header[data-v-b92b8ec9] {
448
+ flex-direction: column;
449
+ align-items: stretch;
450
+ }
451
+ .k-table-header__right[data-v-b92b8ec9] {
452
+ justify-content: flex-end;
453
+ }
454
+ }.setting-form[data-v-3296eadc] {
455
+ background: var(--el-bg-color);
456
+ }
457
+ .form-content .config-form[data-v-3296eadc] {
458
+ max-width: 800px;
459
+ }
460
+ .form-content .config-form[data-v-3296eadc] .el-form-item {
461
+ margin-bottom: 24px;
462
+ }
463
+ .form-content .config-form[data-v-3296eadc] .el-form-item .el-form-item__label {
464
+ font-weight: 500;
465
+ color: var(--el-text-color-primary);
466
+ margin-bottom: 8px;
467
+ }
468
+ .form-content .config-form[data-v-3296eadc] .el-form-item .el-form-item__content .el-input.is-disabled .el-input__wrapper,
469
+ .form-content .config-form[data-v-3296eadc] .el-form-item .el-form-item__content .el-input.is-disabled .el-textarea__inner,
470
+ .form-content .config-form[data-v-3296eadc] .el-form-item .el-form-item__content .el-textarea.is-disabled .el-input__wrapper,
471
+ .form-content .config-form[data-v-3296eadc] .el-form-item .el-form-item__content .el-textarea.is-disabled .el-textarea__inner {
472
+ background-color: var(--el-fill-color-light);
473
+ cursor: not-allowed;
474
+ }
475
+ .form-content .config-form[data-v-3296eadc] .form-item-tip {
476
+ margin-top: 8px;
477
+ font-size: 13px;
478
+ color: var(--el-text-color-secondary);
479
+ line-height: 1.5;
480
+ }
481
+ .form-footer[data-v-3296eadc] {
482
+ display: flex;
483
+ gap: 12px;
484
+ padding-top: 24px;
485
+ border-top: 1px solid var(--el-border-color-lighter);
486
+ margin-top: 32px;
487
+ }.business-config-container[data-v-1df6b0cb] {
488
+ max-width: 800px;
489
+ }
490
+ .w-full[data-v-1df6b0cb] {
491
+ width: 100%;
492
+ }.website-config-container[data-v-d11a083d] {
493
+ display: flex;
494
+ gap: 24px;
495
+ align-items: flex-start;
496
+ }
497
+ @media (max-width: 1200px) {
498
+ .website-config-container[data-v-d11a083d] {
499
+ flex-direction: column;
500
+ }
501
+ }
502
+ .form-section[data-v-d11a083d] {
503
+ flex: 1;
504
+ min-width: 0;
505
+ }
506
+ .preview-section[data-v-d11a083d] {
507
+ width: 360px;
508
+ flex-shrink: 0;
509
+ position: sticky;
510
+ top: 20px;
511
+ }
512
+ @media (max-width: 1200px) {
513
+ .preview-section[data-v-d11a083d] {
514
+ width: 100%;
515
+ position: static;
516
+ }
517
+ }
518
+ .preview-title[data-v-d11a083d] {
519
+ margin-bottom: 16px;
520
+ font-size: 16px;
521
+ font-weight: 600;
522
+ }
523
+ .preview-container[data-v-d11a083d] {
524
+ padding: 16px;
525
+ border: 1px solid var(--el-border-color);
526
+ border-radius: 6px;
527
+ background: var(--el-fill-color-blank);
528
+ }
529
+ .preview-header[data-v-d11a083d] {
530
+ padding-bottom: 16px;
531
+ margin-bottom: 16px;
532
+ border-bottom: 1px solid var(--el-border-color);
533
+ }
534
+ .preview-logo[data-v-d11a083d] {
535
+ height: 40px;
536
+ object-fit: contain;
537
+ }
538
+ .preview-name[data-v-d11a083d] {
539
+ margin: 0;
540
+ font-size: 24px;
541
+ font-weight: 700;
542
+ }
543
+ .preview-desc[data-v-d11a083d] {
544
+ margin: 12px 0 0;
545
+ line-height: 1.7;
546
+ color: var(--el-text-color-regular);
547
+ }
548
+ .preview-meta[data-v-d11a083d] {
549
+ display: flex;
550
+ flex-direction: column;
551
+ gap: 6px;
552
+ margin-top: 16px;
553
+ font-size: 13px;
554
+ color: var(--el-text-color-secondary);
555
+ }.setting-tabs[data-v-97bf5366] {
556
+ display: flex;
557
+ min-height: 800px;
558
+ background: var(--el-bg-color);
559
+ border-radius: 8px;
560
+ }
561
+ .tabs-sidebar[data-v-97bf5366] {
562
+ width: 230px;
563
+ background: var(--el-fill-color-blank);
564
+ border-right: 1px solid var(--el-border-color-light);
565
+ padding: var(--spacing-md);
566
+ flex-shrink: 0;
567
+ }
568
+ .tab-item[data-v-97bf5366] {
569
+ display: flex;
570
+ align-items: center;
571
+ padding: 12px 20px;
572
+ cursor: pointer;
573
+ transition: all 0.3s;
574
+ color: var(--el-text-color-regular);
575
+ position: relative;
576
+ margin-bottom: var(--spacing-sm);
577
+ border-radius: var(--radius-md);
578
+ }
579
+ .tab-item[data-v-97bf5366]:hover {
580
+ background: var(--el-fill-color-light);
581
+ color: var(--el-color-primary);
582
+ }
583
+ .tab-item.active[data-v-97bf5366] {
584
+ background: var(--el-color-primary-light-9);
585
+ color: var(--el-color-primary);
586
+ font-weight: 500;
587
+ }
588
+ .tab-item .tab-icon[data-v-97bf5366] {
589
+ font-size: 18px;
590
+ margin-right: 12px;
591
+ }
592
+ .tab-item .tab-label[data-v-97bf5366] {
593
+ font-size: 14px;
594
+ }
595
+ .tabs-content[data-v-97bf5366] {
596
+ flex: 1;
597
+ padding: 24px;
598
+ overflow-y: auto;
599
+ }.user-detail-container[data-v-c0cb0304] {
600
+ min-height: 200px;
601
+ }
602
+ .user-detail-container .detail-content .user-avatar[data-v-c0cb0304] {
603
+ display: flex;
604
+ justify-content: center;
605
+ margin-bottom: 20px;
606
+ padding: 20px;
607
+ background: #f5f7fa;
608
+ border-radius: 4px;
609
+ }
610
+ .user-detail-container .detail-content .user-info .roles-container[data-v-c0cb0304] {
611
+ display: flex;
612
+ flex-wrap: wrap;
613
+ gap: 4px;
614
+ }
@@ -0,0 +1,38 @@
1
+ import type { Component, DefineComponent, VNode } from 'vue';
2
+ /** 兼容旧引用:任意宿主组件 */
3
+ export type WujiesComponent = DefineComponent<Record<string, any>, Record<string, any>, any>;
4
+ /** KTable 的列配置(与宿主 KTable 保持一致) */
5
+ export interface KTableColumn {
6
+ type?: string;
7
+ prop?: string;
8
+ key?: string | number;
9
+ label?: string;
10
+ visible?: boolean;
11
+ checked?: boolean;
12
+ useSlot?: boolean;
13
+ slotName?: string;
14
+ useHeaderSlot?: boolean;
15
+ headerSlotName?: string;
16
+ [key: string]: any;
17
+ }
18
+ export interface KSearchBarOption {
19
+ label: string;
20
+ value: string | number | boolean;
21
+ disabled?: boolean;
22
+ }
23
+ /** KSearchBar 的筛选项(与宿主 KSearchBar 保持一致) */
24
+ export interface KSearchBarItem {
25
+ key: string;
26
+ label?: string | (() => VNode) | Component;
27
+ type?: string;
28
+ hidden?: boolean;
29
+ span?: number;
30
+ sm?: number;
31
+ md?: number;
32
+ lg?: number;
33
+ xl?: number;
34
+ placeholder?: string;
35
+ options?: KSearchBarOption[];
36
+ props?: Record<string, any>;
37
+ render?: (() => VNode) | Component;
38
+ }