giime 1.0.1 → 1.0.2-snapshot.1
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 +103 -103
- package/es/api/utils/createModes.mjs +1 -1
- package/es/api/utils/index.mjs +1 -1
- package/es/api/utils/resetAxiosBaseUrl.mjs +4 -3
- package/es/api/utils/resetAxiosBaseUrl.mjs.map +1 -1
- package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs +4 -3
- package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
- package/es/components/src/composite/searchForm/SearchForm.vue.mjs +1 -1
- package/es/components/src/composite/searchForm/SearchForm.vue2.mjs +23 -3
- package/es/components/src/composite/searchForm/SearchForm.vue2.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/index.css +103 -103
- package/es/utils/src/http/createModes.d.ts +10 -2
- package/es/utils/src/http/createModes.mjs +22 -3
- package/es/utils/src/http/createModes.mjs.map +1 -1
- package/es/utils/src/tenant.mjs +4 -3
- package/es/utils/src/tenant.mjs.map +1 -1
- package/lib/api/utils/createModes.js +1 -0
- package/lib/api/utils/createModes.js.map +1 -1
- package/lib/api/utils/index.js +1 -0
- package/lib/api/utils/index.js.map +1 -1
- package/lib/api/utils/resetAxiosBaseUrl.js +3 -2
- package/lib/api/utils/resetAxiosBaseUrl.js.map +1 -1
- package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +3 -2
- package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
- package/lib/components/src/composite/searchForm/SearchForm.vue.js +1 -1
- package/lib/components/src/composite/searchForm/SearchForm.vue2.js +22 -2
- package/lib/components/src/composite/searchForm/SearchForm.vue2.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/index.css +103 -103
- package/lib/utils/src/http/createModes.d.ts +10 -2
- package/lib/utils/src/http/createModes.js +22 -2
- package/lib/utils/src/http/createModes.js.map +1 -1
- package/lib/utils/src/tenant.js +3 -2
- package/lib/utils/src/tenant.js.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -887,11 +887,71 @@ video {
|
|
|
887
887
|
.gm-group:hover .group-hover\:gm-block {
|
|
888
888
|
display: block;
|
|
889
889
|
}
|
|
890
|
+
.gm-flex-center[data-v-c17deec9] {
|
|
891
|
+
align-items: center;
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
.gm-flex-justify-between[data-v-c17deec9] {
|
|
895
|
+
justify-content: space-between;
|
|
896
|
+
}
|
|
897
|
+
[data-v-195b27e4] .gmSearchForm .el-form-item {
|
|
898
|
+
margin-right: 0;
|
|
899
|
+
margin-bottom: 4px;
|
|
900
|
+
}
|
|
901
|
+
[data-v-3f2c8504] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
902
|
+
border-right: none;
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
[data-v-3f2c8504] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
906
|
+
height: 0;
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
[data-v-3f2c8504] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
910
|
+
height: 0;
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
[data-v-3f2c8504] .gmTableNoBorder.el-table--border:after {
|
|
914
|
+
height: 0;
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
[data-v-3f2c8504] .gmTableNoBorder.el-table--border:before {
|
|
918
|
+
height: 0;
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
[data-v-3f2c8504] .gmTableNoBorder .el-table__border-left-patch {
|
|
922
|
+
height: 0;
|
|
923
|
+
}
|
|
924
|
+
.gm-number-interval-single[data-v-4e6f4d6f] {
|
|
925
|
+
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
926
|
+
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
927
|
+
background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
|
|
928
|
+
}
|
|
929
|
+
.gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
|
|
930
|
+
box-shadow: none;
|
|
931
|
+
background: none;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
.gm-number-interval-close[data-v-4e6f4d6f] {
|
|
935
|
+
display: none;
|
|
936
|
+
color: var(--el-input-icon-color, var(--el-text-color-placeholder));
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
.gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
|
|
940
|
+
display: flex;
|
|
941
|
+
}
|
|
890
942
|
|
|
891
943
|
.gm-range-number .el-form-item[data-v-1ae16d96] {
|
|
892
944
|
margin: 0;
|
|
893
945
|
}
|
|
894
946
|
|
|
947
|
+
.gm-upload-pro-preview-dialog[data-v-fbc23b01] [data-v-fbc23b01] .el-dialog__body {
|
|
948
|
+
padding: 0;
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
.gm-upload-pro-file-picture-card[data-v-fbc23b01] [data-v-fbc23b01] .el-upload-list__item, .gm-upload-pro-file-picture-card[data-v-fbc23b01] [data-v-fbc23b01] .el-upload--picture-card {
|
|
952
|
+
width: auto;
|
|
953
|
+
height: auto;
|
|
954
|
+
}
|
|
895
955
|
.gm-upload-pro-file {
|
|
896
956
|
line-height: normal;
|
|
897
957
|
}
|
|
@@ -930,48 +990,36 @@ video {
|
|
|
930
990
|
.gm-upload-pro-file-disabled .el-upload-list__item-status-label {
|
|
931
991
|
display: none;
|
|
932
992
|
}
|
|
933
|
-
.gm-upload-
|
|
993
|
+
.gm-upload-preview-dialog[data-v-c615121c] [data-v-c615121c] .el-dialog__body {
|
|
934
994
|
padding: 0;
|
|
935
995
|
}
|
|
936
996
|
|
|
937
|
-
.gm-upload-
|
|
997
|
+
.gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload-list__item, .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload--picture-card {
|
|
938
998
|
width: auto;
|
|
939
999
|
height: auto;
|
|
940
1000
|
}
|
|
941
|
-
|
|
942
|
-
|
|
1001
|
+
[data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
1002
|
+
border-right: none;
|
|
943
1003
|
}
|
|
944
1004
|
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
stroke-dasharray: 90, 150;
|
|
948
|
-
stroke-dashoffset: 0;
|
|
949
|
-
stroke: var(--el-color-primary);
|
|
950
|
-
stroke-linecap: round;
|
|
1005
|
+
[data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
1006
|
+
height: 0;
|
|
951
1007
|
}
|
|
952
1008
|
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
transform: rotate(360deg);
|
|
956
|
-
}
|
|
1009
|
+
[data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
1010
|
+
height: 0;
|
|
957
1011
|
}
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
stroke-dashoffset: 0;
|
|
962
|
-
}
|
|
963
|
-
50% {
|
|
964
|
-
stroke-dasharray: 90, 150;
|
|
965
|
-
stroke-dashoffset: -40px;
|
|
966
|
-
}
|
|
967
|
-
100% {
|
|
968
|
-
stroke-dasharray: 90, 150;
|
|
969
|
-
stroke-dashoffset: -120px;
|
|
970
|
-
}
|
|
1012
|
+
|
|
1013
|
+
[data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
|
|
1014
|
+
height: 0;
|
|
971
1015
|
}
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
1016
|
+
|
|
1017
|
+
[data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
|
|
1018
|
+
height: 0;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
[data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
|
|
1022
|
+
height: 0;
|
|
975
1023
|
}
|
|
976
1024
|
.gm-upload-file {
|
|
977
1025
|
line-height: normal;
|
|
@@ -1009,84 +1057,36 @@ video {
|
|
|
1009
1057
|
.gm-upload-file-disabled .el-upload-list__item-status-label {
|
|
1010
1058
|
display: none;
|
|
1011
1059
|
}
|
|
1012
|
-
.
|
|
1013
|
-
|
|
1014
|
-
}
|
|
1015
|
-
|
|
1016
|
-
.gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload-list__item, .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload--picture-card {
|
|
1017
|
-
width: auto;
|
|
1018
|
-
height: auto;
|
|
1019
|
-
}
|
|
1020
|
-
.gm-flex-center[data-v-c17deec9] {
|
|
1021
|
-
align-items: center;
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
|
-
.gm-flex-justify-between[data-v-c17deec9] {
|
|
1025
|
-
justify-content: space-between;
|
|
1026
|
-
}
|
|
1027
|
-
.gm-number-interval-single[data-v-4e6f4d6f] {
|
|
1028
|
-
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
1029
|
-
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
1030
|
-
background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
|
|
1031
|
-
}
|
|
1032
|
-
.gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
|
|
1033
|
-
box-shadow: none;
|
|
1034
|
-
background: none;
|
|
1035
|
-
}
|
|
1036
|
-
|
|
1037
|
-
.gm-number-interval-close[data-v-4e6f4d6f] {
|
|
1038
|
-
display: none;
|
|
1039
|
-
color: var(--el-input-icon-color, var(--el-text-color-placeholder));
|
|
1040
|
-
}
|
|
1041
|
-
|
|
1042
|
-
.gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
|
|
1043
|
-
display: flex;
|
|
1044
|
-
}
|
|
1045
|
-
[data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
1046
|
-
border-right: none;
|
|
1047
|
-
}
|
|
1048
|
-
|
|
1049
|
-
[data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
1050
|
-
height: 0;
|
|
1051
|
-
}
|
|
1052
|
-
|
|
1053
|
-
[data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
1054
|
-
height: 0;
|
|
1055
|
-
}
|
|
1056
|
-
|
|
1057
|
-
[data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
|
|
1058
|
-
height: 0;
|
|
1059
|
-
}
|
|
1060
|
-
|
|
1061
|
-
[data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
|
|
1062
|
-
height: 0;
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
|
-
[data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
|
|
1066
|
-
height: 0;
|
|
1067
|
-
}
|
|
1068
|
-
[data-v-3f2c8504] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
1069
|
-
border-right: none;
|
|
1070
|
-
}
|
|
1071
|
-
|
|
1072
|
-
[data-v-3f2c8504] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
1073
|
-
height: 0;
|
|
1074
|
-
}
|
|
1075
|
-
|
|
1076
|
-
[data-v-3f2c8504] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
1077
|
-
height: 0;
|
|
1060
|
+
.circular[data-v-d7b04fae] {
|
|
1061
|
+
animation: loading-rotate-d7b04fae 2s linear infinite;
|
|
1078
1062
|
}
|
|
1079
1063
|
|
|
1080
|
-
[data-v-
|
|
1081
|
-
|
|
1064
|
+
.path[data-v-d7b04fae] {
|
|
1065
|
+
animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
|
|
1066
|
+
stroke-dasharray: 90, 150;
|
|
1067
|
+
stroke-dashoffset: 0;
|
|
1068
|
+
stroke: var(--el-color-primary);
|
|
1069
|
+
stroke-linecap: round;
|
|
1082
1070
|
}
|
|
1083
1071
|
|
|
1084
|
-
|
|
1085
|
-
|
|
1072
|
+
@keyframes loading-rotate-d7b04fae {
|
|
1073
|
+
to {
|
|
1074
|
+
transform: rotate(360deg);
|
|
1075
|
+
}
|
|
1086
1076
|
}
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1077
|
+
@keyframes loading-dash-d7b04fae {
|
|
1078
|
+
0% {
|
|
1079
|
+
stroke-dasharray: 1, 200;
|
|
1080
|
+
stroke-dashoffset: 0;
|
|
1081
|
+
}
|
|
1082
|
+
50% {
|
|
1083
|
+
stroke-dasharray: 90, 150;
|
|
1084
|
+
stroke-dashoffset: -40px;
|
|
1085
|
+
}
|
|
1086
|
+
100% {
|
|
1087
|
+
stroke-dasharray: 90, 150;
|
|
1088
|
+
stroke-dashoffset: -120px;
|
|
1089
|
+
}
|
|
1090
1090
|
}
|
|
1091
1091
|
@charset "UTF-8";
|
|
1092
1092
|
.custom-operate-drawer .el-drawer__header {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { createModes, envConfigs, getEnvConfig } from '../../utils/src/http/createModes.mjs';
|
|
1
|
+
export { createModes, envConfigs, getEnvConfig, resolveEnvConfig } from '../../utils/src/http/createModes.mjs';
|
|
2
2
|
//# sourceMappingURL=createModes.mjs.map
|
package/es/api/utils/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { resetAxiosBaseURL, resetBaseURLInterceptorsRequest } from './resetAxiosBaseUrl.mjs';
|
|
2
2
|
import './createModes.mjs';
|
|
3
3
|
export { createGiimeService, resetGiimeServiceFactory, setGiimeServiceFactory } from './createGiimeService.mjs';
|
|
4
|
-
export { createModes, envConfigs, getEnvConfig } from '../../utils/src/http/createModes.mjs';
|
|
4
|
+
export { createModes, envConfigs, getEnvConfig, resolveEnvConfig } from '../../utils/src/http/createModes.mjs';
|
|
5
5
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resetEnvMode } from '../../constants/key.mjs';
|
|
2
2
|
import { useGlobalConfig } from '../../hooks/base/useGlobalConfig/index.mjs';
|
|
3
3
|
import { isString } from '../../utils/src/is.mjs';
|
|
4
|
-
import {
|
|
4
|
+
import { resolveEnvConfig } from '../../utils/src/http/createModes.mjs';
|
|
5
5
|
import { urlJoin } from '../../utils/src/http/url.mjs';
|
|
6
6
|
|
|
7
7
|
const resetAxiosBaseURL = (options) => {
|
|
@@ -17,8 +17,9 @@ const resetAxiosBaseURL = (options) => {
|
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
19
|
const resetMode = importMetaEnv.value[resetEnvMode];
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const envConfig = resolveEnvConfig(resetMode);
|
|
21
|
+
if (envConfig) {
|
|
22
|
+
config.baseURL = urlJoin(envConfig.url, serviceType);
|
|
22
23
|
return;
|
|
23
24
|
}
|
|
24
25
|
config.baseURL = serviceType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resetAxiosBaseUrl.mjs","sources":["../../../../../packages/api/utils/resetAxiosBaseUrl.ts"],"sourcesContent":["import { resetEnvMode } from '@giime/constants/key';\nimport { useGlobalConfig } from '@giime/hooks/base/useGlobalConfig';\nimport { isString } from '@giime/utils/src/is';\nimport {
|
|
1
|
+
{"version":3,"file":"resetAxiosBaseUrl.mjs","sources":["../../../../../packages/api/utils/resetAxiosBaseUrl.ts"],"sourcesContent":["import { resetEnvMode } from '@giime/constants/key';\nimport { useGlobalConfig } from '@giime/hooks/base/useGlobalConfig';\nimport { isString } from '@giime/utils/src/is';\nimport { resolveEnvConfig } from '@giime/utils/src/http/createModes';\nimport { urlJoin } from '@giime/utils/src/http/url';\nimport type { AxiosInstance, InternalAxiosRequestConfig } from 'axios';\n\nexport interface ResetAxiosBaseURLOpions {\n config: InternalAxiosRequestConfig;\n baseUrlEnvKey: string;\n serviceType: string;\n}\n\n/**\n * 重置请求的baseURL\n * 优先级:环境变量 > resetEnvMode(租户类型) > 默认serviceType\n * @param options\n */\nexport const resetAxiosBaseURL = (options: ResetAxiosBaseURLOpions) => {\n const { config, baseUrlEnvKey, serviceType } = options;\n if (!config.baseURL) {\n const importMetaEnv = useGlobalConfig('env');\n\n // 1. 优先使用环境变量配置的 baseURL\n if (isString(importMetaEnv.value[baseUrlEnvKey])) {\n config.baseURL = importMetaEnv.value[baseUrlEnvKey];\n return;\n }\n // 2. 本地开发 直接使用 giimeDevProxyFn 生成的代理配置\n if (importMetaEnv.value.DEV) {\n config.baseURL = serviceType;\n return;\n }\n\n // 3. 根据 resetEnvMode 获取环境配置(支持预定义 key 或直填完整域名)\n const resetMode = importMetaEnv.value[resetEnvMode];\n const envConfig = resolveEnvConfig(resetMode);\n if (envConfig) {\n config.baseURL = urlJoin(envConfig.url, serviceType);\n return;\n }\n\n // 4. 默认使用 serviceType\n config.baseURL = serviceType;\n }\n};\n\n/**\n * 重置请求的baseURL 请求拦截器\n */\nexport const resetBaseURLInterceptorsRequest = (service: AxiosInstance, options: Omit<ResetAxiosBaseURLOpions, 'config'>) => {\n // 请求拦截器\n service.interceptors.request.use(\n config => {\n resetAxiosBaseURL({ ...options, config });\n return config;\n },\n error => {\n console.error('请求错误', error); // for debug\n return Promise.reject(error);\n },\n );\n};\n"],"names":[],"mappings":";;;;;;AAkBO,MAAM,iBAAA,GAAoB,CAAC,OAAA,KAAqC;AACrE,EAAA,MAAM,EAAE,MAAA,EAAQ,aAAA,EAAe,WAAA,EAAY,GAAI,OAAA;AAC/C,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,MAAM,aAAA,GAAgB,gBAAgB,KAAK,CAAA;AAG3C,IAAA,IAAI,QAAA,CAAS,aAAA,CAAc,KAAA,CAAM,aAAa,CAAC,CAAA,EAAG;AAChD,MAAA,MAAA,CAAO,OAAA,GAAU,aAAA,CAAc,KAAA,CAAM,aAAa,CAAA;AAClD,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,aAAA,CAAc,MAAM,GAAA,EAAK;AAC3B,MAAA,MAAA,CAAO,OAAA,GAAU,WAAA;AACjB,MAAA;AAAA,IACF;AAGA,IAAA,MAAM,SAAA,GAAY,aAAA,CAAc,KAAA,CAAM,YAAY,CAAA;AAClD,IAAA,MAAM,SAAA,GAAY,iBAAiB,SAAS,CAAA;AAC5C,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,MAAA,CAAO,OAAA,GAAU,OAAA,CAAQ,SAAA,CAAU,GAAA,EAAK,WAAW,CAAA;AACnD,MAAA;AAAA,IACF;AAGA,IAAA,MAAA,CAAO,OAAA,GAAU,WAAA;AAAA,EACnB;AACF;AAKO,MAAM,+BAAA,GAAkC,CAAC,OAAA,EAAwB,OAAA,KAAqD;AAE3H,EAAA,OAAA,CAAQ,aAAa,OAAA,CAAQ,GAAA;AAAA,IAC3B,CAAA,MAAA,KAAU;AACR,MAAA,iBAAA,CAAkB,EAAE,GAAG,OAAA,EAAS,MAAA,EAAQ,CAAA;AACxC,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAA,KAAA,KAAS;AACP,MAAA,OAAA,CAAQ,KAAA,CAAM,4BAAQ,KAAK,CAAA;AAC3B,MAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,IAC7B;AAAA,GACF;AACF;;;;"}
|
|
@@ -6,7 +6,7 @@ import { useGlobalConfig } from '../../../../hooks/base/useGlobalConfig/index.mj
|
|
|
6
6
|
import '../../../../utils/index.mjs';
|
|
7
7
|
import { urlJoin, getDomain } from '../../../../utils/src/http/url.mjs';
|
|
8
8
|
import { isGiikin } from '../../../../utils/src/tenant.mjs';
|
|
9
|
-
import { envConfigs } from '../../../../utils/src/http/createModes.mjs';
|
|
9
|
+
import { envConfigs, resolveEnvConfig } from '../../../../utils/src/http/createModes.mjs';
|
|
10
10
|
import { loginDialogProps } from './loginDialog.mjs';
|
|
11
11
|
import { resetEnvMode } from '../../../../constants/key.mjs';
|
|
12
12
|
import { useLoginStore } from '../../../../hooks/store/useLogin/index.mjs';
|
|
@@ -35,8 +35,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
35
35
|
const resetMode = importMetaEnv.value[resetEnvMode];
|
|
36
36
|
const hostname = typeof window !== "undefined" ? window.location.hostname : "";
|
|
37
37
|
const findEnvConfig = Object.values(envConfigs).find((config) => config.domain === hostname);
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
const resetEnvConfig = resolveEnvConfig(resetMode);
|
|
39
|
+
if (resetEnvConfig) {
|
|
40
|
+
originLoginUrl = urlJoin(resetEnvConfig.url, loginPath);
|
|
40
41
|
} else if (findEnvConfig) {
|
|
41
42
|
originLoginUrl = urlJoin(findEnvConfig.url, loginPath);
|
|
42
43
|
} else if (importMetaEnv.value.DEV) {
|
|
@@ -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=\"480px\" align-center append-to-body>\n <!-- 正常登录状态:显示iframe -->\n <iframe v-if=\"loginStore.showLogin && !loginStore.isLoginBlocked\" class=\"gm-h-[650px] 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, unref, 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// const router = useRouter();\nconst route = computed(() => (router.value ? unref(router.value.currentRoute) : 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 = typeof window !== 'undefined' ? 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 if (importMetaEnv.value.DEV) {\n // 5. 开发环境使用开发环境登录路径\n originLoginUrl = urlJoin(envConfigs.develop.url, loginPath);\n } else {\n // 6. 其他环境只使用登录路径\n originLoginUrl = 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}&isPopUp=true`;\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=\"480px\" align-center append-to-body>\n <!-- 正常登录状态:显示iframe -->\n <iframe v-if=\"loginStore.showLogin && !loginStore.isLoginBlocked\" class=\"gm-h-[650px] 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, unref, 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, resolveEnvConfig } 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// const router = useRouter();\nconst route = computed(() => (router.value ? unref(router.value.currentRoute) : 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 = typeof window !== 'undefined' ? window.location.hostname : '';\n // 获取域名对应的环境配置\n const findEnvConfig = Object.values(envConfigs).find(config => config.domain === hostname);\n const resetEnvConfig = resolveEnvConfig(resetMode);\n if (resetEnvConfig) {\n originLoginUrl = urlJoin(resetEnvConfig.url, loginPath);\n } else if (findEnvConfig) {\n // 4. 根据域名获取环境配置并拼接完整URL\n originLoginUrl = urlJoin(findEnvConfig.url, loginPath);\n } else if (importMetaEnv.value.DEV) {\n // 5. 开发环境使用开发环境登录路径\n originLoginUrl = urlJoin(envConfigs.develop.url, loginPath);\n } else {\n // 6. 其他环境只使用登录路径\n originLoginUrl = 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}&isPopUp=true`;\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;AAEvC,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,MAAO,MAAA,CAAO,KAAA,GAAQ,MAAM,MAAA,CAAO,KAAA,CAAM,YAAY,CAAA,GAAI,KAAA,CAAU,CAAA;AAC1F,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,WAAW,OAAO,MAAA,KAAW,WAAA,GAAc,MAAA,CAAO,SAAS,QAAA,GAAW,EAAA;AAE5E,MAAA,MAAM,aAAA,GAAgB,OAAO,MAAA,CAAO,UAAU,EAAE,IAAA,CAAK,CAAA,MAAA,KAAU,MAAA,CAAO,MAAA,KAAW,QAAQ,CAAA;AACzF,MAAA,MAAM,cAAA,GAAiB,iBAAiB,SAAS,CAAA;AACjD,MAAA,IAAI,cAAA,EAAgB;AAClB,QAAA,cAAA,GAAiB,OAAA,CAAQ,cAAA,CAAe,GAAA,EAAK,SAAS,CAAA;AAAA,MACxD,WAAW,aAAA,EAAe;AAExB,QAAA,cAAA,GAAiB,OAAA,CAAQ,aAAA,CAAc,GAAA,EAAK,SAAS,CAAA;AAAA,MACvD,CAAA,MAAA,IAAW,aAAA,CAAc,KAAA,CAAM,GAAA,EAAK;AAElC,QAAA,cAAA,GAAiB,OAAA,CAAQ,UAAA,CAAW,OAAA,CAAQ,GAAA,EAAK,SAAS,CAAA;AAAA,MAC5D,CAAA,MAAO;AAEL,QAAA,cAAA,GAAiB,SAAA;AAAA,MACnB;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,aAAA,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,7 +2,7 @@ import _sfc_main from './SearchForm.vue2.mjs';
|
|
|
2
2
|
import './SearchForm.vue3.mjs';
|
|
3
3
|
import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
|
|
4
4
|
|
|
5
|
-
var SearchForm = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
var SearchForm = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-195b27e4"]]);
|
|
6
6
|
|
|
7
7
|
export { SearchForm as default };
|
|
8
8
|
//# sourceMappingURL=SearchForm.vue.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, inject, useModel, provide, ref, computed, nextTick, resolveComponent, createElementBlock, openBlock, withDirectives, createVNode, withCtx, createElementVNode, normalizeClass, normalizeStyle, renderSlot, Fragment, renderList, createBlock, resolveDynamicComponent, mergeProps, unref, createTextVNode, toDisplayString, vShow, mergeModels } from 'vue';
|
|
1
|
+
import { defineComponent, inject, useModel, provide, ref, watch, onMounted, onBeforeUnmount, computed, nextTick, resolveComponent, createElementBlock, openBlock, withDirectives, createVNode, withCtx, createElementVNode, normalizeClass, normalizeStyle, renderSlot, Fragment, renderList, createBlock, resolveDynamicComponent, mergeProps, unref, createTextVNode, toDisplayString, vShow, mergeModels } from 'vue';
|
|
2
2
|
import { useElementSize } from '@vueuse/core';
|
|
3
3
|
import { TableCtxKey } from '../../../../constants/table.mjs';
|
|
4
4
|
import { Search, Refresh, ArrowDown } from '@element-plus/icons-vue';
|
|
@@ -27,8 +27,28 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
27
27
|
const emit = __emit;
|
|
28
28
|
const queryDivRef = ref();
|
|
29
29
|
const visibilityMarkRef = ref();
|
|
30
|
-
const { width:
|
|
31
|
-
const
|
|
30
|
+
const { width: observedWidth, height: observedHeight } = useElementSize(queryDivRef);
|
|
31
|
+
const queryDivWidth = ref(0);
|
|
32
|
+
const queryDivHeight = ref(0);
|
|
33
|
+
let rafId = 0;
|
|
34
|
+
watch([observedWidth, observedHeight], ([w, h]) => {
|
|
35
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
36
|
+
rafId = requestAnimationFrame(() => {
|
|
37
|
+
queryDivWidth.value = w;
|
|
38
|
+
queryDivHeight.value = h;
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
onMounted(() => {
|
|
42
|
+
const el = queryDivRef.value;
|
|
43
|
+
if (el) {
|
|
44
|
+
queryDivWidth.value = el.clientWidth;
|
|
45
|
+
queryDivHeight.value = el.clientHeight;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
onBeforeUnmount(() => {
|
|
49
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
50
|
+
});
|
|
51
|
+
const colsCount = computed(() => Math.max(1, Math.floor(queryDivWidth.value / 269)));
|
|
32
52
|
const showMore = ref(props.defaultShowMore);
|
|
33
53
|
const notShowShowMore = computed(() => showMore.value === true && queryDivHeight.value <= 70);
|
|
34
54
|
const searchButtonItemStyle = computed(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchForm.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/searchForm/SearchForm.vue"],"sourcesContent":["<script lang=\"ts\">\nconst itemGap = 8\n</script>\n<template>\n <div ref=\"queryDivRef\" class=\"gm-mb-5\">\n <gm-form v-show=\"showSearch\" ref=\"queryRef\" :model=\"queryParams\" :inline=\"true\" class=\"gmSearchForm\">\n <div :class=\"showMore ? '' : 'gm-h-[36px] gm-overflow-hidden'\">\n <div class=\"gm-relative gm-grid gm-w-full\" :style=\"{ gridTemplateColumns: `repeat(${colsCount}, minmax(0, 1fr))`, gap: itemGap + 'px' }\">\n <template v-for=\"(item, index) in optionsList\" :key=\"index\">\n <component :is=\"item.component\" v-bind=\"item.props\" v-model=\"queryParams[item.props.prop]\" />\n </template>\n <slot />\n <gm-form-item v-show=\"!props.hideActionButtons\" :style=\"searchButtonItemStyle\">\n <div class=\"gm-flex gm-w-full\" :class=\"notShowShowMore ? '' : 'gm-justify-end'\">\n <gm-button type=\"primary\" :icon=\"Search\" class=\"\" @click=\"handleQuery\">搜索</gm-button>\n <gm-button :icon=\"Refresh\" @click=\"resetQuery\">重置</gm-button>\n <gm-button v-show=\"!notShowShowMore\" type=\"primary\" text @click=\"handleShowMoreChange\">\n {{ showMore ? '缩起' : '展开' }} <gm-icon class=\"el-icon--right\" :class=\"showMore ? 'gm-rotate-180' : ''\"><ArrowDown /></gm-icon>\n </gm-button>\n </div>\n </gm-form-item>\n <div ref=\"visibilityMarkRef\" class=\"gm-absolute gm-bottom-3 gm-right-0 -gm-z-10 gm-h-1 gm-w-1\" />\n </div>\n </div>\n </gm-form>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, inject, nextTick, provide, ref } from 'vue';\nimport { useElementSize } from '@vueuse/core';\nimport { TableCtxKey } from '@giime/constants/table';\nimport { ArrowDown, Refresh, Search } from '@element-plus/icons-vue';\nimport { searchFormEmits, searchFormItemList, searchFormProps } from './searchForm';\nimport { queryParamsKey, searchFormHandleQueryKey } from './constants';\nimport type { CSSProperties } from 'vue';\nimport type { FormInstance } from '../../base/form';\ndefineOptions({\n name: 'GmSearchForm',\n});\nconst tableCtx = inject(TableCtxKey, {});\n\nconst showSearch = defineModel<boolean>('showSearch', { default: true });\n\nconst queryParams = defineModel<Record<string, any>>('queryParams', { required: true });\n\nprovide(queryParamsKey, queryParams);\n\nconst props = defineProps(searchFormProps);\nconst emit = defineEmits(searchFormEmits);\n\nconst queryDivRef = ref<HTMLDivElement>();\nconst visibilityMarkRef = ref<HTMLDivElement>();\n// const markIsVisibility = useElementVisibility(visibilityMarkRef);\n\nconst { width:
|
|
1
|
+
{"version":3,"file":"SearchForm.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/searchForm/SearchForm.vue"],"sourcesContent":["<script lang=\"ts\">\nconst itemGap = 8\n</script>\n<template>\n <div ref=\"queryDivRef\" class=\"gm-mb-5\">\n <gm-form v-show=\"showSearch\" ref=\"queryRef\" :model=\"queryParams\" :inline=\"true\" class=\"gmSearchForm\">\n <div :class=\"showMore ? '' : 'gm-h-[36px] gm-overflow-hidden'\">\n <div class=\"gm-relative gm-grid gm-w-full\" :style=\"{ gridTemplateColumns: `repeat(${colsCount}, minmax(0, 1fr))`, gap: itemGap + 'px' }\">\n <template v-for=\"(item, index) in optionsList\" :key=\"index\">\n <component :is=\"item.component\" v-bind=\"item.props\" v-model=\"queryParams[item.props.prop]\" />\n </template>\n <slot />\n <gm-form-item v-show=\"!props.hideActionButtons\" :style=\"searchButtonItemStyle\">\n <div class=\"gm-flex gm-w-full\" :class=\"notShowShowMore ? '' : 'gm-justify-end'\">\n <gm-button type=\"primary\" :icon=\"Search\" class=\"\" @click=\"handleQuery\">搜索</gm-button>\n <gm-button :icon=\"Refresh\" @click=\"resetQuery\">重置</gm-button>\n <gm-button v-show=\"!notShowShowMore\" type=\"primary\" text @click=\"handleShowMoreChange\">\n {{ showMore ? '缩起' : '展开' }} <gm-icon class=\"el-icon--right\" :class=\"showMore ? 'gm-rotate-180' : ''\"><ArrowDown /></gm-icon>\n </gm-button>\n </div>\n </gm-form-item>\n <div ref=\"visibilityMarkRef\" class=\"gm-absolute gm-bottom-3 gm-right-0 -gm-z-10 gm-h-1 gm-w-1\" />\n </div>\n </div>\n </gm-form>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, inject, nextTick, onBeforeUnmount, onMounted, provide, ref, watch } from 'vue';\nimport { useElementSize } from '@vueuse/core';\nimport { TableCtxKey } from '@giime/constants/table';\nimport { ArrowDown, Refresh, Search } from '@element-plus/icons-vue';\nimport { searchFormEmits, searchFormItemList, searchFormProps } from './searchForm';\nimport { queryParamsKey, searchFormHandleQueryKey } from './constants';\nimport type { CSSProperties } from 'vue';\nimport type { FormInstance } from '../../base/form';\ndefineOptions({\n name: 'GmSearchForm',\n});\nconst tableCtx = inject(TableCtxKey, {});\n\nconst showSearch = defineModel<boolean>('showSearch', { default: true });\n\nconst queryParams = defineModel<Record<string, any>>('queryParams', { required: true });\n\nprovide(queryParamsKey, queryParams);\n\nconst props = defineProps(searchFormProps);\nconst emit = defineEmits(searchFormEmits);\n\nconst queryDivRef = ref<HTMLDivElement>();\nconst visibilityMarkRef = ref<HTMLDivElement>();\n// const markIsVisibility = useElementVisibility(visibilityMarkRef);\n\nconst { width: observedWidth, height: observedHeight } = useElementSize(queryDivRef);\n// 用 rAF 把宽高的写入推迟一帧,避免在 ResizeObserver 回调内同步触发重排\n//(改 grid 列数 → 元素高度变化 → 再次触发 observer),\n// 从而消除 \"ResizeObserver loop completed with undelivered notifications\" 告警\nconst queryDivWidth = ref(0);\nconst queryDivHeight = ref(0);\nlet rafId = 0;\nwatch([observedWidth, observedHeight], ([w, h]) => {\n if (rafId) cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(() => {\n queryDivWidth.value = w;\n queryDivHeight.value = h;\n });\n});\n// 首帧同步量一次真实宽高,保证首次渲染就是正确列数,避免“先单列再归位”的闪烁\nonMounted(() => {\n const el = queryDivRef.value;\n if (el) {\n queryDivWidth.value = el.clientWidth;\n queryDivHeight.value = el.clientHeight;\n }\n});\nonBeforeUnmount(() => {\n if (rafId) cancelAnimationFrame(rafId);\n});\n// 列个数,至少 1 列,避免 repeat(0) 非法值导致额外重排\nconst colsCount = computed(() => Math.max(1, Math.floor(queryDivWidth.value / 269)));\nconst showMore = ref(props.defaultShowMore);\n// 当 showMore展开 且高度为60时,不显示展开按钮\nconst notShowShowMore = computed(() => showMore.value === true && queryDivHeight.value <= 70);\n\n/**搜索重置按钮组样式 */\nconst searchButtonItemStyle = computed<CSSProperties>(() => {\n if (notShowShowMore.value) {\n return {};\n }\n return {\n gridColumn: colsCount.value,\n gridRow: showMore.value ? undefined : 1,\n };\n});\nconst handleShowMoreChange = async () => {\n showMore.value = !showMore.value;\n // 手动触发 scroll 事件\n const scrollEvent = new Event('resize');\n await nextTick();\n // 手动触发事件\n window.dispatchEvent(scrollEvent);\n};\n\n// 通过json渲染组件\nconst optionsList = computed(() => {\n return props.options.map(it => {\n const findComponent = searchFormItemList.find(item => item.type === it.type);\n if (findComponent) {\n it.component = findComponent.component;\n }\n return it;\n });\n});\n\nconst queryRef = ref<FormInstance>();\n// 上下文添加queryRef\ntableCtx.queryRef = queryRef;\nconst handleQuery = (...args: any[]) => {\n emit('handleQuery', ...args);\n tableCtx?.tableRef?.value?.scrollTo({ top: 0, behavior: 'smooth' });\n tableCtx.tableV2Ref?.value?.scrollTo({ scrollLeft: 0, scrollTop: 0 });\n};\nprovide(searchFormHandleQueryKey, handleQuery);\n\nconst resetQuery = () => {\n queryRef.value?.resetFields();\n emit('resetQuery');\n tableCtx?.tableRef?.value?.scrollTo({ top: 0, behavior: 'smooth' });\n tableCtx.tableV2Ref?.value?.scrollTo({ scrollLeft: 0, scrollTop: 0 });\n};\n\ndefineExpose({\n // queryRef,\n handleQuery,\n resetQuery,\n});\n</script>\n<style lang=\"scss\" scoped>\n:deep(.gmSearchForm .el-form-item) {\n margin-right: 0;\n margin-bottom: 4px;\n}\n</style>\n"],"names":["_useModel"],"mappings":"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"}
|
package/es/giime/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "1.0.1";
|
|
1
|
+
export declare const version = "1.0.2-snapshot.1";
|
package/es/giime/version.mjs
CHANGED
package/es/giime/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '1.0.1';\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
|
|
1
|
+
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '1.0.2-snapshot.1';\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
|