@airpower/web 1.3.5 → 1.4.0

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.
@@ -16,7 +16,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
16
16
  };
17
17
  /**
18
18
  * ### 时间格式化模板
19
- * 建议使用 `DateTimeFormatter`
20
19
  */
21
20
  formatter: {
22
21
  type: typeof DateTimeFormatter;
@@ -46,7 +45,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
46
45
  };
47
46
  /**
48
47
  * ### 时间格式化模板
49
- * 建议使用 `DateTimeFormatter`
50
48
  */
51
49
  formatter: {
52
50
  type: typeof DateTimeFormatter;
@@ -60,9 +58,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
60
58
  default: boolean;
61
59
  };
62
60
  }>> & Readonly<{}>, {
61
+ formatter: DateTimeFormatter;
63
62
  milliSecond: number;
64
63
  date: Date;
65
- formatter: DateTimeFormatter;
66
64
  isFriendly: boolean;
67
65
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
68
66
  export default _default;
@@ -16,7 +16,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
16
16
  };
17
17
  /**
18
18
  * ### 脱敏开始保留
19
- * 默认使用传入的参数
19
+ * 默认使用传入 `type` 默认的参数
20
20
  */
21
21
  head: {
22
22
  type: NumberConstructor;
@@ -24,7 +24,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
24
24
  };
25
25
  /**
26
26
  * ### 脱敏末尾保留
27
- * 默认使用传入的参数
27
+ * 默认使用传入 `type` 默认的参数
28
28
  */
29
29
  tail: {
30
30
  type: NumberConstructor;
@@ -54,7 +54,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
54
54
  };
55
55
  /**
56
56
  * ### 脱敏开始保留
57
- * 默认使用传入的参数
57
+ * 默认使用传入 `type` 默认的参数
58
58
  */
59
59
  head: {
60
60
  type: NumberConstructor;
@@ -62,7 +62,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
62
62
  };
63
63
  /**
64
64
  * ### 脱敏末尾保留
65
- * 默认使用传入的参数
65
+ * 默认使用传入 `type` 默认的参数
66
66
  */
67
67
  tail: {
68
68
  type: NumberConstructor;
@@ -128,12 +128,12 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
128
128
  }>> & Readonly<{}>, {
129
129
  title: string;
130
130
  minHeight: string;
131
+ collapse: boolean;
131
132
  hideTitle: boolean;
132
133
  column: number;
133
134
  autoHeight: boolean;
134
135
  autoCol: boolean;
135
136
  disableCollapse: boolean;
136
- collapse: boolean;
137
137
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
138
138
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
139
139
  export default _default;
@@ -12,7 +12,6 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
12
12
  declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
13
13
  /**
14
14
  * ### 卡片的标题
15
- * 默认读取当前路由元数据里的 `name` 属性
16
15
  */
17
16
  title: {
18
17
  type: StringConstructor;
@@ -49,7 +48,6 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
49
48
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
50
49
  /**
51
50
  * ### 卡片的标题
52
- * 默认读取当前路由元数据里的 `name` 属性
53
51
  */
54
52
  title: {
55
53
  type: StringConstructor;
@@ -24,7 +24,7 @@ declare const _default: <E extends RootEntity, S extends AbstractCurdService<E>>
24
24
  /**
25
25
  * ### 选择器使用的字段列表
26
26
  */
27
- columnList?: Array<ITableColumn>;
27
+ columnList?: Array<ITableColumn<E>>;
28
28
  /**
29
29
  * ### `Editor`
30
30
  * 传入后方可开启选择器快捷添加功能
@@ -8,6 +8,7 @@ import { QueryRequest } from '../../model/query/QueryRequest';
8
8
  import { RootEntity } from '../../model/RootEntity';
9
9
  import { AbstractCurdService } from '../../service/AbstractCurdService';
10
10
  import { CurdServiceConstructor } from '../../service/type';
11
+ import { ITableButton } from './TableButton';
11
12
  import { QueryRequestPage } from '../../model/query/QueryRequestPage';
12
13
  import { QuerySort } from '../../model/query/QuerySort';
13
14
  declare const _default: <E extends RootEntity, S extends AbstractCurdService<E>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
@@ -19,9 +20,10 @@ declare const _default: <E extends RootEntity, S extends AbstractCurdService<E>>
19
20
  selectList: E[];
20
21
  emptyText: string;
21
22
  addPermission: string;
22
- columnList: ITableColumn[];
23
+ columnList: ITableColumn<E>[];
23
24
  searchParams: ISearchField[];
24
25
  hideAdd: boolean;
26
+ buttons: ITableButton<E>[];
25
27
  useHook: ITableResult<E, S>;
26
28
  disablePage: boolean;
27
29
  editPermission: string;
@@ -81,8 +83,9 @@ declare const _default: <E extends RootEntity, S extends AbstractCurdService<E>>
81
83
  readonly loading: boolean;
82
84
  readonly autoHeight: boolean;
83
85
  readonly selectList: E[];
84
- readonly columnList: ITableColumn[];
86
+ readonly columnList: ITableColumn<E>[];
85
87
  readonly hideAdd: boolean;
88
+ readonly buttons: ITableButton<E>[];
86
89
  readonly disablePage: boolean;
87
90
  readonly dataList: E[];
88
91
  readonly hideEdit: boolean;
@@ -144,7 +147,7 @@ declare const _default: <E extends RootEntity, S extends AbstractCurdService<E>>
144
147
  readonly onSortChange?: ((sort?: QuerySort) => void) | undefined;
145
148
  readonly onDisable?: ((row: E) => void) | undefined;
146
149
  readonly onEnable?: ((row: E) => void) | undefined;
147
- } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "loading" | "entity" | "onSearch" | "autoHeight" | "selectList" | "emptyText" | "addPermission" | "columnList" | "searchParams" | "hideAdd" | "useHook" | "disablePage" | "editPermission" | "disablePermission" | "enablePermission" | "detailPermission" | "deletePermission" | "addRowPermission" | "exportPermission" | "importPermission" | "dataList" | "hideEdit" | "disableEdit" | "disableAddRow" | "disableChangeStatus" | "disableDetail" | "disableDelete" | "disableRow" | "hideDelete" | "selectable" | "showSelect" | "showEnableAndDisable" | "fieldCacheKey" | "hideColumnSelector" | "ctrlWidth" | "hideCtrl" | "showDetail" | "showAddRow" | "customDelete" | "deleteTitle" | "deleteContent" | "showImport" | "importTitle" | "exportParam" | "showExport" | "defaultFilter" | "importUrl" | "importTemplateUrl" | "fileEntity" | "onAdd" | "onDetail" | "onDelete" | "onEdit" | "onSelected" | "onAddRow" | "onSortChange" | "onDisable" | "onEnable" | "isTree">, "service" | ("loading" | "entity" | "onSearch" | "autoHeight" | "selectList" | "emptyText" | "addPermission" | "columnList" | "searchParams" | "hideAdd" | "useHook" | "disablePage" | "editPermission" | "disablePermission" | "enablePermission" | "detailPermission" | "deletePermission" | "addRowPermission" | "exportPermission" | "importPermission" | "dataList" | "hideEdit" | "disableEdit" | "disableAddRow" | "disableChangeStatus" | "disableDetail" | "disableDelete" | "disableRow" | "hideDelete" | "selectable" | "showSelect" | "showEnableAndDisable" | "fieldCacheKey" | "hideColumnSelector" | "ctrlWidth" | "hideCtrl" | "showDetail" | "showAddRow" | "customDelete" | "deleteTitle" | "deleteContent" | "showImport" | "importTitle" | "exportParam" | "showExport" | "defaultFilter" | "importUrl" | "importTemplateUrl" | "fileEntity" | "onAdd" | "onDetail" | "onDelete" | "onEdit" | "onSelected" | "onAddRow" | "onSortChange" | "onDisable" | "onEnable" | "isTree")> & {} & Partial<{}>> & import('vue').PublicProps;
150
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "loading" | "entity" | "onSearch" | "autoHeight" | "selectList" | "emptyText" | "addPermission" | "columnList" | "searchParams" | "hideAdd" | "buttons" | "useHook" | "disablePage" | "editPermission" | "disablePermission" | "enablePermission" | "detailPermission" | "deletePermission" | "addRowPermission" | "exportPermission" | "importPermission" | "dataList" | "hideEdit" | "disableEdit" | "disableAddRow" | "disableChangeStatus" | "disableDetail" | "disableDelete" | "disableRow" | "hideDelete" | "selectable" | "showSelect" | "showEnableAndDisable" | "fieldCacheKey" | "hideColumnSelector" | "ctrlWidth" | "hideCtrl" | "showDetail" | "showAddRow" | "customDelete" | "deleteTitle" | "deleteContent" | "showImport" | "importTitle" | "exportParam" | "showExport" | "defaultFilter" | "importUrl" | "importTemplateUrl" | "fileEntity" | "onAdd" | "onDetail" | "onDelete" | "onEdit" | "onSelected" | "onAddRow" | "onSortChange" | "onDisable" | "onEnable" | "isTree">, "service" | ("loading" | "entity" | "onSearch" | "autoHeight" | "selectList" | "emptyText" | "addPermission" | "columnList" | "searchParams" | "hideAdd" | "buttons" | "useHook" | "disablePage" | "editPermission" | "disablePermission" | "enablePermission" | "detailPermission" | "deletePermission" | "addRowPermission" | "exportPermission" | "importPermission" | "dataList" | "hideEdit" | "disableEdit" | "disableAddRow" | "disableChangeStatus" | "disableDetail" | "disableDelete" | "disableRow" | "hideDelete" | "selectable" | "showSelect" | "showEnableAndDisable" | "fieldCacheKey" | "hideColumnSelector" | "ctrlWidth" | "hideCtrl" | "showDetail" | "showAddRow" | "customDelete" | "deleteTitle" | "deleteContent" | "showImport" | "importTitle" | "exportParam" | "showExport" | "defaultFilter" | "importUrl" | "importTemplateUrl" | "fileEntity" | "onAdd" | "onDetail" | "onDelete" | "onEdit" | "onSelected" | "onAddRow" | "onSortChange" | "onDisable" | "onEnable" | "isTree")> & {} & Partial<{}>> & import('vue').PublicProps;
148
151
  expose(exposed: import('vue').ShallowUnwrapRef<{
149
152
  resetSearch: () => void;
150
153
  search: () => void;
@@ -0,0 +1,29 @@
1
+ import { RootEntity } from '../../model/RootEntity';
2
+ /**
3
+ * # 表格按钮
4
+ * @author Hamm.cn
5
+ */
6
+ export interface ITableButton<E extends RootEntity> {
7
+ /**
8
+ * ### 按钮标题
9
+ */
10
+ label: string;
11
+ /**
12
+ * ### 按钮点击回调
13
+ * @param row 行数据
14
+ */
15
+ click: (row: E) => void;
16
+ /**
17
+ * ### 按钮是否禁用
18
+ * @param row 行数据
19
+ */
20
+ disabled?: (row: E) => boolean;
21
+ /**
22
+ * ### 是否是危险按钮
23
+ */
24
+ dangerButton?: boolean;
25
+ /**
26
+ * ### 是否是警告按钮
27
+ */
28
+ warningButton?: boolean;
29
+ }
@@ -5,7 +5,7 @@ declare const _default: <E extends RootEntity>(__VLS_props: NonNullable<Awaited<
5
5
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
6
6
  readonly onChanged?: ((args_0: string[]) => any) | undefined;
7
7
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onChanged"> & {
8
- columnList: Array<ITableColumn>;
8
+ columnList: Array<ITableColumn<E>>;
9
9
  entityClass: ITransformerConstructor<E>;
10
10
  } & Partial<{}>> & import('vue').PublicProps;
11
11
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
@@ -2,7 +2,7 @@ import { ITableColumn } from '../../../decorator/@Table/ITableColumn';
2
2
  import { RootEntity } from '../../../model/RootEntity';
3
3
  declare const _default: <E extends RootEntity>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
4
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, never> & {
5
- column: ITableColumn;
5
+ column: ITableColumn<E>;
6
6
  data: E;
7
7
  } & Partial<{}>> & import('vue').PublicProps;
8
8
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
@@ -3,7 +3,7 @@ import { WebEnumConstructor } from '../../../enum/type';
3
3
  import { RootEntity } from '../../../model/RootEntity';
4
4
  declare const _default: <E extends RootEntity>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
5
5
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, never> & {
6
- column: ITableColumn;
6
+ column: ITableColumn<E>;
7
7
  data: E;
8
8
  dictionary: WebEnumConstructor;
9
9
  } & Partial<{}>> & import('vue').PublicProps;
@@ -1,2 +1,3 @@
1
+ import { ITableButton } from './TableButton';
1
2
  import { default as ATable } from './Table.vue';
2
- export { ATable, };
3
+ export { ATable, ITableButton, };
@@ -16,7 +16,7 @@ export declare function useTableColumn<E extends RootEntity>(params: {
16
16
  /**
17
17
  * ### 自定义字段
18
18
  */
19
- customColumns: Array<ITableColumn>;
19
+ customColumns: Array<ITableColumn<E>>;
20
20
  /**
21
21
  * ### 字段缓存key
22
22
  */
@@ -31,8 +31,8 @@ export declare function useTableColumn<E extends RootEntity>(params: {
31
31
  modelConfig: IModelConfig;
32
32
  }): {
33
33
  updateSelectKeys: (list?: string[]) => void;
34
- allColumnList: Ref<ITableColumn[], ITableColumn[]>;
34
+ allColumnList: Ref<ITableColumn<E>[], ITableColumn<E>[]>;
35
35
  selectKeys: Ref<string[], string[]>;
36
- showColumnList: Ref<ITableColumn[], ITableColumn[]>;
36
+ showColumnList: Ref<ITableColumn<E>[], ITableColumn<E>[]>;
37
37
  isColumnSelectorEnabled: Ref<boolean, boolean>;
38
38
  };
@@ -1,4 +1,5 @@
1
1
  import { DateTimeFormatter, DesensitizeType } from '@airpower/util';
2
+ import { RootEntity } from '../../model/RootEntity';
2
3
  import { IBaseField } from '../common/IBaseField';
3
4
  import { IElementTableColumn } from './IElementTableColumn';
4
5
  /**
@@ -6,7 +7,7 @@ import { IElementTableColumn } from './IElementTableColumn';
6
7
  *
7
8
  * @author Hamm.cn
8
9
  */
9
- export interface ITableColumn extends IBaseField, IElementTableColumn {
10
+ export interface ITableColumn<E extends RootEntity> extends IBaseField, IElementTableColumn {
10
11
  /**
11
12
  * ### 是否是金额
12
13
  */
@@ -85,4 +86,9 @@ export interface ITableColumn extends IBaseField, IElementTableColumn {
85
86
  * ### 是否是日期时间
86
87
  */
87
88
  datetime?: boolean | DateTimeFormatter;
89
+ /**
90
+ * ### 格式化
91
+ * @param row 行数据
92
+ */
93
+ formatter?: (row: E) => string;
88
94
  }
@@ -1,20 +1,20 @@
1
1
  import { ITransformerConstructor, TransformerField } from '@airpower/transformer';
2
- import { RootModel } from '../../model/RootModel';
2
+ import { RootEntity } from '../../model/RootEntity';
3
3
  import { FieldConfigOptionalKey } from '../@Field/type';
4
4
  import { ITableColumn } from './ITableColumn';
5
5
  /**
6
6
  * ### 为属性标记是表格字段
7
7
  * @param config 表格列的配置
8
8
  */
9
- export declare function Table<M extends RootModel>(config?: FieldConfigOptionalKey<ITableColumn>): (instance: M, field: keyof M) => void;
9
+ export declare function Table<E extends RootEntity>(config?: FieldConfigOptionalKey<ITableColumn<E>>): (instance: E, field: keyof E) => void;
10
10
  /**
11
11
  * ### 获取对象的属性表格的配置
12
12
  * @param Class 目标类
13
13
  * @param field 属性名
14
14
  */
15
- export declare function getTableConfig<M extends RootModel>(Class: ITransformerConstructor<M>, field: TransformerField<M>): ITableColumn;
15
+ export declare function getTableConfig<E extends RootEntity>(Class: ITransformerConstructor<E>, field: TransformerField<E>): ITableColumn<E>;
16
16
  /**
17
17
  * ### 获取字段标记的表格字段配置列表
18
18
  * @param Class 目标类
19
19
  */
20
- export declare function getTableConfigList<M extends RootModel>(Class: ITransformerConstructor<M>): Array<ITableColumn>;
20
+ export declare function getTableConfigList<E extends RootEntity>(Class: ITransformerConstructor<E>): Array<ITableColumn<E>>;
package/dist/main.js CHANGED
@@ -1,5 +1,5 @@
1
- import { defineComponent, createElementBlock, openBlock, createElementVNode, computed, resolveComponent, createBlock, mergeProps, toHandlers, withCtx, renderSlot, unref, createVNode, createTextVNode, toDisplayString, ref, withModifiers, normalizeClass, onMounted, watch, resolveDirective, Transition, normalizeStyle, withDirectives, createCommentVNode, nextTick, inject, shallowRef, shallowReactive, reactive, h, provide, getCurrentInstance, watchEffect, Fragment, renderList, vShow, useSlots, createSlots, createApp, onUpdated, mergeModels, useModel, withKeys } from "vue";
2
- import ElementPlus, { ElButton, ElMessage, ElMessageBox, ElIcon, ElEmpty, ElFormItem, ElSubMenu, ElMenuItem, ElPagination, ElPopover, ElRadioGroup, ElRadioButton, ElInput, ElUpload, ElLink, ElTabPane, ElCheckTag, ElSelect, ElOption, ElTable, ElTableColumn } from "element-plus";
1
+ import { defineComponent, createElementBlock, openBlock, createElementVNode, computed, createBlock, unref, mergeProps, toHandlers, withCtx, renderSlot, resolveComponent, createVNode, createTextVNode, toDisplayString, ref, withModifiers, normalizeClass, onMounted, watch, resolveDirective, Transition, normalizeStyle, withDirectives, createCommentVNode, nextTick, inject, shallowRef, shallowReactive, reactive, h, provide, getCurrentInstance, watchEffect, Fragment, renderList, vShow, useSlots, createSlots, createApp, onUpdated, mergeModels, useModel, withKeys } from "vue";
2
+ import ElementPlus, { ElLink, ElButton, ElMessage, ElMessageBox, ElIcon, ElEmpty, ElFormItem, ElSubMenu, ElMenuItem, ElMenu, ElImage, ElUpload, ElPagination, ElPopover, ElRadioGroup, ElRadioButton, ElInput, ElProgress, ElTabPane, ElTabs, ElCheckTag, ElSelect, ElOption, ElTable, ElTableColumn, ElTree } from "element-plus";
3
3
  import axios from "axios";
4
4
  /*! Element Plus Icons Vue v2.3.1 */
5
5
  var arrow_down_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
@@ -1323,8 +1323,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
1323
1323
  }
1324
1324
  });
1325
1325
  return (_ctx, _cache) => {
1326
- const _component_ElLink = resolveComponent("ElLink");
1327
- return __props.link ? (openBlock(), createBlock(_component_ElLink, mergeProps({
1326
+ return __props.link ? (openBlock(), createBlock(unref(ElLink), mergeProps({
1328
1327
  key: 0,
1329
1328
  disabled: isDisabled.value,
1330
1329
  type: __props.danger ? "danger" : __props.warning ? "warning" : __props.primary ? "primary" : __props.success ? "success" : "default",
@@ -2425,7 +2424,7 @@ const _export_sfc = (sfc, props) => {
2425
2424
  }
2426
2425
  return target;
2427
2426
  };
2428
- const ACopy = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-997899dc"]]);
2427
+ const ACopy = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-b77c3899"]]);
2429
2428
  var cryptoJs$1 = { exports: {} };
2430
2429
  function commonjsRequire(path) {
2431
2430
  throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
@@ -9898,7 +9897,6 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9898
9897
  },
9899
9898
  /**
9900
9899
  * ### 时间格式化模板
9901
- * 建议使用 `DateTimeFormatter`
9902
9900
  */
9903
9901
  formatter: {
9904
9902
  type: DateTimeFormatter,
@@ -9950,7 +9948,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
9950
9948
  };
9951
9949
  }
9952
9950
  });
9953
- const ADateTime = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-9a815beb"]]);
9951
+ const ADateTime = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-f4449296"]]);
9954
9952
  const _hoisted_1$h = { class: "a-desensitize" };
9955
9953
  const _sfc_main$s = /* @__PURE__ */ defineComponent({
9956
9954
  __name: "Desensitize",
@@ -9971,7 +9969,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9971
9969
  },
9972
9970
  /**
9973
9971
  * ### 脱敏开始保留
9974
- * 默认使用传入的参数
9972
+ * 默认使用传入 `type` 默认的参数
9975
9973
  */
9976
9974
  head: {
9977
9975
  type: Number,
@@ -9979,7 +9977,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
9979
9977
  },
9980
9978
  /**
9981
9979
  * ### 脱敏末尾保留
9982
- * 默认使用传入的参数
9980
+ * 默认使用传入 `type` 默认的参数
9983
9981
  */
9984
9982
  tail: {
9985
9983
  type: Number,
@@ -10024,7 +10022,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
10024
10022
  };
10025
10023
  }
10026
10024
  });
10027
- const ADesensitize = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-d78b4ba9"]]);
10025
+ const ADesensitize = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-8bc9a38b"]]);
10028
10026
  const _hoisted_1$g = ["id"];
10029
10027
  const _hoisted_2$c = ["id"];
10030
10028
  const _hoisted_3$a = { class: "title" };
@@ -13382,8 +13380,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
13382
13380
  }
13383
13381
  );
13384
13382
  return (_ctx, _cache) => {
13385
- const _component_el_menu = resolveComponent("el-menu");
13386
- return openBlock(), createBlock(_component_el_menu, {
13383
+ return openBlock(), createBlock(unref(ElMenu), {
13387
13384
  "default-active": defaultMenu.value,
13388
13385
  router: true,
13389
13386
  "unique-opened": __props.uniqueOpened,
@@ -13435,6 +13432,9 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
13435
13432
  type: Boolean,
13436
13433
  default: false
13437
13434
  },
13435
+ /**
13436
+ * ### 头部高度
13437
+ */
13438
13438
  headerHeight: {
13439
13439
  type: Number,
13440
13440
  default: 40
@@ -13482,7 +13482,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
13482
13482
  };
13483
13483
  }
13484
13484
  });
13485
- const Frame = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-53b58994"]]);
13485
+ const Frame = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-2803d92b"]]);
13486
13486
  const _hoisted_1$e = {
13487
13487
  key: 0,
13488
13488
  class: "group-title"
@@ -13561,7 +13561,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
13561
13561
  if (!props.column || props.column < 1) {
13562
13562
  return 1;
13563
13563
  }
13564
- return Math.min(props.column, 4);
13564
+ return Math.min(props.column, 3);
13565
13565
  }
13566
13566
  const isCollapse = ref(props.collapse);
13567
13567
  function getBodyClass() {
@@ -13819,15 +13819,12 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
13819
13819
  }
13820
13820
  init();
13821
13821
  return (_ctx, _cache) => {
13822
- const _component_el_image = resolveComponent("el-image");
13823
- const _component_el_upload = resolveComponent("el-upload");
13824
- const _component_el_icon = resolveComponent("el-icon");
13825
13822
  const _directive_loading = resolveDirective("loading");
13826
13823
  return openBlock(), createElementBlock("div", {
13827
13824
  style: normalizeStyle({ width: `${__props.width}px`, height: `${__props.height}px` }),
13828
13825
  class: "a-image"
13829
13826
  }, [
13830
- createVNode(_component_el_image, {
13827
+ createVNode(unref(ElImage), {
13831
13828
  "preview-src-list": [imageUrl.value],
13832
13829
  src: imageUrl.value,
13833
13830
  "z-index": 99,
@@ -13844,7 +13841,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
13844
13841
  key: 0,
13845
13842
  class: normalizeClass([imageUrl.value ? "image-preview-color" : "", "image-upload"])
13846
13843
  }, [
13847
- !imageUrl.value ? (openBlock(), createBlock(_component_el_upload, {
13844
+ !imageUrl.value ? (openBlock(), createBlock(unref(ElUpload), {
13848
13845
  key: 0,
13849
13846
  action: uploadUrl.value,
13850
13847
  "before-upload": beforeUpload,
@@ -13860,7 +13857,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
13860
13857
  [_directive_loading, isUploading.value]
13861
13858
  ]) : createCommentVNode("", true),
13862
13859
  imageUrl.value && __props.upload && __props.entity ? (openBlock(), createElementBlock("div", _hoisted_2$9, [
13863
- __props.clearable ? (openBlock(), createBlock(_component_el_icon, {
13860
+ __props.clearable ? (openBlock(), createBlock(unref(ElIcon), {
13864
13861
  key: 0,
13865
13862
  onClick: imageRemoved
13866
13863
  }, {
@@ -14770,7 +14767,6 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
14770
14767
  props: {
14771
14768
  /**
14772
14769
  * ### 卡片的标题
14773
- * 默认读取当前路由元数据里的 `name` 属性
14774
14770
  */
14775
14771
  title: {
14776
14772
  type: String,
@@ -14843,7 +14839,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
14843
14839
  };
14844
14840
  }
14845
14841
  });
14846
- const APanel = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-62d334f9"]]);
14842
+ const APanel = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-bcd0fd2f"]]);
14847
14843
  class DialogProps {
14848
14844
  /**
14849
14845
  * ### 使用无参 `DialogProps` 配置
@@ -15251,7 +15247,6 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
15251
15247
  }
15252
15248
  createExportTask();
15253
15249
  return (_ctx, _cache) => {
15254
- const _component_el_progress = resolveComponent("el-progress");
15255
15250
  const _component_el_button = resolveComponent("el-button");
15256
15251
  const _component_el_result = resolveComponent("el-result");
15257
15252
  return openBlock(), createBlock(unref(ADialog), {
@@ -15266,10 +15261,8 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
15266
15261
  default: withCtx(() => [
15267
15262
  createElementVNode("div", _hoisted_1$8, [
15268
15263
  isLoading.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
15269
- createVNode(_component_el_progress, {
15264
+ createVNode(unref(ElProgress), {
15270
15265
  duration: 1,
15271
- format: () => {
15272
- },
15273
15266
  indeterminate: true,
15274
15267
  percentage: 100,
15275
15268
  "stroke-width": 10
@@ -15772,13 +15765,12 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
15772
15765
  return DesensitizeUtil.desensitize(props.phone, props.desensitize, props.desensitizeHead, props.desensitizeTail);
15773
15766
  });
15774
15767
  return (_ctx, _cache) => {
15775
- const _component_el_icon = resolveComponent("el-icon");
15776
15768
  return __props.phone && unref(ValidateUtil).isTelephoneOrMobilePhone(__props.phone) ? (openBlock(), createElementBlock("div", {
15777
15769
  key: 0,
15778
15770
  class: "a-phone",
15779
15771
  onClick: _cache[0] || (_cache[0] = ($event) => callPhone())
15780
15772
  }, [
15781
- createVNode(_component_el_icon, null, {
15773
+ createVNode(unref(ElIcon), null, {
15782
15774
  default: withCtx(() => [
15783
15775
  createVNode(unref(iphone_default))
15784
15776
  ]),
@@ -15789,7 +15781,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
15789
15781
  };
15790
15782
  }
15791
15783
  });
15792
- const APhone = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-8e8f9579"]]);
15784
+ const APhone = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-d871cd10"]]);
15793
15785
  /*!
15794
15786
  * qrcode.vue v3.6.0
15795
15787
  * A Vue.js component to generate QRCode. Both support Vue 2 and Vue 3
@@ -16907,7 +16899,6 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16907
16899
  emits("clear");
16908
16900
  }
16909
16901
  return (_ctx, _cache) => {
16910
- const _component_el_button = resolveComponent("el-button");
16911
16902
  const _component_el_input = resolveComponent("el-input");
16912
16903
  return openBlock(), createBlock(_component_el_input, {
16913
16904
  disabled: __props.disabled,
@@ -16918,7 +16909,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16918
16909
  !__props.disabled ? {
16919
16910
  name: "append",
16920
16911
  fn: withCtx(() => [
16921
- !result.value ? (openBlock(), createBlock(_component_el_button, {
16912
+ !result.value ? (openBlock(), createBlock(unref(ElButton), {
16922
16913
  key: 0,
16923
16914
  disabled: __props.disabled,
16924
16915
  onClick: _cache[0] || (_cache[0] = ($event) => onSelect())
@@ -16927,7 +16918,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16927
16918
  createTextVNode(toDisplayString(__props.selectLabel), 1)
16928
16919
  ]),
16929
16920
  _: 1
16930
- }, 8, ["disabled"])) : (openBlock(), createBlock(_component_el_button, {
16921
+ }, 8, ["disabled"])) : (openBlock(), createBlock(unref(ElButton), {
16931
16922
  key: 1,
16932
16923
  disabled: __props.disabled,
16933
16924
  onClick: _cache[1] || (_cache[1] = ($event) => onClear())
@@ -17210,7 +17201,6 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
17210
17201
  onReloadData();
17211
17202
  }
17212
17203
  return (_ctx, _cache) => {
17213
- const _component_ElLink = resolveComponent("ElLink");
17214
17204
  return openBlock(), createBlock(unref(ADialog), {
17215
17205
  "disable-confirm": unref(disableConfirm),
17216
17206
  height: _ctx.height || "70%",
@@ -17233,6 +17223,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
17233
17223
  "column-list": fields.value,
17234
17224
  "data-list": _ctx.unPaginate || _ctx.treeList ? unref(list) : unref(response).list,
17235
17225
  entity: unref(entity),
17226
+ "hide-add": _ctx.hideAdd,
17236
17227
  "hide-ctrl": props.props.isMultiple,
17237
17228
  "on-add": onAdd,
17238
17229
  "on-search": unref(onSearch),
@@ -17243,7 +17234,6 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
17243
17234
  "ctrl-width": "60px",
17244
17235
  "hide-delete": "",
17245
17236
  "hide-edit": "",
17246
- "hide-add": _ctx.hideAdd,
17247
17237
  "hide-field-selector": ""
17248
17238
  }, createSlots({ _: 2 }, [
17249
17239
  renderList(unref(slots), (index, name) => {
@@ -17260,7 +17250,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
17260
17250
  !props.props.isMultiple ? {
17261
17251
  name: "customRow",
17262
17252
  fn: withCtx(({ data }) => [
17263
- createVNode(_component_ElLink, {
17253
+ createVNode(unref(ElLink), {
17264
17254
  disabled: data.isDisabled,
17265
17255
  underline: "never",
17266
17256
  onClick: ($event) => props.props.onConfirm(data)
@@ -17274,7 +17264,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
17274
17264
  ]),
17275
17265
  key: "0"
17276
17266
  } : void 0
17277
- ]), 1032, ["column-list", "data-list", "entity", "hide-ctrl", "on-search", "on-selected", "search-params", "select-list", "show-select", "hide-add"])
17267
+ ]), 1032, ["column-list", "data-list", "entity", "hide-add", "hide-ctrl", "on-search", "on-selected", "search-params", "select-list", "show-select"])
17278
17268
  ]),
17279
17269
  _: 3
17280
17270
  }, 8, ["disable-confirm", "height", "hide-footer", "loading", "title", "width"]);
@@ -17306,20 +17296,23 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
17306
17296
  };
17307
17297
  }
17308
17298
  });
17309
- const _sfc_main$6 = {};
17310
- function _sfc_render(_ctx, _cache) {
17311
- const _component_el_tabs = resolveComponent("el-tabs");
17312
- return openBlock(), createBlock(_component_el_tabs, {
17313
- class: "a-tabs",
17314
- type: "border-card"
17315
- }, {
17316
- default: withCtx(() => [
17317
- renderSlot(_ctx.$slots, "default", {}, void 0, true)
17318
- ]),
17319
- _: 3
17320
- });
17321
- }
17322
- const Tabs = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render], ["__scopeId", "data-v-e84efaee"]]);
17299
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
17300
+ __name: "Tabs",
17301
+ setup(__props) {
17302
+ return (_ctx, _cache) => {
17303
+ return openBlock(), createBlock(unref(ElTabs), {
17304
+ class: "a-tabs",
17305
+ type: "border-card"
17306
+ }, {
17307
+ default: withCtx(() => [
17308
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
17309
+ ]),
17310
+ _: 3
17311
+ });
17312
+ };
17313
+ }
17314
+ });
17315
+ const Tabs = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-d6771081"]]);
17323
17316
  const _hoisted_1$4 = {
17324
17317
  key: 0,
17325
17318
  class: "a-field-selector-dialog"
@@ -17401,7 +17394,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
17401
17394
  };
17402
17395
  }
17403
17396
  });
17404
- const ColumnSelector = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-520a2ab9"]]);
17397
+ const ColumnSelector = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-ed37e00b"]]);
17405
17398
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
17406
17399
  __name: "CopyColumn",
17407
17400
  props: {
@@ -17448,7 +17441,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17448
17441
  };
17449
17442
  }
17450
17443
  });
17451
- const EnumColumn = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-c27bd252"]]);
17444
+ const EnumColumn = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-49ebb298"]]);
17452
17445
  function useTableButton(params) {
17453
17446
  const {
17454
17447
  entityClass,
@@ -17576,7 +17569,7 @@ const _hoisted_5$1 = {
17576
17569
  style: { "color": "#aaa", "margin-right": "3px" }
17577
17570
  };
17578
17571
  const _hoisted_6 = {
17579
- key: 10,
17572
+ key: 11,
17580
17573
  style: { "color": "#aaa" }
17581
17574
  };
17582
17575
  const _hoisted_7 = { class: "ctrlRow" };
@@ -17586,6 +17579,13 @@ const _hoisted_10 = { class: "right" };
17586
17579
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
17587
17580
  __name: "Table",
17588
17581
  props: {
17582
+ /**
17583
+ * ### 按钮
17584
+ */
17585
+ buttons: {
17586
+ type: Array,
17587
+ default: () => []
17588
+ },
17589
17589
  /**
17590
17590
  * ### 直接使用表格Hook
17591
17591
  * 请注意,将不会再触发一些事件,请使用 Hook 的前后置等拦截方法处理
@@ -18536,28 +18536,30 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
18536
18536
  index: scope.$index
18537
18537
  }, () => [
18538
18538
  item.prefixText ? (openBlock(), createElementBlock("span", _hoisted_5$1, toDisplayString(item.prefixText), 1)) : createCommentVNode("", true),
18539
- unref(getDictionary)(unref(EntityClass), item.key) ? (openBlock(), createBlock(unref(EnumColumn), {
18540
- key: 1,
18539
+ item.formatter ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
18540
+ createTextVNode(toDisplayString(item.formatter(getValue(scope, item.key))), 1)
18541
+ ], 64)) : unref(getDictionary)(unref(EntityClass), item.key) ? (openBlock(), createBlock(unref(EnumColumn), {
18542
+ key: 2,
18541
18543
  column: item,
18542
18544
  data: scope.row,
18543
18545
  dictionary: unref(getDictionary)(unref(EntityClass), item.key)
18544
18546
  }, null, 8, ["column", "data", "dictionary"])) : item.image ? (openBlock(), createBlock(unref(_sfc_main$k), {
18545
- key: 2,
18546
- src: getValue(scope, item.key),
18547
- width: item.imageWidth || 40,
18548
- height: item.imageHeight || 40
18549
- }, null, 8, ["src", "width", "height"])) : item.phone ? (openBlock(), createBlock(unref(APhone), {
18550
18547
  key: 3,
18548
+ height: item.imageHeight || 40,
18549
+ src: getValue(scope, item.key),
18550
+ width: item.imageWidth || 40
18551
+ }, null, 8, ["height", "src", "width"])) : item.phone ? (openBlock(), createBlock(unref(APhone), {
18552
+ key: 4,
18551
18553
  desensitize: item.desensitize,
18552
18554
  phone: getValue(scope, item.key)
18553
18555
  }, null, 8, ["desensitize", "phone"])) : item.datetime ? (openBlock(), createBlock(unref(ADateTime), {
18554
- key: 4,
18556
+ key: 5,
18555
18557
  formatter: item.datetime === true ? unref(DateTimeFormatter).FULL_DATE_TIME : item.datetime,
18556
18558
  "milli-second": getValue(scope, item.key)
18557
18559
  }, null, 8, ["formatter", "milli-second"])) : item.money ? (openBlock(), createBlock(unref(AMoney), {
18558
- key: 5,
18560
+ key: 6,
18559
18561
  money: getValue(scope, item.key)
18560
- }, null, 8, ["money"])) : item.payload ? (openBlock(), createElementBlock(Fragment, { key: 6 }, [
18562
+ }, null, 8, ["money"])) : item.payload ? (openBlock(), createElementBlock(Fragment, { key: 7 }, [
18561
18563
  item.array ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
18562
18564
  createTextVNode(toDisplayString(getPayloadArray(scope, item.key).map((payload) => payload.getPayloadLabel()).join(",")), 1)
18563
18565
  ], 64)) : (openBlock(), createBlock(unref(APayload), {
@@ -18565,15 +18567,15 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
18565
18567
  payload: getValue(scope, item.key)
18566
18568
  }, null, 8, ["payload"]))
18567
18569
  ], 64)) : item.desensitize ? (openBlock(), createBlock(unref(ADesensitize), {
18568
- key: 7,
18570
+ key: 8,
18569
18571
  content: getValue(scope, item.key),
18570
18572
  type: item.desensitize
18571
18573
  }, null, 8, ["content", "type"])) : item.copy ? (openBlock(), createBlock(unref(_sfc_main$4), {
18572
- key: 8,
18574
+ key: 9,
18573
18575
  column: item,
18574
18576
  data: scope.row
18575
18577
  }, null, 8, ["column", "data"])) : (openBlock(), createElementBlock("div", {
18576
- key: 9,
18578
+ key: 10,
18577
18579
  class: normalizeClass([item.wrap ? "" : "nowrap", "a-table-column"])
18578
18580
  }, toDisplayString(getStringValue(getValue(scope, item.key)) ?? item.emptyValue), 3)),
18579
18581
  item.suffixText ? (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(item.suffixText), 1)) : createCommentVNode("", true)
@@ -18598,6 +18600,20 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
18598
18600
  data: getRowEntity(scope),
18599
18601
  index: scope.$index
18600
18602
  }) : createCommentVNode("", true),
18603
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.buttons, (button, index) => {
18604
+ return openBlock(), createBlock(unref(ElLink), {
18605
+ key: index,
18606
+ disabled: button.disabled ? button.disabled(getRowEntity(scope)) : false,
18607
+ type: button.dangerButton ? "danger" : button.warningButton ? "warning" : "default",
18608
+ underline: "never",
18609
+ onClick: ($event) => handleDelete(getRowEntity(scope))
18610
+ }, {
18611
+ default: withCtx(() => [
18612
+ createTextVNode(toDisplayString(button.label), 1)
18613
+ ]),
18614
+ _: 2
18615
+ }, 1032, ["disabled", "type", "onClick"]);
18616
+ }), 128)),
18601
18617
  __props.showAddRow ? (openBlock(), createBlock(unref(ElLink), {
18602
18618
  key: 1,
18603
18619
  disabled: unref(isAddRowDisabled)(getRowEntity(scope)),
@@ -18818,8 +18834,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
18818
18834
  return node.name?.indexOf(value) !== -1;
18819
18835
  }
18820
18836
  return (_ctx, _cache) => {
18821
- const _component_el_input = resolveComponent("el-input");
18822
- const _component_el_tree = resolveComponent("el-tree");
18823
18837
  const _directive_loading = resolveDirective("loading");
18824
18838
  return openBlock(), createElementBlock("div", _hoisted_1$1, [
18825
18839
  !__props.hideTree ? (openBlock(), createElementBlock("div", {
@@ -18839,14 +18853,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
18839
18853
  ]),
18840
18854
  default: withCtx(() => [
18841
18855
  __props.searchable ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
18842
- createVNode(_component_el_input, {
18856
+ createVNode(unref(ElInput), {
18843
18857
  modelValue: searchKeyword.value,
18844
18858
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchKeyword.value = $event),
18845
18859
  placeholder: __props.placeholder,
18846
18860
  clearable: ""
18847
18861
  }, null, 8, ["modelValue", "placeholder"])
18848
18862
  ])) : createCommentVNode("", true),
18849
- withDirectives(createVNode(_component_el_tree, {
18863
+ withDirectives(createVNode(unref(ElTree), {
18850
18864
  ref_key: "treeRef",
18851
18865
  ref: treeRef,
18852
18866
  "current-node-key": currentData.value ? currentData.value.id : 0,
@@ -18932,15 +18946,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
18932
18946
  window.location.replace(WebConfig.loginUrl);
18933
18947
  }
18934
18948
  return (_ctx, _cache) => {
18935
- const _component_el_image = resolveComponent("el-image");
18936
- const _component_el_icon = resolveComponent("el-icon");
18937
- const _component_el_button = resolveComponent("el-button");
18938
18949
  return openBlock(), createElementBlock("div", _hoisted_1, [
18939
18950
  createElementVNode("div", {
18940
18951
  class: "a-user-head",
18941
18952
  onClick: _cache[0] || (_cache[0] = ($event) => isDialogShow.value = true)
18942
18953
  }, [
18943
- createVNode(_component_el_image, { src: userAvatar.value }, null, 8, ["src"])
18954
+ createVNode(unref(ElImage), { src: userAvatar.value }, null, 8, ["src"])
18944
18955
  ]),
18945
18956
  isDialogShow.value ? (openBlock(), createElementBlock("div", {
18946
18957
  key: 0,
@@ -18961,13 +18972,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
18961
18972
  ], true)
18962
18973
  ]),
18963
18974
  createElementVNode("div", _hoisted_4, [
18964
- createVNode(_component_el_button, {
18975
+ createVNode(unref(ElButton), {
18965
18976
  text: "",
18966
18977
  type: "danger",
18967
18978
  onClick: logout
18968
18979
  }, {
18969
18980
  default: withCtx(() => [
18970
- createVNode(_component_el_icon, null, {
18981
+ createVNode(unref(ElIcon), null, {
18971
18982
  default: withCtx(() => [
18972
18983
  createVNode(unref(switch_button_default))
18973
18984
  ]),
@@ -18992,7 +19003,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
18992
19003
  };
18993
19004
  }
18994
19005
  });
18995
- const User = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-245c0051"]]);
19006
+ const User = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5925b035"]]);
18996
19007
  class WebEnum extends Enum {
18997
19008
  color;
18998
19009
  disabled;
package/dist/web.css CHANGED
@@ -438,30 +438,30 @@ textarea {
438
438
  100% {
439
439
  transform: rotate(360deg);
440
440
  }
441
- }.a-copy[data-v-997899dc] {
441
+ }.a-copy[data-v-b77c3899] {
442
442
  font-size: inherit;
443
443
  color: inherit;
444
444
  display: flex;
445
445
  flex-direction: row;
446
446
  align-items: center;
447
447
  }
448
- .a-copy[data-v-997899dc] .el-link {
448
+ .a-copy[data-v-b77c3899] .el-link {
449
449
  overflow: hidden;
450
450
  text-overflow: ellipsis;
451
- }.a-friend-datetime[data-v-9a815beb],
452
- .a-friend-datetime[data-v-9a815beb] * {
451
+ }.a-friend-datetime[data-v-f4449296],
452
+ .a-friend-datetime[data-v-f4449296] * {
453
453
  user-select: none !important;
454
- }.a-desensitize[data-v-d78b4ba9] {
454
+ }.a-desensitize[data-v-8bc9a38b] {
455
455
  display: flex !important;
456
456
  flex-direction: row;
457
457
  align-items: center;
458
458
  }
459
- .a-desensitize .icon[data-v-d78b4ba9] {
459
+ .a-desensitize .icon[data-v-8bc9a38b] {
460
460
  margin-right: 3px;
461
461
  font-weight: bold;
462
462
  cursor: pointer;
463
463
  }
464
- .a-desensitize .desensitize[data-v-d78b4ba9] {
464
+ .a-desensitize .desensitize[data-v-8bc9a38b] {
465
465
  color: red;
466
466
  }.web-dialog[data-v-937b915a] {
467
467
  z-index: 99;
@@ -609,7 +609,7 @@ textarea {
609
609
  .a-menu-tree .airpower {
610
610
  display: inline-block;
611
611
  font-size: 16px;
612
- }.a-frame[data-v-53b58994] {
612
+ }.a-frame[data-v-2803d92b] {
613
613
  position: fixed;
614
614
  left: 0;
615
615
  right: 0;
@@ -618,7 +618,7 @@ textarea {
618
618
  display: flex;
619
619
  flex-direction: column;
620
620
  }
621
- .a-frame .a-header[data-v-53b58994] {
621
+ .a-frame .a-header[data-v-2803d92b] {
622
622
  padding: 5px 15px;
623
623
  display: flex;
624
624
  flex-direction: row;
@@ -627,21 +627,21 @@ textarea {
627
627
  background-color: #fff;
628
628
  height: 40px;
629
629
  }
630
- .a-frame .a-header .a-logo[data-v-53b58994] {
630
+ .a-frame .a-header .a-logo[data-v-2803d92b] {
631
631
  word-break: keep-all;
632
632
  text-align: center;
633
633
  cursor: pointer;
634
634
  user-select: none;
635
635
  height: 100%;
636
636
  }
637
- .a-frame .a-header .a-logo span[data-v-53b58994] {
637
+ .a-frame .a-header .a-logo span[data-v-2803d92b] {
638
638
  margin-left: 16px;
639
639
  font-size: 24px;
640
640
  font-weight: bold;
641
641
  color: var(--el-color-primary);
642
642
  user-select: none;
643
643
  }
644
- .a-frame .a-header .a-navigator[data-v-53b58994] {
644
+ .a-frame .a-header .a-navigator[data-v-2803d92b] {
645
645
  flex: 1;
646
646
  font-size: 14px;
647
647
  color: #aaa;
@@ -651,21 +651,21 @@ textarea {
651
651
  width: 0;
652
652
  margin: 0 20px;
653
653
  }
654
- .a-frame .a-main[data-v-53b58994] {
654
+ .a-frame .a-main[data-v-2803d92b] {
655
655
  flex: 1;
656
656
  height: 0;
657
657
  display: flex;
658
658
  flex-direction: row;
659
659
  background-color: var(--el-color-primary-light-9);
660
660
  }
661
- .a-frame .a-main .a-left[data-v-53b58994] {
661
+ .a-frame .a-main .a-left[data-v-2803d92b] {
662
662
  display: flex;
663
663
  flex-direction: column;
664
664
  background: #fff;
665
665
  margin: 5px;
666
666
  border-radius: 4px;
667
667
  }
668
- .a-frame .a-main .a-left .a-menu[data-v-53b58994] {
668
+ .a-frame .a-main .a-left .a-menu[data-v-2803d92b] {
669
669
  display: flex;
670
670
  flex-direction: column;
671
671
  align-items: center;
@@ -675,7 +675,7 @@ textarea {
675
675
  overflow-y: auto;
676
676
  padding: 10px;
677
677
  }
678
- .a-frame .a-main .a-left .a-menu .item[data-v-53b58994] {
678
+ .a-frame .a-main .a-left .a-menu .item[data-v-2803d92b] {
679
679
  padding: 5px 15px;
680
680
  cursor: pointer;
681
681
  transition: all 0.3s;
@@ -687,18 +687,18 @@ textarea {
687
687
  justify-content: center;
688
688
  align-items: center;
689
689
  }
690
- .a-frame .a-main .a-left .a-menu .item i[data-v-53b58994] {
690
+ .a-frame .a-main .a-left .a-menu .item i[data-v-2803d92b] {
691
691
  margin-right: 3px;
692
692
  font-weight: bold;
693
693
  }
694
- .a-frame .a-main .a-left .a-menu .item[data-v-53b58994]:hover {
694
+ .a-frame .a-main .a-left .a-menu .item[data-v-2803d92b]:hover {
695
695
  background-color: #f5f5f5;
696
696
  }
697
- .a-frame .a-main .a-left .a-menu[data-v-53b58994]::-webkit-scrollbar {
697
+ .a-frame .a-main .a-left .a-menu[data-v-2803d92b]::-webkit-scrollbar {
698
698
  width: 0;
699
699
  height: 0;
700
700
  }
701
- .a-frame .a-main .a-right[data-v-53b58994] {
701
+ .a-frame .a-main .a-right[data-v-2803d92b] {
702
702
  flex: 1;
703
703
  width: 0;
704
704
  display: flex;
@@ -1012,7 +1012,7 @@ textarea {
1012
1012
  .web-page-panel-box .web-page-jumper {
1013
1013
  display: flex;
1014
1014
  flex-direction: row;
1015
- }.web-panel[data-v-62d334f9] {
1015
+ }.web-panel[data-v-bcd0fd2f] {
1016
1016
  display: flex;
1017
1017
  flex: 1;
1018
1018
  flex-direction: column;
@@ -1021,7 +1021,7 @@ textarea {
1021
1021
  overflow: hidden;
1022
1022
  height: 0;
1023
1023
  }
1024
- .web-panel .panel-header[data-v-62d334f9] {
1024
+ .web-panel .panel-header[data-v-bcd0fd2f] {
1025
1025
  display: flex;
1026
1026
  flex-direction: row;
1027
1027
  align-items: center;
@@ -1029,41 +1029,41 @@ textarea {
1029
1029
  padding: 10px 15px;
1030
1030
  user-select: none;
1031
1031
  }
1032
- .web-panel .panel-header .panel-left[data-v-62d334f9] {
1032
+ .web-panel .panel-header .panel-left[data-v-bcd0fd2f] {
1033
1033
  display: flex;
1034
1034
  flex-direction: row;
1035
1035
  align-items: center;
1036
1036
  flex: 1;
1037
1037
  width: 0;
1038
1038
  }
1039
- .web-panel .panel-header .panel-left .panel-icon[data-v-62d334f9] {
1039
+ .web-panel .panel-header .panel-left .panel-icon[data-v-bcd0fd2f] {
1040
1040
  font-size: 20px;
1041
1041
  color: var(--el-color-primary);
1042
1042
  display: flex;
1043
1043
  flex-direction: row;
1044
1044
  align-items: center;
1045
1045
  }
1046
- .web-panel .panel-header .panel-left .panel-title[data-v-62d334f9] {
1046
+ .web-panel .panel-header .panel-left .panel-title[data-v-bcd0fd2f] {
1047
1047
  font-size: 16px;
1048
1048
  color: #333;
1049
1049
  font-weight: bold;
1050
1050
  margin-left: 3px;
1051
1051
  }
1052
- .web-panel .panel-header .panel-right[data-v-62d334f9] {
1052
+ .web-panel .panel-header .panel-right[data-v-bcd0fd2f] {
1053
1053
  color: #aaa;
1054
1054
  font-size: 14px;
1055
1055
  }
1056
- .web-panel .panel-header .panel-right .panel-full[data-v-62d334f9] {
1056
+ .web-panel .panel-header .panel-right .panel-full[data-v-bcd0fd2f] {
1057
1057
  font-size: 20px;
1058
1058
  cursor: pointer;
1059
1059
  font-weight: bold;
1060
1060
  margin: -5px 0px;
1061
1061
  transition: all 0.3s;
1062
1062
  }
1063
- .web-panel .panel-header .panel-right .panel-full[data-v-62d334f9]:hover {
1063
+ .web-panel .panel-header .panel-right .panel-full[data-v-bcd0fd2f]:hover {
1064
1064
  color: var(--primary-color);
1065
1065
  }
1066
- .web-panel .panel-body[data-v-62d334f9] {
1066
+ .web-panel .panel-body[data-v-bcd0fd2f] {
1067
1067
  display: flex;
1068
1068
  flex: 1;
1069
1069
  flex-direction: column;
@@ -1073,7 +1073,7 @@ textarea {
1073
1073
  padding: 10px;
1074
1074
  position: relative;
1075
1075
  }
1076
- .fullscreen[data-v-62d334f9] {
1076
+ .fullscreen[data-v-bcd0fd2f] {
1077
1077
  position: fixed !important;
1078
1078
  left: 0;
1079
1079
  right: 0;
@@ -1179,14 +1179,14 @@ textarea {
1179
1179
  }
1180
1180
  .a-phone-call__content > span .icon[data-v-23375435] {
1181
1181
  margin-right: 3px;
1182
- }.a-phone[data-v-8e8f9579] {
1182
+ }.a-phone[data-v-d871cd10] {
1183
1183
  display: flex;
1184
1184
  flex-direction: row;
1185
1185
  align-items: center;
1186
1186
  cursor: pointer;
1187
1187
  transition: all 0.3s;
1188
1188
  }
1189
- .a-phone[data-v-8e8f9579]:hover {
1189
+ .a-phone[data-v-d871cd10]:hover {
1190
1190
  color: var(--primary-color);
1191
1191
  }.a-qrcode[data-v-024409f5] {
1192
1192
  position: relative;
@@ -1197,26 +1197,26 @@ textarea {
1197
1197
  cursor: default;
1198
1198
  user-select: none;
1199
1199
  pointer-events: none;
1200
- }.a-tabs[data-v-e84efaee] {
1200
+ }.a-tabs[data-v-d6771081] {
1201
1201
  min-height: 100px;
1202
1202
  flex: 1;
1203
1203
  height: 0;
1204
1204
  }
1205
- .a-tabs[data-v-e84efaee] .el-tabs__content {
1205
+ .a-tabs[data-v-d6771081] .el-tabs__content {
1206
1206
  display: flex;
1207
1207
  flex-direction: column;
1208
1208
  flex: 1;
1209
1209
  height: 0;
1210
1210
  padding: 10px 20px;
1211
1211
  }
1212
- .a-tabs[data-v-e84efaee] .el-tabs__content .el-tab-pane {
1212
+ .a-tabs[data-v-d6771081] .el-tabs__content .el-tab-pane {
1213
1213
  display: flex;
1214
1214
  flex-direction: column;
1215
1215
  flex: 1;
1216
1216
  height: 0;
1217
1217
  overflow: hidden;
1218
1218
  overflow-y: auto;
1219
- }.el-check-tag[data-v-520a2ab9] {
1219
+ }.el-check-tag[data-v-ed37e00b] {
1220
1220
  font-weight: normal !important;
1221
1221
  user-select: none;
1222
1222
  font-size: 13px;
@@ -1224,7 +1224,7 @@ textarea {
1224
1224
  margin-bottom: 5px;
1225
1225
  padding: 4px 10px;
1226
1226
  }
1227
- .a-field-selector-bg[data-v-520a2ab9] {
1227
+ .a-field-selector-bg[data-v-ed37e00b] {
1228
1228
  position: fixed;
1229
1229
  left: 0;
1230
1230
  right: 0;
@@ -1233,7 +1233,7 @@ textarea {
1233
1233
  background-color: rgba(0, 0, 0, 0.1);
1234
1234
  z-index: 9999999;
1235
1235
  }
1236
- .a-field-selector-dialog[data-v-520a2ab9] {
1236
+ .a-field-selector-dialog[data-v-ed37e00b] {
1237
1237
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
1238
1238
  position: absolute;
1239
1239
  right: 0;
@@ -1246,13 +1246,13 @@ textarea {
1246
1246
  overflow: hidden;
1247
1247
  z-index: 99999991;
1248
1248
  }
1249
- .a-field-selector-dialog .a-field-selector-title[data-v-520a2ab9] {
1249
+ .a-field-selector-dialog .a-field-selector-title[data-v-ed37e00b] {
1250
1250
  margin-bottom: 10px;
1251
1251
  border-bottom: 1px solid var(--el-color-primary-light-9);
1252
1252
  padding: 8px 16px;
1253
1253
  font-size: 15px;
1254
1254
  }
1255
- .a-field-selector-dialog .a-field-selector-list[data-v-520a2ab9] {
1255
+ .a-field-selector-dialog .a-field-selector-list[data-v-ed37e00b] {
1256
1256
  padding: 5px 15px 10px 15px;
1257
1257
  display: flex;
1258
1258
  flex-wrap: wrap;
@@ -1261,13 +1261,13 @@ textarea {
1261
1261
  flex: 1;
1262
1262
  height: 0;
1263
1263
  align-content: flex-start;
1264
- }.a-enum-column[data-v-c27bd252] {
1264
+ }.a-enum-column[data-v-49ebb298] {
1265
1265
  display: flex;
1266
1266
  flex-direction: row;
1267
1267
  justify-content: flex-start;
1268
1268
  align-items: center;
1269
1269
  }
1270
- .a-enum-column .light[data-v-c27bd252] {
1270
+ .a-enum-column .light[data-v-49ebb298] {
1271
1271
  width: 8px;
1272
1272
  height: 8px;
1273
1273
  border-radius: 100%;
@@ -1460,13 +1460,13 @@ textarea {
1460
1460
  overflow: hidden;
1461
1461
  text-overflow: ellipsis;
1462
1462
  user-select: none;
1463
- }.a-user[data-v-245c0051] {
1463
+ }.a-user[data-v-5925b035] {
1464
1464
  display: flex;
1465
1465
  flex-direction: row;
1466
1466
  align-items: center;
1467
1467
  position: relative;
1468
1468
  }
1469
- .a-user .a-user-head[data-v-245c0051] {
1469
+ .a-user .a-user-head[data-v-5925b035] {
1470
1470
  border-radius: 8px;
1471
1471
  cursor: pointer;
1472
1472
  width: 36px;
@@ -1474,11 +1474,11 @@ textarea {
1474
1474
  background-color: #eee;
1475
1475
  overflow: hidden;
1476
1476
  }
1477
- .a-user .a-user-head[data-v-245c0051] * {
1477
+ .a-user .a-user-head[data-v-5925b035] * {
1478
1478
  width: 100%;
1479
1479
  height: 100%;
1480
1480
  }
1481
- .a-user .a-user-cover[data-v-245c0051] {
1481
+ .a-user .a-user-cover[data-v-5925b035] {
1482
1482
  position: fixed;
1483
1483
  left: 0;
1484
1484
  right: 0;
@@ -1487,7 +1487,7 @@ textarea {
1487
1487
  z-index: 99;
1488
1488
  background-color: rgba(0, 0, 0, 0.05);
1489
1489
  }
1490
- .a-user .a-user-dialog[data-v-245c0051] {
1490
+ .a-user .a-user-dialog[data-v-5925b035] {
1491
1491
  position: absolute;
1492
1492
  right: 0;
1493
1493
  top: 50px;
@@ -1498,27 +1498,27 @@ textarea {
1498
1498
  display: flex;
1499
1499
  flex-direction: column;
1500
1500
  }
1501
- .a-user .a-user-dialog .a-user-body[data-v-245c0051] {
1501
+ .a-user .a-user-dialog .a-user-body[data-v-5925b035] {
1502
1502
  flex: 1;
1503
1503
  height: 0;
1504
1504
  overflow: hidden;
1505
1505
  overflow-y: auto;
1506
1506
  padding: 10px;
1507
1507
  }
1508
- .a-user .a-user-dialog .a-user-body .slot[data-v-245c0051] {
1508
+ .a-user .a-user-dialog .a-user-body .slot[data-v-5925b035] {
1509
1509
  display: flex;
1510
1510
  align-items: center;
1511
1511
  justify-content: center;
1512
1512
  height: 100%;
1513
1513
  }
1514
- .a-user .a-user-dialog .a-user-header[data-v-245c0051] {
1514
+ .a-user .a-user-dialog .a-user-header[data-v-5925b035] {
1515
1515
  border-bottom: 1px solid #f5f5f5;
1516
1516
  padding: 10px;
1517
1517
  display: flex;
1518
1518
  flex-direction: row;
1519
1519
  align-items: center;
1520
1520
  }
1521
- .a-user .a-user-dialog .a-user-header .a-user-title[data-v-245c0051] {
1521
+ .a-user .a-user-dialog .a-user-header .a-user-title[data-v-5925b035] {
1522
1522
  flex: 1;
1523
1523
  font-size: 16px;
1524
1524
  font-weight: bold;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@airpower/web",
3
3
  "type": "module",
4
- "version": "1.3.5",
4
+ "version": "1.4.0",
5
5
  "description": "AirPower-Web",
6
6
  "author": {
7
7
  "name": "Hamm",