giime 0.5.3 → 0.5.5
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 +70 -55
- package/es/api/materialApi/cross/postSaveFileResources.d.ts +2 -2
- package/es/api/materialApi/cross/postSaveFileResources.mjs +1 -0
- package/es/api/materialApi/cross/postSaveFileResources.mjs.map +1 -1
- package/es/components/index.mjs +4 -0
- package/es/components/index.mjs.map +1 -1
- package/es/components/src/base/affix/index.mjs.map +1 -1
- package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
- package/es/components/src/business/loginDialog/loginDialog.mjs.map +1 -1
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +259 -90
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.mjs +2 -5
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.mjs.map +1 -1
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs +25 -162
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs.map +1 -1
- package/es/components/src/business/uploadMaterial/index.d.ts +181 -12
- package/es/components/src/business/uploadMaterial/index.mjs +3 -2
- package/es/components/src/business/uploadMaterial/index.mjs.map +1 -1
- package/es/components/src/business/uploadMaterial/uploadMaterial.d.ts +84 -6
- package/es/components/src/business/uploadMaterial/uploadMaterial.mjs +9 -23
- package/es/components/src/business/uploadMaterial/uploadMaterial.mjs.map +1 -1
- package/es/components/src/composite/fileComponent/FileComponent.vue.d.ts +69 -0
- package/es/components/src/composite/fileComponent/FileComponent.vue.mjs +6 -0
- package/es/components/src/composite/fileComponent/FileComponent.vue.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/FileComponent.vue2.mjs +83 -0
- package/es/components/src/composite/fileComponent/FileComponent.vue2.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/assets/image/excel.svg.mjs +4 -0
- package/es/components/src/composite/fileComponent/assets/image/excel.svg.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/assets/image/pdf.svg.mjs +4 -0
- package/es/components/src/composite/fileComponent/assets/image/pdf.svg.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/assets/image/ppt.svg.mjs +4 -0
- package/es/components/src/composite/fileComponent/assets/image/ppt.svg.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/assets/image/psd.svg.mjs +4 -0
- package/es/components/src/composite/fileComponent/assets/image/psd.svg.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/assets/image/text.svg.mjs +4 -0
- package/es/components/src/composite/fileComponent/assets/image/text.svg.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/assets/image/unknown.svg.mjs +4 -0
- package/es/components/src/composite/fileComponent/assets/image/unknown.svg.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/assets/image/word.svg.mjs +4 -0
- package/es/components/src/composite/fileComponent/assets/image/word.svg.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/assets/image/zip.svg.mjs +4 -0
- package/es/components/src/composite/fileComponent/assets/image/zip.svg.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/fileComponent.d.ts +41 -0
- package/es/components/src/composite/fileComponent/fileComponent.mjs +40 -0
- package/es/components/src/composite/fileComponent/fileComponent.mjs.map +1 -0
- package/es/components/src/composite/fileComponent/index.d.ts +71 -0
- package/es/components/src/composite/fileComponent/index.mjs +10 -0
- package/es/components/src/composite/fileComponent/index.mjs.map +1 -0
- package/es/components/src/composite/index.d.ts +2 -0
- package/es/components/src/composite/index.mjs +4 -0
- package/es/components/src/composite/index.mjs.map +1 -1
- package/es/components/src/composite/previewFile/PreviewFile.vue.d.ts +97 -0
- package/es/components/src/composite/previewFile/PreviewFile.vue.mjs +6 -0
- package/es/components/src/composite/previewFile/PreviewFile.vue.mjs.map +1 -0
- package/es/components/src/composite/previewFile/PreviewFile.vue2.mjs +120 -0
- package/es/components/src/composite/previewFile/PreviewFile.vue2.mjs.map +1 -0
- package/es/components/src/composite/previewFile/index.d.ts +99 -0
- package/es/components/src/composite/previewFile/index.mjs +10 -0
- package/es/components/src/composite/previewFile/index.mjs.map +1 -0
- package/es/components/src/composite/previewFile/previewFile.d.ts +42 -0
- package/es/components/src/composite/previewFile/previewFile.mjs +19 -0
- package/es/components/src/composite/previewFile/previewFile.mjs.map +1 -0
- package/es/components/src/composite/uploadFile/UploadFile.vue.d.ts +973 -0
- package/es/components/src/composite/uploadFile/UploadFile.vue.mjs +9 -0
- package/es/components/src/composite/uploadFile/UploadFile.vue.mjs.map +1 -0
- package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs +239 -0
- package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs.map +1 -0
- package/es/components/src/{business/uploadMaterial/UploadMaterial.vue3.mjs → composite/uploadFile/UploadFile.vue3.mjs} +1 -1
- package/es/components/src/composite/uploadFile/UploadFile.vue3.mjs.map +1 -0
- package/es/components/src/{business/uploadMaterial/UploadMaterial.vue4.mjs → composite/uploadFile/UploadFile.vue4.mjs} +1 -1
- package/es/components/src/composite/uploadFile/UploadFile.vue4.mjs.map +1 -0
- package/es/components/src/composite/uploadFile/index.d.ts +2486 -0
- package/es/components/src/composite/uploadFile/index.mjs +9 -0
- package/es/components/src/composite/uploadFile/index.mjs.map +1 -0
- package/es/components/src/composite/uploadFile/uploadFile.d.ts +227 -0
- package/es/components/src/composite/uploadFile/uploadFile.mjs +92 -0
- package/es/components/src/composite/uploadFile/uploadFile.mjs.map +1 -0
- package/es/constants/key.mjs.map +1 -1
- package/es/giime/index.mjs +5 -1
- package/es/giime/index.mjs.map +1 -1
- package/es/giime/version.d.ts +1 -1
- package/es/giime/version.mjs +1 -1
- package/es/giime/version.mjs.map +1 -1
- package/es/index.css +70 -55
- package/es/utils/index.mjs +1 -1
- package/es/utils/src/alioss/aliossPutHook.d.ts +79 -0
- package/es/utils/src/alioss/aliossPutHook.mjs +177 -0
- package/es/utils/src/alioss/aliossPutHook.mjs.map +1 -0
- package/es/utils/src/alioss/aliossToken.d.ts +17 -0
- package/es/utils/src/alioss/aliossToken.mjs +51 -0
- package/es/utils/src/alioss/aliossToken.mjs.map +1 -0
- package/es/utils/src/http/createAxios.mjs.map +1 -1
- package/es/utils/src/http/errorMessage.mjs.map +1 -1
- package/es/utils/src/is.d.ts +44 -2
- package/es/utils/src/is.mjs +29 -1
- package/es/utils/src/is.mjs.map +1 -1
- package/es/utils/src/tree.mjs.map +1 -1
- package/lib/api/materialApi/cross/postSaveFileResources.d.ts +2 -2
- package/lib/api/materialApi/cross/postSaveFileResources.js +1 -0
- package/lib/api/materialApi/cross/postSaveFileResources.js.map +1 -1
- package/lib/components/index.js +22 -14
- package/lib/components/index.js.map +1 -1
- package/lib/components/src/base/affix/index.js.map +1 -1
- package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
- package/lib/components/src/business/loginDialog/loginDialog.js.map +1 -1
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +259 -90
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.js +2 -5
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.js.map +1 -1
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js +24 -161
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js.map +1 -1
- package/lib/components/src/business/uploadMaterial/index.d.ts +181 -12
- package/lib/components/src/business/uploadMaterial/index.js +3 -2
- package/lib/components/src/business/uploadMaterial/index.js.map +1 -1
- package/lib/components/src/business/uploadMaterial/uploadMaterial.d.ts +84 -6
- package/lib/components/src/business/uploadMaterial/uploadMaterial.js +9 -23
- package/lib/components/src/business/uploadMaterial/uploadMaterial.js.map +1 -1
- package/lib/components/src/composite/fileComponent/FileComponent.vue.d.ts +69 -0
- package/lib/components/src/composite/fileComponent/FileComponent.vue.js +10 -0
- package/lib/components/src/composite/fileComponent/FileComponent.vue.js.map +1 -0
- package/lib/components/src/composite/fileComponent/FileComponent.vue2.js +87 -0
- package/lib/components/src/composite/fileComponent/FileComponent.vue2.js.map +1 -0
- package/lib/components/src/composite/fileComponent/assets/image/excel.svg.js +8 -0
- package/lib/components/src/composite/fileComponent/assets/image/excel.svg.js.map +1 -0
- package/lib/components/src/composite/fileComponent/assets/image/pdf.svg.js +8 -0
- package/lib/components/src/composite/fileComponent/assets/image/pdf.svg.js.map +1 -0
- package/lib/components/src/composite/fileComponent/assets/image/ppt.svg.js +8 -0
- package/lib/components/src/composite/fileComponent/assets/image/ppt.svg.js.map +1 -0
- package/lib/components/src/composite/fileComponent/assets/image/psd.svg.js +8 -0
- package/lib/components/src/composite/fileComponent/assets/image/psd.svg.js.map +1 -0
- package/lib/components/src/composite/fileComponent/assets/image/text.svg.js +8 -0
- package/lib/components/src/composite/fileComponent/assets/image/text.svg.js.map +1 -0
- package/lib/components/src/composite/fileComponent/assets/image/unknown.svg.js +8 -0
- package/lib/components/src/composite/fileComponent/assets/image/unknown.svg.js.map +1 -0
- package/lib/components/src/composite/fileComponent/assets/image/word.svg.js +8 -0
- package/lib/components/src/composite/fileComponent/assets/image/word.svg.js.map +1 -0
- package/lib/components/src/composite/fileComponent/assets/image/zip.svg.js +8 -0
- package/lib/components/src/composite/fileComponent/assets/image/zip.svg.js.map +1 -0
- package/lib/components/src/composite/fileComponent/fileComponent.d.ts +41 -0
- package/lib/components/src/composite/fileComponent/fileComponent.js +42 -0
- package/lib/components/src/composite/fileComponent/fileComponent.js.map +1 -0
- package/lib/components/src/composite/fileComponent/index.d.ts +71 -0
- package/lib/components/src/composite/fileComponent/index.js +16 -0
- package/lib/components/src/composite/fileComponent/index.js.map +1 -0
- package/lib/components/src/composite/index.d.ts +2 -0
- package/lib/components/src/composite/index.js +8 -0
- package/lib/components/src/composite/index.js.map +1 -1
- package/lib/components/src/composite/previewFile/PreviewFile.vue.d.ts +97 -0
- package/lib/components/src/composite/previewFile/PreviewFile.vue.js +10 -0
- package/lib/components/src/composite/previewFile/PreviewFile.vue.js.map +1 -0
- package/lib/components/src/composite/previewFile/PreviewFile.vue2.js +124 -0
- package/lib/components/src/composite/previewFile/PreviewFile.vue2.js.map +1 -0
- package/lib/components/src/composite/previewFile/index.d.ts +99 -0
- package/lib/components/src/composite/previewFile/index.js +16 -0
- package/lib/components/src/composite/previewFile/index.js.map +1 -0
- package/lib/components/src/composite/previewFile/previewFile.d.ts +42 -0
- package/lib/components/src/composite/previewFile/previewFile.js +21 -0
- package/lib/components/src/composite/previewFile/previewFile.js.map +1 -0
- package/lib/components/src/composite/uploadFile/UploadFile.vue.d.ts +973 -0
- package/lib/components/src/composite/uploadFile/UploadFile.vue.js +13 -0
- package/lib/components/src/composite/uploadFile/UploadFile.vue.js.map +1 -0
- package/lib/components/src/composite/uploadFile/UploadFile.vue2.js +243 -0
- package/lib/components/src/composite/uploadFile/UploadFile.vue2.js.map +1 -0
- package/lib/components/src/{business/uploadMaterial/UploadMaterial.vue3.js → composite/uploadFile/UploadFile.vue3.js} +1 -1
- package/lib/components/src/composite/uploadFile/UploadFile.vue3.js.map +1 -0
- package/lib/components/src/{business/uploadMaterial/UploadMaterial.vue4.js → composite/uploadFile/UploadFile.vue4.js} +1 -1
- package/lib/components/src/composite/uploadFile/UploadFile.vue4.js.map +1 -0
- package/lib/components/src/composite/uploadFile/index.d.ts +2486 -0
- package/lib/components/src/composite/uploadFile/index.js +15 -0
- package/lib/components/src/composite/uploadFile/index.js.map +1 -0
- package/lib/components/src/composite/uploadFile/uploadFile.d.ts +227 -0
- package/lib/components/src/composite/uploadFile/uploadFile.js +94 -0
- package/lib/components/src/composite/uploadFile/uploadFile.js.map +1 -0
- package/lib/constants/key.js.map +1 -1
- package/lib/giime/index.js +75 -60
- 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 +70 -55
- package/lib/utils/index.js +7 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/src/alioss/aliossPutHook.d.ts +79 -0
- package/lib/utils/src/alioss/aliossPutHook.js +181 -0
- package/lib/utils/src/alioss/aliossPutHook.js.map +1 -0
- package/lib/utils/src/alioss/aliossToken.d.ts +17 -0
- package/lib/utils/src/alioss/aliossToken.js +55 -0
- package/lib/utils/src/alioss/aliossToken.js.map +1 -0
- package/lib/utils/src/http/createAxios.js.map +1 -1
- package/lib/utils/src/http/errorMessage.js.map +1 -1
- package/lib/utils/src/is.d.ts +44 -2
- package/lib/utils/src/is.js +35 -0
- package/lib/utils/src/is.js.map +1 -1
- package/lib/utils/src/tree.js.map +1 -1
- package/package.json +1 -1
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue3.mjs.map +0 -1
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue4.mjs.map +0 -1
- package/es/utils/src/alioss.d.ts +0 -32
- package/es/utils/src/alioss.mjs +0 -110
- package/es/utils/src/alioss.mjs.map +0 -1
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue3.js.map +0 -1
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue4.js.map +0 -1
- package/lib/utils/src/alioss.d.ts +0 -32
- package/lib/utils/src/alioss.js +0 -113
- package/lib/utils/src/alioss.js.map +0 -1
package/lib/utils/src/is.d.ts
CHANGED
|
@@ -40,14 +40,56 @@ export declare function isError(value: any): value is Error;
|
|
|
40
40
|
export declare function isPlainObject(value: any): value is object;
|
|
41
41
|
export declare const isHttps: () => boolean;
|
|
42
42
|
/**
|
|
43
|
-
* @description
|
|
43
|
+
* @description 描述:判断是否为视频
|
|
44
44
|
* @param {string} url 文件链接 或 文件名
|
|
45
45
|
* @return {*}
|
|
46
46
|
**/
|
|
47
47
|
export declare const isVideoUrl: (url: string) => boolean;
|
|
48
48
|
/**
|
|
49
|
-
* @description
|
|
49
|
+
* @description 描述:判断是否为图片
|
|
50
50
|
* @param {string} url 文件链接 或 文件名
|
|
51
51
|
* @return {*}
|
|
52
52
|
**/
|
|
53
53
|
export declare const isImageUrl: (url: string) => boolean;
|
|
54
|
+
/**
|
|
55
|
+
* @description 描述:判断是否为PDF
|
|
56
|
+
* @param {string} url 文件链接 或 文件名
|
|
57
|
+
* @return {*}
|
|
58
|
+
**/
|
|
59
|
+
export declare const isPDF: (url: string) => boolean;
|
|
60
|
+
/**
|
|
61
|
+
* @description 描述:是否为Word
|
|
62
|
+
* @param {string} url 文件链接 或 文件名
|
|
63
|
+
* @return {*}
|
|
64
|
+
**/
|
|
65
|
+
export declare const isWord: (url: string) => boolean;
|
|
66
|
+
/**
|
|
67
|
+
* @description 描述:是否为Excel
|
|
68
|
+
* @param {string} url 文件链接 或 文件名
|
|
69
|
+
* @return {*}
|
|
70
|
+
**/
|
|
71
|
+
export declare const isExcel: (url: string) => boolean;
|
|
72
|
+
/**
|
|
73
|
+
* @description 描述:是否为PPT
|
|
74
|
+
* @param {string} url 文件链接 或 文件名
|
|
75
|
+
* @return {*}
|
|
76
|
+
**/
|
|
77
|
+
export declare const isPPT: (url: string) => boolean;
|
|
78
|
+
/**
|
|
79
|
+
* @description 描述:是否为text
|
|
80
|
+
* @param {string} url 文件链接 或 文件名
|
|
81
|
+
* @return {*}
|
|
82
|
+
**/
|
|
83
|
+
export declare const isText: (url: string) => boolean;
|
|
84
|
+
/**
|
|
85
|
+
* @description 描述:是否为PSD
|
|
86
|
+
* @param {string} url 文件链接 或 文件名
|
|
87
|
+
* @return {*}
|
|
88
|
+
**/
|
|
89
|
+
export declare const isPSD: (url: string) => boolean;
|
|
90
|
+
/**
|
|
91
|
+
* @description 描述:是否为压缩包
|
|
92
|
+
* @param {string} url 文件链接 或 文件名
|
|
93
|
+
* @return {*}
|
|
94
|
+
**/
|
|
95
|
+
export declare const isZip: (url: string) => boolean;
|
package/lib/utils/src/is.js
CHANGED
|
@@ -85,6 +85,34 @@ const isImageUrl = (url) => {
|
|
|
85
85
|
const imageReg = /\.(jpg|jpeg|png|gif|webp|svg|bmp)$/i;
|
|
86
86
|
return imageReg.test(url);
|
|
87
87
|
};
|
|
88
|
+
const isPDF = (url) => {
|
|
89
|
+
const pdfReg = /\.(pdf)$/i;
|
|
90
|
+
return pdfReg.test(url);
|
|
91
|
+
};
|
|
92
|
+
const isWord = (url) => {
|
|
93
|
+
const docReg = /\.(doc|docx)$/i;
|
|
94
|
+
return docReg.test(url);
|
|
95
|
+
};
|
|
96
|
+
const isExcel = (url) => {
|
|
97
|
+
const excelReg = /\.(xls|xlsx)$/i;
|
|
98
|
+
return excelReg.test(url);
|
|
99
|
+
};
|
|
100
|
+
const isPPT = (url) => {
|
|
101
|
+
const pptReg = /\.(ppt|pptx)$/i;
|
|
102
|
+
return pptReg.test(url);
|
|
103
|
+
};
|
|
104
|
+
const isText = (url) => {
|
|
105
|
+
const textReg = /\.(txt)$/i;
|
|
106
|
+
return textReg.test(url);
|
|
107
|
+
};
|
|
108
|
+
const isPSD = (url) => {
|
|
109
|
+
const psdReg = /\.(psd)$/i;
|
|
110
|
+
return psdReg.test(url);
|
|
111
|
+
};
|
|
112
|
+
const isZip = (url) => {
|
|
113
|
+
const zipReg = /\.(zip|rar|7z)$/i;
|
|
114
|
+
return zipReg.test(url);
|
|
115
|
+
};
|
|
88
116
|
|
|
89
117
|
exports.getTag = getTag;
|
|
90
118
|
exports.isBoolean = isBoolean;
|
|
@@ -92,6 +120,7 @@ exports.isDate = isDate;
|
|
|
92
120
|
exports.isDecimal = isDecimal;
|
|
93
121
|
exports.isError = isError;
|
|
94
122
|
exports.isEven = isEven;
|
|
123
|
+
exports.isExcel = isExcel;
|
|
95
124
|
exports.isHttps = isHttps;
|
|
96
125
|
exports.isImageUrl = isImageUrl;
|
|
97
126
|
exports.isInteger = isInteger;
|
|
@@ -101,10 +130,16 @@ exports.isNull = isNull;
|
|
|
101
130
|
exports.isNumber = isNumber;
|
|
102
131
|
exports.isObjectLike = isObjectLike;
|
|
103
132
|
exports.isOdd = isOdd;
|
|
133
|
+
exports.isPDF = isPDF;
|
|
134
|
+
exports.isPPT = isPPT;
|
|
135
|
+
exports.isPSD = isPSD;
|
|
104
136
|
exports.isPlainObject = isPlainObject;
|
|
105
137
|
exports.isPositive = isPositive;
|
|
106
138
|
exports.isString = isString;
|
|
107
139
|
exports.isSymbol = isSymbol;
|
|
140
|
+
exports.isText = isText;
|
|
108
141
|
exports.isUndefined = isUndefined;
|
|
109
142
|
exports.isVideoUrl = isVideoUrl;
|
|
143
|
+
exports.isWord = isWord;
|
|
144
|
+
exports.isZip = isZip;
|
|
110
145
|
//# sourceMappingURL=is.js.map
|
package/lib/utils/src/is.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is.js","sources":["../../../../../packages/utils/src/is.ts"],"sourcesContent":["const toString = Object.prototype.toString;\r\nexport function getTag(value: any): string {\r\n if (value === null) {\r\n return '[object Null]';\r\n } else if (value === undefined) {\r\n return '[object Undefined]';\r\n }\r\n return toString.call(value);\r\n}\r\nexport function isObjectLike(value: any): boolean {\r\n return typeof value === 'object' && value !== null;\r\n}\r\nexport function isBoolean(value: any): value is boolean {\r\n return value === true || value === false || (isObjectLike(value) && getTag(value) === '[object Boolean]');\r\n}\r\n\r\nexport function isString(value: any): value is string {\r\n return typeof value === 'string' || (isObjectLike(value) && getTag(value) === '[object String]');\r\n}\r\n\r\nexport function isNumber(value: any): value is number {\r\n return typeof value === 'number' || (isObjectLike(value) && getTag(value) === '[object Number]');\r\n}\r\nexport function isSymbol(value: any): value is symbol {\r\n return typeof value === 'symbol' || (isObjectLike(value) && getTag(value) === '[object Symbol]');\r\n}\r\nexport function isDate(value: any): value is Date {\r\n return isObjectLike(value) && getTag(value) === '[object Date]';\r\n}\r\n/**\r\n * 整数\r\n */\r\nexport function isInteger(val: any): val is number {\r\n return isNumber(val) && val % 1 === 0;\r\n}\r\n/**\r\n * 小数\r\n */\r\nexport function isDecimal(val: any): val is number {\r\n return isNumber(val) && val % 1 !== 0;\r\n}\r\n/**\r\n * 负数\r\n */\r\nexport function isNegative(val: any): val is number {\r\n return isNumber(val) && val < 0;\r\n}\r\n/**\r\n * 正数\r\n */\r\nexport function isPositive(val: any): val is number {\r\n return isNumber(val) && val > 0;\r\n}\r\n/**\r\n * 奇数\r\n */\r\nexport function isOdd(val: any): val is number {\r\n return isNumber(val) && val % 2 !== 0;\r\n}\r\n/**\r\n * 偶数\r\n */\r\nexport function isEven(val: any): val is number {\r\n return isNumber(val) && val % 2 === 0;\r\n}\r\n\r\nexport function isUndefined(val: any): val is undefined {\r\n return val === undefined;\r\n}\r\nexport function isNull(val: any): val is null {\r\n return val === null;\r\n}\r\nexport function isNil(val: any): val is null | undefined {\r\n return isUndefined(val) || isNull(val);\r\n}\r\n/**\r\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\r\n * `SyntaxError`, `TypeError`, or `URIError` object.\r\n */\r\nexport function isError(value: any): value is Error {\r\n if (!isObjectLike(value)) {\r\n return false;\r\n }\r\n const tag = getTag(value);\r\n return (\r\n tag === '[object Error]' ||\r\n tag === '[object DOMException]' ||\r\n (typeof value.message === 'string' && typeof value.name === 'string' && !isPlainObject(value))\r\n );\r\n}\r\nexport function isPlainObject(value: any): value is object {\r\n if (!isObjectLike(value) || getTag(value) !== '[object Object]') {\r\n return false;\r\n }\r\n if (Object.getPrototypeOf(value) === null) {\r\n return true;\r\n }\r\n let proto = value;\r\n while (Object.getPrototypeOf(proto) !== null) {\r\n proto = Object.getPrototypeOf(proto);\r\n }\r\n return Object.getPrototypeOf(value) === proto;\r\n}\r\n\r\nexport const isHttps = () => {\r\n return window.location.protocol.startsWith('https');\r\n};\r\n\r\n/**\r\n * @description
|
|
1
|
+
{"version":3,"file":"is.js","sources":["../../../../../packages/utils/src/is.ts"],"sourcesContent":["const toString = Object.prototype.toString;\r\nexport function getTag(value: any): string {\r\n if (value === null) {\r\n return '[object Null]';\r\n } else if (value === undefined) {\r\n return '[object Undefined]';\r\n }\r\n return toString.call(value);\r\n}\r\nexport function isObjectLike(value: any): boolean {\r\n return typeof value === 'object' && value !== null;\r\n}\r\nexport function isBoolean(value: any): value is boolean {\r\n return value === true || value === false || (isObjectLike(value) && getTag(value) === '[object Boolean]');\r\n}\r\n\r\nexport function isString(value: any): value is string {\r\n return typeof value === 'string' || (isObjectLike(value) && getTag(value) === '[object String]');\r\n}\r\n\r\nexport function isNumber(value: any): value is number {\r\n return typeof value === 'number' || (isObjectLike(value) && getTag(value) === '[object Number]');\r\n}\r\nexport function isSymbol(value: any): value is symbol {\r\n return typeof value === 'symbol' || (isObjectLike(value) && getTag(value) === '[object Symbol]');\r\n}\r\nexport function isDate(value: any): value is Date {\r\n return isObjectLike(value) && getTag(value) === '[object Date]';\r\n}\r\n/**\r\n * 整数\r\n */\r\nexport function isInteger(val: any): val is number {\r\n return isNumber(val) && val % 1 === 0;\r\n}\r\n/**\r\n * 小数\r\n */\r\nexport function isDecimal(val: any): val is number {\r\n return isNumber(val) && val % 1 !== 0;\r\n}\r\n/**\r\n * 负数\r\n */\r\nexport function isNegative(val: any): val is number {\r\n return isNumber(val) && val < 0;\r\n}\r\n/**\r\n * 正数\r\n */\r\nexport function isPositive(val: any): val is number {\r\n return isNumber(val) && val > 0;\r\n}\r\n/**\r\n * 奇数\r\n */\r\nexport function isOdd(val: any): val is number {\r\n return isNumber(val) && val % 2 !== 0;\r\n}\r\n/**\r\n * 偶数\r\n */\r\nexport function isEven(val: any): val is number {\r\n return isNumber(val) && val % 2 === 0;\r\n}\r\n\r\nexport function isUndefined(val: any): val is undefined {\r\n return val === undefined;\r\n}\r\nexport function isNull(val: any): val is null {\r\n return val === null;\r\n}\r\nexport function isNil(val: any): val is null | undefined {\r\n return isUndefined(val) || isNull(val);\r\n}\r\n/**\r\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\r\n * `SyntaxError`, `TypeError`, or `URIError` object.\r\n */\r\nexport function isError(value: any): value is Error {\r\n if (!isObjectLike(value)) {\r\n return false;\r\n }\r\n const tag = getTag(value);\r\n return (\r\n tag === '[object Error]' ||\r\n tag === '[object DOMException]' ||\r\n (typeof value.message === 'string' && typeof value.name === 'string' && !isPlainObject(value))\r\n );\r\n}\r\nexport function isPlainObject(value: any): value is object {\r\n if (!isObjectLike(value) || getTag(value) !== '[object Object]') {\r\n return false;\r\n }\r\n if (Object.getPrototypeOf(value) === null) {\r\n return true;\r\n }\r\n let proto = value;\r\n while (Object.getPrototypeOf(proto) !== null) {\r\n proto = Object.getPrototypeOf(proto);\r\n }\r\n return Object.getPrototypeOf(value) === proto;\r\n}\r\n\r\nexport const isHttps = () => {\r\n return window.location.protocol.startsWith('https');\r\n};\r\n\r\n/**\r\n * @description 描述:判断是否为视频\r\n * @param {string} url 文件链接 或 文件名\r\n * @return {*}\r\n **/\r\nexport const isVideoUrl = (url: string): boolean => {\r\n const videoReg = /\\.(mp4|avi|rmvb|rm|wmv|mpg|mpeg|mov|mkv|flv)$/i;\r\n return videoReg.test(url);\r\n};\r\n\r\n/**\r\n * @description 描述:判断是否为图片\r\n * @param {string} url 文件链接 或 文件名\r\n * @return {*}\r\n **/\r\nexport const isImageUrl = (url: string): boolean => {\r\n const imageReg = /\\.(jpg|jpeg|png|gif|webp|svg|bmp)$/i;\r\n return imageReg.test(url);\r\n};\r\n\r\n/**\r\n * @description 描述:判断是否为PDF\r\n * @param {string} url 文件链接 或 文件名\r\n * @return {*}\r\n **/\r\nexport const isPDF = (url: string): boolean => {\r\n const pdfReg = /\\.(pdf)$/i;\r\n return pdfReg.test(url);\r\n};\r\n\r\n/**\r\n * @description 描述:是否为Word\r\n * @param {string} url 文件链接 或 文件名\r\n * @return {*}\r\n **/\r\nexport const isWord = (url: string): boolean => {\r\n const docReg = /\\.(doc|docx)$/i;\r\n return docReg.test(url);\r\n};\r\n\r\n/**\r\n * @description 描述:是否为Excel\r\n * @param {string} url 文件链接 或 文件名\r\n * @return {*}\r\n **/\r\nexport const isExcel = (url: string): boolean => {\r\n const excelReg = /\\.(xls|xlsx)$/i;\r\n return excelReg.test(url);\r\n};\r\n\r\n/**\r\n * @description 描述:是否为PPT\r\n * @param {string} url 文件链接 或 文件名\r\n * @return {*}\r\n **/\r\nexport const isPPT = (url: string): boolean => {\r\n const pptReg = /\\.(ppt|pptx)$/i;\r\n return pptReg.test(url);\r\n};\r\n\r\n/**\r\n * @description 描述:是否为text\r\n * @param {string} url 文件链接 或 文件名\r\n * @return {*}\r\n **/\r\nexport const isText = (url: string): boolean => {\r\n const textReg = /\\.(txt)$/i;\r\n return textReg.test(url);\r\n};\r\n\r\n/**\r\n * @description 描述:是否为PSD\r\n * @param {string} url 文件链接 或 文件名\r\n * @return {*}\r\n **/\r\nexport const isPSD = (url: string): boolean => {\r\n const psdReg = /\\.(psd)$/i;\r\n return psdReg.test(url);\r\n};\r\n\r\n/**\r\n * @description 描述:是否为压缩包\r\n * @param {string} url 文件链接 或 文件名\r\n * @return {*}\r\n **/\r\nexport const isZip = (url: string): boolean => {\r\n const zipReg = /\\.(zip|rar|7z)$/i;\r\n return zipReg.test(url);\r\n};\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sources":["../../../../../packages/utils/src/tree.ts"],"sourcesContent":["export interface FindChildrenItem extends Record<string, any> {\n label?: any;\n value?: any;\n children?: FindChildrenItem[];\n}\n/**\n * 获取子节点\n */\nexport function findChildrenItem(\n options: FindChildrenItem[],\n targetValue: any,\n option?: { value?: string; children?: string },\n): FindChildrenItem | undefined {\n const valueField = option?.value || 'value';\n const childrenField = option?.children || 'children';\n\n for (const option of options) {\n if (option[valueField] === targetValue) {\n return option;\n }\n if (option[childrenField]) {\n const found = findChildrenItem(option[childrenField], targetValue);\n\n if (found) {\n return found;\n }\n }\n }\n\n return undefined;\n}\n"],"names":["option"],"mappings":";;AAQgB,SAAA,gBAAA,CACd,OACA,EAAA,WAAA,EACA,MAC8B,EAAA;AAC9B,EAAM,MAAA,UAAA,GAAa,QAAQ,KAAS,IAAA,OAAA,CAAA;AACpC,EAAM,MAAA,aAAA,GAAgB,QAAQ,QAAY,IAAA,UAAA,CAAA;AAE1C,EAAA,KAAA,MAAWA,WAAU,OAAS,EAAA;AAC5B,IAAIA,IAAAA,OAAAA,CAAO,UAAU,CAAA,KAAM,WAAa,EAAA;AACtC,MAAOA,OAAAA,OAAAA,CAAAA;AAAA,KACT;AACA,IAAIA,IAAAA,OAAAA,CAAO,aAAa,CAAG,EAAA;AACzB,MAAA,MAAM,KAAQ,GAAA,gBAAA,CAAiBA,OAAO,CAAA,aAAa,GAAG,WAAW,CAAA,CAAA;AAEjE,MAAA,IAAI,KAAO,EAAA;AACT,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AAAA,KACF;AAAA,GACF;AAEA,EAAO,OAAA,KAAA,CAAA,CAAA;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"tree.js","sources":["../../../../../packages/utils/src/tree.ts"],"sourcesContent":["export interface FindChildrenItem extends Record<string, any> {\r\n label?: any;\r\n value?: any;\r\n children?: FindChildrenItem[];\r\n}\r\n/**\r\n * 获取子节点\r\n */\r\nexport function findChildrenItem(\r\n options: FindChildrenItem[],\r\n targetValue: any,\r\n option?: { value?: string; children?: string },\r\n): FindChildrenItem | undefined {\r\n const valueField = option?.value || 'value';\r\n const childrenField = option?.children || 'children';\r\n\r\n for (const option of options) {\r\n if (option[valueField] === targetValue) {\r\n return option;\r\n }\r\n if (option[childrenField]) {\r\n const found = findChildrenItem(option[childrenField], targetValue);\r\n\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n"],"names":["option"],"mappings":";;AAQgB,SAAA,gBAAA,CACd,OACA,EAAA,WAAA,EACA,MAC8B,EAAA;AAC9B,EAAM,MAAA,UAAA,GAAa,QAAQ,KAAS,IAAA,OAAA,CAAA;AACpC,EAAM,MAAA,aAAA,GAAgB,QAAQ,QAAY,IAAA,UAAA,CAAA;AAE1C,EAAA,KAAA,MAAWA,WAAU,OAAS,EAAA;AAC5B,IAAIA,IAAAA,OAAAA,CAAO,UAAU,CAAA,KAAM,WAAa,EAAA;AACtC,MAAOA,OAAAA,OAAAA,CAAAA;AAAA,KACT;AACA,IAAIA,IAAAA,OAAAA,CAAO,aAAa,CAAG,EAAA;AACzB,MAAA,MAAM,KAAQ,GAAA,gBAAA,CAAiBA,OAAO,CAAA,aAAa,GAAG,WAAW,CAAA,CAAA;AAEjE,MAAA,IAAI,KAAO,EAAA;AACT,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AAAA,KACF;AAAA,GACF;AAEA,EAAO,OAAA,KAAA,CAAA,CAAA;AACT;;;;"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UploadMaterial.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UploadMaterial.vue4.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/es/utils/src/alioss.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/** 上传文件到阿里云 */
|
|
2
|
-
export type AliOssParams = {
|
|
3
|
-
/** 资源文件 */
|
|
4
|
-
file: File;
|
|
5
|
-
/** 文件名 */
|
|
6
|
-
fileName?: string;
|
|
7
|
-
/** 文件存储位置 */
|
|
8
|
-
seat?: string;
|
|
9
|
-
/** 上传到oss的设置 */
|
|
10
|
-
options?: any;
|
|
11
|
-
};
|
|
12
|
-
/** 返回数据 */
|
|
13
|
-
export type AliOssResponse = {
|
|
14
|
-
/** 文件地址 */
|
|
15
|
-
url: string;
|
|
16
|
-
/** 文件名 */
|
|
17
|
-
name: string;
|
|
18
|
-
/** 文件最后修改时间 */
|
|
19
|
-
lastModified: number;
|
|
20
|
-
/** 文件md5 */
|
|
21
|
-
md5: string;
|
|
22
|
-
/** 文件大小 */
|
|
23
|
-
size: number;
|
|
24
|
-
/** 文件后缀 */
|
|
25
|
-
type: string;
|
|
26
|
-
/** 文件库是否存在 */
|
|
27
|
-
isExist: boolean;
|
|
28
|
-
};
|
|
29
|
-
/** 检测广告素材是否已存在 */
|
|
30
|
-
export declare const getFileExist: (md5Code: string, ext: string) => Promise<string | false>;
|
|
31
|
-
/** 上传文件 */
|
|
32
|
-
export declare const aliossPutFile: ({ file, fileName, seat, options }: AliOssParams) => Promise<AliOssResponse>;
|
package/es/utils/src/alioss.mjs
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import AliOss from 'ali-oss';
|
|
2
|
-
import { useAliossStsTokenStore } from '../../hooks/store/useAliossStsToken/index.mjs';
|
|
3
|
-
import '../../api/materialApi/index.mjs';
|
|
4
|
-
import { GmMessage } from '../../components/src/plugins/message/index.mjs';
|
|
5
|
-
import { ts_md5_file } from './crypto/md5.mjs';
|
|
6
|
-
import { getAdFileExist } from '../../api/materialApi/cross/getAdFileExist.mjs';
|
|
7
|
-
|
|
8
|
-
const getParallelPartSize = (size) => {
|
|
9
|
-
const SM = size / 1024 / 1024;
|
|
10
|
-
let parallel = 1;
|
|
11
|
-
let partSize = 1024 * 1024;
|
|
12
|
-
if (SM <= 5) {
|
|
13
|
-
partSize *= 5;
|
|
14
|
-
}
|
|
15
|
-
if (SM > 5 && SM <= 10) {
|
|
16
|
-
parallel = 2;
|
|
17
|
-
partSize *= 4;
|
|
18
|
-
}
|
|
19
|
-
if (SM > 10 && SM <= 30) {
|
|
20
|
-
parallel = 4;
|
|
21
|
-
partSize *= 5;
|
|
22
|
-
}
|
|
23
|
-
if (SM > 30 && SM <= 50) {
|
|
24
|
-
parallel = 6;
|
|
25
|
-
partSize *= 6;
|
|
26
|
-
}
|
|
27
|
-
if (SM > 50) {
|
|
28
|
-
parallel = 8;
|
|
29
|
-
partSize *= 8;
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
parallel,
|
|
33
|
-
partSize
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
const getFileExist = async (md5Code, ext) => {
|
|
37
|
-
const { data } = await getAdFileExist({ md5Code, ext });
|
|
38
|
-
if (data.code !== 0) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
if (!data.data.count) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
return data.data.url;
|
|
45
|
-
};
|
|
46
|
-
const aliossPutFile = async ({ file, fileName, seat, options }) => {
|
|
47
|
-
const md5 = await ts_md5_file(file);
|
|
48
|
-
let { name, lastModified, size } = file;
|
|
49
|
-
const ext = name.match(/\.(\w+)$/)?.[0] || "";
|
|
50
|
-
const url = await getFileExist(md5, ext.replaceAll(".", ""));
|
|
51
|
-
name = (fileName || name).slice(0, name.lastIndexOf("."));
|
|
52
|
-
if (url) {
|
|
53
|
-
return {
|
|
54
|
-
name: name + ext,
|
|
55
|
-
url,
|
|
56
|
-
lastModified,
|
|
57
|
-
md5,
|
|
58
|
-
size,
|
|
59
|
-
type: ext.replaceAll(".", ""),
|
|
60
|
-
isExist: true
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
const aliossStsTokenStore = useAliossStsTokenStore();
|
|
64
|
-
const { AccessKeyId, AccessKeySecret, SecurityToken } = await aliossStsTokenStore.getAliossStsTokenAsync();
|
|
65
|
-
const timestr = Date.now();
|
|
66
|
-
const aliossPath = `material/${seat}/material-file-${timestr}-${size}-${lastModified}${ext}`;
|
|
67
|
-
if (!options) {
|
|
68
|
-
const { parallel, partSize } = getParallelPartSize(size);
|
|
69
|
-
options = options ?? {
|
|
70
|
-
parallel,
|
|
71
|
-
partSize,
|
|
72
|
-
ContentDisposition: `attachment;filename=${encodeURIComponent(name)}${ext};filename*=${encodeURIComponent(name)}${ext}`
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
const ossClient = new AliOss({
|
|
76
|
-
// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
|
|
77
|
-
region: "oss-cn-shenzhen",
|
|
78
|
-
// 从STS服务获取的临时访问密钥(AccessKey ID、AccessKey Secret、StsToken)。
|
|
79
|
-
accessKeyId: AccessKeyId,
|
|
80
|
-
accessKeySecret: AccessKeySecret,
|
|
81
|
-
stsToken: SecurityToken,
|
|
82
|
-
// 刷新临时访问凭证的时间间隔,单位为毫秒。
|
|
83
|
-
refreshSTSTokenInterval: 3e5,
|
|
84
|
-
// 填写Bucket名称。
|
|
85
|
-
bucket: "giikin-material"
|
|
86
|
-
});
|
|
87
|
-
return new Promise((resolve, reject) => {
|
|
88
|
-
try {
|
|
89
|
-
const upload = options.parallel === 1 ? "put" : "multipartUpload";
|
|
90
|
-
ossClient[upload](aliossPath, file, options).then(() => {
|
|
91
|
-
const url2 = `https://sucai.giikin.cn/${aliossPath}`;
|
|
92
|
-
resolve({
|
|
93
|
-
name: name + ext,
|
|
94
|
-
url: url2,
|
|
95
|
-
lastModified,
|
|
96
|
-
md5,
|
|
97
|
-
type: ext.replaceAll(".", ""),
|
|
98
|
-
size,
|
|
99
|
-
isExist: false
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
} catch (error) {
|
|
103
|
-
GmMessage.error(error || "\u4E0A\u4F20\u5931\u8D25");
|
|
104
|
-
reject(error);
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
export { aliossPutFile, getFileExist };
|
|
110
|
-
//# sourceMappingURL=alioss.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alioss.mjs","sources":["../../../../../packages/utils/src/alioss.ts"],"sourcesContent":["import AliOss from 'ali-oss';\r\nimport { useAliossStsTokenStore } from '@giime/hooks/store/useAliossStsToken';\r\nimport { getAdFileExist } from '@giime/api/materialApi';\r\nimport { GmMessage } from '@giime/components/src/plugins/message';\r\nimport { ts_md5_file } from './crypto/md5';\r\n\r\n/** 上传文件到阿里云 */\r\nexport type AliOssParams = {\r\n /** 资源文件 */\r\n file: File;\r\n /** 文件名 */\r\n fileName?: string;\r\n /** 文件存储位置 */\r\n seat?: string;\r\n /** 上传到oss的设置 */\r\n options?: any;\r\n};\r\n\r\n/** 返回数据 */\r\nexport type AliOssResponse = {\r\n /** 文件地址 */\r\n url: string;\r\n /** 文件名 */\r\n name: string;\r\n /** 文件最后修改时间 */\r\n lastModified: number;\r\n /** 文件md5 */\r\n md5: string;\r\n /** 文件大小 */\r\n size: number;\r\n /** 文件后缀 */\r\n type: string;\r\n /** 文件库是否存在 */\r\n isExist: boolean;\r\n};\r\n\r\n/** 文件分片 */\r\nconst getParallelPartSize = (size: number) => {\r\n const SM = size / 1024 / 1024;\r\n let parallel = 1;\r\n let partSize = 1024 * 1024;\r\n if (SM <= 5) {\r\n partSize *= 5;\r\n }\r\n if (SM > 5 && SM <= 10) {\r\n parallel = 2;\r\n partSize *= 4;\r\n }\r\n if (SM > 10 && SM <= 30) {\r\n parallel = 4;\r\n partSize *= 5;\r\n }\r\n if (SM > 30 && SM <= 50) {\r\n parallel = 6;\r\n partSize *= 6;\r\n }\r\n if (SM > 50) {\r\n parallel = 8;\r\n partSize *= 8;\r\n }\r\n\r\n return {\r\n parallel,\r\n partSize,\r\n };\r\n};\r\n\r\n/** 检测广告素材是否已存在 */\r\nexport const getFileExist = async (md5Code: string, ext: string) => {\r\n const { data } = await getAdFileExist({ md5Code, ext });\r\n if (data.code !== 0) {\r\n return false;\r\n }\r\n if (!data.data.count) {\r\n return false;\r\n }\r\n return data.data.url;\r\n};\r\n\r\n/** 上传文件 */\r\nexport const aliossPutFile = async ({ file, fileName, seat, options }: AliOssParams): Promise<AliOssResponse> => {\r\n const md5 = await ts_md5_file(file);\r\n let { name, lastModified, size } = file;\r\n // 截取文件后缀名\r\n const ext = name.match(/\\.(\\w+)$/)?.[0] || '';\r\n const url = await getFileExist(md5, ext.replaceAll('.', ''));\r\n name = (fileName || name).slice(0, name.lastIndexOf('.'));\r\n // 文件已存在直接返回路径\r\n if (url) {\r\n return {\r\n name: name + ext,\r\n url,\r\n lastModified,\r\n md5,\r\n size,\r\n type: ext.replaceAll('.', ''),\r\n isExist: true,\r\n };\r\n }\r\n // 阿里上传权限\r\n const aliossStsTokenStore = useAliossStsTokenStore();\r\n const { AccessKeyId, AccessKeySecret, SecurityToken } = await aliossStsTokenStore.getAliossStsTokenAsync();\r\n\r\n // 文件存储路径\r\n const timestr = Date.now();\r\n const aliossPath = `material/${seat}/material-file-${timestr}-${size}-${lastModified}${ext}`;\r\n\r\n // 根据文件大小设置并发数和分片大小\r\n if (!options) {\r\n const { parallel, partSize } = getParallelPartSize(size);\r\n options = options ?? {\r\n parallel,\r\n partSize,\r\n ContentDisposition: `attachment;filename=${encodeURIComponent(name)}${ext};filename*=${encodeURIComponent(name)}${ext}`,\r\n };\r\n }\r\n\r\n const ossClient = new AliOss({\r\n // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。\r\n region: 'oss-cn-shenzhen',\r\n // 从STS服务获取的临时访问密钥(AccessKey ID、AccessKey Secret、StsToken)。\r\n accessKeyId: AccessKeyId,\r\n accessKeySecret: AccessKeySecret,\r\n stsToken: SecurityToken,\r\n // 刷新临时访问凭证的时间间隔,单位为毫秒。\r\n refreshSTSTokenInterval: 300000,\r\n // 填写Bucket名称。\r\n bucket: 'giikin-material',\r\n });\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // 分片数量大于1,使用 multipartUpload 方法\r\n const upload = options.parallel === 1 ? 'put' : 'multipartUpload';\r\n ossClient[upload](aliossPath, file, options).then(() => {\r\n const url = `https://sucai.giikin.cn/${aliossPath}`;\r\n resolve({\r\n name: name + ext,\r\n url,\r\n lastModified,\r\n md5,\r\n type: ext.replaceAll('.', ''),\r\n size,\r\n isExist: false,\r\n });\r\n });\r\n } catch (error) {\r\n GmMessage.error(error || '上传失败');\r\n reject(error);\r\n }\r\n });\r\n};\r\n"],"names":["url"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UploadMaterial.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UploadMaterial.vue4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/** 上传文件到阿里云 */
|
|
2
|
-
export type AliOssParams = {
|
|
3
|
-
/** 资源文件 */
|
|
4
|
-
file: File;
|
|
5
|
-
/** 文件名 */
|
|
6
|
-
fileName?: string;
|
|
7
|
-
/** 文件存储位置 */
|
|
8
|
-
seat?: string;
|
|
9
|
-
/** 上传到oss的设置 */
|
|
10
|
-
options?: any;
|
|
11
|
-
};
|
|
12
|
-
/** 返回数据 */
|
|
13
|
-
export type AliOssResponse = {
|
|
14
|
-
/** 文件地址 */
|
|
15
|
-
url: string;
|
|
16
|
-
/** 文件名 */
|
|
17
|
-
name: string;
|
|
18
|
-
/** 文件最后修改时间 */
|
|
19
|
-
lastModified: number;
|
|
20
|
-
/** 文件md5 */
|
|
21
|
-
md5: string;
|
|
22
|
-
/** 文件大小 */
|
|
23
|
-
size: number;
|
|
24
|
-
/** 文件后缀 */
|
|
25
|
-
type: string;
|
|
26
|
-
/** 文件库是否存在 */
|
|
27
|
-
isExist: boolean;
|
|
28
|
-
};
|
|
29
|
-
/** 检测广告素材是否已存在 */
|
|
30
|
-
export declare const getFileExist: (md5Code: string, ext: string) => Promise<string | false>;
|
|
31
|
-
/** 上传文件 */
|
|
32
|
-
export declare const aliossPutFile: ({ file, fileName, seat, options }: AliOssParams) => Promise<AliOssResponse>;
|
package/lib/utils/src/alioss.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var AliOss = require('ali-oss');
|
|
4
|
-
var index = require('../../hooks/store/useAliossStsToken/index.js');
|
|
5
|
-
require('../../api/materialApi/index.js');
|
|
6
|
-
var index$1 = require('../../components/src/plugins/message/index.js');
|
|
7
|
-
var md5 = require('./crypto/md5.js');
|
|
8
|
-
var getAdFileExist = require('../../api/materialApi/cross/getAdFileExist.js');
|
|
9
|
-
|
|
10
|
-
const getParallelPartSize = (size) => {
|
|
11
|
-
const SM = size / 1024 / 1024;
|
|
12
|
-
let parallel = 1;
|
|
13
|
-
let partSize = 1024 * 1024;
|
|
14
|
-
if (SM <= 5) {
|
|
15
|
-
partSize *= 5;
|
|
16
|
-
}
|
|
17
|
-
if (SM > 5 && SM <= 10) {
|
|
18
|
-
parallel = 2;
|
|
19
|
-
partSize *= 4;
|
|
20
|
-
}
|
|
21
|
-
if (SM > 10 && SM <= 30) {
|
|
22
|
-
parallel = 4;
|
|
23
|
-
partSize *= 5;
|
|
24
|
-
}
|
|
25
|
-
if (SM > 30 && SM <= 50) {
|
|
26
|
-
parallel = 6;
|
|
27
|
-
partSize *= 6;
|
|
28
|
-
}
|
|
29
|
-
if (SM > 50) {
|
|
30
|
-
parallel = 8;
|
|
31
|
-
partSize *= 8;
|
|
32
|
-
}
|
|
33
|
-
return {
|
|
34
|
-
parallel,
|
|
35
|
-
partSize
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
const getFileExist = async (md5Code, ext) => {
|
|
39
|
-
const { data } = await getAdFileExist.getAdFileExist({ md5Code, ext });
|
|
40
|
-
if (data.code !== 0) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
if (!data.data.count) {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
return data.data.url;
|
|
47
|
-
};
|
|
48
|
-
const aliossPutFile = async ({ file, fileName, seat, options }) => {
|
|
49
|
-
const md5$1 = await md5.ts_md5_file(file);
|
|
50
|
-
let { name, lastModified, size } = file;
|
|
51
|
-
const ext = name.match(/\.(\w+)$/)?.[0] || "";
|
|
52
|
-
const url = await getFileExist(md5$1, ext.replaceAll(".", ""));
|
|
53
|
-
name = (fileName || name).slice(0, name.lastIndexOf("."));
|
|
54
|
-
if (url) {
|
|
55
|
-
return {
|
|
56
|
-
name: name + ext,
|
|
57
|
-
url,
|
|
58
|
-
lastModified,
|
|
59
|
-
md5: md5$1,
|
|
60
|
-
size,
|
|
61
|
-
type: ext.replaceAll(".", ""),
|
|
62
|
-
isExist: true
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
const aliossStsTokenStore = index.useAliossStsTokenStore();
|
|
66
|
-
const { AccessKeyId, AccessKeySecret, SecurityToken } = await aliossStsTokenStore.getAliossStsTokenAsync();
|
|
67
|
-
const timestr = Date.now();
|
|
68
|
-
const aliossPath = `material/${seat}/material-file-${timestr}-${size}-${lastModified}${ext}`;
|
|
69
|
-
if (!options) {
|
|
70
|
-
const { parallel, partSize } = getParallelPartSize(size);
|
|
71
|
-
options = options ?? {
|
|
72
|
-
parallel,
|
|
73
|
-
partSize,
|
|
74
|
-
ContentDisposition: `attachment;filename=${encodeURIComponent(name)}${ext};filename*=${encodeURIComponent(name)}${ext}`
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
const ossClient = new AliOss({
|
|
78
|
-
// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
|
|
79
|
-
region: "oss-cn-shenzhen",
|
|
80
|
-
// 从STS服务获取的临时访问密钥(AccessKey ID、AccessKey Secret、StsToken)。
|
|
81
|
-
accessKeyId: AccessKeyId,
|
|
82
|
-
accessKeySecret: AccessKeySecret,
|
|
83
|
-
stsToken: SecurityToken,
|
|
84
|
-
// 刷新临时访问凭证的时间间隔,单位为毫秒。
|
|
85
|
-
refreshSTSTokenInterval: 3e5,
|
|
86
|
-
// 填写Bucket名称。
|
|
87
|
-
bucket: "giikin-material"
|
|
88
|
-
});
|
|
89
|
-
return new Promise((resolve, reject) => {
|
|
90
|
-
try {
|
|
91
|
-
const upload = options.parallel === 1 ? "put" : "multipartUpload";
|
|
92
|
-
ossClient[upload](aliossPath, file, options).then(() => {
|
|
93
|
-
const url2 = `https://sucai.giikin.cn/${aliossPath}`;
|
|
94
|
-
resolve({
|
|
95
|
-
name: name + ext,
|
|
96
|
-
url: url2,
|
|
97
|
-
lastModified,
|
|
98
|
-
md5: md5$1,
|
|
99
|
-
type: ext.replaceAll(".", ""),
|
|
100
|
-
size,
|
|
101
|
-
isExist: false
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
} catch (error) {
|
|
105
|
-
index$1.GmMessage.error(error || "\u4E0A\u4F20\u5931\u8D25");
|
|
106
|
-
reject(error);
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
exports.aliossPutFile = aliossPutFile;
|
|
112
|
-
exports.getFileExist = getFileExist;
|
|
113
|
-
//# sourceMappingURL=alioss.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alioss.js","sources":["../../../../../packages/utils/src/alioss.ts"],"sourcesContent":["import AliOss from 'ali-oss';\r\nimport { useAliossStsTokenStore } from '@giime/hooks/store/useAliossStsToken';\r\nimport { getAdFileExist } from '@giime/api/materialApi';\r\nimport { GmMessage } from '@giime/components/src/plugins/message';\r\nimport { ts_md5_file } from './crypto/md5';\r\n\r\n/** 上传文件到阿里云 */\r\nexport type AliOssParams = {\r\n /** 资源文件 */\r\n file: File;\r\n /** 文件名 */\r\n fileName?: string;\r\n /** 文件存储位置 */\r\n seat?: string;\r\n /** 上传到oss的设置 */\r\n options?: any;\r\n};\r\n\r\n/** 返回数据 */\r\nexport type AliOssResponse = {\r\n /** 文件地址 */\r\n url: string;\r\n /** 文件名 */\r\n name: string;\r\n /** 文件最后修改时间 */\r\n lastModified: number;\r\n /** 文件md5 */\r\n md5: string;\r\n /** 文件大小 */\r\n size: number;\r\n /** 文件后缀 */\r\n type: string;\r\n /** 文件库是否存在 */\r\n isExist: boolean;\r\n};\r\n\r\n/** 文件分片 */\r\nconst getParallelPartSize = (size: number) => {\r\n const SM = size / 1024 / 1024;\r\n let parallel = 1;\r\n let partSize = 1024 * 1024;\r\n if (SM <= 5) {\r\n partSize *= 5;\r\n }\r\n if (SM > 5 && SM <= 10) {\r\n parallel = 2;\r\n partSize *= 4;\r\n }\r\n if (SM > 10 && SM <= 30) {\r\n parallel = 4;\r\n partSize *= 5;\r\n }\r\n if (SM > 30 && SM <= 50) {\r\n parallel = 6;\r\n partSize *= 6;\r\n }\r\n if (SM > 50) {\r\n parallel = 8;\r\n partSize *= 8;\r\n }\r\n\r\n return {\r\n parallel,\r\n partSize,\r\n };\r\n};\r\n\r\n/** 检测广告素材是否已存在 */\r\nexport const getFileExist = async (md5Code: string, ext: string) => {\r\n const { data } = await getAdFileExist({ md5Code, ext });\r\n if (data.code !== 0) {\r\n return false;\r\n }\r\n if (!data.data.count) {\r\n return false;\r\n }\r\n return data.data.url;\r\n};\r\n\r\n/** 上传文件 */\r\nexport const aliossPutFile = async ({ file, fileName, seat, options }: AliOssParams): Promise<AliOssResponse> => {\r\n const md5 = await ts_md5_file(file);\r\n let { name, lastModified, size } = file;\r\n // 截取文件后缀名\r\n const ext = name.match(/\\.(\\w+)$/)?.[0] || '';\r\n const url = await getFileExist(md5, ext.replaceAll('.', ''));\r\n name = (fileName || name).slice(0, name.lastIndexOf('.'));\r\n // 文件已存在直接返回路径\r\n if (url) {\r\n return {\r\n name: name + ext,\r\n url,\r\n lastModified,\r\n md5,\r\n size,\r\n type: ext.replaceAll('.', ''),\r\n isExist: true,\r\n };\r\n }\r\n // 阿里上传权限\r\n const aliossStsTokenStore = useAliossStsTokenStore();\r\n const { AccessKeyId, AccessKeySecret, SecurityToken } = await aliossStsTokenStore.getAliossStsTokenAsync();\r\n\r\n // 文件存储路径\r\n const timestr = Date.now();\r\n const aliossPath = `material/${seat}/material-file-${timestr}-${size}-${lastModified}${ext}`;\r\n\r\n // 根据文件大小设置并发数和分片大小\r\n if (!options) {\r\n const { parallel, partSize } = getParallelPartSize(size);\r\n options = options ?? {\r\n parallel,\r\n partSize,\r\n ContentDisposition: `attachment;filename=${encodeURIComponent(name)}${ext};filename*=${encodeURIComponent(name)}${ext}`,\r\n };\r\n }\r\n\r\n const ossClient = new AliOss({\r\n // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。\r\n region: 'oss-cn-shenzhen',\r\n // 从STS服务获取的临时访问密钥(AccessKey ID、AccessKey Secret、StsToken)。\r\n accessKeyId: AccessKeyId,\r\n accessKeySecret: AccessKeySecret,\r\n stsToken: SecurityToken,\r\n // 刷新临时访问凭证的时间间隔,单位为毫秒。\r\n refreshSTSTokenInterval: 300000,\r\n // 填写Bucket名称。\r\n bucket: 'giikin-material',\r\n });\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // 分片数量大于1,使用 multipartUpload 方法\r\n const upload = options.parallel === 1 ? 'put' : 'multipartUpload';\r\n ossClient[upload](aliossPath, file, options).then(() => {\r\n const url = `https://sucai.giikin.cn/${aliossPath}`;\r\n resolve({\r\n name: name + ext,\r\n url,\r\n lastModified,\r\n md5,\r\n type: ext.replaceAll('.', ''),\r\n size,\r\n isExist: false,\r\n });\r\n });\r\n } catch (error) {\r\n GmMessage.error(error || '上传失败');\r\n reject(error);\r\n }\r\n });\r\n};\r\n"],"names":["getAdFileExist","md5","ts_md5_file","useAliossStsTokenStore","url","GmMessage"],"mappings":"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"}
|