@cloudbase/weda-ui 3.4.8 → 3.4.9-alpha.1024
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/configs/components/carousel.json +12 -2
- package/dist/configs/components/chart/bar.json +1 -1
- package/dist/configs/components/chart/line.js +1 -1
- package/dist/configs/components/chart/pie.json +1 -1
- package/dist/configs/components/chart/statisticsCard.json +1 -1
- package/dist/configs/components/common/form-input-required.js +176 -0
- package/dist/configs/components/container.js +1 -1
- package/dist/configs/components/customer-service.js +264 -0
- package/dist/configs/components/dataView.js +10 -66
- package/dist/configs/components/form/departTreeSelect.json +10 -0
- package/dist/configs/components/form-checkbox.js +260 -0
- package/dist/configs/components/form-date.js +267 -0
- package/dist/configs/components/form-depart-tree-select.js +239 -0
- package/dist/configs/components/form-email.js +257 -0
- package/dist/configs/components/form-image-uploader.js +325 -0
- package/dist/configs/components/form-input.js +478 -0
- package/dist/configs/components/form-location.js +328 -0
- package/dist/configs/components/form-multi-region.js +201 -0
- package/dist/configs/components/form-phone.js +249 -0
- package/dist/configs/components/form-radio.js +260 -0
- package/dist/configs/components/form-region.js +197 -0
- package/dist/configs/components/form-rich-text.js +211 -0
- package/dist/configs/components/form-select.js +367 -0
- package/dist/configs/components/form-switch.js +152 -0
- package/dist/configs/components/form-text-area.js +240 -0
- package/dist/configs/components/form-time.js +220 -0
- package/dist/configs/components/form-upload-file.js +268 -0
- package/dist/configs/components/form-url.js +258 -0
- package/dist/configs/components/form-user-tree-select.js +316 -0
- package/dist/configs/components/formdetail.json +8 -0
- package/dist/configs/components/grid/col.js +6 -0
- package/dist/configs/components/listView.js +34 -92
- package/dist/configs/components/modal.js +2 -1
- package/dist/configs/components/navigationBar.json +1 -1
- package/dist/configs/components/pagelayout.json +1 -1
- package/dist/configs/components/qr_code.js +117 -0
- package/dist/configs/components/repeater.js +3 -2
- package/dist/configs/components/scrollVeiw.json +3 -1
- package/dist/configs/components/table.json +14 -4
- package/dist/configs/components/tabs.js +1 -1
- package/dist/configs/components/wd-bubble.js +2 -2
- package/dist/configs/components/wd-button.js +3 -3
- package/dist/configs/components/wd-divider.js +3 -3
- package/dist/configs/components/wd-form-detail.js +229 -0
- package/dist/configs/components/wd-form.js +394 -0
- package/dist/configs/components/wd-icon.js +2 -2
- package/dist/configs/components/wd-image.js +5 -0
- package/dist/configs/components/wd-link.js +3 -3
- package/dist/configs/components/wd-table.js +1110 -24
- package/dist/configs/components/wd-text.js +4 -3
- package/dist/configs/components/web-view.js +152 -0
- package/dist/configs/components/wedaVideo.json +4 -2
- package/dist/configs/components/wxOpenApi/share.js +1 -0
- package/dist/configs/index.js +48 -0
- package/dist/configs/type-utils/index.js +0 -1
- package/dist/docs/common/componentList.js +8 -37
- package/dist/docs/common/components/classes-view.js +2 -32
- package/dist/docs/common/components/event-view.js +2 -43
- package/dist/docs/common/components/json-schema-view.js +4 -8
- package/dist/docs/common/components/methods-view.js +2 -30
- package/dist/docs/common/components/properties-view.js +7 -43
- package/dist/docs/common/tableView.js +18 -94
- package/dist/enum/index.js +53 -0
- package/dist/setupTests.js +4 -0
- package/dist/style/index.scss +1 -1
- package/dist/web/actions/showModal/index.js +15 -21
- package/dist/web/components/button/index.css +1 -0
- package/dist/web/components/button/index.js +3 -6
- package/dist/web/components/calendar/index.js +19 -45
- package/dist/web/components/carousel/index.js +35 -45
- package/dist/web/components/chart/bar/index.js +6 -7
- package/dist/web/components/chart/bar/index.old.js +3 -2
- package/dist/web/components/chart/common/Chart.js +3 -2
- package/dist/web/components/chart/common/chart-custom-connector.js +3 -7
- package/dist/web/components/chart/line/index.js +6 -7
- package/dist/web/components/chart/line/index.old.js +3 -2
- package/dist/web/components/chart/pie/index.js +6 -7
- package/dist/web/components/chart/pie/index.old.js +3 -2
- package/dist/web/components/chart/statisticsCard/index.js +3 -9
- package/dist/web/components/common/error-boundary.js +13 -15
- package/dist/web/components/common/form-item-wrapper.js +4 -0
- package/dist/web/components/common/use-loop-render-detect.js +2 -2
- package/dist/web/components/container/index.js +2 -2
- package/dist/web/components/customer-service/convert-legacy-props.js +14 -0
- package/dist/web/components/customer-service/customer-service.js +13 -0
- package/dist/web/components/customer-service/index.js +3 -0
- package/dist/web/components/dataView/index.js +5 -1
- package/dist/web/components/drawer/index.js +2 -3
- package/dist/web/components/flow/common/components/container.js +12 -0
- package/dist/web/components/flow/common/components/index.js +2 -0
- package/dist/web/components/flow/common/components/text/index.js +62 -0
- package/dist/web/components/flow/common/constants.js +14 -0
- package/dist/web/components/flow/common/hooks/index.js +2 -0
- package/dist/web/components/flow/common/hooks/useCommonFlowData/flow-get.js +83 -0
- package/dist/web/components/flow/common/hooks/useCommonFlowData/index.js +67 -0
- package/dist/web/components/flow/common/hooks/useCommonFlowData/preview-data.js +45 -0
- package/dist/web/components/flow/common/hooks/useCommonFlowData/request-hub.js +125 -0
- package/dist/web/components/flow/common/hooks/useCommonFlowData/types.js +1 -0
- package/dist/web/components/flow/common/hooks/useElementMediaQuery.js +23 -0
- package/dist/web/components/flow/common/hooks/useFlowConfig.js +44 -0
- package/dist/web/components/flow/common/hooks/useFlowFormLoad.js +64 -0
- package/dist/web/components/flow/common/hooks/useFlowPageType.js +49 -0
- package/dist/web/components/flow/common/index.js +6 -0
- package/dist/web/components/flow/common/request.js +47 -0
- package/dist/web/components/flow/common/types.js +1 -0
- package/dist/web/components/flow/common/utils.js +15 -0
- package/dist/web/components/flow/modules/basic/Basic.js +14 -22
- package/dist/web/components/flow/modules/basic/BasicMobile.js +12 -30
- package/dist/web/components/flow/modules/basic/index.js +19 -11
- package/dist/web/components/flow/modules/basic/status-text.js +37 -0
- package/dist/web/components/flow/modules/basic/utils.js +17 -8
- package/dist/web/components/flow/modules/chart/Chart.js +22 -41
- package/dist/web/components/flow/modules/chart/index.js +9 -4
- package/dist/web/components/flow/modules/chart/utils.js +111 -0
- package/dist/web/components/flow/modules/combination/index.js +4 -6
- package/dist/web/components/flow/modules/layout/index.css +2 -2
- package/dist/web/components/flow/modules/layout/index.js +11 -15
- package/dist/web/components/flow/modules/operations/components/button/index.js +2 -4
- package/dist/web/components/flow/modules/operations/components/popup/index.js +11 -15
- package/dist/web/components/flow/modules/operations/components/user-select/index.js +4 -5
- package/dist/web/components/flow/modules/operations/config/approval-form-config.js +8 -9
- package/dist/web/components/flow/modules/operations/config/control-config.js +38 -33
- package/dist/web/components/flow/modules/operations/control.js +21 -15
- package/dist/web/components/flow/modules/operations/controls-items/add-assignee-btn.js +8 -8
- package/dist/web/components/flow/modules/operations/controls-items/apply-cc-btn.js +2 -2
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/comment/index.js +3 -6
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/index.js +25 -32
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/field/index.js +2 -6
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/index.js +15 -7
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/style.css +1 -0
- package/dist/web/components/flow/modules/operations/controls-items/cancel-apply-btn.js +2 -2
- package/dist/web/components/flow/modules/operations/controls-items/check-list-popup/index.js +2 -4
- package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal/index.js +20 -0
- package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal/view-model.js +119 -0
- package/dist/web/components/flow/modules/operations/controls-items/initiation-btn.js +6 -3
- package/dist/web/components/flow/modules/operations/controls-items/revoke-modal/index.js +13 -22
- package/dist/web/components/flow/modules/operations/controls-items/roll-back-modal.js +18 -26
- package/dist/web/components/flow/modules/operations/view-model.js +95 -70
- package/dist/web/components/flow/process/components/comment-text/index.js +24 -0
- package/dist/web/components/flow/process/components/comment-text/style.css +33 -0
- package/dist/web/components/flow/process/components/descriptions/index.js +19 -0
- package/dist/web/components/flow/process/components/descriptions/style.css +31 -0
- package/dist/web/components/flow/process/components/index.js +4 -0
- package/dist/web/components/flow/process/components/timeline/index.js +13 -0
- package/dist/web/components/flow/process/components/timeline/style.css +75 -0
- package/dist/web/components/flow/process/constants.js +46 -0
- package/dist/web/components/flow/process/index.js +2 -0
- package/dist/web/components/flow/process/process.js +113 -0
- package/dist/web/components/flow/process/style.css +17 -0
- package/dist/web/components/flow/process/types.js +1 -0
- package/dist/web/components/flow/process/view-model.js +135 -0
- package/dist/web/components/form/checkbox/index.js +18 -19
- package/dist/web/components/form/enumSelect/MultipleSelect.js +4 -5
- package/dist/web/components/form/enumSelect/NormalSelect.js +4 -5
- package/dist/web/components/form/enumSelect/SelectContainer.js +2 -2
- package/dist/web/components/form/form/index.js +8 -14
- package/dist/web/components/form/formcell/index.js +12 -18
- package/dist/web/components/form/input/index.js +17 -16
- package/dist/web/components/form/location/common/mapChoose.js +37 -69
- package/dist/web/components/form/location/common/mapView.js +2 -1
- package/dist/web/components/form/location/common/selectModal.js +3 -7
- package/dist/web/components/form/location/components/LocationH5/location.h5.js +22 -34
- package/dist/web/components/form/location/components/LocationPC/Header.js +6 -15
- package/dist/web/components/form/location/components/LocationPC/location.PC.js +13 -15
- package/dist/web/components/form/location/index.js +5 -7
- package/dist/web/components/form/radio/index.js +8 -12
- package/dist/web/components/form/renderDecorator.js +3 -2
- package/dist/web/components/form/select/allTimePicker/calendar.js +27 -28
- package/dist/web/components/form/select/allTimePicker/index.js +66 -91
- package/dist/web/components/form/select/dropdown-select/h5.js +30 -53
- package/dist/web/components/form/select/dropdown-select/index.js +3 -2
- package/dist/web/components/form/select/dropdown-select/pc.js +27 -29
- package/dist/web/components/form/select/dropdown-select/ui.js +4 -8
- package/dist/web/components/form/select/h5.js +8 -6
- package/dist/web/components/form/select/index.js +19 -20
- package/dist/web/components/form/select/region/index.js +2 -2
- package/dist/web/components/form/select/request.js +1 -1
- package/dist/web/components/form/select/status/allEmpty.js +2 -2
- package/dist/web/components/form/select/status/empty.js +3 -2
- package/dist/web/components/form/select/status/loading.js +3 -4
- package/dist/web/components/form/select/status/retry.js +3 -4
- package/dist/web/components/form/select/year.js +16 -31
- package/dist/web/components/form/switch/index.js +11 -15
- package/dist/web/components/form/textarea/index.js +5 -10
- package/dist/web/components/form/tips/index.js +2 -2
- package/dist/web/components/form/uploader/index.js +5 -4
- package/dist/web/components/form/uploader/uploader.h5.js +29 -54
- package/dist/web/components/form/uploader/uploader.pc.js +18 -44
- package/dist/web/components/form/uploaderFile/index.js +4 -5
- package/dist/web/components/form/uploaderFile/uploadFile.h5.js +58 -104
- package/dist/web/components/form/uploaderFile/uploadFile.pc.js +42 -69
- package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +474 -46
- package/dist/web/components/form/userOrgSelect/common/utils.js +269 -0
- package/dist/web/components/form/userOrgSelect/component/depart-breadcrumb.js +5 -10
- package/dist/web/components/form/userOrgSelect/component/depart-select/depart-select-pc.js +10 -18
- package/dist/web/components/form/userOrgSelect/component/depart-select/departTreeSelect.h5.js +177 -0
- package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +56 -41
- package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.js +38 -35
- package/dist/web/components/form/userOrgSelect/component/error-tips.js +4 -4
- package/dist/web/components/form/userOrgSelect/component/index.css +52 -0
- package/dist/web/components/form/userOrgSelect/component/input-tags.js +4 -18
- package/dist/web/components/form/userOrgSelect/component/modal-search-h5.js +11 -19
- package/dist/web/components/form/userOrgSelect/component/modal-search.js +2 -5
- package/dist/web/components/form/userOrgSelect/component/modal-select-h5.js +127 -50
- package/dist/web/components/form/userOrgSelect/component/org-tree-h5.js +7 -13
- package/dist/web/components/form/userOrgSelect/component/org-tree.js +42 -18
- package/dist/web/components/form/userOrgSelect/component/selected-list-h5.js +23 -40
- package/dist/web/components/form/userOrgSelect/component/selected-list.js +8 -5
- package/dist/web/components/form/userOrgSelect/component/user-org-list.js +35 -35
- package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +43 -26
- package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-list-h5.js +36 -50
- package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-select-h5.js +9 -11
- package/dist/web/components/form/userOrgSelect/component/user-select-pc/error-tips.js +4 -4
- package/dist/web/components/form/userOrgSelect/component/user-select-pc/model-user-list.js +59 -21
- package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +28 -33
- package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +10 -8
- package/dist/web/components/form/userOrgSelect/component/userOrgSelect.css +15 -1
- package/dist/web/components/form/userOrgSelect/hooks/use-depart-data.js +113 -5
- package/dist/web/components/form-checkbox/index.js +36 -0
- package/dist/web/components/form-date/index.js +52 -0
- package/dist/web/components/form-depart-tree-select/index.js +22 -0
- package/dist/web/components/form-email/index.js +31 -0
- package/dist/web/components/form-image-uploader/index.js +50 -0
- package/dist/web/components/form-input/index.js +25 -0
- package/dist/web/components/form-input-hooks/index.js +281 -0
- package/dist/web/components/form-input-hooks/validator.js +124 -0
- package/dist/web/components/form-location/index.js +24 -0
- package/dist/web/components/form-multi-region/index.js +22 -0
- package/dist/web/components/form-phone/index.js +32 -0
- package/dist/web/components/form-radio/index.js +38 -0
- package/dist/web/components/form-region/index.js +24 -0
- package/dist/web/components/form-rich-text/index.js +22 -0
- package/dist/web/components/form-select/index.js +21 -0
- package/dist/web/components/form-switch/index.js +22 -0
- package/dist/web/components/form-text-area/index.js +22 -0
- package/dist/web/components/form-time/index.js +22 -0
- package/dist/web/components/form-upload-file/index.js +47 -0
- package/dist/web/components/form-url/index.js +31 -0
- package/dist/web/components/form-user-tree-select/index.js +24 -0
- package/dist/web/components/formdetail/index.css +213 -3
- package/dist/web/components/formdetail/index.js +156 -30
- package/dist/web/components/graphicCard/index.js +13 -25
- package/dist/web/components/grid/col.js +3 -2
- package/dist/web/components/grid/grid.js +4 -3
- package/dist/web/components/grid/row.js +3 -2
- package/dist/web/components/image/image.js +52 -57
- package/dist/web/components/image/index.js +2 -2
- package/dist/web/components/index.js +45 -3
- package/dist/web/components/link/index.js +3 -5
- package/dist/web/components/listView/index.js +29 -49
- package/dist/web/components/lottery/index.js +123 -143
- package/dist/web/components/modal/h5.css +3 -0
- package/dist/web/components/modal/index.js +3 -2
- package/dist/web/components/modal/modal.h5.js +8 -14
- package/dist/web/components/modal/modal.pc.js +5 -7
- package/dist/web/components/navLayout/index.js +13 -20
- package/dist/web/components/navigationBar/common.js +12 -14
- package/dist/web/components/navigationBar/h5Menu.js +18 -37
- package/dist/web/components/navigationBar/horizontalMenu.js +33 -50
- package/dist/web/components/navigationBar/index.css +2 -1
- package/dist/web/components/navigationBar/index.js +5 -10
- package/dist/web/components/navigationBar/verticalMenu.js +11 -13
- package/dist/web/components/pageLayout/PageContent/index.js +7 -14
- package/dist/web/components/pageLayout/index.css +10 -0
- package/dist/web/components/pageLayout/index.js +7 -12
- package/dist/web/components/phone/index.js +2 -4
- package/dist/web/components/phoneCode/index.js +2 -4
- package/dist/web/components/picker/datePicker.js +2 -2
- package/dist/web/components/picker/picker.js +2 -2
- package/dist/web/components/picker/timePicker.js +2 -2
- package/dist/web/components/qrcode/index.js +3 -0
- package/dist/web/components/qrcode/qr-code.js +26 -0
- package/dist/web/components/repeater/index.js +2 -2
- package/dist/web/components/repeater-item/index.js +2 -2
- package/dist/web/components/richText/index.js +74 -93
- package/dist/web/components/richTextView/index.js +3 -3
- package/dist/web/components/scrollView/index.js +4 -3
- package/dist/web/components/share/index.js +2 -4
- package/dist/web/components/slot/index.js +2 -2
- package/dist/web/components/statusContent/index.css +39 -0
- package/dist/web/components/statusContent/index.js +9 -0
- package/dist/web/components/swiper/index.js +45 -48
- package/dist/web/components/table/BaseTable.js +141 -189
- package/dist/web/components/table/ExportFileModalByApi/index.js +29 -60
- package/dist/web/components/table/FieldRender.js +47 -51
- package/dist/web/components/table/FilterFields.js +45 -71
- package/dist/web/components/table/Form/Enum.js +4 -4
- package/dist/web/components/table/Form/Location.js +9 -9
- package/dist/web/components/table/ImportFileModal/index.css +261 -0
- package/dist/web/components/table/ImportFileModal/index.js +47 -107
- package/dist/web/components/table/ImportFileModal/validate.js +9 -9
- package/dist/web/components/table/ImportFileModalByApi/index.css +35 -3
- package/dist/web/components/table/ImportFileModalByApi/index.js +96 -113
- package/dist/web/components/table/ImportFileModalByApi/uploadCSVFile.js +23 -47
- package/dist/web/components/table/InOrOutRecordModeal.js +26 -47
- package/dist/web/components/table/QuoteModal.js +3 -5
- package/dist/web/components/table/SelectableBlock/index.js +23 -27
- package/dist/web/components/table/UserDepartment/ViewCell.js +3 -3
- package/dist/web/components/table/UserDepartment/utils.js +4 -4
- package/dist/web/components/table/baseTable.css +0 -10
- package/dist/web/components/table/index.js +3 -5
- package/dist/web/components/tabs/index.js +5 -6
- package/dist/web/components/tabs/tabs.h5.js +12 -14
- package/dist/web/components/tabs/tabs.pc.js +5 -5
- package/dist/web/components/text/index.js +3 -2
- package/dist/web/components/uploaderFileView/index.js +4 -3
- package/dist/web/components/uploaderView/index.js +12 -16
- package/dist/web/components/userInfo/index.js +2 -4
- package/dist/web/components/wd-bubble/wd-bubble.js +10 -11
- package/dist/web/components/wd-button/wd-button.js +24 -8
- package/dist/web/components/wd-config-provider/wd-config-provider.js +3 -2
- package/dist/web/components/wd-divider/wd-divider.js +3 -2
- package/dist/web/components/wd-form/hooks/use-auth-value.js +43 -0
- package/dist/web/components/wd-form/hooks/use-remote-value.js +79 -0
- package/dist/web/components/wd-form/index.js +368 -0
- package/dist/web/components/wd-icon/wd-icon.js +3 -2
- package/dist/web/components/wd-image/image.js +98 -96
- package/dist/web/components/wd-image/index.js +4 -3
- package/dist/web/components/wd-link/wd-link.js +4 -8
- package/dist/web/components/wd-table/components/ExportFileModalByApi/ExportFileModalByApi.js +7 -0
- package/dist/web/components/wd-table/components/ExportFileModalByApi/index.css +9 -0
- package/dist/web/components/wd-table/components/ExportFileModalByApi/index.js +74 -0
- package/dist/web/components/wd-table/components/FieldRender/Form/Enum.js +56 -0
- package/dist/web/components/wd-table/components/FieldRender/Form/Location.css +11 -0
- package/dist/web/components/wd-table/components/FieldRender/Form/Location.js +127 -0
- package/dist/web/components/wd-table/components/FieldRender/ImagePreview.js +8 -0
- package/dist/web/components/wd-table/components/FieldRender/QuoteModal.js +17 -0
- package/dist/web/components/wd-table/components/FieldRender/UserDepartment/ViewCell.js +11 -0
- package/dist/web/components/wd-table/components/FieldRender/UserDepartment/utils.js +82 -0
- package/dist/web/components/wd-table/components/FieldRender/UserDepartment/viewCell.css +11 -0
- package/dist/web/components/wd-table/components/FieldRender/index.js +691 -0
- package/dist/web/components/wd-table/components/FilterFieldsPanel/Fields.js +82 -0
- package/dist/web/components/wd-table/components/FilterFieldsPanel/FilterFieldItem.js +86 -0
- package/dist/web/components/wd-table/components/FilterFieldsPanel/InputAdornment.js +9 -0
- package/dist/web/components/wd-table/components/FilterFieldsPanel/SelectSearch.js +44 -0
- package/dist/web/components/wd-table/components/FilterFieldsPanel/filterFieldsGenerate.js +113 -0
- package/dist/web/components/wd-table/components/FilterFieldsPanel/index.js +169 -0
- package/dist/web/components/wd-table/components/ImportFileModalByApi/index.js +44 -0
- package/dist/web/components/wd-table/components/InOrOutRecordModal.js +14 -0
- package/dist/web/components/wd-table/components/Pagination/index.js +11 -0
- package/dist/web/components/wd-table/components/SearchBox/index.js +45 -0
- package/dist/web/components/wd-table/components/Table/index.js +172 -0
- package/dist/web/components/wd-table/components/Table/util.js +63 -0
- package/dist/web/components/wd-table/components/ToolBar/index.js +34 -0
- package/dist/web/components/wd-table/components/deleteModal.js +40 -0
- package/dist/web/components/wd-table/components/index.js +10 -0
- package/dist/web/components/wd-table/hooks/useAuthFields.js +13 -0
- package/dist/web/components/wd-table/hooks/useChooseList.js +72 -0
- package/dist/web/components/wd-table/hooks/useDataSource.js +5 -0
- package/dist/web/components/wd-table/hooks/useQueryParams.js +41 -0
- package/dist/web/components/wd-table/hooks/useTableData.js +48 -0
- package/dist/web/components/wd-table/hooks/useViewFields.js +20 -0
- package/dist/web/components/wd-table/mock/index.js +202 -0
- package/dist/web/components/wd-table/utils/index.js +307 -0
- package/dist/web/components/wd-table/wd-table.js +453 -21
- package/dist/web/components/wd-text/wd-text.js +15 -14
- package/dist/web/components/web-view/index.css +5 -0
- package/dist/web/components/web-view/index.js +3 -0
- package/dist/web/components/web-view/web-view.js +61 -0
- package/dist/web/components/wedaVideo/index.js +2 -5
- package/dist/web/utils/constant.js +1 -0
- package/dist/web/utils/getModelParams.js +32 -0
- package/dist/web/utils/hooks/CreatePortal.js +3 -2
- package/dist/web/utils/hooks/EnumHoc.js +3 -2
- package/dist/web/utils/hooks/globalConnect.js +2 -3
- package/dist/web/utils/hooks/use-cloud-id-temp-url.js +6 -6
- package/dist/web/utils/hooks/useDataSource.js +22 -0
- package/dist/web/utils/loading-fallback.js +2 -2
- package/dist/web/utils/platform.js +21 -0
- package/dist/web/utils/tcb.js +0 -13
- package/dist/web/utils/tool.js +14 -0
- package/dist/web/utils/widget-api/index.js +39 -7
- package/package.json +33 -25
- package/dist/web/components/emptyContent/index.css +0 -26
- package/dist/web/components/flow/components/FlowModuleText/index.css +0 -4
- package/dist/web/components/flow/modules/process/index.css +0 -194
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { useRef, useEffect, useState } from 'react';
|
|
2
|
+
import { flowRequest } from '../../../../common';
|
|
3
|
+
/**
|
|
4
|
+
* 下一节点审批人model
|
|
5
|
+
*/
|
|
6
|
+
export function useFlowTaskInfoModel(params) {
|
|
7
|
+
const { isH5 } = params.flowModulesProps;
|
|
8
|
+
const { onAfterFinishFlowAction } = params.flowControlModel;
|
|
9
|
+
/** 弹框是否可见 */
|
|
10
|
+
const [visible, setVisible] = useState(false);
|
|
11
|
+
/** 审批人列表 */
|
|
12
|
+
const [assigneeOptions, setAssigneeOptions] = useState([]);
|
|
13
|
+
/** 审批人 - 任务 映射对象 */
|
|
14
|
+
const assigneeTasksMapRef = useRef({});
|
|
15
|
+
/** 集合任务id */
|
|
16
|
+
const taskIdRef = useRef([]);
|
|
17
|
+
/** 已选审批人数组 */
|
|
18
|
+
const [selectedAssignees, setSelectedAssignees] = useState([]);
|
|
19
|
+
const timer = useRef(null);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
return () => {
|
|
22
|
+
cleanTiming();
|
|
23
|
+
};
|
|
24
|
+
}, []);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (params.flowControlModel.triggerFlowTaskInfo) {
|
|
27
|
+
/** 获取下一节点审批人触发信息 */
|
|
28
|
+
const { toBeSubmittedFlowTaskInfo } = params.flowControlModel.triggerFlowTaskInfo || {};
|
|
29
|
+
/** 转化下一节点审批人触发信息 */
|
|
30
|
+
const { assigneeTasksMap, assigneeOptions, taskIds } = transFlowTaskInfo(toBeSubmittedFlowTaskInfo);
|
|
31
|
+
setVisible(true);
|
|
32
|
+
setAssigneeOptions(assigneeOptions);
|
|
33
|
+
assigneeTasksMapRef.current = assigneeTasksMap;
|
|
34
|
+
taskIdRef.current = taskIds;
|
|
35
|
+
timingSubmit();
|
|
36
|
+
}
|
|
37
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
38
|
+
}, [params.flowControlModel.triggerFlowTaskInfo]);
|
|
39
|
+
const cleanTiming = () => {
|
|
40
|
+
clearTimeout(timer.current);
|
|
41
|
+
};
|
|
42
|
+
/** 审批人列表提交 */
|
|
43
|
+
const submitFlowTaskList = async (flowTaskIds) => {
|
|
44
|
+
const result = await flowRequest({
|
|
45
|
+
action: 'SubmitFlowTaskList',
|
|
46
|
+
data: { flowTaskIds },
|
|
47
|
+
});
|
|
48
|
+
if (result === null || result === void 0 ? void 0 : result.status) {
|
|
49
|
+
setVisible(false);
|
|
50
|
+
setSelectedAssignees([]);
|
|
51
|
+
cleanTiming();
|
|
52
|
+
// 执行完成后自定义动作
|
|
53
|
+
onAfterFinishFlowAction(params.actionKey, params.afterAction);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
/** 定时提交 */
|
|
57
|
+
const timingSubmit = () => {
|
|
58
|
+
// eslint-disable-next-line rulesdir/no-timer
|
|
59
|
+
timer.current = setTimeout(() => {
|
|
60
|
+
submitFlowTaskList();
|
|
61
|
+
}, 600000);
|
|
62
|
+
};
|
|
63
|
+
/** 提交按钮动作 */
|
|
64
|
+
const onSubmitTaskIds = (isCancel = true) => {
|
|
65
|
+
const selectedTaskIds = getSelectAssigneeTask(assigneeTasksMapRef.current, selectedAssignees);
|
|
66
|
+
const taskIds = isCancel ? taskIdRef.current : selectedTaskIds;
|
|
67
|
+
submitFlowTaskList(taskIds);
|
|
68
|
+
};
|
|
69
|
+
return {
|
|
70
|
+
isH5,
|
|
71
|
+
visible,
|
|
72
|
+
assigneeOptions,
|
|
73
|
+
selectedAssignees,
|
|
74
|
+
setSelectedAssignees,
|
|
75
|
+
onSubmitTaskIds,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 转换下一节点审批人任务信息。
|
|
80
|
+
*/
|
|
81
|
+
function transFlowTaskInfo(flowTaskInfoList) {
|
|
82
|
+
return flowTaskInfoList.reduce((result, infoItem) => {
|
|
83
|
+
const { assignee, assigneeName, waitFlowTaskId } = infoItem;
|
|
84
|
+
// 设置选择列表options
|
|
85
|
+
if (!result.assigneeOptions.some((option) => option.value === assignee)) {
|
|
86
|
+
result.assigneeOptions.push({
|
|
87
|
+
text: assigneeName,
|
|
88
|
+
value: assignee,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 设置审批人 与 任务id 映射
|
|
93
|
+
* 一个审批人可能会因为并行网关的原因 会有多个任务id。也就是 并行网关下可能会存在两条及以上的审批线路,每个线路都可能会有同一个审批人进行审批
|
|
94
|
+
* 到时候选审批人的时候把这个人对应的所有任务id都传给后端
|
|
95
|
+
*/
|
|
96
|
+
if (!result.assigneeTasksMap[assignee]) {
|
|
97
|
+
result.assigneeTasksMap[assignee] = [];
|
|
98
|
+
}
|
|
99
|
+
result.assigneeTasksMap[assignee].push(waitFlowTaskId);
|
|
100
|
+
// 添加任务id到任务id列表
|
|
101
|
+
result.taskIds.push(waitFlowTaskId);
|
|
102
|
+
return result;
|
|
103
|
+
}, {
|
|
104
|
+
/** 审批人 与 任务id 映射 */
|
|
105
|
+
assigneeTasksMap: {},
|
|
106
|
+
/** 审批人可选项 */
|
|
107
|
+
assigneeOptions: [],
|
|
108
|
+
/** 任务id集合 */
|
|
109
|
+
taskIds: [],
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/** 获取已选审批人对应的任务 */
|
|
113
|
+
function getSelectAssigneeTask(flowTaskInfoMap, selectedAssignees) {
|
|
114
|
+
return selectedAssignees.reduce((result, assignee) => {
|
|
115
|
+
const assigneeTask = flowTaskInfoMap[assignee];
|
|
116
|
+
result.push(...assigneeTask);
|
|
117
|
+
return result;
|
|
118
|
+
}, []);
|
|
119
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { message } from 'tea-component';
|
|
3
3
|
import { FlowButton } from '../components';
|
|
4
4
|
/**
|
|
@@ -6,9 +6,12 @@ import { FlowButton } from '../components';
|
|
|
6
6
|
*/
|
|
7
7
|
export function InitiationBtn(props) {
|
|
8
8
|
const { flowControlModel } = props;
|
|
9
|
-
const onClick = () => {
|
|
9
|
+
const onClick = async () => {
|
|
10
10
|
var _a;
|
|
11
11
|
const ccUserIds = (_a = flowControlModel.applyCcUser) === null || _a === void 0 ? void 0 : _a.join();
|
|
12
|
+
const result = await flowControlModel.getApprovalFormData();
|
|
13
|
+
if (!result)
|
|
14
|
+
return;
|
|
12
15
|
flowControlModel.completeTask({
|
|
13
16
|
actionKey: props.actionKey,
|
|
14
17
|
buttonAction: props.buttonAction,
|
|
@@ -21,5 +24,5 @@ export function InitiationBtn(props) {
|
|
|
21
24
|
},
|
|
22
25
|
});
|
|
23
26
|
};
|
|
24
|
-
return (
|
|
27
|
+
return (_jsx(FlowButton, { ...props.buttonProps, buttonIcon: props.buttonIcon, id: props.id, onClick: onClick, children: props.label }));
|
|
25
28
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { Button, Modal, message } from 'tea-component';
|
|
4
|
+
import { flowRequest } from '../../../../common';
|
|
3
5
|
import { FlowPopup, FlowButton } from '../../components';
|
|
4
6
|
import './style.css';
|
|
7
|
+
/** 撤回弹窗组件 */
|
|
5
8
|
export function RevokeModal(props) {
|
|
6
|
-
const {
|
|
7
|
-
const {
|
|
8
|
-
const { flowDetail } = flowFrameCommonProps.commonFlowData;
|
|
9
|
+
const { flowModulesProps, flowControlModel } = props;
|
|
10
|
+
const { isH5, currentPageType, processInstance } = flowModulesProps;
|
|
9
11
|
const { onAfterFinishFlowAction } = flowControlModel;
|
|
10
12
|
const [visible, setVisible] = useState(false);
|
|
11
13
|
const onOpen = () => setVisible(true);
|
|
@@ -15,11 +17,11 @@ export function RevokeModal(props) {
|
|
|
15
17
|
const result = await flowRequest({
|
|
16
18
|
action: 'Revoke',
|
|
17
19
|
data: {
|
|
18
|
-
flowCode:
|
|
19
|
-
appVersion:
|
|
20
|
-
instanceId:
|
|
20
|
+
flowCode: processInstance.flowCode,
|
|
21
|
+
appVersion: processInstance.flowVersion,
|
|
22
|
+
instanceId: processInstance.instanceId,
|
|
21
23
|
revokeType: currentPageType === 'CREATE' ? 2 : 1,
|
|
22
|
-
taskId: currentPageType === 'DONE' ?
|
|
24
|
+
taskId: currentPageType === 'DONE' ? processInstance.taskId : undefined,
|
|
23
25
|
},
|
|
24
26
|
});
|
|
25
27
|
if (result) {
|
|
@@ -30,21 +32,10 @@ export function RevokeModal(props) {
|
|
|
30
32
|
}
|
|
31
33
|
};
|
|
32
34
|
const renderModal = () => {
|
|
33
|
-
return (
|
|
34
|
-
React.createElement(Modal.Body, null, "\u6D41\u7A0B\u6B63\u5728\u8FDB\u884C\u4E2D\uFF0C\u786E\u8BA4\u64A4\u9500\u6B64\u6D41\u7A0B\uFF1F"),
|
|
35
|
-
React.createElement(Modal.Footer, null,
|
|
36
|
-
React.createElement(Button, { type: "primary", onClick: revoke }, "\u786E\u5B9A"),
|
|
37
|
-
React.createElement(Button, { type: "weak", onClick: onClose }, "\u53D6\u6D88"))));
|
|
35
|
+
return (_jsxs(Modal, { visible: visible, caption: "\u64A4\u9500\u6D41\u7A0B\u63D0\u9192", onClose: onClose, children: [_jsx(Modal.Body, { children: "\u6D41\u7A0B\u6B63\u5728\u8FDB\u884C\u4E2D\uFF0C\u786E\u8BA4\u64A4\u9500\u6B64\u6D41\u7A0B\uFF1F" }), _jsxs(Modal.Footer, { children: [_jsx(Button, { type: "primary", onClick: revoke, children: "\u786E\u5B9A" }), _jsx(Button, { type: "weak", onClick: onClose, children: "\u53D6\u6D88" })] })] }));
|
|
38
36
|
};
|
|
39
37
|
const renderPopup = () => {
|
|
40
|
-
return (
|
|
41
|
-
React.createElement("div", { className: "weda-flow-revoke-tip" },
|
|
42
|
-
React.createElement("div", { className: "weda-flow-revoke-content" }, "\u6D41\u7A0B\u6B63\u5728\u8FDB\u884C\u4E2D\uFF0C\u786E\u8BA4\u64A4\u9500\u6B64\u6D41\u7A0B\uFF1F"),
|
|
43
|
-
React.createElement("div", { className: "weda-flow-revoke-confirm" },
|
|
44
|
-
React.createElement(Button, { type: "text", onClick: onClose }, "\u53D6\u6D88"),
|
|
45
|
-
React.createElement(Button, { type: "link", onClick: revoke }, "\u786E\u8BA4")))));
|
|
38
|
+
return (_jsx(FlowPopup, { visible: visible, onClose: onClose, title: "\u64A4\u9500\u6D41\u7A0B\u63D0\u9192", overlayStyle: { zIndex: 998 }, width: "80%", className: "weda-flow-revoke-popup", children: _jsxs("div", { className: "weda-flow-revoke-tip", children: [_jsx("div", { className: "weda-flow-revoke-content", children: "\u6D41\u7A0B\u6B63\u5728\u8FDB\u884C\u4E2D\uFF0C\u786E\u8BA4\u64A4\u9500\u6B64\u6D41\u7A0B\uFF1F" }), _jsxs("div", { className: "weda-flow-revoke-confirm", children: [_jsx(Button, { type: "text", onClick: onClose, children: "\u53D6\u6D88" }), _jsx(Button, { type: "link", onClick: revoke, children: "\u786E\u8BA4" })] })] }) }));
|
|
46
39
|
};
|
|
47
|
-
return (
|
|
48
|
-
React.createElement(FlowButton, { ...props.buttonProps, buttonIcon: props.buttonIcon, id: props.id, onClick: onOpen }, props.label),
|
|
49
|
-
isH5 ? renderPopup() : renderModal()));
|
|
40
|
+
return (_jsxs(_Fragment, { children: [_jsx(FlowButton, { ...props.buttonProps, buttonIcon: props.buttonIcon, id: props.id, onClick: onOpen, children: props.label }), isH5 ? renderPopup() : renderModal()] }));
|
|
50
41
|
}
|
|
@@ -1,35 +1,26 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
2
3
|
import { Button, Modal, Select, Form, Radio, message } from 'tea-component';
|
|
4
|
+
import { flowRequest } from '../../../common';
|
|
3
5
|
import { FlowCheckListPopup } from './check-list-popup';
|
|
4
6
|
/** 回退弹窗 */
|
|
5
7
|
export function RollbackModal(props) {
|
|
6
8
|
const { visible, isH5, preElementList, selectedNodeId, setSelectedNodeId, onOpen, onClose, rollBack, } = useRollbackModel(props);
|
|
7
9
|
const renderModal = () => {
|
|
8
|
-
return (
|
|
9
|
-
React.createElement(Modal.Body, null,
|
|
10
|
-
React.createElement(Form, null,
|
|
11
|
-
React.createElement(Form.Item, { label: '选择回退节点' },
|
|
12
|
-
React.createElement(Select, { size: "full", appearance: "button", matchButtonWidth: true, options: preElementList, value: selectedNodeId, onChange: (value) => setSelectedNodeId(value), style: { width: 200 } })))),
|
|
13
|
-
React.createElement(Modal.Footer, null,
|
|
14
|
-
React.createElement(Button, { type: "primary", disabled: (preElementList === null || preElementList === void 0 ? void 0 : preElementList.length) === 0 || !selectedNodeId, onClick: rollBack }, "\u786E\u5B9A"),
|
|
15
|
-
React.createElement(Button, { type: "weak", onClick: onClose }, "\u53D6\u6D88"))));
|
|
10
|
+
return (_jsxs(Modal, { visible: visible, caption: '流程回退', onClose: onClose, children: [_jsx(Modal.Body, { children: _jsx(Form, { children: _jsx(Form.Item, { label: '选择回退节点', children: _jsx(Select, { size: "full", appearance: "button", matchButtonWidth: true, options: preElementList, value: selectedNodeId, onChange: (value) => setSelectedNodeId(value), style: { width: 200 } }) }) }) }), _jsxs(Modal.Footer, { children: [_jsx(Button, { type: "primary", disabled: (preElementList === null || preElementList === void 0 ? void 0 : preElementList.length) === 0 || !selectedNodeId, onClick: rollBack, children: "\u786E\u5B9A" }), _jsx(Button, { type: "weak", onClick: onClose, children: "\u53D6\u6D88" })] })] }));
|
|
16
11
|
};
|
|
17
12
|
const renderPopup = () => {
|
|
18
|
-
return (
|
|
13
|
+
return (_jsx(FlowCheckListPopup, { visible: visible, onClose: onClose, title: "\u8BF7\u9009\u62E9\u56DE\u9000\u8282\u70B9", overlayStyle: { zIndex: 998 }, height: 550, confirmButtonProps: {
|
|
19
14
|
onClick: rollBack,
|
|
20
15
|
disabled: (preElementList === null || preElementList === void 0 ? void 0 : preElementList.length) === 0 || !selectedNodeId,
|
|
21
|
-
} },
|
|
22
|
-
React.createElement(Radio.Group, { value: selectedNodeId, onChange: (value) => setSelectedNodeId(value), layout: "column" }, preElementList.map((ele) => (React.createElement(Radio, { name: ele.value, key: ele.value }, ele.text))))));
|
|
16
|
+
}, children: _jsx(Radio.Group, { value: selectedNodeId, onChange: (value) => setSelectedNodeId(value), layout: "column", children: preElementList.map((ele) => (_jsx(Radio, { name: ele.value, children: ele.text }, ele.value))) }) }));
|
|
23
17
|
};
|
|
24
|
-
return (
|
|
25
|
-
React.createElement(Button, { ...props.buttonProps, id: props.id, onClick: onOpen }, props.label),
|
|
26
|
-
isH5 ? renderPopup() : renderModal()));
|
|
18
|
+
return (_jsxs(_Fragment, { children: [_jsx(Button, { ...props.buttonProps, id: props.id, onClick: onOpen, children: props.label }), isH5 ? renderPopup() : renderModal()] }));
|
|
27
19
|
}
|
|
28
20
|
/** 回退model */
|
|
29
21
|
function useRollbackModel(params) {
|
|
30
|
-
const {
|
|
31
|
-
const {
|
|
32
|
-
const { flowDetail } = flowFrameCommonProps.commonFlowData;
|
|
22
|
+
const { flowModulesProps, flowControlModel } = params;
|
|
23
|
+
const { isH5, processInstance } = flowModulesProps;
|
|
33
24
|
const { onAfterFinishFlowAction } = flowControlModel;
|
|
34
25
|
const [visible, setVisible] = useState(false);
|
|
35
26
|
/** 可回退节点列表 */
|
|
@@ -46,9 +37,10 @@ function useRollbackModel(params) {
|
|
|
46
37
|
const result = await flowRequest({
|
|
47
38
|
action: 'GetPreElementList',
|
|
48
39
|
data: {
|
|
49
|
-
flowCode:
|
|
50
|
-
appVersion:
|
|
51
|
-
instanceId:
|
|
40
|
+
flowCode: processInstance.flowCode,
|
|
41
|
+
appVersion: processInstance.flowVersion,
|
|
42
|
+
instanceId: processInstance.instanceId,
|
|
43
|
+
nodeId: processInstance.currentNodeId,
|
|
52
44
|
},
|
|
53
45
|
});
|
|
54
46
|
if (result === null || result === void 0 ? void 0 : result.data) {
|
|
@@ -74,11 +66,11 @@ function useRollbackModel(params) {
|
|
|
74
66
|
const result = await flowRequest({
|
|
75
67
|
action: 'RollBack',
|
|
76
68
|
data: {
|
|
77
|
-
flowCode:
|
|
78
|
-
appVersion:
|
|
79
|
-
instanceId:
|
|
80
|
-
taskId:
|
|
81
|
-
nodeId:
|
|
69
|
+
flowCode: processInstance.flowCode,
|
|
70
|
+
appVersion: processInstance.flowVersion,
|
|
71
|
+
instanceId: processInstance.instanceId,
|
|
72
|
+
taskId: processInstance.taskId,
|
|
73
|
+
nodeId: processInstance.currentNodeId,
|
|
82
74
|
sourceType: 1,
|
|
83
75
|
targetNodeId: selectedNodeId,
|
|
84
76
|
targetActTaskId: (_a = preElementList.find((item) => item.value === selectedNodeId)) === null || _a === void 0 ? void 0 : _a.actTaskId,
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { useState } from 'react';
|
|
2
|
-
import { PAGE_TYPE } from '../../
|
|
3
|
-
import { CommonFlowDataUtils, } from '../../frame';
|
|
1
|
+
import { useState, useRef } from 'react';
|
|
2
|
+
import { PAGE_TYPE, isInIde, flowRequest, } from '../../common';
|
|
4
3
|
import { FLOW_CONTROL_ACTION_KEY, } from './config';
|
|
5
4
|
/** 流程控制主model, 包含一些公共状态或方法 */
|
|
6
5
|
export function useFlowControlModel(params) {
|
|
7
6
|
//#region model入参
|
|
8
|
-
const {
|
|
9
|
-
const {
|
|
10
|
-
const { flowRequest, isWedaIde } = flowLocalProps;
|
|
11
|
-
const { events } = ide || {};
|
|
7
|
+
const { processInstance, approvalPageDetail, wedaPlatformProps, updatePageType, reloadCommonFlowData, updateFlowFormType, } = params;
|
|
8
|
+
const { events } = wedaPlatformProps || {};
|
|
12
9
|
//#endregion
|
|
13
10
|
//#region hook
|
|
14
11
|
/** 提交申请时的抄送列表 */
|
|
@@ -17,85 +14,57 @@ export function useFlowControlModel(params) {
|
|
|
17
14
|
const [hasGoBack, setHasGoBack] = useState(false);
|
|
18
15
|
/** 触发下一节点审批人操作 */
|
|
19
16
|
const [triggerFlowTaskInfo, setTriggerFlowTaskInfo] = useState(null);
|
|
17
|
+
const { formDataRef, ...restFormDateModel } = useFormData(params);
|
|
20
18
|
//#endregion
|
|
21
19
|
//#region 流程操作请求
|
|
22
20
|
/** 提交申请、保存草稿、同意、拒绝、处理、转办 时 调用此请求 */
|
|
23
|
-
const completeTask = (value) => {
|
|
21
|
+
const completeTask = async (value) => {
|
|
22
|
+
var _a, _b, _c;
|
|
24
23
|
if (!value.buttonAction)
|
|
25
24
|
return;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
// 执行完成后自定义动作
|
|
49
|
-
onAfterFinishFlowAction(value.actionKey, value.afterAction);
|
|
50
|
-
}
|
|
25
|
+
const params = {
|
|
26
|
+
buttonAction: value.buttonAction,
|
|
27
|
+
flowCode: processInstance.flowCode,
|
|
28
|
+
instanceId: processInstance.instanceId,
|
|
29
|
+
nodeId: processInstance.currentNodeId,
|
|
30
|
+
taskId: processInstance.taskId,
|
|
31
|
+
appVersion: processInstance.flowVersion,
|
|
32
|
+
appCode: processInstance === null || processInstance === void 0 ? void 0 : processInstance.startAppCode,
|
|
33
|
+
variableInfos: translateVariableInfos(formDataRef.current, approvalPageDetail),
|
|
34
|
+
...(value.data || {}),
|
|
35
|
+
};
|
|
36
|
+
(_a = value === null || value === void 0 ? void 0 : value.setLoadingState) === null || _a === void 0 ? void 0 : _a.call(value, true);
|
|
37
|
+
const result = await flowRequest({ action: 'CompleteTask', data: params }, { upperCaseIgnoreKeys: ['variableInfos'] });
|
|
38
|
+
(_b = value === null || value === void 0 ? void 0 : value.setLoadingState) === null || _b === void 0 ? void 0 : _b.call(value, false);
|
|
39
|
+
// 请求成功后清空审批表单详情数据缓存
|
|
40
|
+
restFormDateModel.clearFormData();
|
|
41
|
+
if (result) {
|
|
42
|
+
(_c = value === null || value === void 0 ? void 0 : value.successCallback) === null || _c === void 0 ? void 0 : _c.call(value);
|
|
43
|
+
if (result === null || result === void 0 ? void 0 : result.toBeSubmittedFlowTaskFlag) {
|
|
44
|
+
setTriggerFlowTaskInfo(result);
|
|
51
45
|
}
|
|
52
|
-
|
|
46
|
+
else {
|
|
47
|
+
// 执行完成后自定义动作
|
|
48
|
+
onAfterFinishFlowAction(value.actionKey, value.afterAction);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
53
51
|
};
|
|
54
52
|
//#endregion
|
|
55
53
|
//#region 辅助方法
|
|
56
|
-
/** 获取审批申请表单数据 */
|
|
57
|
-
const getFormData = (callback) => {
|
|
58
|
-
var _a;
|
|
59
|
-
if (isWedaIde) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
(_a = events === null || events === void 0 ? void 0 : events.tap) === null || _a === void 0 ? void 0 : _a.call(events, {
|
|
63
|
-
onGetFormData: (formDataMap) => {
|
|
64
|
-
if (Object.values(formDataMap).some((item) => item === undefined)) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
callback === null || callback === void 0 ? void 0 : callback(formDataMap);
|
|
68
|
-
},
|
|
69
|
-
}, {
|
|
70
|
-
originEvent: null,
|
|
71
|
-
});
|
|
72
|
-
};
|
|
73
54
|
/** 完成流程动作后的事件 */
|
|
74
55
|
function onAfterFinishFlowAction(currentActionKey, afterAction) {
|
|
75
56
|
const customizeFinishAction = events === null || events === void 0 ? void 0 : events[afterAction];
|
|
76
57
|
if (customizeFinishAction) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
// 默认切换页面类型为【我已处理】
|
|
80
|
-
let newPageType = PAGE_TYPE.DONE;
|
|
81
|
-
// 提交后需要切换页面类型为【我发起的】
|
|
82
|
-
if (currentActionKey === FLOW_CONTROL_ACTION_KEY.SUBMIT) {
|
|
83
|
-
newPageType = PAGE_TYPE.CREATE;
|
|
84
|
-
}
|
|
85
|
-
// 保存草稿后切换页面类型为【草稿箱】
|
|
86
|
-
if (currentActionKey === FLOW_CONTROL_ACTION_KEY.SAVE_DRAFT) {
|
|
87
|
-
newPageType = PAGE_TYPE.DRAFT;
|
|
88
|
-
}
|
|
89
|
-
CommonFlowDataUtils.updateUrlSearch({ pageType: newPageType });
|
|
90
|
-
}
|
|
58
|
+
const newPageType = getNewPageType(currentActionKey);
|
|
59
|
+
updatePageType(newPageType);
|
|
91
60
|
// 操作类型不是回退的情况才reload数据 回退之后当前流程被销毁 故回退之后不刷新数据
|
|
92
61
|
if (currentActionKey === FLOW_CONTROL_ACTION_KEY.ROLL_BACK) {
|
|
93
62
|
setHasGoBack(true);
|
|
94
|
-
|
|
63
|
+
updateFlowFormType('read');
|
|
95
64
|
}
|
|
96
65
|
else {
|
|
97
66
|
// 重新加载数据
|
|
98
|
-
|
|
67
|
+
reloadCommonFlowData(newPageType);
|
|
99
68
|
}
|
|
100
69
|
// 执行自定义事件
|
|
101
70
|
customizeFinishAction === null || customizeFinishAction === void 0 ? void 0 : customizeFinishAction();
|
|
@@ -109,13 +78,52 @@ export function useFlowControlModel(params) {
|
|
|
109
78
|
setApplyCcUser,
|
|
110
79
|
completeTask,
|
|
111
80
|
onAfterFinishFlowAction,
|
|
81
|
+
...restFormDateModel,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/** 处理审批内容表单详情的hook */
|
|
85
|
+
function useFormData(params) {
|
|
86
|
+
const { events } = (params === null || params === void 0 ? void 0 : params.wedaPlatformProps) || {};
|
|
87
|
+
// 审批表单详情数据缓存
|
|
88
|
+
const formDataRef = useRef(null);
|
|
89
|
+
/**
|
|
90
|
+
* 获取审批表单详情数据缓存
|
|
91
|
+
* @returns 返回表单内的数据,返回null说明在ide中或者是表单校验失败
|
|
92
|
+
*/
|
|
93
|
+
const getApprovalFormData = () => {
|
|
94
|
+
return new Promise((resolve) => {
|
|
95
|
+
var _a;
|
|
96
|
+
if (isInIde()) {
|
|
97
|
+
resolve(null);
|
|
98
|
+
}
|
|
99
|
+
(_a = events === null || events === void 0 ? void 0 : events.tap) === null || _a === void 0 ? void 0 : _a.call(events, {
|
|
100
|
+
onGetFormData: (formDataMap) => {
|
|
101
|
+
if (Object.values(formDataMap).some((item) => item === undefined)) {
|
|
102
|
+
resolve(null);
|
|
103
|
+
}
|
|
104
|
+
formDataRef.current = formDataMap;
|
|
105
|
+
resolve(formDataMap);
|
|
106
|
+
},
|
|
107
|
+
}, {
|
|
108
|
+
originEvent: null,
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
/** 清空审批表单详情数据缓存 */
|
|
113
|
+
const clearFormData = () => {
|
|
114
|
+
formDataRef.current = null;
|
|
115
|
+
};
|
|
116
|
+
return {
|
|
117
|
+
formDataRef,
|
|
118
|
+
getApprovalFormData,
|
|
119
|
+
clearFormData,
|
|
112
120
|
};
|
|
113
121
|
}
|
|
114
122
|
/** 涉及提交申请表单时,转换variableInfos */
|
|
115
|
-
function translateVariableInfos(currentFormData,
|
|
123
|
+
function translateVariableInfos(currentFormData, approvalPageDetail) {
|
|
116
124
|
var _a;
|
|
117
|
-
const outEntityCodes = (
|
|
118
|
-
const originObjectMap = ((_a =
|
|
125
|
+
const outEntityCodes = (approvalPageDetail === null || approvalPageDetail === void 0 ? void 0 : approvalPageDetail.outEntityCodes) || [];
|
|
126
|
+
const originObjectMap = ((_a = approvalPageDetail === null || approvalPageDetail === void 0 ? void 0 : approvalPageDetail.variableInfos) === null || _a === void 0 ? void 0 : _a.objectMap) || [];
|
|
119
127
|
return outEntityCodes === null || outEntityCodes === void 0 ? void 0 : outEntityCodes.map((item) => {
|
|
120
128
|
const originVariableInfo = originObjectMap === null || originObjectMap === void 0 ? void 0 : originObjectMap.find((info) => (info === null || info === void 0 ? void 0 : info.entityCode) === (item === null || item === void 0 ? void 0 : item.entityCode));
|
|
121
129
|
const { recordId, fieldValueMap } = originVariableInfo || {};
|
|
@@ -135,3 +143,20 @@ function translateVariableInfos(currentFormData, pageInfo) {
|
|
|
135
143
|
return variableInfo;
|
|
136
144
|
});
|
|
137
145
|
}
|
|
146
|
+
/** 获取新页面类型 */
|
|
147
|
+
function getNewPageType(currentActionKey) {
|
|
148
|
+
// 当前是加签的话不进行更新PageType操作
|
|
149
|
+
if (currentActionKey === FLOW_CONTROL_ACTION_KEY.ADD_ASSIGNEE)
|
|
150
|
+
return null;
|
|
151
|
+
// 当前动作不是加签的话,需要切换URL参数 默认切换页面类型为【我已处理】
|
|
152
|
+
let newPageType = PAGE_TYPE.DONE;
|
|
153
|
+
// 提交后需要切换页面类型为【我发起的】
|
|
154
|
+
if (currentActionKey === FLOW_CONTROL_ACTION_KEY.SUBMIT) {
|
|
155
|
+
newPageType = PAGE_TYPE.CREATE;
|
|
156
|
+
}
|
|
157
|
+
// 保存草稿后切换页面类型为【草稿箱】
|
|
158
|
+
if (currentActionKey === FLOW_CONTROL_ACTION_KEY.SAVE_DRAFT) {
|
|
159
|
+
newPageType = PAGE_TYPE.DRAFT;
|
|
160
|
+
}
|
|
161
|
+
return newPageType;
|
|
162
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import './style.css';
|
|
3
|
+
/** 评论内容文本标签 */
|
|
4
|
+
export function CommentText(props) {
|
|
5
|
+
const { comment = '', highlightPositionList = [], arrowDirection = 'top', } = props;
|
|
6
|
+
// 高亮位置数组为空说明没有@用户信息,只有返回评论内容
|
|
7
|
+
if (!highlightPositionList.length)
|
|
8
|
+
return (_jsx(CommentPanel, { arrowDirection: arrowDirection, children: comment }));
|
|
9
|
+
let startIndex = 0;
|
|
10
|
+
let commentDom = '';
|
|
11
|
+
// 变量高亮位置数组 拼接dom
|
|
12
|
+
for (const [start, end] of highlightPositionList) {
|
|
13
|
+
const atUserName = comment === null || comment === void 0 ? void 0 : comment.substring(start + 1, end);
|
|
14
|
+
commentDom = (_jsxs(_Fragment, { children: [commentDom, _jsxs(_Fragment, { children: [comment === null || comment === void 0 ? void 0 : comment.substring(startIndex, start), _jsxs("span", { style: { color: '#0052d9' }, children: ["@", atUserName] })] })] }));
|
|
15
|
+
startIndex = end;
|
|
16
|
+
}
|
|
17
|
+
if (startIndex < (comment === null || comment === void 0 ? void 0 : comment.length)) {
|
|
18
|
+
commentDom = (_jsxs(_Fragment, { children: [commentDom, comment.substring(startIndex, comment.length)] }));
|
|
19
|
+
}
|
|
20
|
+
return (_jsx(CommentPanel, { arrowDirection: arrowDirection, children: commentDom }));
|
|
21
|
+
}
|
|
22
|
+
function CommentPanel(props) {
|
|
23
|
+
return (_jsx("div", { className: `weda-process-comment arrow-${props.arrowDirection}`, children: _jsx("span", { className: "weda-process-comment-content", children: props.children }) }));
|
|
24
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.weda-process-comment {
|
|
2
|
+
max-width: 768px;
|
|
3
|
+
display: inline-block;
|
|
4
|
+
background: rgb(243, 243, 243);
|
|
5
|
+
padding: 5px 12px;
|
|
6
|
+
border-radius: 3px;
|
|
7
|
+
position: relative;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.weda-process-comment::before {
|
|
11
|
+
content: ' ';
|
|
12
|
+
position: absolute;
|
|
13
|
+
width: 10px;
|
|
14
|
+
height: 10px;
|
|
15
|
+
display: inline-block;
|
|
16
|
+
background: rgb(243, 243, 243);
|
|
17
|
+
transform: rotate(45deg);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.arrow-top::before {
|
|
21
|
+
top: -3px;
|
|
22
|
+
left: 25px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.arrow-left::before {
|
|
26
|
+
top: 6px;
|
|
27
|
+
left: -2px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.weda-process-comment-content {
|
|
31
|
+
width: 100%;
|
|
32
|
+
display: inline-block;
|
|
33
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import './style.css';
|
|
3
|
+
/** 描述列表 成组展示多个只读字段 */
|
|
4
|
+
export function Descriptions(props) {
|
|
5
|
+
const { items } = props;
|
|
6
|
+
const renderDescriptionItem = (description) => {
|
|
7
|
+
const { label, children } = description;
|
|
8
|
+
return (_jsxs("div", { className: "weda-process-descriptions-item", style: description.layout === 'vertical'
|
|
9
|
+
? { flexDirection: 'column' }
|
|
10
|
+
: { alignItems: 'center' }, children: [_jsx("span", { className: "weda-process-descriptions-item-key", children: label }), _jsx("span", { className: "weda-process-descriptions-item-value", children: children })] }));
|
|
11
|
+
};
|
|
12
|
+
if (!(items === null || items === void 0 ? void 0 : items.length))
|
|
13
|
+
return null;
|
|
14
|
+
return (_jsx("div", { className: "weda-process-descriptions", children: items.map((item) => renderDescriptionItem(item)) }));
|
|
15
|
+
}
|
|
16
|
+
Descriptions.defaultProps = {
|
|
17
|
+
label: '',
|
|
18
|
+
layout: 'horizontal',
|
|
19
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.weda-process-descriptions {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
gap: 6px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.weda-process-descriptions-item {
|
|
8
|
+
display: flex;
|
|
9
|
+
gap: 4px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.weda-process-descriptions-item-key {
|
|
13
|
+
color: rgba(0, 0, 0, 0.45);
|
|
14
|
+
font-weight: 400;
|
|
15
|
+
font-size: 12px;
|
|
16
|
+
text-align: start;
|
|
17
|
+
word-break: keep-all;
|
|
18
|
+
}
|
|
19
|
+
.weda-process-descriptions-item-key::after {
|
|
20
|
+
content: ':';
|
|
21
|
+
position: relative;
|
|
22
|
+
top: -0.5px;
|
|
23
|
+
margin-inline: 2px 8px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.weda-process-descriptions-item-value {
|
|
27
|
+
color: rgba(0, 0, 0, 0.78);
|
|
28
|
+
font-size: 12px;
|
|
29
|
+
word-break: break-word;
|
|
30
|
+
overflow-wrap: break-word;
|
|
31
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import './style.css';
|
|
3
|
+
/** 审批历史时间轴组件 */
|
|
4
|
+
export function Timeline(props) {
|
|
5
|
+
const { items = [], titleAlign = 'flex-start', className = '', style = {}, } = props;
|
|
6
|
+
const renderPrefix = (index, dataLength, color) => {
|
|
7
|
+
return (_jsxs("div", { className: "weda-process-timeline-prefix", children: [_jsx("div", { className: `weda-process-timeline-dot ${color}` }), _jsx("div", { className: `weda-process-timeline-line ${index === dataLength - 1 ? 'weda-process-timeline-line-hidden' : ''}` })] }));
|
|
8
|
+
};
|
|
9
|
+
const renderContent = (item) => {
|
|
10
|
+
return (_jsxs("div", { className: "weda-process-timeline-content", children: [_jsxs("div", { className: "weda-process-timeline-header", style: { justifyContent: titleAlign }, children: [_jsx("div", { className: "weda-process-timeline-title", children: item.title }), _jsx("div", { className: "weda-process-timeline-extra", children: item.extra || null })] }), _jsx("div", { children: item.content || null }), _jsx("div", { className: "weda-process-timeline-label", children: item.label })] }));
|
|
11
|
+
};
|
|
12
|
+
return (_jsx("ul", { className: `weda-process-timeline ${className}`, style: style, children: items.map((item, index) => (_jsxs("li", { className: "weda-process-timeline-item", children: [renderPrefix(index, items === null || items === void 0 ? void 0 : items.length, item.dotColor), renderContent(item)] }, `${index}_flow_tl_item`))) }));
|
|
13
|
+
}
|