@das-fed/upf-ui 6.4.0-dev.312 → 6.4.0-dev.314

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@das-fed/upf-ui",
3
- "version": "6.4.0-dev.312",
3
+ "version": "6.4.0-dev.314",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -55,8 +55,8 @@
55
55
  "vue-tsc": "^2.0.29"
56
56
  },
57
57
  "dependencies": {
58
- "@das-fed/upf-cli": "6.4.0-dev.312",
59
- "@das-fed/upf-utils": "6.4.0-dev.312",
58
+ "@das-fed/upf-cli": "6.4.0-dev.314",
59
+ "@das-fed/upf-utils": "6.4.0-dev.314",
60
60
  "@types/markdown-it": "^14.1.2",
61
61
  "@wangeditor-next/editor": "5.6.31",
62
62
  "@wangeditor-next/editor-for-vue": "5.1.14",
@@ -92,13 +92,13 @@
92
92
  },
93
93
  "upfReleaseMeta": {
94
94
  "packageName": "@das-fed/upf-ui",
95
- "releaseVersion": "6.4.0-dev.312",
95
+ "releaseVersion": "6.4.0-dev.314",
96
96
  "distTag": "dev",
97
97
  "releaseType": "publish",
98
- "publishedAt": "2026-10-23T09:57:20.695+08:00",
98
+ "publishedAt": "2026-10-27T11:30:47.947+08:00",
99
99
  "sourceBranch": "dev",
100
- "sourceCommit": "2b7e4bee2799e8f1d9ad23df455e0025cad10cfb",
101
- "gitTag": "upf-release/v6.4.0-dev.312",
100
+ "sourceCommit": "cc9a7cfb6b376d84eab5a629c0bb5a6b9929e214",
101
+ "gitTag": "upf-release/v6.4.0-dev.314",
102
102
  "gitRemote": "origin",
103
103
  "gitRemoteUrl": "http://gitlab.dasiot.cn/foundation/frontend/framework.git",
104
104
  "releaseStatus": "success"
@@ -1995,6 +1995,7 @@ const mc = {
1995
1995
  errorLabel: { default: "" },
1996
1996
  isErrorTitle: { type: Boolean, default: !0 },
1997
1997
  isTitle: { type: Boolean, default: !0 },
1998
+ isEllipsis: { type: Boolean, default: !0 },
1998
1999
  errorMode: { default: "default" },
1999
2000
  errorModelZIndex: { default: 2e3 },
2000
2001
  noSetDefaultVal: { type: Boolean, default: !1 },
@@ -2031,6 +2032,7 @@ const mc = {
2031
2032
  {
2032
2033
  "das-ui-input--view": n.isView,
2033
2034
  "das-ui-input--disabled": n.disabled,
2035
+ "das-ui-input--ellipsis": n.isEllipsis,
2034
2036
  "das-ui-textarea": n.type === "textarea"
2035
2037
  }
2036
2038
  ]), E = o, b = K({
@@ -2158,7 +2160,7 @@ const mc = {
2158
2160
  /* CLASS, STYLE */
2159
2161
  ));
2160
2162
  }
2161
- }), bc = /* @__PURE__ */ Hn(yc, [["__scopeId", "data-v-2a267b60"]]), xc = {
2163
+ }), bc = /* @__PURE__ */ Hn(yc, [["__scopeId", "data-v-3085677c"]]), xc = {
2162
2164
  共: { "zh-CN": "共", en: "Total", "zh-MO": "共", _appCode: "framework" },
2163
2165
  项: { "zh-CN": "项", en: "Item", "zh-MO": "項", _appCode: "framework" },
2164
2166
  请输入: { "zh-CN": "请输入", en: "Please enter", "zh-MO": "請輸入", _appCode: "framework" }
@@ -236,7 +236,7 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
236
236
  handleBlur: (event: FocusEvent) => void;
237
237
  needStatusIcon: import("vue").ComputedRef<boolean>;
238
238
  validateState: import("vue").ComputedRef<"" | "success" | "error" | "validating">;
239
- validateIcon: import("vue").ComputedRef<"" | import("vue").DefineComponent<{}, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue" /** @type {__VLS_StyleScopedClasses['is-ellipsis']} */).AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>>;
239
+ validateIcon: import("vue").ComputedRef<"" | import("vue").DefineComponent<{}, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>>;
240
240
  passwordIcon: import("vue").ComputedRef<import("vue").DefineComponent<{}, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>>;
241
241
  containerStyle: import("vue").ComputedRef<import("vue").StyleValue>;
242
242
  textareaStyle: import("vue").ComputedRef<import("vue").StyleValue>;
@@ -1415,6 +1415,7 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
1415
1415
  errorLabel: string;
1416
1416
  isErrorTitle: boolean;
1417
1417
  isTitle: boolean;
1418
+ isEllipsis: boolean;
1418
1419
  errorMode: "default" | "overlay";
1419
1420
  errorModelZIndex: number;
1420
1421
  noSetDefaultVal: boolean;
@@ -1,71 +1,73 @@
1
-
2
- import type { InputProps } from 'element-plus'
3
-
4
-
5
-
6
- export interface Props {
7
-
8
- modelValue?: any
9
-
10
- type?: string
11
-
12
- width?: string | number
13
-
14
- borderType?: 'bottom' | 'bordered'
15
-
16
- placeholder?: string
17
-
18
- size?: 'large' | 'middle' | 'default' | 'small' | 'table'
19
-
20
- disabled?: boolean
21
-
22
- isView?: boolean
23
-
24
-
25
-
26
- error?: boolean
27
-
28
- errorLabel?: string
29
-
30
- isErrorTitle?: boolean
31
-
32
- isTitle?: boolean
33
-
34
- errorMode?: 'default' | 'overlay'
35
-
36
- errorModelZIndex?: number
37
-
38
- noSetDefaultVal?: boolean
39
-
40
- autosize?: boolean | { minRows?: number; maxRows?: number }
41
-
42
- showWordLimit?: boolean
43
-
44
- showTextWordLimit?: boolean
45
-
46
- maxlength?: number | string
47
-
48
-
49
- filterSpace?: boolean
50
-
51
-
52
- clearable?: boolean
53
- }
54
- export interface Emits {
55
- (e: 'update:modelValue', val: any): void
56
- (e: 'change', val: string | number): void
57
- }
58
- export type Exposes = {
59
-
60
- $refInput
61
- }
62
- export interface Slots {
63
-
64
- prefix: {}
65
-
66
- suffix: {}
67
-
68
- prepend: {}
69
-
70
- append: {}
71
- }
1
+
2
+ import type { InputProps } from 'element-plus'
3
+
4
+
5
+
6
+ export interface Props {
7
+
8
+ modelValue?: any
9
+
10
+ type?: string
11
+
12
+ width?: string | number
13
+
14
+ borderType?: 'bottom' | 'bordered'
15
+
16
+ placeholder?: string
17
+
18
+ size?: 'large' | 'middle' | 'default' | 'small' | 'table'
19
+
20
+ disabled?: boolean
21
+
22
+ isView?: boolean
23
+
24
+
25
+
26
+ error?: boolean
27
+
28
+ errorLabel?: string
29
+
30
+ isErrorTitle?: boolean
31
+
32
+ isTitle?: boolean
33
+
34
+ isEllipsis?: boolean
35
+
36
+ errorMode?: 'default' | 'overlay'
37
+
38
+ errorModelZIndex?: number
39
+
40
+ noSetDefaultVal?: boolean
41
+
42
+ autosize?: boolean | { minRows?: number; maxRows?: number }
43
+
44
+ showWordLimit?: boolean
45
+
46
+ showTextWordLimit?: boolean
47
+
48
+ maxlength?: number | string
49
+
50
+
51
+ filterSpace?: boolean
52
+
53
+
54
+ clearable?: boolean
55
+ }
56
+ export interface Emits {
57
+ (e: 'update:modelValue', val: any): void
58
+ (e: 'change', val: string | number): void
59
+ }
60
+ export type Exposes = {
61
+
62
+ $refInput
63
+ }
64
+ export interface Slots {
65
+
66
+ prefix: {}
67
+
68
+ suffix: {}
69
+
70
+ prepend: {}
71
+
72
+ append: {}
73
+ }
@@ -6,4 +6,4 @@
6
6
  * https://github.com/KingSora
7
7
  *
8
8
  * Released under the MIT license.
9
- */.os-size-observer,.os-size-observer-listener{scroll-behavior:auto!important;direction:inherit;pointer-events:none;overflow:hidden;visibility:hidden;box-sizing:border-box}.os-size-observer,.os-size-observer-listener,.os-size-observer-listener-item,.os-size-observer-listener-item-final{writing-mode:horizontal-tb;position:absolute;left:0;top:0}.os-size-observer{z-index:-1;contain:strict;display:flex;flex-direction:row;flex-wrap:nowrap;padding:inherit;border:inherit;box-sizing:inherit;margin:-133px;top:0;right:0;bottom:0;left:0;transform:scale(.1)}.os-size-observer:before{content:"";flex:none;box-sizing:inherit;padding:10px;width:10px;height:10px}.os-size-observer-appear{animation:os-size-observer-appear-animation 1ms forwards}.os-size-observer-listener{box-sizing:border-box;position:relative;flex:auto;padding:inherit;border:inherit;margin:-133px;transform:scale(10)}.os-size-observer-listener.ltr{margin-right:-266px;margin-left:0}.os-size-observer-listener.rtl{margin-left:-266px;margin-right:0}.os-size-observer-listener:empty:before{content:"";width:100%;height:100%}.os-size-observer-listener:empty:before,.os-size-observer-listener>.os-size-observer-listener-item{display:block;position:relative;padding:inherit;border:inherit;box-sizing:content-box;flex:auto}.os-size-observer-listener-scroll{box-sizing:border-box;display:flex}.os-size-observer-listener-item{right:0;bottom:0;overflow:hidden;direction:ltr;flex:none}.os-size-observer-listener-item-final{transition:none}@keyframes os-size-observer-appear-animation{0%{cursor:auto}to{cursor:none}}.os-trinsic-observer{flex:none;box-sizing:border-box;position:relative;max-width:0px;max-height:1px;padding:0;margin:0;border:none;overflow:hidden;z-index:-1;height:0;top:calc(100% + 1px);contain:strict}.os-trinsic-observer:not(:empty){height:calc(100% + 1px);top:-1px}.os-trinsic-observer:not(:empty)>.os-size-observer{width:1000%;height:1000%;min-height:1px;min-width:1px}.os-environment{scroll-behavior:auto!important;position:fixed;opacity:0;visibility:hidden;overflow:scroll;height:200px;width:200px;z-index:-1}.os-environment div{width:200%;height:200%;margin:10px 0}.os-environment.os-environment-flexbox-glue{display:flex;flex-direction:row;flex-wrap:nowrap;height:auto;width:auto;min-height:200px;min-width:200px}.os-environment.os-environment-flexbox-glue div{flex:auto;width:auto;height:auto;max-height:100%;max-width:100%;margin:0}.os-environment.os-environment-flexbox-glue-max{max-height:200px}.os-environment.os-environment-flexbox-glue-max div{overflow:visible}.os-environment.os-environment-flexbox-glue-max div:before{content:"";display:block;height:999px;width:999px}.os-environment,[data-overlayscrollbars-viewport]{-ms-overflow-style:scrollbar!important}[data-overlayscrollbars-initialize],[data-overlayscrollbars~=scrollbarHidden],[data-overlayscrollbars-viewport~=scrollbarHidden],.os-environment-scrollbar-hidden{scrollbar-width:none!important}[data-overlayscrollbars-initialize]::-webkit-scrollbar,[data-overlayscrollbars-initialize]::-webkit-scrollbar-corner,[data-overlayscrollbars~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars~=scrollbarHidden]::-webkit-scrollbar-corner,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner,.os-environment-scrollbar-hidden::-webkit-scrollbar,.os-environment-scrollbar-hidden::-webkit-scrollbar-corner{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;display:none!important;width:0!important;height:0!important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars]):not(html):not(body){overflow:auto}html[data-overlayscrollbars]{box-sizing:border-box;margin:0}html[data-overlayscrollbars~=body],html[data-overlayscrollbars~=body]>body{width:100%;height:100%}html[data-overlayscrollbars~=viewport]>body{overflow:visible}[data-overlayscrollbars~=host],[data-overlayscrollbars-padding]{display:flex;align-items:stretch!important;flex-direction:row!important;flex-wrap:nowrap!important}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]{box-sizing:inherit;position:relative;flex:auto!important;height:auto;width:100%;min-width:0;padding:0;margin:0;border:none;z-index:0}[data-overlayscrollbars-viewport]{--os-vaw: 0;--os-vah: 0}[data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]:before{content:"";position:absolute;pointer-events:none;z-index:-1;min-width:1px;min-height:1px;width:var(--os-vaw);height:var(--os-vah)}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]{overflow:hidden}[data-overlayscrollbars~=host],[data-overlayscrollbars~=viewport]{position:relative;overflow:hidden}[data-overlayscrollbars~=overflowVisible],[data-overlayscrollbars-padding~=overflowVisible],[data-overlayscrollbars-viewport~=overflowVisible]{overflow:visible}[data-overlayscrollbars-overflow-x=hidden]{overflow-x:hidden}[data-overlayscrollbars-overflow-x=scroll]{overflow-x:scroll}[data-overlayscrollbars-overflow-x=hidden]{overflow-y:hidden}[data-overlayscrollbars-overflow-y=scroll]{overflow-y:scroll}[data-overlayscrollbars~=scrollbarPressed],[data-overlayscrollbars~=scrollbarPressed] [data-overlayscrollbars-viewport]{scroll-behavior:auto!important}[data-overlayscrollbars-content]{box-sizing:inherit}[data-overlayscrollbars-contents]:not([data-overlayscrollbars-padding]):not([data-overlayscrollbars-viewport]):not([data-overlayscrollbars-content]){display:contents}[data-overlayscrollbars-grid],[data-overlayscrollbars-grid] [data-overlayscrollbars-padding]{display:grid;grid-template:1fr/1fr}[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding],[data-overlayscrollbars-grid]>[data-overlayscrollbars-viewport],[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding]>[data-overlayscrollbars-viewport]{height:auto!important;width:auto!important}.os-scrollbar{contain:size layout;contain:size layout style;transition:opacity .15s,visibility .15s,top .15s,right .15s,bottom .15s,left .15s;pointer-events:none;position:absolute;opacity:0;visibility:hidden}body>.os-scrollbar{position:fixed;z-index:99999}.os-scrollbar-transitionless{transition:none}.os-scrollbar-track{position:relative;direction:ltr!important;padding:0!important;border:none!important}.os-scrollbar-handle{position:absolute}.os-scrollbar-track,.os-scrollbar-handle{pointer-events:none;width:100%;height:100%}.os-scrollbar.os-scrollbar-track-interactive .os-scrollbar-track,.os-scrollbar.os-scrollbar-handle-interactive .os-scrollbar-handle{pointer-events:auto;touch-action:none}.os-scrollbar-horizontal{bottom:0;left:0}.os-scrollbar-vertical{top:0;right:0}.os-scrollbar-rtl.os-scrollbar-horizontal{right:0}.os-scrollbar-rtl.os-scrollbar-vertical{right:auto;left:0}.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-auto-hide.os-scrollbar-auto-hide-hidden{opacity:0;visibility:hidden}.os-scrollbar-interaction.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-unusable,.os-scrollbar-unusable *,.os-scrollbar-wheel,.os-scrollbar-wheel *{pointer-events:none!important}.os-scrollbar-unusable .os-scrollbar-handle{opacity:0!important;transition:none!important}.os-scrollbar-horizontal .os-scrollbar-handle{bottom:0}.os-scrollbar-vertical .os-scrollbar-handle{right:0}.os-scrollbar-rtl.os-scrollbar-vertical .os-scrollbar-handle{right:auto;left:0}.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless.os-scrollbar-rtl{left:0;right:0}.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless.os-scrollbar-rtl{top:0;bottom:0}.os-scrollbar{--os-size: 0;--os-padding-perpendicular: 0;--os-padding-axis: 0;--os-track-border-radius: 0;--os-track-bg: none;--os-track-bg-hover: none;--os-track-bg-active: none;--os-track-border: none;--os-track-border-hover: none;--os-track-border-active: none;--os-handle-border-radius: 0;--os-handle-bg: none;--os-handle-bg-hover: none;--os-handle-bg-active: none;--os-handle-border: none;--os-handle-border-hover: none;--os-handle-border-active: none;--os-handle-min-size: 33px;--os-handle-max-size: none;--os-handle-perpendicular-size: 100%;--os-handle-perpendicular-size-hover: 100%;--os-handle-perpendicular-size-active: 100%;--os-handle-interactive-area-offset: 0}.os-scrollbar .os-scrollbar-track{border:var(--os-track-border);border-radius:var(--os-track-border-radius);background:var(--os-track-bg);transition:opacity .15s,background-color .15s,border-color .15s}.os-scrollbar .os-scrollbar-track:hover{border:var(--os-track-border-hover);background:var(--os-track-bg-hover)}.os-scrollbar .os-scrollbar-track:active{border:var(--os-track-border-active);background:var(--os-track-bg-active)}.os-scrollbar .os-scrollbar-handle{border:var(--os-handle-border);border-radius:var(--os-handle-border-radius);background:var(--os-handle-bg)}.os-scrollbar .os-scrollbar-handle:before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;display:block}.os-scrollbar .os-scrollbar-handle:hover{border:var(--os-handle-border-hover);background:var(--os-handle-bg-hover)}.os-scrollbar .os-scrollbar-handle:active{border:var(--os-handle-border-active);background:var(--os-handle-bg-active)}.os-scrollbar-horizontal{padding:var(--os-padding-perpendicular) var(--os-padding-axis);right:var(--os-size);height:var(--os-size)}.os-scrollbar-horizontal.os-scrollbar-rtl{left:var(--os-size);right:0}.os-scrollbar-horizontal .os-scrollbar-handle{min-width:var(--os-handle-min-size);max-width:var(--os-handle-max-size);height:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,height .15s}.os-scrollbar-horizontal .os-scrollbar-handle:before{top:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);bottom:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-horizontal:hover .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-horizontal:active .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-active)}.os-scrollbar-vertical{padding:var(--os-padding-axis) var(--os-padding-perpendicular);bottom:var(--os-size);width:var(--os-size)}.os-scrollbar-vertical .os-scrollbar-handle{min-height:var(--os-handle-min-size);max-height:var(--os-handle-max-size);width:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,width .15s}.os-scrollbar-vertical .os-scrollbar-handle:before{left:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);right:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before{right:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);left:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical:hover .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-vertical:active .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-active)}[data-overlayscrollbars~=updating]>.os-scrollbar,.os-theme-none.os-scrollbar{display:none!important}.os-theme-dark,.os-theme-light{box-sizing:border-box;--os-size: 10px;--os-padding-perpendicular: 2px;--os-padding-axis: 2px;--os-track-border-radius: 10px;--os-handle-interactive-area-offset: 4px;--os-handle-border-radius: 10px}.os-theme-dark{--os-handle-bg: rgba(0, 0, 0, .44);--os-handle-bg-hover: rgba(0, 0, 0, .55);--os-handle-bg-active: rgba(0, 0, 0, .66)}.os-theme-light{--os-handle-bg: rgba(255, 255, 255, .44);--os-handle-bg-hover: rgba(255, 255, 255, .55);--os-handle-bg-active: rgba(255, 255, 255, .66)}.das-ui-input[data-v-2a267b60]{--das-input-base-border-color: var(--upf-border-color);--das-input-active-border-color: var(--upf-form-active-border-color, var(--upf-color-primary));--das-input-font-color: var(--upf-text-primary);--das-input-sub-font-color: var(--upf-text-placeholder);--das-input-disabled-bg-color: var(--upf-bg-secondary);--das-input-count-color: var(--upf-text-disabled);--das-input-message-font-size: 12px;position:relative;display:inline-block;width:var(--das-input-width)}.das-ui-input[data-v-2a267b60] .el-input{height:var(--das-input-height);line-height:var(--das-input-height);font-size:var(--das-input-font-size)}.das-ui-input[data-v-2a267b60] .el-input .el-input__inner{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--das-input-font-color);-webkit-text-fill-color:var(--das-input-font-color)}.das-ui-input[data-v-2a267b60] .el-input .el-input__inner::placeholder{color:var(--das-input-sub-font-color);-webkit-text-fill-color:var(--das-input-sub-font-color)}.das-ui-input[data-v-2a267b60] .el-input .el-input__inner::-webkit-input-placeholder{color:var(--das-input-sub-font-color);-webkit-text-fill-color:var(--das-input-sub-font-color)}.das-ui-input[data-v-2a267b60] .el-input .el-input__count{color:var(--das-input-count-color)}.das-ui-input.das-ui-textarea[data-v-2a267b60] .el-textarea .el-textarea__inner{color:var(--das-input-font-color);font-size:var(--das-input-font-size);padding:8px;line-height:22px;min-height:80px!important}.das-ui-input.das-ui-textarea[data-v-2a267b60] .el-textarea .el-input__count{color:var(--das-input-count-color);font-size:var(--das-input-font-size);bottom:12px;padding-left:5px}.das-ui-input.das-ui-textarea[data-v-2a267b60] .el-textarea.das-input-error .el-textarea__inner,.das-ui-input.das-ui-textarea[data-v-2a267b60] .el-textarea.das-input-error .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--upf-color-error) inset}.das-ui-input.das-ui-textarea[data-v-2a267b60] .el-textarea.das-input-success .el-textarea__inner,.das-ui-input.das-ui-textarea[data-v-2a267b60] .el-textarea.das-input-success .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--upf-color-success) inset}.das-ui-input.das-ui-textarea[data-v-2a267b60] .el-textarea textarea::-webkit-scrollbar{width:8px;height:8px;background-color:transparent}.das-ui-input.das-ui-textarea[data-v-2a267b60] .el-textarea textarea::-webkit-scrollbar-corner{background-color:#0000}.das-ui-input.das-ui-textarea[data-v-2a267b60] .el-textarea textarea::-webkit-scrollbar-thumb{border-radius:16px;border:4px solid #b2b2b2;background-clip:content-box;background-color:#9999994d}.das-ui-input--border-type-bordered[data-v-2a267b60] .el-input .el-input__wrapper{border-radius:2px;padding:0 8px;box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-base-border-color)) inset}.das-ui-input--border-type-bordered[data-v-2a267b60] .el-input .el-input__wrapper.is-focus,.das-ui-input--border-type-bordered[data-v-2a267b60] .el-input .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bordered[data-v-2a267b60] .el-textarea .el-textarea__inner{border-radius:4px;box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-base-border-color)) inset}.das-ui-input--border-type-bordered[data-v-2a267b60] .el-textarea .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bordered[data-v-2a267b60] .el-textarea .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bottom[data-v-2a267b60] .el-input .el-input__wrapper{padding:0;border-radius:0;box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-base-border-color)) inset}.das-ui-input--border-type-bottom[data-v-2a267b60] .el-input .el-input__wrapper.is-focus,.das-ui-input--border-type-bottom[data-v-2a267b60] .el-input .el-input__wrapper:hover{box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bottom[data-v-2a267b60] .el-textarea .el-textarea__inner{border-radius:0;box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-base-border-color)) inset}.das-ui-input--border-type-bottom[data-v-2a267b60] .el-textarea .el-textarea__inner:focus{box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bottom[data-v-2a267b60] .el-textarea .el-textarea__inner:hover{box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--view[data-v-2a267b60] .el-input .el-input__inner{cursor:default}.das-ui-input--disabled[data-v-2a267b60] .el-input .el-input__wrapper{background-color:var(--das-input-disabled-bg-color)}.das-ui-input--disabled[data-v-2a267b60] .el-input .el-input__inner{color:var(--das-input-sub-font-color);-webkit-text-fill-color:var(--das-input-sub-font-color)}.das-ui-input--disabled.das-ui-textarea[data-v-2a267b60] .el-textarea .el-textarea__inner{color:var(--das-input-sub-font-color);background-color:var(--das-input-disabled-bg-color)}.das-ui-input .das-input-message[data-v-2a267b60]{color:var(--das-input-message-color);font-size:var(--das-input-message-font-size);padding-top:4px}.das-ui-input .das-input-message_content[data-v-2a267b60]{line-height:18px;display:block;white-space:break-spaces}.das-ui-input .das-input-message_content.is-ellipsis[data-v-2a267b60]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.das-ui-input[data-v-2a267b60] .el-input__prefix .el-input__prefix-inner{color:var(--das-input-sub-font-color)}.das-ui-input[data-v-2a267b60] .el-input__prefix .el-input__prefix-inner>:last-child{margin-right:4px}.das-ui-input[data-v-2a267b60] .el-input__suffix .el-input__suffix-inner{color:var(--das-input-sub-font-color)}.das-ui-input[data-v-2a267b60] .el-input__suffix .el-input__suffix-inner>:first-child{margin-left:4px}.das-ui-input[data-v-2a267b60] .el-input-group--prepend .el-input-group__prepend{padding:0 8px;border-radius:2px 0 0 2px;box-shadow:1px 0 0 0 var(--das-input-base-border-color) inset,0 1px 0 0 var(--das-input-base-border-color) inset,0 -1px 0 0 var(--das-input-base-border-color) inset;background-color:var(--das-input-prepend-bg-color, transparent)}.das-ui-input[data-v-2a267b60] .el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.das-ui-input[data-v-2a267b60] .el-input-group--append .el-input-group__append{padding:0 8px;border-radius:0 2px 2px 0;box-shadow:0 1px 0 0 var(--das-input-base-border-color) inset,0 -1px 0 0 var(--das-input-base-border-color) inset,-1px 0 0 0 var(--das-input-base-border-color) inset;background-color:transparent}.das-ui-input[data-v-2a267b60] .el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.das-ui-input[data-v-2a267b60] .el-input .el-input__clear{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1685934237687'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2634'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M512%20128c212.064%200%20384%20171.936%20384%20384s-171.936%20384-384%20384S128%20724.064%20128%20512%20299.936%20128%20512%20128z%20m-140.384%20198.72a32%2032%200%200%200-42.24%202.656l-2.656%203.008a32%2032%200%200%200%202.656%2042.24L466.72%20512l-137.344%20137.376a32%2032%200%200%200%2045.248%2045.248L512%20557.28l137.376%20137.344%203.008%202.656a32%2032%200%200%200%2042.24-2.656l2.656-3.008a32%2032%200%200%200-2.656-42.24L557.28%20512l137.344-137.376a32%2032%200%200%200-45.248-45.248L512%20466.72l-137.376-137.344z'%20fill='%23d9d9d9'%20fill-opacity='1'%20p-id='2635'%3e%3c/path%3e%3c/svg%3e");background-size:cover;width:16px;height:16px}.das-ui-input[data-v-2a267b60] .el-input .el-input__clear:hover{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1685934237687'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2634'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M512%20128c212.064%200%20384%20171.936%20384%20384s-171.936%20384-384%20384S128%20724.064%20128%20512%20299.936%20128%20512%20128z%20m-140.384%20198.72a32%2032%200%200%200-42.24%202.656l-2.656%203.008a32%2032%200%200%200%202.656%2042.24L466.72%20512l-137.344%20137.376a32%2032%200%200%200%2045.248%2045.248L512%20557.28l137.376%20137.344%203.008%202.656a32%2032%200%200%200%2042.24-2.656l2.656-3.008a32%2032%200%200%200-2.656-42.24L557.28%20512l137.344-137.376a32%2032%200%200%200-45.248-45.248L512%20466.72l-137.376-137.344z'%20fill='%23999999'%20fill-opacity='1'%20p-id='2635'%3e%3c/path%3e%3c/svg%3e")}.das-ui-input[data-v-2a267b60] .el-input .el-input__clear svg{display:none}
9
+ */.os-size-observer,.os-size-observer-listener{scroll-behavior:auto!important;direction:inherit;pointer-events:none;overflow:hidden;visibility:hidden;box-sizing:border-box}.os-size-observer,.os-size-observer-listener,.os-size-observer-listener-item,.os-size-observer-listener-item-final{writing-mode:horizontal-tb;position:absolute;left:0;top:0}.os-size-observer{z-index:-1;contain:strict;display:flex;flex-direction:row;flex-wrap:nowrap;padding:inherit;border:inherit;box-sizing:inherit;margin:-133px;top:0;right:0;bottom:0;left:0;transform:scale(.1)}.os-size-observer:before{content:"";flex:none;box-sizing:inherit;padding:10px;width:10px;height:10px}.os-size-observer-appear{animation:os-size-observer-appear-animation 1ms forwards}.os-size-observer-listener{box-sizing:border-box;position:relative;flex:auto;padding:inherit;border:inherit;margin:-133px;transform:scale(10)}.os-size-observer-listener.ltr{margin-right:-266px;margin-left:0}.os-size-observer-listener.rtl{margin-left:-266px;margin-right:0}.os-size-observer-listener:empty:before{content:"";width:100%;height:100%}.os-size-observer-listener:empty:before,.os-size-observer-listener>.os-size-observer-listener-item{display:block;position:relative;padding:inherit;border:inherit;box-sizing:content-box;flex:auto}.os-size-observer-listener-scroll{box-sizing:border-box;display:flex}.os-size-observer-listener-item{right:0;bottom:0;overflow:hidden;direction:ltr;flex:none}.os-size-observer-listener-item-final{transition:none}@keyframes os-size-observer-appear-animation{0%{cursor:auto}to{cursor:none}}.os-trinsic-observer{flex:none;box-sizing:border-box;position:relative;max-width:0px;max-height:1px;padding:0;margin:0;border:none;overflow:hidden;z-index:-1;height:0;top:calc(100% + 1px);contain:strict}.os-trinsic-observer:not(:empty){height:calc(100% + 1px);top:-1px}.os-trinsic-observer:not(:empty)>.os-size-observer{width:1000%;height:1000%;min-height:1px;min-width:1px}.os-environment{scroll-behavior:auto!important;position:fixed;opacity:0;visibility:hidden;overflow:scroll;height:200px;width:200px;z-index:-1}.os-environment div{width:200%;height:200%;margin:10px 0}.os-environment.os-environment-flexbox-glue{display:flex;flex-direction:row;flex-wrap:nowrap;height:auto;width:auto;min-height:200px;min-width:200px}.os-environment.os-environment-flexbox-glue div{flex:auto;width:auto;height:auto;max-height:100%;max-width:100%;margin:0}.os-environment.os-environment-flexbox-glue-max{max-height:200px}.os-environment.os-environment-flexbox-glue-max div{overflow:visible}.os-environment.os-environment-flexbox-glue-max div:before{content:"";display:block;height:999px;width:999px}.os-environment,[data-overlayscrollbars-viewport]{-ms-overflow-style:scrollbar!important}[data-overlayscrollbars-initialize],[data-overlayscrollbars~=scrollbarHidden],[data-overlayscrollbars-viewport~=scrollbarHidden],.os-environment-scrollbar-hidden{scrollbar-width:none!important}[data-overlayscrollbars-initialize]::-webkit-scrollbar,[data-overlayscrollbars-initialize]::-webkit-scrollbar-corner,[data-overlayscrollbars~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars~=scrollbarHidden]::-webkit-scrollbar-corner,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner,.os-environment-scrollbar-hidden::-webkit-scrollbar,.os-environment-scrollbar-hidden::-webkit-scrollbar-corner{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;display:none!important;width:0!important;height:0!important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars]):not(html):not(body){overflow:auto}html[data-overlayscrollbars]{box-sizing:border-box;margin:0}html[data-overlayscrollbars~=body],html[data-overlayscrollbars~=body]>body{width:100%;height:100%}html[data-overlayscrollbars~=viewport]>body{overflow:visible}[data-overlayscrollbars~=host],[data-overlayscrollbars-padding]{display:flex;align-items:stretch!important;flex-direction:row!important;flex-wrap:nowrap!important}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]{box-sizing:inherit;position:relative;flex:auto!important;height:auto;width:100%;min-width:0;padding:0;margin:0;border:none;z-index:0}[data-overlayscrollbars-viewport]{--os-vaw: 0;--os-vah: 0}[data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]:before{content:"";position:absolute;pointer-events:none;z-index:-1;min-width:1px;min-height:1px;width:var(--os-vaw);height:var(--os-vah)}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]{overflow:hidden}[data-overlayscrollbars~=host],[data-overlayscrollbars~=viewport]{position:relative;overflow:hidden}[data-overlayscrollbars~=overflowVisible],[data-overlayscrollbars-padding~=overflowVisible],[data-overlayscrollbars-viewport~=overflowVisible]{overflow:visible}[data-overlayscrollbars-overflow-x=hidden]{overflow-x:hidden}[data-overlayscrollbars-overflow-x=scroll]{overflow-x:scroll}[data-overlayscrollbars-overflow-x=hidden]{overflow-y:hidden}[data-overlayscrollbars-overflow-y=scroll]{overflow-y:scroll}[data-overlayscrollbars~=scrollbarPressed],[data-overlayscrollbars~=scrollbarPressed] [data-overlayscrollbars-viewport]{scroll-behavior:auto!important}[data-overlayscrollbars-content]{box-sizing:inherit}[data-overlayscrollbars-contents]:not([data-overlayscrollbars-padding]):not([data-overlayscrollbars-viewport]):not([data-overlayscrollbars-content]){display:contents}[data-overlayscrollbars-grid],[data-overlayscrollbars-grid] [data-overlayscrollbars-padding]{display:grid;grid-template:1fr/1fr}[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding],[data-overlayscrollbars-grid]>[data-overlayscrollbars-viewport],[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding]>[data-overlayscrollbars-viewport]{height:auto!important;width:auto!important}.os-scrollbar{contain:size layout;contain:size layout style;transition:opacity .15s,visibility .15s,top .15s,right .15s,bottom .15s,left .15s;pointer-events:none;position:absolute;opacity:0;visibility:hidden}body>.os-scrollbar{position:fixed;z-index:99999}.os-scrollbar-transitionless{transition:none}.os-scrollbar-track{position:relative;direction:ltr!important;padding:0!important;border:none!important}.os-scrollbar-handle{position:absolute}.os-scrollbar-track,.os-scrollbar-handle{pointer-events:none;width:100%;height:100%}.os-scrollbar.os-scrollbar-track-interactive .os-scrollbar-track,.os-scrollbar.os-scrollbar-handle-interactive .os-scrollbar-handle{pointer-events:auto;touch-action:none}.os-scrollbar-horizontal{bottom:0;left:0}.os-scrollbar-vertical{top:0;right:0}.os-scrollbar-rtl.os-scrollbar-horizontal{right:0}.os-scrollbar-rtl.os-scrollbar-vertical{right:auto;left:0}.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-auto-hide.os-scrollbar-auto-hide-hidden{opacity:0;visibility:hidden}.os-scrollbar-interaction.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-unusable,.os-scrollbar-unusable *,.os-scrollbar-wheel,.os-scrollbar-wheel *{pointer-events:none!important}.os-scrollbar-unusable .os-scrollbar-handle{opacity:0!important;transition:none!important}.os-scrollbar-horizontal .os-scrollbar-handle{bottom:0}.os-scrollbar-vertical .os-scrollbar-handle{right:0}.os-scrollbar-rtl.os-scrollbar-vertical .os-scrollbar-handle{right:auto;left:0}.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless.os-scrollbar-rtl{left:0;right:0}.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless.os-scrollbar-rtl{top:0;bottom:0}.os-scrollbar{--os-size: 0;--os-padding-perpendicular: 0;--os-padding-axis: 0;--os-track-border-radius: 0;--os-track-bg: none;--os-track-bg-hover: none;--os-track-bg-active: none;--os-track-border: none;--os-track-border-hover: none;--os-track-border-active: none;--os-handle-border-radius: 0;--os-handle-bg: none;--os-handle-bg-hover: none;--os-handle-bg-active: none;--os-handle-border: none;--os-handle-border-hover: none;--os-handle-border-active: none;--os-handle-min-size: 33px;--os-handle-max-size: none;--os-handle-perpendicular-size: 100%;--os-handle-perpendicular-size-hover: 100%;--os-handle-perpendicular-size-active: 100%;--os-handle-interactive-area-offset: 0}.os-scrollbar .os-scrollbar-track{border:var(--os-track-border);border-radius:var(--os-track-border-radius);background:var(--os-track-bg);transition:opacity .15s,background-color .15s,border-color .15s}.os-scrollbar .os-scrollbar-track:hover{border:var(--os-track-border-hover);background:var(--os-track-bg-hover)}.os-scrollbar .os-scrollbar-track:active{border:var(--os-track-border-active);background:var(--os-track-bg-active)}.os-scrollbar .os-scrollbar-handle{border:var(--os-handle-border);border-radius:var(--os-handle-border-radius);background:var(--os-handle-bg)}.os-scrollbar .os-scrollbar-handle:before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;display:block}.os-scrollbar .os-scrollbar-handle:hover{border:var(--os-handle-border-hover);background:var(--os-handle-bg-hover)}.os-scrollbar .os-scrollbar-handle:active{border:var(--os-handle-border-active);background:var(--os-handle-bg-active)}.os-scrollbar-horizontal{padding:var(--os-padding-perpendicular) var(--os-padding-axis);right:var(--os-size);height:var(--os-size)}.os-scrollbar-horizontal.os-scrollbar-rtl{left:var(--os-size);right:0}.os-scrollbar-horizontal .os-scrollbar-handle{min-width:var(--os-handle-min-size);max-width:var(--os-handle-max-size);height:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,height .15s}.os-scrollbar-horizontal .os-scrollbar-handle:before{top:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);bottom:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-horizontal:hover .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-horizontal:active .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-active)}.os-scrollbar-vertical{padding:var(--os-padding-axis) var(--os-padding-perpendicular);bottom:var(--os-size);width:var(--os-size)}.os-scrollbar-vertical .os-scrollbar-handle{min-height:var(--os-handle-min-size);max-height:var(--os-handle-max-size);width:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,width .15s}.os-scrollbar-vertical .os-scrollbar-handle:before{left:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);right:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before{right:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);left:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical:hover .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-vertical:active .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-active)}[data-overlayscrollbars~=updating]>.os-scrollbar,.os-theme-none.os-scrollbar{display:none!important}.os-theme-dark,.os-theme-light{box-sizing:border-box;--os-size: 10px;--os-padding-perpendicular: 2px;--os-padding-axis: 2px;--os-track-border-radius: 10px;--os-handle-interactive-area-offset: 4px;--os-handle-border-radius: 10px}.os-theme-dark{--os-handle-bg: rgba(0, 0, 0, .44);--os-handle-bg-hover: rgba(0, 0, 0, .55);--os-handle-bg-active: rgba(0, 0, 0, .66)}.os-theme-light{--os-handle-bg: rgba(255, 255, 255, .44);--os-handle-bg-hover: rgba(255, 255, 255, .55);--os-handle-bg-active: rgba(255, 255, 255, .66)}.das-ui-input[data-v-3085677c]{--das-input-base-border-color: var(--upf-border-color);--das-input-active-border-color: var(--upf-form-active-border-color, var(--upf-color-primary));--das-input-font-color: var(--upf-text-primary);--das-input-sub-font-color: var(--upf-text-placeholder);--das-input-disabled-bg-color: var(--upf-bg-secondary);--das-input-count-color: var(--upf-text-disabled);--das-input-message-font-size: 12px;position:relative;display:inline-block;width:var(--das-input-width)}.das-ui-input[data-v-3085677c] .el-input{height:var(--das-input-height);line-height:var(--das-input-height);font-size:var(--das-input-font-size)}.das-ui-input[data-v-3085677c] .el-input .el-input__inner{position:relative;overflow:hidden;white-space:nowrap;color:var(--das-input-font-color);-webkit-text-fill-color:var(--das-input-font-color)}.das-ui-input[data-v-3085677c] .el-input .el-input__inner::placeholder{color:var(--das-input-sub-font-color);-webkit-text-fill-color:var(--das-input-sub-font-color)}.das-ui-input[data-v-3085677c] .el-input .el-input__inner::-webkit-input-placeholder{color:var(--das-input-sub-font-color);-webkit-text-fill-color:var(--das-input-sub-font-color)}.das-ui-input[data-v-3085677c] .el-input .el-input__count{color:var(--das-input-count-color)}.das-ui-input--ellipsis[data-v-3085677c] .el-input .el-input__inner{text-overflow:ellipsis}.das-ui-input.das-ui-textarea[data-v-3085677c] .el-textarea .el-textarea__inner{color:var(--das-input-font-color);font-size:var(--das-input-font-size);padding:8px;line-height:22px;min-height:80px!important}.das-ui-input.das-ui-textarea[data-v-3085677c] .el-textarea .el-input__count{color:var(--das-input-count-color);font-size:var(--das-input-font-size);bottom:12px;padding-left:5px}.das-ui-input.das-ui-textarea[data-v-3085677c] .el-textarea.das-input-error .el-textarea__inner,.das-ui-input.das-ui-textarea[data-v-3085677c] .el-textarea.das-input-error .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--upf-color-error) inset}.das-ui-input.das-ui-textarea[data-v-3085677c] .el-textarea.das-input-success .el-textarea__inner,.das-ui-input.das-ui-textarea[data-v-3085677c] .el-textarea.das-input-success .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--upf-color-success) inset}.das-ui-input.das-ui-textarea[data-v-3085677c] .el-textarea textarea::-webkit-scrollbar{width:8px;height:8px;background-color:transparent}.das-ui-input.das-ui-textarea[data-v-3085677c] .el-textarea textarea::-webkit-scrollbar-corner{background-color:#0000}.das-ui-input.das-ui-textarea[data-v-3085677c] .el-textarea textarea::-webkit-scrollbar-thumb{border-radius:16px;border:4px solid #b2b2b2;background-clip:content-box;background-color:#9999994d}.das-ui-input--border-type-bordered[data-v-3085677c] .el-input .el-input__wrapper{border-radius:2px;padding:0 8px;box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-base-border-color)) inset}.das-ui-input--border-type-bordered[data-v-3085677c] .el-input .el-input__wrapper.is-focus,.das-ui-input--border-type-bordered[data-v-3085677c] .el-input .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bordered[data-v-3085677c] .el-textarea .el-textarea__inner{border-radius:4px;box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-base-border-color)) inset}.das-ui-input--border-type-bordered[data-v-3085677c] .el-textarea .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bordered[data-v-3085677c] .el-textarea .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bottom[data-v-3085677c] .el-input .el-input__wrapper{padding:0;border-radius:0;box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-base-border-color)) inset}.das-ui-input--border-type-bottom[data-v-3085677c] .el-input .el-input__wrapper.is-focus,.das-ui-input--border-type-bottom[data-v-3085677c] .el-input .el-input__wrapper:hover{box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bottom[data-v-3085677c] .el-textarea .el-textarea__inner{border-radius:0;box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-base-border-color)) inset}.das-ui-input--border-type-bottom[data-v-3085677c] .el-textarea .el-textarea__inner:focus{box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--border-type-bottom[data-v-3085677c] .el-textarea .el-textarea__inner:hover{box-shadow:0 -1px 0 0 var(--das-input-border-color, var(--das-input-active-border-color)) inset}.das-ui-input--view[data-v-3085677c] .el-input .el-input__inner{cursor:default}.das-ui-input--disabled[data-v-3085677c] .el-input .el-input__wrapper{background-color:var(--das-input-disabled-bg-color)}.das-ui-input--disabled[data-v-3085677c] .el-input .el-input__inner{color:var(--das-input-sub-font-color);-webkit-text-fill-color:var(--das-input-sub-font-color)}.das-ui-input--disabled.das-ui-textarea[data-v-3085677c] .el-textarea .el-textarea__inner{color:var(--das-input-sub-font-color);background-color:var(--das-input-disabled-bg-color)}.das-ui-input .das-input-message[data-v-3085677c]{color:var(--das-input-message-color);font-size:var(--das-input-message-font-size);padding-top:4px}.das-ui-input .das-input-message_content[data-v-3085677c]{line-height:18px;display:block;white-space:break-spaces}.das-ui-input .das-input-message_content.is-ellipsis[data-v-3085677c]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.das-ui-input[data-v-3085677c] .el-input__prefix .el-input__prefix-inner{color:var(--das-input-sub-font-color)}.das-ui-input[data-v-3085677c] .el-input__prefix .el-input__prefix-inner>:last-child{margin-right:4px}.das-ui-input[data-v-3085677c] .el-input__suffix .el-input__suffix-inner{color:var(--das-input-sub-font-color)}.das-ui-input[data-v-3085677c] .el-input__suffix .el-input__suffix-inner>:first-child{margin-left:4px}.das-ui-input[data-v-3085677c] .el-input-group--prepend .el-input-group__prepend{padding:0 8px;border-radius:2px 0 0 2px;box-shadow:1px 0 0 0 var(--das-input-base-border-color) inset,0 1px 0 0 var(--das-input-base-border-color) inset,0 -1px 0 0 var(--das-input-base-border-color) inset;background-color:var(--das-input-prepend-bg-color, transparent)}.das-ui-input[data-v-3085677c] .el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.das-ui-input[data-v-3085677c] .el-input-group--append .el-input-group__append{padding:0 8px;border-radius:0 2px 2px 0;box-shadow:0 1px 0 0 var(--das-input-base-border-color) inset,0 -1px 0 0 var(--das-input-base-border-color) inset,-1px 0 0 0 var(--das-input-base-border-color) inset;background-color:transparent}.das-ui-input[data-v-3085677c] .el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.das-ui-input[data-v-3085677c] .el-input .el-input__clear{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1685934237687'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2634'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M512%20128c212.064%200%20384%20171.936%20384%20384s-171.936%20384-384%20384S128%20724.064%20128%20512%20299.936%20128%20512%20128z%20m-140.384%20198.72a32%2032%200%200%200-42.24%202.656l-2.656%203.008a32%2032%200%200%200%202.656%2042.24L466.72%20512l-137.344%20137.376a32%2032%200%200%200%2045.248%2045.248L512%20557.28l137.376%20137.344%203.008%202.656a32%2032%200%200%200%2042.24-2.656l2.656-3.008a32%2032%200%200%200-2.656-42.24L557.28%20512l137.344-137.376a32%2032%200%200%200-45.248-45.248L512%20466.72l-137.376-137.344z'%20fill='%23d9d9d9'%20fill-opacity='1'%20p-id='2635'%3e%3c/path%3e%3c/svg%3e");background-size:cover;width:16px;height:16px}.das-ui-input[data-v-3085677c] .el-input .el-input__clear:hover{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1685934237687'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2634'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M512%20128c212.064%200%20384%20171.936%20384%20384s-171.936%20384-384%20384S128%20724.064%20128%20512%20299.936%20128%20512%20128z%20m-140.384%20198.72a32%2032%200%200%200-42.24%202.656l-2.656%203.008a32%2032%200%200%200%202.656%2042.24L466.72%20512l-137.344%20137.376a32%2032%200%200%200%2045.248%2045.248L512%20557.28l137.376%20137.344%203.008%202.656a32%2032%200%200%200%2042.24-2.656l2.656-3.008a32%2032%200%200%200-2.656-42.24L557.28%20512l137.344-137.376a32%2032%200%200%200-45.248-45.248L512%20466.72l-137.376-137.344z'%20fill='%23999999'%20fill-opacity='1'%20p-id='2635'%3e%3c/path%3e%3c/svg%3e")}.das-ui-input[data-v-3085677c] .el-input .el-input__clear svg{display:none}
@@ -1,141 +1,139 @@
1
1
  # DasSearchForm 升级指南
2
2
 
3
- 本文以当前最新 `DasSearchForm` 实现为准,说明从旧版表单迁移到工具栏布局、接入园区/楼栋通用筛选,以及保证业务请求时序正确的完整方式。它不是某个业务页面的复制模板;示例中的 `options`、列表接口和业务字段必须替换为目标页面自己的实现。
3
+ 本文随 `@das-fed/upf-ui` 发布,供 AI 根据业务页面路径和页面目标完成 DasSearchForm 迁移。业务方不需要重复描述组件内部实现;AI 必须检查运行项目实际安装的包及页面请求链路。
4
4
 
5
- ## 1. 这次改动解决了什么
5
+ ## 业务最短提问
6
6
 
7
- 新版 toolbar 不只是换布局,核心变化是把多园区空间筛选抽离成公共能力,弥补之前的项目切换:
8
-
9
- 1. 业务原本接口的请求参数保持不变。页面需要按空间过滤时才配置空间控件;不需要空间过滤时不配置,组件不会请求园区数据,也不会生成空间条件。
10
- 2. 公共请求层会把 `park(园区)`、`building(园区下空间)` 提升到 URL query;后端统一从 query 读取,POST/GET 等请求保持同一约定。
11
- 3. 园区变化时先清空旧楼栋和普通筛选状态,加载新园区对应空间数据后再提交查询;楼栋实际变化后提交一次最新查询。
12
- 6. `spaceChange` 只用于通知空间状态变化,不应在其中再次请求业务列表;业务查询统一使用 `@confirm`。
13
-
14
- ## 2. 迁移前后
15
-
16
- ### 旧版
17
-
18
- ```vue
19
- <DasSearchForm ref="searchFormRef" :options="options" @confirm="searchData" />
7
+ ```text
8
+ 请按当前项目实际安装的 @das-fed/upf-ui search-form skills,升级
9
+ <相对项目根目录的页面路径> 中的 DasSearchForm。保留页面现有业务筛选和请求行为,
10
+ 按页面设计决定是否使用园区/楼栋筛选;空间参数由组件/公共请求层处理,业务 handler 和 payload
11
+ 不处理 park/building。检查首次查询、日期、重置、分页时序,完成必要修改和验证,
12
+ 并报告改动及未验证项。
20
13
  ```
21
14
 
22
- 旧版默认是 `legacy`,字段可能按历史配置自动触发查询。迁移前应盘点字段回调、日期/重复规则、弹窗提交、分页和导出的所有请求路径。
23
-
24
- ### toolbar 版
15
+ 示例:
25
16
 
26
- ```vue
27
- <DasSearchForm
28
- ref="searchFormRef"
29
- layout-mode="toolbar"
30
- :options="options"
31
- :space-config="{
32
- visible: true,
33
- showPark: true,
34
- showBuilding: true,
35
- defaultPark: true,
36
- parkMultiple: true,
37
- buildingMultiple: false,
38
- }"
39
- @confirm="searchData"
40
- @reset="resetAuxiliary"
41
- @space-change="handleSpaceChange"
42
- @space-error="handleSpaceError"
43
- />
17
+ ```text
18
+ 请按当前项目实际安装的 @das-fed/upf-ui search-form skills,升级
19
+ src/views/myMeeting/pages/home/hooks/use-search/Search.vue 中的 DasSearchForm。保留页面现有
20
+ 业务筛选和请求行为,按页面设计决定是否使用园区/楼栋筛选;空间参数由组件/公共请求层处理,
21
+ 业务 handler 和 payload 不处理 park/building。检查首次查询、日期、重置、分页时序,完成必要修改
22
+ 和验证,并报告改动及未验证项。
44
23
  ```
45
24
 
46
- toolbar 中普通字段变化只更新字段并执行字段回调,不自动提交列表查询;点击查询、调用实例 `confirm()`,以及空间初始化/园区联动完成后的内部确认会触发 `confirm`。字段回调中不要保留会造成重复列表请求的逻辑。
47
-
48
- ## 3. Props 与空间配置
49
-
50
- 以下是 toolbar 相关公共 Props:
51
-
52
- | Prop | 默认值 | 说明 |
53
- | --- | --- | --- |
54
- | `layoutMode` | `legacy` | 传 `toolbar` 启用新版;不传不改变旧页面。 |
55
- | `options` | `[]` | 普通筛选字段配置,可为 `null`。为空时不渲染普通筛选区域及查询/重置按钮,但空间控件仍可独立显示。 |
56
- | `spaceConfig` | `{}` | 控制园区/楼栋显示、选择模式、默认值和数据源。 |
57
- | `spaceValue` | 空空间值 | 受控空间状态,结构为 `{ parkIds: [], buildingIds: [] }`;推荐使用 `v-model:space-value` 接收组件变更。 |
58
- | `searchOrder` | `last` | toolbar 普通字段的排列策略,不改变请求参数。 |
59
-
60
- ### `spaceConfig`
61
-
62
- | 字段 | 默认值 | 行为 |
63
- | --- | --- | --- |
64
- | `visible` | `false` | 空间能力总开关。关闭时不显示内置控件、不加载默认园区数据,也不输出 `park/building`。 |
65
- | `showPark` | 跟随 `visible` | 是否显示园区下拉;关闭时 `confirm` 不输出 `park`。 |
66
- | `showBuilding` | 跟随 `visible` | 是否显示楼栋/空间树;关闭时 `confirm` 不输出 `building`。 |
67
- | `defaultPark` | `true` | 园区列表加载后且外部没有有效园区值时,是否自动选中第一项。关闭时不补默认园区,但仍会完成空间初始化并提交一次不带默认 `park` 的首次查询。 |
68
- | `parkMultiple` | `true` | 园区是否多选。多选时 `confirm.park` 为 ID 数组;单选时为单个 ID 或空字符串。 |
69
- | `buildingMultiple` | `false` | 楼栋/空间是否多选。`confirm.building` 始终是 ID 数组。 |
70
- | `size` | `small` | 同时控制园区和楼栋控件尺寸。 |
71
- | `load` | 默认数据源 | 自定义 `(signal) => Promise<{ parks, buildings }>`,提供后替代默认空间请求;应遵守 `AbortSignal`。 |
25
+ 若截图/需求已明确空间控件行为,可只追加一句,例如“页面仅展示单选园区,不展示楼栋”。如果页面现状和设计均无法判断是否需要空间过滤,AI 只追问这个关键问题,不擅自开启空间筛选。
72
26
 
73
- ### 配置边界
27
+ ## AI 执行约定
74
28
 
75
- - 只有 `visible=true` 且至少一个空间控件启用时,组件才需要完成空间初始化并建立首次查询。
76
- - `visible=true, showPark=false, showBuilding=true` 时,默认楼栋树缺少当前园区上下文;需要业务通过 `load` 返回完整可用树,不能期待组件自动选择全部园区。
77
- - 仅显示园区时仍会加载园区列表;不显示楼栋时不会请求楼栋详情或空间树。
78
- - 没有任何空间控件时,组件不初始化园区数据,不影响普通业务查询的首次加载。
29
+ 1. 从启动项目 `package.json` 所在目录定位 `node_modules/@das-fed/upf-ui/packages/components/search-form/skills/`,先读取本指南、`das-search-form-toolbar-migration/SKILL.md` 和 `迁移要点与常见问题.md`。不要默认从 monorepo 根或另一个 checkout 读取依赖资料。
30
+ 2. 核对该项目 manifest 声明版本、锁文件解析版本和实际安装包目录/文件。只有运行项目实际解析到的包可证明其使用版本;三者不一致时明确报告,不得只凭截图或 lockfile 推断运行时能力。
31
+ 3. 若已安装包缺少所需 API/行为,说明版本阻塞并停止使用该 API;不得臆造 prop、复制其它 checkout 的源码到业务目录或静默升级依赖。未经明确要求,不修改 UPF 版本、锁文件或发布配置。
32
+ 4. 阅读目标 Search.vue、父级搜索状态、表格/分页查询、API 模块和页面设计,盘点普通字段、默认值、权限条件、日期/周期转换、异步回调、初始请求及所有列表查询入口。根据页面需求判定空间控件是否应启用。
33
+ 5. 尽量仅修改当前页面查询链路,保留原业务筛选语义。按影响执行定向类型检查/测试/构建。要求 Chrome 时,用外部 Chrome 检查目标页面和 Network;不能运行时明确说明,不得以单测代替浏览器验证。
79
34
 
80
- ## 4. confirm、spaceChange 与请求时序
35
+ ## 新旧布局
81
36
 
82
- ### `confirm(formValues, selectedSpace)`
37
+ `layoutMode` 支持 `legacy` 和 `toolbar`,默认 `legacy`;不设置时旧页面保持旧模式。只有页面明确采用新版工具栏时才设置 `layout-mode="toolbar"`。
83
38
 
84
- `confirm` 是业务列表查询的唯一推荐入口:
85
-
86
- - `formValues` 是当前提交快照,包含普通字段和当前可见空间字段。
87
- - 园区控件显示时字段名为 `park`;多选为数组,单选为标量,无选择时分别为 `[]` 或 `''`。
88
- - 楼栋控件显示时字段名为 `building`,值为楼栋/楼层/空间 ID 数组。
89
- - 控件隐藏时对应字段被省略,不是 `undefined` 或空数组。
90
- - `selectedSpace` 是内部空间状态快照,结构为 `parkIds/buildingIds`,主要用于受控同步和调试;业务请求优先读取第一个参数。
91
-
92
- 组件保证以下时序:
93
-
94
- 1. 空间初始化未完成时,查询按钮和 `confirm()` 都不会提交业务查询。
95
- 2. 初始化完成后只提交一次首次查询;`defaultPark` 只决定是否补选第一项,不决定是否跳过首次查询。
96
- 3. 园区切换会先发布新园区并清空楼栋,再加载新园区空间数据,最后用最新空间快照确认。
97
- 4. 楼栋选择实际改变后确认一次;同一个值被控件重复回写时不会再次确认。
98
- 5. 选择已加载节点不会额外请求业务列表以外的空间详情;展开未加载节点可能触发合法的楼栋子节点懒加载。
39
+ ```vue
40
+ <das-search-form layout-mode="toolbar" :options="options" @confirm="searchData" />
41
+ ```
99
42
 
100
- ### `spaceChange`
43
+ Toolbar 普通字段变化本身不自动查询。按钮查询、实例 `confirm()`、重置后的内部确认及空间初始化/选择联动会触发 `confirm`。迁移时要检查旧字段回调、父级首次查询和表格挂载顺序,避免重复或漏查。
101
44
 
102
- `spaceChange` 在空间状态实际变化时触发,参数是复制后的 `{ parkIds, buildingIds }`。它适合:
45
+ ## 公共参数合同
103
46
 
104
- - 同步父组件的 `spaceValue`;
105
- - 更新页面标题、权限或其它依赖空间的 UI 状态;
47
+ - `@confirm` 第一个参数 `formValues` 是普通筛选快照,不含空间条件。第二个参数 `selectedSpace` 是可选 UI 状态 `{ parkIds, buildingIds }`,用于受控展示等场景;通常业务无需消费它。
48
+ - `park`、`building` 是后端从 URL query 读取的通用空间条件,不是业务 DTO 字段。业务 Search.vue、搜索状态、handler、分页状态、请求 payload 不定义、映射或兼容 `park`、`building`、`parkIds`、`buildingIds`。
49
+ - 当前页面空间控件可见且初始化完成时,search-form 提供该页面的最新空间值;公共 `createService` 在发出 GET/POST 前把它们加入 query,数组用逗号序列化,并从 JSON body 删除同名键。
50
+ - 业务照常使用现有 `createService`。不在业务层拼 URL/query,不把空间值复制到 body。显式 query 中同名参数优先于自动公共空间值,但业务不应依此实现空间处理。
51
+ - 不配置空间控件时组件不请求园区数据、不主动注入空间条件,也不从其它页面/Tab 继承旧值。当前 createService 仍会把历史业务 JSON body 中已有的 `park/building` 移到 query;迁移后的业务因此必须删除这些字段,才能满足“空间条件不参与”的契约。不要为不需要园区过滤的页面强制启用空间筛选。
52
+ - 控件隐藏时对应空间键不注入;控件可见但未选择时保留空值语义(数组序列化为空字符串),与键缺失不同。
53
+ - `spaceValue` 内部 UI 状态可使用 `parkIds/buildingIds`,这不代表业务接口可以使用这些字段。
106
54
 
107
- 不要在 `spaceChange` 中直接调用业务列表接口,也不要再手动调用 `confirm`。空间选择完成后的业务查询由组件统一触发 `confirm`。
55
+ 正确的业务 handler 只映射业务字段:
108
56
 
57
+ ```ts
58
+ function searchData(values: Record<string, any>) {
59
+ requestList({ params: { pageIndex: pageIndex.value, pageSize: pageSize.value }, data: mapBusinessFields(values) })
60
+ }
61
+ ```
109
62
 
110
- ## 5. reset 与实例方法
63
+ `requestList` 应沿用页面既有 `createService` API。不要读取第二个参数并将空间字段合入 `data` 或 `params`。
111
64
 
112
- `DasSearchForm` 对外转发以下实例方法:
65
+ ## Props 与空间配置
113
66
 
114
- | 方法 | 用途 |
115
- | --- | --- |
116
- | `confirm()` | 等待字段异步回调完成后提交当前查询快照。空间未初始化完成时不会提交。 |
117
- | `resetSearch()` | 恢复 `options` 的初始值,触发一次 `reset`,随后提交一次确认;默认保留园区/楼栋。 |
118
- | `closeSearch(target)` | 清理指定普通筛选字段并触发 `clearSearch`;不修改空间状态。 |
119
- | `treeSelectResetLazyLoad(key)` | 重置指定普通树选择字段的懒加载状态。 |
120
- | `getCollapseStatus()` | 读取 toolbar 展开/收起状态。 |
67
+ | Prop | 行为 |
68
+ | ------------- | -------------------------------------------------------------------------------------- |
69
+ | `layoutMode` | `legacy` / `toolbar`,默认 `legacy`。 |
70
+ | `options` | 普通筛选项,允许 `null`;空数组时普通筛选区及查询/重置按钮隐藏,空间控件仍可单独显示。 |
71
+ | `spaceConfig` | 默认 `{}`;只有实际需要空间条件时设置 `visible: true`。 |
72
+ | `spaceValue` | 可选受控 UI 值 `{ parkIds: [], buildingIds: [] }`,不是业务请求参数。 |
73
+ | `searchOrder` | `last` 默认将搜索输入类字段置后;`original` 保留原顺序。 |
121
74
 
75
+ `spaceConfig`:
122
76
 
123
- ## 6. 典型边界场景
77
+ | 字段 | 默认/说明 |
78
+ | ------------------ | -------------------------------------------------------------------------------------------------------- |
79
+ | `visible` | 默认 false。空间控件及数据加载总开关。 |
80
+ | `showPark` | 默认显示;关闭时不显示园区控件、不注入 `park`。 |
81
+ | `showBuilding` | 默认显示;关闭时不显示楼栋/空间控件、不注入 `building`。 |
82
+ | `defaultPark` | 默认 true;只决定是否自动选第一园区,不取消初始化和首次确认。false 时可见 `park` 是空值。 |
83
+ | `parkMultiple` | 默认 true;false 为单选园区。 |
84
+ | `buildingMultiple` | 默认 false;控制楼栋/空间单选或多选。 |
85
+ | `size` | `small`、`middle`、`large`,默认 `small`。 |
86
+ | `load` | 自定义 `(signal) => Promise<{ parks, buildings }>`,完全替代默认空间数据加载,须返回完整数据并处理取消。 |
124
87
 
125
- | 场景 | 预期行为 |
126
- | --- | --- |
127
- | 无空间控件、无默认值 | 不请求园区数据;普通表单按业务自己的查询时机提交。 |
128
- | 仅园区控件、`defaultPark=true` | 加载园区列表,自动选首项,初始化完成后查询一次,query 带 `park`。 |
129
- | 仅园区控件、`defaultPark=false` | 加载园区列表但不选首项,初始化完成后查询一次,query 不带有效 `park`。 |
130
- | 园区和楼栋控件、默认值开启 | 首园区确定、楼栋数据加载完成后才首次查询;不会先发空 `park` 请求。 |
131
- | 园区和楼栋控件、默认值关闭 | 不补园区;仍完成初始化并首次查询一次,后续用户选择园区/楼栋再查询。 |
132
- | 切换园区 | 清空旧楼栋和普通筛选,加载新空间后查询一次,query 使用新 `park`。 |
133
- | 选择楼栋 | query 同时带稳定的 `park` 和最新 `building`;重复回写不重复请求。 |
134
- | 未配置园区/楼栋但业务接口可用 | 不产生空间字段;后端按通用接口逻辑处理,不强行关联园区。 |
88
+ ```vue
89
+ <!-- 仅按园区过滤,不展示楼栋 -->
90
+ <das-search-form
91
+ layout-mode="toolbar"
92
+ :options="options"
93
+ :space-config="{ visible: true, showPark: true, showBuilding: false, parkMultiple: false }"
94
+ @confirm="searchData"
95
+ />
135
96
 
136
- ## 7. 其他说明
97
+ <!-- 按园区和楼栋/空间过滤 -->
98
+ <das-search-form
99
+ layout-mode="toolbar"
100
+ :options="options"
101
+ :space-config="{ visible: true, showPark: true, showBuilding: true, defaultPark: true }"
102
+ @confirm="searchData"
103
+ />
137
104
 
138
- - 未配置 `layout-mode` 的旧页面行为不变。
139
- - `park/building` 只在对应控件显示且有配置时出现.
140
- - Network 中业务接口的 `park/building` 在 query中包含这两个字段。
105
+ <!-- 不需要空间过滤 -->
106
+ <das-search-form layout-mode="toolbar" :options="options" @confirm="searchData" />
107
+ ```
141
108
 
109
+ 若 `showPark=false, showBuilding=true`,默认数据源没有园区上下文,须由自定义 `load` 提供完整楼栋树。
110
+
111
+ ## 查询时序与事件
112
+
113
+ - 启用空间后,首次业务确认等待园区列表/自定义数据加载;启用默认园区时先确定选择。显示楼栋时等待楼栋初始化流程结束后再确认;楼栋加载错误通过 `spaceError` 报告,当前实现可能以空楼栋值继续首次确认,需结合目标已安装版本和业务要求验证。
114
+ - `defaultPark: false` 仍完成空间初始化并首次确认一次;它只关闭首项默认选择。
115
+ - 园区变化由组件清空旧楼栋和普通筛选,加载新空间后确认一次;楼栋实际值变化后确认一次。重复写回相同值不应重复查询。
116
+ - `spaceChange` 只用于 `{ parkIds, buildingIds }` UI 状态同步/界面联动,不能在此请求业务列表或手动调用 `confirm`。
117
+ - `spaceError` 是空间加载错误诊断。不能把空间初始化失败当作成功的空值状态而盲发首次业务查询。楼栋加载错误的具体确认行为需以实际安装版本为准。
118
+ - `resetSearch()` 重置普通字段,触发 `reset` 并内部确认一次,默认保留空间值。reset handler 和表格 watcher 不应再各发一遍。
119
+ - 表格可能晚于 Search.vue 异步挂载,应能立即消费已经提交的搜索状态/ready 状态;不要额外保留无条件 `onMounted` 列表查询。
120
+ - 日期/周期字段回调若自己触发业务请求,要与 toolbar confirm 协调,保证每次用户动作只有预期的一条列表查询路径。
121
+ - 公共空间 query 对当前可见页面生效。缓存 Tab 隐藏/返回时要验证来源切换,不得把另一页面的空间值带入请求。
122
+
123
+ ## 暴露方法
124
+
125
+ | 方法 | 用途 |
126
+ | ------------------------------ | ------------------------------------------------ |
127
+ | `confirm()` | 提交普通筛选快照,等待异步字段和空间初始化门禁。 |
128
+ | `resetSearch()` | 重置普通筛选并确认,保留空间值。 |
129
+ | `closeSearch(target)` | 清理指定普通筛选字段并触发 `clearSearch`。 |
130
+ | `treeSelectResetLazyLoad(key)` | 重置普通树筛选项的懒加载。 |
131
+ | `getCollapseStatus()` | 读取工具栏展开状态。 |
132
+
133
+ ## 页面验收
134
+
135
+ - 确认是否启用 toolbar 与空间筛选,并以页面 UI/业务需求为依据。
136
+ - 检查首次进入、筛选、日期/周期、重置、分页、Tab 首次进入及缓存返回的请求次数和 initiator。
137
+ - 若启用空间,确认园区/楼栋变化各只触发预期请求,query 稳定使用最新可见值。
138
+ - Network 中空间值只在 query;JSON body 只有业务字段。隐藏空间控件或无空间配置,且业务 body 已移除历史空间字段时,不应出现空间键。
139
+ - 报告运行的检查、Chrome 是否完成及未验证项。