@zykj2024/much-library 1.1.7-beta.3 → 1.1.7-beta.5
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/LICENSE +21 -0
- package/README.md +35 -0
- package/dist/McCascader/city.js +909 -0
- package/dist/McCascader/index.css +60 -0
- package/dist/McCascader/index.d.ts +19 -0
- package/dist/McCascader/index.js +221 -0
- package/dist/McContainer/demo/actionBar.d.ts +8 -0
- package/dist/McContainer/demo/actionBar.js +118 -0
- package/dist/McContainer/demo/base.d.ts +8 -0
- package/dist/McContainer/demo/base.js +82 -0
- package/dist/McContainer/demo/batch.d.ts +8 -0
- package/dist/McContainer/demo/batch.js +129 -0
- package/dist/McContainer/demo/collapse.d.ts +8 -0
- package/dist/McContainer/demo/collapse.js +77 -0
- package/dist/McContainer/demo/expand.d.ts +8 -0
- package/dist/McContainer/demo/expand.js +90 -0
- package/dist/McContainer/demo/generic.d.ts +8 -0
- package/dist/McContainer/demo/generic.js +91 -0
- package/dist/McContainer/demo/pagination.d.ts +7 -0
- package/dist/McContainer/demo/pagination.js +133 -0
- package/dist/McContainer/demo/search.d.ts +7 -0
- package/dist/McContainer/demo/search.js +102 -0
- package/dist/McContainer/demo/standard.d.ts +7 -0
- package/dist/McContainer/demo/standard.js +219 -0
- package/dist/McContainer/index.css +123 -0
- package/dist/McContainer/index.d.ts +192 -0
- package/dist/McContainer/index.js +522 -0
- package/dist/McContainer/mock/index.d.ts +21 -0
- package/dist/McContainer/mock/index.js +50 -0
- package/dist/McDateRange/demo/base.d.ts +6 -0
- package/dist/McDateRange/demo/base.js +22 -0
- package/dist/McDateRange/demo/cancelPresets.d.ts +6 -0
- package/dist/McDateRange/demo/cancelPresets.js +23 -0
- package/dist/McDateRange/demo/overlap.d.ts +2 -0
- package/dist/McDateRange/demo/overlap.js +32 -0
- package/dist/McDateRange/index.css +31 -0
- package/dist/McDateRange/index.d.ts +28 -0
- package/dist/McDateRange/index.js +167 -0
- package/dist/McEllipsis/demo/base.d.ts +6 -0
- package/dist/McEllipsis/demo/base.js +22 -0
- package/dist/McEllipsis/demo/middle.d.ts +6 -0
- package/dist/McEllipsis/demo/middle.js +24 -0
- package/dist/McEllipsis/demo/table.d.ts +5 -0
- package/dist/McEllipsis/demo/table.js +93 -0
- package/dist/McEllipsis/demo/tooltip-size.d.ts +6 -0
- package/dist/McEllipsis/demo/tooltip-size.js +20 -0
- package/dist/McEllipsis/demo/tooltip.d.ts +6 -0
- package/dist/McEllipsis/demo/tooltip.js +53 -0
- package/dist/McEllipsis/index.css +4 -0
- package/dist/McEllipsis/index.d.ts +40 -0
- package/dist/McEllipsis/index.js +115 -0
- package/dist/McEllipsisMiddle/demo/base.d.ts +6 -0
- package/dist/McEllipsisMiddle/demo/base.js +25 -0
- package/dist/McEllipsisMiddle/demo/tooltip.d.ts +6 -0
- package/dist/McEllipsisMiddle/demo/tooltip.js +35 -0
- package/dist/McEllipsisMiddle/index.css +4 -0
- package/dist/McEllipsisMiddle/index.d.ts +13 -0
- package/dist/McEllipsisMiddle/index.js +42 -0
- package/dist/McFonts/index.d.ts +8 -0
- package/dist/McFonts/index.js +7 -0
- package/dist/McGroupPanel/comps/SelectedItem/index.d.ts +4 -0
- package/dist/McGroupPanel/comps/SelectedItem/index.js +75 -0
- package/dist/McGroupPanel/index.css +169 -0
- package/dist/McGroupPanel/index.d.ts +30 -0
- package/dist/McGroupPanel/index.js +426 -0
- package/dist/McIconFont/iconfont.js +1 -0
- package/dist/McIconFont/index.d.ts +5 -0
- package/dist/McIconFont/index.js +8 -0
- package/dist/McIcons/business.json +137 -0
- package/dist/McIcons/index.css +33 -0
- package/dist/McInput/Input.d.ts +19 -0
- package/dist/McInput/Input.js +48 -0
- package/dist/McInput/Search.d.ts +39 -0
- package/dist/McInput/Search.js +81 -0
- package/dist/McInput/TextArea.d.ts +11 -0
- package/dist/McInput/TextArea.js +37 -0
- package/dist/McInput/demo/Input/addonBefore.d.ts +3 -0
- package/dist/McInput/demo/Input/addonBefore.js +67 -0
- package/dist/McInput/demo/Input/base.d.ts +2 -0
- package/dist/McInput/demo/Input/base.js +31 -0
- package/dist/McInput/demo/Input/isTrim.d.ts +2 -0
- package/dist/McInput/demo/Input/isTrim.js +22 -0
- package/dist/McInput/demo/Input/label.d.ts +2 -0
- package/dist/McInput/demo/Input/label.js +26 -0
- package/dist/McInput/demo/Input/ref.d.ts +3 -0
- package/dist/McInput/demo/Input/ref.js +53 -0
- package/dist/McInput/demo/Input/status.d.ts +2 -0
- package/dist/McInput/demo/Input/status.js +23 -0
- package/dist/McInput/demo/Search/search-base.d.ts +2 -0
- package/dist/McInput/demo/Search/search-base.js +38 -0
- package/dist/McInput/demo/TextArea/text-area-base.d.ts +2 -0
- package/dist/McInput/demo/TextArea/text-area-base.js +38 -0
- package/dist/McInput/index.css +71 -0
- package/dist/McInput/index.d.ts +13 -0
- package/dist/McInput/index.js +7 -0
- package/dist/McInputNumber/demo/index.d.ts +2 -0
- package/dist/McInputNumber/demo/index.js +34 -0
- package/dist/McInputNumber/demo/label.d.ts +2 -0
- package/dist/McInputNumber/demo/label.js +26 -0
- package/dist/McInputNumber/demo/precision.d.ts +2 -0
- package/dist/McInputNumber/demo/precision.js +20 -0
- package/dist/McInputNumber/index.css +36 -0
- package/dist/McInputNumber/index.d.ts +16 -0
- package/dist/McInputNumber/index.js +50 -0
- package/dist/McLazyLoader/demo/basic.d.ts +2 -0
- package/dist/McLazyLoader/demo/basic.js +33 -0
- package/dist/McLazyLoader/demo/container.d.ts +2 -0
- package/dist/McLazyLoader/demo/container.js +83 -0
- package/dist/McLazyLoader/demo/form.d.ts +2 -0
- package/dist/McLazyLoader/demo/form.js +38 -0
- package/dist/McLazyLoader/demo/has-root.d.ts +2 -0
- package/dist/McLazyLoader/demo/has-root.js +44 -0
- package/dist/McLazyLoader/demo/hori.d.ts +2 -0
- package/dist/McLazyLoader/demo/hori.js +39 -0
- package/dist/McLazyLoader/demo/table.d.ts +2 -0
- package/dist/McLazyLoader/demo/table.js +73 -0
- package/dist/McLazyLoader/index.d.ts +39 -0
- package/dist/McLazyLoader/index.js +88 -0
- package/dist/McListSelect/comps/ListSelect.d.ts +67 -0
- package/dist/McListSelect/comps/ListSelect.js +289 -0
- package/dist/McListSelect/comps/ListSelectPanel.d.ts +138 -0
- package/dist/McListSelect/comps/ListSelectPanel.js +451 -0
- package/dist/McListSelect/comps/SelectedItem.d.ts +17 -0
- package/dist/McListSelect/comps/SelectedItem.js +76 -0
- package/dist/McListSelect/demo/base.d.ts +6 -0
- package/dist/McListSelect/demo/base.js +125 -0
- package/dist/McListSelect/demo/inexistent.d.ts +6 -0
- package/dist/McListSelect/demo/inexistent.js +111 -0
- package/dist/McListSelect/demo/layout.d.ts +6 -0
- package/dist/McListSelect/demo/layout.js +70 -0
- package/dist/McListSelect/demo/other.d.ts +6 -0
- package/dist/McListSelect/demo/other.js +68 -0
- package/dist/McListSelect/demo/panel-inexistent.d.ts +6 -0
- package/dist/McListSelect/demo/panel-inexistent.js +86 -0
- package/dist/McListSelect/index.css +273 -0
- package/dist/McListSelect/index.d.ts +10 -0
- package/dist/McListSelect/index.js +5 -0
- package/dist/McListSelect/mock/index.d.ts +1 -0
- package/dist/McListSelect/mock/index.js +27 -0
- package/dist/McModalProvider/index.d.ts +174 -0
- package/dist/McModalProvider/index.js +498 -0
- package/dist/McPeriodSelect/demo/base.d.ts +6 -0
- package/dist/McPeriodSelect/demo/base.js +19 -0
- package/dist/McPeriodSelect/demo/half.d.ts +6 -0
- package/dist/McPeriodSelect/demo/half.js +20 -0
- package/dist/McPeriodSelect/index.css +189 -0
- package/dist/McPeriodSelect/index.d.ts +13 -0
- package/dist/McPeriodSelect/index.js +305 -0
- package/dist/McPopoverButton/index.d.ts +14 -0
- package/dist/McPopoverButton/index.js +52 -0
- package/dist/McPopoverForm/index.d.ts +14 -0
- package/dist/McPopoverForm/index.js +95 -0
- package/dist/McProSelect/demo/async.d.ts +2 -0
- package/dist/McProSelect/demo/async.js +66 -0
- package/dist/McProSelect/demo/base.d.ts +2 -0
- package/dist/McProSelect/demo/base.js +29 -0
- package/dist/McProSelect/demo/exclusion-async-rename.d.ts +3 -0
- package/dist/McProSelect/demo/exclusion-async-rename.js +103 -0
- package/dist/McProSelect/demo/exclusion-rename.d.ts +3 -0
- package/dist/McProSelect/demo/exclusion-rename.js +74 -0
- package/dist/McProSelect/demo/exclusion.d.ts +3 -0
- package/dist/McProSelect/demo/exclusion.js +70 -0
- package/dist/McProSelect/demo/require.d.ts +2 -0
- package/dist/McProSelect/demo/require.js +82 -0
- package/dist/McProSelect/index.d.ts +35 -0
- package/dist/McProSelect/index.js +152 -0
- package/dist/McResult/default.d.ts +1 -0
- package/dist/McResult/default.js +98 -0
- package/dist/McResult/demo/403.d.ts +6 -0
- package/dist/McResult/demo/403.js +17 -0
- package/dist/McResult/demo/404.d.ts +6 -0
- package/dist/McResult/demo/404.js +17 -0
- package/dist/McResult/demo/500.d.ts +6 -0
- package/dist/McResult/demo/500.js +17 -0
- package/dist/McResult/demo/building.d.ts +6 -0
- package/dist/McResult/demo/building.js +12 -0
- package/dist/McResult/demo/empty.d.ts +2 -0
- package/dist/McResult/demo/empty.js +11 -0
- package/dist/McResult/demo/noFunction.d.ts +2 -0
- package/dist/McResult/demo/noFunction.js +11 -0
- package/dist/McResult/demo/noUser.d.ts +6 -0
- package/dist/McResult/demo/noUser.js +12 -0
- package/dist/McResult/demo/preview.d.ts +2 -0
- package/dist/McResult/demo/preview.js +19 -0
- package/dist/McResult/icon.d.ts +25 -0
- package/dist/McResult/icon.js +1014 -0
- package/dist/McResult/index.css +20 -0
- package/dist/McResult/index.d.ts +31 -0
- package/dist/McResult/index.js +119 -0
- package/dist/McResult/public/403.svg +164 -0
- package/dist/McResult/public/404.svg +123 -0
- package/dist/McResult/public/500.svg +129 -0
- package/dist/McResult/public/building.svg +127 -0
- package/dist/McResult/public/code403.svg +7 -0
- package/dist/McResult/public/code404.svg +5 -0
- package/dist/McResult/public/code500.svg +5 -0
- package/dist/McResult/public/detailEmpty.svg +1 -0
- package/dist/McResult/public/empty.svg +1 -0
- package/dist/McResult/public/noFunction.svg +1 -0
- package/dist/McResult/public/noUser.svg +90 -0
- package/dist/McSelect/components/PanelSearchInput/index.css +6 -0
- package/dist/McSelect/components/PanelSearchInput/index.d.ts +12 -0
- package/dist/McSelect/components/PanelSearchInput/index.js +45 -0
- package/dist/McSelect/demo/base.d.ts +2 -0
- package/dist/McSelect/demo/base.js +63 -0
- package/dist/McSelect/demo/changeOnHidden.d.ts +2 -0
- package/dist/McSelect/demo/changeOnHidden.js +43 -0
- package/dist/McSelect/demo/dropdownRender.d.ts +7 -0
- package/dist/McSelect/demo/dropdownRender.js +78 -0
- package/dist/McSelect/demo/exclusion.d.ts +3 -0
- package/dist/McSelect/demo/exclusion.js +64 -0
- package/dist/McSelect/demo/fetchOptions.d.ts +7 -0
- package/dist/McSelect/demo/fetchOptions.js +211 -0
- package/dist/McSelect/demo/inexistent.d.ts +2 -0
- package/dist/McSelect/demo/inexistent.js +79 -0
- package/dist/McSelect/demo/labelInValue.d.ts +2 -0
- package/dist/McSelect/demo/labelInValue.js +72 -0
- package/dist/McSelect/demo/maxTagCount.d.ts +3 -0
- package/dist/McSelect/demo/maxTagCount.js +51 -0
- package/dist/McSelect/demo/multiple.d.ts +2 -0
- package/dist/McSelect/demo/multiple.js +46 -0
- package/dist/McSelect/demo/optionRender.d.ts +3 -0
- package/dist/McSelect/demo/optionRender.js +51 -0
- package/dist/McSelect/demo/panelInSearch.d.ts +2 -0
- package/dist/McSelect/demo/panelInSearch.js +47 -0
- package/dist/McSelect/demo/tagRender.d.ts +3 -0
- package/dist/McSelect/demo/tagRender.js +51 -0
- package/dist/McSelect/index.css +60 -0
- package/dist/McSelect/index.d.ts +47 -0
- package/dist/McSelect/index.js +436 -0
- package/dist/McTag/demo/demo1.d.ts +2 -0
- package/dist/McTag/demo/demo1.js +18 -0
- package/dist/McTag/demo/demo2.d.ts +2 -0
- package/dist/McTag/demo/demo2.js +20 -0
- package/dist/McTag/demo/demo3.d.ts +2 -0
- package/dist/McTag/demo/demo3.js +19 -0
- package/dist/McTag/demo/demo4.d.ts +2 -0
- package/dist/McTag/demo/demo4.js +22 -0
- package/dist/McTag/index.d.ts +22 -0
- package/dist/McTag/index.js +59 -0
- package/dist/McThemeConfig/customToken.json +39 -0
- package/dist/McThemeConfig/demo/button.d.ts +2 -0
- package/dist/McThemeConfig/demo/button.js +226 -0
- package/dist/McThemeConfig/demo/card.d.ts +2 -0
- package/dist/McThemeConfig/demo/card.js +60 -0
- package/dist/McThemeConfig/demo/drawer.d.ts +2 -0
- package/dist/McThemeConfig/demo/drawer.js +59 -0
- package/dist/McThemeConfig/demo/modal.d.ts +2 -0
- package/dist/McThemeConfig/demo/modal.js +78 -0
- package/dist/McThemeConfig/demo/radio.d.ts +2 -0
- package/dist/McThemeConfig/demo/radio.js +136 -0
- package/dist/McThemeConfig/demo/switch.d.ts +2 -0
- package/dist/McThemeConfig/demo/switch.js +96 -0
- package/dist/McThemeConfig/demo/tabs.d.ts +2 -0
- package/dist/McThemeConfig/demo/tabs.js +35 -0
- package/dist/McThemeConfig/globalStyle.d.ts +2 -0
- package/dist/McThemeConfig/globalStyle.js +198 -0
- package/dist/McThemeConfig/index.d.ts +9 -0
- package/dist/McThemeConfig/index.js +16 -0
- package/dist/McThemeConfig/layoutStyle.d.ts +2 -0
- package/dist/McThemeConfig/layoutStyle.js +1 -0
- package/dist/McThemeConfig/provider.d.ts +8 -0
- package/dist/McThemeConfig/provider.js +20 -0
- package/dist/McThemeConfig/themeToken.json +152 -0
- package/dist/McTreePanel/SelectedItem.d.ts +4 -0
- package/dist/McTreePanel/SelectedItem.js +75 -0
- package/dist/McTreePanel/demo/base.d.ts +6 -0
- package/dist/McTreePanel/demo/base.js +45 -0
- package/dist/McTreePanel/demo/fieldNames.d.ts +6 -0
- package/dist/McTreePanel/demo/fieldNames.js +37 -0
- package/dist/McTreePanel/demo/inexistent.d.ts +6 -0
- package/dist/McTreePanel/demo/inexistent.js +56 -0
- package/dist/McTreePanel/demo/labelInValue.d.ts +6 -0
- package/dist/McTreePanel/demo/labelInValue.js +56 -0
- package/dist/McTreePanel/demo/sortable.d.ts +6 -0
- package/dist/McTreePanel/demo/sortable.js +34 -0
- package/dist/McTreePanel/index.css +110 -0
- package/dist/McTreePanel/index.d.ts +27 -0
- package/dist/McTreePanel/index.js +315 -0
- package/dist/McTreeSelect/demo/base.d.ts +5 -0
- package/dist/McTreeSelect/demo/base.js +58 -0
- package/dist/McTreeSelect/demo/inexistent.d.ts +5 -0
- package/dist/McTreeSelect/demo/inexistent.js +63 -0
- package/dist/McTreeSelect/demo/label.d.ts +5 -0
- package/dist/McTreeSelect/demo/label.js +60 -0
- package/dist/McTreeSelect/demo/multiple.d.ts +5 -0
- package/dist/McTreeSelect/demo/multiple.js +71 -0
- package/dist/McTreeSelect/index.css +60 -0
- package/dist/McTreeSelect/index.d.ts +13 -0
- package/dist/McTreeSelect/index.js +182 -0
- package/dist/McUpload/comps/McFormUpload/comps/UploadForVal/index.css +11 -0
- package/dist/McUpload/comps/McFormUpload/comps/UploadForVal/index.d.ts +38 -0
- package/dist/McUpload/comps/McFormUpload/comps/UploadForVal/index.js +209 -0
- package/dist/McUpload/comps/McFormUpload/index.d.ts +7 -0
- package/dist/McUpload/comps/McFormUpload/index.js +29 -0
- package/dist/McUpload/comps/McUploadCmp/index.css +47 -0
- package/dist/McUpload/comps/McUploadCmp/index.d.ts +49 -0
- package/dist/McUpload/comps/McUploadCmp/index.js +396 -0
- package/dist/McUpload/comps/McUploadDragger/index.d.ts +49 -0
- package/dist/McUpload/comps/McUploadDragger/index.js +264 -0
- package/dist/McUpload/comps/McUploadTrigger/index.css +236 -0
- package/dist/McUpload/comps/McUploadTrigger/index.d.ts +39 -0
- package/dist/McUpload/comps/McUploadTrigger/index.js +318 -0
- package/dist/McUpload/demo/base.d.ts +2 -0
- package/dist/McUpload/demo/base.js +26 -0
- package/dist/McUpload/demo/beforeUploadDemo.d.ts +6 -0
- package/dist/McUpload/demo/beforeUploadDemo.js +147 -0
- package/dist/McUpload/demo/complexVerification.d.ts +7 -0
- package/dist/McUpload/demo/complexVerification.js +139 -0
- package/dist/McUpload/demo/drager.d.ts +3 -0
- package/dist/McUpload/demo/drager.js +25 -0
- package/dist/McUpload/demo/formUpload.d.ts +3 -0
- package/dist/McUpload/demo/formUpload.js +105 -0
- package/dist/McUpload/demo/picture.d.ts +2 -0
- package/dist/McUpload/demo/picture.js +145 -0
- package/dist/McUpload/index.d.ts +14 -0
- package/dist/McUpload/index.js +9 -0
- package/dist/McUpload/tools/calculateMD5/index.d.ts +3 -0
- package/dist/McUpload/tools/calculateMD5/index.js +94 -0
- package/dist/McUpload/tools/calculateMD5/md5Worker.js +44 -0
- package/dist/McUpload/tools/getUid.d.ts +1 -0
- package/dist/McUpload/tools/getUid.js +6 -0
- package/dist/McUpload/tools/materialVerification.d.ts +50 -0
- package/dist/McUpload/tools/materialVerification.js +257 -0
- package/dist/McUpload/tools/uploadTools.d.ts +5 -0
- package/dist/McUpload/tools/uploadTools.js +56 -0
- package/dist/Utils/index.d.ts +8 -0
- package/dist/Utils/index.js +9 -0
- package/dist/Utils/lib/Queue/PriorityQueue.d.ts +21 -0
- package/dist/Utils/lib/Queue/PriorityQueue.js +197 -0
- package/dist/Utils/lib/Queue/TaskQueue.d.ts +17 -0
- package/dist/Utils/lib/Queue/TaskQueue.js +199 -0
- package/dist/Utils/lib/Queue/tools/BinaryHeap.d.ts +25 -0
- package/dist/Utils/lib/Queue/tools/BinaryHeap.js +184 -0
- package/dist/Utils/lib/Queue/tools/publicDependencyMethod.d.ts +6 -0
- package/dist/Utils/lib/Queue/tools/publicDependencyMethod.js +26 -0
- package/dist/Utils/lib/Queue/types/baseTaskQueue.d.ts +23 -0
- package/dist/Utils/lib/Queue/types/baseTaskQueue.js +10 -0
- package/dist/Utils/lib/copyToClipboard.d.ts +8 -0
- package/dist/Utils/lib/copyToClipboard.js +54 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +33 -0
- package/dist/styles/demo/basic.d.ts +2 -0
- package/dist/styles/demo/basic.js +44 -0
- package/dist/styles/demo/delete-icon.d.ts +2 -0
- package/dist/styles/demo/delete-icon.js +72 -0
- package/dist/styles/demo/form-bottom-0.d.ts +2 -0
- package/dist/styles/demo/form-bottom-0.js +33 -0
- package/dist/styles/index.css +41 -0
- package/dist/styles/mixins.css +2 -0
- package/dist/styles/utilities.css +41 -0
- package/dist/typings.d.ts +20 -0
- package/package.json +8 -7
@@ -0,0 +1,105 @@
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
3
|
+
/**
|
4
|
+
* title: 在表单中使用
|
5
|
+
* description: 对于在表单中使用的场景,提供了子组件McFormUpload,其上传API由beforeUpload和custonRequest收窄到uploadFile,其使用方式同McUpload的beforeUpload,只是返回类型不再是boolean值,而是UploadFile[]类型。
|
6
|
+
*/
|
7
|
+
import { Form, message } from 'antd';
|
8
|
+
import { E_McUploadTriggerType, McUpload } from "../..";
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
10
|
+
var getBase64 = function getBase64(file) {
|
11
|
+
return new Promise(function (resolve, reject) {
|
12
|
+
var reader = new FileReader();
|
13
|
+
reader.readAsDataURL(file);
|
14
|
+
reader.onload = function () {
|
15
|
+
return resolve(reader.result);
|
16
|
+
};
|
17
|
+
reader.onerror = function (error) {
|
18
|
+
return reject(error);
|
19
|
+
};
|
20
|
+
});
|
21
|
+
};
|
22
|
+
var FormUpload = function FormUpload() {
|
23
|
+
return /*#__PURE__*/_jsx("div", {
|
24
|
+
children: /*#__PURE__*/_jsx(Form, {
|
25
|
+
children: /*#__PURE__*/_jsx(McUpload.McFormUpload, {
|
26
|
+
label: "\u6700\u591A\u4E24\u5F20\u56FE\u7247",
|
27
|
+
name: "images",
|
28
|
+
fieldProps: {
|
29
|
+
accept: 'image/*',
|
30
|
+
listType: E_McUploadTriggerType.SQUARE,
|
31
|
+
maxCount: 2,
|
32
|
+
multiple: true,
|
33
|
+
uploadFile: function () {
|
34
|
+
var _uploadFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref) {
|
35
|
+
var file, getMD5, taskQueue, basicVerifier, res, _res$errList, md5;
|
36
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
37
|
+
while (1) switch (_context2.prev = _context2.next) {
|
38
|
+
case 0:
|
39
|
+
file = _ref.file, getMD5 = _ref.getMD5, taskQueue = _ref.taskQueue, basicVerifier = _ref.basicVerifier;
|
40
|
+
_context2.next = 3;
|
41
|
+
return basicVerifier(file);
|
42
|
+
case 3:
|
43
|
+
res = _context2.sent;
|
44
|
+
if (res.isPassed) {
|
45
|
+
_context2.next = 7;
|
46
|
+
break;
|
47
|
+
}
|
48
|
+
message.error(res === null || res === void 0 || (_res$errList = res.errList) === null || _res$errList === void 0 || (_res$errList = _res$errList[0]) === null || _res$errList === void 0 || (_res$errList = _res$errList.messages) === null || _res$errList === void 0 ? void 0 : _res$errList[0]);
|
49
|
+
return _context2.abrupt("return", []);
|
50
|
+
case 7:
|
51
|
+
_context2.next = 9;
|
52
|
+
return getMD5(file);
|
53
|
+
case 9:
|
54
|
+
md5 = _context2.sent;
|
55
|
+
_context2.next = 12;
|
56
|
+
return new Promise(function (resolve) {
|
57
|
+
taskQueue.addTask({
|
58
|
+
id: md5,
|
59
|
+
task: function () {
|
60
|
+
var _task = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
61
|
+
var base64;
|
62
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
63
|
+
while (1) switch (_context.prev = _context.next) {
|
64
|
+
case 0:
|
65
|
+
_context.next = 2;
|
66
|
+
return getBase64(file);
|
67
|
+
case 2:
|
68
|
+
base64 = _context.sent;
|
69
|
+
resolve([{
|
70
|
+
uid: file.uid,
|
71
|
+
name: file.name,
|
72
|
+
url: base64
|
73
|
+
}]);
|
74
|
+
case 4:
|
75
|
+
case "end":
|
76
|
+
return _context.stop();
|
77
|
+
}
|
78
|
+
}, _callee);
|
79
|
+
}));
|
80
|
+
function task() {
|
81
|
+
return _task.apply(this, arguments);
|
82
|
+
}
|
83
|
+
return task;
|
84
|
+
}()
|
85
|
+
});
|
86
|
+
});
|
87
|
+
case 12:
|
88
|
+
return _context2.abrupt("return", _context2.sent);
|
89
|
+
case 13:
|
90
|
+
case "end":
|
91
|
+
return _context2.stop();
|
92
|
+
}
|
93
|
+
}, _callee2);
|
94
|
+
}));
|
95
|
+
function uploadFile(_x) {
|
96
|
+
return _uploadFile.apply(this, arguments);
|
97
|
+
}
|
98
|
+
return uploadFile;
|
99
|
+
}()
|
100
|
+
}
|
101
|
+
})
|
102
|
+
})
|
103
|
+
});
|
104
|
+
};
|
105
|
+
export default FormUpload;
|
@@ -0,0 +1,145 @@
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
2
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
4
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
5
|
+
/**
|
6
|
+
* title: 图片上传
|
7
|
+
* description: 内置了常见的图片上传触发器、回显,通过listType属性进行控制
|
8
|
+
*/
|
9
|
+
import { Flex } from 'antd';
|
10
|
+
import { E_McUploadTriggerType, McUpload } from "../..";
|
11
|
+
import { useState } from 'react';
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
13
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
14
|
+
export default (function () {
|
15
|
+
var getBase64 = function getBase64(file) {
|
16
|
+
return new Promise(function (resolve, reject) {
|
17
|
+
var reader = new FileReader();
|
18
|
+
reader.readAsDataURL(file);
|
19
|
+
reader.onload = function () {
|
20
|
+
return resolve(reader.result);
|
21
|
+
};
|
22
|
+
reader.onerror = function (error) {
|
23
|
+
return reject(error);
|
24
|
+
};
|
25
|
+
});
|
26
|
+
};
|
27
|
+
var _useState = useState([{
|
28
|
+
uid: '-1',
|
29
|
+
name: 'xxx.png',
|
30
|
+
status: 'done',
|
31
|
+
url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png'
|
32
|
+
}]),
|
33
|
+
_useState2 = _slicedToArray(_useState, 2),
|
34
|
+
fileList = _useState2[0],
|
35
|
+
setFileList = _useState2[1];
|
36
|
+
return /*#__PURE__*/_jsxs(Flex, {
|
37
|
+
style: {
|
38
|
+
flexFlow: 'column',
|
39
|
+
gap: 16
|
40
|
+
},
|
41
|
+
children: [/*#__PURE__*/_jsx(McUpload, {
|
42
|
+
listType: E_McUploadTriggerType.CIRCLE,
|
43
|
+
fileList: fileList,
|
44
|
+
beforeUpload: ( /*#__PURE__*/function () {
|
45
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
|
46
|
+
var file, url;
|
47
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
48
|
+
while (1) switch (_context.prev = _context.next) {
|
49
|
+
case 0:
|
50
|
+
file = _ref.file;
|
51
|
+
_context.next = 3;
|
52
|
+
return getBase64(file);
|
53
|
+
case 3:
|
54
|
+
url = _context.sent;
|
55
|
+
setFileList(function (pre) {
|
56
|
+
return [].concat(_toConsumableArray(pre), [{
|
57
|
+
url: url,
|
58
|
+
name: file.name,
|
59
|
+
uid: file.uid
|
60
|
+
}]);
|
61
|
+
});
|
62
|
+
case 5:
|
63
|
+
case "end":
|
64
|
+
return _context.stop();
|
65
|
+
}
|
66
|
+
}, _callee);
|
67
|
+
}));
|
68
|
+
return function (_x) {
|
69
|
+
return _ref2.apply(this, arguments);
|
70
|
+
};
|
71
|
+
}()),
|
72
|
+
onChange: function onChange(info) {
|
73
|
+
setFileList(info.fileList);
|
74
|
+
}
|
75
|
+
}), /*#__PURE__*/_jsx(McUpload, {
|
76
|
+
listType: E_McUploadTriggerType.SQUARE,
|
77
|
+
fileList: fileList,
|
78
|
+
beforeUpload: ( /*#__PURE__*/function () {
|
79
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref3) {
|
80
|
+
var file, url;
|
81
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
82
|
+
while (1) switch (_context2.prev = _context2.next) {
|
83
|
+
case 0:
|
84
|
+
file = _ref3.file;
|
85
|
+
_context2.next = 3;
|
86
|
+
return getBase64(file);
|
87
|
+
case 3:
|
88
|
+
url = _context2.sent;
|
89
|
+
setFileList(function (pre) {
|
90
|
+
return [].concat(_toConsumableArray(pre), [{
|
91
|
+
url: url,
|
92
|
+
name: file.name,
|
93
|
+
uid: file.uid
|
94
|
+
}]);
|
95
|
+
});
|
96
|
+
case 5:
|
97
|
+
case "end":
|
98
|
+
return _context2.stop();
|
99
|
+
}
|
100
|
+
}, _callee2);
|
101
|
+
}));
|
102
|
+
return function (_x2) {
|
103
|
+
return _ref4.apply(this, arguments);
|
104
|
+
};
|
105
|
+
}()),
|
106
|
+
onChange: function onChange(info) {
|
107
|
+
setFileList(info.fileList);
|
108
|
+
}
|
109
|
+
}), /*#__PURE__*/_jsx(McUpload, {
|
110
|
+
listType: E_McUploadTriggerType.RECTANGLE,
|
111
|
+
fileList: fileList,
|
112
|
+
beforeUpload: ( /*#__PURE__*/function () {
|
113
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref5) {
|
114
|
+
var file, url;
|
115
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
116
|
+
while (1) switch (_context3.prev = _context3.next) {
|
117
|
+
case 0:
|
118
|
+
file = _ref5.file;
|
119
|
+
_context3.next = 3;
|
120
|
+
return getBase64(file);
|
121
|
+
case 3:
|
122
|
+
url = _context3.sent;
|
123
|
+
setFileList(function (pre) {
|
124
|
+
return [].concat(_toConsumableArray(pre), [{
|
125
|
+
url: url,
|
126
|
+
name: file.name,
|
127
|
+
uid: file.uid
|
128
|
+
}]);
|
129
|
+
});
|
130
|
+
case 5:
|
131
|
+
case "end":
|
132
|
+
return _context3.stop();
|
133
|
+
}
|
134
|
+
}, _callee3);
|
135
|
+
}));
|
136
|
+
return function (_x3) {
|
137
|
+
return _ref6.apply(this, arguments);
|
138
|
+
};
|
139
|
+
}()),
|
140
|
+
onChange: function onChange(info) {
|
141
|
+
setFileList(info.fileList);
|
142
|
+
}
|
143
|
+
})]
|
144
|
+
});
|
145
|
+
});
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { GetProps } from 'antd';
|
2
|
+
import { ForwardRefExoticComponent } from 'react';
|
3
|
+
import McFormUpload from './comps/McFormUpload';
|
4
|
+
import McUploadCmp from './comps/McUploadCmp';
|
5
|
+
import McUploadDragger from './comps/McUploadDragger';
|
6
|
+
export type { McUploadProps } from './comps/McUploadCmp';
|
7
|
+
export * from './comps/McUploadDragger';
|
8
|
+
export * from './comps/McUploadTrigger';
|
9
|
+
type CompoundedComponent = ForwardRefExoticComponent<GetProps<typeof McUploadCmp>> & {
|
10
|
+
McFormUpload: typeof McFormUpload;
|
11
|
+
Dragger: typeof McUploadDragger;
|
12
|
+
};
|
13
|
+
declare const McUpload: CompoundedComponent;
|
14
|
+
export default McUpload;
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import McFormUpload from "./comps/McFormUpload";
|
2
|
+
import McUploadCmp from "./comps/McUploadCmp";
|
3
|
+
import McUploadDragger from "./comps/McUploadDragger";
|
4
|
+
export * from "./comps/McUploadDragger";
|
5
|
+
export * from "./comps/McUploadTrigger";
|
6
|
+
var McUpload = McUploadCmp;
|
7
|
+
McUploadCmp.McFormUpload = McFormUpload;
|
8
|
+
McUploadCmp.Dragger = McUploadDragger;
|
9
|
+
export default McUpload;
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export declare const getIdleCPUCores: () => number;
|
2
|
+
export declare const calculateByNormal: (file: File, chunkSize: number) => Promise<string | ProgressEvent<FileReader>>;
|
3
|
+
export declare const calculateMD5: (file: File, chunkSize?: number) => Promise<string | MessageEvent['data']['error'] | ProgressEvent<FileReader>>;
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import SparkMD5 from 'spark-md5';
|
2
|
+
import { transformNumber } from "../uploadTools";
|
3
|
+
// 创建一个纯js计算线程
|
4
|
+
var createWebWorker = function createWebWorker() {
|
5
|
+
return new Worker(new URL('./md5Worker.js', import.meta.url));
|
6
|
+
};
|
7
|
+
|
8
|
+
// 获取用户cpu核心数用于控制并发线程数量
|
9
|
+
export var getIdleCPUCores = function getIdleCPUCores() {
|
10
|
+
var _navigator;
|
11
|
+
var BROWSER_CPU_COUNT = transformNumber((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.hardwareConcurrency);
|
12
|
+
// Safari总是返回1
|
13
|
+
return BROWSER_CPU_COUNT < 5 ? 2 : Math.min(BROWSER_CPU_COUNT - 2, 8); // 默认4核,留两核防止浏览器崩溃
|
14
|
+
};
|
15
|
+
|
16
|
+
// webwork的纯js计算
|
17
|
+
var calculateByWebWorker = function calculateByWebWorker(file, chunkSize) {
|
18
|
+
return new Promise(function (resolve, reject) {
|
19
|
+
var worker = createWebWorker();
|
20
|
+
var reader = new FileReader();
|
21
|
+
var currentChunk = 0;
|
22
|
+
var totalChunks = Math.ceil(file.size / chunkSize);
|
23
|
+
function loadNext() {
|
24
|
+
var start = currentChunk * chunkSize;
|
25
|
+
var end = Math.min(start + chunkSize, file.size);
|
26
|
+
reader.readAsArrayBuffer(file.slice(start, end));
|
27
|
+
}
|
28
|
+
reader.onload = function (e) {
|
29
|
+
var _e$target;
|
30
|
+
var buffer = (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.result;
|
31
|
+
worker.postMessage({
|
32
|
+
buffer: buffer,
|
33
|
+
isEnd: currentChunk === totalChunks - 1
|
34
|
+
}, [buffer]);
|
35
|
+
currentChunk++;
|
36
|
+
if (currentChunk < totalChunks) {
|
37
|
+
loadNext();
|
38
|
+
}
|
39
|
+
};
|
40
|
+
reader.onerror = function (err) {
|
41
|
+
reject(err);
|
42
|
+
};
|
43
|
+
worker.onmessage = function (e) {
|
44
|
+
if (e.data.error) {
|
45
|
+
reject(e.data.error);
|
46
|
+
} else {
|
47
|
+
resolve(e.data);
|
48
|
+
}
|
49
|
+
worker.terminate(); // 关闭worker
|
50
|
+
};
|
51
|
+
loadNext();
|
52
|
+
});
|
53
|
+
};
|
54
|
+
|
55
|
+
// 纯js串行计算
|
56
|
+
export var calculateByNormal = function calculateByNormal(file, chunkSize) {
|
57
|
+
return new Promise(function (resolve, reject) {
|
58
|
+
var reader = new FileReader();
|
59
|
+
var hashTool = new SparkMD5.ArrayBuffer();
|
60
|
+
var currentChunk = 0;
|
61
|
+
var totalChunks = Math.ceil(file.size / chunkSize);
|
62
|
+
function loadNext() {
|
63
|
+
var start = currentChunk * chunkSize;
|
64
|
+
var end = Math.min(start + chunkSize, file.size);
|
65
|
+
reader.readAsArrayBuffer(file.slice(start, end));
|
66
|
+
}
|
67
|
+
reader.onload = function (e) {
|
68
|
+
var _e$target2;
|
69
|
+
var buffer = (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.result;
|
70
|
+
hashTool.append(buffer);
|
71
|
+
currentChunk++;
|
72
|
+
if (currentChunk < totalChunks) {
|
73
|
+
loadNext();
|
74
|
+
} else {
|
75
|
+
resolve(hashTool.end());
|
76
|
+
}
|
77
|
+
};
|
78
|
+
reader.onerror = function (err) {
|
79
|
+
reject(err);
|
80
|
+
};
|
81
|
+
loadNext();
|
82
|
+
});
|
83
|
+
};
|
84
|
+
|
85
|
+
// TODO MD5是串行算法,所以采用每个线程算一个文件的方式,而不是多个线程计算同一个文件
|
86
|
+
export var calculateMD5 = function calculateMD5(file) {
|
87
|
+
var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5 * 1024 * 1024;
|
88
|
+
// 判断当前浏览器环境支不支持webworker
|
89
|
+
if (window.Worker) {
|
90
|
+
return calculateByWebWorker(file, chunkSize);
|
91
|
+
} else {
|
92
|
+
return calculateByNormal(file, chunkSize);
|
93
|
+
}
|
94
|
+
};
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
3
|
+
var SparkMD5 = require('spark-md5');
|
4
|
+
// 一期因为hash-wasm和spark-md5的兼容性问题,暂时使用spark-md5
|
5
|
+
var hashTool = new SparkMD5.ArrayBuffer();
|
6
|
+
self.onmessage = /*#__PURE__*/function () {
|
7
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(e) {
|
8
|
+
var _e$data, buffer, isEnd, timeoutId, md5;
|
9
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
10
|
+
while (1) switch (_context.prev = _context.next) {
|
11
|
+
case 0:
|
12
|
+
_e$data = e.data, buffer = _e$data.buffer, isEnd = _e$data.isEnd; // 接收主线程传递过来的文件
|
13
|
+
timeoutId = setTimeout(function () {
|
14
|
+
self.postMessage({
|
15
|
+
error: 'Hash calculation timed out'
|
16
|
+
}); // 超时错误消息
|
17
|
+
self.close(); // 关闭 worker
|
18
|
+
}, 10000); // 设置超时时间为10秒
|
19
|
+
try {
|
20
|
+
hashTool.append(buffer); // 将文件内容添加到哈希计算中
|
21
|
+
if (isEnd) {
|
22
|
+
md5 = hashTool.end(); // 计算文件的 MD5 值
|
23
|
+
clearTimeout(timeoutId); // 清除超时计时器
|
24
|
+
self.postMessage(md5); // 将计算结果发送给主线程
|
25
|
+
}
|
26
|
+
} catch (err) {
|
27
|
+
clearTimeout(timeoutId); // 清除超时计时器
|
28
|
+
self.postMessage({
|
29
|
+
error: err.message
|
30
|
+
}); // 发送错误消息
|
31
|
+
}
|
32
|
+
case 3:
|
33
|
+
case "end":
|
34
|
+
return _context.stop();
|
35
|
+
}
|
36
|
+
}, _callee);
|
37
|
+
}));
|
38
|
+
return function (_x) {
|
39
|
+
return _ref.apply(this, arguments);
|
40
|
+
};
|
41
|
+
}();
|
42
|
+
self.onerror = function (e) {
|
43
|
+
self.postMessage(e);
|
44
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export default function getUid(): string;
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { RcFile } from 'antd/es/upload';
|
2
|
+
export interface FileInfo {
|
3
|
+
type: string;
|
4
|
+
size: number;
|
5
|
+
width: number;
|
6
|
+
height: number;
|
7
|
+
name: string;
|
8
|
+
duration?: number;
|
9
|
+
}
|
10
|
+
export type FileError = {
|
11
|
+
name?: string;
|
12
|
+
message?: string;
|
13
|
+
};
|
14
|
+
export type FileRangeInfo = {
|
15
|
+
min?: number;
|
16
|
+
max?: number;
|
17
|
+
};
|
18
|
+
export type DAR = [number, number];
|
19
|
+
export interface VerifyConfig {
|
20
|
+
size?: FileRangeInfo;
|
21
|
+
width?: FileRangeInfo;
|
22
|
+
height?: FileRangeInfo;
|
23
|
+
duration?: FileRangeInfo;
|
24
|
+
DAR?: DAR;
|
25
|
+
}
|
26
|
+
export type CheckResult = {
|
27
|
+
isPassed: boolean;
|
28
|
+
errList: ('min' | 'max')[];
|
29
|
+
};
|
30
|
+
type FileInfoResult = {
|
31
|
+
error: FileError;
|
32
|
+
data: null;
|
33
|
+
} | {
|
34
|
+
error: null;
|
35
|
+
data: FileInfo;
|
36
|
+
};
|
37
|
+
export declare const getImgInfo: (imgFile: RcFile) => Promise<FileInfoResult>;
|
38
|
+
export declare const getVideoInfo: (videoFile: RcFile) => Promise<FileInfoResult>;
|
39
|
+
export declare const isNumber: (num?: number) => boolean;
|
40
|
+
export declare const isNumberInRange: (reference: number, rangeInfo: FileRangeInfo) => CheckResult;
|
41
|
+
export type FileCheckedResult = {
|
42
|
+
isPassed: boolean;
|
43
|
+
errList?: {
|
44
|
+
target: string;
|
45
|
+
messages: string[];
|
46
|
+
}[];
|
47
|
+
fileInfo?: Partial<FileInfo>;
|
48
|
+
};
|
49
|
+
export declare const checkFile: (file: RcFile, config: VerifyConfig) => Promise<FileCheckedResult>;
|
50
|
+
export {};
|