fast-element-plus 2.0.25 → 2.0.27

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/CHANGELOG.md CHANGED
@@ -4,6 +4,28 @@ All notable changes to this project are documented in this file.
4
4
 
5
5
  The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and releases should follow [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [2.0.27] - 2026-11-10
8
+
9
+ ### Fixed
10
+
11
+ - Pass string and numeric `FaTree` `initParam` values directly to `requestApi` on initial load and refresh. Object queries still merge the current `searchValue`.
12
+
13
+ ### Documentation and Tooling
14
+
15
+ - Allow Promise-returning callbacks in TSX and SFC object properties and clarify the rules for JSX attributes.
16
+
17
+ ## [2.0.26] - 2026-10-20
18
+
19
+ ### Changed
20
+
21
+ - Default `ElInputNumber` text alignment to `left` when the package root is imported, while preserving explicit per-instance `align` values and the existing `controls: false` default.
22
+ - Reorder SCSS declarations and simplify redundant nesting without changing selector scope or component styling.
23
+
24
+ ### Documentation and Tooling
25
+
26
+ - Use HTTPS for the official website and documentation links in package metadata and repository documents.
27
+ - Synchronize the bilingual Element Plus defaults documentation and runtime contract with the new input-number alignment default.
28
+
7
29
  ## [2.0.25] - 2026-10-19
8
30
 
9
31
  ### Fixed
@@ -288,6 +310,8 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
288
310
  - Scoped Table styles and added responsive IconSelector styling.
289
311
  - Improved dialogs, drawers, tables, forms, trees, selectors, car-number input, images, and uploads for dark mode, touch input, and narrow viewports.
290
312
 
313
+ [2.0.27]: https://gitee.com/FastDotnet/fast.element.plus/compare/v2.0.26...v2.0.27
314
+ [2.0.26]: https://gitee.com/FastDotnet/fast.element.plus/compare/v2.0.25...v2.0.26
291
315
  [2.0.25]: https://gitee.com/FastDotnet/fast.element.plus/compare/v2.0.24...v2.0.25
292
316
  [2.0.24]: https://gitee.com/FastDotnet/fast.element.plus/compare/v2.0.23...v2.0.24
293
317
  [2.0.23]: https://gitee.com/FastDotnet/fast.element.plus/compare/v2.0.22...v2.0.23
package/CONTRIBUTING.md CHANGED
@@ -15,7 +15,7 @@ pnpm check
15
15
  ```
16
16
 
17
17
  Use `pnpm dev` when a long-running tsdown watch build is useful during implementation.
18
- Review component usage and examples in the [documentation](http://docs.fastdotnet.cn/zh-CN/frontend/element-plus/).
18
+ Review component usage and examples in the [documentation](https://docs.fastdotnet.cn/zh-CN/frontend/element-plus/).
19
19
 
20
20
  ## Design rules
21
21
 
package/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  A Vue 3 and Element Plus business-component SDK with components, directives, hooks and types.
16
16
 
17
- **[Documentation](http://docs.fastdotnet.cn/en-US/frontend/element-plus/) · [Official website](http://fastdotnet.com)**
17
+ **[Documentation](https://docs.fastdotnet.cn/en-US/frontend/element-plus/) · [Official website](https://fastdotnet.com)**
18
18
 
19
19
  This SDK is not a drop-in replacement for Element Plus; business defaults, event semantics and data flows follow Fast conventions.
20
20
 
@@ -28,7 +28,7 @@ This SDK is not a drop-in replacement for Element Plus; business defaults, event
28
28
 
29
29
  Vue, Element Plus, Element Plus Icons, and Fast.Element.Plus.Icons are required peer dependencies. Both icon packages remain external to the build. Package managers install declared runtime dependencies automatically, and the ESM build keeps those imports external instead of copying them into `dist/node_modules`; the CDN IIFE bundles them for direct browser use. Component-only utilities are included in the Fast.Element.Plus build.
30
30
 
31
- The current manually audited Element Plus baseline is `2.14.x`. When the Element Plus minor version changes, for example from `2.14.x` to `2.15.x` or later, native Props, Emits, Slots, exposed methods, defaults, and internal style structures must be audited again. See [Element Plus compatibility and upgrade audit](http://docs.fastdotnet.cn/en-US/frontend/element-plus/ELEMENT_PLUS_COMPATIBILITY).
31
+ The current manually audited Element Plus baseline is `2.14.x`. When the Element Plus minor version changes, for example from `2.14.x` to `2.15.x` or later, native Props, Emits, Slots, exposed methods, defaults, and internal style structures must be audited again. See [Element Plus compatibility and upgrade audit](https://docs.fastdotnet.cn/en-US/frontend/element-plus/ELEMENT_PLUS_COMPATIBILITY).
32
32
 
33
33
  ## Install
34
34
 
@@ -156,12 +156,12 @@ Open-ended business rows, paging extensions, selector/tree payloads, request par
156
156
 
157
157
  ## Documentation
158
158
 
159
- - [Component documentation and interactive examples (Chinese)](http://docs.fastdotnet.cn/en-US/frontend/element-plus/components/overview)
160
- - [Installation guide (Chinese)](http://docs.fastdotnet.cn/en-US/frontend/element-plus/guide/installation)
161
- - [Documentation build and deployment (Chinese)](http://docs.fastdotnet.cn/en-US/frontend/element-plus/guide/deployment)
162
- - [API reference](http://docs.fastdotnet.cn/en-US/frontend/element-plus/api/)
163
- - [Runtime contract](http://docs.fastdotnet.cn/en-US/frontend/element-plus/RUNTIME_CONTRACT)
164
- - [Element Plus compatibility and upgrade audit](http://docs.fastdotnet.cn/en-US/frontend/element-plus/ELEMENT_PLUS_COMPATIBILITY)
159
+ - [Component documentation and interactive examples (Chinese)](https://docs.fastdotnet.cn/en-US/frontend/element-plus/components/overview)
160
+ - [Installation guide (Chinese)](https://docs.fastdotnet.cn/en-US/frontend/element-plus/guide/installation)
161
+ - [Documentation build and deployment (Chinese)](https://docs.fastdotnet.cn/en-US/frontend/element-plus/guide/deployment)
162
+ - [API reference](https://docs.fastdotnet.cn/en-US/frontend/element-plus/api/)
163
+ - [Runtime contract](https://docs.fastdotnet.cn/en-US/frontend/element-plus/RUNTIME_CONTRACT)
164
+ - [Element Plus compatibility and upgrade audit](https://docs.fastdotnet.cn/en-US/frontend/element-plus/ELEMENT_PLUS_COMPATIBILITY)
165
165
  - [Development and release guide (Chinese)](./docs/DEVELOPMENT_RELEASE.zh-CN.md)
166
166
  - [Contributing](./CONTRIBUTING.md)
167
167
  - [Security policy](./SECURITY.md)
package/README.zh.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  基于 Vue 3 和 Element Plus 的业务组件 SDK,提供组件、指令、Hooks 与类型。
16
16
 
17
- **[使用文档](http://docs.fastdotnet.cn/zh-CN/frontend/element-plus/) · [官方网站](http://fastdotnet.com)**
17
+ **[使用文档](https://docs.fastdotnet.cn/zh-CN/frontend/element-plus/) · [官方网站](https://fastdotnet.com)**
18
18
 
19
19
  本库不是 Element Plus 的直接替代品;业务默认值、事件语义和数据交互遵循 Fast 约定。
20
20
 
@@ -28,7 +28,7 @@
28
28
 
29
29
  Vue、Element Plus、Element Plus Icons 和 Fast.Element.Plus.Icons 均为强制 Peer Dependency。两套图标包保持在构建产物之外。包管理器会自动安装正式 Runtime Dependency,ESM 构建保留这些外部导入,不再将其复制到 `dist/node_modules`;CDN IIFE 仍会内联依赖以支持浏览器直接使用。组件内部工具包含在 Fast.Element.Plus 构建产物中。
30
30
 
31
- 当前 Element Plus 人工审计基线为 `2.14.x`。当 Element Plus 次版本号发生变化,例如由 `2.14.x` 升级到 `2.15.x` 或更高时,必须重新核对封装涉及的原生 Props、Emits、Slots、Expose、默认值和内部样式结构,详见 [Element Plus 兼容性与升级核对](http://docs.fastdotnet.cn/zh-CN/frontend/element-plus/ELEMENT_PLUS_COMPATIBILITY)。
31
+ 当前 Element Plus 人工审计基线为 `2.14.x`。当 Element Plus 次版本号发生变化,例如由 `2.14.x` 升级到 `2.15.x` 或更高时,必须重新核对封装涉及的原生 Props、Emits、Slots、Expose、默认值和内部样式结构,详见 [Element Plus 兼容性与升级核对](https://docs.fastdotnet.cn/zh-CN/frontend/element-plus/ELEMENT_PLUS_COMPATIBILITY)。
32
32
 
33
33
  ## 安装
34
34
 
@@ -138,12 +138,12 @@ useOverlay.show();
138
138
 
139
139
  ## 文档
140
140
 
141
- - [组件文档与交互案例](http://docs.fastdotnet.cn/zh-CN/frontend/element-plus/components/overview)
142
- - [安装与使用](http://docs.fastdotnet.cn/zh-CN/frontend/element-plus/guide/installation)
143
- - [文档站构建与部署](http://docs.fastdotnet.cn/zh-CN/frontend/element-plus/guide/deployment)
144
- - [API 参考](http://docs.fastdotnet.cn/zh-CN/frontend/element-plus/api/)
145
- - [运行时契约](http://docs.fastdotnet.cn/zh-CN/frontend/element-plus/RUNTIME_CONTRACT)
146
- - [Element Plus 兼容性与升级核对](http://docs.fastdotnet.cn/zh-CN/frontend/element-plus/ELEMENT_PLUS_COMPATIBILITY)
141
+ - [组件文档与交互案例](https://docs.fastdotnet.cn/zh-CN/frontend/element-plus/components/overview)
142
+ - [安装与使用](https://docs.fastdotnet.cn/zh-CN/frontend/element-plus/guide/installation)
143
+ - [文档站构建与部署](https://docs.fastdotnet.cn/zh-CN/frontend/element-plus/guide/deployment)
144
+ - [API 参考](https://docs.fastdotnet.cn/zh-CN/frontend/element-plus/api/)
145
+ - [运行时契约](https://docs.fastdotnet.cn/zh-CN/frontend/element-plus/RUNTIME_CONTRACT)
146
+ - [Element Plus 兼容性与升级核对](https://docs.fastdotnet.cn/zh-CN/frontend/element-plus/ELEMENT_PLUS_COMPATIBILITY)
147
147
  - [开发与发布指南](./docs/DEVELOPMENT_RELEASE.zh-CN.md)
148
148
  - [贡献指南](./CONTRIBUTING.md)
149
149
  - [安全策略](./SECURITY.md)
@@ -72,7 +72,7 @@ export declare const faTreeProps: {
72
72
  requestApi: {
73
73
  type: import("vue").PropType<(params?: string | number | PagedInput) => Promise<ElTreeOutput[]>>;
74
74
  };
75
- /** 初始化参数 */
75
+ /** 初始化参数。字符串和数字原样传入请求,对象参数会合并当前搜索值。 */
76
76
  initParam: import("vue").PropType<string | number | PagedInput | null>;
77
77
  emptyText: {
78
78
  readonly type: import("vue").PropType<string>;
@@ -253,7 +253,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
253
253
  requestApi: {
254
254
  type: import("vue").PropType<(params?: string | number | PagedInput) => Promise<ElTreeOutput[]>>;
255
255
  };
256
- /** 初始化参数 */
256
+ /** 初始化参数。字符串和数字原样传入请求,对象参数会合并当前搜索值。 */
257
257
  initParam: import("vue").PropType<string | number | PagedInput | null>;
258
258
  emptyText: {
259
259
  readonly type: import("vue").PropType<string>;
@@ -461,7 +461,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
461
461
  requestApi: {
462
462
  type: import("vue").PropType<(params?: string | number | PagedInput) => Promise<ElTreeOutput[]>>;
463
463
  };
464
- /** 初始化参数 */
464
+ /** 初始化参数。字符串和数字原样传入请求,对象参数会合并当前搜索值。 */
465
465
  initParam: import("vue").PropType<string | number | PagedInput | null>;
466
466
  emptyText: {
467
467
  readonly type: import("vue").PropType<string>;
@@ -86,7 +86,7 @@ const faTreeProps = {
86
86
  },
87
87
  /** 请求数据的函数 */
88
88
  requestApi: { type: definePropType(Function) },
89
- /** 初始化参数 */
89
+ /** 初始化参数。字符串和数字原样传入请求,对象参数会合并当前搜索值。 */
90
90
  initParam: definePropType([
91
91
  String,
92
92
  Number,
@@ -148,10 +148,11 @@ var tree_default = defineComponent({
148
148
  let treeData;
149
149
  if (props.requestApi) {
150
150
  state.loading = true;
151
- const params = {
152
- ...typeof props.initParam === "object" && props.initParam !== null ? props.initParam : {},
151
+ const initParam = props.initParam ?? {};
152
+ const params = typeof initParam === "object" ? {
153
+ ...initParam,
153
154
  searchValue: state.searchValue
154
- };
155
+ } : initParam;
155
156
  try {
156
157
  treeData = (await props.requestApi(params)).map((item) => ({ ...item }));
157
158
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"tree.mjs","names":["update:modelValue","update:label","node-click"],"sources":["../../../../src/components/tree/src/tree.tsx"],"sourcesContent":["import { computed, defineComponent, nextTick, onMounted, reactive, shallowRef, toRef, useModel, watch } from \"vue\";\nimport { Expand, Fold } from \"@element-plus/icons-vue\";\nimport { ElIcon, ElInput, ElScrollbar, ElTree, treeEmits, treeProps, useGlobalSize } from \"element-plus\";\nimport { addCssUnit, definePropType, isEqual, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport type { FilterValue, TreeNodeData } from \"element-plus\";\nimport type { ComponentInternalInstance } from \"vue\";\nimport type { PagedInput } from \"../../table\";\nimport type { FilterNodeMethodFunction, TreeNode } from \"./tree.props\";\nimport type { ElTreeOutput } from \"./tree.type\";\n\n/** FaTree 的运行时 Props 定义 */\nexport const faTreeProps = {\n\t...treeProps,\n\t/** 树节点筛选方法。 */\n\tfilterNodeMethod: {\n\t\ttype: definePropType<FilterNodeMethodFunction>(Function),\n\t},\n\t/** 是否禁用选择器;未指定时继承 ElForm 的禁用状态。 */\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/** v-model 绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** v-model:label 绑定值 */\n\tlabel: String,\n\t/** 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: 180,\n\t},\n\t/** 默认选择 */\n\tdefaultSelection: [String, Number],\n\t/** 标题 */\n\ttitle: String,\n\t/** 折叠 */\n\thamburger: Boolean,\n\t/** 隐藏全部 */\n\thideAll: Boolean,\n\t/** 隐藏过滤 */\n\thideFilter: Boolean,\n\t/** 全部值 */\n\tallValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** 树形数据 */\n\tdata: {\n\t\ttype: definePropType<ElTreeOutput[]>(Array),\n\t\tdefault: () => [],\n\t},\n\t/** 请求数据的函数 */\n\trequestApi: {\n\t\ttype: definePropType<(params?: string | number | PagedInput) => Promise<ElTreeOutput[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n};\n\n/** FaTree 的运行时 Emits 定义 */\nexport const faTreeEmits = {\n\t...treeEmits,\n\t/** v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | null | undefined) =>\n\t\ttypeof value === \"string\" ||\n\t\ttypeof value === \"number\" ||\n\t\ttypeof value === \"boolean\" ||\n\t\t(typeof value === \"object\" && value !== null) ||\n\t\tvalue == null,\n\t/** v-model:label 回调 */\n\t\"update:label\": (value: string) => typeof value === \"string\" || value === null,\n\t/** 数据改变 */\n\tdataChange: (data: ElTreeOutput[]) => Array.isArray(data),\n\t/** 选中数据改变 */\n\tchange: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => true,\n\t/** 节点点击 */\n\t\"node-click\": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance | null, _event: MouseEvent) => true,\n};\n\n/** FaTree 的插槽参数 */\nexport interface FaTreeSlots extends Record<string, unknown> {\n\t/** 默认内容插槽 */\n\tdefault: { node: TreeNode; data: ElTreeOutput };\n\t/** 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** 显示内容插槽 */\n\tlabel: { node: TreeNode; data: ElTreeOutput };\n}\n\nexport default defineComponent({\n\tname: \"FaTree\",\n\tprops: faTreeProps,\n\temits: faTreeEmits,\n\tslots: makeSlots<FaTreeSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useModel(props, \"label\");\n\n\t\tconst globalSize = useGlobalSize();\n\t\tconst treeRef = shallowRef<InstanceType<typeof ElTree> | null>(null);\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | null | undefined>(),\n\t\t\tloading: false,\n\t\t\tsearchValue: withDefineType<string>(),\n\t\t\toriginalTreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\ttreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\thamburger: false,\n\t\t\twidth: computed(() => {\n\t\t\t\tif (state.hamburger) {\n\t\t\t\t\treturn \"130px\";\n\t\t\t\t} else {\n\t\t\t\t\tconst width = addCssUnit(props.width);\n\t\t\t\t\tif (globalSize.value === \"small\") {\n\t\t\t\t\t\treturn `calc(${width} * 0.9)`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn width;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\t\tlet requestVersion = 0;\n\n\t\t/** 只有一层节点 */\n\t\tconst fold = computed<boolean>(() => {\n\t\t\tconst childrenKey = props.props.children ?? \"children\";\n\t\t\treturn state.originalTreeData.every((item) => !Array.isArray(item[childrenKey]) || item[childrenKey].length === 0);\n\t\t});\n\n\t\tconst loadData = async () => {\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tlet curSelectedData: string | number | undefined;\n\t\t\tif (props.nodeKey) {\n\t\t\t\t// 记录原本选中的值\n\t\t\t\tconst currentKey = treeRef.value?.getCurrentKey();\n\t\t\t\tif (typeof currentKey === \"string\" || typeof currentKey === \"number\") curSelectedData = currentKey;\n\t\t\t}\n\t\t\tlet treeData: ElTreeOutput[];\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = {\n\t\t\t\t\t...(typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {}),\n\t\t\t\t\tsearchValue: state.searchValue,\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tconst responseData = await props.requestApi(params);\n\t\t\t\t\ttreeData = responseData.map((item) => ({ ...item }));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t\tthrow error;\n\t\t\t\t} finally {\n\t\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttreeData = props.data.map((item) => ({ ...item }));\n\t\t\t}\n\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\tif (!props.hideAll) {\n\t\t\t\ttreeData.unshift({ [props.nodeKey]: props.allValue, label: \"全部\", value: null, all: true });\n\t\t\t}\n\t\t\tstate.originalTreeData = treeData;\n\t\t\tstate.treeData = treeData;\n\t\t\temit(\"dataChange\", state.treeData);\n\t\t\tconst selectedKey = curSelectedData ?? props.modelValue ?? props.defaultSelection;\n\t\t\tif (props.nodeKey && (typeof selectedKey === \"string\" || typeof selectedKey === \"number\")) {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\t// 设置原本选中的值\n\t\t\t\t\ttreeRef.value?.setCurrentKey(selectedKey);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst handleHamburgerClick = () => {\n\t\t\tif (state.hamburger) {\n\t\t\t\tstate.treeData = state.originalTreeData;\n\t\t\t} else {\n\t\t\t\t// 折叠只显示一级数据\n\t\t\t\tstate.treeData = state.originalTreeData.map((item) => ({ ...item, [props.props.children ?? \"children\"]: [] }));\n\t\t\t}\n\t\t\tstate.hamburger = !state.hamburger;\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: TreeNode) => {\n\t\t\tif (!value) return true;\n\t\t\tconst isAll: unknown = data[\"all\"];\n\t\t\tconst dataLabel: unknown = data[\"label\"];\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels: unknown[] = isAll ? [dataLabel] : [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level && parentNode) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst filterText = typeof value === \"string\" || typeof value === \"number\" ? String(value) : \"\";\n\t\t\tconst result = labels.some((label) =>\n\t\t\t\ttypeof label === \"string\" || typeof label === \"number\" ? String(label).includes(filterText) : false\n\t\t\t);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElTreeOutput, node: TreeNode, instance: ComponentInternalInstance | null, event: MouseEvent) => {\n\t\t\tif (!instance) return;\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (data[\"all\"] || (node.key !== undefined && node.key !== null)) {\n\t\t\t\tconst value = data[\"all\"] ? props.allValue : node.key;\n\t\t\t\tif (!isEqual(state.value, value)) {\n\t\t\t\t\tstate.value = value;\n\t\t\t\t\tselectedLabel.value = node.label;\n\t\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\t\temit(\"change\", data, node, instance, event);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/custom-event-name-casing -- Element Plus 的公开事件名为 node-click,需要保持原始名称透传。\n\t\t\temit(\"node-click\", data, node, instance, event);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tstate.value = newValue;\n\t\t\t\tif (typeof newValue === \"string\" || typeof newValue === \"number\") treeRef.value?.setCurrentKey(newValue);\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.hamburger,\n\t\t\t(newValue) => {\n\t\t\t\tstate.hamburger = newValue;\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.data,\n\t\t\t() => {\n\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\treturn loadData();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\tonMounted(async () => {\n\t\t\tawait loadData();\n\t\t});\n\n\t\tconst elTreeProps = useProps(props, treeProps, [\"data\", \"expandOnClickNode\", \"filterNodeMethod\"]);\n\t\tconst elTreeEmits = useEmits(treeEmits, emit, [\"node-click\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tclass={[\"el-card fa-tree\", `fa-tree-${globalSize.value}`, { \"fa-tree__fold\": state.hamburger || fold.value }]}\n\t\t\t\tstyle={{ width: state.width }}\n\t\t\t\tvLoading={state.loading}\n\t\t\t>\n\t\t\t\t{(props.title !== undefined || props.hamburger) && (\n\t\t\t\t\t<div class=\"fa-tree__title\">\n\t\t\t\t\t\t{props.title && <h4>{props.title}</h4>}\n\t\t\t\t\t\t{props.hamburger &&\n\t\t\t\t\t\t\t(state.hamburger ? (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"展开\">\n\t\t\t\t\t\t\t\t\t<Expand />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"折叠\">\n\t\t\t\t\t\t\t\t\t<Fold />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!props.hideFilter && (\n\t\t\t\t\t<ElInput\n\t\t\t\t\t\tclass=\"fa-tree__search-input\"\n\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\tplaceholder={state.hamburger ? \"关键字过滤\" : \"输入关键字进行过滤\"}\n\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\tonInput={(value) => treeRef.value?.filter(value)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<ElScrollbar class=\"fa-tree__scrollbar\">\n\t\t\t\t\t<ElTree\n\t\t\t\t\t\t{...elTreeProps.value}\n\t\t\t\t\t\tclass=\"fa-tree__inner\"\n\t\t\t\t\t\t{...elTreeEmits.value}\n\t\t\t\t\t\tref={treeRef}\n\t\t\t\t\t\tdata={state.treeData}\n\t\t\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\t\t\tonNode-click={handleNodeClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: ({ node, data }: { node: TreeNode; data: ElTreeOutput }) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"el-tree-node__label fa-tree__node-label\"\n\t\t\t\t\t\t\t\t\ttitle={data[\"all\"] ? data.label : node.label}\n\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: fold.value ? \"3px\" : \"\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div>{data[\"all\"] ? data.label : slots.label ? slots.label({ node, data }) : node.label}</div>\n\t\t\t\t\t\t\t\t\t{node.key && data.showQuantity ? <span>[{data.quantity}]</span> : null}\n\t\t\t\t\t\t\t\t\t{!data[\"all\"] && slots.default && <span>{slots.default({ node, data })}</span>}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...(slots.empty && { empty: () => slots.empty?.() ?? [] }),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTree>\n\t\t\t\t</ElScrollbar>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeRef.value?.filter),\n\t\t\t/** 获取节点的唯一标识。 */\n\t\t\tgetNodeKey: computed(() => treeRef.value?.getNodeKey),\n\t\t\t/** 获取指定节点的路径数据。 */\n\t\t\tgetNodePath: computed(() => treeRef.value?.getNodePath),\n\t\t\t/** 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeRef.value?.updateKeyChildren),\n\t\t\t/** 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeRef.value?.getCheckedNodes),\n\t\t\t/** 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeRef.value?.setCheckedNodes),\n\t\t\t/** 若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeRef.value?.getCheckedKeys),\n\t\t\t/** 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeRef.value?.setCheckedKeys),\n\t\t\t/** 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeRef.value?.setChecked),\n\t\t\t/** 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeRef.value?.getHalfCheckedNodes),\n\t\t\t/** 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeRef.value?.getHalfCheckedKeys),\n\t\t\t/** 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeRef.value?.getCurrentKey),\n\t\t\t/** 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeRef.value?.getCurrentNode),\n\t\t\t/** 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeRef.value?.setCurrentKey),\n\t\t\t/** 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeRef.value?.setCurrentNode),\n\t\t\t/** 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeRef.value?.getNode),\n\t\t\t/** 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeRef.value?.remove),\n\t\t\t/** 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeRef.value?.append),\n\t\t\t/** 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeRef.value?.insertBefore),\n\t\t\t/** 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeRef.value?.insertAfter),\n\t\t\t/** 加载状态 */\n\t\t\tloading: toRef(state, \"loading\"),\n\t\t\t/** 刷新 */\n\t\t\trefresh: loadData,\n\t\t});\n\t},\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"tree.mjs","names":["update:modelValue","update:label","node-click"],"sources":["../../../../src/components/tree/src/tree.tsx"],"sourcesContent":["import { computed, defineComponent, nextTick, onMounted, reactive, shallowRef, toRef, useModel, watch } from \"vue\";\nimport { Expand, Fold } from \"@element-plus/icons-vue\";\nimport { ElIcon, ElInput, ElScrollbar, ElTree, treeEmits, treeProps, useGlobalSize } from \"element-plus\";\nimport { addCssUnit, definePropType, isEqual, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport type { FilterValue, TreeNodeData } from \"element-plus\";\nimport type { ComponentInternalInstance } from \"vue\";\nimport type { PagedInput } from \"../../table\";\nimport type { FilterNodeMethodFunction, TreeNode } from \"./tree.props\";\nimport type { ElTreeOutput } from \"./tree.type\";\n\n/** FaTree 的运行时 Props 定义 */\nexport const faTreeProps = {\n\t...treeProps,\n\t/** 树节点筛选方法。 */\n\tfilterNodeMethod: {\n\t\ttype: definePropType<FilterNodeMethodFunction>(Function),\n\t},\n\t/** 是否禁用选择器;未指定时继承 ElForm 的禁用状态。 */\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/** v-model 绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** v-model:label 绑定值 */\n\tlabel: String,\n\t/** 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: 180,\n\t},\n\t/** 默认选择 */\n\tdefaultSelection: [String, Number],\n\t/** 标题 */\n\ttitle: String,\n\t/** 折叠 */\n\thamburger: Boolean,\n\t/** 隐藏全部 */\n\thideAll: Boolean,\n\t/** 隐藏过滤 */\n\thideFilter: Boolean,\n\t/** 全部值 */\n\tallValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** 树形数据 */\n\tdata: {\n\t\ttype: definePropType<ElTreeOutput[]>(Array),\n\t\tdefault: () => [],\n\t},\n\t/** 请求数据的函数 */\n\trequestApi: {\n\t\ttype: definePropType<(params?: string | number | PagedInput) => Promise<ElTreeOutput[]>>(Function),\n\t},\n\t/** 初始化参数。字符串和数字原样传入请求,对象参数会合并当前搜索值。 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n};\n\n/** FaTree 的运行时 Emits 定义 */\nexport const faTreeEmits = {\n\t...treeEmits,\n\t/** v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | null | undefined) =>\n\t\ttypeof value === \"string\" ||\n\t\ttypeof value === \"number\" ||\n\t\ttypeof value === \"boolean\" ||\n\t\t(typeof value === \"object\" && value !== null) ||\n\t\tvalue == null,\n\t/** v-model:label 回调 */\n\t\"update:label\": (value: string) => typeof value === \"string\" || value === null,\n\t/** 数据改变 */\n\tdataChange: (data: ElTreeOutput[]) => Array.isArray(data),\n\t/** 选中数据改变 */\n\tchange: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => true,\n\t/** 节点点击 */\n\t\"node-click\": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance | null, _event: MouseEvent) => true,\n};\n\n/** FaTree 的插槽参数 */\nexport interface FaTreeSlots extends Record<string, unknown> {\n\t/** 默认内容插槽 */\n\tdefault: { node: TreeNode; data: ElTreeOutput };\n\t/** 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** 显示内容插槽 */\n\tlabel: { node: TreeNode; data: ElTreeOutput };\n}\n\nexport default defineComponent({\n\tname: \"FaTree\",\n\tprops: faTreeProps,\n\temits: faTreeEmits,\n\tslots: makeSlots<FaTreeSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useModel(props, \"label\");\n\n\t\tconst globalSize = useGlobalSize();\n\t\tconst treeRef = shallowRef<InstanceType<typeof ElTree> | null>(null);\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | null | undefined>(),\n\t\t\tloading: false,\n\t\t\tsearchValue: withDefineType<string>(),\n\t\t\toriginalTreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\ttreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\thamburger: false,\n\t\t\twidth: computed(() => {\n\t\t\t\tif (state.hamburger) {\n\t\t\t\t\treturn \"130px\";\n\t\t\t\t} else {\n\t\t\t\t\tconst width = addCssUnit(props.width);\n\t\t\t\t\tif (globalSize.value === \"small\") {\n\t\t\t\t\t\treturn `calc(${width} * 0.9)`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn width;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\t\tlet requestVersion = 0;\n\n\t\t/** 只有一层节点 */\n\t\tconst fold = computed<boolean>(() => {\n\t\t\tconst childrenKey = props.props.children ?? \"children\";\n\t\t\treturn state.originalTreeData.every((item) => !Array.isArray(item[childrenKey]) || item[childrenKey].length === 0);\n\t\t});\n\n\t\tconst loadData = async () => {\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tlet curSelectedData: string | number | undefined;\n\t\t\tif (props.nodeKey) {\n\t\t\t\t// 记录原本选中的值\n\t\t\t\tconst currentKey = treeRef.value?.getCurrentKey();\n\t\t\t\tif (typeof currentKey === \"string\" || typeof currentKey === \"number\") curSelectedData = currentKey;\n\t\t\t}\n\t\t\tlet treeData: ElTreeOutput[];\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst initParam = props.initParam ?? {};\n\t\t\t\tconst params = typeof initParam === \"object\" ? { ...initParam, searchValue: state.searchValue } : initParam;\n\t\t\t\ttry {\n\t\t\t\t\tconst responseData = await props.requestApi(params);\n\t\t\t\t\ttreeData = responseData.map((item) => ({ ...item }));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t\tthrow error;\n\t\t\t\t} finally {\n\t\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttreeData = props.data.map((item) => ({ ...item }));\n\t\t\t}\n\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\tif (!props.hideAll) {\n\t\t\t\ttreeData.unshift({ [props.nodeKey]: props.allValue, label: \"全部\", value: null, all: true });\n\t\t\t}\n\t\t\tstate.originalTreeData = treeData;\n\t\t\tstate.treeData = treeData;\n\t\t\temit(\"dataChange\", state.treeData);\n\t\t\tconst selectedKey = curSelectedData ?? props.modelValue ?? props.defaultSelection;\n\t\t\tif (props.nodeKey && (typeof selectedKey === \"string\" || typeof selectedKey === \"number\")) {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\t// 设置原本选中的值\n\t\t\t\t\ttreeRef.value?.setCurrentKey(selectedKey);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst handleHamburgerClick = () => {\n\t\t\tif (state.hamburger) {\n\t\t\t\tstate.treeData = state.originalTreeData;\n\t\t\t} else {\n\t\t\t\t// 折叠只显示一级数据\n\t\t\t\tstate.treeData = state.originalTreeData.map((item) => ({ ...item, [props.props.children ?? \"children\"]: [] }));\n\t\t\t}\n\t\t\tstate.hamburger = !state.hamburger;\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: TreeNode) => {\n\t\t\tif (!value) return true;\n\t\t\tconst isAll: unknown = data[\"all\"];\n\t\t\tconst dataLabel: unknown = data[\"label\"];\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels: unknown[] = isAll ? [dataLabel] : [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level && parentNode) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst filterText = typeof value === \"string\" || typeof value === \"number\" ? String(value) : \"\";\n\t\t\tconst result = labels.some((label) =>\n\t\t\t\ttypeof label === \"string\" || typeof label === \"number\" ? String(label).includes(filterText) : false\n\t\t\t);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElTreeOutput, node: TreeNode, instance: ComponentInternalInstance | null, event: MouseEvent) => {\n\t\t\tif (!instance) return;\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (data[\"all\"] || (node.key !== undefined && node.key !== null)) {\n\t\t\t\tconst value = data[\"all\"] ? props.allValue : node.key;\n\t\t\t\tif (!isEqual(state.value, value)) {\n\t\t\t\t\tstate.value = value;\n\t\t\t\t\tselectedLabel.value = node.label;\n\t\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\t\temit(\"change\", data, node, instance, event);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/custom-event-name-casing -- Element Plus 的公开事件名为 node-click,需要保持原始名称透传。\n\t\t\temit(\"node-click\", data, node, instance, event);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tstate.value = newValue;\n\t\t\t\tif (typeof newValue === \"string\" || typeof newValue === \"number\") treeRef.value?.setCurrentKey(newValue);\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.hamburger,\n\t\t\t(newValue) => {\n\t\t\t\tstate.hamburger = newValue;\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.data,\n\t\t\t() => {\n\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\treturn loadData();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\tonMounted(async () => {\n\t\t\tawait loadData();\n\t\t});\n\n\t\tconst elTreeProps = useProps(props, treeProps, [\"data\", \"expandOnClickNode\", \"filterNodeMethod\"]);\n\t\tconst elTreeEmits = useEmits(treeEmits, emit, [\"node-click\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tclass={[\"el-card fa-tree\", `fa-tree-${globalSize.value}`, { \"fa-tree__fold\": state.hamburger || fold.value }]}\n\t\t\t\tstyle={{ width: state.width }}\n\t\t\t\tvLoading={state.loading}\n\t\t\t>\n\t\t\t\t{(props.title !== undefined || props.hamburger) && (\n\t\t\t\t\t<div class=\"fa-tree__title\">\n\t\t\t\t\t\t{props.title && <h4>{props.title}</h4>}\n\t\t\t\t\t\t{props.hamburger &&\n\t\t\t\t\t\t\t(state.hamburger ? (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"展开\">\n\t\t\t\t\t\t\t\t\t<Expand />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"折叠\">\n\t\t\t\t\t\t\t\t\t<Fold />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!props.hideFilter && (\n\t\t\t\t\t<ElInput\n\t\t\t\t\t\tclass=\"fa-tree__search-input\"\n\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\tplaceholder={state.hamburger ? \"关键字过滤\" : \"输入关键字进行过滤\"}\n\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\tonInput={(value) => treeRef.value?.filter(value)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<ElScrollbar class=\"fa-tree__scrollbar\">\n\t\t\t\t\t<ElTree\n\t\t\t\t\t\t{...elTreeProps.value}\n\t\t\t\t\t\tclass=\"fa-tree__inner\"\n\t\t\t\t\t\t{...elTreeEmits.value}\n\t\t\t\t\t\tref={treeRef}\n\t\t\t\t\t\tdata={state.treeData}\n\t\t\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\t\t\tonNode-click={handleNodeClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: ({ node, data }: { node: TreeNode; data: ElTreeOutput }) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"el-tree-node__label fa-tree__node-label\"\n\t\t\t\t\t\t\t\t\ttitle={data[\"all\"] ? data.label : node.label}\n\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: fold.value ? \"3px\" : \"\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div>{data[\"all\"] ? data.label : slots.label ? slots.label({ node, data }) : node.label}</div>\n\t\t\t\t\t\t\t\t\t{node.key && data.showQuantity ? <span>[{data.quantity}]</span> : null}\n\t\t\t\t\t\t\t\t\t{!data[\"all\"] && slots.default && <span>{slots.default({ node, data })}</span>}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...(slots.empty && { empty: () => slots.empty?.() ?? [] }),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTree>\n\t\t\t\t</ElScrollbar>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeRef.value?.filter),\n\t\t\t/** 获取节点的唯一标识。 */\n\t\t\tgetNodeKey: computed(() => treeRef.value?.getNodeKey),\n\t\t\t/** 获取指定节点的路径数据。 */\n\t\t\tgetNodePath: computed(() => treeRef.value?.getNodePath),\n\t\t\t/** 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeRef.value?.updateKeyChildren),\n\t\t\t/** 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeRef.value?.getCheckedNodes),\n\t\t\t/** 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeRef.value?.setCheckedNodes),\n\t\t\t/** 若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeRef.value?.getCheckedKeys),\n\t\t\t/** 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeRef.value?.setCheckedKeys),\n\t\t\t/** 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeRef.value?.setChecked),\n\t\t\t/** 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeRef.value?.getHalfCheckedNodes),\n\t\t\t/** 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeRef.value?.getHalfCheckedKeys),\n\t\t\t/** 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeRef.value?.getCurrentKey),\n\t\t\t/** 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeRef.value?.getCurrentNode),\n\t\t\t/** 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeRef.value?.setCurrentKey),\n\t\t\t/** 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeRef.value?.setCurrentNode),\n\t\t\t/** 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeRef.value?.getNode),\n\t\t\t/** 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeRef.value?.remove),\n\t\t\t/** 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeRef.value?.append),\n\t\t\t/** 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeRef.value?.insertBefore),\n\t\t\t/** 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeRef.value?.insertAfter),\n\t\t\t/** 加载状态 */\n\t\t\tloading: toRef(state, \"loading\"),\n\t\t\t/** 刷新 */\n\t\t\trefresh: loadData,\n\t\t});\n\t},\n});\n"],"mappings":"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"}
@@ -18,9 +18,12 @@ ElForm.setPropsDefaults({
18
18
  ElInput.setPropsDefaults({
19
19
  /** 默认显示字数统计。 */
20
20
  showWordLimit: true });
21
- ElInputNumber.setPropsDefaults({
22
- /** 默认不显示控制按钮。 */
23
- controls: false });
21
+ ElInputNumber.setPropsDefaults({
22
+ /** 默认不显示控制按钮。 */
23
+ controls: false,
24
+ /** 默认左对齐。 */
25
+ align: "left"
26
+ });
24
27
  ElSelect.setPropsDefaults({
25
28
  /** 默认加载提示。 */
26
29
  loadingText: "加载中...",
@@ -1 +1 @@
1
- {"version":3,"file":"element-plus.mjs","names":[],"sources":["../src/element-plus.ts"],"sourcesContent":["/** Element Plus 组件全局配置 */\n\nimport * as ElementPlusIconsVue from \"@element-plus/icons-vue\";\nimport ElementPlus, { ElDialog, ElForm, ElInput, ElInputNumber, ElMessageBox, ElSelect, ElTable, ElTree, ElTreeSelect } from \"element-plus\";\nimport { useOverlay } from \"./hooks\";\nimport { callOptionalFunction } from \"./utils\";\nimport type { Action, ElMessageBoxOptions, ElMessageBoxShortcutMethod, MessageBoxData, MessageBoxState } from \"element-plus\";\nimport type { App, AppContext } from \"vue\";\n\n/* Element Plus 默认值设置。 */\nElDialog.setPropsDefaults({\n\t/** 默认拖拽。 */\n\tdraggable: true,\n});\n\nElForm.setPropsDefaults({\n\t/** 默认标签宽度。 */\n\tlabelWidth: \"auto\",\n\t/** 默认标签后缀。 */\n\tlabelSuffix: \":\",\n\t/** 校验失败时默认滚动到第一个错误表单项。 */\n\tscrollToError: true,\n});\n\nElInput.setPropsDefaults({\n\t/** 默认显示字数统计。 */\n\tshowWordLimit: true,\n});\n\nElInputNumber.setPropsDefaults({\n\t/** 默认不显示控制按钮。 */\n\tcontrols: false,\n});\n\nElSelect.setPropsDefaults({\n\t/** 默认加载提示。 */\n\tloadingText: \"加载中...\",\n\t/** 默认无匹配数据提示。 */\n\tnoMatchText: \"暂无匹配的数据\",\n\t/** 默认无数据提示。 */\n\tnoDataText: \"暂无数据\",\n\t/** 多选时默认折叠标签。 */\n\tcollapseTags: true,\n\t/** 默认在悬停折叠标签时显示完整内容。 */\n\tcollapseTagsTooltip: true,\n});\n\nElTable.setPropsDefaults({\n\t/** 默认显示边框。 */\n\tborder: true,\n\t/** 默认高亮当前行。 */\n\thighlightCurrentRow: true,\n\t/** 默认行 Key。 */\n\trowKey: \"id\",\n});\n\nElTree.setPropsDefaults({\n\t/** 默认展开所有节点。 */\n\tdefaultExpandAll: true,\n\t/** 默认点击时选中节点。 */\n\tcheckOnClickNode: true,\n\t/** 默认高亮当前节点。 */\n\thighlightCurrent: true,\n});\n\nElTreeSelect.setPropsDefaults({\n\t/** 默认加载提示。 */\n\tloadingText: \"加载中...\",\n\t/** 默认无匹配数据提示。 */\n\tnoMatchText: \"暂无匹配的数据\",\n\t/** 默认无数据提示。 */\n\tnoDataText: \"暂无数据\",\n\t/** 多选时默认折叠标签。 */\n\tcollapseTags: true,\n\t/** 默认在悬停折叠标签时显示完整内容。 */\n\tcollapseTagsTooltip: true,\n\t/** 默认展开所有节点。 */\n\tdefaultExpandAll: true,\n\t/** 默认点击时选中节点。 */\n\tcheckOnClickNode: true,\n\t/** 默认高亮当前节点。 */\n\thighlightCurrent: true,\n\t/** 默认仅通过箭头展开或收起节点。 */\n\texpandOnClickNode: false,\n});\n\n// ElMessageBox 默认配置\nconst elMessageBox = (\n\ttype: \"alert\" | \"confirm\" | \"prompt\",\n\tmessage: ElMessageBoxOptions[\"message\"],\n\toptions?: ElMessageBoxOptions,\n\tappContext?: AppContext | null\n): Promise<MessageBoxData> => {\n\t// 不直接修改调用方传入的配置,避免复用同一个 Options 对象时残留本次默认值和 beforeClose 包装。\n\tconst resolvedOptions: ElMessageBoxOptions = { ...(options ?? {}) };\n\t// 默认提示\n\tresolvedOptions.title ??= \"温馨提示\";\n\t// 默认拖拽\n\tresolvedOptions.draggable ??= true;\n\t// 默认 取消按钮的文本内容\n\tresolvedOptions.cancelButtonText ??= \"取消\";\n\t// 默认 确定按钮的文本内容\n\tresolvedOptions.confirmButtonText ??= \"确定\";\n\t// 默认 是否可通过点击遮罩层关闭 MessageBox\n\tresolvedOptions.closeOnClickModal ??= false;\n\t// 默认 是否可通过按下 ESC 键关闭 MessageBox\n\tresolvedOptions.closeOnPressEscape ??= false;\n\n\t// 关闭之前的判断逻辑\n\tif (resolvedOptions.beforeClose != null) {\n\t\tconst localBeforeClose = resolvedOptions.beforeClose;\n\t\tconst localConfirmButtonText = resolvedOptions.confirmButtonText;\n\t\tconst localShowCancelButton = resolvedOptions.showCancelButton;\n\t\tresolvedOptions.beforeClose = (action: Action, instance: MessageBoxState, done: () => void): void => {\n\t\t\tif (action === \"confirm\") {\n\t\t\t\tuseOverlay.show(0);\n\t\t\t\tinstance.confirmButtonLoading = true;\n\t\t\t\tinstance.showCancelButton = false;\n\t\t\t\tinstance.confirmButtonText = \"加载中...\";\n\t\t\t\tlet completed = false;\n\n\t\t\t\tconst cancelLoading = (): void => {\n\t\t\t\t\tinstance.confirmButtonLoading = false;\n\t\t\t\t\tinstance.showCancelButton = localShowCancelButton ?? false;\n\t\t\t\t\tinstance.confirmButtonText = localConfirmButtonText;\n\t\t\t\t\tuseOverlay.hide();\n\t\t\t\t};\n\n\t\t\t\tconst newDone = (): void => {\n\t\t\t\t\tif (completed) return;\n\t\t\t\t\tcompleted = true;\n\t\t\t\t\tcancelLoading();\n\t\t\t\t\tdone();\n\t\t\t\t};\n\n\t\t\t\tcallOptionalFunction(localBeforeClose, action, instance, newDone)\n\t\t\t\t\t.then(() => newDone())\n\t\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\t\tif (!completed) cancelLoading();\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdone();\n\t\t\t}\n\t\t};\n\t}\n\n\t// 根据类型有一些判断\n\tswitch (type) {\n\t\tcase \"alert\":\n\t\t\tbreak;\n\t\tcase \"confirm\":\n\t\t\tresolvedOptions.showCancelButton ??= true;\n\t\t\tbreak;\n\t\tcase \"prompt\":\n\t\t\tresolvedOptions.showCancelButton ??= true;\n\t\t\tbreak;\n\t}\n\n\treturn ElMessageBox({ message, ...resolvedOptions, boxType: type }, appContext);\n};\n\ntype MESSAGE_BOX_TYPE = \"alert\" | \"confirm\" | \"prompt\";\nconst MESSAGE_BOX_DEFAULT_OPTS: Record<MESSAGE_BOX_TYPE, Partial<ElMessageBoxOptions>> = {\n\talert: { closeOnPressEscape: false, closeOnClickModal: false },\n\tconfirm: { showCancelButton: true },\n\tprompt: { showCancelButton: true, showInput: true },\n};\n\nconst isAppContext = (value: ElMessageBoxOptions | AppContext | null | undefined): value is AppContext =>\n\ttypeof value === \"object\" && value !== null && \"app\" in value && \"config\" in value;\n\nconst createMessageBoxShortcut = (type: MESSAGE_BOX_TYPE): ElMessageBoxShortcutMethod => {\n\tfunction shortcut(\n\t\tmessage: ElMessageBoxOptions[\"message\"],\n\t\toptions?: ElMessageBoxOptions,\n\t\tappContext?: AppContext | null\n\t): Promise<MessageBoxData>;\n\tfunction shortcut(\n\t\tmessage: ElMessageBoxOptions[\"message\"],\n\t\ttitle: ElMessageBoxOptions[\"title\"],\n\t\toptions?: ElMessageBoxOptions,\n\t\tappContext?: AppContext | null\n\t): Promise<MessageBoxData>;\n\tfunction shortcut(\n\t\tmessage: ElMessageBoxOptions[\"message\"],\n\t\ttitleOrOptions?: string | ElMessageBoxOptions,\n\t\toptionsOrContext?: ElMessageBoxOptions | AppContext | null,\n\t\tappContext?: AppContext | null\n\t): Promise<MessageBoxData> {\n\t\tif (typeof titleOrOptions === \"string\") {\n\t\t\tconst options = isAppContext(optionsOrContext) ? undefined : optionsOrContext;\n\t\t\treturn elMessageBox(type, message, { ...MESSAGE_BOX_DEFAULT_OPTS[type], title: titleOrOptions, ...(options ?? {}) }, appContext);\n\t\t}\n\n\t\tconst context = optionsOrContext === null || isAppContext(optionsOrContext) ? optionsOrContext : undefined;\n\t\treturn elMessageBox(type, message, { ...MESSAGE_BOX_DEFAULT_OPTS[type], ...(titleOrOptions ?? {}) }, context);\n\t}\n\n\treturn shortcut;\n};\n\nElMessageBox.alert = createMessageBoxShortcut(\"alert\");\nElMessageBox.prompt = createMessageBoxShortcut(\"prompt\");\nElMessageBox.confirm = createMessageBoxShortcut(\"confirm\");\n\n/**\n * 注册 Element Plus 及其全部图标。\n *\n * @param app - Vue 应用实例。\n */\nexport const installElementPlus = (app: App): void => {\n\t/** 注册 Element Plus 全部图标,供 FaIcon 按名称解析。 */\n\tfor (const [key, component] of Object.entries(ElementPlusIconsVue)) app.component(`el-icon-${key}`, component);\n\n\t/** Element Plus 组件完整引入 */\n\tapp.use(ElementPlus);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"element-plus.mjs","names":[],"sources":["../src/element-plus.ts"],"sourcesContent":["/** Element Plus 组件全局配置 */\n\nimport * as ElementPlusIconsVue from \"@element-plus/icons-vue\";\nimport ElementPlus, { ElDialog, ElForm, ElInput, ElInputNumber, ElMessageBox, ElSelect, ElTable, ElTree, ElTreeSelect } from \"element-plus\";\nimport { useOverlay } from \"./hooks\";\nimport { callOptionalFunction } from \"./utils\";\nimport type { Action, ElMessageBoxOptions, ElMessageBoxShortcutMethod, MessageBoxData, MessageBoxState } from \"element-plus\";\nimport type { App, AppContext } from \"vue\";\n\n/* Element Plus 默认值设置。 */\nElDialog.setPropsDefaults({\n\t/** 默认拖拽。 */\n\tdraggable: true,\n});\n\nElForm.setPropsDefaults({\n\t/** 默认标签宽度。 */\n\tlabelWidth: \"auto\",\n\t/** 默认标签后缀。 */\n\tlabelSuffix: \":\",\n\t/** 校验失败时默认滚动到第一个错误表单项。 */\n\tscrollToError: true,\n});\n\nElInput.setPropsDefaults({\n\t/** 默认显示字数统计。 */\n\tshowWordLimit: true,\n});\n\nElInputNumber.setPropsDefaults({\n\t/** 默认不显示控制按钮。 */\n\tcontrols: false,\n\t/** 默认左对齐。 */\n\talign: \"left\",\n});\n\nElSelect.setPropsDefaults({\n\t/** 默认加载提示。 */\n\tloadingText: \"加载中...\",\n\t/** 默认无匹配数据提示。 */\n\tnoMatchText: \"暂无匹配的数据\",\n\t/** 默认无数据提示。 */\n\tnoDataText: \"暂无数据\",\n\t/** 多选时默认折叠标签。 */\n\tcollapseTags: true,\n\t/** 默认在悬停折叠标签时显示完整内容。 */\n\tcollapseTagsTooltip: true,\n});\n\nElTable.setPropsDefaults({\n\t/** 默认显示边框。 */\n\tborder: true,\n\t/** 默认高亮当前行。 */\n\thighlightCurrentRow: true,\n\t/** 默认行 Key。 */\n\trowKey: \"id\",\n});\n\nElTree.setPropsDefaults({\n\t/** 默认展开所有节点。 */\n\tdefaultExpandAll: true,\n\t/** 默认点击时选中节点。 */\n\tcheckOnClickNode: true,\n\t/** 默认高亮当前节点。 */\n\thighlightCurrent: true,\n});\n\nElTreeSelect.setPropsDefaults({\n\t/** 默认加载提示。 */\n\tloadingText: \"加载中...\",\n\t/** 默认无匹配数据提示。 */\n\tnoMatchText: \"暂无匹配的数据\",\n\t/** 默认无数据提示。 */\n\tnoDataText: \"暂无数据\",\n\t/** 多选时默认折叠标签。 */\n\tcollapseTags: true,\n\t/** 默认在悬停折叠标签时显示完整内容。 */\n\tcollapseTagsTooltip: true,\n\t/** 默认展开所有节点。 */\n\tdefaultExpandAll: true,\n\t/** 默认点击时选中节点。 */\n\tcheckOnClickNode: true,\n\t/** 默认高亮当前节点。 */\n\thighlightCurrent: true,\n\t/** 默认仅通过箭头展开或收起节点。 */\n\texpandOnClickNode: false,\n});\n\n// ElMessageBox 默认配置\nconst elMessageBox = (\n\ttype: \"alert\" | \"confirm\" | \"prompt\",\n\tmessage: ElMessageBoxOptions[\"message\"],\n\toptions?: ElMessageBoxOptions,\n\tappContext?: AppContext | null\n): Promise<MessageBoxData> => {\n\t// 不直接修改调用方传入的配置,避免复用同一个 Options 对象时残留本次默认值和 beforeClose 包装。\n\tconst resolvedOptions: ElMessageBoxOptions = { ...(options ?? {}) };\n\t// 默认提示\n\tresolvedOptions.title ??= \"温馨提示\";\n\t// 默认拖拽\n\tresolvedOptions.draggable ??= true;\n\t// 默认 取消按钮的文本内容\n\tresolvedOptions.cancelButtonText ??= \"取消\";\n\t// 默认 确定按钮的文本内容\n\tresolvedOptions.confirmButtonText ??= \"确定\";\n\t// 默认 是否可通过点击遮罩层关闭 MessageBox\n\tresolvedOptions.closeOnClickModal ??= false;\n\t// 默认 是否可通过按下 ESC 键关闭 MessageBox\n\tresolvedOptions.closeOnPressEscape ??= false;\n\n\t// 关闭之前的判断逻辑\n\tif (resolvedOptions.beforeClose != null) {\n\t\tconst localBeforeClose = resolvedOptions.beforeClose;\n\t\tconst localConfirmButtonText = resolvedOptions.confirmButtonText;\n\t\tconst localShowCancelButton = resolvedOptions.showCancelButton;\n\t\tresolvedOptions.beforeClose = (action: Action, instance: MessageBoxState, done: () => void): void => {\n\t\t\tif (action === \"confirm\") {\n\t\t\t\tuseOverlay.show(0);\n\t\t\t\tinstance.confirmButtonLoading = true;\n\t\t\t\tinstance.showCancelButton = false;\n\t\t\t\tinstance.confirmButtonText = \"加载中...\";\n\t\t\t\tlet completed = false;\n\n\t\t\t\tconst cancelLoading = (): void => {\n\t\t\t\t\tinstance.confirmButtonLoading = false;\n\t\t\t\t\tinstance.showCancelButton = localShowCancelButton ?? false;\n\t\t\t\t\tinstance.confirmButtonText = localConfirmButtonText;\n\t\t\t\t\tuseOverlay.hide();\n\t\t\t\t};\n\n\t\t\t\tconst newDone = (): void => {\n\t\t\t\t\tif (completed) return;\n\t\t\t\t\tcompleted = true;\n\t\t\t\t\tcancelLoading();\n\t\t\t\t\tdone();\n\t\t\t\t};\n\n\t\t\t\tcallOptionalFunction(localBeforeClose, action, instance, newDone)\n\t\t\t\t\t.then(() => newDone())\n\t\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\t\tif (!completed) cancelLoading();\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdone();\n\t\t\t}\n\t\t};\n\t}\n\n\t// 根据类型有一些判断\n\tswitch (type) {\n\t\tcase \"alert\":\n\t\t\tbreak;\n\t\tcase \"confirm\":\n\t\t\tresolvedOptions.showCancelButton ??= true;\n\t\t\tbreak;\n\t\tcase \"prompt\":\n\t\t\tresolvedOptions.showCancelButton ??= true;\n\t\t\tbreak;\n\t}\n\n\treturn ElMessageBox({ message, ...resolvedOptions, boxType: type }, appContext);\n};\n\ntype MESSAGE_BOX_TYPE = \"alert\" | \"confirm\" | \"prompt\";\nconst MESSAGE_BOX_DEFAULT_OPTS: Record<MESSAGE_BOX_TYPE, Partial<ElMessageBoxOptions>> = {\n\talert: { closeOnPressEscape: false, closeOnClickModal: false },\n\tconfirm: { showCancelButton: true },\n\tprompt: { showCancelButton: true, showInput: true },\n};\n\nconst isAppContext = (value: ElMessageBoxOptions | AppContext | null | undefined): value is AppContext =>\n\ttypeof value === \"object\" && value !== null && \"app\" in value && \"config\" in value;\n\nconst createMessageBoxShortcut = (type: MESSAGE_BOX_TYPE): ElMessageBoxShortcutMethod => {\n\tfunction shortcut(\n\t\tmessage: ElMessageBoxOptions[\"message\"],\n\t\toptions?: ElMessageBoxOptions,\n\t\tappContext?: AppContext | null\n\t): Promise<MessageBoxData>;\n\tfunction shortcut(\n\t\tmessage: ElMessageBoxOptions[\"message\"],\n\t\ttitle: ElMessageBoxOptions[\"title\"],\n\t\toptions?: ElMessageBoxOptions,\n\t\tappContext?: AppContext | null\n\t): Promise<MessageBoxData>;\n\tfunction shortcut(\n\t\tmessage: ElMessageBoxOptions[\"message\"],\n\t\ttitleOrOptions?: string | ElMessageBoxOptions,\n\t\toptionsOrContext?: ElMessageBoxOptions | AppContext | null,\n\t\tappContext?: AppContext | null\n\t): Promise<MessageBoxData> {\n\t\tif (typeof titleOrOptions === \"string\") {\n\t\t\tconst options = isAppContext(optionsOrContext) ? undefined : optionsOrContext;\n\t\t\treturn elMessageBox(type, message, { ...MESSAGE_BOX_DEFAULT_OPTS[type], title: titleOrOptions, ...(options ?? {}) }, appContext);\n\t\t}\n\n\t\tconst context = optionsOrContext === null || isAppContext(optionsOrContext) ? optionsOrContext : undefined;\n\t\treturn elMessageBox(type, message, { ...MESSAGE_BOX_DEFAULT_OPTS[type], ...(titleOrOptions ?? {}) }, context);\n\t}\n\n\treturn shortcut;\n};\n\nElMessageBox.alert = createMessageBoxShortcut(\"alert\");\nElMessageBox.prompt = createMessageBoxShortcut(\"prompt\");\nElMessageBox.confirm = createMessageBoxShortcut(\"confirm\");\n\n/**\n * 注册 Element Plus 及其全部图标。\n *\n * @param app - Vue 应用实例。\n */\nexport const installElementPlus = (app: App): void => {\n\t/** 注册 Element Plus 全部图标,供 FaIcon 按名称解析。 */\n\tfor (const [key, component] of Object.entries(ElementPlusIconsVue)) app.component(`el-icon-${key}`, component);\n\n\t/** Element Plus 组件完整引入 */\n\tapp.use(ElementPlus);\n};\n"],"mappings":"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"}
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- @keyframes twinkle{0%{transform:scale(0.8)}80%{transform:scale(1.1)}100%{transform:scale(1)}}@keyframes loading{0%{background-position:0 0,0 100%,100% 100%}25%{background-position:100% 0,0 100%,100% 100%}50%{background-position:100% 0,0 0,100% 100%}75%{background-position:100% 0,0 0,0 100%}100%{background-position:100% 100%,0 0,0 100%}}.__fa-loading{position:fixed;inset:0;width:100%;height:100%;background-color:var(--el-mask-color);backdrop-filter:blur(2px);z-index:9990}.__fa-loading__box{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);filter:drop-shadow(var(--el-box-shadow-light))}.__fa-loading__box-warp{width:80px;height:80px}.__fa-loading__box-warp__item{--g1: conic-gradient(from 90deg at 3px 3px, #0000 90deg, var(--el-color-primary) 0);--g2: conic-gradient(from -90deg at 22px 22px, #0000 90deg, var(--el-color-primary) 0);width:55px;aspect-ratio:1;background:var(--g1),var(--g1),var(--g1),var(--g2),var(--g2),var(--g2);background-size:25px 25px;background-repeat:no-repeat;animation:loading 1.2s infinite}@media(prefers-reduced-motion: reduce){.__fa-loading__box-warp__item{animation:none}}.__fa-overlay{position:fixed;inset:0;width:100%;height:100%;background-color:rgba(0,0,0,0);z-index:9990;pointer-events:auto;cursor:not-allowed}.fa__copy-icon{margin-right:3px;color:var(--el-text-color-secondary);cursor:pointer;transition:color var(--el-transition-duration-fast)}.fa__copy-icon:hover{color:var(--el-color-primary)}.fa__hover__twinkle{transform-origin:center}.fa__hover__twinkle:hover>:first-child{animation:twinkle var(--el-transition-duration) linear}.fa__hover__suspension{transition:transform var(--el-transition-duration) ease,box-shadow var(--el-transition-duration) ease}.fa__hover__suspension:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--el-box-shadow);border-radius:var(--el-border-radius-base)}.fa__click__disabled{pointer-events:none !important}.fa__click__disabled.fa__click__disabled__cursor{position:relative !important;pointer-events:auto !important}.fa__click__disabled:hover{cursor:not-allowed !important}@media(prefers-reduced-motion: reduce){.fa__hover__twinkle:hover>:first-child{animation:none}.fa__hover__suspension{transition:none}.fa__hover__suspension:hover{transform:none}}.el-popper.fa-car-number__popover{margin-top:-12px;box-sizing:border-box;width:min(360px + var(--el-popover-padding)*2 + 2px,100vw - 32px) !important;max-width:calc(100vw - 32px);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow)}.fa-car-number__popover__digit-letter,.fa-car-number__popover__area{display:grid;grid-template-columns:repeat(10, minmax(0, 1fr));gap:4px}.fa-car-number__popover__digit-letter>.el-button,.fa-car-number__popover__area>.el-button{width:100%;min-width:0;margin:0;padding-inline:0}.fa-car-number__popover__hide{display:none}.fa-car-number__popover__btn{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}.fa-car-number__popover__btn>.el-button+.el-button{margin-left:0}@media(max-width: 767.98px){.el-popper.fa-car-number__popover{width:calc(100vw - 24px) !important;max-width:calc(100vw - 24px);margin-top:-8px;padding:10px}.fa-car-number__popover__area,.fa-car-number__popover__digit-letter{grid-template-columns:repeat(8, minmax(0, 1fr));gap:5px}.fa-car-number__popover__area>.el-button,.fa-car-number__popover__digit-letter>.el-button{min-height:38px}.fa-car-number__popover__btn{margin-top:8px}.fa-car-number__popover__btn>.el-button{flex:1 1 0;min-width:0}}.fa-context-menu{--fa-context-menu-icon-margin: 5px;--fa-context-menu-font-size: var(--el-font-size-small);position:fixed;padding:0;border:1px solid var(--el-border-color-lighter);border-radius:var(--el-border-radius-base);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow);overflow:hidden}.fa-context-menu>.el-dropdown-menu{background-color:rgba(0,0,0,0)}.fa-context-menu .el-dropdown-menu__item{min-height:var(--el-component-size);font-size:var(--fa-context-menu-font-size)}.fa-context-menu .el-dropdown-menu__item>.fa-icon{margin-right:var(--fa-context-menu-icon-margin)}.fa-context-menu .el-dropdown-menu__item:not(.is-disabled):hover{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.fa-context-menu .el-dropdown-menu__item:not(.is-disabled):hover>.fa-icon{color:var(--el-dropdown-menuItem-hover-color)}.fa-context-menu-small{--fa-context-menu-icon-margin: 3px;--fa-context-menu-font-size: var(--el-font-size-extra-small)}@media(hover: none),(pointer: coarse){.fa-context-menu .el-dropdown-menu__item{min-height:44px}}.fa-dialog{--height: 90%;--fa-dialog-header-height: 40px;--fa-dialog-footer-height: 45px;--fa-dialog-header-icon-width: 30px;--fa-dialog-header-icon-size: var(--el-font-size-large);--el-dialog-title-font-size: var(--el-font-size-base);--el-fill-color-blank: var(--el-bg-color-overlay);box-sizing:border-box;padding:0 8px;margin-bottom:0;display:flex;flex-direction:column;width:min(var(--el-dialog-width, 90%),100vw - 32px);max-height:var(--height);border:1px solid var(--el-border-color-lighter);border-radius:calc(var(--el-border-radius-base)*2);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow);color:var(--el-text-color-regular);font-size:var(--el-font-size-base);overflow:hidden;transition:width var(--el-transition-duration),height var(--el-transition-duration)}.fa-dialog>.el-dialog__header{flex-shrink:0;height:var(--fa-dialog-header-height);border-bottom:1px solid var(--el-border-color-lighter);padding:0;display:flex;align-items:center}.fa-dialog>.el-dialog__body{overflow:hidden;padding:8px;flex:1;min-height:0;display:flex;flex-direction:row}.fa-dialog>.el-dialog__body>.el-scrollbar{height:inherit;flex:1}.fa-dialog>.el-dialog__footer{flex-shrink:0;height:var(--fa-dialog-footer-height);padding:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px solid var(--el-border-color-lighter)}.fa-dialog>.el-dialog__footer>.el-button+.el-button{margin-left:0}.fa-dialog.fa-dialog__fullscreen{--height: 100% !important;--el-dialog-width: 100% !important;height:var(--height);max-height:var(--height);max-width:100%;border:0;border-radius:0}.fa-dialog__header-title{flex:1;min-width:0;padding-inline:4px;overflow:hidden;color:var(--el-text-color-primary);font-weight:var(--el-font-weight-primary);text-overflow:ellipsis;white-space:nowrap}.fa-dialog__header-icon{width:var(--fa-dialog-header-icon-width);height:100%;display:flex;align-items:center;justify-content:center;border-radius:var(--el-border-radius-base);cursor:pointer;transition:background-color var(--el-transition-duration-fast)}.fa-dialog__header-icon:hover{background-color:var(--el-fill-color-light)}.fa-dialog__header-icon>.el-icon{width:100%;height:100%;font-size:var(--fa-dialog-header-icon-size);color:var(--el-text-color-secondary)}.fa-dialog__scrollbar-view{height:100%}.fa-dialog__full-height{height:var(--height)}.fa-dialog-small{--fa-dialog-header-height: 35px;--fa-dialog-footer-height: 40px;--fa-dialog-header-icon-width: 25px;--fa-dialog-header-icon-size: var(--el-font-size-medium);--el-dialog-title-font-size: var(--el-font-size-extra-small);padding:0 6px;font-size:var(--el-font-size-extra-small)}@media(min-width: 768px)and (max-width: 1199.98px){.fa-dialog:not(.fa-dialog__fullscreen){width:min(var(--el-dialog-width, 90%),100vw - 48px);max-height:calc(100dvh - 48px)}}@media(max-width: 767.98px){.fa-dialog:not(.fa-dialog__fullscreen){--height: calc(100dvh - 24px);--fa-dialog-header-height: 44px;--fa-dialog-footer-height: auto;--fa-dialog-header-icon-width: 44px;max-height:var(--height);margin-top:max(12px,env(safe-area-inset-top)) !important;padding:0 6px}.fa-dialog:not(.fa-dialog__fullscreen)>.el-dialog__body{padding:8px 4px}.fa-dialog:not(.fa-dialog__fullscreen)>.el-dialog__footer{min-height:52px;padding:8px 4px max(8px,env(safe-area-inset-bottom))}.fa-dialog:not(.fa-dialog__fullscreen)>.el-dialog__footer>.el-button{flex:1 1 0;min-width:0}}@media(prefers-reduced-motion: reduce){.fa-dialog{transition:none}}.fa-drawer{--fa-drawer-header-height: 40px;--fa-drawer-footer-height: 45px;--fa-drawer-header-icon-width: 30px;--fa-drawer-header-icon-size: var(--el-font-size-large);--el-fill-color-blank: var(--el-bg-color-overlay);box-sizing:border-box;display:flex;flex-direction:column;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow);color:var(--el-text-color-regular);font-size:var(--el-font-size-base);transition:transform var(--el-transition-duration),width var(--el-transition-duration),height var(--el-transition-duration)}.fa-drawer>.el-drawer__header{flex-shrink:0;height:var(--fa-drawer-header-height);border-bottom:1px solid var(--el-border-color-lighter);padding:0 0 0 10px;margin:0;display:flex;align-items:center}.fa-drawer>.el-drawer__body{position:relative;min-height:0;overflow:hidden;padding:8px}.fa-drawer>.el-drawer__body>.el-scrollbar{height:100%}.fa-drawer>.el-drawer__footer{flex-shrink:0;height:var(--fa-drawer-footer-height);padding:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px solid var(--el-border-color-lighter)}.fa-drawer>.el-drawer__footer>.el-button+.el-button{margin-left:0}.fa-drawer.ltr>.el-drawer__body>.fa-drawer__draggable{right:0;left:auto}.fa-drawer.ttb>.el-drawer__body>.fa-drawer__draggable,.fa-drawer.btt>.el-drawer__body>.fa-drawer__draggable{width:100%;height:8px;left:0;cursor:n-resize}.fa-drawer.ttb>.el-drawer__body>.fa-drawer__draggable::after,.fa-drawer.btt>.el-drawer__body>.fa-drawer__draggable::after{width:48px;height:2px}.fa-drawer.ttb>.el-drawer__body>.fa-drawer__draggable{top:auto;bottom:0}.fa-drawer.btt>.el-drawer__body>.fa-drawer__draggable{top:0}.fa-drawer.fa-drawer__dragging{transition:none}.fa-drawer.fa-drawer__fullscreen{width:100% !important;height:100% !important}.fa-drawer__header-title{flex:1;min-width:0;overflow:hidden;color:var(--el-text-color-primary);font-size:inherit;font-weight:var(--el-font-weight-primary);text-overflow:ellipsis;white-space:nowrap}.fa-drawer__header-icon{width:var(--fa-drawer-header-icon-width);height:100%;display:flex;align-items:center;justify-content:center;border-radius:var(--el-border-radius-base);cursor:pointer;transition:background-color var(--el-transition-duration-fast)}.fa-drawer__header-icon:hover{background-color:var(--el-fill-color-light)}.fa-drawer__header-icon>.el-icon{width:100%;height:100%;font-size:var(--fa-drawer-header-icon-size);color:var(--el-text-color-secondary)}.fa-drawer__scrollbar-view{height:100%}.fa-drawer__draggable{height:100%;width:8px;cursor:w-resize;position:absolute;left:0;top:0;touch-action:none;z-index:2}.fa-drawer__draggable::after{content:"";position:absolute;top:50%;left:50%;width:2px;height:48px;border-radius:var(--el-border-radius-round);background-color:var(--el-border-color-light);transform:translate(-50%, -50%)}.fa-drawer-small{--fa-drawer-header-height: 35px;--fa-drawer-footer-height: 40px;--fa-drawer-header-icon-width: 25px;--fa-drawer-header-icon-size: var(--el-font-size-medium);padding:0 6px;font-size:var(--el-font-size-extra-small)}@media(max-width: 767.98px){.fa-drawer{--fa-drawer-header-height: 44px;--fa-drawer-footer-height: auto;--fa-drawer-header-icon-width: 44px}.fa-drawer>.el-drawer__header{padding-left:12px}.fa-drawer>.el-drawer__body{padding:8px 12px}.fa-drawer>.el-drawer__footer{min-height:52px;padding:8px 12px max(8px,env(safe-area-inset-bottom))}.fa-drawer>.el-drawer__footer>.el-button{flex:1 1 0;min-width:0}.fa-drawer__draggable{display:none}}@media(prefers-reduced-motion: reduce){.fa-drawer{transition:none}}.fa-form{--fa-form-detail-label-height: 18px;--fa-form-detail-item-margin: 8px;--fa-form-detail-content-line-height: 14px;box-sizing:border-box;min-width:0;padding-right:10px;color:var(--el-text-color-regular)}.fa-form .el-form-item__content{min-width:0}.fa-form .el-form-item__label{padding:0 6px 0 0}.fa-form-detail-small{--fa-form-detail-label-height: 16px;--fa-form-detail-item-margin: 6px;--fa-form-detail-content-line-height: 12px}.fa-form-detail .el-form-item__label{color:var(--el-color-info);height:var(--fa-form-detail-label-height, 18px);line-height:var(--fa-form-detail-label-height, 18px)}.fa-form-detail .el-form-item__content{line-height:var(--fa-form-detail-content-line-height, 14px)}.fa-form-detail .el-form-item__content>*{width:auto}.fa-form-detail .el-form-item{margin-bottom:var(--fa-form-detail-item-margin, 8px)}@media(max-width: 767.98px){.fa-form{padding-right:0}.fa-form:not(.fa-form-detail) .el-select,.fa-form:not(.fa-form-detail) .el-date-editor,.fa-form:not(.fa-form-detail) .el-input-number,.fa-form:not(.fa-form-detail) .el-cascader,.fa-form:not(.fa-form-detail) .el-autocomplete{width:100%;min-width:0}.fa-form-detail .el-form-item{padding-block:2px}}.fa-form-item-tip{display:inline-flex;align-items:center}.fa-form-item-tip__label{margin-left:4px}.fa-image{border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-lighter);overflow:hidden}.fa-image>.el-image__inner{transition:transform var(--el-transition-duration);cursor:pointer}.fa-image>.el-image__inner:hover{transform:scale(1.2)}.fa-image__error-image{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:var(--el-fill-color-light);color:var(--el-text-color-secondary);font-size:30px}@media(hover: none),(pointer: coarse),(prefers-reduced-motion: reduce){.fa-image>.el-image__inner:hover{transform:none}}@media(prefers-reduced-motion: reduce){.fa-image>.el-image__inner{transition:none}}.fa-icon-selector{width:100%;min-width:0}.fa-icon-selector .el-input-group__prepend,.fa-icon-selector .el-input-group__append{padding:0 12px}.fa-icon-selector .el-input-group__append{cursor:pointer}.el-popper.fa-icon-selector-popover{width:min(560px,100vw - 32px) !important;max-width:calc(100vw - 32px);padding:0;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow);overflow:hidden}.fa-icon-selector-popover__box-header{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-bottom:1px solid var(--el-border-color-lighter);background-color:var(--el-fill-color-lighter)}.fa-icon-selector-popover__box-header__title{flex:1;font-weight:var(--el-font-weight-primary);color:var(--el-text-color-primary)}.fa-icon-selector-popover__box-header__tab{display:flex;gap:4px}.fa-icon-selector-popover__box-header__tab button{padding:5px 8px;border:0;border-radius:var(--el-border-radius-small);background:rgba(0,0,0,0);color:var(--el-text-color-regular);cursor:pointer}.fa-icon-selector-popover__box-header__tab button:hover,.fa-icon-selector-popover__box-header__tab button.is-active{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.fa-icon-selector-popover__box-header__tab button:focus-visible{outline:2px solid var(--el-color-primary-light-5);outline-offset:1px}.fa-icon-selector-popover__box-body{height:min(360px,50vh);padding:8px}.fa-icon-selector-popover__box-body .el-scrollbar,.fa-icon-selector-popover__box-body .el-scrollbar__wrap{height:100%}.fa-icon-selector-popover__box-body .el-scrollbar__view{display:grid;grid-template-columns:repeat(auto-fill, minmax(40px, 1fr));gap:6px}.fa-icon-selector-popover__box-body__item{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0;border:1px solid var(--el-border-color-lighter);border-radius:var(--el-border-radius-base);background-color:var(--el-bg-color);color:var(--el-text-color-regular);cursor:pointer;transition:border-color var(--el-transition-duration-fast),color var(--el-transition-duration-fast),background-color var(--el-transition-duration-fast)}.fa-icon-selector-popover__box-body__item:hover{border-color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.fa-icon-selector-popover__box-body__item:focus-visible{outline:2px solid var(--el-color-primary-light-5);outline-offset:1px}@media(min-width: 768px)and (max-width: 1199.98px){.el-popper.fa-icon-selector-popover{width:min(520px,100vw - 40px) !important}.fa-icon-selector-popover__box-body{height:min(340px,48vh)}}@media(max-width: 767.98px){.fa-icon-selector .el-input-group__prepend,.fa-icon-selector .el-input-group__append{padding:0 10px}.el-popper.fa-icon-selector-popover{width:calc(100vw - 24px) !important;max-width:calc(100vw - 24px)}.fa-icon-selector-popover__box-header{align-items:stretch;flex-direction:column;gap:6px;padding:10px}.fa-icon-selector-popover__box-header__tab{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr))}.fa-icon-selector-popover__box-header__tab button{min-height:36px}.fa-icon-selector-popover__box-body{height:min(380px,56dvh);padding:6px}.fa-icon-selector-popover__box-body .el-scrollbar__view{grid-template-columns:repeat(auto-fill, minmax(44px, 1fr))}.fa-icon-selector-popover__box-body__item{min-width:44px;height:44px}}.fa-select-dropdown__more-detail{--fa-select-detail-height: 42px;max-width:calc(100vw - 32px)}.fa-select-dropdown__selector__more-detail{display:flex;flex-direction:column;justify-content:center;height:var(--fa-select-detail-height, 42px);padding-block:4px}.fa-select-dropdown__selector__more-detail>:first-child{line-height:normal}.fa-select-dropdown__selector__more-detail>:nth-child(2){line-height:normal;margin-left:auto;color:var(--el-text-color-secondary);font-size:var(--el-font-size-extra-small)}.fa-select-dropdown__more-detail-small{--fa-select-detail-height: 34px}@media(max-width: 767.98px),(hover: none),(pointer: coarse){.fa-select-dropdown__more-detail{max-width:calc(100vw - 24px)}.fa-select-dropdown__selector__more-detail{height:auto;min-height:44px}}.fa-select-page-dropdown{--fa-select-page-detail-font-size: var(--el-font-size-extra-small);max-width:calc(100vw - 32px)}.fa-select-page-dropdown .el-select-dropdown__header{padding:5px;display:flex;flex-direction:column;gap:5px}.fa-select-page-dropdown .el-select-dropdown__footer{padding:5px;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.fa-select-page-dropdown__default-selector{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;padding:0 8px 0 5px}.fa-select-page-dropdown__default-selector>:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fa-select-page-dropdown__default-selector>:nth-child(2){flex-shrink:0;color:var(--el-text-color-secondary);font-size:var(--fa-select-page-detail-font-size)}.fa-select-page-dropdown__search-input{width:100%}.fa-select-page-dropdown__pagination{max-width:100%;height:24px;padding-right:5px;overflow-x:auto}.fa-select-page-dropdown-small{--fa-select-page-detail-font-size: calc(var(--el-font-size-extra-small) - 1px)}@media(max-width: 767.98px){.fa-select-page-dropdown{max-width:calc(100vw - 24px)}.fa-select-page-dropdown .el-select-dropdown__header,.fa-select-page-dropdown .el-select-dropdown__footer{padding:6px}.fa-select-page-dropdown__pagination{width:100%;justify-content:flex-start}}.fa-select-v2-dropdown__more-detail{max-width:calc(100vw - 32px)}.fa-select-v2-dropdown__more-detail .el-select-dropdown__item{display:flex;flex-direction:column;justify-content:center}.fa-select-v2-dropdown__more-detail .el-select-dropdown__item>:first-child{line-height:normal}.fa-select-v2-dropdown__more-detail .el-select-dropdown__item>:nth-child(2){line-height:normal;margin-left:auto;color:var(--el-text-color-secondary);font-size:var(--el-font-size-extra-small)}@media(max-width: 767.98px){.fa-select-v2-dropdown__more-detail{max-width:calc(100vw - 24px)}}.fa-table{--fa-table-expand-padding: 12px 16px;--fa-table-image-size: 30px;--fa-table-tool-gap: 12px;--fa-table-date-search-width: 190px;--fa-table-keyword-min-width: 120px;--fa-table-keyword-max-width: 344px;--fa-table-keyword-measure-padding: 0 36px 0 33px;--fa-table-keyword-font-size: var(--el-font-size-base);box-sizing:border-box;width:100%;height:100%;min-width:0;display:flex;flex-direction:column;overflow:hidden;color:var(--el-text-color-regular);transition:width var(--el-transition-duration),height var(--el-transition-duration)}.fa-table>.el-card{--el-fill-color-blank: var(--el-bg-color-overlay);border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.fa-table__search{box-sizing:border-box;flex-shrink:0;max-height:100%;display:flex;align-items:center;padding:10px 12px;margin-bottom:10px;transition:height var(--el-transition-duration) ease-in-out,max-height var(--el-transition-duration) ease-in-out,opacity var(--el-transition-duration) ease-in-out,padding var(--el-transition-duration) ease-in-out,margin var(--el-transition-duration) ease-in-out}.fa-table__search.fa-table__search-hidden{height:0;max-height:0;opacity:0;padding:0;margin:0;border-width:0;border-color:rgba(0,0,0,0)}.fa-table__search>.el-form{width:100%;min-width:0}.fa-table__search .el-form-item{margin-bottom:0;min-width:0}.fa-table__search .el-form-item__label{width:unset !important;padding:0 6px 0 0}.fa-table__search .el-range-editor.el-input__wrapper{padding:0 10px}.fa-table__search-operation{display:flex;align-items:center;justify-content:flex-end;gap:8px}.fa-table__search-operation>.el-button+.el-button{margin-left:0}.fa-table__search-operation .el-button.is-link .el-icon{margin-left:2px}.fa-table__header{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;padding:10px 12px;margin-bottom:10px}.fa-table__main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;padding:10px 12px;overflow:hidden}.fa-table__main-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.fa-table__main-header-left,.fa-table__main-header-right{display:inline-flex;align-items:center;min-width:0;flex-wrap:wrap}.fa-table__main-header-left{gap:8px}.fa-table__main-header-right{column-gap:var(--fa-table-tool-gap)}.fa-table__main-header-right>.el-button+.el-button{margin-left:0}.fa-table__main-header-right__data-search{width:var(--fa-table-date-search-width);padding:0 5px}.fa-table__main-header-right__data-search .el-range-input{width:45%}.fa-table__main-header-right__data-search .el-range-separator{padding:0}.fa-table__main-header-right__data-search .el-range__close-icon{display:none}.fa-table__main-header-right__div-search{width:min-content;min-width:var(--fa-table-keyword-min-width);max-width:var(--fa-table-keyword-max-width);position:relative}.fa-table__main-header-right__div-search__hidden{height:0;overflow:hidden;white-space:nowrap;padding:var(--fa-table-keyword-measure-padding);font-size:var(--fa-table-keyword-font-size)}.fa-table__main-footer{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.fa-table__main-footer__left{flex:1;min-width:0}.fa-table__table{--el-table-header-text-color: var(--el-text-color-primary);--el-table-header-bg-color: var(--el-fill-color-light);flex:1;min-width:0;min-height:0}.fa-table__header-cell .el-table__placeholder{display:inline}.fa-table__header-cell>.cell{white-space:nowrap}.fa-table__header-cell.fa-table__image-column>.cell{padding-right:0}.fa-table__header-cell.el-table__cell:is(.el-table-fixed-column--left,.el-table-fixed-column--right){background-color:var(--el-table-header-bg-color)}.fa-table__auto-width-column__cell-header{display:inline-block}.fa-table__auto-width-column__cell{width:fit-content;white-space:nowrap}:where(.fa-table__table>.el-table__inner-wrapper>.el-table__body-wrapper>.el-scrollbar>.el-scrollbar__wrap>.el-scrollbar__view)>.el-table__empty-block{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}:where(.fa-table__table>.el-table__inner-wrapper>.el-table__body-wrapper>.el-scrollbar>.el-scrollbar__wrap>.el-scrollbar__view)>.el-table__body>tbody>tr>.el-table__expanded-cell{padding:0}.fa-table__empty{line-height:30px}.fa-table__empty>.el-icon{width:100px;height:auto}.fa-table__empty>.el-icon>svg{width:auto;height:auto}.fa-table__expand-wrapper{position:sticky;left:0;box-sizing:border-box;width:var(--fa-table-expand-width, 100cqw);min-width:0;padding:var(--fa-table-expand-padding)}.fa-table__primary-row{--el-table-tr-bg-color: var(--el-color-primary-light-9)}.fa-table__success-row{--el-table-tr-bg-color: var(--el-color-success-light-9)}.fa-table__warning-row{--el-table-tr-bg-color: var(--el-color-warning-light-9)}.fa-table__danger-row,.fa-table__error-row{--el-table-tr-bg-color: var(--el-color-danger-light-9)}.fa-table__info-row{--el-table-tr-bg-color: var(--el-color-info-light-9)}.fa-table__cell:not(.fa-table__operation-column) .el-button.is-link{--el-button-text-color: var(--el-text-color-regular);--el-button-hover-link-text-color: var(--el-color-primary)}.fa-table__cell:not(.fa-table__operation-column) .el-button.is-link:hover{text-decoration:underline;text-decoration-color:var(--el-button-hover-link-text-color)}.fa-table__cell:is(.fa-table__expand-column,.fa-table__selection-column,.fa-table__index-column,.fa-table__image-column)>.cell{padding:0}.fa-table__cell.fa-table__image-column>.cell{line-height:0}.fa-table__cell.fa-table__line-height-normal-column{padding:2px 0}.fa-table__cell.fa-table__line-height-normal-column>.cell{line-height:normal}.fa-table__image{display:inline-table;width:var(--fa-table-image-size);height:var(--fa-table-image-size);border-radius:4px}.fa-table__link-column__text{display:inline;font-weight:bold}:where(.fa-table__cell.fa-table__operation-column>.cell) .el-dropdown{vertical-align:middle}:where(.fa-table__cell.fa-table__operation-column) .el-dropdown-link{cursor:pointer;color:var(--el-color-primary);display:flex;align-items:baseline}.fa-table__data-delete-column::after{content:"数据已删除";position:absolute;inset:0;background-color:var(--el-overlay-color);color:var(--el-color-danger);display:flex;justify-content:center;align-items:center;cursor:not-allowed}.fa-table__selection-column__indeterminate .el-checkbox__inner::after{content:none}.fa-table__selection-column__indeterminate .el-checkbox__inner::before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(0.5)}.fa-table__column-setting-drag-handle{color:var(--el-text-color-secondary);cursor:grab;touch-action:none;user-select:none}.fa-table__column-setting-drag-handle:active{cursor:grabbing}.fa-table-small{--fa-table-expand-padding: 8px 12px;--fa-table-image-size: 22px;--fa-table-tool-gap: 6px;--fa-table-date-search-width: 160px;--fa-table-keyword-min-width: 100px;--fa-table-keyword-max-width: 274px;--fa-table-keyword-measure-padding: 0 30px 0 27px;--fa-table-keyword-font-size: 12px}.fa-table-small>.fa-table__search{margin-bottom:5px;padding:5px 10px}.fa-table-small>.fa-table__search .fa-table__search-operation{margin-top:4px;gap:5px}.fa-table-small>.fa-table__header{margin-bottom:5px}.fa-table__main-header-right__data-search__popper{--fa-table-date-picker-width: 610px;--fa-table-date-picker-sidebar-width: 60px;--fa-table-date-picker-shortcut-padding: 10px;--fa-table-date-picker-th-padding: 3px;--fa-table-date-picker-cell-height: 26px;--fa-table-date-picker-header-font-size: 15px;max-width:calc(100vw - 32px)}.fa-table__main-header-right__data-search__popper .el-date-range-picker{width:min(var(--fa-table-date-picker-width),100vw - 32px)}.fa-table__main-header-right__data-search__popper .el-picker-panel__body-wrapper{display:flex;flex-direction:row}.fa-table__main-header-right__data-search__popper .el-picker-panel__sidebar{position:static;overflow:visible;width:var(--fa-table-date-picker-sidebar-width)}.fa-table__main-header-right__data-search__popper .el-picker-panel__shortcut{width:var(--fa-table-date-picker-sidebar-width);padding-left:var(--fa-table-date-picker-shortcut-padding)}.fa-table__main-header-right__data-search__popper .el-picker-panel__body{min-width:auto;margin:0}.fa-table__main-header-right__data-search__popper .el-date-range-picker__header>div{font-size:var(--fa-table-date-picker-header-font-size);margin:0}.fa-table__main-header-right__data-search__popper .el-date-table th{padding:var(--fa-table-date-picker-th-padding)}.fa-table__main-header-right__data-search__popper .el-date-table-cell{height:var(--fa-table-date-picker-cell-height);padding:0}.fa-table__main-header-right__data-search__popper .el-date-range-picker__content{padding:6px}.fa-table__main-header-right__data-search__popper-small{--fa-table-date-picker-width: 510px;--fa-table-date-picker-sidebar-width: 50px;--fa-table-date-picker-shortcut-padding: 6px;--fa-table-date-picker-th-padding: 0;--fa-table-date-picker-cell-height: 24px;--fa-table-date-picker-header-font-size: 14px}.fa-table__main-header-right__data-search__popper-small .el-picker-panel__shortcut{font-size:13px;line-height:26px}.fa-table__main-header-right__data-search__popper-small .el-date-table td{height:28px;padding:2px 0}@media(min-width: 768px)and (max-width: 1199.98px){.fa-table__main-header{align-items:flex-start;flex-wrap:wrap}.fa-table__main-header-right{flex:1 1 420px;justify-content:flex-end}.fa-table__main-footer{align-items:flex-start;flex-wrap:wrap}}@media(max-width: 767.98px){.fa-table{overflow:visible}.fa-table>.el-card{border-radius:var(--el-border-radius-base);box-shadow:none}.fa-table__search,.fa-table-small>.fa-table__search{align-items:stretch;padding:10px 8px;margin-bottom:8px}.fa-table__search .el-form-item{display:block}.fa-table__search .el-form-item__label{display:block;width:100% !important;height:auto;padding:0 0 4px;line-height:1.5;text-align:left}.fa-table__search .el-form-item__content,.fa-table__search .el-select,.fa-table__search .el-date-editor,.fa-table__search .el-input-number{width:100%;min-width:0}.fa-table__header{padding:8px;margin-bottom:8px;overflow-x:auto}.fa-table-small>.fa-table__header{margin-bottom:8px}.fa-table__main{padding:8px}.fa-table__main-header{align-items:stretch;flex-direction:column;gap:8px;margin-bottom:8px}.fa-table__main-header-left,.fa-table__main-header-right{width:100%}.fa-table__main-header-right{gap:8px}.fa-table__main-header-right__div-search{flex:1 1 150px;width:auto;max-width:none}.fa-table__main-header-right__data-search{flex:1 1 190px;width:auto;min-width:0}.fa-table__main-footer{align-items:stretch;flex-direction:column;gap:8px;margin-top:8px}.fa-table__main-footer .fa-table-pagination{box-sizing:border-box;width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.fa-table__main-footer .el-pagination__jump,.fa-table__main-footer .el-pagination__total{display:none}.fa-table__main-header-right__data-search__popper{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow-y:auto}.fa-table__main-header-right__data-search__popper .el-date-range-picker{width:calc(100vw - 24px)}.fa-table__main-header-right__data-search__popper .el-picker-panel__body-wrapper{display:block}.fa-table__main-header-right__data-search__popper .el-picker-panel__sidebar{display:none}.fa-table__main-header-right__data-search__popper .el-picker-panel__body{min-width:0;margin:0}.fa-table__main-header-right__data-search__popper .el-date-range-picker__content{box-sizing:border-box;width:100%;padding:8px}.fa-table__main-header-right__data-search__popper .el-date-range-picker__content.is-left{border-right:0;border-bottom:1px solid var(--el-border-color-lighter)}}@media(prefers-reduced-motion: reduce){.fa-table,.fa-table__search{transition:none}}.fa-tree{--fa-tree-node-height: 30px;--fa-tree-font-size: var(--el-font-size-base);--fa-tree-title-font-size: var(--el-font-size-large);--fa-tree-title-icon-size: var(--el-font-size-extra-large);--el-input-bg-color: transparent;--el-fill-color-blank: transparent;box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-width:0;padding:10px 10px 0;background-color:var(--el-bg-color-overlay);color:var(--el-text-color-regular)}.fa-tree.fa-tree__fold>.fa-tree__scrollbar .el-tree-node__expand-icon{display:none}.fa-tree__title{display:flex;flex-flow:row;align-items:center;justify-content:center}.fa-tree__title>:first-child{flex:1}.fa-tree__title>h4{margin:0;font-size:var(--fa-tree-title-font-size);font-weight:bold;color:var(--el-text-color-primary);letter-spacing:.5px}.fa-tree__title>.el-icon{font-size:var(--fa-tree-title-icon-size);cursor:pointer}.fa-tree__search-input{margin:5px 0}.fa-tree__scrollbar{flex:1;min-height:0;padding-right:10px}.fa-tree__inner{font-size:var(--fa-tree-font-size)}.fa-tree__inner .el-tree-node__content{border-radius:var(--el-border-radius-base);height:var(--fa-tree-node-height);padding:0 3px}.fa-tree__inner .el-tree-node__expand-icon{padding:3px}.fa-tree__inner .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary);color:var(--el-color-white)}.fa-tree__inner .el-tree-node.is-current>.el-tree-node__content>.is-leaf{color:rgba(0,0,0,0)}.fa-tree__node-label{width:100%;display:flex;flex-flow:row;justify-content:space-between;overflow:hidden}.fa-tree__node-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fa-tree__node-label span .el-icon{font-size:var(--el-font-size-medium)}.fa-tree__node-label>div{display:flex;align-items:center;flex:1;overflow:hidden}.fa-tree__node-label>div .el-avatar{flex-shrink:0}.fa-tree__node-label>:first-child{flex:1}.fa-tree__node-label>:nth-child(2){margin-left:10px}.fa-tree__node-label>:nth-child(2) .el-icon:nth-child(n+2){margin-left:5px}.fa-tree-small{--fa-tree-node-height: 26px;--fa-tree-font-size: var(--el-font-size-extra-small);--fa-tree-title-font-size: var(--el-font-size-medium);--fa-tree-title-icon-size: var(--el-font-size-large)}@media(min-width: 768px)and (max-width: 1199.98px){.fa-tree{padding:10px 8px 0}.fa-tree__scrollbar{padding-right:6px}}@media(max-width: 767.98px){.fa-tree{padding:8px 6px 0;border-radius:var(--el-border-radius-base)}.fa-tree__title{min-height:44px}.fa-tree__title>.el-icon{padding:10px}.fa-tree__search-input{margin:4px 0 8px}.fa-tree__scrollbar{padding-right:2px}.fa-tree__inner .el-tree-node__content{min-height:44px}}.fa-upload{box-sizing:border-box;display:inline-block;min-width:0;max-width:100%;position:relative;color:var(--el-text-color-regular)}.fa-upload .el-upload{box-sizing:border-box;max-width:100%}.fa-upload:not(.fa-upload__trigger) .el-upload:not(.is-drag){flex-direction:column;padding:20px;border:1px dashed var(--el-border-color);border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-fill-color-lighter)}.fa-upload:not(.fa-upload__trigger) .el-upload:not(.is-drag):hover{border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.fa-upload .el-upload-dragger{max-width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:20px;border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-fill-color-lighter);transition:border-color var(--el-transition-duration-fast),background-color var(--el-transition-duration-fast)}.fa-upload .el-upload-dragger:hover{border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.fa-upload .el-icon--upload{margin-bottom:8px;color:var(--el-color-primary);font-size:44px}.fa-upload .el-upload__text{max-width:100%;color:var(--el-text-color-regular);text-align:center}.fa-upload .el-upload__tip{color:var(--el-text-color-secondary);line-height:1.5;text-align:center}.fa-upload .el-upload-list__item{border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-lighter)}.fa-upload-image{box-sizing:border-box;display:inline-block;min-width:0;max-width:100%;position:relative}.fa-upload-image .el-upload{box-sizing:border-box;position:relative;width:var(--width);max-width:100%;height:var(--height);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed var(--el-border-color);border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-fill-color-lighter);overflow:hidden}.fa-upload-image .el-upload:hover{border-color:var(--el-color-primary)}.fa-upload-image .el-upload-dragger{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;width:100%;height:100%;border:0;border-radius:inherit;background-color:rgba(0,0,0,0)}.fa-upload-image .el-upload-list__item-thumbnail{width:100%;height:100%;display:block;object-fit:contain}.fa-upload-image .el-upload-list__item-actions{position:absolute;inset:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:var(--el-color-white);opacity:0;font-size:var(--el-font-size-extra-large);background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.fa-upload-image .el-upload-list__item-actions:hover{opacity:1}.fa-upload-image .el-upload-list__item-actions:hover span{display:inline-flex}.fa-upload-image .el-upload-list__item-icon{display:none;cursor:pointer}.fa-upload-image .el-upload-list__item-icon:not(:first-child){margin-left:1rem}.fa-upload-image .el-icon--upload{font-size:calc(var(--height)*.4);margin-bottom:0}.fa-upload-image .el-upload__text{line-height:18px;max-width:100%}.fa-upload-image .el-upload__tip{margin-top:0;color:var(--el-text-color-secondary);line-height:1.5}.fa-upload-image .el-loading-mask{top:0;left:0;right:auto;bottom:auto;width:var(--width);max-width:100%;height:var(--height)}@media(max-width: 767.98px){.fa-upload-image .el-upload-list__item-icon{min-width:40px;min-height:40px;align-items:center;justify-content:center}.fa-upload-image .el-upload-list__item-icon:not(:first-child){margin-left:4px}.fa-upload-image .el-upload__text{padding-inline:6px;font-size:var(--el-font-size-extra-small)}}@media(hover: none),(pointer: coarse){.fa-upload-image .el-upload-list__item-actions{opacity:1}.fa-upload-image .el-upload-list__item-icon{display:inline-flex;border-radius:50%;background-color:var(--el-overlay-color-lighter)}}.fa-upload-images{box-sizing:border-box;display:inline-block;min-width:0;max-width:100%;position:relative;color:var(--el-text-color-regular)}.fa-upload-images .el-upload-list--picture-card{max-width:100%}.fa-upload-images .el-upload-list__item,.fa-upload-images .el-upload--picture-card{border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-fill-color-lighter)}.fa-upload-images .el-upload--picture-card.is-drag{display:inline-flex}.fa-upload-images .el-upload-dragger{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:inherit;background-color:rgba(0,0,0,0)}.fa-upload-images .el-upload-dragger>.el-icon{color:var(--el-text-color-secondary);font-size:28px}.fa-upload-images .el-upload__tip{color:var(--el-text-color-secondary)}.fa-upload-images__hidden-upload .el-upload{display:none}@media(hover: none),(pointer: coarse){.fa-upload-images .el-upload-list__item-actions{box-sizing:border-box;display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:4px;padding:4px;opacity:1}.fa-upload-images .el-upload-list__item-actions>.el-upload-list__item-icon,.fa-upload-images .el-upload-list__item-actions>.el-upload-list__item-preview{display:inline-flex;align-items:center;justify-content:center;width:auto;height:36px;border-radius:50%;background-color:var(--el-overlay-color-lighter)}.fa-upload-images .el-upload-list__item-actions>span+span{margin-left:0}}/*# sourceMappingURL=index.css.map */
1
+ @keyframes twinkle{0%{transform:scale(0.8)}80%{transform:scale(1.1)}100%{transform:scale(1)}}@keyframes loading{0%{background-position:0 0,0 100%,100% 100%}25%{background-position:100% 0,0 100%,100% 100%}50%{background-position:100% 0,0 0,100% 100%}75%{background-position:100% 0,0 0,0 100%}100%{background-position:100% 100%,0 0,0 100%}}.__fa-loading{position:fixed;inset:0;z-index:9990;width:100%;height:100%;background-color:var(--el-mask-color);backdrop-filter:blur(2px)}.__fa-loading__box{position:absolute;top:50%;left:50%;filter:drop-shadow(var(--el-box-shadow-light));transform:translate(-50%, -50%)}.__fa-loading__box-warp{width:80px;height:80px}.__fa-loading__box-warp__item{--g1: conic-gradient(from 90deg at 3px 3px, #0000 90deg, var(--el-color-primary) 0);--g2: conic-gradient(from -90deg at 22px 22px, #0000 90deg, var(--el-color-primary) 0);width:55px;aspect-ratio:1;background:var(--g1),var(--g1),var(--g1),var(--g2),var(--g2),var(--g2);background-size:25px 25px;background-repeat:no-repeat;animation:loading 1.2s infinite}@media(prefers-reduced-motion: reduce){.__fa-loading__box-warp__item{animation:none}}.__fa-overlay{position:fixed;inset:0;z-index:9990;width:100%;height:100%;background-color:rgba(0,0,0,0);pointer-events:auto;cursor:not-allowed}.fa__copy-icon{margin-right:3px;color:var(--el-text-color-secondary);cursor:pointer;transition:color var(--el-transition-duration-fast)}.fa__copy-icon:hover{color:var(--el-color-primary)}.fa__hover__twinkle{transform-origin:center}.fa__hover__twinkle:hover>:first-child{animation:twinkle var(--el-transition-duration) linear}.fa__hover__suspension{transition:transform var(--el-transition-duration) ease,box-shadow var(--el-transition-duration) ease}.fa__hover__suspension:hover{border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow);transform:translateY(-4px) scale(1.02)}.fa__click__disabled{pointer-events:none !important}.fa__click__disabled.fa__click__disabled__cursor{position:relative !important;pointer-events:auto !important}.fa__click__disabled:hover{cursor:not-allowed !important}@media(prefers-reduced-motion: reduce){.fa__hover__twinkle:hover>:first-child{animation:none}.fa__hover__suspension{transition:none}.fa__hover__suspension:hover{transform:none}}.el-popper.fa-car-number__popover{box-sizing:border-box;width:min(360px + var(--el-popover-padding)*2 + 2px,100vw - 32px) !important;max-width:calc(100vw - 32px);margin-top:-12px;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow)}.fa-car-number__popover__digit-letter,.fa-car-number__popover__area{display:grid;grid-template-columns:repeat(10, minmax(0, 1fr));gap:4px}.fa-car-number__popover__digit-letter>.el-button,.fa-car-number__popover__area>.el-button{width:100%;min-width:0;margin:0;padding-inline:0}.fa-car-number__popover__hide{display:none}.fa-car-number__popover__btn{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}.fa-car-number__popover__btn>.el-button+.el-button{margin-left:0}@media(max-width: 767.98px){.el-popper.fa-car-number__popover{width:calc(100vw - 24px) !important;max-width:calc(100vw - 24px);margin-top:-8px;padding:10px}.fa-car-number__popover__area,.fa-car-number__popover__digit-letter{grid-template-columns:repeat(8, minmax(0, 1fr));gap:5px}.fa-car-number__popover__area>.el-button,.fa-car-number__popover__digit-letter>.el-button{min-height:38px}.fa-car-number__popover__btn{margin-top:8px}.fa-car-number__popover__btn>.el-button{flex:1 1 0;min-width:0}}.fa-context-menu{--fa-context-menu-icon-margin: 5px;--fa-context-menu-font-size: var(--el-font-size-small);position:fixed;overflow:hidden;padding:0;border:1px solid var(--el-border-color-lighter);border-radius:var(--el-border-radius-base);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow)}.fa-context-menu>.el-dropdown-menu{background-color:rgba(0,0,0,0)}.fa-context-menu .el-dropdown-menu__item{min-height:var(--el-component-size);font-size:var(--fa-context-menu-font-size)}.fa-context-menu .el-dropdown-menu__item>.fa-icon{margin-right:var(--fa-context-menu-icon-margin)}.fa-context-menu .el-dropdown-menu__item:not(.is-disabled):hover{color:var(--el-dropdown-menuItem-hover-color);background-color:var(--el-dropdown-menuItem-hover-fill)}.fa-context-menu .el-dropdown-menu__item:not(.is-disabled):hover>.fa-icon{color:var(--el-dropdown-menuItem-hover-color)}.fa-context-menu-small{--fa-context-menu-icon-margin: 3px;--fa-context-menu-font-size: var(--el-font-size-extra-small)}@media(hover: none),(pointer: coarse){.fa-context-menu .el-dropdown-menu__item{min-height:44px}}.fa-dialog{--height: 90%;--fa-dialog-header-height: 40px;--fa-dialog-footer-height: 45px;--fa-dialog-header-icon-width: 30px;--fa-dialog-header-icon-size: var(--el-font-size-large);--el-dialog-title-font-size: var(--el-font-size-base);--el-fill-color-blank: var(--el-bg-color-overlay);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;width:min(var(--el-dialog-width, 90%),100vw - 32px);max-height:var(--height);margin-bottom:0;padding:0 8px;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);border:1px solid var(--el-border-color-lighter);border-radius:calc(var(--el-border-radius-base)*2);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow);transition:width var(--el-transition-duration),height var(--el-transition-duration)}.fa-dialog>.el-dialog__header{display:flex;flex-shrink:0;align-items:center;height:var(--fa-dialog-header-height);padding:0;border-bottom:1px solid var(--el-border-color-lighter)}.fa-dialog>.el-dialog__body{display:flex;flex:1;flex-direction:row;overflow:hidden;min-height:0;padding:8px}.fa-dialog>.el-dialog__body>.el-scrollbar{flex:1;height:inherit}.fa-dialog>.el-dialog__footer{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;gap:8px;height:var(--fa-dialog-footer-height);padding:0;border-top:1px solid var(--el-border-color-lighter)}.fa-dialog>.el-dialog__footer>.el-button+.el-button{margin-left:0}.fa-dialog.fa-dialog__fullscreen{--height: 100% !important;--el-dialog-width: 100% !important;max-width:100%;height:var(--height);max-height:var(--height);border:0;border-radius:0}.fa-dialog__header-title{flex:1;overflow:hidden;min-width:0;padding-inline:4px;font-weight:var(--el-font-weight-primary);text-overflow:ellipsis;white-space:nowrap;color:var(--el-text-color-primary)}.fa-dialog__header-icon{display:flex;align-items:center;justify-content:center;width:var(--fa-dialog-header-icon-width);height:100%;border-radius:var(--el-border-radius-base);cursor:pointer;transition:background-color var(--el-transition-duration-fast)}.fa-dialog__header-icon:hover{background-color:var(--el-fill-color-light)}.fa-dialog__header-icon>.el-icon{width:100%;height:100%;font-size:var(--fa-dialog-header-icon-size);color:var(--el-text-color-secondary)}.fa-dialog__scrollbar-view{height:100%}.fa-dialog__full-height{height:var(--height)}.fa-dialog-small{--fa-dialog-header-height: 35px;--fa-dialog-footer-height: 40px;--fa-dialog-header-icon-width: 25px;--fa-dialog-header-icon-size: var(--el-font-size-medium);--el-dialog-title-font-size: var(--el-font-size-extra-small);padding:0 6px;font-size:var(--el-font-size-extra-small)}@media(min-width: 768px)and (max-width: 1199.98px){.fa-dialog:not(.fa-dialog__fullscreen){width:min(var(--el-dialog-width, 90%),100vw - 48px);max-height:calc(100dvh - 48px)}}@media(max-width: 767.98px){.fa-dialog:not(.fa-dialog__fullscreen){--height: calc(100dvh - 24px);--fa-dialog-header-height: 44px;--fa-dialog-footer-height: auto;--fa-dialog-header-icon-width: 44px;max-height:var(--height);margin-top:max(12px,env(safe-area-inset-top)) !important;padding:0 6px}.fa-dialog:not(.fa-dialog__fullscreen)>.el-dialog__body{padding:8px 4px}.fa-dialog:not(.fa-dialog__fullscreen)>.el-dialog__footer{min-height:52px;padding:8px 4px max(8px,env(safe-area-inset-bottom))}.fa-dialog:not(.fa-dialog__fullscreen)>.el-dialog__footer>.el-button{flex:1 1 0;min-width:0}}@media(prefers-reduced-motion: reduce){.fa-dialog{transition:none}}.fa-drawer{--fa-drawer-header-height: 40px;--fa-drawer-footer-height: 45px;--fa-drawer-header-icon-width: 30px;--fa-drawer-header-icon-size: var(--el-font-size-large);--el-fill-color-blank: var(--el-bg-color-overlay);box-sizing:border-box;display:flex;flex-direction:column;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow);transition:transform var(--el-transition-duration),width var(--el-transition-duration),height var(--el-transition-duration)}.fa-drawer>.el-drawer__header{display:flex;flex-shrink:0;align-items:center;height:var(--fa-drawer-header-height);margin:0;padding:0 0 0 10px;border-bottom:1px solid var(--el-border-color-lighter)}.fa-drawer>.el-drawer__body{position:relative;overflow:hidden;min-height:0;padding:8px}.fa-drawer>.el-drawer__body>.el-scrollbar{height:100%}.fa-drawer>.el-drawer__footer{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;gap:8px;height:var(--fa-drawer-footer-height);padding:0;border-top:1px solid var(--el-border-color-lighter)}.fa-drawer>.el-drawer__footer>.el-button+.el-button{margin-left:0}.fa-drawer.ltr>.el-drawer__body>.fa-drawer__draggable{right:0;left:auto}.fa-drawer.ttb>.el-drawer__body>.fa-drawer__draggable,.fa-drawer.btt>.el-drawer__body>.fa-drawer__draggable{left:0;width:100%;height:8px;cursor:n-resize}.fa-drawer.ttb>.el-drawer__body>.fa-drawer__draggable::after,.fa-drawer.btt>.el-drawer__body>.fa-drawer__draggable::after{width:48px;height:2px}.fa-drawer.ttb>.el-drawer__body>.fa-drawer__draggable{top:auto;bottom:0}.fa-drawer.btt>.el-drawer__body>.fa-drawer__draggable{top:0}.fa-drawer.fa-drawer__dragging{transition:none}.fa-drawer.fa-drawer__fullscreen{width:100% !important;height:100% !important}.fa-drawer__header-title{flex:1;overflow:hidden;min-width:0;font-size:inherit;font-weight:var(--el-font-weight-primary);text-overflow:ellipsis;white-space:nowrap;color:var(--el-text-color-primary)}.fa-drawer__header-icon{display:flex;align-items:center;justify-content:center;width:var(--fa-drawer-header-icon-width);height:100%;border-radius:var(--el-border-radius-base);cursor:pointer;transition:background-color var(--el-transition-duration-fast)}.fa-drawer__header-icon:hover{background-color:var(--el-fill-color-light)}.fa-drawer__header-icon>.el-icon{width:100%;height:100%;font-size:var(--fa-drawer-header-icon-size);color:var(--el-text-color-secondary)}.fa-drawer__scrollbar-view{height:100%}.fa-drawer__draggable{position:absolute;left:0;top:0;z-index:2;width:8px;height:100%;cursor:w-resize;touch-action:none}.fa-drawer__draggable::after{position:absolute;top:50%;left:50%;content:"";width:2px;height:48px;border-radius:var(--el-border-radius-round);background-color:var(--el-border-color-light);transform:translate(-50%, -50%)}.fa-drawer-small{--fa-drawer-header-height: 35px;--fa-drawer-footer-height: 40px;--fa-drawer-header-icon-width: 25px;--fa-drawer-header-icon-size: var(--el-font-size-medium);padding:0 6px;font-size:var(--el-font-size-extra-small)}@media(max-width: 767.98px){.fa-drawer{--fa-drawer-header-height: 44px;--fa-drawer-footer-height: auto;--fa-drawer-header-icon-width: 44px}.fa-drawer>.el-drawer__header{padding-left:12px}.fa-drawer>.el-drawer__body{padding:8px 12px}.fa-drawer>.el-drawer__footer{min-height:52px;padding:8px 12px max(8px,env(safe-area-inset-bottom))}.fa-drawer>.el-drawer__footer>.el-button{flex:1 1 0;min-width:0}.fa-drawer__draggable{display:none}}@media(prefers-reduced-motion: reduce){.fa-drawer{transition:none}}.fa-form{--fa-form-detail-label-height: 18px;--fa-form-detail-item-margin: 8px;--fa-form-detail-content-line-height: 14px;box-sizing:border-box;min-width:0;padding-right:10px;color:var(--el-text-color-regular)}.fa-form .el-form-item__content{min-width:0}.fa-form .el-form-item__label{padding:0 6px 0 0}.fa-form-detail-small{--fa-form-detail-label-height: 16px;--fa-form-detail-item-margin: 6px;--fa-form-detail-content-line-height: 12px}.fa-form-detail .el-form-item__label{height:var(--fa-form-detail-label-height, 18px);line-height:var(--fa-form-detail-label-height, 18px);color:var(--el-color-info)}.fa-form-detail .el-form-item__content{line-height:var(--fa-form-detail-content-line-height, 14px)}.fa-form-detail .el-form-item__content>*{width:auto}.fa-form-detail .el-form-item{margin-bottom:var(--fa-form-detail-item-margin, 8px)}@media(max-width: 767.98px){.fa-form{padding-right:0}.fa-form:not(.fa-form-detail) .el-select,.fa-form:not(.fa-form-detail) .el-date-editor,.fa-form:not(.fa-form-detail) .el-input-number,.fa-form:not(.fa-form-detail) .el-cascader,.fa-form:not(.fa-form-detail) .el-autocomplete{width:100%;min-width:0}.fa-form-detail .el-form-item{padding-block:2px}}.fa-form-item-tip{display:inline-flex;align-items:center}.fa-form-item-tip__label{margin-left:4px}.fa-image{overflow:hidden;border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-lighter)}.fa-image>.el-image__inner{cursor:pointer;transition:transform var(--el-transition-duration)}.fa-image>.el-image__inner:hover{transform:scale(1.2)}.fa-image__error-image{display:flex;justify-content:center;align-items:center;width:100%;height:100%;font-size:30px;color:var(--el-text-color-secondary);background:var(--el-fill-color-light)}@media(hover: none),(pointer: coarse),(prefers-reduced-motion: reduce){.fa-image>.el-image__inner:hover{transform:none}}@media(prefers-reduced-motion: reduce){.fa-image>.el-image__inner{transition:none}}.fa-icon-selector{width:100%;min-width:0}.fa-icon-selector .el-input-group__prepend,.fa-icon-selector .el-input-group__append{padding:0 12px}.fa-icon-selector .el-input-group__append{cursor:pointer}.el-popper.fa-icon-selector-popover{overflow:hidden;width:min(560px,100vw - 32px) !important;max-width:calc(100vw - 32px);padding:0;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow)}.fa-icon-selector-popover__box-header{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-bottom:1px solid var(--el-border-color-lighter);background-color:var(--el-fill-color-lighter)}.fa-icon-selector-popover__box-header__title{flex:1;font-weight:var(--el-font-weight-primary);color:var(--el-text-color-primary)}.fa-icon-selector-popover__box-header__tab{display:flex;gap:4px}.fa-icon-selector-popover__box-header__tab button{padding:5px 8px;color:var(--el-text-color-regular);border:0;border-radius:var(--el-border-radius-small);background:rgba(0,0,0,0);cursor:pointer}.fa-icon-selector-popover__box-header__tab button:hover,.fa-icon-selector-popover__box-header__tab button.is-active{color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.fa-icon-selector-popover__box-header__tab button:focus-visible{outline:2px solid var(--el-color-primary-light-5);outline-offset:1px}.fa-icon-selector-popover__box-body{height:min(360px,50vh);padding:8px}.fa-icon-selector-popover__box-body .el-scrollbar,.fa-icon-selector-popover__box-body .el-scrollbar__wrap{height:100%}.fa-icon-selector-popover__box-body .el-scrollbar__view{display:grid;grid-template-columns:repeat(auto-fill, minmax(40px, 1fr));gap:6px}.fa-icon-selector-popover__box-body__item{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0;color:var(--el-text-color-regular);border:1px solid var(--el-border-color-lighter);border-radius:var(--el-border-radius-base);background-color:var(--el-bg-color);cursor:pointer;transition:border-color var(--el-transition-duration-fast),color var(--el-transition-duration-fast),background-color var(--el-transition-duration-fast)}.fa-icon-selector-popover__box-body__item:hover{color:var(--el-color-primary);border-color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9)}.fa-icon-selector-popover__box-body__item:focus-visible{outline:2px solid var(--el-color-primary-light-5);outline-offset:1px}@media(min-width: 768px)and (max-width: 1199.98px){.el-popper.fa-icon-selector-popover{width:min(520px,100vw - 40px) !important}.fa-icon-selector-popover__box-body{height:min(340px,48vh)}}@media(max-width: 767.98px){.fa-icon-selector .el-input-group__prepend,.fa-icon-selector .el-input-group__append{padding:0 10px}.el-popper.fa-icon-selector-popover{width:calc(100vw - 24px) !important;max-width:calc(100vw - 24px)}.fa-icon-selector-popover__box-header{flex-direction:column;align-items:stretch;gap:6px;padding:10px}.fa-icon-selector-popover__box-header__tab{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr))}.fa-icon-selector-popover__box-header__tab button{min-height:36px}.fa-icon-selector-popover__box-body{height:min(380px,56dvh);padding:6px}.fa-icon-selector-popover__box-body .el-scrollbar__view{grid-template-columns:repeat(auto-fill, minmax(44px, 1fr))}.fa-icon-selector-popover__box-body__item{min-width:44px;height:44px}}.fa-select-dropdown__more-detail{--fa-select-detail-height: 42px;max-width:calc(100vw - 32px)}.fa-select-dropdown__selector__more-detail{display:flex;flex-direction:column;justify-content:center;height:var(--fa-select-detail-height, 42px);padding-block:4px}.fa-select-dropdown__selector__more-detail>:first-child{line-height:normal}.fa-select-dropdown__selector__more-detail>:nth-child(2){margin-left:auto;line-height:normal;font-size:var(--el-font-size-extra-small);color:var(--el-text-color-secondary)}.fa-select-dropdown__more-detail-small{--fa-select-detail-height: 34px}@media(max-width: 767.98px),(hover: none),(pointer: coarse){.fa-select-dropdown__more-detail{max-width:calc(100vw - 24px)}.fa-select-dropdown__selector__more-detail{height:auto;min-height:44px}}.fa-select-page-dropdown{--fa-select-page-detail-font-size: var(--el-font-size-extra-small);max-width:calc(100vw - 32px)}.fa-select-page-dropdown .el-select-dropdown__header{display:flex;flex-direction:column;gap:5px;padding:5px}.fa-select-page-dropdown .el-select-dropdown__footer{display:flex;flex-direction:column;align-items:flex-end;gap:5px;padding:5px}.fa-select-page-dropdown__default-selector{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 0 5px;list-style:none}.fa-select-page-dropdown__default-selector>:first-child{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.fa-select-page-dropdown__default-selector>:nth-child(2){flex-shrink:0;font-size:var(--fa-select-page-detail-font-size);color:var(--el-text-color-secondary)}.fa-select-page-dropdown__search-input{width:100%}.fa-select-page-dropdown__pagination{overflow-x:auto;max-width:100%;height:24px;padding-right:5px}.fa-select-page-dropdown-small{--fa-select-page-detail-font-size: calc(var(--el-font-size-extra-small) - 1px)}@media(max-width: 767.98px){.fa-select-page-dropdown{max-width:calc(100vw - 24px)}.fa-select-page-dropdown .el-select-dropdown__header,.fa-select-page-dropdown .el-select-dropdown__footer{padding:6px}.fa-select-page-dropdown__pagination{justify-content:flex-start;width:100%}}.fa-select-v2-dropdown__more-detail{max-width:calc(100vw - 32px)}.fa-select-v2-dropdown__more-detail .el-select-dropdown__item{display:flex;flex-direction:column;justify-content:center}.fa-select-v2-dropdown__more-detail .el-select-dropdown__item>:first-child{line-height:normal}.fa-select-v2-dropdown__more-detail .el-select-dropdown__item>:nth-child(2){margin-left:auto;line-height:normal;font-size:var(--el-font-size-extra-small);color:var(--el-text-color-secondary)}@media(max-width: 767.98px){.fa-select-v2-dropdown__more-detail{max-width:calc(100vw - 24px)}}.fa-table{--fa-table-expand-padding: 12px 16px;--fa-table-image-size: 30px;--fa-table-tool-gap: 12px;--fa-table-date-search-width: 190px;--fa-table-keyword-min-width: 120px;--fa-table-keyword-max-width: 344px;--fa-table-keyword-measure-padding: 0 36px 0 33px;--fa-table-keyword-font-size: var(--el-font-size-base);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;width:100%;min-width:0;height:100%;color:var(--el-text-color-regular);transition:width var(--el-transition-duration),height var(--el-transition-duration)}.fa-table>.el-card{--el-fill-color-blank: var(--el-bg-color-overlay);border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.fa-table__search{box-sizing:border-box;display:flex;flex-shrink:0;align-items:center;max-height:100%;margin-bottom:10px;padding:10px 12px;transition:height var(--el-transition-duration) ease-in-out,max-height var(--el-transition-duration) ease-in-out,opacity var(--el-transition-duration) ease-in-out,padding var(--el-transition-duration) ease-in-out,margin var(--el-transition-duration) ease-in-out}.fa-table__search.fa-table__search-hidden{height:0;max-height:0;margin:0;padding:0;border-width:0;border-color:rgba(0,0,0,0);opacity:0}.fa-table__search>.el-form{width:100%;min-width:0}.fa-table__search .el-form-item{min-width:0;margin-bottom:0}.fa-table__search .el-form-item__label{width:unset !important;padding:0 6px 0 0}.fa-table__search .el-range-editor.el-input__wrapper{padding:0 10px}.fa-table__search-operation{display:flex;align-items:center;justify-content:flex-end;gap:8px}.fa-table__search-operation>.el-button+.el-button{margin-left:0}.fa-table__search-operation .el-button.is-link .el-icon{margin-left:2px}.fa-table__header{box-sizing:border-box;display:flex;flex-shrink:0;align-items:center;margin-bottom:10px;padding:10px 12px}.fa-table__main{display:flex;flex:1;flex-direction:column;overflow:hidden;min-width:0;min-height:0;padding:10px 12px}.fa-table__main-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.fa-table__main-header-left,.fa-table__main-header-right{display:inline-flex;flex-wrap:wrap;align-items:center;min-width:0}.fa-table__main-header-left{gap:8px}.fa-table__main-header-right{column-gap:var(--fa-table-tool-gap)}.fa-table__main-header-right>.el-button+.el-button{margin-left:0}.fa-table__main-header-right__data-search{width:var(--fa-table-date-search-width);padding:0 5px}.fa-table__main-header-right__data-search .el-range-input{width:45%}.fa-table__main-header-right__data-search .el-range-separator{padding:0}.fa-table__main-header-right__data-search .el-range__close-icon{display:none}.fa-table__main-header-right__div-search{position:relative;width:min-content;min-width:var(--fa-table-keyword-min-width);max-width:var(--fa-table-keyword-max-width)}.fa-table__main-header-right__div-search__hidden{overflow:hidden;height:0;padding:var(--fa-table-keyword-measure-padding);font-size:var(--fa-table-keyword-font-size);white-space:nowrap}.fa-table__main-footer{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.fa-table__main-footer__left{flex:1;min-width:0}.fa-table__table{--el-table-header-text-color: var(--el-text-color-primary);--el-table-header-bg-color: var(--el-fill-color-light);flex:1;min-width:0;min-height:0}.fa-table__header-cell .el-table__placeholder{display:inline}.fa-table__header-cell>.cell{white-space:nowrap}.fa-table__header-cell.fa-table__image-column>.cell{padding-right:0}.fa-table__header-cell.el-table__cell:is(.el-table-fixed-column--left,.el-table-fixed-column--right){background-color:var(--el-table-header-bg-color)}.fa-table__auto-width-column__cell-header{display:inline-block}.fa-table__auto-width-column__cell{width:fit-content;white-space:nowrap}:where(.fa-table__table>.el-table__inner-wrapper>.el-table__body-wrapper>.el-scrollbar>.el-scrollbar__wrap>.el-scrollbar__view)>.el-table__empty-block{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}:where(.fa-table__table>.el-table__inner-wrapper>.el-table__body-wrapper>.el-scrollbar>.el-scrollbar__wrap>.el-scrollbar__view)>.el-table__body>tbody>tr>.el-table__expanded-cell{padding:0}.fa-table__empty{line-height:30px}.fa-table__empty>.el-icon{width:100px;height:auto}.fa-table__empty>.el-icon>svg{width:auto;height:auto}.fa-table__expand-wrapper{position:sticky;left:0;box-sizing:border-box;width:var(--fa-table-expand-width, 100cqw);min-width:0;padding:var(--fa-table-expand-padding)}.fa-table__primary-row{--el-table-tr-bg-color: var(--el-color-primary-light-9)}.fa-table__success-row{--el-table-tr-bg-color: var(--el-color-success-light-9)}.fa-table__warning-row{--el-table-tr-bg-color: var(--el-color-warning-light-9)}.fa-table__danger-row,.fa-table__error-row{--el-table-tr-bg-color: var(--el-color-danger-light-9)}.fa-table__info-row{--el-table-tr-bg-color: var(--el-color-info-light-9)}.fa-table__cell:not(.fa-table__operation-column) .el-button.is-link{--el-button-text-color: var(--el-text-color-regular);--el-button-hover-link-text-color: var(--el-color-primary)}.fa-table__cell:not(.fa-table__operation-column) .el-button.is-link:hover{text-decoration:underline;text-decoration-color:var(--el-button-hover-link-text-color)}.fa-table__cell:is(.fa-table__expand-column,.fa-table__selection-column,.fa-table__index-column,.fa-table__image-column)>.cell{padding:0}.fa-table__cell.fa-table__image-column>.cell{line-height:0}.fa-table__cell.fa-table__line-height-normal-column{padding:2px 0}.fa-table__cell.fa-table__line-height-normal-column>.cell{line-height:normal}.fa-table__image{display:inline-table;width:var(--fa-table-image-size);height:var(--fa-table-image-size);border-radius:4px}.fa-table__link-column__text{display:inline;font-weight:bold}:where(.fa-table__cell.fa-table__operation-column>.cell) .el-dropdown{vertical-align:middle}:where(.fa-table__cell.fa-table__operation-column) .el-dropdown-link{display:flex;align-items:baseline;color:var(--el-color-primary);cursor:pointer}.fa-table__data-delete-column::after{position:absolute;inset:0;display:flex;content:"数据已删除";justify-content:center;align-items:center;color:var(--el-color-danger);background-color:var(--el-overlay-color);cursor:not-allowed}.fa-table__selection-column__indeterminate .el-checkbox__inner::after{content:none}.fa-table__selection-column__indeterminate .el-checkbox__inner::before{position:absolute;left:0;right:0;top:5px;display:block;content:"";height:2px;background-color:var(--el-checkbox-checked-icon-color);transform:scale(0.5)}.fa-table__column-setting-drag-handle{color:var(--el-text-color-secondary);cursor:grab;touch-action:none;user-select:none}.fa-table__column-setting-drag-handle:active{cursor:grabbing}.fa-table-small{--fa-table-expand-padding: 8px 12px;--fa-table-image-size: 22px;--fa-table-tool-gap: 6px;--fa-table-date-search-width: 160px;--fa-table-keyword-min-width: 100px;--fa-table-keyword-max-width: 274px;--fa-table-keyword-measure-padding: 0 30px 0 27px;--fa-table-keyword-font-size: 12px}.fa-table-small>.fa-table__search{margin-bottom:5px;padding:5px 10px}.fa-table-small>.fa-table__search .fa-table__search-operation{gap:5px;margin-top:4px}.fa-table-small>.fa-table__header{margin-bottom:5px}.fa-table__main-header-right__data-search__popper{--fa-table-date-picker-width: 610px;--fa-table-date-picker-sidebar-width: 60px;--fa-table-date-picker-shortcut-padding: 10px;--fa-table-date-picker-th-padding: 3px;--fa-table-date-picker-cell-height: 26px;--fa-table-date-picker-header-font-size: 15px;max-width:calc(100vw - 32px)}.fa-table__main-header-right__data-search__popper .el-date-range-picker{width:min(var(--fa-table-date-picker-width),100vw - 32px)}.fa-table__main-header-right__data-search__popper .el-picker-panel__body-wrapper{display:flex;flex-direction:row}.fa-table__main-header-right__data-search__popper .el-picker-panel__sidebar{position:static;overflow:visible;width:var(--fa-table-date-picker-sidebar-width)}.fa-table__main-header-right__data-search__popper .el-picker-panel__shortcut{width:var(--fa-table-date-picker-sidebar-width);padding-left:var(--fa-table-date-picker-shortcut-padding)}.fa-table__main-header-right__data-search__popper .el-picker-panel__body{min-width:auto;margin:0}.fa-table__main-header-right__data-search__popper .el-date-range-picker__header>div{margin:0;font-size:var(--fa-table-date-picker-header-font-size)}.fa-table__main-header-right__data-search__popper .el-date-table th{padding:var(--fa-table-date-picker-th-padding)}.fa-table__main-header-right__data-search__popper .el-date-table-cell{height:var(--fa-table-date-picker-cell-height);padding:0}.fa-table__main-header-right__data-search__popper .el-date-range-picker__content{padding:6px}.fa-table__main-header-right__data-search__popper-small{--fa-table-date-picker-width: 510px;--fa-table-date-picker-sidebar-width: 50px;--fa-table-date-picker-shortcut-padding: 6px;--fa-table-date-picker-th-padding: 0;--fa-table-date-picker-cell-height: 24px;--fa-table-date-picker-header-font-size: 14px}.fa-table__main-header-right__data-search__popper-small .el-picker-panel__shortcut{font-size:13px;line-height:26px}.fa-table__main-header-right__data-search__popper-small .el-date-table td{height:28px;padding:2px 0}@media(min-width: 768px)and (max-width: 1199.98px){.fa-table__main-header{flex-wrap:wrap;align-items:flex-start}.fa-table__main-header-right{flex:1 1 420px;justify-content:flex-end}.fa-table__main-footer{flex-wrap:wrap;align-items:flex-start}}@media(max-width: 767.98px){.fa-table{overflow:visible}.fa-table>.el-card{border-radius:var(--el-border-radius-base);box-shadow:none}.fa-table__search,.fa-table-small>.fa-table__search{align-items:stretch;margin-bottom:8px;padding:10px 8px}.fa-table__search .el-form-item{display:block}.fa-table__search .el-form-item__label{display:block;width:100% !important;height:auto;padding:0 0 4px;line-height:1.5;text-align:left}.fa-table__search .el-form-item__content,.fa-table__search .el-select,.fa-table__search .el-date-editor,.fa-table__search .el-input-number{width:100%;min-width:0}.fa-table__header{overflow-x:auto;margin-bottom:8px;padding:8px}.fa-table-small>.fa-table__header{margin-bottom:8px}.fa-table__main{padding:8px}.fa-table__main-header{flex-direction:column;align-items:stretch;gap:8px;margin-bottom:8px}.fa-table__main-header-left,.fa-table__main-header-right{width:100%}.fa-table__main-header-right{gap:8px}.fa-table__main-header-right__div-search{flex:1 1 150px;width:auto;max-width:none}.fa-table__main-header-right__data-search{flex:1 1 190px;width:auto;min-width:0}.fa-table__main-footer{flex-direction:column;align-items:stretch;gap:8px;margin-top:8px}.fa-table__main-footer .fa-table-pagination{box-sizing:border-box;justify-content:flex-start;overflow-x:auto;width:100%;padding-bottom:2px}.fa-table__main-footer .el-pagination__jump,.fa-table__main-footer .el-pagination__total{display:none}.fa-table__main-header-right__data-search__popper{overflow-y:auto;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.fa-table__main-header-right__data-search__popper .el-date-range-picker{width:calc(100vw - 24px)}.fa-table__main-header-right__data-search__popper .el-picker-panel__body-wrapper{display:block}.fa-table__main-header-right__data-search__popper .el-picker-panel__sidebar{display:none}.fa-table__main-header-right__data-search__popper .el-picker-panel__body{min-width:0;margin:0}.fa-table__main-header-right__data-search__popper .el-date-range-picker__content{box-sizing:border-box;width:100%;padding:8px}.fa-table__main-header-right__data-search__popper .el-date-range-picker__content.is-left{border-right:0;border-bottom:1px solid var(--el-border-color-lighter)}}@media(prefers-reduced-motion: reduce){.fa-table,.fa-table__search{transition:none}}.fa-tree{--fa-tree-node-height: 30px;--fa-tree-font-size: var(--el-font-size-base);--fa-tree-title-font-size: var(--el-font-size-large);--fa-tree-title-icon-size: var(--el-font-size-extra-large);--el-input-bg-color: transparent;--el-fill-color-blank: transparent;box-sizing:border-box;display:flex;flex-direction:column;min-width:0;height:100%;padding:10px 10px 0;color:var(--el-text-color-regular);background-color:var(--el-bg-color-overlay)}.fa-tree.fa-tree__fold>.fa-tree__scrollbar .el-tree-node__expand-icon{display:none}.fa-tree__title{display:flex;flex-flow:row;align-items:center;justify-content:center}.fa-tree__title>:first-child{flex:1}.fa-tree__title>h4{margin:0;font-size:var(--fa-tree-title-font-size);font-weight:bold;letter-spacing:.5px;color:var(--el-text-color-primary)}.fa-tree__title>.el-icon{font-size:var(--fa-tree-title-icon-size);cursor:pointer}.fa-tree__search-input{margin:5px 0}.fa-tree__scrollbar{flex:1;min-height:0;padding-right:10px}.fa-tree__inner{font-size:var(--fa-tree-font-size)}.fa-tree__inner .el-tree-node__content{height:var(--fa-tree-node-height);padding:0 3px;border-radius:var(--el-border-radius-base)}.fa-tree__inner .el-tree-node__expand-icon{padding:3px}.fa-tree__inner .el-tree-node.is-current>.el-tree-node__content{color:var(--el-color-white);background-color:var(--el-color-primary)}.fa-tree__inner .el-tree-node.is-current>.el-tree-node__content>.is-leaf{color:rgba(0,0,0,0)}.fa-tree__node-label{display:flex;flex-flow:row;justify-content:space-between;overflow:hidden;width:100%}.fa-tree__node-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fa-tree__node-label span .el-icon{font-size:var(--el-font-size-medium)}.fa-tree__node-label>div{display:flex;flex:1;align-items:center;overflow:hidden}.fa-tree__node-label>div .el-avatar{flex-shrink:0}.fa-tree__node-label>:first-child{flex:1}.fa-tree__node-label>:nth-child(2){margin-left:10px}.fa-tree__node-label>:nth-child(2) .el-icon:nth-child(n+2){margin-left:5px}.fa-tree-small{--fa-tree-node-height: 26px;--fa-tree-font-size: var(--el-font-size-extra-small);--fa-tree-title-font-size: var(--el-font-size-medium);--fa-tree-title-icon-size: var(--el-font-size-large)}@media(min-width: 768px)and (max-width: 1199.98px){.fa-tree{padding:10px 8px 0}.fa-tree__scrollbar{padding-right:6px}}@media(max-width: 767.98px){.fa-tree{padding:8px 6px 0;border-radius:var(--el-border-radius-base)}.fa-tree__title{min-height:44px}.fa-tree__title>.el-icon{padding:10px}.fa-tree__search-input{margin:4px 0 8px}.fa-tree__scrollbar{padding-right:2px}.fa-tree__inner .el-tree-node__content{min-height:44px}}.fa-upload{position:relative;box-sizing:border-box;display:inline-block;min-width:0;max-width:100%;color:var(--el-text-color-regular)}.fa-upload .el-upload{box-sizing:border-box;max-width:100%}.fa-upload:not(.fa-upload__trigger) .el-upload:not(.is-drag){flex-direction:column;padding:20px;border:1px dashed var(--el-border-color);border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-fill-color-lighter)}.fa-upload:not(.fa-upload__trigger) .el-upload:not(.is-drag):hover{border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.fa-upload .el-upload-dragger{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:100%;padding:20px;border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-fill-color-lighter);transition:border-color var(--el-transition-duration-fast),background-color var(--el-transition-duration-fast)}.fa-upload .el-upload-dragger:hover{border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.fa-upload .el-icon--upload{margin-bottom:8px;font-size:44px;color:var(--el-color-primary)}.fa-upload .el-upload__text{max-width:100%;text-align:center;color:var(--el-text-color-regular)}.fa-upload .el-upload__tip{line-height:1.5;text-align:center;color:var(--el-text-color-secondary)}.fa-upload .el-upload-list__item{border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-lighter)}.fa-upload-image{position:relative;box-sizing:border-box;display:inline-block;min-width:0;max-width:100%}.fa-upload-image .el-upload{position:relative;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;width:var(--width);max-width:100%;height:var(--height);border:1px dashed var(--el-border-color);border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-fill-color-lighter)}.fa-upload-image .el-upload:hover{border-color:var(--el-color-primary)}.fa-upload-image .el-upload-dragger{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background-color:rgba(0,0,0,0)}.fa-upload-image .el-upload-list__item-thumbnail{display:block;width:100%;height:100%;object-fit:contain}.fa-upload-image .el-upload-list__item-actions{position:absolute;inset:0;display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-font-size-extra-large);color:var(--el-color-white);background-color:var(--el-overlay-color-lighter);opacity:0;cursor:default;transition:opacity var(--el-transition-duration)}.fa-upload-image .el-upload-list__item-actions:hover{opacity:1}.fa-upload-image .el-upload-list__item-actions:hover span{display:inline-flex}.fa-upload-image .el-upload-list__item-icon{display:none;cursor:pointer}.fa-upload-image .el-upload-list__item-icon:not(:first-child){margin-left:1rem}.fa-upload-image .el-icon--upload{margin-bottom:0;font-size:calc(var(--height)*.4)}.fa-upload-image .el-upload__text{max-width:100%;line-height:18px}.fa-upload-image .el-upload__tip{margin-top:0;line-height:1.5;color:var(--el-text-color-secondary)}.fa-upload-image .el-loading-mask{top:0;left:0;right:auto;bottom:auto;width:var(--width);max-width:100%;height:var(--height)}@media(max-width: 767.98px){.fa-upload-image .el-upload-list__item-icon{align-items:center;justify-content:center;min-width:40px;min-height:40px}.fa-upload-image .el-upload-list__item-icon:not(:first-child){margin-left:4px}.fa-upload-image .el-upload__text{padding-inline:6px;font-size:var(--el-font-size-extra-small)}}@media(hover: none),(pointer: coarse){.fa-upload-image .el-upload-list__item-actions{opacity:1}.fa-upload-image .el-upload-list__item-icon{display:inline-flex;border-radius:50%;background-color:var(--el-overlay-color-lighter)}}.fa-upload-images{position:relative;box-sizing:border-box;display:inline-block;min-width:0;max-width:100%;color:var(--el-text-color-regular)}.fa-upload-images .el-upload-list--picture-card{max-width:100%}.fa-upload-images .el-upload-list__item,.fa-upload-images .el-upload--picture-card{border-radius:calc(var(--el-border-radius-base)*1.5);background-color:var(--el-fill-color-lighter)}.fa-upload-images .el-upload--picture-card.is-drag{display:inline-flex}.fa-upload-images .el-upload-dragger{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background-color:rgba(0,0,0,0)}.fa-upload-images .el-upload-dragger>.el-icon{font-size:28px;color:var(--el-text-color-secondary)}.fa-upload-images .el-upload__tip{color:var(--el-text-color-secondary)}.fa-upload-images__hidden-upload .el-upload{display:none}@media(hover: none),(pointer: coarse){.fa-upload-images .el-upload-list__item-actions{box-sizing:border-box;display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:4px;padding:4px;opacity:1}.fa-upload-images .el-upload-list__item-actions>.el-upload-list__item-icon,.fa-upload-images .el-upload-list__item-actions>.el-upload-list__item-preview{display:inline-flex;align-items:center;justify-content:center;width:auto;height:36px;border-radius:50%;background-color:var(--el-overlay-color-lighter)}.fa-upload-images .el-upload-list__item-actions>span+span{margin-left:0}}/*# sourceMappingURL=index.css.map */