sky-ui-kit 0.1.8 → 0.1.9

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,5 @@
1
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
2
+ export type DesignLength = number | string;
3
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength];
4
+ export declare function designLength(value: DesignLength): string;
5
+ export declare function designSpacing(value: DesignSpacing): string;
@@ -437,8 +437,47 @@ SVG 图库从主入口移到可选 icons 入口,SvgIcon 不再自动注册;
437
437
  ## 2026-10-30 · HTML / Vue 双接入文档
438
438
 
439
439
  新增独立 model-workspace.css 发布出口,原生 HTML 用 CSS 和结构类,Vue 用主题组件与公共 CSS。补齐两套完整示例、主题切换、事件绑定和部署路径说明,未构建发布。
440
+
441
+ ## 2026-11-02 · 0.1.8 发布准备
442
+
443
+ - 发布当前组件源码、按需入口及模型工作区主题;HTML 使用 model-workspace.css,Vue 使用组件与 style.css。清除旧消费项目锁记录。发布状态以 npm 注册表为准。
444
+
445
+
446
+
447
+ ## 2026-11-03:可配置 VFit 尺寸(源码待发布)
448
+
449
+ 数字尺寸代表设计单位,由组件转换为 `calc(var(--cp-font-1, 1px) * n)`;CSS 字符串原样使用,不额外注册 VFit 或 transform。DesignSpacing 支持单值及2/3/4项数组,遵循CSS间距顺序。0是有效值。调用方传裸字符串 `"12"` 不是合法CSS长度,应使用 `:gap="12"`;`"12px"` 是固定CSS像素。
450
+
451
+ 所有新增参数有默认值;下表空字符串表示使用组件现有布局/样式默认值,不是0。根style可控制组件根尺寸,内部内边距通过对应props调整,无需deep覆盖。
452
+
453
+ | 组件 | 参数与默认值 |
454
+ | --- | --- |
455
+ | MapPageLayout | 新增gap=12;已有rightPanelWidth=328、leftPanelWidth=320、edge=12等参数兼容字符串并支持数字;top/bottom/toolbar/timeline偏移默认空字符串,沿用自动避让 |
456
+ | DefenseMapLayout | gap=4、padding=4、toolbarGap=12、toolbarPadding=12;topOffset默认64设计单位,兼容数字/字符串 |
457
+ | MapWorkspacePanel | headerPadding=16、bodyPadding=16、footerPadding=[12,16]、gap=16 |
458
+ | ModelWorkspacePanel | headerPadding=[12,16]、bodyPadding=16、footerPadding=[12,16]、gap=12 |
459
+ | WorkbenchPanel | width='auto'、height='auto'、padding=0、gap=0;gap只在调用方使用flex/grid时产生间距,不强改display |
460
+ | ManagementResourceLayout | gap=20、padding=[0,24,20](内容区域)、introPadding=24、filterGap=20、filterPadding=[20,24]、inputWidth=260、selectWidth=160、cascaderWidth=280、responsive=false |
461
+ | AppSelect | width='100%'、controlHeight=''(按size取主题小/中/大高度)、controlPadding=[0,10];多选内容可增高;浮层不再设100%最小宽度,使用底层fit-input-width等配置 |
462
+ | ProjectMenu | width=''、itemHeight=''、itemPadding=''、padding=''(分别保留横/纵菜单已有默认值)、gap=2 |
463
+ | MapTimeline | padding=[10,12]、gap=9、trackHeight=88、controlHeight=30;不改变播放/时次数据API |
464
+ | MapBottomProcessPanel | height=320、maxHeight='42dvh'、headerPadding=[10,16]、metaPadding=[8,16,0]、gap=12 |
465
+ | ProcessDataTable | cellPadding=[6,10]、paginationGap=12、paginationPadding=5 |
466
+
467
+ ManagementResourceLayout默认按VFit保持结构,不在700px阈值自动切换;旧调用方如需原断点布局显式传responsive=true。这是需要在升级说明中说明的行为变化。其内容区域padding与介绍区padding分开,避免改变原默认留白。
468
+
469
+ 地图布局时间轴测量改为offsetHeight,使用布局坐标而非transform后的视口像素,防止再次乘入缩放系数。UiButton/UiSelect/UiTable等基础组件继续使用底层size、width、height及主题token,无重复同义接口。旧TemplateLayout保留兼容接口,不冒充MapPageLayout别名。
470
+
471
+ 示例:
472
+ ```vue
473
+ <MapWorkspacePanel title="降水统计" :header-padding="[12, 16]" :body-padding="[8, 12]" :gap="8">
474
+ 业务内容
475
+ </MapWorkspacePanel>
476
+ <MapPageLayout :right-panel-width="320" :edge="12" :gap="8" />
477
+ ```
478
+ 预览入口:MapPageLayout布局演示,点击“查看紧凑尺寸”比较右栏宽度、边距与面板内边距。其他组件参数与默认值可在生成API查询。当前未构建、打包、发布或浏览器验证,用户预览确认后自行发版。
440
479
 
441
- ## 2026-11-02 · 0.1.8 发布准备
480
+ ## 2026-11-03 · 0.1.9 发布准备
442
481
 
443
- - 发布当前组件源码、按需入口及模型工作区主题;HTML 使用 model-workspace.css,Vue 使用组件与 style.css。清除旧消费项目锁记录。发布状态以 npm 注册表为准。
482
+ - 将当前布局、面板、尺寸适配与主题调整纳入新版,重新生成 AI 文档并检查组件包。发布结果以 npm 注册表为准。
444
483
 
package/docs/AI-GUIDE.md CHANGED
@@ -231,6 +231,39 @@ MapLayerControl 参考平台 LayerControl/LayerTreeNode,提供底图选择、
231
231
 
232
232
  flat 模式按钮此前错误使用 child 类而内部图标、文字使用 parent 类,导致 active 样式不匹配。统一按钮及内容层级类,保留现有单选、多选及事件逻辑。
233
233
 
234
+ ## 2026-11-03:可配置 VFit 尺寸(源码待发布)
235
+
236
+ 数字尺寸代表设计单位,由组件转换为 `calc(var(--cp-font-1, 1px) * n)`;CSS 字符串原样使用,不额外注册 VFit 或 transform。DesignSpacing 支持单值及2/3/4项数组,遵循CSS间距顺序。0是有效值。调用方传裸字符串 `"12"` 不是合法CSS长度,应使用 `:gap="12"`;`"12px"` 是固定CSS像素。
237
+
238
+ 所有新增参数有默认值;下表空字符串表示使用组件现有布局/样式默认值,不是0。根style可控制组件根尺寸,内部内边距通过对应props调整,无需deep覆盖。
239
+
240
+ | 组件 | 参数与默认值 |
241
+ | --- | --- |
242
+ | MapPageLayout | 新增gap=12;已有rightPanelWidth=328、leftPanelWidth=320、edge=12等参数兼容字符串并支持数字;top/bottom/toolbar/timeline偏移默认空字符串,沿用自动避让 |
243
+ | DefenseMapLayout | gap=4、padding=4、toolbarGap=12、toolbarPadding=12;topOffset默认64设计单位,兼容数字/字符串 |
244
+ | MapWorkspacePanel | headerPadding=16、bodyPadding=16、footerPadding=[12,16]、gap=16 |
245
+ | ModelWorkspacePanel | headerPadding=[12,16]、bodyPadding=16、footerPadding=[12,16]、gap=12 |
246
+ | WorkbenchPanel | width='auto'、height='auto'、padding=0、gap=0;gap只在调用方使用flex/grid时产生间距,不强改display |
247
+ | ManagementResourceLayout | gap=20、padding=[0,24,20](内容区域)、introPadding=24、filterGap=20、filterPadding=[20,24]、inputWidth=260、selectWidth=160、cascaderWidth=280、responsive=false |
248
+ | AppSelect | width='100%'、controlHeight=''(按size取主题小/中/大高度)、controlPadding=[0,10];多选内容可增高;浮层不再设100%最小宽度,使用底层fit-input-width等配置 |
249
+ | ProjectMenu | width=''、itemHeight=''、itemPadding=''、padding=''(分别保留横/纵菜单已有默认值)、gap=2 |
250
+ | MapTimeline | padding=[10,12]、gap=9、trackHeight=88、controlHeight=30;不改变播放/时次数据API |
251
+ | MapBottomProcessPanel | height=320、maxHeight='42dvh'、headerPadding=[10,16]、metaPadding=[8,16,0]、gap=12 |
252
+ | ProcessDataTable | cellPadding=[6,10]、paginationGap=12、paginationPadding=5 |
253
+
254
+ ManagementResourceLayout默认按VFit保持结构,不在700px阈值自动切换;旧调用方如需原断点布局显式传responsive=true。这是需要在升级说明中说明的行为变化。其内容区域padding与介绍区padding分开,避免改变原默认留白。
255
+
256
+ 地图布局时间轴测量改为offsetHeight,使用布局坐标而非transform后的视口像素,防止再次乘入缩放系数。UiButton/UiSelect/UiTable等基础组件继续使用底层size、width、height及主题token,无重复同义接口。旧TemplateLayout保留兼容接口,不冒充MapPageLayout别名。
257
+
258
+ 示例:
259
+ ```vue
260
+ <MapWorkspacePanel title="降水统计" :header-padding="[12, 16]" :body-padding="[8, 12]" :gap="8">
261
+ 业务内容
262
+ </MapWorkspacePanel>
263
+ <MapPageLayout :right-panel-width="320" :edge="12" :gap="8" />
264
+ ```
265
+ 预览入口:MapPageLayout布局演示,点击“查看紧凑尺寸”比较右栏宽度、边距与面板内边距。其他组件参数与默认值可在生成API查询。当前未构建、打包、发布或浏览器验证,用户预览确认后自行发版。
266
+
234
267
  <!-- GENERATED EXAMPLES -->
235
268
 
236
269
  ### 快速开始:安装最新正式版本
@@ -974,26 +1007,29 @@ const items = [{ key: 'overview', label: '运行概览' }, { key: 'data', label:
974
1007
  ```vue
975
1008
  <script setup lang="ts">
976
1009
  import { ref } from 'vue'
977
- import { MapPageLayout, DefenseMapLayout, UiButton, MapTools, WorkbenchPanel } from 'sky-ui-kit'
1010
+ import { MapPageLayout, DefenseMapLayout, UiButton, MapTools, WorkbenchPanel, MapWorkspacePanel } from 'sky-ui-kit'
978
1011
  const rightOpen = ref(true)
979
1012
  const showTimeline = ref(true)
980
1013
  const overlap = ref(false)
1014
+ const compactDimensions = ref(false)
981
1015
  </script>
982
1016
  <template>
983
1017
  <div class="layout-demo-controls">
1018
+ <UiButton @click="compactDimensions = !compactDimensions">{{ compactDimensions ? '切回默认尺寸' : '查看紧凑尺寸' }}</UiButton>
984
1019
  <UiButton @click="rightOpen = !rightOpen">{{ rightOpen ? '收起右栏' : '展开右栏' }}</UiButton>
985
1020
  <UiButton @click="showTimeline = !showTimeline">{{ showTimeline ? '隐藏时间轴' : '显示时间轴' }}</UiButton>
986
1021
  <UiButton @click="overlap = !overlap">{{ overlap ? '恢复正常避让' : '模拟模块遮挡' }}</UiButton>
987
1022
  </div>
988
1023
  <div class="layout-demo-map" >
989
- <MapPageLayout v-model:right-open="rightOpen" :timeline-right="overlap ? 'var(--map-layout-edge)' : ''">
1024
+ <MapPageLayout v-model:right-open="rightOpen" :gap="compactDimensions ? 6 : 12" :edge="compactDimensions ? 6 : 12" :right-panel-width="compactDimensions ? 280 : 328" :timeline-right="overlap ? 'var(--map-layout-edge)' : ''">
990
1025
  <template #top><span>地图标题 / 查询区域</span></template>
991
1026
  <template #toolbar><MapTools :items="[{ key: 'layers', label: '图层' }]" /><WorkbenchPanel v-if="overlap" class="layout-demo-expanded">右上展开面板<br>鼠标移入时整个工具区域置顶</WorkbenchPanel></template>
992
- <template #right><WorkbenchPanel style="height: 100%">右栏 · 放参数表单或业务列表<br>鼠标移入当前区域时置顶</WorkbenchPanel></template>
1027
+ <template #right><MapWorkspacePanel title="可配置面板" :header-padding="compactDimensions ? [8, 12] : 16" :body-padding="compactDimensions ? [8, 12] : 16" :gap="compactDimensions ? 8 : 16">数字为 VFit 设计尺寸;默认值无需重复传入。<template #footer>鼠标移入当前区域时置顶</template></MapWorkspacePanel></template>
993
1028
  <template #legend><WorkbenchPanel :class="{ 'layout-demo-overlap-legend': overlap }">图例 · 鼠标移入置顶</WorkbenchPanel></template>
994
1029
  <template v-if="showTimeline" #timeline><WorkbenchPanel class="layout-demo-timeline">时间轴 / 过程图区域 · 鼠标移入置顶</WorkbenchPanel></template>
995
1030
  </MapPageLayout>
996
1031
  </div>
1032
+ <p>尺寸参数:数字自动跟随 VFit,数组为上/右/下/左间距,CSS 字符串原样使用。例如 :body-padding="[8, 12]"、:gap="8"。</p>
997
1033
  <h3>会商布局 · 顶部操作区 + 四个地图位置</h3>
998
1034
  <p>以下仅展示区域,不创建地图。保持两列布局,尺寸沿用 VFit 缩放变量;四个地图位置均分剩余高度,不产生内部滚动条。</p>
999
1035
  <div class="layout-demo-map" >
@@ -27,6 +27,9 @@ Slots: No declared content slots.
27
27
 
28
28
  | Name | Type | Required | Default expression |
29
29
  |---|---|---|---|
30
+ | width | DesignLength | false | '100%' |
31
+ | controlHeight | DesignLength | false | '' |
32
+ | controlPadding | DesignSpacing | false | () => [0, 10] |
30
33
  | modelValue | AppSelectValue | false | undefined |
31
34
  | options | AppSelectOption[] | false | () => [] |
32
35
  | emptyLabel | string | false | '暂无可选项' |
@@ -41,6 +44,10 @@ Slots: No declared content slots.
41
44
  Slots: No declared content slots.
42
45
 
43
46
  ```ts
47
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
48
+ export type DesignLength = number | string
49
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
50
+
44
51
  export type AppSelectValue = string | number | boolean | Record<string, unknown> | AppSelectValue[] | null | undefined
45
52
  export type AppSelectOption = {
46
53
  label: string
@@ -55,6 +62,10 @@ export type AppSelectOption = {
55
62
 
56
63
  | Name | Type | Required | Default expression |
57
64
  |---|---|---|---|
65
+ | padding | DesignSpacing | false | () => [10, 12] |
66
+ | gap | DesignLength | false | 9 |
67
+ | trackHeight | DesignLength | false | 88 |
68
+ | controlHeight | DesignLength | false | 30 |
58
69
  | modelValue | number | false | 0 |
59
70
  | startTime | TimelineTimeInput | false | () => new Date() |
60
71
  | points | TimelinePoint[] | false | () => [] |
@@ -89,6 +100,10 @@ export type AppSelectOption = {
89
100
  Slots: date-select
90
101
 
91
102
  ```ts
103
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
104
+ export type DesignLength = number | string
105
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
106
+
92
107
  type IntervalUnit = 'minute' | 'hour' | 'day' | 'month' | 'year'
93
108
  type TimelineKind = 'observed' | 'forecast'
94
109
  type TimelineTimeInput = string | number | Date
@@ -178,6 +193,11 @@ export type TimeRangeQuickOption = {
178
193
 
179
194
  | Name | Type | Required | Default expression |
180
195
  |---|---|---|---|
196
+ | width | DesignLength | false | '' |
197
+ | itemHeight | DesignLength | false | '' |
198
+ | itemPadding | DesignSpacing | false | '' |
199
+ | padding | DesignSpacing | false | '' |
200
+ | gap | DesignLength | false | 2 |
181
201
  | direction | 'horizontal' &#124; 'vertical' | false | 'horizontal' |
182
202
  | active | string | false | '' |
183
203
  | items | ProjectMenuItem[] | false | () => [] |
@@ -191,6 +211,10 @@ export type TimeRangeQuickOption = {
191
211
  Slots: No declared content slots.
192
212
 
193
213
  ```ts
214
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
215
+ export type DesignLength = number | string
216
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
217
+
194
218
  export interface ProjectMenuItem { key: string; label: string; disabled?: boolean; icon?: Component; children?: ProjectMenuItem[] }
195
219
  export interface ProjectMenuGroup { label: string; items: ProjectMenuItem[] }
196
220
  ```
@@ -298,6 +322,9 @@ Slots: No declared content slots.
298
322
  | times | string[] | true | undefined / no declared default |
299
323
  | series | { name: string; data: (number &#124; null)[] }[] | true | undefined / no declared default |
300
324
  | loading | boolean | false | undefined / no declared default |
325
+ | cellPadding | DesignSpacing | false | () => [6, 10] |
326
+ | paginationGap | DesignLength | false | 12 |
327
+ | paginationPadding | DesignSpacing | false | 5 |
301
328
 
302
329
  ### Events
303
330
 
@@ -305,6 +332,13 @@ No declared events.
305
332
 
306
333
  Slots: No declared content slots.
307
334
 
335
+ ```ts
336
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
337
+ export type DesignLength = number | string
338
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
339
+
340
+ ```
341
+
308
342
  ## WorkbenchShell
309
343
 
310
344
  ### Props
@@ -332,6 +366,10 @@ Slots: header, sidebar-footer, workspace, default
332
366
  |---|---|---|---|
333
367
  | as | 'section' &#124; 'aside' &#124; 'div' | false | 'section' |
334
368
  | floating | boolean | false | true |
369
+ | width | DesignLength | false | 'auto' |
370
+ | height | DesignLength | false | 'auto' |
371
+ | padding | DesignSpacing | false | 0 |
372
+ | gap | DesignLength | false | 0 |
335
373
 
336
374
  ### Events
337
375
 
@@ -339,6 +377,13 @@ No declared events.
339
377
 
340
378
  Slots: default
341
379
 
380
+ ```ts
381
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
382
+ export type DesignLength = number | string
383
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
384
+
385
+ ```
386
+
342
387
  ## MetricCard
343
388
 
344
389
  ### Props
@@ -443,17 +488,18 @@ Slots: left, top, toolbar, right, legend, timeline, content, default
443
488
 
444
489
  | Name | Type | Required | Default expression |
445
490
  |---|---|---|---|
491
+ | gap | DesignLength | false | 12 |
446
492
  | rightOpen | boolean | false | false |
447
493
  | rightPanelEnabled | boolean | false | true |
448
- | rightPanelWidth | string | false | 'calc(var(--cp-font-1, 1px) * 328)' |
449
- | leftPanelWidth | string | false | 'calc(var(--cp-font-1, 1px) * 320)' |
450
- | edge | string | false | 'calc(var(--cp-font-1, 1px) * 12)' |
451
- | topOffset | string | false | '' |
452
- | bottomOffset | string | false | '' |
453
- | toolbarTop | string | false | '' |
454
- | timelineLeft | string | false | '' |
455
- | timelineRight | string | false | '' |
456
- | timelineBottom | string | false | '' |
494
+ | rightPanelWidth | DesignLength | false | 'calc(var(--cp-font-1, 1px) * 328)' |
495
+ | leftPanelWidth | DesignLength | false | 'calc(var(--cp-font-1, 1px) * 320)' |
496
+ | edge | DesignLength | false | 'calc(var(--cp-font-1, 1px) * 12)' |
497
+ | topOffset | DesignLength | false | '' |
498
+ | bottomOffset | DesignLength | false | '' |
499
+ | toolbarTop | DesignLength | false | '' |
500
+ | timelineLeft | DesignLength | false | '' |
501
+ | timelineRight | DesignLength | false | '' |
502
+ | timelineBottom | DesignLength | false | '' |
457
503
 
458
504
  ### Events
459
505
 
@@ -462,6 +508,13 @@ Slots: left, top, toolbar, right, legend, timeline, content, default
462
508
 
463
509
  Slots: left, top, toolbar, right, legend, timeline, content, default
464
510
 
511
+ ```ts
512
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
513
+ export type DesignLength = number | string
514
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
515
+
516
+ ```
517
+
465
518
  ## RainfallRankingTable
466
519
 
467
520
  ### Props
@@ -800,6 +853,15 @@ Slots: message, primary, default, footer
800
853
  | title | string | false | undefined / no declared default |
801
854
  | description | string | false | undefined / no declared default |
802
855
  | showIntro | boolean | false | true |
856
+ | gap | DesignLength | false | 20 |
857
+ | padding | DesignSpacing | false | () => [0, 24, 20] |
858
+ | introPadding | DesignSpacing | false | 24 |
859
+ | filterGap | DesignLength | false | 20 |
860
+ | filterPadding | DesignSpacing | false | () => [20, 24] |
861
+ | inputWidth | DesignLength | false | 260 |
862
+ | selectWidth | DesignLength | false | 160 |
863
+ | cascaderWidth | DesignLength | false | 280 |
864
+ | responsive | boolean | false | false |
803
865
 
804
866
  ### Events
805
867
 
@@ -807,6 +869,13 @@ No declared events.
807
869
 
808
870
  Slots: summary, filters, heading, actions, default
809
871
 
872
+ ```ts
873
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
874
+ export type DesignLength = number | string
875
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
876
+
877
+ ```
878
+
810
879
  ## GlobalMapLayerDock
811
880
 
812
881
  ### Props
@@ -872,6 +941,11 @@ Slots: footer
872
941
 
873
942
  | Name | Type | Required | Default expression |
874
943
  |---|---|---|---|
944
+ | height | DesignLength | false | 320 |
945
+ | maxHeight | DesignLength | false | '42dvh' |
946
+ | headerPadding | DesignSpacing | false | ()=>[10,16] |
947
+ | metaPadding | DesignSpacing | false | ()=>[8,16,0] |
948
+ | gap | DesignLength | false | 12 |
875
949
  | title | string | true | undefined / no declared default |
876
950
  | subtitle | string | false | '' |
877
951
  | demo | boolean | false | false |
@@ -887,6 +961,13 @@ Slots: footer
887
961
 
888
962
  Slots: No declared content slots.
889
963
 
964
+ ```ts
965
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
966
+ export type DesignLength = number | string
967
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
968
+
969
+ ```
970
+
890
971
  ## MapWorkspacePanel
891
972
 
892
973
  ### Props
@@ -895,6 +976,10 @@ Slots: No declared content slots.
895
976
  |---|---|---|---|
896
977
  | title | string | true | undefined / no declared default |
897
978
  | subtitle | string | false | undefined / no declared default |
979
+ | headerPadding | DesignSpacing | false | 16 |
980
+ | bodyPadding | DesignSpacing | false | 16 |
981
+ | footerPadding | DesignSpacing | false | () => [12, 16] |
982
+ | gap | DesignLength | false | 16 |
898
983
 
899
984
  ### Events
900
985
 
@@ -902,6 +987,13 @@ No declared events.
902
987
 
903
988
  Slots: actions, default, footer
904
989
 
990
+ ```ts
991
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
992
+ export type DesignLength = number | string
993
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
994
+
995
+ ```
996
+
905
997
  ## NationalHydroSidebar
906
998
 
907
999
  ### Props
@@ -971,7 +1063,11 @@ Slots: No declared content slots.
971
1063
  |---|---|---|---|
972
1064
  | structured | boolean | false | false |
973
1065
  | columns | 1 &#124; 2 | false | 2 |
974
- | topOffset | string | false | 'calc(var(--cp-font-1, 1px) * 64)' |
1066
+ | gap | DesignLength | false | 4 |
1067
+ | padding | DesignSpacing | false | 4 |
1068
+ | toolbarGap | DesignLength | false | 12 |
1069
+ | toolbarPadding | DesignSpacing | false | 12 |
1070
+ | topOffset | DesignLength | false | 'calc(var(--cp-font-1, 1px) * 64)' |
975
1071
 
976
1072
  ### Events
977
1073
 
@@ -979,6 +1075,13 @@ No declared events.
979
1075
 
980
1076
  Slots: toolbar, default
981
1077
 
1078
+ ```ts
1079
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
1080
+ export type DesignLength = number | string
1081
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
1082
+
1083
+ ```
1084
+
982
1085
  ## ModelWorkspace
983
1086
 
984
1087
  ### Props
@@ -1016,6 +1119,10 @@ Slots: title, actions
1016
1119
  | Name | Type | Required | Default expression |
1017
1120
  |---|---|---|---|
1018
1121
  | title | string | false | undefined / no declared default |
1122
+ | headerPadding | DesignSpacing | false | () => [12, 16] |
1123
+ | bodyPadding | DesignSpacing | false | 16 |
1124
+ | footerPadding | DesignSpacing | false | () => [12, 16] |
1125
+ | gap | DesignLength | false | 12 |
1019
1126
 
1020
1127
  ### Events
1021
1128
 
@@ -1023,6 +1130,13 @@ No declared events.
1023
1130
 
1024
1131
  Slots: header, actions, default, footer
1025
1132
 
1133
+ ```ts
1134
+ /** Numeric dimensions are VFit design units; CSS strings pass through unchanged. */
1135
+ export type DesignLength = number | string
1136
+ export type DesignSpacing = DesignLength | readonly [DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength] | readonly [DesignLength, DesignLength, DesignLength, DesignLength]
1137
+
1138
+ ```
1139
+
1026
1140
  ## UiAffix
1027
1141
 
1028
1142
  固钉 · 导航组件. Original: ElAffix. Import from: sky-ui-kit. [API](https://element-plus.org/zh-CN/component/affix.html). See dist/components/element-plus.d.ts.
package/docs/CSS-THEME.md CHANGED
@@ -248,3 +248,37 @@ import { DefenseMapLayout, UiButton } from 'sky-ui-kit'
248
248
 
249
249
 
250
250
  独立 model-workspace.css 面向原生 HTML,无 Vue/Element Plus 样式依赖;与 style.css 的模型主题来自同一源文件,Vue 无需重复导入。
251
+
252
+
253
+ ## 2026-11-03:可配置 VFit 尺寸(源码待发布)
254
+
255
+ 数字尺寸代表设计单位,由组件转换为 `calc(var(--cp-font-1, 1px) * n)`;CSS 字符串原样使用,不额外注册 VFit 或 transform。DesignSpacing 支持单值及2/3/4项数组,遵循CSS间距顺序。0是有效值。调用方传裸字符串 `"12"` 不是合法CSS长度,应使用 `:gap="12"`;`"12px"` 是固定CSS像素。
256
+
257
+ 所有新增参数有默认值;下表空字符串表示使用组件现有布局/样式默认值,不是0。根style可控制组件根尺寸,内部内边距通过对应props调整,无需deep覆盖。
258
+
259
+ | 组件 | 参数与默认值 |
260
+ | --- | --- |
261
+ | MapPageLayout | 新增gap=12;已有rightPanelWidth=328、leftPanelWidth=320、edge=12等参数兼容字符串并支持数字;top/bottom/toolbar/timeline偏移默认空字符串,沿用自动避让 |
262
+ | DefenseMapLayout | gap=4、padding=4、toolbarGap=12、toolbarPadding=12;topOffset默认64设计单位,兼容数字/字符串 |
263
+ | MapWorkspacePanel | headerPadding=16、bodyPadding=16、footerPadding=[12,16]、gap=16 |
264
+ | ModelWorkspacePanel | headerPadding=[12,16]、bodyPadding=16、footerPadding=[12,16]、gap=12 |
265
+ | WorkbenchPanel | width='auto'、height='auto'、padding=0、gap=0;gap只在调用方使用flex/grid时产生间距,不强改display |
266
+ | ManagementResourceLayout | gap=20、padding=[0,24,20](内容区域)、introPadding=24、filterGap=20、filterPadding=[20,24]、inputWidth=260、selectWidth=160、cascaderWidth=280、responsive=false |
267
+ | AppSelect | width='100%'、controlHeight=''(按size取主题小/中/大高度)、controlPadding=[0,10];多选内容可增高;浮层不再设100%最小宽度,使用底层fit-input-width等配置 |
268
+ | ProjectMenu | width=''、itemHeight=''、itemPadding=''、padding=''(分别保留横/纵菜单已有默认值)、gap=2 |
269
+ | MapTimeline | padding=[10,12]、gap=9、trackHeight=88、controlHeight=30;不改变播放/时次数据API |
270
+ | MapBottomProcessPanel | height=320、maxHeight='42dvh'、headerPadding=[10,16]、metaPadding=[8,16,0]、gap=12 |
271
+ | ProcessDataTable | cellPadding=[6,10]、paginationGap=12、paginationPadding=5 |
272
+
273
+ ManagementResourceLayout默认按VFit保持结构,不在700px阈值自动切换;旧调用方如需原断点布局显式传responsive=true。这是需要在升级说明中说明的行为变化。其内容区域padding与介绍区padding分开,避免改变原默认留白。
274
+
275
+ 地图布局时间轴测量改为offsetHeight,使用布局坐标而非transform后的视口像素,防止再次乘入缩放系数。UiButton/UiSelect/UiTable等基础组件继续使用底层size、width、height及主题token,无重复同义接口。旧TemplateLayout保留兼容接口,不冒充MapPageLayout别名。
276
+
277
+ 示例:
278
+ ```vue
279
+ <MapWorkspacePanel title="降水统计" :header-padding="[12, 16]" :body-padding="[8, 12]" :gap="8">
280
+ 业务内容
281
+ </MapWorkspacePanel>
282
+ <MapPageLayout :right-panel-width="320" :edge="12" :gap="8" />
283
+ ```
284
+ 预览入口:MapPageLayout布局演示,点击“查看紧凑尺寸”比较右栏宽度、边距与面板内边距。其他组件参数与默认值可在生成API查询。当前未构建、打包、发布或浏览器验证,用户预览确认后自行发版。
@@ -172,3 +172,37 @@ flat 模式按钮此前错误使用 child 类而内部图标、文字使用 pare
172
172
 
173
173
 
174
174
  原生 HTML:部署包内 dist/model-workspace.css 并用 link 引入及结构类;Vue:使用 ModelWorkspace 系列组件并引入公共 style.css。完整双方案见 MODEL-WORKSPACE.md,不要将本地磁盘/node_modules 路径部署到网站。
175
+
176
+
177
+ ## 2026-11-03:可配置 VFit 尺寸(源码待发布)
178
+
179
+ 数字尺寸代表设计单位,由组件转换为 `calc(var(--cp-font-1, 1px) * n)`;CSS 字符串原样使用,不额外注册 VFit 或 transform。DesignSpacing 支持单值及2/3/4项数组,遵循CSS间距顺序。0是有效值。调用方传裸字符串 `"12"` 不是合法CSS长度,应使用 `:gap="12"`;`"12px"` 是固定CSS像素。
180
+
181
+ 所有新增参数有默认值;下表空字符串表示使用组件现有布局/样式默认值,不是0。根style可控制组件根尺寸,内部内边距通过对应props调整,无需deep覆盖。
182
+
183
+ | 组件 | 参数与默认值 |
184
+ | --- | --- |
185
+ | MapPageLayout | 新增gap=12;已有rightPanelWidth=328、leftPanelWidth=320、edge=12等参数兼容字符串并支持数字;top/bottom/toolbar/timeline偏移默认空字符串,沿用自动避让 |
186
+ | DefenseMapLayout | gap=4、padding=4、toolbarGap=12、toolbarPadding=12;topOffset默认64设计单位,兼容数字/字符串 |
187
+ | MapWorkspacePanel | headerPadding=16、bodyPadding=16、footerPadding=[12,16]、gap=16 |
188
+ | ModelWorkspacePanel | headerPadding=[12,16]、bodyPadding=16、footerPadding=[12,16]、gap=12 |
189
+ | WorkbenchPanel | width='auto'、height='auto'、padding=0、gap=0;gap只在调用方使用flex/grid时产生间距,不强改display |
190
+ | ManagementResourceLayout | gap=20、padding=[0,24,20](内容区域)、introPadding=24、filterGap=20、filterPadding=[20,24]、inputWidth=260、selectWidth=160、cascaderWidth=280、responsive=false |
191
+ | AppSelect | width='100%'、controlHeight=''(按size取主题小/中/大高度)、controlPadding=[0,10];多选内容可增高;浮层不再设100%最小宽度,使用底层fit-input-width等配置 |
192
+ | ProjectMenu | width=''、itemHeight=''、itemPadding=''、padding=''(分别保留横/纵菜单已有默认值)、gap=2 |
193
+ | MapTimeline | padding=[10,12]、gap=9、trackHeight=88、controlHeight=30;不改变播放/时次数据API |
194
+ | MapBottomProcessPanel | height=320、maxHeight='42dvh'、headerPadding=[10,16]、metaPadding=[8,16,0]、gap=12 |
195
+ | ProcessDataTable | cellPadding=[6,10]、paginationGap=12、paginationPadding=5 |
196
+
197
+ ManagementResourceLayout默认按VFit保持结构,不在700px阈值自动切换;旧调用方如需原断点布局显式传responsive=true。这是需要在升级说明中说明的行为变化。其内容区域padding与介绍区padding分开,避免改变原默认留白。
198
+
199
+ 地图布局时间轴测量改为offsetHeight,使用布局坐标而非transform后的视口像素,防止再次乘入缩放系数。UiButton/UiSelect/UiTable等基础组件继续使用底层size、width、height及主题token,无重复同义接口。旧TemplateLayout保留兼容接口,不冒充MapPageLayout别名。
200
+
201
+ 示例:
202
+ ```vue
203
+ <MapWorkspacePanel title="降水统计" :header-padding="[12, 16]" :body-padding="[8, 12]" :gap="8">
204
+ 业务内容
205
+ </MapWorkspacePanel>
206
+ <MapPageLayout :right-panel-width="320" :edge="12" :gap="8" />
207
+ ```
208
+ 预览入口:MapPageLayout布局演示,点击“查看紧凑尺寸”比较右栏宽度、边距与面板内边距。其他组件参数与默认值可在生成API查询。当前未构建、打包、发布或浏览器验证,用户预览确认后自行发版。