@hzab/form-render 1.5.1-beta → 1.5.1-beta2
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/CHANGELOG.md +1 -0
- package/package.json +4 -2
- package/src/components/Upload/common/OfflineUpload.ts +5 -1
- package/src/components/Upload/common/customRequest.ts +5 -1
- package/src/components/Upload/common/fileName.ts +8 -7
- package/src/components/Upload/common/ossUpload.js +5 -3
- package/src/components/Upload/uploader.jsx +3 -2
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@hzab/form-render",
|
3
|
-
"version": "1.5.1-
|
3
|
+
"version": "1.5.1-beta2",
|
4
4
|
"description": "",
|
5
5
|
"main": "src",
|
6
6
|
"scripts": {
|
@@ -19,6 +19,7 @@
|
|
19
19
|
"license": "ISC",
|
20
20
|
"devDependencies": {
|
21
21
|
"@hzab/data-model": "^1.2.0",
|
22
|
+
"@hzab/permissions": "^0.1.1",
|
22
23
|
"@hzab/webpack-config": "0.0.12",
|
23
24
|
"@types/react": "^17.0.62",
|
24
25
|
"@types/react-dom": "^17.0.20",
|
@@ -41,8 +42,9 @@
|
|
41
42
|
"@amap/amap-jsapi-loader": "^1.0.1",
|
42
43
|
"@formily/core": "2.3.1",
|
43
44
|
"@formily/react": "2.3.1",
|
44
|
-
"@turf/turf": "^6.5.0",
|
45
45
|
"@formily/reactive-react": "2.3.1",
|
46
|
+
"@turf/turf": "^6.5.0",
|
47
|
+
"@wangeditor/editor": "^5.1.23",
|
46
48
|
"@wangeditor/editor-for-react": "^1.0.6",
|
47
49
|
"ajv": "^8.12.0",
|
48
50
|
"c-formily-antd": "^2.3.1",
|
@@ -56,6 +56,10 @@ export interface IUploadOpt {
|
|
56
56
|
* 配置接口地址
|
57
57
|
*/
|
58
58
|
serverUrl?: string;
|
59
|
+
/**
|
60
|
+
* 是否开启 Hash 命名
|
61
|
+
*/
|
62
|
+
useHashName?: boolean;
|
59
63
|
/**
|
60
64
|
* 文件上传接口地址
|
61
65
|
*/
|
@@ -234,7 +238,7 @@ export class OfflineUpload {
|
|
234
238
|
upload(file, opt: IUploadOpt = {}) {
|
235
239
|
return new Promise(async (resolve, reject) => {
|
236
240
|
// filename 表示待上传的本地文件名称。
|
237
|
-
const filename = getFileNameByFileObj(file);
|
241
|
+
const filename = getFileNameByFileObj(file, opt);
|
238
242
|
try {
|
239
243
|
const fileInfo = await this.getSignature(opt.serverUrl || this.serverUrl, {
|
240
244
|
...opt,
|
@@ -16,6 +16,8 @@ export const getOfflineUploadRequest = (opt) => {
|
|
16
16
|
offlinePreviewUrl,
|
17
17
|
ossOpt,
|
18
18
|
params,
|
19
|
+
useHashName = true
|
20
|
+
|
19
21
|
} = opt || {};
|
20
22
|
return ({ action, data, file, filename, headers, method, onSuccess, onProgress, onError }) => {
|
21
23
|
const _UploadOss = UploadOss || OfflineUpload;
|
@@ -27,6 +29,7 @@ export const getOfflineUploadRequest = (opt) => {
|
|
27
29
|
file.ossPromise = offlineUpload
|
28
30
|
.upload(file, {
|
29
31
|
uploadUrl: offlineUploadUrl,
|
32
|
+
useHashName,
|
30
33
|
params: {
|
31
34
|
...(params || {}),
|
32
35
|
},
|
@@ -53,7 +56,7 @@ export const getOfflineUploadRequest = (opt) => {
|
|
53
56
|
* @returns
|
54
57
|
*/
|
55
58
|
export const getOssUploadRequest = (opt) => {
|
56
|
-
const { UploadOss, ossServerUrl, ossOpt, params } = opt || {};
|
59
|
+
const { UploadOss, ossServerUrl, ossOpt, params, useHashName = true } = opt || {};
|
57
60
|
return ({ action, data, file, filename, headers, method, onSuccess, onProgress, onError }) => {
|
58
61
|
const _UploadOss = UploadOss || LUploadOss;
|
59
62
|
const ossUpload = new _UploadOss({
|
@@ -62,6 +65,7 @@ export const getOssUploadRequest = (opt) => {
|
|
62
65
|
});
|
63
66
|
file.ossPromise = ossUpload
|
64
67
|
.upload(file, {
|
68
|
+
useHashName,
|
65
69
|
params: {
|
66
70
|
...(params || {}),
|
67
71
|
},
|
@@ -80,9 +80,10 @@ export const getUFileName = function (fileName) {
|
|
80
80
|
* key、data 中的 ~ 转为 _
|
81
81
|
* @param file
|
82
82
|
*/
|
83
|
-
export const getFileNameByFileObj = (file) => {
|
83
|
+
export const getFileNameByFileObj = (file, opt: any) => {
|
84
|
+
const { useHashName = true } = opt || {};
|
84
85
|
const _fileName = file.name || getFullFileName(file.url);
|
85
|
-
if (_fileName.indexOf("
|
86
|
+
if (_fileName.indexOf("~kid-") >= 0 || !useHashName) {
|
86
87
|
return _fileName;
|
87
88
|
}
|
88
89
|
// id、时间、文件类型
|
@@ -90,11 +91,11 @@ export const getFileNameByFileObj = (file) => {
|
|
90
91
|
return mergeFileName(
|
91
92
|
_fileName,
|
92
93
|
"-" +
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
94
|
+
setFileNameObj({
|
95
|
+
id,
|
96
|
+
time: file.createTime ?? Date.now(),
|
97
|
+
type: (file.type || file.contentType)?.replace("/", "_"),
|
98
|
+
}),
|
98
99
|
);
|
99
100
|
};
|
100
101
|
|
@@ -54,17 +54,18 @@ class OssUpload {
|
|
54
54
|
}
|
55
55
|
|
56
56
|
upload(file, opt = {}) {
|
57
|
+
|
57
58
|
return new Promise(async (resolve, reject) => {
|
58
59
|
const ossParams = await this.getSignature(opt.serverUrl || this.serverUrl, {
|
59
60
|
...opt,
|
60
61
|
params: { ...this.signatureParams, ...opt.params },
|
61
62
|
});
|
62
63
|
|
63
|
-
const { ossParams: propOssParams } = opt || {};
|
64
|
+
const { ossParams: propOssParams, useHashName } = opt || {};
|
64
65
|
const formData = new FormData();
|
65
66
|
// key 表示上传到 Bucket 内的 Object 的完整路径,例如 exampledir/exampleobject.txtObject,完整路径中不能包含 Bucket 名称。
|
66
67
|
// filename 表示待上传的本地文件名称。
|
67
|
-
const filename = getFileNameByFileObj(file);
|
68
|
+
const filename = getFileNameByFileObj(file, opt);
|
68
69
|
const key = `${ossParams?.dir}${filename}`;
|
69
70
|
formData.set("key", key);
|
70
71
|
formData.set("OSSAccessKeyId", ossParams.accessid);
|
@@ -109,7 +110,7 @@ class OssUpload {
|
|
109
110
|
*/
|
110
111
|
export async function handleOssUpload(files, opt) {
|
111
112
|
const _files = files;
|
112
|
-
const { ossUrl, signatureParams, ossParams, axiosConf } = opt || {};
|
113
|
+
const { ossUrl, signatureParams, ossParams, axiosConf, useHashName } = opt || {};
|
113
114
|
const ossUpload = new OssUpload({
|
114
115
|
axios: opt.axios,
|
115
116
|
axiosConf: axiosConf,
|
@@ -131,6 +132,7 @@ export async function handleOssUpload(files, opt) {
|
|
131
132
|
},
|
132
133
|
ossParams,
|
133
134
|
axiosConf,
|
135
|
+
useHashName,
|
134
136
|
})
|
135
137
|
.then((res) => {
|
136
138
|
return Promise.resolve(res?.data?.data?.fileUrl);
|
@@ -109,8 +109,8 @@ export function Uploader({ onChange, ...props }) {
|
|
109
109
|
typeof promiseRes === "object"
|
110
110
|
? promiseRes.url
|
111
111
|
: promiseRes || _file.ossUrl || typeof _file === "string"
|
112
|
-
|
113
|
-
|
112
|
+
? _file
|
113
|
+
: "";
|
114
114
|
|
115
115
|
if (typeof _file.url === "string") {
|
116
116
|
_files[i].url = _file.url;
|
@@ -163,6 +163,7 @@ export function Uploader({ onChange, ...props }) {
|
|
163
163
|
|
164
164
|
// 自定义请求逻辑
|
165
165
|
let customRequest = props.customRequest;
|
166
|
+
|
166
167
|
if (uploadMode === "oss") {
|
167
168
|
customRequest = getOssUploadRequest({
|
168
169
|
...props,
|