giime 0.7.8 → 0.7.10
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 +101 -101
- package/es/api/guardBasic/request.mjs +1 -1
- package/es/api/materialApi/request.mjs +1 -1
- package/es/api/productCenter/request.mjs +1 -1
- package/es/api/resource/request.mjs +1 -1
- package/es/api/utils/createModes.d.ts +1 -17
- package/es/api/utils/createModes.mjs +1 -19
- package/es/api/utils/createModes.mjs.map +1 -1
- package/es/api/utils/index.mjs +2 -1
- package/es/api/utils/index.mjs.map +1 -1
- package/es/api/utils/resetAxiosBaseUrl.mjs +4 -1
- package/es/api/utils/resetAxiosBaseUrl.mjs.map +1 -1
- package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs +4 -1
- package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
- package/es/components/src/business/uploadPro/UploadPro.vue.mjs +1 -1
- package/es/components/src/business/uploadPro/UploadPro.vue2.mjs +1 -8
- package/es/components/src/business/uploadPro/UploadPro.vue2.mjs.map +1 -1
- package/es/constants/index.mjs +1 -1
- package/es/constants/key.d.ts +1 -0
- package/es/constants/key.mjs +2 -1
- package/es/constants/key.mjs.map +1 -1
- package/es/giime/index.mjs +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 +101 -101
- package/es/utils/index.mjs +1 -1
- package/es/utils/src/file.d.ts +7 -5
- package/es/utils/src/file.mjs +26 -4
- package/es/utils/src/file.mjs.map +1 -1
- package/es/utils/src/http/createModes.d.ts +17 -0
- package/es/utils/src/http/createModes.mjs +20 -0
- package/es/utils/src/http/createModes.mjs.map +1 -0
- package/es/utils/src/http/devProxy.d.ts +10 -0
- package/es/utils/src/http/devProxy.mjs +55 -51
- package/es/utils/src/http/devProxy.mjs.map +1 -1
- package/es/utils/src/http/index.mjs +1 -1
- package/lib/api/guardBasic/request.js +1 -1
- package/lib/api/materialApi/request.js +1 -1
- package/lib/api/productCenter/request.js +1 -1
- package/lib/api/resource/request.js +1 -1
- package/lib/api/utils/createModes.d.ts +1 -17
- package/lib/api/utils/createModes.js +3 -17
- package/lib/api/utils/createModes.js.map +1 -1
- package/lib/api/utils/index.js +2 -1
- package/lib/api/utils/index.js.map +1 -1
- package/lib/api/utils/resetAxiosBaseUrl.js +4 -1
- package/lib/api/utils/resetAxiosBaseUrl.js.map +1 -1
- package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +4 -1
- package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
- package/lib/components/src/business/uploadPro/UploadPro.vue.js +1 -1
- package/lib/components/src/business/uploadPro/UploadPro.vue2.js +1 -8
- package/lib/components/src/business/uploadPro/UploadPro.vue2.js.map +1 -1
- package/lib/constants/index.js +1 -0
- package/lib/constants/index.js.map +1 -1
- package/lib/constants/key.d.ts +1 -0
- package/lib/constants/key.js +2 -0
- package/lib/constants/key.js.map +1 -1
- package/lib/giime/index.js +1 -0
- package/lib/giime/index.js.map +1 -1
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/lib/index.css +101 -101
- package/lib/utils/index.js +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/src/file.d.ts +7 -5
- package/lib/utils/src/file.js +26 -4
- package/lib/utils/src/file.js.map +1 -1
- package/lib/utils/src/http/createModes.d.ts +17 -0
- package/lib/utils/src/http/createModes.js +22 -0
- package/lib/utils/src/http/createModes.js.map +1 -0
- package/lib/utils/src/http/devProxy.d.ts +10 -0
- package/lib/utils/src/http/devProxy.js +55 -50
- package/lib/utils/src/http/devProxy.js.map +1 -1
- package/lib/utils/src/http/index.js +1 -0
- package/lib/utils/src/http/index.js.map +1 -1
- package/package.json +1 -1
package/lib/index.css
CHANGED
|
@@ -873,18 +873,12 @@ video {
|
|
|
873
873
|
.gm-group:hover .group-hover\:gm-block {
|
|
874
874
|
display: block;
|
|
875
875
|
}
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
margin: 0;
|
|
879
|
-
}
|
|
880
|
-
|
|
881
|
-
.gm-upload-pro-preview-dialog[data-v-40d129e4] [data-v-40d129e4] .el-dialog__body {
|
|
882
|
-
padding: 0;
|
|
876
|
+
.gm-flex-center[data-v-c17deec9] {
|
|
877
|
+
align-items: center;
|
|
883
878
|
}
|
|
884
879
|
|
|
885
|
-
.gm-
|
|
886
|
-
|
|
887
|
-
height: auto;
|
|
880
|
+
.gm-flex-justify-between[data-v-c17deec9] {
|
|
881
|
+
justify-content: space-between;
|
|
888
882
|
}
|
|
889
883
|
.circular[data-v-d7b04fae] {
|
|
890
884
|
animation: loading-rotate-d7b04fae 2s linear infinite;
|
|
@@ -917,6 +911,19 @@ video {
|
|
|
917
911
|
stroke-dashoffset: -120px;
|
|
918
912
|
}
|
|
919
913
|
}
|
|
914
|
+
|
|
915
|
+
.gm-range-number .el-form-item[data-v-1ae16d96] {
|
|
916
|
+
margin: 0;
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
.gm-upload-pro-preview-dialog[data-v-9ac30390] [data-v-9ac30390] .el-dialog__body {
|
|
920
|
+
padding: 0;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
.gm-upload-pro-file-picture-card[data-v-9ac30390] [data-v-9ac30390] .el-upload-list__item, .gm-upload-pro-file-picture-card[data-v-9ac30390] [data-v-9ac30390] .el-upload--picture-card {
|
|
924
|
+
width: auto;
|
|
925
|
+
height: auto;
|
|
926
|
+
}
|
|
920
927
|
.gm-upload-pro-file {
|
|
921
928
|
line-height: normal;
|
|
922
929
|
}
|
|
@@ -955,66 +962,10 @@ video {
|
|
|
955
962
|
.gm-upload-pro-file-disabled .el-upload-list__item-status-label {
|
|
956
963
|
display: none;
|
|
957
964
|
}
|
|
958
|
-
.gm-flex-center[data-v-c17deec9] {
|
|
959
|
-
align-items: center;
|
|
960
|
-
}
|
|
961
|
-
|
|
962
|
-
.gm-flex-justify-between[data-v-c17deec9] {
|
|
963
|
-
justify-content: space-between;
|
|
964
|
-
}
|
|
965
965
|
[data-v-488ca110] .gmSearchForm .el-form-item {
|
|
966
966
|
margin-right: 0;
|
|
967
967
|
margin-bottom: 4px;
|
|
968
968
|
}
|
|
969
|
-
.gm-number-interval-single[data-v-4e6f4d6f] {
|
|
970
|
-
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
971
|
-
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
972
|
-
background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
|
|
973
|
-
}
|
|
974
|
-
.gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
|
|
975
|
-
box-shadow: none;
|
|
976
|
-
background: none;
|
|
977
|
-
}
|
|
978
|
-
|
|
979
|
-
.gm-number-interval-close[data-v-4e6f4d6f] {
|
|
980
|
-
display: none;
|
|
981
|
-
color: var(--el-input-icon-color, var(--el-text-color-placeholder));
|
|
982
|
-
}
|
|
983
|
-
|
|
984
|
-
.gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
|
|
985
|
-
display: flex;
|
|
986
|
-
}
|
|
987
|
-
.gm-upload-preview-dialog[data-v-312f9322] [data-v-312f9322] .el-dialog__body {
|
|
988
|
-
padding: 0;
|
|
989
|
-
}
|
|
990
|
-
|
|
991
|
-
.gm-upload-file-picture-card[data-v-312f9322] [data-v-312f9322] .el-upload-list__item, .gm-upload-file-picture-card[data-v-312f9322] [data-v-312f9322] .el-upload--picture-card {
|
|
992
|
-
width: auto;
|
|
993
|
-
height: auto;
|
|
994
|
-
}
|
|
995
|
-
[data-v-98c2e804] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
996
|
-
border-right: none;
|
|
997
|
-
}
|
|
998
|
-
|
|
999
|
-
[data-v-98c2e804] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
1000
|
-
height: 0;
|
|
1001
|
-
}
|
|
1002
|
-
|
|
1003
|
-
[data-v-98c2e804] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
1004
|
-
height: 0;
|
|
1005
|
-
}
|
|
1006
|
-
|
|
1007
|
-
[data-v-98c2e804] .gmTableNoBorder.el-table--border:after {
|
|
1008
|
-
height: 0;
|
|
1009
|
-
}
|
|
1010
|
-
|
|
1011
|
-
[data-v-98c2e804] .gmTableNoBorder.el-table--border:before {
|
|
1012
|
-
height: 0;
|
|
1013
|
-
}
|
|
1014
|
-
|
|
1015
|
-
[data-v-98c2e804] .gmTableNoBorder .el-table__border-left-patch {
|
|
1016
|
-
height: 0;
|
|
1017
|
-
}
|
|
1018
969
|
[data-v-2c351ff8] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
1019
970
|
border-right: none;
|
|
1020
971
|
}
|
|
@@ -1038,41 +989,6 @@ video {
|
|
|
1038
989
|
[data-v-2c351ff8] .gmTableNoBorder .el-table__border-left-patch {
|
|
1039
990
|
height: 0;
|
|
1040
991
|
}
|
|
1041
|
-
.gm-upload-file {
|
|
1042
|
-
line-height: normal;
|
|
1043
|
-
}
|
|
1044
|
-
.gm-upload-file .el-checkbox {
|
|
1045
|
-
position: absolute;
|
|
1046
|
-
left: 10px;
|
|
1047
|
-
top: 0;
|
|
1048
|
-
z-index: 9;
|
|
1049
|
-
}
|
|
1050
|
-
.gm-upload-file .el-upload-list--picture-card {
|
|
1051
|
-
gap: 10px;
|
|
1052
|
-
}
|
|
1053
|
-
.gm-upload-file .el-upload-list__item {
|
|
1054
|
-
margin: 0;
|
|
1055
|
-
}
|
|
1056
|
-
.gm-upload-file .el-upload-list__item-file-name {
|
|
1057
|
-
line-height: normal;
|
|
1058
|
-
}
|
|
1059
|
-
.gm-upload-file .el-upload-dragger {
|
|
1060
|
-
padding: 0;
|
|
1061
|
-
border: none;
|
|
1062
|
-
width: 100%;
|
|
1063
|
-
height: 100%;
|
|
1064
|
-
display: flex;
|
|
1065
|
-
}
|
|
1066
|
-
.gm-upload-file .el-upload--picture-card {
|
|
1067
|
-
border: none;
|
|
1068
|
-
}
|
|
1069
|
-
|
|
1070
|
-
.gm-upload-file-disabled .el-upload--picture-card {
|
|
1071
|
-
display: none;
|
|
1072
|
-
}
|
|
1073
|
-
.gm-upload-file-disabled .el-upload-list__item-status-label {
|
|
1074
|
-
display: none;
|
|
1075
|
-
}
|
|
1076
992
|
|
|
1077
993
|
.pagination-container[data-v-47d35e7b] {
|
|
1078
994
|
background: #fff;
|
|
@@ -1082,6 +998,24 @@ video {
|
|
|
1082
998
|
display: none;
|
|
1083
999
|
}
|
|
1084
1000
|
|
|
1001
|
+
.gm-number-interval-single[data-v-4e6f4d6f] {
|
|
1002
|
+
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
1003
|
+
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
1004
|
+
background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
|
|
1005
|
+
}
|
|
1006
|
+
.gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
|
|
1007
|
+
box-shadow: none;
|
|
1008
|
+
background: none;
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
.gm-number-interval-close[data-v-4e6f4d6f] {
|
|
1012
|
+
display: none;
|
|
1013
|
+
color: var(--el-input-icon-color, var(--el-text-color-placeholder));
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
.gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
|
|
1017
|
+
display: flex;
|
|
1018
|
+
}
|
|
1085
1019
|
@charset "UTF-8";
|
|
1086
1020
|
.custom-operate-drawer .el-drawer__header {
|
|
1087
1021
|
padding: 10px 15px;
|
|
@@ -1138,6 +1072,29 @@ video {
|
|
|
1138
1072
|
border-radius: 10px;
|
|
1139
1073
|
background: #eee;
|
|
1140
1074
|
}
|
|
1075
|
+
[data-v-98c2e804] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
1076
|
+
border-right: none;
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
[data-v-98c2e804] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
1080
|
+
height: 0;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
[data-v-98c2e804] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
1084
|
+
height: 0;
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
[data-v-98c2e804] .gmTableNoBorder.el-table--border:after {
|
|
1088
|
+
height: 0;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
[data-v-98c2e804] .gmTableNoBorder.el-table--border:before {
|
|
1092
|
+
height: 0;
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
[data-v-98c2e804] .gmTableNoBorder .el-table__border-left-patch {
|
|
1096
|
+
height: 0;
|
|
1097
|
+
}
|
|
1141
1098
|
@charset "UTF-8";
|
|
1142
1099
|
.table-custom-header-drawer .el-drawer__header {
|
|
1143
1100
|
padding: 10px 15px;
|
|
@@ -1193,4 +1150,47 @@ video {
|
|
|
1193
1150
|
box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);
|
|
1194
1151
|
border-radius: 10px;
|
|
1195
1152
|
background: #eee;
|
|
1153
|
+
}
|
|
1154
|
+
.gm-upload-preview-dialog[data-v-312f9322] [data-v-312f9322] .el-dialog__body {
|
|
1155
|
+
padding: 0;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
.gm-upload-file-picture-card[data-v-312f9322] [data-v-312f9322] .el-upload-list__item, .gm-upload-file-picture-card[data-v-312f9322] [data-v-312f9322] .el-upload--picture-card {
|
|
1159
|
+
width: auto;
|
|
1160
|
+
height: auto;
|
|
1161
|
+
}
|
|
1162
|
+
.gm-upload-file {
|
|
1163
|
+
line-height: normal;
|
|
1164
|
+
}
|
|
1165
|
+
.gm-upload-file .el-checkbox {
|
|
1166
|
+
position: absolute;
|
|
1167
|
+
left: 10px;
|
|
1168
|
+
top: 0;
|
|
1169
|
+
z-index: 9;
|
|
1170
|
+
}
|
|
1171
|
+
.gm-upload-file .el-upload-list--picture-card {
|
|
1172
|
+
gap: 10px;
|
|
1173
|
+
}
|
|
1174
|
+
.gm-upload-file .el-upload-list__item {
|
|
1175
|
+
margin: 0;
|
|
1176
|
+
}
|
|
1177
|
+
.gm-upload-file .el-upload-list__item-file-name {
|
|
1178
|
+
line-height: normal;
|
|
1179
|
+
}
|
|
1180
|
+
.gm-upload-file .el-upload-dragger {
|
|
1181
|
+
padding: 0;
|
|
1182
|
+
border: none;
|
|
1183
|
+
width: 100%;
|
|
1184
|
+
height: 100%;
|
|
1185
|
+
display: flex;
|
|
1186
|
+
}
|
|
1187
|
+
.gm-upload-file .el-upload--picture-card {
|
|
1188
|
+
border: none;
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
.gm-upload-file-disabled .el-upload--picture-card {
|
|
1192
|
+
display: none;
|
|
1193
|
+
}
|
|
1194
|
+
.gm-upload-file-disabled .el-upload-list__item-status-label {
|
|
1195
|
+
display: none;
|
|
1196
1196
|
}
|
package/lib/utils/index.js
CHANGED
|
@@ -114,6 +114,7 @@ exports.responseErrorMessage = errorMessage.responseErrorMessage;
|
|
|
114
114
|
exports.req401Interceptors = interceptors.req401Interceptors;
|
|
115
115
|
exports.res401Interceptors = interceptors.res401Interceptors;
|
|
116
116
|
exports.giimeDevProxy = devProxy.giimeDevProxy;
|
|
117
|
+
exports.giimeDevProxyFn = devProxy.giimeDevProxyFn;
|
|
117
118
|
exports.getDomain = url.getDomain;
|
|
118
119
|
exports.urlJoin = url.urlJoin;
|
|
119
120
|
exports.getDateShortcuts = dateShortcuts.getDateShortcuts;
|
package/lib/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/lib/utils/src/file.d.ts
CHANGED
|
@@ -73,13 +73,15 @@ export declare function fileValidType(file: File, validTypes: string): boolean;
|
|
|
73
73
|
export declare const fileMd5: (file: File) => Promise<string>;
|
|
74
74
|
/**
|
|
75
75
|
* 获取图片宽高信息
|
|
76
|
-
* @param
|
|
76
|
+
* @param source 图片文件或图片链接
|
|
77
77
|
* @returns 图片宽高信息
|
|
78
78
|
*/
|
|
79
|
-
export declare
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
export declare function getImageInfo(source: File, options?: {
|
|
80
|
+
hideMessage?: boolean;
|
|
81
|
+
}): Promise<HTMLImageElement>;
|
|
82
|
+
export declare function getImageInfo(source: string, options?: {
|
|
83
|
+
hideMessage?: boolean;
|
|
84
|
+
}): Promise<HTMLImageElement>;
|
|
83
85
|
/**
|
|
84
86
|
* 获取视频信息
|
|
85
87
|
* @param url 视频链接
|
package/lib/utils/src/file.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var index = require('../../components/src/plugins/message/index.js');
|
|
3
4
|
var jsMd5 = require('js-md5');
|
|
4
5
|
var elementPlus = require('element-plus');
|
|
5
6
|
|
|
@@ -90,14 +91,35 @@ const fileMd5 = (file) => {
|
|
|
90
91
|
reader.readAsArrayBuffer(file);
|
|
91
92
|
});
|
|
92
93
|
};
|
|
93
|
-
|
|
94
|
+
function getImageInfo(source, options) {
|
|
94
95
|
return new Promise((resolve, reject) => {
|
|
95
96
|
const img = new Image();
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
let url;
|
|
98
|
+
let shouldRevokeUrl = false;
|
|
99
|
+
if (source instanceof File) {
|
|
100
|
+
url = URL.createObjectURL(source);
|
|
101
|
+
shouldRevokeUrl = true;
|
|
102
|
+
} else {
|
|
103
|
+
url = source;
|
|
104
|
+
}
|
|
105
|
+
img.onload = () => {
|
|
106
|
+
if (shouldRevokeUrl) {
|
|
107
|
+
URL.revokeObjectURL(url);
|
|
108
|
+
}
|
|
109
|
+
resolve(img);
|
|
110
|
+
};
|
|
111
|
+
img.onerror = () => {
|
|
112
|
+
if (shouldRevokeUrl) {
|
|
113
|
+
URL.revokeObjectURL(url);
|
|
114
|
+
}
|
|
115
|
+
if (!options?.hideMessage) {
|
|
116
|
+
index.GmMessage.error("\u56FE\u7247\u4FE1\u606F\u83B7\u53D6\u5931\u8D25");
|
|
117
|
+
}
|
|
118
|
+
reject();
|
|
119
|
+
};
|
|
98
120
|
img.src = url;
|
|
99
121
|
});
|
|
100
|
-
}
|
|
122
|
+
}
|
|
101
123
|
const getVideoInfo = (url) => {
|
|
102
124
|
return new Promise((resolve, reject) => {
|
|
103
125
|
const video = document.createElement("video");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sources":["../../../../../packages/utils/src/file.ts"],"sourcesContent":["import { md5 } from 'js-md5';\n\nexport { genFileId } from 'element-plus';\n\nexport interface FileConversionOptions {\n mimeType?: string;\n}\n/**\n * 将 URL 转换为 Blob\n * @param url\n * @returns\n */\nexport async function urlToBlob(url: string): Promise<Blob> {\n const response = await fetch(url);\n return response.blob();\n}\n\n/**\n * 将 URL 转换为 File\n * @param url\n * @param filename\n * @param options\n * @returns\n */\nexport async function urlToFile(url: string, filename: string, options?: FileConversionOptions): Promise<File> {\n const blob = await urlToBlob(url);\n return new File([blob], filename, { type: options?.mimeType ?? blob.type });\n}\n\n/**\n * 将 Base64 字符串转换为 File\n * @param base64\n * @param filename\n * @param options\n * @returns\n */\nexport function base64ToFile(base64: string, filename: string, options?: FileConversionOptions): File {\n const bolb = base64ToBlob(base64, { mimeType: options?.mimeType });\n return blobToFile(bolb, filename);\n}\n\n/**\n * 将 File 转换为 Base64 字符串\n * @param file\n * @returns\n */\nexport function fileToBase64(file: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result as string);\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n}\n\n/**\n * 将 Blob 转换为 Base64 字符串\n * @param blob\n * @returns\n */\nexport function blobToBase64(blob: Blob): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result as string);\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n });\n}\n\n/**\n * 将 File 转换为 Blob\n * @param file\n * @param options\n * @returns\n */\nexport function fileToBlob(file: File, options?: FileConversionOptions): Blob {\n return new Blob([file], { type: options?.mimeType ?? file.type });\n}\n\n/**\n * 将 Blob 转换为 File\n * @param blob\n * @param filename\n * @param options\n * @returns\n */\nexport function blobToFile(blob: Blob, filename: string, options?: FileConversionOptions): File {\n return new File([blob], filename, { type: options?.mimeType ?? blob.type });\n}\n\n/**\n * 将 Base64 字符串转换为 Blob\n * @param base64\n * @param options\n * @returns\n */\nexport function base64ToBlob(base64: string, options?: FileConversionOptions): Blob {\n const matches = base64.match(/^data:(.+);base64,(.*)$/);\n\n if (!matches || matches.length !== 3) {\n throw new Error('Invalid Base64 string');\n }\n\n const mimeType = options?.mimeType ?? matches[1];\n const byteString = atob(matches[2]);\n const arrayBuffer = new ArrayBuffer(byteString.length);\n const intArray = new Uint8Array(arrayBuffer);\n\n for (let i = 0; i < byteString.length; i++) {\n intArray[i] = byteString.charCodeAt(i);\n }\n\n return new Blob([intArray], { type: mimeType });\n}\n/**\n * 文件转本地url\n * @param file\n * @returns\n */\nexport function fileToUrl(file: File | Blob) {\n return URL.createObjectURL(file);\n}\n\n// 导出一个函数,用于检查文件类型是否合法\nexport function fileValidType(file: File, validTypes: string) {\n // 获取文件的 MIME 类型\n const fileType = file.type || '';\n // 获取文件的扩展名\n const fileExtension = file.name.slice(Math.max(0, file.name.lastIndexOf('.')));\n // 将合法的文件类型字符串分割成数组\n const acceptTypes = validTypes.split(',').map(type => type.trim());\n // 遍历合法的文件类型数组,检查文件类型是否合法\n return acceptTypes.some(type => {\n // 如果文件类型以 . 开头,则检查文件扩展名\n if (type.startsWith('.')) {\n // 检查文件扩展名是否与合法的文件类型匹配\n return fileExtension.toLowerCase() === type.toLowerCase();\n // 如果文件类型包含 /*,则检查 MIME 类型组,如 image/*\n } else if (type.includes('/*')) {\n // 检查 MIME 类型组,如 image/*\n const [mainType] = type.split('/');\n return fileType.startsWith(`${mainType}/`);\n } else {\n // 检查具体 MIME 类型\n return fileType === type;\n }\n });\n}\n\n/**\n * 计算文件的MD5哈希值\n * @param file 要计算哈希值的文件\n * @returns 文件的MD5哈希值\n */\nexport const fileMd5 = (file: File): Promise<string> => {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = e => {\n try {\n const binary = (e.target as FileReader).result;\n if (binary) {\n resolve(md5(binary));\n } else {\n reject(new Error('读取文件内容失败'));\n }\n } catch (error) {\n reject(new Error(`计算MD5失败: ${error instanceof Error ? error.message : String(error)}`));\n }\n };\n\n reader.onerror = () => {\n reject(new Error('读取文件失败'));\n };\n\n reader.readAsArrayBuffer(file);\n });\n};\n\n/**\n * 获取图片宽高信息\n * @param url 图片链接\n * @returns 图片宽高信息\n */\nexport const getImageInfo = (url: string): Promise<{ width: number; height: number }> => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve({ width: img.width, height: img.height });\n img.onerror = reject;\n img.src = url;\n });\n};\n\n/**\n * 获取视频信息\n * @param url 视频链接\n * @returns 视频宽高信息\n */\nexport const getVideoInfo = (url: string): Promise<{ width: number; height: number; duration: number }> => {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.onloadedmetadata = () => resolve({ width: video.videoWidth, height: video.videoHeight, duration: video.duration });\n video.onerror = reject;\n video.src = url;\n });\n};\n"],"names":["md5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file.js","sources":["../../../../../packages/utils/src/file.ts"],"sourcesContent":["import { GmMessage } from '@giime/components/src/plugins/message';\nimport { md5 } from 'js-md5';\n\nexport { genFileId } from 'element-plus';\n\nexport interface FileConversionOptions {\n mimeType?: string;\n}\n/**\n * 将 URL 转换为 Blob\n * @param url\n * @returns\n */\nexport async function urlToBlob(url: string): Promise<Blob> {\n const response = await fetch(url);\n return response.blob();\n}\n\n/**\n * 将 URL 转换为 File\n * @param url\n * @param filename\n * @param options\n * @returns\n */\nexport async function urlToFile(url: string, filename: string, options?: FileConversionOptions): Promise<File> {\n const blob = await urlToBlob(url);\n return new File([blob], filename, { type: options?.mimeType ?? blob.type });\n}\n\n/**\n * 将 Base64 字符串转换为 File\n * @param base64\n * @param filename\n * @param options\n * @returns\n */\nexport function base64ToFile(base64: string, filename: string, options?: FileConversionOptions): File {\n const bolb = base64ToBlob(base64, { mimeType: options?.mimeType });\n return blobToFile(bolb, filename);\n}\n\n/**\n * 将 File 转换为 Base64 字符串\n * @param file\n * @returns\n */\nexport function fileToBase64(file: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result as string);\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n}\n\n/**\n * 将 Blob 转换为 Base64 字符串\n * @param blob\n * @returns\n */\nexport function blobToBase64(blob: Blob): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result as string);\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n });\n}\n\n/**\n * 将 File 转换为 Blob\n * @param file\n * @param options\n * @returns\n */\nexport function fileToBlob(file: File, options?: FileConversionOptions): Blob {\n return new Blob([file], { type: options?.mimeType ?? file.type });\n}\n\n/**\n * 将 Blob 转换为 File\n * @param blob\n * @param filename\n * @param options\n * @returns\n */\nexport function blobToFile(blob: Blob, filename: string, options?: FileConversionOptions): File {\n return new File([blob], filename, { type: options?.mimeType ?? blob.type });\n}\n\n/**\n * 将 Base64 字符串转换为 Blob\n * @param base64\n * @param options\n * @returns\n */\nexport function base64ToBlob(base64: string, options?: FileConversionOptions): Blob {\n const matches = base64.match(/^data:(.+);base64,(.*)$/);\n\n if (!matches || matches.length !== 3) {\n throw new Error('Invalid Base64 string');\n }\n\n const mimeType = options?.mimeType ?? matches[1];\n const byteString = atob(matches[2]);\n const arrayBuffer = new ArrayBuffer(byteString.length);\n const intArray = new Uint8Array(arrayBuffer);\n\n for (let i = 0; i < byteString.length; i++) {\n intArray[i] = byteString.charCodeAt(i);\n }\n\n return new Blob([intArray], { type: mimeType });\n}\n/**\n * 文件转本地url\n * @param file\n * @returns\n */\nexport function fileToUrl(file: File | Blob) {\n return URL.createObjectURL(file);\n}\n\n// 导出一个函数,用于检查文件类型是否合法\nexport function fileValidType(file: File, validTypes: string) {\n // 获取文件的 MIME 类型\n const fileType = file.type || '';\n // 获取文件的扩展名\n const fileExtension = file.name.slice(Math.max(0, file.name.lastIndexOf('.')));\n // 将合法的文件类型字符串分割成数组\n const acceptTypes = validTypes.split(',').map(type => type.trim());\n // 遍历合法的文件类型数组,检查文件类型是否合法\n return acceptTypes.some(type => {\n // 如果文件类型以 . 开头,则检查文件扩展名\n if (type.startsWith('.')) {\n // 检查文件扩展名是否与合法的文件类型匹配\n return fileExtension.toLowerCase() === type.toLowerCase();\n // 如果文件类型包含 /*,则检查 MIME 类型组,如 image/*\n } else if (type.includes('/*')) {\n // 检查 MIME 类型组,如 image/*\n const [mainType] = type.split('/');\n return fileType.startsWith(`${mainType}/`);\n } else {\n // 检查具体 MIME 类型\n return fileType === type;\n }\n });\n}\n\n/**\n * 计算文件的MD5哈希值\n * @param file 要计算哈希值的文件\n * @returns 文件的MD5哈希值\n */\nexport const fileMd5 = (file: File): Promise<string> => {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = e => {\n try {\n const binary = (e.target as FileReader).result;\n if (binary) {\n resolve(md5(binary));\n } else {\n reject(new Error('读取文件内容失败'));\n }\n } catch (error) {\n reject(new Error(`计算MD5失败: ${error instanceof Error ? error.message : String(error)}`));\n }\n };\n\n reader.onerror = () => {\n reject(new Error('读取文件失败'));\n };\n\n reader.readAsArrayBuffer(file);\n });\n};\n\n/**\n * 获取图片宽高信息\n * @param source 图片文件或图片链接\n * @returns 图片宽高信息\n */\nexport function getImageInfo(source: File, options?: { hideMessage?: boolean }): Promise<HTMLImageElement>;\nexport function getImageInfo(source: string, options?: { hideMessage?: boolean }): Promise<HTMLImageElement>;\nexport function getImageInfo(source: File | string, options?: { hideMessage?: boolean }): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const img = new Image();\n let url: string;\n let shouldRevokeUrl = false;\n\n if (source instanceof File) {\n url = URL.createObjectURL(source);\n shouldRevokeUrl = true;\n } else {\n url = source;\n }\n\n img.onload = () => {\n if (shouldRevokeUrl) {\n URL.revokeObjectURL(url);\n }\n resolve(img);\n };\n\n img.onerror = () => {\n if (shouldRevokeUrl) {\n URL.revokeObjectURL(url);\n }\n if (!options?.hideMessage) {\n GmMessage.error('图片信息获取失败');\n }\n reject();\n };\n\n img.src = url;\n });\n}\n\n/**\n * 获取视频信息\n * @param url 视频链接\n * @returns 视频宽高信息\n */\nexport const getVideoInfo = (url: string): Promise<{ width: number; height: number; duration: number }> => {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.onloadedmetadata = () => resolve({ width: video.videoWidth, height: video.videoHeight, duration: video.duration });\n video.onerror = reject;\n video.src = url;\n });\n};\n"],"names":["md5","GmMessage"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface CreateModesOptions {
|
|
2
|
+
/** 开发环境路径,如 '/giime-guard-resource-api' */
|
|
3
|
+
developmentPath: string;
|
|
4
|
+
/** 服务类型:如 'guard', 'middle' 等 */
|
|
5
|
+
serviceType: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* 创建API模式配置
|
|
9
|
+
* @param options 配置对象
|
|
10
|
+
* @param options.developmentPath 开发环境路径,如 '/giime-guard-resource-api'
|
|
11
|
+
* @param options.serviceType 服务类型:如 'guard', 'middle' 等
|
|
12
|
+
* @returns ViteMode数组
|
|
13
|
+
*/
|
|
14
|
+
export declare const createModes: (options: CreateModesOptions) => {
|
|
15
|
+
mode: string;
|
|
16
|
+
url: string;
|
|
17
|
+
}[];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var url = require('./url.js');
|
|
4
|
+
|
|
5
|
+
const createModes = (options) => {
|
|
6
|
+
const { developmentPath, serviceType } = options;
|
|
7
|
+
return [
|
|
8
|
+
// 本地开发环境
|
|
9
|
+
{ mode: "development", url: developmentPath },
|
|
10
|
+
// 前后端联调的开发环境
|
|
11
|
+
{ mode: "dev", url: url.urlJoin("https://manage-dev.giikin.cn", serviceType) },
|
|
12
|
+
{ mode: "develop", url: url.urlJoin("https://manage-dev.giikin.cn", serviceType) },
|
|
13
|
+
{ mode: "test", url: url.urlJoin("https://manage-test.giikin.cn", serviceType) },
|
|
14
|
+
{ mode: "release", url: url.urlJoin("https://manage-pre.giikin.com", serviceType) },
|
|
15
|
+
{ mode: "production", url: url.urlJoin("https://manage.giikin.com", serviceType) },
|
|
16
|
+
/** 租户:吉客拓客 */
|
|
17
|
+
{ mode: "giiktok.production", url: url.urlJoin("https://manage.kingkungmeta.com", serviceType) }
|
|
18
|
+
];
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.createModes = createModes;
|
|
22
|
+
//# sourceMappingURL=createModes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createModes.js","sources":["../../../../../../packages/utils/src/http/createModes.ts"],"sourcesContent":["import { urlJoin } from './url';\n\nexport interface CreateModesOptions {\n /** 开发环境路径,如 '/giime-guard-resource-api' */\n developmentPath: string;\n /** 服务类型:如 'guard', 'middle' 等 */\n serviceType: string;\n}\n\n/**\n * 创建API模式配置\n * @param options 配置对象\n * @param options.developmentPath 开发环境路径,如 '/giime-guard-resource-api'\n * @param options.serviceType 服务类型:如 'guard', 'middle' 等\n * @returns ViteMode数组\n */\nexport const createModes = (options: CreateModesOptions) => {\n const { developmentPath, serviceType } = options;\n\n return [\n // 本地开发环境\n { mode: 'development', url: developmentPath },\n // 前后端联调的开发环境\n { mode: 'dev', url: urlJoin('https://manage-dev.giikin.cn', serviceType) },\n { mode: 'develop', url: urlJoin('https://manage-dev.giikin.cn', serviceType) },\n { mode: 'test', url: urlJoin('https://manage-test.giikin.cn', serviceType) },\n { mode: 'release', url: urlJoin('https://manage-pre.giikin.com', serviceType) },\n { mode: 'production', url: urlJoin('https://manage.giikin.com', serviceType) },\n /** 租户:吉客拓客 */\n { mode: 'giiktok.production', url: urlJoin('https://manage.kingkungmeta.com', serviceType) },\n ];\n};\n"],"names":["urlJoin"],"mappings":";;;;AAgBa,MAAA,WAAA,GAAc,CAAC,OAAgC,KAAA;AAC1D,EAAM,MAAA,EAAE,eAAiB,EAAA,WAAA,EAAgB,GAAA,OAAA,CAAA;AAEzC,EAAO,OAAA;AAAA;AAAA,IAEL,EAAE,IAAA,EAAM,aAAe,EAAA,GAAA,EAAK,eAAgB,EAAA;AAAA;AAAA,IAE5C,EAAE,IAAM,EAAA,KAAA,EAAO,KAAKA,WAAQ,CAAA,8BAAA,EAAgC,WAAW,CAAE,EAAA;AAAA,IACzE,EAAE,IAAM,EAAA,SAAA,EAAW,KAAKA,WAAQ,CAAA,8BAAA,EAAgC,WAAW,CAAE,EAAA;AAAA,IAC7E,EAAE,IAAM,EAAA,MAAA,EAAQ,KAAKA,WAAQ,CAAA,+BAAA,EAAiC,WAAW,CAAE,EAAA;AAAA,IAC3E,EAAE,IAAM,EAAA,SAAA,EAAW,KAAKA,WAAQ,CAAA,+BAAA,EAAiC,WAAW,CAAE,EAAA;AAAA,IAC9E,EAAE,IAAM,EAAA,YAAA,EAAc,KAAKA,WAAQ,CAAA,2BAAA,EAA6B,WAAW,CAAE,EAAA;AAAA;AAAA,IAE7E,EAAE,IAAM,EAAA,oBAAA,EAAsB,KAAKA,WAAQ,CAAA,iCAAA,EAAmC,WAAW,CAAE,EAAA;AAAA,GAC7F,CAAA;AACF;;;;"}
|
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
import type { ProxyOptions } from 'vite';
|
|
2
|
+
/**
|
|
3
|
+
* 默认开发代理配置
|
|
4
|
+
* https://cn.vitejs.dev/config/#server-proxy
|
|
5
|
+
*/
|
|
2
6
|
export declare const giimeDevProxy: Record<string, string | ProxyOptions>;
|
|
7
|
+
/**
|
|
8
|
+
* 根据环境动态生成代理配置
|
|
9
|
+
* @param env 环境变量对象
|
|
10
|
+
* @returns 代理配置对象
|
|
11
|
+
*/
|
|
12
|
+
export declare const giimeDevProxyFn: (env: Record<string, string>) => Record<string, string | ProxyOptions>;
|
|
@@ -1,64 +1,69 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var resolver = require('../vue/resolver.js');
|
|
4
|
+
var key = require('../../../constants/key.js');
|
|
5
|
+
var createModes = require('./createModes.js');
|
|
4
6
|
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
changeOrigin: true,
|
|
10
|
-
rewrite: (p) => p.replace(/^\/gstore-api/, ""),
|
|
11
|
-
bypass: resolver.bypass
|
|
7
|
+
const API_CONFIGS = [
|
|
8
|
+
{
|
|
9
|
+
path: "/gstore-api",
|
|
10
|
+
defaultTarget: "https://third-ssl.giikin.cn/gstore/"
|
|
12
11
|
},
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
bypass: resolver.bypass
|
|
12
|
+
{
|
|
13
|
+
path: "/material-api",
|
|
14
|
+
defaultTarget: "https://manage-test.giikin.cn/middle",
|
|
15
|
+
serviceType: "middle"
|
|
18
16
|
},
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
rewrite: (p) => p.replace(/^\/shop-admin-api/, ""),
|
|
23
|
-
bypass: resolver.bypass
|
|
17
|
+
{
|
|
18
|
+
path: "/shop-admin-api",
|
|
19
|
+
defaultTarget: "https://shop-admin-api-ssl.giikin.cn"
|
|
24
20
|
},
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
bypass: resolver.bypass
|
|
21
|
+
{
|
|
22
|
+
path: "/product-center-api",
|
|
23
|
+
defaultTarget: "https://manage-dev.giikin.cn/product-center",
|
|
24
|
+
serviceType: "product-center"
|
|
30
25
|
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
bypass: resolver.bypass
|
|
26
|
+
{
|
|
27
|
+
path: "/guard-basic-api",
|
|
28
|
+
defaultTarget: "https://manage-dev.giikin.cn/guard",
|
|
29
|
+
serviceType: "guard"
|
|
36
30
|
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
bypass: resolver.bypass
|
|
42
|
-
},
|
|
43
|
-
"/product-center-api": {
|
|
44
|
-
target: "http://192.168.4.125:10086/product-center/",
|
|
45
|
-
changeOrigin: true,
|
|
46
|
-
rewrite: (p) => p.replace(/^\/product-center-api/, ""),
|
|
47
|
-
bypass: resolver.bypass
|
|
48
|
-
},
|
|
49
|
-
"/guard-basic-api": {
|
|
50
|
-
target: "https://manage-dev.giikin.cn/guard/",
|
|
51
|
-
changeOrigin: true,
|
|
52
|
-
rewrite: (p) => p.replace(/^\/guard-basic-api/, ""),
|
|
53
|
-
bypass: resolver.bypass
|
|
54
|
-
},
|
|
55
|
-
"/giime-guard-resource-api": {
|
|
56
|
-
target: "https://manage-dev.giikin.cn/guard/",
|
|
57
|
-
changeOrigin: true,
|
|
58
|
-
rewrite: (p) => p.replace(/^\/giime-guard-resource-api/, ""),
|
|
59
|
-
bypass: resolver.bypass
|
|
31
|
+
{
|
|
32
|
+
path: "/giime-guard-resource-api",
|
|
33
|
+
defaultTarget: "https://manage-dev.giikin.cn/guard",
|
|
34
|
+
serviceType: "guard"
|
|
60
35
|
}
|
|
36
|
+
];
|
|
37
|
+
const createProxyConfig = (path, target) => ({
|
|
38
|
+
target,
|
|
39
|
+
changeOrigin: true,
|
|
40
|
+
rewrite: (p) => p.replace(new RegExp(`^${path}`), ""),
|
|
41
|
+
bypass: resolver.bypass
|
|
42
|
+
});
|
|
43
|
+
const getTargetUrl = (config, mode) => {
|
|
44
|
+
if (!config.serviceType || !mode) {
|
|
45
|
+
return config.defaultTarget;
|
|
46
|
+
}
|
|
47
|
+
const modes = createModes.createModes({
|
|
48
|
+
developmentPath: config.path,
|
|
49
|
+
serviceType: config.serviceType
|
|
50
|
+
});
|
|
51
|
+
return modes.find((item) => item.mode === mode)?.url || `https://manage-dev.giikin.cn/${config.serviceType}`;
|
|
52
|
+
};
|
|
53
|
+
const generateProxyConfig = (mode) => {
|
|
54
|
+
const config = {};
|
|
55
|
+
API_CONFIGS.forEach((apiConfig) => {
|
|
56
|
+
const target = getTargetUrl(apiConfig, mode);
|
|
57
|
+
config[apiConfig.path] = createProxyConfig(apiConfig.path, target);
|
|
58
|
+
});
|
|
59
|
+
return config;
|
|
60
|
+
};
|
|
61
|
+
const giimeDevProxy = generateProxyConfig();
|
|
62
|
+
const giimeDevProxyFn = (env) => {
|
|
63
|
+
const mode = env[key.resetEnvMode];
|
|
64
|
+
return generateProxyConfig(mode);
|
|
61
65
|
};
|
|
62
66
|
|
|
63
67
|
exports.giimeDevProxy = giimeDevProxy;
|
|
68
|
+
exports.giimeDevProxyFn = giimeDevProxyFn;
|
|
64
69
|
//# sourceMappingURL=devProxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devProxy.js","sources":["../../../../../../packages/utils/src/http/devProxy.ts"],"sourcesContent":["import type { ProxyOptions } from 'vite';\nimport { bypass } from '../vue/resolver';\n\
|
|
1
|
+
{"version":3,"file":"devProxy.js","sources":["../../../../../../packages/utils/src/http/devProxy.ts"],"sourcesContent":["import type { ProxyOptions } from 'vite';\nimport { bypass } from '../vue/resolver';\n// background引用,先必须使用../../\nimport { resetEnvMode } from '../../../constants/key';\nimport { createModes } from './createModes';\n\n/**\n * API代理配置接口\n */\ninterface ApiProxyConfig {\n /** API路径 */\n path: string;\n /** 默认目标地址 */\n defaultTarget: string;\n /** 服务类型(用于createModes,同时也是URL后缀) */\n serviceType?: string;\n}\n\n/**\n * 所有API的基础配置\n */\nconst API_CONFIGS: ApiProxyConfig[] = [\n {\n path: '/gstore-api',\n defaultTarget: 'https://third-ssl.giikin.cn/gstore/',\n },\n {\n path: '/material-api',\n defaultTarget: 'https://manage-test.giikin.cn/middle',\n serviceType: 'middle',\n },\n {\n path: '/shop-admin-api',\n defaultTarget: 'https://shop-admin-api-ssl.giikin.cn',\n },\n {\n path: '/product-center-api',\n defaultTarget: 'https://manage-dev.giikin.cn/product-center',\n serviceType: 'product-center',\n },\n {\n path: '/guard-basic-api',\n defaultTarget: 'https://manage-dev.giikin.cn/guard',\n serviceType: 'guard',\n },\n {\n path: '/giime-guard-resource-api',\n defaultTarget: 'https://manage-dev.giikin.cn/guard',\n serviceType: 'guard',\n },\n];\n\n/**\n * 创建代理配置项\n * @param path API路径\n * @param target 目标地址\n * @returns 代理配置\n */\nconst createProxyConfig = (path: string, target: string): ProxyOptions => ({\n target,\n changeOrigin: true,\n rewrite: p => p.replace(new RegExp(`^${path}`), ''),\n bypass,\n});\n\n/**\n * 根据模式获取目标URL\n * @param config API配置\n * @param mode 环境模式\n * @returns 目标URL\n */\nconst getTargetUrl = (config: ApiProxyConfig, mode?: string): string => {\n if (!config.serviceType || !mode) {\n return config.defaultTarget;\n }\n\n const modes = createModes({\n developmentPath: config.path,\n serviceType: config.serviceType,\n });\n\n return modes.find(item => item.mode === mode)?.url || `https://manage-dev.giikin.cn/${config.serviceType}`;\n};\n\n/**\n * 生成代理配置对象\n * @param mode 环境模式(可选)\n * @returns 代理配置对象\n */\nconst generateProxyConfig = (mode?: string): Record<string, string | ProxyOptions> => {\n const config: Record<string, string | ProxyOptions> = {};\n\n API_CONFIGS.forEach(apiConfig => {\n const target = getTargetUrl(apiConfig, mode);\n config[apiConfig.path] = createProxyConfig(apiConfig.path, target);\n });\n\n return config;\n};\n\n/**\n * 默认开发代理配置\n * https://cn.vitejs.dev/config/#server-proxy\n */\nexport const giimeDevProxy: Record<string, string | ProxyOptions> = generateProxyConfig();\n\n/**\n * 根据环境动态生成代理配置\n * @param env 环境变量对象\n * @returns 代理配置对象\n */\nexport const giimeDevProxyFn = (env: Record<string, string>): Record<string, string | ProxyOptions> => {\n const mode = env[resetEnvMode];\n return generateProxyConfig(mode);\n};\n"],"names":["bypass","createModes","resetEnvMode"],"mappings":";;;;;;AAqBA,MAAM,WAAgC,GAAA;AAAA,EACpC;AAAA,IACE,IAAM,EAAA,aAAA;AAAA,IACN,aAAe,EAAA,qCAAA;AAAA,GACjB;AAAA,EACA;AAAA,IACE,IAAM,EAAA,eAAA;AAAA,IACN,aAAe,EAAA,sCAAA;AAAA,IACf,WAAa,EAAA,QAAA;AAAA,GACf;AAAA,EACA;AAAA,IACE,IAAM,EAAA,iBAAA;AAAA,IACN,aAAe,EAAA,sCAAA;AAAA,GACjB;AAAA,EACA;AAAA,IACE,IAAM,EAAA,qBAAA;AAAA,IACN,aAAe,EAAA,6CAAA;AAAA,IACf,WAAa,EAAA,gBAAA;AAAA,GACf;AAAA,EACA;AAAA,IACE,IAAM,EAAA,kBAAA;AAAA,IACN,aAAe,EAAA,oCAAA;AAAA,IACf,WAAa,EAAA,OAAA;AAAA,GACf;AAAA,EACA;AAAA,IACE,IAAM,EAAA,2BAAA;AAAA,IACN,aAAe,EAAA,oCAAA;AAAA,IACf,WAAa,EAAA,OAAA;AAAA,GACf;AACF,CAAA,CAAA;AAQA,MAAM,iBAAA,GAAoB,CAAC,IAAA,EAAc,MAAkC,MAAA;AAAA,EACzE,MAAA;AAAA,EACA,YAAc,EAAA,IAAA;AAAA,EACd,OAAA,EAAS,CAAK,CAAA,KAAA,CAAA,CAAE,OAAQ,CAAA,IAAI,OAAO,CAAI,CAAA,EAAA,IAAI,CAAE,CAAA,CAAA,EAAG,EAAE,CAAA;AAAA,UAClDA,eAAA;AACF,CAAA,CAAA,CAAA;AAQA,MAAM,YAAA,GAAe,CAAC,MAAA,EAAwB,IAA0B,KAAA;AACtE,EAAA,IAAI,CAAC,MAAA,CAAO,WAAe,IAAA,CAAC,IAAM,EAAA;AAChC,IAAA,OAAO,MAAO,CAAA,aAAA,CAAA;AAAA,GAChB;AAEA,EAAA,MAAM,QAAQC,uBAAY,CAAA;AAAA,IACxB,iBAAiB,MAAO,CAAA,IAAA;AAAA,IACxB,aAAa,MAAO,CAAA,WAAA;AAAA,GACrB,CAAA,CAAA;AAED,EAAO,OAAA,KAAA,CAAM,IAAK,CAAA,CAAA,IAAA,KAAQ,IAAK,CAAA,IAAA,KAAS,IAAI,CAAG,EAAA,GAAA,IAAO,CAAgC,6BAAA,EAAA,MAAA,CAAO,WAAW,CAAA,CAAA,CAAA;AAC1G,CAAA,CAAA;AAOA,MAAM,mBAAA,GAAsB,CAAC,IAAyD,KAAA;AACpF,EAAA,MAAM,SAAgD,EAAC,CAAA;AAEvD,EAAA,WAAA,CAAY,QAAQ,CAAa,SAAA,KAAA;AAC/B,IAAM,MAAA,MAAA,GAAS,YAAa,CAAA,SAAA,EAAW,IAAI,CAAA,CAAA;AAC3C,IAAA,MAAA,CAAO,UAAU,IAAI,CAAA,GAAI,iBAAkB,CAAA,SAAA,CAAU,MAAM,MAAM,CAAA,CAAA;AAAA,GAClE,CAAA,CAAA;AAED,EAAO,OAAA,MAAA,CAAA;AACT,CAAA,CAAA;AAMO,MAAM,gBAAuD,mBAAoB,GAAA;AAO3E,MAAA,eAAA,GAAkB,CAAC,GAAuE,KAAA;AACrG,EAAM,MAAA,IAAA,GAAO,IAAIC,gBAAY,CAAA,CAAA;AAC7B,EAAA,OAAO,oBAAoB,IAAI,CAAA,CAAA;AACjC;;;;;"}
|
|
@@ -14,6 +14,7 @@ exports.responseErrorMessage = errorMessage.responseErrorMessage;
|
|
|
14
14
|
exports.req401Interceptors = interceptors.req401Interceptors;
|
|
15
15
|
exports.res401Interceptors = interceptors.res401Interceptors;
|
|
16
16
|
exports.giimeDevProxy = devProxy.giimeDevProxy;
|
|
17
|
+
exports.giimeDevProxyFn = devProxy.giimeDevProxyFn;
|
|
17
18
|
exports.getDomain = url.getDomain;
|
|
18
19
|
exports.urlJoin = url.urlJoin;
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
|