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.
- package/dist/index.css +75 -75
- package/es/components/src/base/configProvider/ConfigProvider.vue.d.ts +1 -1
- package/es/components/src/base/configProvider/index.d.ts +3 -3
- package/es/components/src/base/image/Image.vue.d.ts +1 -1
- package/es/components/src/base/image/index.d.ts +2 -2
- package/es/components/src/base/imageViewer/ImageViewer.vue.d.ts +1 -1
- package/es/components/src/base/imageViewer/index.d.ts +1 -1
- package/es/components/src/base/progress/Progress.vue.d.ts +1 -1
- package/es/components/src/base/progress/index.d.ts +3 -3
- package/es/components/src/base/space/Space.vue.d.ts +2 -2
- package/es/components/src/base/space/index.d.ts +6 -6
- package/es/components/src/base/step/Step.vue.d.ts +1 -1
- package/es/components/src/base/step/index.d.ts +3 -3
- package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs +6 -3
- package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
- package/es/components/src/composite/tableCustom/TableColumnVNodeRenderer.mjs +11 -9
- package/es/components/src/composite/tableCustom/TableColumnVNodeRenderer.mjs.map +1 -1
- package/es/components/src/composite/tableCustom/TableCustom.vue.mjs +1 -1
- package/es/components/src/composite/tableCustom/TableCustom.vue2.mjs +1 -1
- package/es/components/src/composite/tableCustom/TableCustom.vue2.mjs.map +1 -1
- package/es/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.mjs +7 -1
- package/es/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.mjs.map +1 -1
- package/es/giime/index.mjs +1 -0
- package/es/giime/index.mjs.map +1 -1
- package/es/giime/version.d.ts +1 -1
- package/es/giime/version.mjs +1 -1
- package/es/giime/version.mjs.map +1 -1
- package/es/hooks/base/useDownload/index.d.ts +3 -0
- package/es/hooks/base/useDownload/index.mjs.map +1 -1
- package/es/hooks/store/common/useLangList/index.d.ts +1 -1
- package/es/hooks/store/useLineList/index.d.ts +1 -1
- package/es/index.css +75 -75
- package/es/utils/index.d.ts +1 -0
- package/es/utils/index.mjs +1 -0
- package/es/utils/index.mjs.map +1 -1
- package/es/utils/src/clarity/index.d.ts +67 -0
- package/es/utils/src/clarity/index.mjs +93 -0
- package/es/utils/src/clarity/index.mjs.map +1 -0
- package/lib/components/src/base/configProvider/ConfigProvider.vue.d.ts +1 -1
- package/lib/components/src/base/configProvider/index.d.ts +3 -3
- package/lib/components/src/base/image/Image.vue.d.ts +1 -1
- package/lib/components/src/base/image/index.d.ts +2 -2
- package/lib/components/src/base/imageViewer/ImageViewer.vue.d.ts +1 -1
- package/lib/components/src/base/imageViewer/index.d.ts +1 -1
- package/lib/components/src/base/progress/Progress.vue.d.ts +1 -1
- package/lib/components/src/base/progress/index.d.ts +3 -3
- package/lib/components/src/base/space/Space.vue.d.ts +2 -2
- package/lib/components/src/base/space/index.d.ts +6 -6
- package/lib/components/src/base/step/Step.vue.d.ts +1 -1
- package/lib/components/src/base/step/index.d.ts +3 -3
- package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +6 -3
- package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
- package/lib/components/src/composite/tableCustom/TableColumnVNodeRenderer.js +11 -9
- package/lib/components/src/composite/tableCustom/TableColumnVNodeRenderer.js.map +1 -1
- package/lib/components/src/composite/tableCustom/TableCustom.vue.js +1 -1
- package/lib/components/src/composite/tableCustom/TableCustom.vue2.js +1 -1
- package/lib/components/src/composite/tableCustom/TableCustom.vue2.js.map +1 -1
- package/lib/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.js +7 -1
- package/lib/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.js.map +1 -1
- package/lib/giime/index.js +375 -373
- package/lib/giime/index.js.map +1 -1
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/lib/hooks/base/useDownload/index.d.ts +3 -0
- package/lib/hooks/base/useDownload/index.js.map +1 -1
- package/lib/hooks/store/common/useLangList/index.d.ts +1 -1
- package/lib/hooks/store/useLineList/index.d.ts +1 -1
- package/lib/index.css +75 -75
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +2 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/src/clarity/index.d.ts +67 -0
- package/lib/utils/src/clarity/index.js +95 -0
- package/lib/utils/src/clarity/index.js.map +1 -0
- 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 =
|
|
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",
|
|
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":"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"}
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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 &&
|
|
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
|
-
|
|
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
|
|
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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"}
|