giime 0.9.3 → 0.9.4

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.
Files changed (76) hide show
  1. package/dist/index.css +75 -75
  2. package/es/components/src/base/configProvider/ConfigProvider.vue.d.ts +1 -1
  3. package/es/components/src/base/configProvider/index.d.ts +3 -3
  4. package/es/components/src/base/image/Image.vue.d.ts +1 -1
  5. package/es/components/src/base/image/index.d.ts +2 -2
  6. package/es/components/src/base/imageViewer/ImageViewer.vue.d.ts +1 -1
  7. package/es/components/src/base/imageViewer/index.d.ts +1 -1
  8. package/es/components/src/base/progress/Progress.vue.d.ts +1 -1
  9. package/es/components/src/base/progress/index.d.ts +3 -3
  10. package/es/components/src/base/space/Space.vue.d.ts +2 -2
  11. package/es/components/src/base/space/index.d.ts +6 -6
  12. package/es/components/src/base/step/Step.vue.d.ts +1 -1
  13. package/es/components/src/base/step/index.d.ts +3 -3
  14. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs +6 -3
  15. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
  16. package/es/components/src/composite/tableCustom/TableColumnVNodeRenderer.mjs +11 -9
  17. package/es/components/src/composite/tableCustom/TableColumnVNodeRenderer.mjs.map +1 -1
  18. package/es/components/src/composite/tableCustom/TableCustom.vue.mjs +1 -1
  19. package/es/components/src/composite/tableCustom/TableCustom.vue2.mjs +1 -1
  20. package/es/components/src/composite/tableCustom/TableCustom.vue2.mjs.map +1 -1
  21. package/es/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.mjs +7 -1
  22. package/es/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.mjs.map +1 -1
  23. package/es/giime/index.mjs +1 -0
  24. package/es/giime/index.mjs.map +1 -1
  25. package/es/giime/version.d.ts +1 -1
  26. package/es/giime/version.mjs +1 -1
  27. package/es/giime/version.mjs.map +1 -1
  28. package/es/hooks/base/useDownload/index.d.ts +3 -0
  29. package/es/hooks/base/useDownload/index.mjs.map +1 -1
  30. package/es/hooks/store/common/useLangList/index.d.ts +1 -1
  31. package/es/hooks/store/useLineList/index.d.ts +1 -1
  32. package/es/index.css +75 -75
  33. package/es/utils/index.d.ts +1 -0
  34. package/es/utils/index.mjs +1 -0
  35. package/es/utils/index.mjs.map +1 -1
  36. package/es/utils/src/clarity/index.d.ts +67 -0
  37. package/es/utils/src/clarity/index.mjs +93 -0
  38. package/es/utils/src/clarity/index.mjs.map +1 -0
  39. package/lib/components/src/base/configProvider/ConfigProvider.vue.d.ts +1 -1
  40. package/lib/components/src/base/configProvider/index.d.ts +3 -3
  41. package/lib/components/src/base/image/Image.vue.d.ts +1 -1
  42. package/lib/components/src/base/image/index.d.ts +2 -2
  43. package/lib/components/src/base/imageViewer/ImageViewer.vue.d.ts +1 -1
  44. package/lib/components/src/base/imageViewer/index.d.ts +1 -1
  45. package/lib/components/src/base/progress/Progress.vue.d.ts +1 -1
  46. package/lib/components/src/base/progress/index.d.ts +3 -3
  47. package/lib/components/src/base/space/Space.vue.d.ts +2 -2
  48. package/lib/components/src/base/space/index.d.ts +6 -6
  49. package/lib/components/src/base/step/Step.vue.d.ts +1 -1
  50. package/lib/components/src/base/step/index.d.ts +3 -3
  51. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +6 -3
  52. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
  53. package/lib/components/src/composite/tableCustom/TableColumnVNodeRenderer.js +11 -9
  54. package/lib/components/src/composite/tableCustom/TableColumnVNodeRenderer.js.map +1 -1
  55. package/lib/components/src/composite/tableCustom/TableCustom.vue.js +1 -1
  56. package/lib/components/src/composite/tableCustom/TableCustom.vue2.js +1 -1
  57. package/lib/components/src/composite/tableCustom/TableCustom.vue2.js.map +1 -1
  58. package/lib/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.js +7 -1
  59. package/lib/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.js.map +1 -1
  60. package/lib/giime/index.js +375 -373
  61. package/lib/giime/index.js.map +1 -1
  62. package/lib/giime/version.d.ts +1 -1
  63. package/lib/giime/version.js +1 -1
  64. package/lib/giime/version.js.map +1 -1
  65. package/lib/hooks/base/useDownload/index.d.ts +3 -0
  66. package/lib/hooks/base/useDownload/index.js.map +1 -1
  67. package/lib/hooks/store/common/useLangList/index.d.ts +1 -1
  68. package/lib/hooks/store/useLineList/index.d.ts +1 -1
  69. package/lib/index.css +75 -75
  70. package/lib/utils/index.d.ts +1 -0
  71. package/lib/utils/index.js +2 -0
  72. package/lib/utils/index.js.map +1 -1
  73. package/lib/utils/src/clarity/index.d.ts +67 -0
  74. package/lib/utils/src/clarity/index.js +95 -0
  75. package/lib/utils/src/clarity/index.js.map +1 -0
  76. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -887,6 +887,81 @@ video {
887
887
  .gm-group:hover .group-hover\:gm-block {
888
888
  display: block;
889
889
  }
890
+ .gm-number-interval-single[data-v-4e6f4d6f] {
891
+ border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
892
+ box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
893
+ background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
894
+ }
895
+ .gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
896
+ box-shadow: none;
897
+ background: none;
898
+ }
899
+
900
+ .gm-number-interval-close[data-v-4e6f4d6f] {
901
+ display: none;
902
+ color: var(--el-input-icon-color, var(--el-text-color-placeholder));
903
+ }
904
+
905
+ .gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
906
+ display: flex;
907
+ }
908
+ .gm-flex-center[data-v-c17deec9] {
909
+ align-items: center;
910
+ }
911
+
912
+ .gm-flex-justify-between[data-v-c17deec9] {
913
+ justify-content: space-between;
914
+ }
915
+ [data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
916
+ border-right: none;
917
+ }
918
+
919
+ [data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
920
+ height: 0;
921
+ }
922
+
923
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
924
+ height: 0;
925
+ }
926
+
927
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
928
+ height: 0;
929
+ }
930
+
931
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
932
+ height: 0;
933
+ }
934
+
935
+ [data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
936
+ height: 0;
937
+ }
938
+ [data-v-79615afd] .gmSearchForm .el-form-item {
939
+ margin-right: 0;
940
+ margin-bottom: 4px;
941
+ }
942
+ [data-v-3f2c8504] .gmTableNoBorder .el-table__body .el-table__cell {
943
+ border-right: none;
944
+ }
945
+
946
+ [data-v-3f2c8504] .gmTableNoBorder .el-table__inner-wrapper:before {
947
+ height: 0;
948
+ }
949
+
950
+ [data-v-3f2c8504] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
951
+ height: 0;
952
+ }
953
+
954
+ [data-v-3f2c8504] .gmTableNoBorder.el-table--border:after {
955
+ height: 0;
956
+ }
957
+
958
+ [data-v-3f2c8504] .gmTableNoBorder.el-table--border:before {
959
+ height: 0;
960
+ }
961
+
962
+ [data-v-3f2c8504] .gmTableNoBorder .el-table__border-left-patch {
963
+ height: 0;
964
+ }
890
965
  .gm-upload-pro-file {
891
966
  line-height: normal;
892
967
  }
@@ -933,54 +1008,6 @@ video {
933
1008
  width: auto;
934
1009
  height: auto;
935
1010
  }
936
- .gm-flex-center[data-v-c17deec9] {
937
- align-items: center;
938
- }
939
-
940
- .gm-flex-justify-between[data-v-c17deec9] {
941
- justify-content: space-between;
942
- }
943
- [data-v-1e1d88ac] .gmTableNoBorder .el-table__body .el-table__cell {
944
- border-right: none;
945
- }
946
-
947
- [data-v-1e1d88ac] .gmTableNoBorder .el-table__inner-wrapper:before {
948
- height: 0;
949
- }
950
-
951
- [data-v-1e1d88ac] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
952
- height: 0;
953
- }
954
-
955
- [data-v-1e1d88ac] .gmTableNoBorder.el-table--border:after {
956
- height: 0;
957
- }
958
-
959
- [data-v-1e1d88ac] .gmTableNoBorder.el-table--border:before {
960
- height: 0;
961
- }
962
-
963
- [data-v-1e1d88ac] .gmTableNoBorder .el-table__border-left-patch {
964
- height: 0;
965
- }
966
- .gm-number-interval-single[data-v-4e6f4d6f] {
967
- border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
968
- box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
969
- background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
970
- }
971
- .gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
972
- box-shadow: none;
973
- background: none;
974
- }
975
-
976
- .gm-number-interval-close[data-v-4e6f4d6f] {
977
- display: none;
978
- color: var(--el-input-icon-color, var(--el-text-color-placeholder));
979
- }
980
-
981
- .gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
982
- display: flex;
983
- }
984
1011
  .gm-upload-preview-dialog[data-v-c615121c] [data-v-c615121c] .el-dialog__body {
985
1012
  padding: 0;
986
1013
  }
@@ -989,10 +1016,6 @@ video {
989
1016
  width: auto;
990
1017
  height: auto;
991
1018
  }
992
- [data-v-79615afd] .gmSearchForm .el-form-item {
993
- margin-right: 0;
994
- margin-bottom: 4px;
995
- }
996
1019
  .gm-upload-file {
997
1020
  line-height: normal;
998
1021
  }
@@ -1029,29 +1052,6 @@ video {
1029
1052
  .gm-upload-file-disabled .el-upload-list__item-status-label {
1030
1053
  display: none;
1031
1054
  }
1032
- [data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
1033
- border-right: none;
1034
- }
1035
-
1036
- [data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
1037
- height: 0;
1038
- }
1039
-
1040
- [data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1041
- height: 0;
1042
- }
1043
-
1044
- [data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
1045
- height: 0;
1046
- }
1047
-
1048
- [data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
1049
- height: 0;
1050
- }
1051
-
1052
- [data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
1053
- height: 0;
1054
- }
1055
1055
 
1056
1056
  .gm-range-number .el-form-item[data-v-1ae16d96] {
1057
1057
  margin: 0;
@@ -112,10 +112,10 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
112
112
  zIndex: NumberConstructor;
113
113
  namespace: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "el", boolean>;
114
114
  }>>, {
115
+ namespace: string;
115
116
  valueOnClear: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | ((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null))[], unknown, unknown>;
116
117
  a11y: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
117
118
  keyboardNavigation: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
118
- namespace: string;
119
119
  }, {}>, {
120
120
  default?: ((props: any) => any) | undefined;
121
121
  }>;
@@ -113,10 +113,10 @@ export declare const GmConfigProvider: import("../../../../utils").SFCWithInstal
113
113
  zIndex: NumberConstructor;
114
114
  namespace: import("element-plus/es/utils/index.js").EpPropFinalized<StringConstructor, unknown, unknown, "el", boolean>;
115
115
  }>>, {
116
+ namespace: string;
116
117
  valueOnClear: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | ((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null))[], unknown, unknown>;
117
118
  a11y: import("element-plus/es/utils/index.js").EpPropMergeType<BooleanConstructor, unknown, unknown>;
118
119
  keyboardNavigation: import("element-plus/es/utils/index.js").EpPropMergeType<BooleanConstructor, unknown, unknown>;
119
- namespace: string;
120
120
  }, true, {}, {}, {
121
121
  P: {};
122
122
  B: {};
@@ -182,10 +182,10 @@ export declare const GmConfigProvider: import("../../../../utils").SFCWithInstal
182
182
  }>>, {
183
183
  elRef: import("vue").Ref<import("element-plus").ConfigProviderInstance | undefined>;
184
184
  }, {}, {}, {}, {
185
+ namespace: string;
185
186
  valueOnClear: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | ((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null))[], unknown, unknown>;
186
187
  a11y: import("element-plus/es/utils/index.js").EpPropMergeType<BooleanConstructor, unknown, unknown>;
187
188
  keyboardNavigation: import("element-plus/es/utils/index.js").EpPropMergeType<BooleanConstructor, unknown, unknown>;
188
- namespace: string;
189
189
  }>;
190
190
  __isFragment?: undefined;
191
191
  __isTeleport?: undefined;
@@ -248,10 +248,10 @@ export declare const GmConfigProvider: import("../../../../utils").SFCWithInstal
248
248
  }>>, {
249
249
  elRef: import("vue").Ref<import("element-plus").ConfigProviderInstance | undefined>;
250
250
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
251
+ namespace: string;
251
252
  valueOnClear: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | ((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null))[], unknown, unknown>;
252
253
  a11y: import("element-plus/es/utils/index.js").EpPropMergeType<BooleanConstructor, unknown, unknown>;
253
254
  keyboardNavigation: import("element-plus/es/utils/index.js").EpPropMergeType<BooleanConstructor, unknown, unknown>;
254
- namespace: string;
255
255
  }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
256
256
  $slots: {
257
257
  default?: ((props: any) => any) | undefined;
@@ -118,8 +118,8 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
118
118
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
119
119
  error: (evt: Event) => void;
120
120
  show: () => void;
121
- close: () => void;
122
121
  switch: (val: number) => void;
122
+ close: () => void;
123
123
  load: (evt: Event) => void;
124
124
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
125
125
  hideOnClickModal: BooleanConstructor;
@@ -118,8 +118,8 @@ export declare const GmImage: import("../../../../utils").SFCWithInstall<{
118
118
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
119
119
  error: (evt: Event) => void;
120
120
  show: () => void;
121
- close: () => void;
122
121
  switch: (val: number) => void;
122
+ close: () => void;
123
123
  load: (evt: Event) => void;
124
124
  }, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
125
125
  hideOnClickModal: BooleanConstructor;
@@ -510,8 +510,8 @@ export declare const GmImage: import("../../../../utils").SFCWithInstall<{
510
510
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
511
511
  error: (evt: Event) => void;
512
512
  show: () => void;
513
- close: () => void;
514
513
  switch: (val: number) => void;
514
+ close: () => void;
515
515
  load: (evt: Event) => void;
516
516
  }, string, {
517
517
  infinite: boolean;
@@ -83,8 +83,8 @@ declare const _default: import("vue").DefineComponent<{
83
83
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
84
84
  error: (evt: Event) => void;
85
85
  rotate: (deg: number) => void;
86
- close: () => void;
87
86
  switch: (index: number) => void;
87
+ close: () => void;
88
88
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
89
89
  urlList: {
90
90
  readonly type: import("vue").PropType<string[]>;
@@ -84,8 +84,8 @@ export declare const GmImageViewer: import("../../../../utils").SFCWithInstall<i
84
84
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
85
85
  error: (evt: Event) => void;
86
86
  rotate: (deg: number) => void;
87
- close: () => void;
88
87
  switch: (index: number) => void;
88
+ close: () => void;
89
89
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
90
90
  urlList: {
91
91
  readonly type: import("vue").PropType<string[]>;
@@ -178,10 +178,10 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
178
178
  width: number;
179
179
  strokeLinecap: NonNullable<"inherit" | "round" | "butt" | "square" | undefined>;
180
180
  strokeWidth: number;
181
+ status: "" | "success" | "warning" | "exception";
181
182
  indeterminate: boolean;
182
183
  format: import("element-plus").ProgressFn;
183
184
  percentage: number;
184
- status: "" | "success" | "warning" | "exception";
185
185
  textInside: boolean;
186
186
  showText: boolean;
187
187
  striped: boolean;
@@ -179,10 +179,10 @@ export declare const GmProgress: import("../../../../utils").SFCWithInstall<{
179
179
  width: number;
180
180
  strokeLinecap: NonNullable<"inherit" | "round" | "butt" | "square" | undefined>;
181
181
  strokeWidth: number;
182
+ status: "" | "success" | "warning" | "exception";
182
183
  indeterminate: boolean;
183
184
  format: import("element-plus").ProgressFn;
184
185
  percentage: number;
185
- status: "" | "success" | "warning" | "exception";
186
186
  textInside: boolean;
187
187
  showText: boolean;
188
188
  striped: boolean;
@@ -288,10 +288,10 @@ export declare const GmProgress: import("../../../../utils").SFCWithInstall<{
288
288
  width: number;
289
289
  strokeLinecap: NonNullable<"inherit" | "round" | "butt" | "square" | undefined>;
290
290
  strokeWidth: number;
291
+ status: "" | "success" | "warning" | "exception";
291
292
  indeterminate: boolean;
292
293
  format: import("element-plus").ProgressFn;
293
294
  percentage: number;
294
- status: "" | "success" | "warning" | "exception";
295
295
  textInside: boolean;
296
296
  showText: boolean;
297
297
  striped: boolean;
@@ -394,10 +394,10 @@ export declare const GmProgress: import("../../../../utils").SFCWithInstall<{
394
394
  width: number;
395
395
  strokeLinecap: NonNullable<"inherit" | "round" | "butt" | "square" | undefined>;
396
396
  strokeWidth: number;
397
+ status: "" | "success" | "warning" | "exception";
397
398
  indeterminate: boolean;
398
399
  format: import("element-plus").ProgressFn;
399
400
  percentage: number;
400
- status: "" | "success" | "warning" | "exception";
401
401
  textInside: boolean;
402
402
  showText: boolean;
403
403
  striped: boolean;
@@ -133,11 +133,11 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
133
133
  style: import("vue").StyleValue;
134
134
  direction: "horizontal" | "vertical";
135
135
  wrap: boolean;
136
- class: string | Record<string, boolean> | (string | Record<string, boolean>)[];
137
- alignment: string;
138
136
  spacer: import("vue").VNodeChild | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
139
137
  [key: string]: any;
140
138
  }>;
139
+ class: string | Record<string, boolean> | (string | Record<string, boolean>)[];
140
+ alignment: string;
141
141
  fillRatio: number;
142
142
  }, {}>, {
143
143
  default?: ((props: any) => any) | undefined;
@@ -135,11 +135,11 @@ export declare const GmSpace: import("../../../../utils").SFCWithInstall<{
135
135
  style: import("vue").StyleValue;
136
136
  direction: "horizontal" | "vertical";
137
137
  wrap: boolean;
138
- class: string | Record<string, boolean> | (string | Record<string, boolean>)[];
139
- alignment: string;
140
138
  spacer: import("vue").VNodeChild | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
141
139
  [key: string]: any;
142
140
  }>;
141
+ class: string | Record<string, boolean> | (string | Record<string, boolean>)[];
142
+ alignment: string;
143
143
  fillRatio: number;
144
144
  }, true, {}, {}, {
145
145
  P: {};
@@ -218,11 +218,11 @@ export declare const GmSpace: import("../../../../utils").SFCWithInstall<{
218
218
  style: import("vue").StyleValue;
219
219
  direction: "horizontal" | "vertical";
220
220
  wrap: boolean;
221
- class: string | Record<string, boolean> | (string | Record<string, boolean>)[];
222
- alignment: string;
223
221
  spacer: import("vue").VNodeChild | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
224
222
  [key: string]: any;
225
223
  }>;
224
+ class: string | Record<string, boolean> | (string | Record<string, boolean>)[];
225
+ alignment: string;
226
226
  fillRatio: number;
227
227
  }>;
228
228
  __isFragment?: undefined;
@@ -298,11 +298,11 @@ export declare const GmSpace: import("../../../../utils").SFCWithInstall<{
298
298
  style: import("vue").StyleValue;
299
299
  direction: "horizontal" | "vertical";
300
300
  wrap: boolean;
301
- class: string | Record<string, boolean> | (string | Record<string, boolean>)[];
302
- alignment: string;
303
301
  spacer: import("vue").VNodeChild | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
304
302
  [key: string]: any;
305
303
  }>;
304
+ class: string | Record<string, boolean> | (string | Record<string, boolean>)[];
305
+ alignment: string;
306
306
  fillRatio: number;
307
307
  }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
308
308
  $slots: {
@@ -73,8 +73,8 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
73
73
  };
74
74
  }>>, {
75
75
  title: string;
76
- description: string;
77
76
  status: "" | "error" | "success" | "wait" | "finish" | "process";
77
+ description: string;
78
78
  }, {}>, __VLS_Slots>;
79
79
  export default _default;
80
80
  type __VLS_WithSlots<T, S> = T & {
@@ -66,8 +66,8 @@ export declare const GmStep: import("../../../../utils").SFCWithInstall<{
66
66
  };
67
67
  }>>, {
68
68
  title: string;
69
- description: string;
70
69
  status: "" | "error" | "success" | "wait" | "finish" | "process";
70
+ description: string;
71
71
  }, true, {}, {}, {
72
72
  P: {};
73
73
  B: {};
@@ -110,8 +110,8 @@ export declare const GmStep: import("../../../../utils").SFCWithInstall<{
110
110
  elRef: import("vue").Ref<import("element-plus").StepInstance | undefined>;
111
111
  }, {}, {}, {}, {
112
112
  title: string;
113
- description: string;
114
113
  status: "" | "error" | "success" | "wait" | "finish" | "process";
114
+ description: string;
115
115
  }>;
116
116
  __isFragment?: undefined;
117
117
  __isTeleport?: undefined;
@@ -151,8 +151,8 @@ export declare const GmStep: import("../../../../utils").SFCWithInstall<{
151
151
  elRef: import("vue").Ref<import("element-plus").StepInstance | undefined>;
152
152
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
153
153
  title: string;
154
- description: string;
155
154
  status: "" | "error" | "success" | "wait" | "finish" | "process";
155
+ description: string;
156
156
  }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
157
157
  $slots: {
158
158
  icon?: ((props: {}) => any) | undefined;
@@ -14,7 +14,7 @@ import { isString, isMobile, isDingTalk } from '../../../../utils/src/is.mjs';
14
14
 
15
15
  const _hoisted_1 = { key: 0 };
16
16
  const _hoisted_2 = ["src"];
17
- const _hoisted_3 = { class: "gm-py-10" };
17
+ const _hoisted_3 = ["src"];
18
18
  const loginEnvKey = "VITE_GIIME_LOGIN_URL";
19
19
  var _sfc_main = /* @__PURE__ */ defineComponent({
20
20
  __name: "LoginDialog",
@@ -184,7 +184,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
184
184
  { key: 1 },
185
185
  [
186
186
  createCommentVNode(" \u5F02\u5E38\u72B6\u6001\uFF1A\u663E\u793A\u9519\u8BEF\u63D0\u793A "),
187
- createElementVNode("div", _hoisted_3, [
187
+ createElementVNode("div", {
188
+ class: "gm-py-10",
189
+ src: loginUrl.value
190
+ }, [
188
191
  createVNode(unref(ElResult), {
189
192
  icon: "warning",
190
193
  title: "\u767B\u5F55\u5F02\u5E38",
@@ -224,7 +227,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
224
227
  _: 1
225
228
  /* STABLE */
226
229
  })
227
- ])
230
+ ], 8, _hoisted_3)
228
231
  ],
229
232
  2112
230
233
  /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
@@ -1 +1 @@
1
- {"version":3,"file":"LoginDialog.vue2.mjs","sources":["../../../../../../../packages/components/src/business/loginDialog/LoginDialog.vue"],"sourcesContent":["<script lang=\"ts\">\nconst loginEnvKey = 'VITE_GIIME_LOGIN_URL'\n</script>\n<template>\n <div v-if=\"isSSRShowDialog\">\n <el-dialog v-model=\"loginStore.showLogin\" width=\"80%\" append-to-body>\n <!-- 正常登录状态:显示iframe -->\n <iframe v-if=\"loginStore.showLogin && !loginStore.isLoginBlocked\" class=\"gm-h-[600px] gm-w-full\" :src=\"loginUrl\" />\n <!-- 异常状态:显示错误提示 -->\n <div v-else-if=\"loginStore.isLoginBlocked\" class=\"gm-py-10\">\n <el-result icon=\"warning\" title=\"登录异常\" sub-title=\"短时间内多次登录失败,请稍后重试\">\n <template #extra>\n <el-button type=\"primary\" @click=\"handleRetryLogin\">重新登录</el-button>\n <el-button type=\"warning\" @click=\"handleClearCache\">清空缓存</el-button>\n <el-button @click=\"loginStore.showLogin = false\">关闭</el-button>\n </template>\n </el-result>\n </div>\n </el-dialog>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\n// import { isObject } from '@vue/shared';\nimport { ElButton, ElDialog, ElMessage, ElResult } from 'element-plus';\nimport Cookies from 'js-cookie';\n// import router from 'vue-router';\nimport { useLoginStore } from '@giime/hooks';\nimport { useGlobalConfig } from '@giime/hooks/base/useGlobalConfig';\nimport { isDingTalk, isMobile, isString } from '@giime/utils';\nimport { getDomain, urlJoin } from '@giime/utils/src/http/url';\nimport { getTenantType, isGiikin } from '@giime/utils/src/tenant';\nimport { envConfigs } from '@giime/utils/src/http/createModes';\nimport { loginDialogProps } from './loginDialog';\nimport { resetEnvMode } from '@giime/constants/key';\n\nconst props = defineProps(loginDialogProps);\nconst router = useGlobalConfig('router');\n\n// const router = useRouter();\nconst route = computed(() => (router.value ? router.value.currentRoute.value : undefined));\nconst loginStore = useLoginStore();\nconst loginUrl = ref('');\n\n\nconst importMetaEnv = useGlobalConfig('env');\nconst isSSRShowDialog = ref(importMetaEnv.value.SSR === false);\n\n/**\n * 获取登录URL\n * 优先级:环境变量 > resetEnvMode > 租户类型判断 > 默认值\n */\nlet originLoginUrl = '';\n// 1. 优先使用环境变量配置的 loginUrl\nif (isString(importMetaEnv.value[loginEnvKey])) {\n originLoginUrl = importMetaEnv.value[loginEnvKey];\n} else {\n // 2. 根据租户类型获取登录路径\n const loginPath = isGiikin() ? '/guard/sso/public/auth' : '/fe/basic/login';\n\n // 3. 根据 resetEnvMode 获取环境配置并拼接完整URL\n const resetMode = importMetaEnv.value[resetEnvMode];\n const hostname = window.location.hostname;\n // 获取域名对应的环境配置\n const findEnvConfig = Object.values(envConfigs).find(config => config.domain === hostname);\n if (resetMode && envConfigs[resetMode]) {\n originLoginUrl = urlJoin(envConfigs[resetMode].url, loginPath);\n } else if (findEnvConfig) {\n // 4. 根据域名获取环境配置并拼接完整URL\n originLoginUrl = urlJoin(findEnvConfig.url, loginPath);\n } else {\n // 5. 默认使用开发环境登录路径\n originLoginUrl = urlJoin(envConfigs.develop.url, loginPath);\n }\n}\nconst handleLogin = () => {\n const protocol = window.location.protocol;\n const host = window.location.host;\n const myPath = window.location.pathname;\n loginUrl.value = `${originLoginUrl}?_system=${props.system}`;\n if (route.value && props.needScanningRouteNames.includes(route.value?.name?.toString() ?? '')) {\n loginUrl.value += '&is_dashboard=1';\n }\n\n // 公司id\n const guard_company = Cookies.get('guard_company');\n if (guard_company) {\n loginUrl.value += `&companyId=${guard_company}`;\n }\n\n loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;\n\n // eslint-disable-next-line no-console\n console.log(loginUrl.value);\n if (isMobile() || isDingTalk()) {\n window.location.href = loginUrl.value;\n }\n};\n\n/** 重试登录:重置循环保护计数器并重新加载登录页 */\nconst handleRetryLogin = () => {\n loginStore.resetLoginBlock();\n handleLogin();\n};\n\n/** 清空缓存:清除 Cookies、localStorage 和 sessionStorage */\nconst handleClearCache = () => {\n // 清除所有 Cookies\n const cookies = document.cookie.split(';');\n const curDomain = getDomain();\n cookies.forEach(cookie => {\n const name = cookie.split('=')[0].trim();\n if (name) {\n // 尝试多种方式删除 cookie\n Cookies.remove(name);\n Cookies.remove(name, { domain: curDomain });\n Cookies.remove(name, { domain: `.${curDomain}` });\n }\n });\n\n // 提示操作成功\n ElMessage.success('清除cookie缓存成功');\n};\nwatch(\n () => loginStore.showLogin,\n value => {\n if (value) {\n handleLogin();\n }\n },\n);\n// 超过5分钟没扫码 会不能扫码 定时没登录的话3分钟刷新次\nconst reloadTimer = ref<number>();\nif (route.value) {\n watch(route, (newValue, oldValue) => {\n if (!oldValue || !newValue) {\n return;\n }\n if (oldValue.name && props.needScanningRouteNames.includes(oldValue.name.toString())) {\n window.clearInterval(reloadTimer.value);\n }\n if (newValue.name && props.needScanningRouteNames.includes(newValue.name.toString())) {\n reloadTimer.value = window.setInterval(\n () => {\n if (!loginStore.showLogin) {\n return;\n }\n // 登录超时后 3分钟刷新次页面\n window.location.reload();\n },\n 3 * 60 * 1000,\n );\n }\n });\n}\n\ninterface GiikinLogged {\n type: string;\n data: {\n token: string;\n userId: string;\n /**token 或者 loginSuccess 控制当前登录是否成功*/\n loginSuccess?: boolean;\n /**禁止写入cookie */\n disabledWrite?: boolean;\n disabledClose?: boolean;\n tokens: { key: string; value: string }[];\n };\n cookies?: string[];\n}\n\nonMounted(() => {\n isSSRShowDialog.value = true;\n if (loginStore.showLogin) {\n handleLogin();\n }\n // iframe事件监听\n window.addEventListener('message', async e => {\n // 刷新登陆状态\n if (e.data.type == 'giikin-Logged') {\n const data: GiikinLogged = e.data;\n // eslint-disable-next-line no-console\n console.log(e.data);\n const token = Cookies.get('token');\n // const isProduction = importMetaEnv.value.MODE === 'production' || importMetaEnv.value.MODE === 'giiktok.production';\n const isProduction = importMetaEnv.value.MODE.includes('production');\n if (\n // 测试环境 但是需要登陆的情况\n (!isProduction && data?.data?.token) ||\n // 正式环境 登录成功 但是服务器token设置失败\n (isProduction && !token && data?.data?.token)\n ) {\n // loginStore.userToken = data.data.token;\n loginStore.userId = data.data.userId;\n const now = new Date();\n let time = now.getTime();\n time += 8 * 60 * 60 * 1000; // 8 小时之后的时间(单位:毫秒)\n now.setTime(time);\n const curDomain = getDomain();\n // 不禁用 则写入cookie\n if (!data.data.disabledWrite) {\n // cookieMap\n if (data.cookies && Array.isArray(data.cookies)) {\n data.cookies.forEach((cookie: string) => {\n document.cookie = cookie;\n });\n }\n // 可能出现测试环境调正式,需要写入token\n Cookies.set('token', data.data.token, { expires: now, domain: isProduction ? curDomain : undefined });\n // 本地开发时 写入token\n if (importMetaEnv.value.DEV && data.data.tokens) {\n data.data.tokens.forEach((token: { key: string; value: string }) => {\n Cookies.set(token.key, token.value, { expires: now, domain: curDomain });\n });\n }\n\n if (!Cookies.get('sso_user_id') && data.data.userId) {\n Cookies.set('sso_user_id', data.data.userId, {\n expires: now,\n domain: isProduction ? curDomain : undefined,\n });\n }\n }\n }\n if (!data.data.disabledClose) {\n // 触发登录成功监听\n if (data?.data?.token || data?.data?.loginSuccess) {\n await loginStore.triggerLoginResult(true);\n }\n // ElMessage.success('登录成功,请关闭弹窗');\n loginStore.showLogin = false;\n if (route.value && props.needRealodRouteNames.includes(route.value.name?.toString() ?? '')) {\n window.location.reload();\n }\n }\n }\n });\n});\nonUnmounted(() => {\n window.clearInterval(reloadTimer.value);\n});\n</script>\n"],"names":["token"],"mappings":";;;;;;;;;;;;;;;;;AACA,MAAM,WAAA,GAAc,sBAAA;;;;;AAmCpB,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,MAAA,GAAS,gBAAgB,QAAQ,CAAA;AAGvC,IAAA,MAAM,KAAA,GAAQ,SAAS,MAAO,MAAA,CAAO,QAAQ,MAAA,CAAO,KAAA,CAAM,YAAA,CAAa,KAAA,GAAQ,KAAA,CAAU,CAAA;AACzF,IAAA,MAAM,aAAa,aAAA,EAAc;AACjC,IAAA,MAAM,QAAA,GAAW,IAAI,EAAE,CAAA;AAGvB,IAAA,MAAM,aAAA,GAAgB,gBAAgB,KAAK,CAAA;AAC3C,IAAA,MAAM,eAAA,GAAkB,GAAA,CAAI,aAAA,CAAc,KAAA,CAAM,QAAQ,KAAK,CAAA;AAM7D,IAAA,IAAI,cAAA,GAAiB,EAAA;AAErB,IAAA,IAAI,QAAA,CAAS,aAAA,CAAc,KAAA,CAAM,WAAW,CAAC,CAAA,EAAG;AAC9C,MAAA,cAAA,GAAiB,aAAA,CAAc,MAAM,WAAW,CAAA;AAAA,IAClD,CAAA,MAAO;AAEL,MAAA,MAAM,SAAA,GAAY,QAAA,EAAS,GAAI,wBAAA,GAA2B,iBAAA;AAG1D,MAAA,MAAM,SAAA,GAAY,aAAA,CAAc,KAAA,CAAM,YAAY,CAAA;AAClD,MAAA,MAAM,QAAA,GAAW,OAAO,QAAA,CAAS,QAAA;AAEjC,MAAA,MAAM,aAAA,GAAgB,OAAO,MAAA,CAAO,UAAU,EAAE,IAAA,CAAK,CAAA,MAAA,KAAU,MAAA,CAAO,MAAA,KAAW,QAAQ,CAAA;AACzF,MAAA,IAAI,SAAA,IAAa,UAAA,CAAW,SAAS,CAAA,EAAG;AACtC,QAAA,cAAA,GAAiB,OAAA,CAAQ,UAAA,CAAW,SAAS,CAAA,CAAE,KAAK,SAAS,CAAA;AAAA,MAC/D,WAAW,aAAA,EAAe;AAExB,QAAA,cAAA,GAAiB,OAAA,CAAQ,aAAA,CAAc,GAAA,EAAK,SAAS,CAAA;AAAA,MACvD,CAAA,MAAO;AAEL,QAAA,cAAA,GAAiB,OAAA,CAAQ,UAAA,CAAW,OAAA,CAAQ,GAAA,EAAK,SAAS,CAAA;AAAA,MAC5D;AAAA,IACF;AACA,IAAA,MAAM,cAAc,MAAM;AACxB,MAAA,MAAM,QAAA,GAAW,OAAO,QAAA,CAAS,QAAA;AACjC,MAAA,MAAM,IAAA,GAAO,OAAO,QAAA,CAAS,IAAA;AAC7B,MAAA,MAAM,MAAA,GAAS,OAAO,QAAA,CAAS,QAAA;AAC/B,MAAA,QAAA,CAAS,KAAA,GAAQ,CAAA,EAAG,cAAc,CAAA,SAAA,EAAY,MAAM,MAAM,CAAA,CAAA;AAC1D,MAAA,IAAI,KAAA,CAAM,KAAA,IAAS,KAAA,CAAM,sBAAA,CAAuB,QAAA,CAAS,KAAA,CAAM,KAAA,EAAO,IAAA,EAAM,QAAA,EAAS,IAAK,EAAE,CAAA,EAAG;AAC7F,QAAA,QAAA,CAAS,KAAA,IAAS,iBAAA;AAAA,MACpB;AAGA,MAAA,MAAM,aAAA,GAAgB,OAAA,CAAQ,GAAA,CAAI,eAAe,CAAA;AACjD,MAAA,IAAI,aAAA,EAAe;AACjB,QAAA,QAAA,CAAS,KAAA,IAAS,cAAc,aAAa,CAAA,CAAA;AAAA,MAC/C;AAEA,MAAA,QAAA,CAAS,KAAA,IAAS,IAAI,KAAA,CAAM,gBAAgB,IAAI,QAAQ,CAAA,EAAA,EAAK,IAAI,CAAA,EAAG,MAAM,CAAA,CAAA;AAG1E,MAAA,OAAA,CAAQ,GAAA,CAAI,SAAS,KAAK,CAAA;AAC1B,MAAA,IAAI,QAAA,EAAS,IAAK,UAAA,EAAW,EAAG;AAC9B,QAAA,MAAA,CAAO,QAAA,CAAS,OAAO,QAAA,CAAS,KAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAGA,IAAA,MAAM,mBAAmB,MAAM;AAC7B,MAAA,UAAA,CAAW,eAAA,EAAgB;AAC3B,MAAA,WAAA,EAAY;AAAA,IACd,CAAA;AAGA,IAAA,MAAM,mBAAmB,MAAM;AAE7B,MAAA,MAAM,OAAA,GAAU,QAAA,CAAS,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA;AACzC,MAAA,MAAM,YAAY,SAAA,EAAU;AAC5B,MAAA,OAAA,CAAQ,QAAQ,CAAA,MAAA,KAAU;AACxB,QAAA,MAAM,OAAO,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,EAAE,IAAA,EAAK;AACvC,QAAA,IAAI,IAAA,EAAM;AAER,UAAA,OAAA,CAAQ,OAAO,IAAI,CAAA;AACnB,UAAA,OAAA,CAAQ,MAAA,CAAO,IAAA,EAAM,EAAE,MAAA,EAAQ,WAAW,CAAA;AAC1C,UAAA,OAAA,CAAQ,OAAO,IAAA,EAAM,EAAE,QAAQ,CAAA,CAAA,EAAI,SAAS,IAAI,CAAA;AAAA,QAClD;AAAA,MACF,CAAC,CAAA;AAGD,MAAA,SAAA,CAAU,QAAQ,4CAAc,CAAA;AAAA,IAClC,CAAA;AACA,IAAA,KAAA;AAAA,MACE,MAAM,UAAA,CAAW,SAAA;AAAA,MACjB,CAAA,KAAA,KAAS;AACP,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,MACF;AAAA,KACF;AAEA,IAAA,MAAM,cAAc,GAAA,EAAY;AAChC,IAAA,IAAI,MAAM,KAAA,EAAO;AACf,MAAA,KAAA,CAAM,KAAA,EAAO,CAAC,QAAA,EAAU,QAAA,KAAa;AACnC,QAAA,IAAI,CAAC,QAAA,IAAY,CAAC,QAAA,EAAU;AAC1B,UAAA;AAAA,QACF;AACA,QAAA,IAAI,QAAA,CAAS,QAAQ,KAAA,CAAM,sBAAA,CAAuB,SAAS,QAAA,CAAS,IAAA,CAAK,QAAA,EAAU,CAAA,EAAG;AACpF,UAAA,MAAA,CAAO,aAAA,CAAc,YAAY,KAAK,CAAA;AAAA,QACxC;AACA,QAAA,IAAI,QAAA,CAAS,QAAQ,KAAA,CAAM,sBAAA,CAAuB,SAAS,QAAA,CAAS,IAAA,CAAK,QAAA,EAAU,CAAA,EAAG;AACpF,UAAA,WAAA,CAAY,QAAQ,MAAA,CAAO,WAAA;AAAA,YACzB,MAAM;AACJ,cAAA,IAAI,CAAC,WAAW,SAAA,EAAW;AACzB,gBAAA;AAAA,cACF;AAEA,cAAA,MAAA,CAAO,SAAS,MAAA,EAAO;AAAA,YACzB,CAAA;AAAA,YACA,IAAI,EAAA,GAAK;AAAA,WACX;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH;AAiBA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,eAAA,CAAgB,KAAA,GAAQ,IAAA;AACxB,MAAA,IAAI,WAAW,SAAA,EAAW;AACxB,QAAA,WAAA,EAAY;AAAA,MACd;AAEA,MAAA,MAAA,CAAO,gBAAA,CAAiB,SAAA,EAAW,OAAM,CAAA,KAAK;AAE5C,QAAA,IAAI,CAAA,CAAE,IAAA,CAAK,IAAA,IAAQ,eAAA,EAAiB;AAClC,UAAA,MAAM,OAAqB,CAAA,CAAE,IAAA;AAE7B,UAAA,OAAA,CAAQ,GAAA,CAAI,EAAE,IAAI,CAAA;AAClB,UAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA;AAEjC,UAAA,MAAM,YAAA,GAAe,aAAA,CAAc,KAAA,CAAM,IAAA,CAAK,SAAS,YAAY,CAAA;AACnE,UAAA;AAAA;AAAA,YAEG,CAAC,YAAA,IAAgB,IAAA,EAAM,IAAA,EAAM,KAAA;AAAA,YAE7B,YAAA,IAAgB,CAAC,KAAA,IAAS,IAAA,EAAM,IAAA,EAAM;AAAA,YACvC;AAEA,YAAA,UAAA,CAAW,MAAA,GAAS,KAAK,IAAA,CAAK,MAAA;AAC9B,YAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AACrB,YAAA,IAAI,IAAA,GAAO,IAAI,OAAA,EAAQ;AACvB,YAAA,IAAA,IAAQ,CAAA,GAAI,KAAK,EAAA,GAAK,GAAA;AACtB,YAAA,GAAA,CAAI,QAAQ,IAAI,CAAA;AAChB,YAAA,MAAM,YAAY,SAAA,EAAU;AAE5B,YAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,aAAA,EAAe;AAE5B,cAAA,IAAI,KAAK,OAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA,EAAG;AAC/C,gBAAA,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,KAAmB;AACvC,kBAAA,QAAA,CAAS,MAAA,GAAS,MAAA;AAAA,gBACpB,CAAC,CAAA;AAAA,cACH;AAEA,cAAA,OAAA,CAAQ,GAAA,CAAI,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,KAAA,EAAO,EAAE,OAAA,EAAS,GAAA,EAAK,MAAA,EAAQ,YAAA,GAAe,SAAA,GAAY,KAAA,CAAA,EAAW,CAAA;AAEpG,cAAA,IAAI,aAAA,CAAc,KAAA,CAAM,GAAA,IAAO,IAAA,CAAK,KAAK,MAAA,EAAQ;AAC/C,gBAAA,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,CAACA,MAAAA,KAA0C;AAClE,kBAAA,OAAA,CAAQ,GAAA,CAAIA,MAAAA,CAAM,GAAA,EAAKA,MAAAA,CAAM,KAAA,EAAO,EAAE,OAAA,EAAS,GAAA,EAAK,MAAA,EAAQ,SAAA,EAAW,CAAA;AAAA,gBACzE,CAAC,CAAA;AAAA,cACH;AAEA,cAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,aAAa,CAAA,IAAK,IAAA,CAAK,KAAK,MAAA,EAAQ;AACnD,gBAAA,OAAA,CAAQ,GAAA,CAAI,aAAA,EAAe,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAAA,kBAC3C,OAAA,EAAS,GAAA;AAAA,kBACT,MAAA,EAAQ,eAAe,SAAA,GAAY,KAAA;AAAA,iBACpC,CAAA;AAAA,cACH;AAAA,YACF;AAAA,UACF;AACA,UAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,aAAA,EAAe;AAE5B,YAAA,IAAI,IAAA,EAAM,IAAA,EAAM,KAAA,IAAS,IAAA,EAAM,MAAM,YAAA,EAAc;AACjD,cAAA,MAAM,UAAA,CAAW,mBAAmB,IAAI,CAAA;AAAA,YAC1C;AAEA,YAAA,UAAA,CAAW,SAAA,GAAY,KAAA;AACvB,YAAA,IAAI,KAAA,CAAM,KAAA,IAAS,KAAA,CAAM,oBAAA,CAAqB,QAAA,CAAS,KAAA,CAAM,KAAA,CAAM,IAAA,EAAM,QAAA,EAAS,IAAK,EAAE,CAAA,EAAG;AAC1F,cAAA,MAAA,CAAO,SAAS,MAAA,EAAO;AAAA,YACzB;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AACD,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,MAAA,CAAO,aAAA,CAAc,YAAY,KAAK,CAAA;AAAA,IACxC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"LoginDialog.vue2.mjs","sources":["../../../../../../../packages/components/src/business/loginDialog/LoginDialog.vue"],"sourcesContent":["<script lang=\"ts\">\nconst loginEnvKey = 'VITE_GIIME_LOGIN_URL'\n</script>\n<template>\n <div v-if=\"isSSRShowDialog\">\n <el-dialog v-model=\"loginStore.showLogin\" width=\"80%\" append-to-body>\n <!-- 正常登录状态:显示iframe -->\n <iframe v-if=\"loginStore.showLogin && !loginStore.isLoginBlocked\" class=\"gm-h-[600px] gm-w-full\" :src=\"loginUrl\" />\n <!-- 异常状态:显示错误提示 -->\n <div v-else-if=\"loginStore.isLoginBlocked\" class=\"gm-py-10\" :src=\"loginUrl\">\n <el-result icon=\"warning\" title=\"登录异常\" sub-title=\"短时间内多次登录失败,请稍后重试\">\n <template #extra>\n <el-button type=\"primary\" @click=\"handleRetryLogin\">重新登录</el-button>\n <el-button type=\"warning\" @click=\"handleClearCache\">清空缓存</el-button>\n <el-button @click=\"loginStore.showLogin = false\">关闭</el-button>\n </template>\n </el-result>\n </div>\n </el-dialog>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\n// import { isObject } from '@vue/shared';\nimport { ElButton, ElDialog, ElMessage, ElResult } from 'element-plus';\nimport Cookies from 'js-cookie';\n// import router from 'vue-router';\nimport { useLoginStore } from '@giime/hooks';\nimport { useGlobalConfig } from '@giime/hooks/base/useGlobalConfig';\nimport { isDingTalk, isMobile, isString } from '@giime/utils';\nimport { getDomain, urlJoin } from '@giime/utils/src/http/url';\nimport { getTenantType, isGiikin } from '@giime/utils/src/tenant';\nimport { envConfigs } from '@giime/utils/src/http/createModes';\nimport { loginDialogProps } from './loginDialog';\nimport { resetEnvMode } from '@giime/constants/key';\n\nconst props = defineProps(loginDialogProps);\nconst router = useGlobalConfig('router');\n\n// const router = useRouter();\nconst route = computed(() => (router.value ? router.value.currentRoute.value : undefined));\nconst loginStore = useLoginStore();\nconst loginUrl = ref('');\n\n\nconst importMetaEnv = useGlobalConfig('env');\nconst isSSRShowDialog = ref(importMetaEnv.value.SSR === false);\n\n/**\n * 获取登录URL\n * 优先级:环境变量 > resetEnvMode > 租户类型判断 > 默认值\n */\nlet originLoginUrl = '';\n// 1. 优先使用环境变量配置的 loginUrl\nif (isString(importMetaEnv.value[loginEnvKey])) {\n originLoginUrl = importMetaEnv.value[loginEnvKey];\n} else {\n // 2. 根据租户类型获取登录路径\n const loginPath = isGiikin() ? '/guard/sso/public/auth' : '/fe/basic/login';\n\n // 3. 根据 resetEnvMode 获取环境配置并拼接完整URL\n const resetMode = importMetaEnv.value[resetEnvMode];\n const hostname = window.location.hostname;\n // 获取域名对应的环境配置\n const findEnvConfig = Object.values(envConfigs).find(config => config.domain === hostname);\n if (resetMode && envConfigs[resetMode]) {\n originLoginUrl = urlJoin(envConfigs[resetMode].url, loginPath);\n } else if (findEnvConfig) {\n // 4. 根据域名获取环境配置并拼接完整URL\n originLoginUrl = urlJoin(findEnvConfig.url, loginPath);\n } else {\n // 5. 默认使用开发环境登录路径\n originLoginUrl = urlJoin(envConfigs.develop.url, loginPath);\n }\n}\nconst handleLogin = () => {\n const protocol = window.location.protocol;\n const host = window.location.host;\n const myPath = window.location.pathname;\n loginUrl.value = `${originLoginUrl}?_system=${props.system}`;\n if (route.value && props.needScanningRouteNames.includes(route.value?.name?.toString() ?? '')) {\n loginUrl.value += '&is_dashboard=1';\n }\n\n // 公司id\n const guard_company = Cookies.get('guard_company');\n if (guard_company) {\n loginUrl.value += `&companyId=${guard_company}`;\n }\n\n loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;\n\n // eslint-disable-next-line no-console\n console.log(loginUrl.value);\n if (isMobile() || isDingTalk()) {\n window.location.href = loginUrl.value;\n }\n};\n\n/** 重试登录:重置循环保护计数器并重新加载登录页 */\nconst handleRetryLogin = () => {\n loginStore.resetLoginBlock();\n handleLogin();\n};\n\n/** 清空缓存:清除 Cookies、localStorage 和 sessionStorage */\nconst handleClearCache = () => {\n // 清除所有 Cookies\n const cookies = document.cookie.split(';');\n const curDomain = getDomain();\n cookies.forEach(cookie => {\n const name = cookie.split('=')[0].trim();\n if (name) {\n // 尝试多种方式删除 cookie\n Cookies.remove(name);\n Cookies.remove(name, { domain: curDomain });\n Cookies.remove(name, { domain: `.${curDomain}` });\n }\n });\n\n // 提示操作成功\n ElMessage.success('清除cookie缓存成功');\n};\nwatch(\n () => loginStore.showLogin,\n value => {\n if (value) {\n handleLogin();\n }\n },\n);\n// 超过5分钟没扫码 会不能扫码 定时没登录的话3分钟刷新次\nconst reloadTimer = ref<number>();\nif (route.value) {\n watch(route, (newValue, oldValue) => {\n if (!oldValue || !newValue) {\n return;\n }\n if (oldValue.name && props.needScanningRouteNames.includes(oldValue.name.toString())) {\n window.clearInterval(reloadTimer.value);\n }\n if (newValue.name && props.needScanningRouteNames.includes(newValue.name.toString())) {\n reloadTimer.value = window.setInterval(\n () => {\n if (!loginStore.showLogin) {\n return;\n }\n // 登录超时后 3分钟刷新次页面\n window.location.reload();\n },\n 3 * 60 * 1000,\n );\n }\n });\n}\n\ninterface GiikinLogged {\n type: string;\n data: {\n token: string;\n userId: string;\n /**token 或者 loginSuccess 控制当前登录是否成功*/\n loginSuccess?: boolean;\n /**禁止写入cookie */\n disabledWrite?: boolean;\n disabledClose?: boolean;\n tokens: { key: string; value: string }[];\n };\n cookies?: string[];\n}\n\nonMounted(() => {\n isSSRShowDialog.value = true;\n if (loginStore.showLogin) {\n handleLogin();\n }\n // iframe事件监听\n window.addEventListener('message', async e => {\n // 刷新登陆状态\n if (e.data.type == 'giikin-Logged') {\n const data: GiikinLogged = e.data;\n // eslint-disable-next-line no-console\n console.log(e.data);\n const token = Cookies.get('token');\n // const isProduction = importMetaEnv.value.MODE === 'production' || importMetaEnv.value.MODE === 'giiktok.production';\n const isProduction = importMetaEnv.value.MODE.includes('production');\n if (\n // 测试环境 但是需要登陆的情况\n (!isProduction && data?.data?.token) ||\n // 正式环境 登录成功 但是服务器token设置失败\n (isProduction && !token && data?.data?.token)\n ) {\n // loginStore.userToken = data.data.token;\n loginStore.userId = data.data.userId;\n const now = new Date();\n let time = now.getTime();\n time += 8 * 60 * 60 * 1000; // 8 小时之后的时间(单位:毫秒)\n now.setTime(time);\n const curDomain = getDomain();\n // 不禁用 则写入cookie\n if (!data.data.disabledWrite) {\n // cookieMap\n if (data.cookies && Array.isArray(data.cookies)) {\n data.cookies.forEach((cookie: string) => {\n document.cookie = cookie;\n });\n }\n // 可能出现测试环境调正式,需要写入token\n Cookies.set('token', data.data.token, { expires: now, domain: isProduction ? curDomain : undefined });\n // 本地开发时 写入token\n if (importMetaEnv.value.DEV && data.data.tokens) {\n data.data.tokens.forEach((token: { key: string; value: string }) => {\n Cookies.set(token.key, token.value, { expires: now, domain: curDomain });\n });\n }\n\n if (!Cookies.get('sso_user_id') && data.data.userId) {\n Cookies.set('sso_user_id', data.data.userId, {\n expires: now,\n domain: isProduction ? curDomain : undefined,\n });\n }\n }\n }\n if (!data.data.disabledClose) {\n // 触发登录成功监听\n if (data?.data?.token || data?.data?.loginSuccess) {\n await loginStore.triggerLoginResult(true);\n }\n // ElMessage.success('登录成功,请关闭弹窗');\n loginStore.showLogin = false;\n if (route.value && props.needRealodRouteNames.includes(route.value.name?.toString() ?? '')) {\n window.location.reload();\n }\n }\n }\n });\n});\nonUnmounted(() => {\n window.clearInterval(reloadTimer.value);\n});\n</script>\n"],"names":["token"],"mappings":"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"}
@@ -20,19 +20,22 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
20
20
  },
21
21
  setup(props) {
22
22
  const mergePropsList = computed(() => {
23
- return props.propsList.map((it) => {
24
- const findProp = props.defaultPropsList.find((item) => item.prop === it.prop);
25
- if (findProp) {
26
- return findProp;
27
- }
28
- return it;
23
+ const matchedItems = props.propsList.filter((propsItem) => {
24
+ return props.defaultPropsList.some((defaultItem) => defaultItem.prop === propsItem.prop);
25
+ });
26
+ const additionalItems = props.defaultPropsList.filter((defaultItem) => {
27
+ return !props.propsList.some((propsItem) => propsItem.prop === defaultItem.prop);
29
28
  });
29
+ return [...matchedItems, ...additionalItems];
30
30
  });
31
31
  const processVNode = (vnode) => {
32
32
  if (!vnode) return null;
33
33
  if (vnode.type?.name === "GmTableColumnPro") {
34
+ if (vnode.props?.type === "edit") {
35
+ return null;
36
+ }
34
37
  const propsConfig = mergePropsList.value.find((it) => it.prop === vnode.props?.prop);
35
- if (propsConfig && (!propsConfig.isShow || propsConfig.type === "edit")) {
38
+ if (propsConfig && !propsConfig.isShow) {
36
39
  return null;
37
40
  }
38
41
  if (propsConfig) {
@@ -91,8 +94,7 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
91
94
  processedProps.add(propsConfig.prop);
92
95
  }
93
96
  });
94
- const remainingColumns = topLevelColumns.filter((col) => col?.props?.prop && !processedProps.has(col.props.prop));
95
- return [...multiLevelHeaders, ...orderedColumns, ...remainingColumns].map((vnode) => vnode ? h(vnode) : null).filter(Boolean);
97
+ return [...multiLevelHeaders, ...orderedColumns].map((vnode) => vnode ? h(vnode) : null).filter(Boolean);
96
98
  });
97
99
  return () => render.value;
98
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tableCustom/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode } from 'vue';\nimport type { TableColumnProProps } from '../tablePro/tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.propsList.map(it => {\n const findProp = props.defaultPropsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示或类型是 edit,跳过渲染\n if (propsConfig && (!propsConfig.isShow || propsConfig.type === 'edit')) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n\n // 先处理所有 vnode\n const processedVnodes = vnodeArray.map(vnode => processVNode(vnode)).filter(Boolean);\n\n // 分离顶层列和多级表头\n const topLevelColumns: any[] = [];\n const multiLevelHeaders: any[] = [];\n\n processedVnodes.forEach(vnode => {\n // 如果是 GmTableColumnPro(顶层列),收集起来\n if (vnode?.type?.name === 'GmTableColumnPro') {\n topLevelColumns.push(vnode);\n } else {\n // 其他情况(多级表头等),保持原样\n multiLevelHeaders.push(vnode);\n }\n });\n\n // 按照 mergePropsList 的顺序来排序顶层列\n const orderedColumns: any[] = [];\n const processedProps = new Set<string>();\n\n mergePropsList.value.forEach(propsConfig => {\n // 如果配置中标记为不显示或类型是 edit,跳过渲染\n if (!propsConfig.isShow || propsConfig.type === 'edit') {\n return;\n }\n\n // 查找对应的顶层列\n const matchedColumn = topLevelColumns.find(col => col?.props?.prop === propsConfig.prop);\n\n if (matchedColumn) {\n orderedColumns.push(matchedColumn);\n processedProps.add(propsConfig.prop);\n }\n });\n\n // 对于不在 mergePropsList 中的顶层列,也保留(可能是新增的列)\n const remainingColumns = topLevelColumns.filter(col => col?.props?.prop && !processedProps.has(col.props.prop));\n\n // 合并:多级表头 + 按顺序的顶层列 + 剩余的顶层列\n return [...multiLevelHeaders, ...orderedColumns, ...remainingColumns].map(vnode => (vnode ? h(vnode) : null)).filter(Boolean);\n });\n\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","mergePropsList","computed","map","it","findProp","find","item","prop","processVNode","name","propsConfig","value","isShow","newProps","width","label","fixed","cloneVNode","children","newChildren","originalDefault","slotProps","childVnodes","isArray","filter","Boolean","render","vnodeArray","processedVnodes","topLevelColumns","multiLevelHeaders","forEach","push","orderedColumns","processedProps","Set","matchedColumn","col","add","remainingColumns","has","h"],"mappings":"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"}
1
+ {"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tableCustom/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode } from 'vue';\nimport type { TableColumnProProps } from '../tablePro/tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList,优先循环propsList,存在时返回propsList内的对象,同时将defaultPropsList内多出的对象插入数组后面 */\n const mergePropsList = computed(() => {\n // 获取 propsList 中在 defaultPropsList 中也存在的项(使用 propsList 中的对象)\n const matchedItems = props.propsList.filter(propsItem => {\n return props.defaultPropsList.some(defaultItem => defaultItem.prop === propsItem.prop);\n });\n\n // 获取 defaultPropsList 中存在但 propsList 中不存在的项\n const additionalItems = props.defaultPropsList.filter(defaultItem => {\n return !props.propsList.some(propsItem => propsItem.prop === defaultItem.prop);\n });\n\n // 合并:propsList 中的项在前,defaultPropsList 中多出的项在后\n return [...matchedItems, ...additionalItems];\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n // type=\"edit\" 的列由 TablePro 的 gmEdit 列统一处理,这里跳过\n // 直接检查 vnode.props.type,避免因 prop 相同导致的误匹配\n if (vnode.props?.type === 'edit') {\n return null;\n }\n\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示,跳过渲染\n if (propsConfig && !propsConfig.isShow) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n\n // 先处理所有 vnode\n const processedVnodes = vnodeArray.map(vnode => processVNode(vnode)).filter(Boolean);\n\n // 分离顶层列和多级表头\n const topLevelColumns: any[] = [];\n const multiLevelHeaders: any[] = [];\n\n processedVnodes.forEach(vnode => {\n // 如果是 GmTableColumnPro(顶层列),收集起来\n if (vnode?.type?.name === 'GmTableColumnPro') {\n topLevelColumns.push(vnode);\n } else {\n // 其他情况(多级表头等),保持原样\n multiLevelHeaders.push(vnode);\n }\n });\n\n // 按照 mergePropsList 的顺序来排序顶层列\n const orderedColumns: any[] = [];\n const processedProps = new Set<string>();\n\n mergePropsList.value.forEach(propsConfig => {\n // 如果配置中标记为不显示或类型是 edit,跳过渲染\n if (!propsConfig.isShow || propsConfig.type === 'edit') {\n return;\n }\n\n // 查找对应的顶层列\n const matchedColumn = topLevelColumns.find(col => col?.props?.prop === propsConfig.prop);\n\n if (matchedColumn) {\n orderedColumns.push(matchedColumn);\n processedProps.add(propsConfig.prop);\n }\n });\n\n // 合并:多级表头 + 按顺序的顶层列 + 剩余的顶层列\n return [...multiLevelHeaders, ...orderedColumns].map(vnode => (vnode ? h(vnode) : null)).filter(Boolean);\n });\n\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","mergePropsList","computed","matchedItems","filter","propsItem","some","defaultItem","prop","additionalItems","processVNode","name","propsConfig","value","find","it","isShow","newProps","width","label","fixed","cloneVNode","children","newChildren","originalDefault","slotProps","childVnodes","isArray","map","Boolean","render","vnodeArray","processedVnodes","topLevelColumns","multiLevelHeaders","forEach","push","orderedColumns","processedProps","Set","matchedColumn","col","add","h"],"mappings":"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"}