@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 +7 -7
- package/packages/components/input/index.js +3 -1
- package/packages/components/input/index.js.gz +0 -0
- package/packages/components/input/src/index.vue.d.ts +2 -1
- package/packages/components/input/src/type.d.ts +73 -71
- package/packages/components/input/style.css +1 -1
- package/packages/components/input/style.css.gz +0 -0
- package/packages/components/search-form/skills/DasSearchForm/345/215/207/347/272/247/346/214/207/345/215/227.md +111 -113
- package/packages/components/search-form/skills/das-search-form-toolbar-migration/SKILL.md +40 -31
- package/packages/components/search-form/skills/das-search-form-toolbar-migration//350/277/201/347/247/273/350/246/201/347/202/271/344/270/216/345/270/270/350/247/201/351/227/256/351/242/230.md +64 -29
- package/packages/components/select/index.js +393 -368
- package/packages/components/select/index.js.gz +0 -0
- package/packages/components/select/style.css +1 -1
- package/packages/components/select/style.css.gz +0 -0
- package/packages/components/tree-v2/index.js +3 -1
- package/packages/components/tree-v2/index.js.gz +0 -0
- package/packages/components/tree-v2/style.css +1 -1
- package/packages/components/tree-v2/style.css.gz +0 -0
- package/presets/theme-cjb.css +321 -321
- package/presets/theme-default.css +321 -321
- package/presets/theme-dkh.css +321 -321
- package/presets/theme-ssl.css +321 -321
- package/release-meta.json +4 -4
- package/theme-default.css +321 -321
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@das-fed/upf-ui",
|
|
3
|
-
"version": "6.4.0-dev.
|
|
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.
|
|
59
|
-
"@das-fed/upf-utils": "6.4.0-dev.
|
|
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.
|
|
95
|
+
"releaseVersion": "6.4.0-dev.314",
|
|
96
96
|
"distTag": "dev",
|
|
97
97
|
"releaseType": "publish",
|
|
98
|
-
"publishedAt": "2026-10-
|
|
98
|
+
"publishedAt": "2026-10-27T11:30:47.947+08:00",
|
|
99
99
|
"sourceBranch": "dev",
|
|
100
|
-
"sourceCommit": "
|
|
101
|
-
"gitTag": "upf-release/v6.4.0-dev.
|
|
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-
|
|
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" }
|
|
Binary file
|
|
@@ -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"
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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}
|
|
Binary file
|
|
@@ -1,141 +1,139 @@
|
|
|
1
1
|
# DasSearchForm 升级指南
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本文随 `@das-fed/upf-ui` 发布,供 AI 根据业务页面路径和页面目标完成 DasSearchForm 迁移。业务方不需要重复描述组件内部实现;AI 必须检查运行项目实际安装的包及页面请求链路。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 业务最短提问
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
### toolbar 版
|
|
15
|
+
示例:
|
|
25
16
|
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
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
|
-
|
|
76
|
-
|
|
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
|
-
##
|
|
35
|
+
## 新旧布局
|
|
81
36
|
|
|
82
|
-
|
|
37
|
+
`layoutMode` 支持 `legacy` 和 `toolbar`,默认 `legacy`;不设置时旧页面保持旧模式。只有页面明确采用新版工具栏时才设置 `layout-mode="toolbar"`。
|
|
83
38
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
43
|
+
Toolbar 普通字段变化本身不自动查询。按钮查询、实例 `confirm()`、重置后的内部确认及空间初始化/选择联动会触发 `confirm`。迁移时要检查旧字段回调、父级首次查询和表格挂载顺序,避免重复或漏查。
|
|
101
44
|
|
|
102
|
-
|
|
45
|
+
## 公共参数合同
|
|
103
46
|
|
|
104
|
-
-
|
|
105
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
63
|
+
`requestList` 应沿用页面既有 `createService` API。不要读取第二个参数并将空间字段合入 `data` 或 `params`。
|
|
111
64
|
|
|
112
|
-
|
|
65
|
+
## Props 与空间配置
|
|
113
66
|
|
|
114
|
-
|
|
|
115
|
-
|
|
|
116
|
-
| `
|
|
117
|
-
| `
|
|
118
|
-
| `
|
|
119
|
-
| `
|
|
120
|
-
| `
|
|
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
|
-
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
-
|
|
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
|
-
|
|
139
|
-
-
|
|
140
|
-
|
|
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 是否完成及未验证项。
|