aldehyde 0.2.313 → 0.2.314
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/lib/controls/direct-file-view/index.d.ts.map +1 -1
- package/lib/controls/direct-file-view/index.js +15 -7
- package/lib/controls/direct-file-view/index.js.map +1 -1
- package/lib/controls/direct-upload/index.d.ts.map +1 -1
- package/lib/controls/direct-upload/index.js +13 -7
- package/lib/controls/direct-upload/index.js.map +1 -1
- package/package.json +1 -1
- package/src/aldehyde/controls/direct-file-view/index.tsx +23 -7
- package/src/aldehyde/controls/direct-upload/index.tsx +20 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/aldehyde/controls/direct-file-view/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/aldehyde/controls/direct-file-view/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAGlD,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AASnE,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,GAAG,CAAA;CACb;AASD,QAAA,MAAM,KAAK,GAAI,OAAO,aAAa,8BAoFlC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect } from 'react';
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import { Button, Col, Image, Row, Space } from 'antd';
|
|
3
3
|
import DrawerFileView from './drawer-file-view';
|
|
4
4
|
import { DownloadOutlined, PlayCircleOutlined } from '@ant-design/icons';
|
|
@@ -9,23 +9,31 @@ import Units from "../../units";
|
|
|
9
9
|
const Player1 = Player;
|
|
10
10
|
;
|
|
11
11
|
const Index = (props) => {
|
|
12
|
-
const { downloadable, serverKey, value } = props;
|
|
13
|
-
const [filePaths, setFilePaths] =
|
|
14
|
-
const [playing, setPlaying] =
|
|
12
|
+
const { downloadable, fieldConfig: { serverKey }, value } = props;
|
|
13
|
+
const [filePaths, setFilePaths] = useState([]);
|
|
14
|
+
const [playing, setPlaying] = useState(false);
|
|
15
|
+
const [ossConfig, setOssConfig] = useState();
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (serverKey) {
|
|
18
|
+
const { accessKeyId, accessKeySecret, bucket, endpoint } = Units.getExtendServers(serverKey) || {};
|
|
19
|
+
setOssConfig({ accessKeyId, accessKeySecret, bucket, endpoint });
|
|
20
|
+
}
|
|
21
|
+
}, [serverKey]);
|
|
15
22
|
const handleValue = (val) => {
|
|
16
23
|
var _a;
|
|
17
|
-
if (!val) {
|
|
24
|
+
if (!val || !ossConfig) {
|
|
18
25
|
return;
|
|
19
26
|
}
|
|
20
27
|
const filePaths = ((_a = val.split(",")) === null || _a === void 0 ? void 0 : _a.map(url => {
|
|
21
|
-
const
|
|
28
|
+
const temUrl = url.startsWith("http") ? url : `http://${ossConfig.bucket}.${ossConfig.endpoint}/${url}`;
|
|
29
|
+
const item = HCService.toFilePath(temUrl, serverKey);
|
|
22
30
|
return Object.assign(Object.assign({}, item), { fileName: decodeURIComponent(item.fileName) });
|
|
23
31
|
})) || [];
|
|
24
32
|
setFilePaths(filePaths);
|
|
25
33
|
};
|
|
26
34
|
useEffect(() => {
|
|
27
35
|
handleValue(value);
|
|
28
|
-
}, [value]);
|
|
36
|
+
}, [value, ossConfig]);
|
|
29
37
|
const download = (filePath) => {
|
|
30
38
|
Units.downloadFile(filePath.path, filePath.fileName);
|
|
31
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/aldehyde/controls/direct-file-view/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/aldehyde/controls/direct-file-view/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/aldehyde/controls/direct-upload/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/aldehyde/controls/direct-upload/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAWvE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;KAAE,CAAC;CACvC;AASD,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA8GhC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -11,6 +11,7 @@ import React, { useState, useContext, useEffect, useRef } from "react";
|
|
|
11
11
|
import { Upload as AntdUpload, message, Button } from "antd";
|
|
12
12
|
import { UploadOutlined } from "@ant-design/icons";
|
|
13
13
|
import OSS from "ali-oss";
|
|
14
|
+
import dayjs from "dayjs";
|
|
14
15
|
import { LocaleContext } from "../../locale/LocaleProvider";
|
|
15
16
|
import Units from "../../units";
|
|
16
17
|
const fileNameRegex = /([^\/?#]+)(?:[?#].*)?$/;
|
|
@@ -19,9 +20,11 @@ const Index = (props) => {
|
|
|
19
20
|
const { translate } = useContext(LocaleContext);
|
|
20
21
|
const [fileList, setFileList] = useState([]);
|
|
21
22
|
const clientRef = useRef(null);
|
|
23
|
+
const [ossConfig, setOssConfig] = useState();
|
|
22
24
|
useEffect(() => {
|
|
23
25
|
if (serverKey) {
|
|
24
26
|
const { accessKeyId, accessKeySecret, bucket, endpoint } = Units.getExtendServers(serverKey) || {};
|
|
27
|
+
setOssConfig({ accessKeyId, accessKeySecret, bucket, endpoint });
|
|
25
28
|
if (accessKeyId && accessKeySecret && bucket && endpoint) {
|
|
26
29
|
clientRef.current = new OSS({ accessKeyId, accessKeySecret, bucket, endpoint });
|
|
27
30
|
}
|
|
@@ -32,20 +35,22 @@ const Index = (props) => {
|
|
|
32
35
|
const urls = val.split(",");
|
|
33
36
|
const fileList = urls.map(url => {
|
|
34
37
|
var _a;
|
|
35
|
-
const
|
|
36
|
-
|
|
38
|
+
const temUrl = url.startsWith("http") ? url : `http://${ossConfig.bucket}.${ossConfig.endpoint}/${url}`;
|
|
39
|
+
const name = (_a = temUrl.match(fileNameRegex)) === null || _a === void 0 ? void 0 : _a[1];
|
|
40
|
+
return { uid: temUrl, name: decodeURIComponent(name || ""), status: 'done', url: temUrl };
|
|
37
41
|
});
|
|
38
42
|
setFileList(fileList);
|
|
39
43
|
};
|
|
40
44
|
useEffect(() => {
|
|
41
|
-
if (value) {
|
|
45
|
+
if (ossConfig && value) {
|
|
42
46
|
handleValue(value);
|
|
43
47
|
}
|
|
44
|
-
}, [value]);
|
|
48
|
+
}, [value, ossConfig]);
|
|
45
49
|
// 自定义上传
|
|
46
50
|
const customRequest = (_a) => __awaiter(void 0, [_a], void 0, function* ({ file, onProgress, onSuccess, onError }) {
|
|
47
51
|
try {
|
|
48
|
-
const
|
|
52
|
+
const programCode = Units.programCode();
|
|
53
|
+
const fileName = `/${programCode}/${dayjs().format("YYYY-MM-DD")}/${file.name}`;
|
|
49
54
|
// 上传文件到 OSS
|
|
50
55
|
const result = yield clientRef.current.put(fileName, file, {
|
|
51
56
|
progress: (p) => { onProgress({ percent: p * 100 }); },
|
|
@@ -79,10 +84,11 @@ const Index = (props) => {
|
|
|
79
84
|
case "done":
|
|
80
85
|
message.success(`${info.file.name} 上传成功`);
|
|
81
86
|
const url = info.file.response.url;
|
|
82
|
-
|
|
87
|
+
const pathName = new URL(url).pathname.slice(1);
|
|
88
|
+
onChange(value ? `${value},${pathName}` : pathName);
|
|
83
89
|
break;
|
|
84
90
|
case "removed":
|
|
85
|
-
onChange(fileList.filter(item => item.uid !== info.file.uid).map(item => item.url).join(","));
|
|
91
|
+
onChange(fileList.filter(item => item.uid !== info.file.uid).map(item => item.url.startsWith("http") ? new URL(item.url).pathname.slice(1) : item.url).join(","));
|
|
86
92
|
break;
|
|
87
93
|
case "error":
|
|
88
94
|
message.error(`${info.file.name} 上传异常`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/aldehyde/controls/direct-upload/index.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAc,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,MAAM,aAAa,GAAG,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/aldehyde/controls/direct-upload/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect } from 'react'
|
|
1
|
+
import React, { useEffect, useState } from 'react'
|
|
2
2
|
import { Button, Col, Image, Row, Space } from 'antd'
|
|
3
3
|
import DrawerFileView from './drawer-file-view'
|
|
4
4
|
import { FieldConfig, CommonFilePath } from "../../tmpl/interface";
|
|
@@ -17,17 +17,33 @@ export interface FileViewProps {
|
|
|
17
17
|
value: any
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
interface OssConfig {
|
|
21
|
+
accessKeyId: string;
|
|
22
|
+
accessKeySecret: string;
|
|
23
|
+
bucket: string;
|
|
24
|
+
endpoint: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
const Index = (props: FileViewProps) => {
|
|
21
|
-
const { downloadable, serverKey, value } = props;
|
|
22
|
-
const [filePaths, setFilePaths] =
|
|
23
|
-
const [playing, setPlaying] =
|
|
28
|
+
const { downloadable, fieldConfig: { serverKey }, value } = props;
|
|
29
|
+
const [filePaths, setFilePaths] = useState<CommonFilePath[]>([]);
|
|
30
|
+
const [playing, setPlaying] = useState<boolean>(false);
|
|
31
|
+
const [ossConfig, setOssConfig] = useState<OssConfig>();
|
|
32
|
+
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (serverKey) {
|
|
35
|
+
const { accessKeyId, accessKeySecret, bucket, endpoint } = Units.getExtendServers(serverKey) || {};
|
|
36
|
+
setOssConfig({ accessKeyId, accessKeySecret, bucket, endpoint });
|
|
37
|
+
}
|
|
38
|
+
}, [serverKey]);
|
|
24
39
|
|
|
25
40
|
const handleValue = (val: string) => {
|
|
26
|
-
if (!val) {
|
|
41
|
+
if (!val || !ossConfig) {
|
|
27
42
|
return;
|
|
28
43
|
}
|
|
29
44
|
const filePaths = val.split(",")?.map(url => {
|
|
30
|
-
const
|
|
45
|
+
const temUrl = url.startsWith("http") ? url : `http://${ossConfig.bucket}.${ossConfig.endpoint}/${url}`;
|
|
46
|
+
const item = HCService.toFilePath(temUrl, serverKey);
|
|
31
47
|
return { ...item, fileName: decodeURIComponent(item.fileName) };
|
|
32
48
|
}) || [];
|
|
33
49
|
setFilePaths(filePaths);
|
|
@@ -35,7 +51,7 @@ const Index = (props: FileViewProps) => {
|
|
|
35
51
|
|
|
36
52
|
useEffect(() => {
|
|
37
53
|
handleValue(value);
|
|
38
|
-
}, [value]);
|
|
54
|
+
}, [value, ossConfig]);
|
|
39
55
|
|
|
40
56
|
const download = (filePath: CommonFilePath) => {
|
|
41
57
|
Units.downloadFile(filePath.path, filePath.fileName);
|
|
@@ -3,6 +3,7 @@ import { Upload as AntdUpload, UploadFile, message, Button } from "antd";
|
|
|
3
3
|
import { RcFile } from "antd/es/upload";
|
|
4
4
|
import { UploadOutlined } from "@ant-design/icons";
|
|
5
5
|
import OSS from "ali-oss";
|
|
6
|
+
import dayjs from "dayjs";
|
|
6
7
|
import { LocaleContext } from "../../locale/LocaleProvider";
|
|
7
8
|
import Units from "../../units";
|
|
8
9
|
|
|
@@ -17,16 +18,25 @@ export interface UploadProps {
|
|
|
17
18
|
fieldConfig?: { serverKey?: string; };
|
|
18
19
|
}
|
|
19
20
|
|
|
21
|
+
interface OssConfig {
|
|
22
|
+
accessKeyId: string;
|
|
23
|
+
accessKeySecret: string;
|
|
24
|
+
bucket: string;
|
|
25
|
+
endpoint: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
20
28
|
const Index: React.FC<UploadProps> = (props) => {
|
|
21
29
|
const { onChange, disabled, value, id, fieldConfig: { serverKey }, max: maxCount = 1 } = props;
|
|
22
30
|
const { translate } = useContext(LocaleContext);
|
|
23
31
|
const [fileList, setFileList] = useState([]);
|
|
24
32
|
const clientRef = useRef(null);
|
|
33
|
+
const [ossConfig, setOssConfig] = useState<OssConfig>();
|
|
25
34
|
|
|
26
35
|
|
|
27
36
|
useEffect(() => {
|
|
28
37
|
if (serverKey) {
|
|
29
38
|
const { accessKeyId, accessKeySecret, bucket, endpoint } = Units.getExtendServers(serverKey) || {};
|
|
39
|
+
setOssConfig({ accessKeyId, accessKeySecret, bucket, endpoint });
|
|
30
40
|
if (accessKeyId && accessKeySecret && bucket && endpoint) {
|
|
31
41
|
clientRef.current = new OSS({ accessKeyId, accessKeySecret, bucket, endpoint });
|
|
32
42
|
}
|
|
@@ -37,23 +47,25 @@ const Index: React.FC<UploadProps> = (props) => {
|
|
|
37
47
|
const handleValue = (val: string) => {
|
|
38
48
|
const urls = val.split(",");
|
|
39
49
|
const fileList: UploadFile[] = urls.map(url => {
|
|
40
|
-
const
|
|
41
|
-
|
|
50
|
+
const temUrl = url.startsWith("http") ? url : `http://${ossConfig.bucket}.${ossConfig.endpoint}/${url}`;
|
|
51
|
+
const name = temUrl.match(fileNameRegex)?.[1];
|
|
52
|
+
return { uid: temUrl, name: decodeURIComponent(name || ""), status: 'done', url: temUrl }
|
|
42
53
|
});
|
|
43
54
|
setFileList(fileList);
|
|
44
55
|
}
|
|
45
56
|
|
|
46
57
|
|
|
47
58
|
useEffect(() => {
|
|
48
|
-
if (value) {
|
|
59
|
+
if (ossConfig && value) {
|
|
49
60
|
handleValue(value);
|
|
50
61
|
}
|
|
51
|
-
}, [value])
|
|
62
|
+
}, [value, ossConfig])
|
|
52
63
|
|
|
53
64
|
// 自定义上传
|
|
54
65
|
const customRequest = async ({ file, onProgress, onSuccess, onError }: any) => {
|
|
55
66
|
try {
|
|
56
|
-
const
|
|
67
|
+
const programCode = Units.programCode();
|
|
68
|
+
const fileName = `/${programCode}/${dayjs().format("YYYY-MM-DD")}/${file.name}`;
|
|
57
69
|
// 上传文件到 OSS
|
|
58
70
|
const result = await clientRef.current.put(fileName, file, {
|
|
59
71
|
progress: (p) => { onProgress({ percent: p * 100 }); },
|
|
@@ -88,10 +100,11 @@ const Index: React.FC<UploadProps> = (props) => {
|
|
|
88
100
|
case "done":
|
|
89
101
|
message.success(`${info.file.name} 上传成功`);
|
|
90
102
|
const url = info.file.response.url;
|
|
91
|
-
|
|
103
|
+
const pathName = new URL(url).pathname.slice(1);
|
|
104
|
+
onChange(value ? `${value},${pathName}` : pathName);
|
|
92
105
|
break;
|
|
93
106
|
case "removed":
|
|
94
|
-
onChange(fileList.filter(item => item.uid !== info.file.uid).map(item => item.url).join(","));
|
|
107
|
+
onChange(fileList.filter(item => item.uid !== info.file.uid).map(item => item.url.startsWith("http") ? new URL(item.url).pathname.slice(1) : item.url).join(","));
|
|
95
108
|
break;
|
|
96
109
|
case "error":
|
|
97
110
|
message.error(`${info.file.name} 上传异常`);
|