@yorha2b-lab/autodev 1.0.21 → 1.0.22
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/package.json
CHANGED
|
@@ -1,4 +1,70 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useState, useEffect } from 'react'
|
|
2
|
+
import { UploadOutlined } from '@ant-design/icons'
|
|
3
|
+
import { Button, Tree, Radio, Input, Upload, Select, Cascader, Checkbox, DatePicker, InputNumber, TreeSelect, AutoComplete } from 'antd'
|
|
4
|
+
|
|
5
|
+
const initOss = async () => {
|
|
6
|
+
/* 初始化OSS客户端,请自行实现 */
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const AliyunOSSUpload = ({ style, value, disabled, onChange }) => {
|
|
10
|
+
|
|
11
|
+
const [OSSData, setOSSData] = useState()
|
|
12
|
+
|
|
13
|
+
const init = async () => {
|
|
14
|
+
try {
|
|
15
|
+
const result = await initOss()
|
|
16
|
+
setOSSData(result)
|
|
17
|
+
} catch (err) {
|
|
18
|
+
console.log(err)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
init()
|
|
24
|
+
}, [])
|
|
25
|
+
|
|
26
|
+
const handleChange = ({ fileList }) => onChange?.([...fileList])
|
|
27
|
+
|
|
28
|
+
const onRemove = file => {
|
|
29
|
+
const files = (value || []).filter(v => v.url !== file.url)
|
|
30
|
+
onChange?.(files)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const getExtraData = file => ({
|
|
34
|
+
key: file.url,
|
|
35
|
+
policy: OSSData?.policy,
|
|
36
|
+
Signature: OSSData?.signature,
|
|
37
|
+
OSSAccessKeyId: OSSData?.accessId,
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
const beforeUpload = async file => {
|
|
41
|
+
if (!OSSData) {
|
|
42
|
+
return false
|
|
43
|
+
}
|
|
44
|
+
const expire = Number(OSSData.expire) * 1000
|
|
45
|
+
if (expire < Date.now()) {
|
|
46
|
+
await init()
|
|
47
|
+
}
|
|
48
|
+
file.url = `${OSSData.dir}/${file.name}`.replace(/\/\//g, '/')
|
|
49
|
+
return file
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const uploadProps = {
|
|
53
|
+
onRemove,
|
|
54
|
+
name: 'file',
|
|
55
|
+
beforeUpload,
|
|
56
|
+
fileList: value,
|
|
57
|
+
data: getExtraData,
|
|
58
|
+
action: OSSData?.host,
|
|
59
|
+
onChange: handleChange,
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return (
|
|
63
|
+
<Upload {...uploadProps} disabled={disabled} style={style}>
|
|
64
|
+
<Button icon={<UploadOutlined />}>选择文件</Button>
|
|
65
|
+
</Upload>
|
|
66
|
+
)
|
|
67
|
+
}
|
|
2
68
|
|
|
3
69
|
export const formNode = ({ item }) => {
|
|
4
70
|
|
|
@@ -14,6 +80,8 @@ export const formNode = ({ item }) => {
|
|
|
14
80
|
return <DatePicker {...commonProps} />
|
|
15
81
|
case 'number':
|
|
16
82
|
return <InputNumber {...commonProps} />
|
|
83
|
+
case 'ossUpload':
|
|
84
|
+
return <AliyunOSSUpload {...commonProps} />
|
|
17
85
|
case 'daterange':
|
|
18
86
|
return <DatePicker.RangePicker {...commonProps} />
|
|
19
87
|
case 'radio':
|