giime 0.6.35 → 0.6.37
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 +138 -138
- package/es/components/src/base/datePicker/DatePicker.vue.d.ts +3 -3
- package/es/components/src/base/datePicker/datePicker.d.ts +1 -1
- package/es/components/src/base/datePicker/index.d.ts +7 -7
- package/es/components/src/business/uploadPro/UploadPro.vue.mjs +1 -1
- package/es/components/src/business/uploadPro/UploadPro.vue2.mjs +38 -6
- package/es/components/src/business/uploadPro/UploadPro.vue2.mjs.map +1 -1
- package/es/components/src/business/uploadPro/uploadPro.mjs +1 -1
- package/es/components/src/business/uploadPro/uploadPro.mjs.map +1 -1
- package/es/components/src/composite/previewFile/PreviewFile.vue2.mjs +3 -2
- package/es/components/src/composite/previewFile/PreviewFile.vue2.mjs.map +1 -1
- package/es/components/src/composite/searchForm/searchFormItems/cascader/SearchFormCascader.vue2.mjs +1 -1
- package/es/components/src/composite/searchForm/searchFormItems/cascader/SearchFormCascader.vue2.mjs.map +1 -1
- package/es/components/src/composite/searchForm/searchFormItems/datePicker/SearchFormDatePicker.vue.d.ts +2 -5
- package/es/components/src/composite/searchForm/searchFormItems/datePicker/SearchFormDatePicker.vue2.mjs +6 -2
- package/es/components/src/composite/searchForm/searchFormItems/datePicker/SearchFormDatePicker.vue2.mjs.map +1 -1
- package/es/components/src/composite/searchForm/searchFormItems/datePicker/index.d.ts +2 -5
- package/es/components/src/composite/searchForm/searchFormItems/datePicker/searchFormDatePicker.d.ts +1 -2
- package/es/components/src/composite/searchForm/searchFormItems/datePicker/searchFormDatePicker.mjs +2 -2
- package/es/components/src/composite/searchForm/searchFormItems/datePicker/searchFormDatePicker.mjs.map +1 -1
- package/es/giime/index.mjs +2 -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/hooks/base/useDownload/index.mjs +27 -12
- package/es/hooks/base/useDownload/index.mjs.map +1 -1
- package/es/hooks/base/useUploadFile/index.d.ts +8 -1
- package/es/hooks/base/useUploadFile/index.mjs +36 -5
- package/es/hooks/base/useUploadFile/index.mjs.map +1 -1
- package/es/index.css +138 -138
- package/es/utils/index.mjs +2 -1
- package/es/utils/index.mjs.map +1 -1
- package/es/utils/src/date/dateShortcuts.d.ts +2 -2
- package/es/utils/src/date/dateShortcuts.mjs +87 -82
- package/es/utils/src/date/dateShortcuts.mjs.map +1 -1
- package/es/utils/src/file.d.ts +1 -6
- package/es/utils/src/file.mjs +2 -9
- package/es/utils/src/file.mjs.map +1 -1
- package/es/utils/src/http/interceptors.d.ts +1 -1
- package/es/utils/src/http/interceptors.mjs +4 -1
- package/es/utils/src/http/interceptors.mjs.map +1 -1
- package/lib/components/src/base/datePicker/DatePicker.vue.d.ts +3 -3
- package/lib/components/src/base/datePicker/datePicker.d.ts +1 -1
- package/lib/components/src/base/datePicker/index.d.ts +7 -7
- package/lib/components/src/business/uploadPro/UploadPro.vue.js +1 -1
- package/lib/components/src/business/uploadPro/UploadPro.vue2.js +38 -6
- package/lib/components/src/business/uploadPro/UploadPro.vue2.js.map +1 -1
- package/lib/components/src/business/uploadPro/uploadPro.js +1 -1
- package/lib/components/src/business/uploadPro/uploadPro.js.map +1 -1
- package/lib/components/src/composite/previewFile/PreviewFile.vue2.js +6 -5
- package/lib/components/src/composite/previewFile/PreviewFile.vue2.js.map +1 -1
- package/lib/components/src/composite/searchForm/searchFormItems/cascader/SearchFormCascader.vue2.js +1 -1
- package/lib/components/src/composite/searchForm/searchFormItems/cascader/SearchFormCascader.vue2.js.map +1 -1
- package/lib/components/src/composite/searchForm/searchFormItems/datePicker/SearchFormDatePicker.vue.d.ts +2 -5
- package/lib/components/src/composite/searchForm/searchFormItems/datePicker/SearchFormDatePicker.vue2.js +6 -2
- package/lib/components/src/composite/searchForm/searchFormItems/datePicker/SearchFormDatePicker.vue2.js.map +1 -1
- package/lib/components/src/composite/searchForm/searchFormItems/datePicker/index.d.ts +2 -5
- package/lib/components/src/composite/searchForm/searchFormItems/datePicker/searchFormDatePicker.d.ts +1 -2
- package/lib/components/src/composite/searchForm/searchFormItems/datePicker/searchFormDatePicker.js +2 -2
- package/lib/components/src/composite/searchForm/searchFormItems/datePicker/searchFormDatePicker.js.map +1 -1
- package/lib/giime/index.js +5 -1
- package/lib/giime/index.js.map +1 -1
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/lib/hooks/base/useDownload/index.js +27 -12
- package/lib/hooks/base/useDownload/index.js.map +1 -1
- package/lib/hooks/base/useUploadFile/index.d.ts +8 -1
- package/lib/hooks/base/useUploadFile/index.js +36 -5
- package/lib/hooks/base/useUploadFile/index.js.map +1 -1
- package/lib/index.css +138 -138
- package/lib/utils/index.js +5 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/src/date/dateShortcuts.d.ts +2 -2
- package/lib/utils/src/date/dateShortcuts.js +87 -82
- package/lib/utils/src/date/dateShortcuts.js.map +1 -1
- package/lib/utils/src/file.d.ts +1 -6
- package/lib/utils/src/file.js +5 -9
- package/lib/utils/src/file.js.map +1 -1
- package/lib/utils/src/http/interceptors.d.ts +1 -1
- package/lib/utils/src/http/interceptors.js +4 -1
- package/lib/utils/src/http/interceptors.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,88 @@
|
|
|
1
1
|
import dayjs from 'dayjs';
|
|
2
2
|
|
|
3
3
|
const getDateShortcuts = (type) => {
|
|
4
|
+
const daterangeShortcutValue = [
|
|
5
|
+
{
|
|
6
|
+
text: "\u672C\u5468",
|
|
7
|
+
value: () => {
|
|
8
|
+
const start = dayjs().startOf("week").toDate();
|
|
9
|
+
const end = dayjs().endOf("week").toDate();
|
|
10
|
+
return [start, end];
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
text: "\u672C\u6708",
|
|
15
|
+
value: () => {
|
|
16
|
+
const start = dayjs().startOf("month").toDate();
|
|
17
|
+
const end = dayjs().endOf("month").toDate();
|
|
18
|
+
return [start, end];
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
text: "\u4E0A\u6708",
|
|
23
|
+
value: () => {
|
|
24
|
+
const now = dayjs();
|
|
25
|
+
const startOfThisMonth = now.startOf("month");
|
|
26
|
+
const endOfLastMonth = startOfThisMonth.subtract(1, "day");
|
|
27
|
+
const startOfLastMonth = endOfLastMonth.startOf("month");
|
|
28
|
+
return [startOfLastMonth.toDate(), endOfLastMonth.toDate()];
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
text: "\u8FD13\u5929",
|
|
33
|
+
value: () => {
|
|
34
|
+
const end = /* @__PURE__ */ new Date();
|
|
35
|
+
const start = /* @__PURE__ */ new Date();
|
|
36
|
+
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 2);
|
|
37
|
+
return [start, end];
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
text: "\u8FD17\u5929",
|
|
42
|
+
value: () => {
|
|
43
|
+
const end = /* @__PURE__ */ new Date();
|
|
44
|
+
const start = /* @__PURE__ */ new Date();
|
|
45
|
+
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 6);
|
|
46
|
+
return [start, end];
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
text: "\u8FD115\u5929",
|
|
51
|
+
value: () => {
|
|
52
|
+
const end = /* @__PURE__ */ new Date();
|
|
53
|
+
const start = /* @__PURE__ */ new Date();
|
|
54
|
+
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 14);
|
|
55
|
+
return [start, end];
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
text: "\u8FD130\u5929",
|
|
60
|
+
value: () => {
|
|
61
|
+
const end = /* @__PURE__ */ new Date();
|
|
62
|
+
const start = /* @__PURE__ */ new Date();
|
|
63
|
+
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 29);
|
|
64
|
+
return [start, end];
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
text: "\u8FD160\u5929",
|
|
69
|
+
value: () => {
|
|
70
|
+
const end = /* @__PURE__ */ new Date();
|
|
71
|
+
const start = /* @__PURE__ */ new Date();
|
|
72
|
+
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 59);
|
|
73
|
+
return [start, end];
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
text: "\u8FD190\u5929",
|
|
78
|
+
value: () => {
|
|
79
|
+
const end = /* @__PURE__ */ new Date();
|
|
80
|
+
const start = /* @__PURE__ */ new Date();
|
|
81
|
+
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 89);
|
|
82
|
+
return [start, end];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
];
|
|
4
86
|
const shortcuts = [
|
|
5
87
|
{
|
|
6
88
|
type: "date",
|
|
@@ -29,88 +111,11 @@ const getDateShortcuts = (type) => {
|
|
|
29
111
|
},
|
|
30
112
|
{
|
|
31
113
|
type: "daterange",
|
|
32
|
-
values:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const end = dayjs().endOf("week").toDate();
|
|
38
|
-
return [start, end];
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
text: "\u672C\u6708",
|
|
43
|
-
value: () => {
|
|
44
|
-
const start = dayjs().startOf("month").toDate();
|
|
45
|
-
const end = dayjs().endOf("month").toDate();
|
|
46
|
-
return [start, end];
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
text: "\u4E0A\u6708",
|
|
51
|
-
value: () => {
|
|
52
|
-
const now = dayjs();
|
|
53
|
-
const startOfThisMonth = now.startOf("month");
|
|
54
|
-
const endOfLastMonth = startOfThisMonth.subtract(1, "day");
|
|
55
|
-
const startOfLastMonth = endOfLastMonth.startOf("month");
|
|
56
|
-
return [startOfLastMonth.toDate(), endOfLastMonth.toDate()];
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
text: "\u8FD13\u5929",
|
|
61
|
-
value: () => {
|
|
62
|
-
const end = /* @__PURE__ */ new Date();
|
|
63
|
-
const start = /* @__PURE__ */ new Date();
|
|
64
|
-
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 2);
|
|
65
|
-
return [start, end];
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
text: "\u8FD17\u5929",
|
|
70
|
-
value: () => {
|
|
71
|
-
const end = /* @__PURE__ */ new Date();
|
|
72
|
-
const start = /* @__PURE__ */ new Date();
|
|
73
|
-
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 6);
|
|
74
|
-
return [start, end];
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
text: "\u8FD115\u5929",
|
|
79
|
-
value: () => {
|
|
80
|
-
const end = /* @__PURE__ */ new Date();
|
|
81
|
-
const start = /* @__PURE__ */ new Date();
|
|
82
|
-
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 14);
|
|
83
|
-
return [start, end];
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
text: "\u8FD130\u5929",
|
|
88
|
-
value: () => {
|
|
89
|
-
const end = /* @__PURE__ */ new Date();
|
|
90
|
-
const start = /* @__PURE__ */ new Date();
|
|
91
|
-
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 29);
|
|
92
|
-
return [start, end];
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
text: "\u8FD160\u5929",
|
|
97
|
-
value: () => {
|
|
98
|
-
const end = /* @__PURE__ */ new Date();
|
|
99
|
-
const start = /* @__PURE__ */ new Date();
|
|
100
|
-
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 59);
|
|
101
|
-
return [start, end];
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
text: "\u8FD190\u5929",
|
|
106
|
-
value: () => {
|
|
107
|
-
const end = /* @__PURE__ */ new Date();
|
|
108
|
-
const start = /* @__PURE__ */ new Date();
|
|
109
|
-
start.setTime(start.getTime() - 3600 * 1e3 * 24 * 89);
|
|
110
|
-
return [start, end];
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
]
|
|
114
|
+
values: daterangeShortcutValue
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: "datetimerange",
|
|
118
|
+
values: daterangeShortcutValue
|
|
114
119
|
}
|
|
115
120
|
];
|
|
116
121
|
return shortcuts.find((it) => it.type === type)?.values ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateShortcuts.mjs","sources":["../../../../../../packages/utils/src/date/dateShortcuts.ts"],"sourcesContent":["import dayjs from 'dayjs';\n/**\n * 日期快捷选项\n * @param type\n * @returns\n */\nexport const getDateShortcuts = (type: string) => {\n const
|
|
1
|
+
{"version":3,"file":"dateShortcuts.mjs","sources":["../../../../../../packages/utils/src/date/dateShortcuts.ts"],"sourcesContent":["import dayjs from 'dayjs';\n/**\n * 日期快捷选项\n * @param type\n * @returns\n */\nexport const getDateShortcuts = (type: string) => {\n const daterangeShortcutValue = [\n {\n text: '本周',\n value: () => {\n const start = dayjs().startOf('week').toDate(); // 本周开始日期\n const end = dayjs().endOf('week').toDate(); // 本周结束日期\n return [start, end];\n },\n },\n {\n text: '本月',\n value: () => {\n const start = dayjs().startOf('month').toDate(); // 本周开始日期\n const end = dayjs().endOf('month').toDate(); // 本周结束日期\n return [start, end];\n },\n },\n {\n text: '上月',\n value: () => {\n // 获取当前日期\n const now = dayjs();\n\n // 获取当前月份的第一天\n const startOfThisMonth = now.startOf('month');\n\n // 获取上个月的最后一天(即这个月的第一天的前一天)\n const endOfLastMonth = startOfThisMonth.subtract(1, 'day');\n\n // 获取上个月的第一天\n const startOfLastMonth = endOfLastMonth.startOf('month');\n return [startOfLastMonth.toDate(), endOfLastMonth.toDate()];\n },\n },\n {\n text: '近3天',\n value: () => {\n const end = new Date();\n const start = new Date();\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 2);\n return [start, end];\n },\n },\n\n {\n text: '近7天',\n value: () => {\n const end = new Date();\n const start = new Date();\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);\n return [start, end];\n },\n },\n {\n text: '近15天',\n value: () => {\n const end = new Date();\n const start = new Date();\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 14);\n return [start, end];\n },\n },\n\n {\n text: '近30天',\n value: () => {\n const end = new Date();\n const start = new Date();\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 29);\n return [start, end];\n },\n },\n {\n text: '近60天',\n value: () => {\n const end = new Date();\n const start = new Date();\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 59);\n return [start, end];\n },\n },\n {\n text: '近90天',\n value: () => {\n const end = new Date();\n const start = new Date();\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 89);\n return [start, end];\n },\n },\n ];\n const shortcuts = [\n {\n type: 'date',\n values: [\n {\n text: '今天',\n value: () => new Date(),\n },\n {\n text: '昨天',\n value: () => {\n const date = new Date();\n date.setTime(date.getTime() - 3600 * 1000 * 24);\n return date;\n },\n },\n {\n text: '一周前',\n value: () => {\n const date = new Date();\n date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);\n return date;\n },\n },\n ],\n },\n {\n type: 'daterange',\n values: daterangeShortcutValue,\n },\n {\n type: 'datetimerange',\n values: daterangeShortcutValue,\n },\n ];\n return shortcuts.find(it => it.type === type)?.values ?? [];\n};\n"],"names":[],"mappings":"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"}
|
package/es/utils/src/file.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { genFileId } from 'element-plus';
|
|
1
2
|
export interface FileConversionOptions {
|
|
2
3
|
mimeType?: string;
|
|
3
4
|
}
|
|
@@ -89,9 +90,3 @@ export declare const getVideoInfo: (url: string) => Promise<{
|
|
|
89
90
|
height: number;
|
|
90
91
|
duration: number;
|
|
91
92
|
}>;
|
|
92
|
-
/**
|
|
93
|
-
* 下载文件
|
|
94
|
-
* @param url 文件链接
|
|
95
|
-
* @param filename 文件名
|
|
96
|
-
*/
|
|
97
|
-
export declare const downloadFile: (url: string, filename?: string) => void;
|
package/es/utils/src/file.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { md5 } from 'js-md5';
|
|
2
|
+
export { genFileId } from 'element-plus';
|
|
2
3
|
|
|
3
4
|
async function urlToBlob(url) {
|
|
4
5
|
const response = await fetch(url);
|
|
@@ -103,14 +104,6 @@ const getVideoInfo = (url) => {
|
|
|
103
104
|
video.src = url;
|
|
104
105
|
});
|
|
105
106
|
};
|
|
106
|
-
const downloadFile = (url, filename = "\u4E0B\u8F7D\u6587\u4EF6") => {
|
|
107
|
-
fetch(url).then((response) => response.blob()).then((blob) => {
|
|
108
|
-
const a = document.createElement("a");
|
|
109
|
-
a.href = URL.createObjectURL(blob);
|
|
110
|
-
a.download = filename;
|
|
111
|
-
a.click();
|
|
112
|
-
});
|
|
113
|
-
};
|
|
114
107
|
|
|
115
|
-
export { base64ToBlob, base64ToFile, blobToBase64, blobToFile,
|
|
108
|
+
export { base64ToBlob, base64ToFile, blobToBase64, blobToFile, fileMd5, fileToBase64, fileToBlob, fileToUrl, fileValidType, getImageInfo, getVideoInfo, urlToBlob, urlToFile };
|
|
116
109
|
//# sourceMappingURL=file.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.mjs","sources":["../../../../../packages/utils/src/file.ts"],"sourcesContent":["import { md5 } from 'js-md5';\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\n/**\n * 下载文件\n * @param url 文件链接\n * @param filename 文件名\n */\nexport const downloadFile = (url: string, filename: string = '下载文件') => {\n fetch(url)\n .then(response => response.blob())\n .then(blob => {\n const a = document.createElement('a');\n a.href = URL.createObjectURL(blob);\n a.download = filename;\n a.click();\n });\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file.mjs","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":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { AxiosInstance, InternalAxiosRequestConfig } from 'axios';
|
|
2
|
-
export declare const res401Interceptors: (service
|
|
2
|
+
export declare const res401Interceptors: (service?: AxiosInstance, config?: InternalAxiosRequestConfig) => Promise<import("axios").AxiosResponse<any, any>>;
|
|
3
3
|
export declare const req401Interceptors: () => boolean;
|
|
@@ -21,7 +21,10 @@ const res401Interceptors = async (service, config) => {
|
|
|
21
21
|
if (!res) {
|
|
22
22
|
return Promise.reject({ code: 400, data: null, message: "\u767B\u5F55\u5F39\u7A97\u5DF2\u5173\u95ED" });
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
if (service && config) {
|
|
25
|
+
return service(config);
|
|
26
|
+
}
|
|
27
|
+
return Promise.reject("\u672C\u6B21\u8BF7\u6C42\u7ED3\u675F");
|
|
25
28
|
};
|
|
26
29
|
const req401Interceptors = () => {
|
|
27
30
|
const logingStore = useLoginStore();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptors.mjs","sources":["../../../../../../packages/utils/src/http/interceptors.ts"],"sourcesContent":["import Cookie from 'js-cookie';\nimport { ElMessage } from 'element-plus';\nimport { useLoginStore } from '@giime/hooks/store/useLogin';\nimport type { AxiosInstance, InternalAxiosRequestConfig } from 'axios';\n\n// 响应拦截器中 401时 展示登录弹窗\nexport const res401Interceptors = async (service
|
|
1
|
+
{"version":3,"file":"interceptors.mjs","sources":["../../../../../../packages/utils/src/http/interceptors.ts"],"sourcesContent":["import Cookie from 'js-cookie';\nimport { ElMessage } from 'element-plus';\nimport { useLoginStore } from '@giime/hooks/store/useLogin';\nimport type { AxiosInstance, InternalAxiosRequestConfig } from 'axios';\n\n// 响应拦截器中 401时 展示登录弹窗\nexport const res401Interceptors = async (service?: AxiosInstance, config?: InternalAxiosRequestConfig) => {\n const logingStore = useLoginStore();\n Cookie.remove('token', { domain: '.giikin.com' });\n Cookie.remove('token', { domain: '.giikin.cn' });\n Cookie.remove('token');\n logingStore.userToken = undefined;\n logingStore.userId = undefined;\n // Vue.prototype.$hideLoading();\n logingStore.showLogin = true;\n ElMessage({\n message: '请在弹框中重新登录',\n type: 'error',\n duration: 5 * 1000,\n grouping: true,\n showClose: true,\n });\n // 登录成功后重新发起请求\n // 等待登录 或 等待关闭登录弹窗\n const res = await Promise.race([logingStore.onLoginResultPromise(), logingStore.onCloseLoginResultPromise()]);\n if (!res) {\n return Promise.reject({ code: 400, data: null, message: '登录弹窗已关闭' });\n }\n // 重新发送请求\n if (service && config) {\n return service(config);\n }\n return Promise.reject('本次请求结束');\n // return Promise.reject('请重新登录');\n};\n// 请求拦截器中,没有token时 展示登录弹窗\nexport const req401Interceptors = () => {\n const logingStore = useLoginStore();\n // Vue.prototype.$hideLoading();\n ElMessage({\n message: '请在弹框中重新登录',\n type: 'error',\n duration: 5 * 1000,\n grouping: true,\n showClose: true,\n });\n return (logingStore.showLogin = true);\n};\n"],"names":["Cookie"],"mappings":";;;;AAMa,MAAA,kBAAA,GAAqB,OAAO,OAAA,EAAyB,MAAwC,KAAA;AACxG,EAAA,MAAM,cAAc,aAAc,EAAA,CAAA;AAClC,EAAAA,OAAA,CAAO,MAAO,CAAA,OAAA,EAAS,EAAE,MAAA,EAAQ,eAAe,CAAA,CAAA;AAChD,EAAAA,OAAA,CAAO,MAAO,CAAA,OAAA,EAAS,EAAE,MAAA,EAAQ,cAAc,CAAA,CAAA;AAC/C,EAAAA,OAAA,CAAO,OAAO,OAAO,CAAA,CAAA;AACrB,EAAA,WAAA,CAAY,SAAY,GAAA,KAAA,CAAA,CAAA;AACxB,EAAA,WAAA,CAAY,MAAS,GAAA,KAAA,CAAA,CAAA;AAErB,EAAA,WAAA,CAAY,SAAY,GAAA,IAAA,CAAA;AACxB,EAAU,SAAA,CAAA;AAAA,IACR,OAAS,EAAA,wDAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,UAAU,CAAI,GAAA,GAAA;AAAA,IACd,QAAU,EAAA,IAAA;AAAA,IACV,SAAW,EAAA,IAAA;AAAA,GACZ,CAAA,CAAA;AAGD,EAAM,MAAA,GAAA,GAAM,MAAM,OAAA,CAAQ,IAAK,CAAA,CAAC,WAAY,CAAA,oBAAA,EAAwB,EAAA,WAAA,CAAY,yBAA0B,EAAC,CAAC,CAAA,CAAA;AAC5G,EAAA,IAAI,CAAC,GAAK,EAAA;AACR,IAAO,OAAA,OAAA,CAAQ,OAAO,EAAE,IAAA,EAAM,KAAK,IAAM,EAAA,IAAA,EAAM,OAAS,EAAA,4CAAA,EAAW,CAAA,CAAA;AAAA,GACrE;AAEA,EAAA,IAAI,WAAW,MAAQ,EAAA;AACrB,IAAA,OAAO,QAAQ,MAAM,CAAA,CAAA;AAAA,GACvB;AACA,EAAO,OAAA,OAAA,CAAQ,OAAO,sCAAQ,CAAA,CAAA;AAEhC,EAAA;AAEO,MAAM,qBAAqB,MAAM;AACtC,EAAA,MAAM,cAAc,aAAc,EAAA,CAAA;AAElC,EAAU,SAAA,CAAA;AAAA,IACR,OAAS,EAAA,wDAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,UAAU,CAAI,GAAA,GAAA;AAAA,IACd,QAAU,EAAA,IAAA;AAAA,IACV,SAAW,EAAA,IAAA;AAAA,GACZ,CAAA,CAAA;AACD,EAAA,OAAQ,YAAY,SAAY,GAAA,IAAA,CAAA;AAClC;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DatePickerInstance } from 'element-plus';
|
|
2
2
|
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
3
3
|
type: {
|
|
4
|
-
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
4
|
+
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange">;
|
|
5
5
|
default: "date";
|
|
6
6
|
};
|
|
7
7
|
shortcuts: {
|
|
@@ -107,7 +107,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
107
107
|
"visible-change": (...args: any[]) => void;
|
|
108
108
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
109
109
|
type: {
|
|
110
|
-
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
110
|
+
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange">;
|
|
111
111
|
default: "date";
|
|
112
112
|
};
|
|
113
113
|
shortcuts: {
|
|
@@ -207,7 +207,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
207
207
|
"onPanel-change"?: ((...args: any[]) => any) | undefined;
|
|
208
208
|
"onVisible-change"?: ((...args: any[]) => any) | undefined;
|
|
209
209
|
}, {
|
|
210
|
-
type: "date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
210
|
+
type: "date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange";
|
|
211
211
|
name: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | [string, string]) | (() => import("element-plus").SingleOrRange<string>) | ((new (...args: any[]) => string | [string, string]) | (() => import("element-plus").SingleOrRange<string>))[], unknown, unknown>;
|
|
212
212
|
disabled: boolean;
|
|
213
213
|
modelValue: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number | Date | string[] | [import("element-plus").DateModelType, import("element-plus").DateModelType]) | (() => import("element-plus").ModelValueType) | ((new (...args: any[]) => string | number | Date | string[] | [import("element-plus").DateModelType, import("element-plus").DateModelType]) | (() => import("element-plus").ModelValueType))[], unknown, unknown>;
|
|
@@ -4,7 +4,7 @@ export type DateModelType = number | string | Date;
|
|
|
4
4
|
export type ModelValueType = SingleOrRange<DateModelType>;
|
|
5
5
|
export declare const datePickerProps: {
|
|
6
6
|
type: {
|
|
7
|
-
type: PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
7
|
+
type: PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange">;
|
|
8
8
|
default: "date";
|
|
9
9
|
};
|
|
10
10
|
shortcuts: {
|
|
@@ -2,7 +2,7 @@ import DatePicker from './DatePicker.vue';
|
|
|
2
2
|
export declare const GmDatePicker: import("../../../../utils").SFCWithInstall<{
|
|
3
3
|
new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<{
|
|
4
4
|
type: {
|
|
5
|
-
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
5
|
+
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange">;
|
|
6
6
|
default: "date";
|
|
7
7
|
};
|
|
8
8
|
shortcuts: {
|
|
@@ -116,7 +116,7 @@ export declare const GmDatePicker: import("../../../../utils").SFCWithInstall<{
|
|
|
116
116
|
"visible-change": (...args: any[]) => void;
|
|
117
117
|
}, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
|
|
118
118
|
type: {
|
|
119
|
-
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
119
|
+
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange">;
|
|
120
120
|
default: "date";
|
|
121
121
|
};
|
|
122
122
|
shortcuts: {
|
|
@@ -216,7 +216,7 @@ export declare const GmDatePicker: import("../../../../utils").SFCWithInstall<{
|
|
|
216
216
|
"onPanel-change"?: ((...args: any[]) => any) | undefined;
|
|
217
217
|
"onVisible-change"?: ((...args: any[]) => any) | undefined;
|
|
218
218
|
}, {
|
|
219
|
-
type: "date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
219
|
+
type: "date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange";
|
|
220
220
|
name: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | [string, string]) | (() => import("element-plus").SingleOrRange<string>) | ((new (...args: any[]) => string | [string, string]) | (() => import("element-plus").SingleOrRange<string>))[], unknown, unknown>;
|
|
221
221
|
disabled: boolean;
|
|
222
222
|
modelValue: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | number | Date | string[] | [import("element-plus").DateModelType, import("element-plus").DateModelType]) | (() => import("element-plus").ModelValueType) | ((new (...args: any[]) => string | number | Date | string[] | [import("element-plus").DateModelType, import("element-plus").DateModelType]) | (() => import("element-plus").ModelValueType))[], unknown, unknown>;
|
|
@@ -243,7 +243,7 @@ export declare const GmDatePicker: import("../../../../utils").SFCWithInstall<{
|
|
|
243
243
|
Defaults: {};
|
|
244
244
|
}, Readonly<import("vue").ExtractPropTypes<{
|
|
245
245
|
type: {
|
|
246
|
-
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
246
|
+
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange">;
|
|
247
247
|
default: "date";
|
|
248
248
|
};
|
|
249
249
|
shortcuts: {
|
|
@@ -348,7 +348,7 @@ export declare const GmDatePicker: import("../../../../utils").SFCWithInstall<{
|
|
|
348
348
|
handleClose: () => void;
|
|
349
349
|
elRef: import("vue").Ref<import("element-plus").DatePickerInstance | undefined>;
|
|
350
350
|
}, {}, {}, {}, {
|
|
351
|
-
type: "date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
351
|
+
type: "date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange";
|
|
352
352
|
name: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | [string, string]) | (() => import("element-plus").SingleOrRange<string>) | ((new (...args: any[]) => string | [string, string]) | (() => import("element-plus").SingleOrRange<string>))[], unknown, unknown>;
|
|
353
353
|
disabled: boolean;
|
|
354
354
|
modelValue: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | number | Date | string[] | [import("element-plus").DateModelType, import("element-plus").DateModelType]) | (() => import("element-plus").ModelValueType) | ((new (...args: any[]) => string | number | Date | string[] | [import("element-plus").DateModelType, import("element-plus").DateModelType]) | (() => import("element-plus").ModelValueType))[], unknown, unknown>;
|
|
@@ -372,7 +372,7 @@ export declare const GmDatePicker: import("../../../../utils").SFCWithInstall<{
|
|
|
372
372
|
__isSuspense?: undefined;
|
|
373
373
|
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
|
|
374
374
|
type: {
|
|
375
|
-
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
375
|
+
type: import("vue").PropType<"date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange">;
|
|
376
376
|
default: "date";
|
|
377
377
|
};
|
|
378
378
|
shortcuts: {
|
|
@@ -485,7 +485,7 @@ export declare const GmDatePicker: import("../../../../utils").SFCWithInstall<{
|
|
|
485
485
|
"panel-change": (...args: any[]) => void;
|
|
486
486
|
"visible-change": (...args: any[]) => void;
|
|
487
487
|
}, string, {
|
|
488
|
-
type: "date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "
|
|
488
|
+
type: "date" | "daterange" | "month" | "year" | "months" | "years" | "dates" | "week" | "datetimerange" | "datetime" | "monthrange" | "yearrange";
|
|
489
489
|
name: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | [string, string]) | (() => import("element-plus").SingleOrRange<string>) | ((new (...args: any[]) => string | [string, string]) | (() => import("element-plus").SingleOrRange<string>))[], unknown, unknown>;
|
|
490
490
|
disabled: boolean;
|
|
491
491
|
modelValue: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | number | Date | string[] | [import("element-plus").DateModelType, import("element-plus").DateModelType]) | (() => import("element-plus").ModelValueType) | ((new (...args: any[]) => string | number | Date | string[] | [import("element-plus").DateModelType, import("element-plus").DateModelType]) | (() => import("element-plus").ModelValueType))[], unknown, unknown>;
|
|
@@ -7,7 +7,7 @@ require('./UploadPro.vue3.js');
|
|
|
7
7
|
require('./UploadPro.vue4.js');
|
|
8
8
|
var _pluginVue_exportHelper = require('../../../../_virtual/_plugin-vue_export-helper.js');
|
|
9
9
|
|
|
10
|
-
var UploadPro = /* @__PURE__ */ _pluginVue_exportHelper.default(UploadPro_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-
|
|
10
|
+
var UploadPro = /* @__PURE__ */ _pluginVue_exportHelper.default(UploadPro_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-ca99928c"]]);
|
|
11
11
|
|
|
12
12
|
exports.default = UploadPro;
|
|
13
13
|
//# sourceMappingURL=UploadPro.vue.js.map
|
|
@@ -13,7 +13,7 @@ var uploadPro = require('./uploadPro.js');
|
|
|
13
13
|
var exports$1 = require('../../../../utils/src/elementPlus/exports.js');
|
|
14
14
|
var index = require('../../../../hooks/base/useUploadFile/index.js');
|
|
15
15
|
|
|
16
|
-
const _withScopeId = (n) => (vue.pushScopeId("data-v-
|
|
16
|
+
const _withScopeId = (n) => (vue.pushScopeId("data-v-ca99928c"), n = n(), vue.popScopeId(), n);
|
|
17
17
|
const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode(
|
|
18
18
|
"div",
|
|
19
19
|
{ class: "el-upload__text gm-text-center !gm-text-xs gm-text-gray-500" },
|
|
@@ -46,12 +46,18 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
46
46
|
const emit = __emit;
|
|
47
47
|
const fileList = vue.useModel(__props, "fileList");
|
|
48
48
|
const checkoutFiles = vue.useModel(__props, "checkoutFiles");
|
|
49
|
-
const { uploadFile } = index.useUploadFile();
|
|
49
|
+
const { uploadFile, cancelUpload } = index.useUploadFile();
|
|
50
50
|
const loadingUids = vue.ref(/* @__PURE__ */ new Set());
|
|
51
51
|
const uploadLoading = vue.computed(() => props.showLoading && loadingUids.value.size > 0);
|
|
52
52
|
const httpRequest = async (options) => {
|
|
53
53
|
loadingUids.value.add(options.file.uid);
|
|
54
|
-
return uploadFile(options.file, {
|
|
54
|
+
return uploadFile(options.file, {
|
|
55
|
+
domainCode: props.domainCode,
|
|
56
|
+
sceneCode: props.sceneCode,
|
|
57
|
+
accept: props.accept,
|
|
58
|
+
acl: props.acl,
|
|
59
|
+
elOptions: options
|
|
60
|
+
});
|
|
55
61
|
};
|
|
56
62
|
const coverFileSuccess = (response, uploadFile2, uploadFiles) => {
|
|
57
63
|
loadingUids.value.delete(uploadFile2.uid);
|
|
@@ -61,13 +67,25 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
61
67
|
loadingUids.value.delete(uploadFile2.uid);
|
|
62
68
|
props.onError?.(error, uploadFile2, uploadFiles);
|
|
63
69
|
};
|
|
64
|
-
const beforeRemove = (file, files) => {
|
|
70
|
+
const beforeRemove = async (file, files) => {
|
|
65
71
|
if (props.disabled) {
|
|
66
72
|
return false;
|
|
67
73
|
}
|
|
74
|
+
if (props.deleteTip) {
|
|
75
|
+
await index$1.GmConfirmBox({ message: "\u786E\u5B9A\u5220\u9664\u8BE5\u6587\u4EF6\u5417\uFF1F" }, async () => {
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
if (file.status === "uploading" || loadingUids.value.has(file.uid)) {
|
|
79
|
+
cancelUpload(file.uid);
|
|
80
|
+
loadingUids.value.delete(file.uid);
|
|
81
|
+
}
|
|
68
82
|
return props.beforeRemove?.(file, files) ?? true;
|
|
69
83
|
};
|
|
70
84
|
const removeFile = (file, uploadFiles) => {
|
|
85
|
+
if (file.status === "uploading" || loadingUids.value.has(file.uid)) {
|
|
86
|
+
cancelUpload(file.uid);
|
|
87
|
+
loadingUids.value.delete(file.uid);
|
|
88
|
+
}
|
|
71
89
|
const index = fileList.value.indexOf(file);
|
|
72
90
|
if (index > -1) {
|
|
73
91
|
fileList.value.splice(index, 1);
|
|
@@ -123,6 +141,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
123
141
|
const _component_el_icon = vue.resolveComponent("el-icon");
|
|
124
142
|
const _component_el_button = vue.resolveComponent("el-button");
|
|
125
143
|
const _component_el_checkbox = vue.resolveComponent("el-checkbox");
|
|
144
|
+
const _component_el_progress = vue.resolveComponent("el-progress");
|
|
126
145
|
const _component_el_upload = vue.resolveComponent("el-upload");
|
|
127
146
|
const _component_el_checkbox_group = vue.resolveComponent("el-checkbox-group");
|
|
128
147
|
const _directive_loading = vue.resolveDirective("loading");
|
|
@@ -207,12 +226,25 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
207
226
|
style: vue.normalizeStyle({ width: _ctx.width + "px", height: _ctx.height + "px" })
|
|
208
227
|
},
|
|
209
228
|
[
|
|
210
|
-
|
|
229
|
+
file.status === "uploading" || loadingUids.value.has(file.uid) ? (vue.openBlock(), vue.createBlock(_component_el_progress, {
|
|
230
|
+
key: 0,
|
|
231
|
+
type: _ctx.listType === "picture-card" ? "circle" : "line",
|
|
232
|
+
"stroke-width": _ctx.listType === "picture-card" ? 6 : 2,
|
|
233
|
+
percentage: Number(file.percentage),
|
|
234
|
+
style: vue.normalizeStyle(
|
|
235
|
+
_ctx.listType === "picture-card" ? {
|
|
236
|
+
width: _ctx.width - 20 + "px",
|
|
237
|
+
height: _ctx.width - 20 + "px"
|
|
238
|
+
} : "margin-top: 0.5rem"
|
|
239
|
+
),
|
|
240
|
+
width: _ctx.width - 20
|
|
241
|
+
}, null, 8, ["type", "stroke-width", "percentage", "style", "width"])) : (vue.openBlock(), vue.createBlock(vue.unref(index$3.GmFileComponent), {
|
|
242
|
+
key: 1,
|
|
211
243
|
file,
|
|
212
244
|
size: _ctx.width - 40,
|
|
213
245
|
controls: false,
|
|
214
246
|
"show-icon": true
|
|
215
|
-
}, null, 8, ["file", "size"])
|
|
247
|
+
}, null, 8, ["file", "size"]))
|
|
216
248
|
],
|
|
217
249
|
4
|
|
218
250
|
/* STYLE */
|