@cqsjjb/jjb-react-admin-component 3.2.0-rc.0 → 3.2.0-rc.1
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/ControlWrapper/index.d.ts +0 -2
- package/ControlWrapper/index.js +5 -22
- package/FileUploader/index.d.ts +0 -2
- package/FileUploader/index.js +9 -21
- package/ImageUploader/index.d.ts +0 -2
- package/ImageUploader/index.js +21 -19
- package/package.json +1 -1
package/ControlWrapper/index.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import
|
|
4
|
-
import { Row, Col, Input as OriginInput, Select as OriginSelect, Cascader as OriginCascader, DatePicker as OriginDatePicker, TreeSelect as OriginTreeSelect } from 'antd';
|
|
5
|
-
import { tools } from '@cqsjjb/jjb-common-lib';
|
|
6
|
-
import { getAlgorithm, getPrefixCls } from '../tools/index.js';
|
|
7
|
-
import './index.less';
|
|
8
|
-
const algorithm = getAlgorithm();
|
|
9
|
-
const prefixCls = getPrefixCls();
|
|
3
|
+
import { Input as OriginInput, Select as OriginSelect, Cascader as OriginCascader, DatePicker as OriginDatePicker, TreeSelect as OriginTreeSelect } from 'antd';
|
|
10
4
|
|
|
11
5
|
/**
|
|
12
6
|
* 通用包裹组件
|
|
@@ -17,8 +11,6 @@ function withLabel(WrappedComponent, extraProps = {}) {
|
|
|
17
11
|
return function Wrapper(props) {
|
|
18
12
|
const {
|
|
19
13
|
label,
|
|
20
|
-
labelSpan,
|
|
21
|
-
style,
|
|
22
14
|
onChange,
|
|
23
15
|
...restProps
|
|
24
16
|
} = props;
|
|
@@ -28,23 +20,14 @@ function withLabel(WrappedComponent, extraProps = {}) {
|
|
|
28
20
|
onChange(val === '' ? undefined : val, ...args);
|
|
29
21
|
}
|
|
30
22
|
};
|
|
31
|
-
return /*#__PURE__*/React.createElement(
|
|
32
|
-
style: style,
|
|
33
|
-
className: tools.classNames(`${prefixCls}-form-item-control-label-wrapper`, `${prefixCls}-form-item-control-label-wrapper-${algorithm}`, label && `${prefixCls}-form-item-control-label-has`)
|
|
34
|
-
}, /*#__PURE__*/React.createElement(Row, {
|
|
35
|
-
align: "middle"
|
|
36
|
-
}, label && /*#__PURE__*/React.createElement(Col, {
|
|
37
|
-
span: labelSpan,
|
|
38
|
-
className: `${prefixCls}-form-item-control-label-span`
|
|
39
|
-
}, label), /*#__PURE__*/React.createElement(Col, {
|
|
40
|
-
flex: 1
|
|
41
|
-
}, /*#__PURE__*/React.createElement(WrappedComponent, _extends({
|
|
23
|
+
return /*#__PURE__*/React.createElement(WrappedComponent, _extends({
|
|
42
24
|
style: {
|
|
43
25
|
width: '100%'
|
|
44
|
-
}
|
|
26
|
+
},
|
|
27
|
+
prefix: label
|
|
45
28
|
}, extraProps, restProps, {
|
|
46
29
|
onChange: handleChange
|
|
47
|
-
}))
|
|
30
|
+
}));
|
|
48
31
|
};
|
|
49
32
|
}
|
|
50
33
|
|
package/FileUploader/index.d.ts
CHANGED
package/FileUploader/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import MD5 from 'spark-md5';
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Tooltip, Button, message } from 'antd';
|
|
5
5
|
import { DeleteOutlined, PaperClipOutlined } from '@ant-design/icons';
|
|
6
|
-
import { getAppKey, getToken, isHttpUrl
|
|
6
|
+
import { getAppKey, getToken, isHttpUrl } from '../tools/index.js';
|
|
7
7
|
import { tools } from '@cqsjjb/jjb-common-lib';
|
|
8
8
|
import './index.less';
|
|
9
9
|
const {
|
|
@@ -137,14 +137,6 @@ class FileUploader extends React.Component {
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
/**
|
|
141
|
-
* @description 获取版本
|
|
142
|
-
* @return {string}
|
|
143
|
-
*/
|
|
144
|
-
get version() {
|
|
145
|
-
return this.props.version || 'v2';
|
|
146
|
-
}
|
|
147
|
-
|
|
148
140
|
/**
|
|
149
141
|
* @description 发起上传请求
|
|
150
142
|
* @param file {File}
|
|
@@ -194,17 +186,13 @@ class FileUploader extends React.Component {
|
|
|
194
186
|
Object.keys(this.httpConfig.data).forEach(key => form.append(key, this.httpConfig.data[key]));
|
|
195
187
|
xhr.send(form);
|
|
196
188
|
});
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
form.append('md5', md5.end());
|
|
202
|
-
fn();
|
|
203
|
-
};
|
|
204
|
-
read.readAsDataURL(file);
|
|
205
|
-
} else {
|
|
189
|
+
const read = new FileReader();
|
|
190
|
+
read.onload = e => {
|
|
191
|
+
md5.appendBinary(e.target.result);
|
|
192
|
+
form.append('md5', md5.end());
|
|
206
193
|
fn();
|
|
207
|
-
}
|
|
194
|
+
};
|
|
195
|
+
read.readAsDataURL(file);
|
|
208
196
|
});
|
|
209
197
|
}
|
|
210
198
|
|
|
@@ -245,7 +233,7 @@ class FileUploader extends React.Component {
|
|
|
245
233
|
size: maxSize = 5120
|
|
246
234
|
} = this.props;
|
|
247
235
|
this.verifyFileAccept(fileType, accept).then(() => this.verifyFileSize(fileSize, maxSize).then(() => this.onFormRequest(file).then(res => {
|
|
248
|
-
const data =
|
|
236
|
+
const data = {
|
|
249
237
|
fileId: res.fileId || res.url,
|
|
250
238
|
fileUrl: res.fileUrl || res.fileName
|
|
251
239
|
};
|
|
@@ -282,7 +270,7 @@ class FileUploader extends React.Component {
|
|
|
282
270
|
disabled: this.disabled,
|
|
283
271
|
onChange: e => this.onUpload(e)
|
|
284
272
|
}), /*#__PURE__*/React.createElement("span", null, children)), this.value.map((value, index) => {
|
|
285
|
-
const $value =
|
|
273
|
+
const $value = value?.fileUrl;
|
|
286
274
|
return /*#__PURE__*/React.createElement("div", {
|
|
287
275
|
key: index,
|
|
288
276
|
className: `${prefixCls}-upload-list-text-container`
|
package/ImageUploader/index.d.ts
CHANGED
package/ImageUploader/index.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import MD5 from 'spark-md5';
|
|
2
2
|
import React, { useState, useRef, useCallback } from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
3
|
import { tools } from '@cqsjjb/jjb-common-lib';
|
|
5
4
|
import { Button, Col, Image as ImageFunc, Modal, Row, message } from 'antd';
|
|
6
5
|
import { PlusOutlined, EyeOutlined, DeleteOutlined, SyncOutlined, ScissorOutlined } from '@ant-design/icons';
|
|
7
6
|
import ImageCropper from '../ImageCropper';
|
|
8
7
|
import './index.less';
|
|
9
|
-
import {
|
|
8
|
+
import { getToken, getViewAsp, getAppKey, isHttpUrl } from '../tools/index.js';
|
|
10
9
|
const {
|
|
11
10
|
toObject,
|
|
12
11
|
isPromise,
|
|
@@ -23,7 +22,6 @@ const ImageUploader = props => {
|
|
|
23
22
|
const [resource, setResource] = useState(undefined);
|
|
24
23
|
const cropperRef = useRef(null);
|
|
25
24
|
const fileInputRef = useRef(null);
|
|
26
|
-
const version = props.version || 'v2';
|
|
27
25
|
const algorithm = (() => {
|
|
28
26
|
const value = document.documentElement.style.getPropertyValue('--saas-algorithm');
|
|
29
27
|
return value ? value === '#FFF' ? 'default' : 'dark' : 'default';
|
|
@@ -36,7 +34,7 @@ const ImageUploader = props => {
|
|
|
36
34
|
return new Promise(resolve => {
|
|
37
35
|
const reader = new FileReader();
|
|
38
36
|
reader.onload = e => {
|
|
39
|
-
|
|
37
|
+
md5.appendBinary(e.target.result);
|
|
40
38
|
const isImage = (svg ? FILE_TYPE_POWER : FILE_TYPE).includes(file.type);
|
|
41
39
|
if (isImage) {
|
|
42
40
|
const image = new Image();
|
|
@@ -46,7 +44,7 @@ const ImageUploader = props => {
|
|
|
46
44
|
resolve({
|
|
47
45
|
file,
|
|
48
46
|
base64,
|
|
49
|
-
md5:
|
|
47
|
+
md5: md5.end(),
|
|
50
48
|
size: file.size,
|
|
51
49
|
type: file.type,
|
|
52
50
|
name: file.name,
|
|
@@ -57,7 +55,7 @@ const ImageUploader = props => {
|
|
|
57
55
|
} else {
|
|
58
56
|
resolve({
|
|
59
57
|
file,
|
|
60
|
-
md5:
|
|
58
|
+
md5: md5.end(),
|
|
61
59
|
size: file.size,
|
|
62
60
|
type: file.type,
|
|
63
61
|
name: file.name,
|
|
@@ -69,7 +67,7 @@ const ImageUploader = props => {
|
|
|
69
67
|
};
|
|
70
68
|
reader.readAsDataURL(file);
|
|
71
69
|
});
|
|
72
|
-
}, [props
|
|
70
|
+
}, [props]);
|
|
73
71
|
const onCompression = useCallback(data => {
|
|
74
72
|
const {
|
|
75
73
|
compressionConfig
|
|
@@ -123,9 +121,10 @@ const ImageUploader = props => {
|
|
|
123
121
|
const form = new FormData();
|
|
124
122
|
const headers = toObject($headers);
|
|
125
123
|
headers.appKey = getAppKey();
|
|
126
|
-
if (needToken)
|
|
127
|
-
|
|
128
|
-
|
|
124
|
+
if (needToken) {
|
|
125
|
+
headers.token = getToken();
|
|
126
|
+
}
|
|
127
|
+
transfer.md5 && form.append('md5', transfer.md5);
|
|
129
128
|
setLoading(true);
|
|
130
129
|
xhr.open('POST', requestURL);
|
|
131
130
|
Object.keys(headers).forEach(key => xhr.setRequestHeader(key, headers[key]));
|
|
@@ -135,19 +134,22 @@ const ImageUploader = props => {
|
|
|
135
134
|
const res = parseObject(xhr.responseText);
|
|
136
135
|
if (isFunction(customRequest)) {
|
|
137
136
|
const fn = customRequest(res);
|
|
138
|
-
if (isPromise(fn))
|
|
137
|
+
if (isPromise(fn)) {
|
|
138
|
+
fn.then(value => onChange && onChange(value));
|
|
139
|
+
}
|
|
139
140
|
} else {
|
|
140
141
|
const {
|
|
141
142
|
success,
|
|
142
|
-
respCode,
|
|
143
143
|
errMessage
|
|
144
144
|
} = res;
|
|
145
|
-
if (
|
|
145
|
+
if (success) {
|
|
146
146
|
const result = toObject(res.data);
|
|
147
|
-
if (typeof onChange === 'undefined')
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
147
|
+
if (typeof onChange === 'undefined') {
|
|
148
|
+
console.warn('ImageUploader警告:缺少必要的onChange回调,可能无法正确显示图片!');
|
|
149
|
+
}
|
|
150
|
+
onChange && onChange({
|
|
151
|
+
fileId: result.fileId,
|
|
152
|
+
fileUrl: result.fileUrl
|
|
151
153
|
});
|
|
152
154
|
message.success('上传成功!');
|
|
153
155
|
} else {
|
|
@@ -159,7 +161,7 @@ const ImageUploader = props => {
|
|
|
159
161
|
form.append(fieldName, transfer.file);
|
|
160
162
|
Object.keys(data).forEach(key => form.append(key, data[key]));
|
|
161
163
|
xhr.send(form);
|
|
162
|
-
}, [props
|
|
164
|
+
}, [props]);
|
|
163
165
|
const onUpload = useCallback(e => {
|
|
164
166
|
const target = e.target;
|
|
165
167
|
const files = target.files;
|
|
@@ -236,7 +238,7 @@ const ImageUploader = props => {
|
|
|
236
238
|
}, value ? /*#__PURE__*/React.createElement("div", {
|
|
237
239
|
className: `${prefixCls}_image-file-uploader-preview_`
|
|
238
240
|
}, value && /*#__PURE__*/React.createElement(ImageFunc, {
|
|
239
|
-
src:
|
|
241
|
+
src: toObject(value).fileUrl,
|
|
240
242
|
preview: !disabled ? {
|
|
241
243
|
visible: preview,
|
|
242
244
|
onVisibleChange: () => setPreview(false)
|