giime 1.0.0 → 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.
Files changed (40) hide show
  1. package/dist/index.css +113 -113
  2. package/es/api/utils/createModes.mjs +1 -1
  3. package/es/api/utils/index.mjs +1 -1
  4. package/es/api/utils/resetAxiosBaseUrl.mjs +4 -3
  5. package/es/api/utils/resetAxiosBaseUrl.mjs.map +1 -1
  6. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs +8 -6
  7. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
  8. package/es/components/src/composite/searchForm/SearchForm.vue.mjs +1 -1
  9. package/es/components/src/composite/searchForm/SearchForm.vue2.mjs +23 -3
  10. package/es/components/src/composite/searchForm/SearchForm.vue2.mjs.map +1 -1
  11. package/es/giime/version.d.ts +1 -1
  12. package/es/giime/version.mjs +1 -1
  13. package/es/giime/version.mjs.map +1 -1
  14. package/es/index.css +113 -113
  15. package/es/utils/src/http/createModes.d.ts +10 -2
  16. package/es/utils/src/http/createModes.mjs +22 -3
  17. package/es/utils/src/http/createModes.mjs.map +1 -1
  18. package/es/utils/src/tenant.mjs +4 -3
  19. package/es/utils/src/tenant.mjs.map +1 -1
  20. package/lib/api/utils/createModes.js +1 -0
  21. package/lib/api/utils/createModes.js.map +1 -1
  22. package/lib/api/utils/index.js +1 -0
  23. package/lib/api/utils/index.js.map +1 -1
  24. package/lib/api/utils/resetAxiosBaseUrl.js +3 -2
  25. package/lib/api/utils/resetAxiosBaseUrl.js.map +1 -1
  26. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +7 -5
  27. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
  28. package/lib/components/src/composite/searchForm/SearchForm.vue.js +1 -1
  29. package/lib/components/src/composite/searchForm/SearchForm.vue2.js +22 -2
  30. package/lib/components/src/composite/searchForm/SearchForm.vue2.js.map +1 -1
  31. package/lib/giime/version.d.ts +1 -1
  32. package/lib/giime/version.js +1 -1
  33. package/lib/giime/version.js.map +1 -1
  34. package/lib/index.css +113 -113
  35. package/lib/utils/src/http/createModes.d.ts +10 -2
  36. package/lib/utils/src/http/createModes.js +22 -2
  37. package/lib/utils/src/http/createModes.js.map +1 -1
  38. package/lib/utils/src/tenant.js +3 -2
  39. package/lib/utils/src/tenant.js.map +1 -1
  40. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -603,8 +603,8 @@ video {
603
603
  .gm-h-\[36px\] {
604
604
  height: 36px;
605
605
  }
606
- .gm-h-\[600px\] {
607
- height: 600px;
606
+ .gm-h-\[650px\] {
607
+ height: 650px;
608
608
  }
609
609
  .gm-h-full {
610
610
  height: 100%;
@@ -894,36 +894,50 @@ video {
894
894
  .gm-flex-justify-between[data-v-c17deec9] {
895
895
  justify-content: space-between;
896
896
  }
897
- .circular[data-v-d7b04fae] {
898
- animation: loading-rotate-d7b04fae 2s linear infinite;
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;
899
903
  }
900
904
 
901
- .path[data-v-d7b04fae] {
902
- animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
903
- stroke-dasharray: 90, 150;
904
- stroke-dashoffset: 0;
905
- stroke: var(--el-color-primary);
906
- stroke-linecap: round;
905
+ [data-v-3f2c8504] .gmTableNoBorder .el-table__inner-wrapper:before {
906
+ height: 0;
907
907
  }
908
908
 
909
- @keyframes loading-rotate-d7b04fae {
910
- to {
911
- transform: rotate(360deg);
912
- }
909
+ [data-v-3f2c8504] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
910
+ height: 0;
913
911
  }
914
- @keyframes loading-dash-d7b04fae {
915
- 0% {
916
- stroke-dasharray: 1, 200;
917
- stroke-dashoffset: 0;
918
- }
919
- 50% {
920
- stroke-dasharray: 90, 150;
921
- stroke-dashoffset: -40px;
922
- }
923
- 100% {
924
- stroke-dasharray: 90, 150;
925
- stroke-dashoffset: -120px;
926
- }
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;
927
941
  }
928
942
 
929
943
  .gm-range-number .el-form-item[data-v-1ae16d96] {
@@ -976,27 +990,13 @@ video {
976
990
  .gm-upload-pro-file-disabled .el-upload-list__item-status-label {
977
991
  display: none;
978
992
  }
979
- .gm-number-interval-single[data-v-4e6f4d6f] {
980
- border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
981
- box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
982
- background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
983
- }
984
- .gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
985
- box-shadow: none;
986
- background: none;
987
- }
988
-
989
- .gm-number-interval-close[data-v-4e6f4d6f] {
990
- display: none;
991
- color: var(--el-input-icon-color, var(--el-text-color-placeholder));
993
+ .gm-upload-preview-dialog[data-v-c615121c] [data-v-c615121c] .el-dialog__body {
994
+ padding: 0;
992
995
  }
993
996
 
994
- .gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
995
- display: flex;
996
- }
997
- [data-v-79615afd] .gmSearchForm .el-form-item {
998
- margin-right: 0;
999
- margin-bottom: 4px;
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 {
998
+ width: auto;
999
+ height: auto;
1000
1000
  }
1001
1001
  [data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
1002
1002
  border-right: none;
@@ -1021,15 +1021,73 @@ video {
1021
1021
  [data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
1022
1022
  height: 0;
1023
1023
  }
1024
+ .gm-upload-file {
1025
+ line-height: normal;
1026
+ }
1027
+ .gm-upload-file li > .el-checkbox {
1028
+ position: absolute;
1029
+ left: 10px;
1030
+ top: 0;
1031
+ z-index: 9;
1032
+ }
1033
+ .gm-upload-file .el-upload-list--picture-card {
1034
+ gap: 10px;
1035
+ }
1036
+ .gm-upload-file .el-upload-list__item {
1037
+ margin: 0;
1038
+ border: none;
1039
+ }
1040
+ .gm-upload-file .el-upload-list__item-file-name {
1041
+ line-height: normal;
1042
+ }
1043
+ .gm-upload-file .el-upload-dragger {
1044
+ padding: 0;
1045
+ border: none;
1046
+ width: 100%;
1047
+ height: 100%;
1048
+ display: flex;
1049
+ }
1050
+ .gm-upload-file .el-upload--picture-card {
1051
+ border: none;
1052
+ }
1024
1053
 
1025
- .pagination-container[data-v-47d35e7b] {
1026
- background: #fff;
1027
- padding-top: 12px;
1054
+ .gm-upload-file-disabled .el-upload--picture-card {
1055
+ display: none;
1028
1056
  }
1029
- .pagination-container.hidden[data-v-47d35e7b] {
1057
+ .gm-upload-file-disabled .el-upload-list__item-status-label {
1030
1058
  display: none;
1031
1059
  }
1060
+ .circular[data-v-d7b04fae] {
1061
+ animation: loading-rotate-d7b04fae 2s linear infinite;
1062
+ }
1063
+
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;
1070
+ }
1032
1071
 
1072
+ @keyframes loading-rotate-d7b04fae {
1073
+ to {
1074
+ transform: rotate(360deg);
1075
+ }
1076
+ }
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
+ }
1033
1091
  @charset "UTF-8";
1034
1092
  .custom-operate-drawer .el-drawer__header {
1035
1093
  padding: 10px 15px;
@@ -1086,29 +1144,15 @@ video {
1086
1144
  border-radius: 10px;
1087
1145
  background: #eee;
1088
1146
  }
1089
- [data-v-3f2c8504] .gmTableNoBorder .el-table__body .el-table__cell {
1090
- border-right: none;
1091
- }
1092
-
1093
- [data-v-3f2c8504] .gmTableNoBorder .el-table__inner-wrapper:before {
1094
- height: 0;
1095
- }
1096
1147
 
1097
- [data-v-3f2c8504] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1098
- height: 0;
1099
- }
1100
-
1101
- [data-v-3f2c8504] .gmTableNoBorder.el-table--border:after {
1102
- height: 0;
1148
+ .pagination-container[data-v-47d35e7b] {
1149
+ background: #fff;
1150
+ padding-top: 12px;
1103
1151
  }
1104
-
1105
- [data-v-3f2c8504] .gmTableNoBorder.el-table--border:before {
1106
- height: 0;
1152
+ .pagination-container.hidden[data-v-47d35e7b] {
1153
+ display: none;
1107
1154
  }
1108
1155
 
1109
- [data-v-3f2c8504] .gmTableNoBorder .el-table__border-left-patch {
1110
- height: 0;
1111
- }
1112
1156
  @charset "UTF-8";
1113
1157
  .table-custom-header-drawer .el-drawer__header {
1114
1158
  padding: 10px 15px;
@@ -1164,48 +1208,4 @@ video {
1164
1208
  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);
1165
1209
  border-radius: 10px;
1166
1210
  background: #eee;
1167
- }
1168
- .gm-upload-preview-dialog[data-v-c615121c] [data-v-c615121c] .el-dialog__body {
1169
- padding: 0;
1170
- }
1171
-
1172
- .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 {
1173
- width: auto;
1174
- height: auto;
1175
- }
1176
- .gm-upload-file {
1177
- line-height: normal;
1178
- }
1179
- .gm-upload-file li > .el-checkbox {
1180
- position: absolute;
1181
- left: 10px;
1182
- top: 0;
1183
- z-index: 9;
1184
- }
1185
- .gm-upload-file .el-upload-list--picture-card {
1186
- gap: 10px;
1187
- }
1188
- .gm-upload-file .el-upload-list__item {
1189
- margin: 0;
1190
- border: none;
1191
- }
1192
- .gm-upload-file .el-upload-list__item-file-name {
1193
- line-height: normal;
1194
- }
1195
- .gm-upload-file .el-upload-dragger {
1196
- padding: 0;
1197
- border: none;
1198
- width: 100%;
1199
- height: 100%;
1200
- display: flex;
1201
- }
1202
- .gm-upload-file .el-upload--picture-card {
1203
- border: none;
1204
- }
1205
-
1206
- .gm-upload-file-disabled .el-upload--picture-card {
1207
- display: none;
1208
- }
1209
- .gm-upload-file-disabled .el-upload-list__item-status-label {
1210
- display: none;
1211
1211
  }
@@ -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
@@ -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 { envConfigs } from '../../utils/src/http/createModes.mjs';
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
- if (resetMode && envConfigs[resetMode]) {
21
- config.baseURL = urlJoin(envConfigs[resetMode].url, serviceType);
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 { envConfigs } 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 获取租户类型/环境模式\n const resetMode = importMetaEnv.value[resetEnvMode];\n if (resetMode && envConfigs[resetMode]) {\n config.baseURL = urlJoin(envConfigs[resetMode].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,IAAI,SAAA,IAAa,UAAA,CAAW,SAAS,CAAA,EAAG;AACtC,MAAA,MAAA,CAAO,UAAU,OAAA,CAAQ,UAAA,CAAW,SAAS,CAAA,CAAE,KAAK,WAAW,CAAA;AAC/D,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;;;;"}
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
- if (resetMode && envConfigs[resetMode]) {
39
- originLoginUrl = urlJoin(envConfigs[resetMode].url, loginPath);
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) {
@@ -49,7 +50,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
49
50
  const protocol = window.location.protocol;
50
51
  const host = window.location.host;
51
52
  const myPath = window.location.pathname;
52
- loginUrl.value = `${originLoginUrl}?_system=${props.system}`;
53
+ loginUrl.value = `${originLoginUrl}?_system=${props.system}&isPopUp=true`;
53
54
  if (route.value && props.needScanningRouteNames.includes(route.value?.name?.toString() ?? "")) {
54
55
  loginUrl.value += "&is_dashboard=1";
55
56
  }
@@ -172,14 +173,15 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
172
173
  createVNode(unref(ElDialog), {
173
174
  modelValue: unref(loginStore).showLogin,
174
175
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(loginStore).showLogin = $event),
175
- width: "80%",
176
+ width: "480px",
177
+ "align-center": "",
176
178
  "append-to-body": ""
177
179
  }, {
178
180
  default: withCtx(() => [
179
181
  createCommentVNode(" \u6B63\u5E38\u767B\u5F55\u72B6\u6001\uFF1A\u663E\u793Aiframe "),
180
182
  unref(loginStore).showLogin && !unref(loginStore).isLoginBlocked ? (openBlock(), createElementBlock("iframe", {
181
183
  key: 0,
182
- class: "gm-h-[600px] gm-w-full",
184
+ class: "gm-h-[650px] gm-w-full",
183
185
  src: loginUrl.value
184
186
  }, null, 8, _hoisted_2)) : unref(loginStore).isLoginBlocked ? (openBlock(), createElementBlock(
185
187
  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\" :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}`;\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":"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"}
@@ -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-79615afd"]]);
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: queryDivWidth, height: queryDivHeight } = useElementSize(queryDivRef);
31
- const colsCount = computed(() => Math.floor(queryDivWidth.value / 269));
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: queryDivWidth, height: queryDivHeight } = useElementSize(queryDivRef);\n// 列个数\nconst colsCount = computed(() => 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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"}
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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"}
@@ -1 +1 @@
1
- export declare const version = "1.0.0";
1
+ export declare const version = "1.0.2-snapshot.1";
@@ -1,4 +1,4 @@
1
- const version = "1.0.0";
1
+ const version = "1.0.2-snapshot.1";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '1.0.0';\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;;;;"}