@kmkf-fe-packages/basic-components 0.8.9-alpha.14 → 0.8.9-alpha.16
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.esm.js +95 -20
- package/dist/index.js +94 -19
- package/package.json +4 -2
package/dist/index.esm.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { useRef, useState, useEffect, useMemo, forwardRef, useImperativeHandle } from 'react';
|
|
2
|
-
import { Cascader, DatePicker, InputNumber, Input, Select, Upload, Image, message, Radio, Space, Spin, Checkbox, Row, Col, Slider, Rate,
|
|
2
|
+
import { Cascader, DatePicker, InputNumber, Input, Select, Upload, Image, message, Radio, Space, Spin, Modal, Button, Checkbox, Row, Col, Slider, Rate, Form, Tabs, ConfigProvider, Pagination, Popover, Table } from 'antd';
|
|
3
3
|
import { EyeOutlined, DeleteOutlined, InboxOutlined } from '@ant-design/icons';
|
|
4
4
|
import request, { extend as extend$1 } from 'umi-request';
|
|
5
|
+
import { CopyToClipboard } from 'react-copy-to-clipboard';
|
|
5
6
|
import { AddressData, BsAddressData, request as request$1, ExpressData, LogisticsAddressData, uuid } from '@kmkf-fe-packages/kmkf-utils';
|
|
6
7
|
import zhCN from 'antd/lib/locale/zh_CN';
|
|
7
8
|
import pubsub from 'pubsub-js';
|
|
@@ -6876,11 +6877,27 @@ var ApaasUploadAsync$1 = function ApaasUploadAsync(_ref) {
|
|
|
6876
6877
|
_ref$actionUrl = _ref.actionUrl,
|
|
6877
6878
|
actionUrl = _ref$actionUrl === void 0 ? '/qy/common/uploadWorkOrderImg' : _ref$actionUrl,
|
|
6878
6879
|
resetProps = _objectWithoutProperties(_ref, _excluded$7);
|
|
6879
|
-
var valueRef = useRef(value);
|
|
6880
6880
|
var _useState = useState(false),
|
|
6881
6881
|
_useState2 = _slicedToArray(_useState, 2),
|
|
6882
|
-
|
|
6883
|
-
|
|
6882
|
+
visible = _useState2[0],
|
|
6883
|
+
setVisible = _useState2[1];
|
|
6884
|
+
var _useState3 = useState(''),
|
|
6885
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
6886
|
+
fileUrl = _useState4[0],
|
|
6887
|
+
setFileUrl = _useState4[1];
|
|
6888
|
+
var _useState5 = useState(''),
|
|
6889
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
6890
|
+
fileType = _useState6[0],
|
|
6891
|
+
setFileType = _useState6[1];
|
|
6892
|
+
var _useState7 = useState(''),
|
|
6893
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
6894
|
+
fileName = _useState8[0],
|
|
6895
|
+
setFileName = _useState8[1];
|
|
6896
|
+
var valueRef = useRef(value);
|
|
6897
|
+
var _useState9 = useState(false),
|
|
6898
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
6899
|
+
uploading = _useState10[0],
|
|
6900
|
+
setUploading = _useState10[1];
|
|
6884
6901
|
var fileList = useMemo(function () {
|
|
6885
6902
|
return value.map(function (t, i) {
|
|
6886
6903
|
return _objectSpread2(_objectSpread2({}, t), {}, {
|
|
@@ -6967,6 +6984,29 @@ var ApaasUploadAsync$1 = function ApaasUploadAsync(_ref) {
|
|
|
6967
6984
|
});
|
|
6968
6985
|
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
6969
6986
|
};
|
|
6987
|
+
var onPreview = function onPreview(file) {
|
|
6988
|
+
var _file$url;
|
|
6989
|
+
var fileArr = file === null || file === void 0 ? void 0 : (_file$url = file.url) === null || _file$url === void 0 ? void 0 : _file$url.split('.');
|
|
6990
|
+
var fileType = fileArr[fileArr.length - 1];
|
|
6991
|
+
if (['png', 'jpg', 'jpeg', 'gif', 'bmp', 'svg'].includes(fileType.toLowerCase())) {
|
|
6992
|
+
setFileUrl(file === null || file === void 0 ? void 0 : file.url);
|
|
6993
|
+
setFileName(file === null || file === void 0 ? void 0 : file.name);
|
|
6994
|
+
setFileType('pic');
|
|
6995
|
+
setVisible(true);
|
|
6996
|
+
} else if (['mp4', 'avi', 'mpeg', 'asf', 'mov', '3gp', 'wmv', 'rmvb'].includes(fileType.toLowerCase())) {
|
|
6997
|
+
setFileUrl(file === null || file === void 0 ? void 0 : file.url);
|
|
6998
|
+
setFileName(file === null || file === void 0 ? void 0 : file.name);
|
|
6999
|
+
setFileType('video');
|
|
7000
|
+
setVisible(true);
|
|
7001
|
+
} else {
|
|
7002
|
+
window.open(file === null || file === void 0 ? void 0 : file.url);
|
|
7003
|
+
}
|
|
7004
|
+
};
|
|
7005
|
+
var handleCancel = function handleCancel() {
|
|
7006
|
+
setFileUrl('');
|
|
7007
|
+
setFileName('');
|
|
7008
|
+
setVisible(false);
|
|
7009
|
+
};
|
|
6970
7010
|
return /*#__PURE__*/React.createElement(Spin, {
|
|
6971
7011
|
spinning: uploading
|
|
6972
7012
|
}, /*#__PURE__*/React.createElement("p", {
|
|
@@ -6978,13 +7018,40 @@ var ApaasUploadAsync$1 = function ApaasUploadAsync(_ref) {
|
|
|
6978
7018
|
name: "file",
|
|
6979
7019
|
maxCount: maxCount,
|
|
6980
7020
|
beforeUpload: beforeUpload,
|
|
7021
|
+
onPreview: onPreview,
|
|
6981
7022
|
fileList: fileList,
|
|
6982
7023
|
onRemove: onRemove
|
|
6983
7024
|
}, resetProps), /*#__PURE__*/React.createElement("p", {
|
|
6984
7025
|
className: "ant-upload-drag-icon"
|
|
6985
7026
|
}, /*#__PURE__*/React.createElement(InboxOutlined, null)), /*#__PURE__*/React.createElement("p", {
|
|
6986
7027
|
className: "ant-upload-text"
|
|
6987
|
-
}, "\u70B9\u51FB\u201C\u9009\u62E9\u6587\u4EF6\u201D\u6216\u5C06\u6587\u4EF6\u62D6\u62FD\u5230\u6B64\u533A\u57DF"))
|
|
7028
|
+
}, "\u70B9\u51FB\u201C\u9009\u62E9\u6587\u4EF6\u201D\u6216\u5C06\u6587\u4EF6\u62D6\u62FD\u5230\u6B64\u533A\u57DF")), /*#__PURE__*/React.createElement(Modal, {
|
|
7029
|
+
visible: visible,
|
|
7030
|
+
title: fileName,
|
|
7031
|
+
footer: null,
|
|
7032
|
+
onCancel: handleCancel
|
|
7033
|
+
}, /*#__PURE__*/React.createElement(CopyToClipboard, {
|
|
7034
|
+
text: fileUrl,
|
|
7035
|
+
onCopy: function onCopy() {
|
|
7036
|
+
message.success('复制成功');
|
|
7037
|
+
}
|
|
7038
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
7039
|
+
type: "link"
|
|
7040
|
+
}, "\u4E0B\u8F7D\u5730\u5740")), fileType === 'pic' ? /*#__PURE__*/React.createElement("img", {
|
|
7041
|
+
alt: "example",
|
|
7042
|
+
style: {
|
|
7043
|
+
width: '100%'
|
|
7044
|
+
},
|
|
7045
|
+
src: fileUrl
|
|
7046
|
+
}) : /*#__PURE__*/React.createElement("video", {
|
|
7047
|
+
style: {
|
|
7048
|
+
width: '100%',
|
|
7049
|
+
height: '100%'
|
|
7050
|
+
},
|
|
7051
|
+
autoPlay: true,
|
|
7052
|
+
controls: true,
|
|
7053
|
+
src: fileUrl
|
|
7054
|
+
})));
|
|
6988
7055
|
};
|
|
6989
7056
|
|
|
6990
7057
|
var _excluded$8 = ["showOther", "horizontal", "options", "value", "onChange", "disabled"];
|
|
@@ -9838,38 +9905,46 @@ var GoodsModal$1 = function GoodsModal(props, ref) {
|
|
|
9838
9905
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
9839
9906
|
while (1) switch (_context.prev = _context.next) {
|
|
9840
9907
|
case 0:
|
|
9908
|
+
if (shopCode) {
|
|
9909
|
+
_context.next = 2;
|
|
9910
|
+
break;
|
|
9911
|
+
}
|
|
9912
|
+
return _context.abrupt("return");
|
|
9913
|
+
case 2:
|
|
9841
9914
|
form.setFieldsValue({
|
|
9842
9915
|
shopId: shopCode
|
|
9843
9916
|
});
|
|
9844
|
-
_context.prev =
|
|
9917
|
+
_context.prev = 3;
|
|
9845
9918
|
setLoading(true);
|
|
9846
9919
|
params = {
|
|
9847
9920
|
shopCode: shopCode
|
|
9848
9921
|
};
|
|
9849
|
-
_context.next =
|
|
9922
|
+
_context.next = 8;
|
|
9850
9923
|
return extendRequest('/qy/gdfw/product/bsListProduct', {
|
|
9851
9924
|
method: 'post',
|
|
9852
9925
|
data: params
|
|
9853
9926
|
});
|
|
9854
|
-
case
|
|
9927
|
+
case 8:
|
|
9855
9928
|
res = _context.sent;
|
|
9856
|
-
|
|
9857
|
-
|
|
9858
|
-
|
|
9859
|
-
|
|
9929
|
+
if (res.success) {
|
|
9930
|
+
products = res.data.products;
|
|
9931
|
+
newProducts = (products || []).map(function (item, index) {
|
|
9932
|
+
return _objectSpread2(_objectSpread2({}, item), {}, {
|
|
9933
|
+
index: index + 1
|
|
9934
|
+
});
|
|
9860
9935
|
});
|
|
9861
|
-
|
|
9862
|
-
|
|
9863
|
-
|
|
9864
|
-
case
|
|
9865
|
-
_context.prev =
|
|
9936
|
+
setAllList(_toConsumableArray(newProducts));
|
|
9937
|
+
initData(_toConsumableArray(newProducts));
|
|
9938
|
+
}
|
|
9939
|
+
case 10:
|
|
9940
|
+
_context.prev = 10;
|
|
9866
9941
|
setLoading(false);
|
|
9867
|
-
return _context.finish(
|
|
9868
|
-
case
|
|
9942
|
+
return _context.finish(10);
|
|
9943
|
+
case 13:
|
|
9869
9944
|
case "end":
|
|
9870
9945
|
return _context.stop();
|
|
9871
9946
|
}
|
|
9872
|
-
}, _callee, null, [[
|
|
9947
|
+
}, _callee, null, [[3,, 10, 13]]);
|
|
9873
9948
|
}));
|
|
9874
9949
|
return function queryItems(_x) {
|
|
9875
9950
|
return _ref.apply(this, arguments);
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var React = require('react');
|
|
|
6
6
|
var antd = require('antd');
|
|
7
7
|
var icons = require('@ant-design/icons');
|
|
8
8
|
var request = require('umi-request');
|
|
9
|
+
var reactCopyToClipboard = require('react-copy-to-clipboard');
|
|
9
10
|
var kmkfUtils = require('@kmkf-fe-packages/kmkf-utils');
|
|
10
11
|
var zhCN = require('antd/lib/locale/zh_CN');
|
|
11
12
|
var pubsub = require('pubsub-js');
|
|
@@ -6887,11 +6888,27 @@ var ApaasUploadAsync$1 = function ApaasUploadAsync(_ref) {
|
|
|
6887
6888
|
_ref$actionUrl = _ref.actionUrl,
|
|
6888
6889
|
actionUrl = _ref$actionUrl === void 0 ? '/qy/common/uploadWorkOrderImg' : _ref$actionUrl,
|
|
6889
6890
|
resetProps = _objectWithoutProperties(_ref, _excluded$7);
|
|
6890
|
-
var valueRef = React.useRef(value);
|
|
6891
6891
|
var _useState = React.useState(false),
|
|
6892
6892
|
_useState2 = _slicedToArray(_useState, 2),
|
|
6893
|
-
|
|
6894
|
-
|
|
6893
|
+
visible = _useState2[0],
|
|
6894
|
+
setVisible = _useState2[1];
|
|
6895
|
+
var _useState3 = React.useState(''),
|
|
6896
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
6897
|
+
fileUrl = _useState4[0],
|
|
6898
|
+
setFileUrl = _useState4[1];
|
|
6899
|
+
var _useState5 = React.useState(''),
|
|
6900
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
6901
|
+
fileType = _useState6[0],
|
|
6902
|
+
setFileType = _useState6[1];
|
|
6903
|
+
var _useState7 = React.useState(''),
|
|
6904
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
6905
|
+
fileName = _useState8[0],
|
|
6906
|
+
setFileName = _useState8[1];
|
|
6907
|
+
var valueRef = React.useRef(value);
|
|
6908
|
+
var _useState9 = React.useState(false),
|
|
6909
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
6910
|
+
uploading = _useState10[0],
|
|
6911
|
+
setUploading = _useState10[1];
|
|
6895
6912
|
var fileList = React.useMemo(function () {
|
|
6896
6913
|
return value.map(function (t, i) {
|
|
6897
6914
|
return _objectSpread2(_objectSpread2({}, t), {}, {
|
|
@@ -6978,6 +6995,29 @@ var ApaasUploadAsync$1 = function ApaasUploadAsync(_ref) {
|
|
|
6978
6995
|
});
|
|
6979
6996
|
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
6980
6997
|
};
|
|
6998
|
+
var onPreview = function onPreview(file) {
|
|
6999
|
+
var _file$url;
|
|
7000
|
+
var fileArr = file === null || file === void 0 ? void 0 : (_file$url = file.url) === null || _file$url === void 0 ? void 0 : _file$url.split('.');
|
|
7001
|
+
var fileType = fileArr[fileArr.length - 1];
|
|
7002
|
+
if (['png', 'jpg', 'jpeg', 'gif', 'bmp', 'svg'].includes(fileType.toLowerCase())) {
|
|
7003
|
+
setFileUrl(file === null || file === void 0 ? void 0 : file.url);
|
|
7004
|
+
setFileName(file === null || file === void 0 ? void 0 : file.name);
|
|
7005
|
+
setFileType('pic');
|
|
7006
|
+
setVisible(true);
|
|
7007
|
+
} else if (['mp4', 'avi', 'mpeg', 'asf', 'mov', '3gp', 'wmv', 'rmvb'].includes(fileType.toLowerCase())) {
|
|
7008
|
+
setFileUrl(file === null || file === void 0 ? void 0 : file.url);
|
|
7009
|
+
setFileName(file === null || file === void 0 ? void 0 : file.name);
|
|
7010
|
+
setFileType('video');
|
|
7011
|
+
setVisible(true);
|
|
7012
|
+
} else {
|
|
7013
|
+
window.open(file === null || file === void 0 ? void 0 : file.url);
|
|
7014
|
+
}
|
|
7015
|
+
};
|
|
7016
|
+
var handleCancel = function handleCancel() {
|
|
7017
|
+
setFileUrl('');
|
|
7018
|
+
setFileName('');
|
|
7019
|
+
setVisible(false);
|
|
7020
|
+
};
|
|
6981
7021
|
return /*#__PURE__*/React__default['default'].createElement(antd.Spin, {
|
|
6982
7022
|
spinning: uploading
|
|
6983
7023
|
}, /*#__PURE__*/React__default['default'].createElement("p", {
|
|
@@ -6989,13 +7029,40 @@ var ApaasUploadAsync$1 = function ApaasUploadAsync(_ref) {
|
|
|
6989
7029
|
name: "file",
|
|
6990
7030
|
maxCount: maxCount,
|
|
6991
7031
|
beforeUpload: beforeUpload,
|
|
7032
|
+
onPreview: onPreview,
|
|
6992
7033
|
fileList: fileList,
|
|
6993
7034
|
onRemove: onRemove
|
|
6994
7035
|
}, resetProps), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
6995
7036
|
className: "ant-upload-drag-icon"
|
|
6996
7037
|
}, /*#__PURE__*/React__default['default'].createElement(icons.InboxOutlined, null)), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
6997
7038
|
className: "ant-upload-text"
|
|
6998
|
-
}, "\u70B9\u51FB\u201C\u9009\u62E9\u6587\u4EF6\u201D\u6216\u5C06\u6587\u4EF6\u62D6\u62FD\u5230\u6B64\u533A\u57DF"))
|
|
7039
|
+
}, "\u70B9\u51FB\u201C\u9009\u62E9\u6587\u4EF6\u201D\u6216\u5C06\u6587\u4EF6\u62D6\u62FD\u5230\u6B64\u533A\u57DF")), /*#__PURE__*/React__default['default'].createElement(antd.Modal, {
|
|
7040
|
+
visible: visible,
|
|
7041
|
+
title: fileName,
|
|
7042
|
+
footer: null,
|
|
7043
|
+
onCancel: handleCancel
|
|
7044
|
+
}, /*#__PURE__*/React__default['default'].createElement(reactCopyToClipboard.CopyToClipboard, {
|
|
7045
|
+
text: fileUrl,
|
|
7046
|
+
onCopy: function onCopy() {
|
|
7047
|
+
antd.message.success('复制成功');
|
|
7048
|
+
}
|
|
7049
|
+
}, /*#__PURE__*/React__default['default'].createElement(antd.Button, {
|
|
7050
|
+
type: "link"
|
|
7051
|
+
}, "\u4E0B\u8F7D\u5730\u5740")), fileType === 'pic' ? /*#__PURE__*/React__default['default'].createElement("img", {
|
|
7052
|
+
alt: "example",
|
|
7053
|
+
style: {
|
|
7054
|
+
width: '100%'
|
|
7055
|
+
},
|
|
7056
|
+
src: fileUrl
|
|
7057
|
+
}) : /*#__PURE__*/React__default['default'].createElement("video", {
|
|
7058
|
+
style: {
|
|
7059
|
+
width: '100%',
|
|
7060
|
+
height: '100%'
|
|
7061
|
+
},
|
|
7062
|
+
autoPlay: true,
|
|
7063
|
+
controls: true,
|
|
7064
|
+
src: fileUrl
|
|
7065
|
+
})));
|
|
6999
7066
|
};
|
|
7000
7067
|
|
|
7001
7068
|
var _excluded$8 = ["showOther", "horizontal", "options", "value", "onChange", "disabled"];
|
|
@@ -9849,38 +9916,46 @@ var GoodsModal$1 = function GoodsModal(props, ref) {
|
|
|
9849
9916
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
9850
9917
|
while (1) switch (_context.prev = _context.next) {
|
|
9851
9918
|
case 0:
|
|
9919
|
+
if (shopCode) {
|
|
9920
|
+
_context.next = 2;
|
|
9921
|
+
break;
|
|
9922
|
+
}
|
|
9923
|
+
return _context.abrupt("return");
|
|
9924
|
+
case 2:
|
|
9852
9925
|
form.setFieldsValue({
|
|
9853
9926
|
shopId: shopCode
|
|
9854
9927
|
});
|
|
9855
|
-
_context.prev =
|
|
9928
|
+
_context.prev = 3;
|
|
9856
9929
|
setLoading(true);
|
|
9857
9930
|
params = {
|
|
9858
9931
|
shopCode: shopCode
|
|
9859
9932
|
};
|
|
9860
|
-
_context.next =
|
|
9933
|
+
_context.next = 8;
|
|
9861
9934
|
return extendRequest('/qy/gdfw/product/bsListProduct', {
|
|
9862
9935
|
method: 'post',
|
|
9863
9936
|
data: params
|
|
9864
9937
|
});
|
|
9865
|
-
case
|
|
9938
|
+
case 8:
|
|
9866
9939
|
res = _context.sent;
|
|
9867
|
-
|
|
9868
|
-
|
|
9869
|
-
|
|
9870
|
-
|
|
9940
|
+
if (res.success) {
|
|
9941
|
+
products = res.data.products;
|
|
9942
|
+
newProducts = (products || []).map(function (item, index) {
|
|
9943
|
+
return _objectSpread2(_objectSpread2({}, item), {}, {
|
|
9944
|
+
index: index + 1
|
|
9945
|
+
});
|
|
9871
9946
|
});
|
|
9872
|
-
|
|
9873
|
-
|
|
9874
|
-
|
|
9875
|
-
case
|
|
9876
|
-
_context.prev =
|
|
9947
|
+
setAllList(_toConsumableArray(newProducts));
|
|
9948
|
+
initData(_toConsumableArray(newProducts));
|
|
9949
|
+
}
|
|
9950
|
+
case 10:
|
|
9951
|
+
_context.prev = 10;
|
|
9877
9952
|
setLoading(false);
|
|
9878
|
-
return _context.finish(
|
|
9879
|
-
case
|
|
9953
|
+
return _context.finish(10);
|
|
9954
|
+
case 13:
|
|
9880
9955
|
case "end":
|
|
9881
9956
|
return _context.stop();
|
|
9882
9957
|
}
|
|
9883
|
-
}, _callee, null, [[
|
|
9958
|
+
}, _callee, null, [[3,, 10, 13]]);
|
|
9884
9959
|
}));
|
|
9885
9960
|
return function queryItems(_x) {
|
|
9886
9961
|
return _ref.apply(this, arguments);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kmkf-fe-packages/basic-components",
|
|
3
|
-
"version": "0.8.9-alpha.
|
|
3
|
+
"version": "0.8.9-alpha.16",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "",
|
|
6
6
|
"license": "ISC",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"@kmkf-fe-packages/kmkf-utils": "^0.8.9-alpha.9",
|
|
24
24
|
"lodash": "^4.17.21",
|
|
25
25
|
"pubsub-js": "^1.9.4",
|
|
26
|
+
"react-copy-to-clipboard": "^5.1.0",
|
|
26
27
|
"umi-request": "^1.4.0"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
"@types/jest": "^29.5.1",
|
|
32
33
|
"@types/node": "^20.1.4",
|
|
33
34
|
"@types/pubsub-js": "^1.8.3",
|
|
35
|
+
"@types/react-copy-to-clipboard": "^5.0.4",
|
|
34
36
|
"@types/react-test-renderer": "^18.0.0",
|
|
35
37
|
"@typescript-eslint/eslint-plugin": "^5.59.2",
|
|
36
38
|
"@typescript-eslint/parser": "^5.59.2",
|
|
@@ -58,5 +60,5 @@
|
|
|
58
60
|
"publishConfig": {
|
|
59
61
|
"access": "public"
|
|
60
62
|
},
|
|
61
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "ccd1a3567805bbc657b70072626e6caa80c9da2b"
|
|
62
64
|
}
|