@cloudbase/weda-ui 3.4.8 → 3.4.9
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/README.md +65 -30
- package/dist/configs/components/carousel.json +12 -2
- package/dist/configs/components/chart/bar.json +2 -2
- package/dist/configs/components/chart/line.js +2 -2
- package/dist/configs/components/chart/pie.json +2 -2
- 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 +262 -0
- package/dist/configs/components/dataView.js +10 -66
- package/dist/configs/components/flowgraph.json +22 -0
- package/dist/configs/components/form/departTreeSelect.json +10 -0
- package/dist/configs/components/form-checkbox.js +261 -0
- package/dist/configs/components/form-date.js +268 -0
- package/dist/configs/components/form-depart-tree-select.js +237 -0
- package/dist/configs/components/form-email.js +258 -0
- package/dist/configs/components/form-image-uploader.js +326 -0
- package/dist/configs/components/form-input.js +477 -0
- package/dist/configs/components/form-location.js +328 -0
- package/dist/configs/components/form-multi-region.js +202 -0
- package/dist/configs/components/form-phone.js +250 -0
- package/dist/configs/components/form-radio.js +261 -0
- package/dist/configs/components/form-region.js +198 -0
- package/dist/configs/components/form-rich-text.js +212 -0
- package/dist/configs/components/form-select.js +368 -0
- package/dist/configs/components/form-switch.js +153 -0
- package/dist/configs/components/form-text-area.js +241 -0
- package/dist/configs/components/form-time.js +221 -0
- package/dist/configs/components/form-upload-file.js +269 -0
- package/dist/configs/components/form-url.js +259 -0
- package/dist/configs/components/form-user-tree-select.js +315 -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 -3
- package/dist/configs/components/navigationBar.json +2 -4
- 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 +5 -5
- 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 +4 -4
- package/dist/configs/components/wd-image.js +5 -0
- package/dist/configs/components/wd-link.js +5 -5
- 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 +50 -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 +4 -43
- package/dist/docs/common/tableView.js +15 -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/common/core/eChartLine.js +12 -1
- package/dist/web/components/chart/common/data-transform.js +13 -9
- package/dist/web/components/chart/line/index.js +6 -7
- package/dist/web/components/chart/line/index.old.js +5 -3
- 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 +49 -5
- package/dist/web/components/flow/modules/chart/preview-data.js +88 -0
- 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/flow-graph/constants.js +28 -0
- package/dist/web/components/flow-graph/graph.js +267 -0
- package/dist/web/components/flow-graph/index.js +2 -0
- package/dist/web/components/flow-graph/style.css +109 -0
- package/dist/web/components/flow-graph/types.js +1 -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.css +4 -0
- package/dist/web/components/form/select/dropdown-select/index.js +7 -3
- 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 +10 -10
- 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 +44 -62
- package/dist/web/components/form/userOrgSelect/common/utils.js +225 -0
- package/dist/web/components/form/userOrgSelect/component/OrgPaths.js +12 -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 +9 -19
- package/dist/web/components/form/userOrgSelect/component/depart-select/departTreeSelect.h5.js +156 -0
- package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +58 -21
- package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.js +29 -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 +49 -35
- package/dist/web/components/form/userOrgSelect/component/org-tree-h5.js +7 -13
- package/dist/web/components/form/userOrgSelect/component/org-tree.js +26 -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 +30 -4
- 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 +24 -17
- package/dist/web/components/form/userOrgSelect/component/user-select-pc/org-tree.js +2 -2
- package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +12 -30
- package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +8 -8
- package/dist/web/components/form/userOrgSelect/component/userOrgSelect.css +20 -2
- package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +68 -158
- package/dist/web/components/form/userOrgSelect/hooks/use-depart-data.js +4 -2
- 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 +284 -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 +46 -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 +44 -48
- package/dist/web/components/table/BaseTable.js +142 -190
- 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 +15 -14
- 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 +382 -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 +702 -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 +70 -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 +42 -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 +326 -0
- package/dist/web/components/wd-table/wd-table.js +459 -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/datasource.js +3 -1
- 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 +32 -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,82 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { DatePicker, TimePicker, Input, Tooltip, Select, SelectMultiple, } from 'tea-component';
|
|
3
|
+
import moment from 'moment';
|
|
4
|
+
import { useEnumContext } from '../../../../utils/hooks/context';
|
|
5
|
+
const { RangePicker } = DatePicker;
|
|
6
|
+
import { SelectSearch } from './SelectSearch';
|
|
7
|
+
export { SelectSearch };
|
|
8
|
+
// 时间日期
|
|
9
|
+
export const DatePickerField = ({ disabled = false, showTime = false, isRange, updateValue, value, }) => isRange ? (_jsx(Tooltip, { title: value && `${value[0]}~${value[1]}`, children: _jsx(RangePicker, { disabled: disabled, clearable: true, value: value ? [moment(value[0]), moment(value[1])] : null, showTime: showTime, onChange: (value) => {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
updateValue({
|
|
12
|
+
value: value[0]
|
|
13
|
+
? [
|
|
14
|
+
(_a = value[0]) === null || _a === void 0 ? void 0 : _a.format('YYYY-MM-DD HH:mm:ss'),
|
|
15
|
+
(_b = value[1]) === null || _b === void 0 ? void 0 : _b.format('YYYY-MM-DD HH:mm:ss'),
|
|
16
|
+
]
|
|
17
|
+
: null,
|
|
18
|
+
});
|
|
19
|
+
} }) })) : (_jsx(Tooltip, { title: value, children: _jsx(DatePicker, { disabled: disabled, clearable: true, value: value ? moment(value) : null, showTime: showTime, onChange: (value) => updateValue({ value: value === null || value === void 0 ? void 0 : value.format('YYYY-MM-DD HH:mm:ss') }) }) }));
|
|
20
|
+
// 时间
|
|
21
|
+
export const TimePickerField = ({ disabled = false, isRange, updateValue, value, }) => isRange ? (_jsx(TimePicker.RangePicker, { disabled: disabled, clearable: true, value: value
|
|
22
|
+
? [moment(value[0], 'HH:mm:ss'), moment(value[1], 'HH:mm:ss')]
|
|
23
|
+
: [null, null], onChange: (value) => {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
updateValue({
|
|
26
|
+
value: value[0]
|
|
27
|
+
? [(_a = value[0]) === null || _a === void 0 ? void 0 : _a.format('HH:mm:ss'), (_b = value[1]) === null || _b === void 0 ? void 0 : _b.format('HH:mm:ss')]
|
|
28
|
+
: null,
|
|
29
|
+
});
|
|
30
|
+
} })) : (_jsx(TimePicker, { disabled: disabled, clearable: true, value: value ? moment(value, 'HH:mm:ss') : null, onChange: (value) => updateValue({ value: value === null || value === void 0 ? void 0 : value.format('HH:mm:ss') }) }));
|
|
31
|
+
// 文本输入框
|
|
32
|
+
export const InputField = ({ disabled = false, value, updateValue }) => (_jsx(Input, { disabled: disabled, size: "full", value: value, onChange: (value) => {
|
|
33
|
+
updateValue({ value });
|
|
34
|
+
} }));
|
|
35
|
+
// 数字范围输入
|
|
36
|
+
export const MultipleNumber = ({ disabled = false, value, updateValue }) => {
|
|
37
|
+
const val1 = value ? value[0] : '';
|
|
38
|
+
const val2 = value ? value[1] : '';
|
|
39
|
+
return (_jsxs("div", { className: "_wedamodal-fn-input-range", children: [_jsx(Input, { disabled: disabled, size: "s", placeholder: "\u8BF7\u8F93\u5165", value: val1, onChange: (value) => {
|
|
40
|
+
if (isNaN(Number(value))) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
updateValue({ value: [value, val2] });
|
|
44
|
+
} }), _jsx("span", { className: "_wedamodal-fn-input-range__split", children: "~" }), _jsx(Input, { disabled: disabled, value: val2, onChange: (value) => {
|
|
45
|
+
if (isNaN(Number(value))) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
updateValue({ value: [val1, value] });
|
|
49
|
+
}, size: "s", placeholder: "\u8BF7\u8F93\u5165" })] }));
|
|
50
|
+
};
|
|
51
|
+
// 数字输入框
|
|
52
|
+
export const NumberField = ({ disabled = false, value, updateValue, isRange, }) => isRange ? (_jsx(MultipleNumber, { disabled: disabled, value: value, updateValue: updateValue })) : (_jsx(Input, { disabled: disabled, size: "full", value: value, onChange: (value) => {
|
|
53
|
+
if (isNaN(Number(value))) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
updateValue({ value });
|
|
57
|
+
} }));
|
|
58
|
+
// 多选下拉框
|
|
59
|
+
export const SelectMultipleField = (props) => {
|
|
60
|
+
const { optionName, value, updateValue, options, disabled = false } = props;
|
|
61
|
+
const { enumOptions } = useEnumContext();
|
|
62
|
+
let option = (enumOptions === null || enumOptions === void 0 ? void 0 : enumOptions[optionName]) || [];
|
|
63
|
+
if (!optionName && options) {
|
|
64
|
+
option = options;
|
|
65
|
+
}
|
|
66
|
+
return (_jsx(SelectMultiple, { disabled: disabled, size: "full", searchable: true, staging: false, matchButtonWidth: true, value: value, appearance: "button", options: option, onChange: (value) => {
|
|
67
|
+
updateValue({ value });
|
|
68
|
+
} }));
|
|
69
|
+
};
|
|
70
|
+
// 下拉单选
|
|
71
|
+
export const SelectField = ({ optionName, value, updateValue, disabled }) => {
|
|
72
|
+
const { enumOptions } = useEnumContext();
|
|
73
|
+
const option = (enumOptions === null || enumOptions === void 0 ? void 0 : enumOptions[optionName]) || [];
|
|
74
|
+
return (_jsx(Select, { disabled: disabled, size: "full", clearable: true, searchable: true,
|
|
75
|
+
// @ts-ignore 不存在的属性
|
|
76
|
+
staging: false, matchButtonWidth: true, value: value, appearance: "button", options: option, onChange: (value) => {
|
|
77
|
+
updateValue({ value });
|
|
78
|
+
}, button: () => {
|
|
79
|
+
var _a, _b;
|
|
80
|
+
return value ? (_jsx(Tooltip, { title: (_a = option === null || option === void 0 ? void 0 : option.find((i) => i.value === value)) === null || _a === void 0 ? void 0 : _a.text, children: _jsx("span", { children: ((_b = option === null || option === void 0 ? void 0 : option.find((i) => i.value === value)) === null || _b === void 0 ? void 0 : _b.text) || value }) })) : (_jsx("span", { className: "wedatea2td-text-weak", children: "\u8BF7\u9009\u62E9" }));
|
|
81
|
+
} }));
|
|
82
|
+
};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Input, Select } from 'tea-component';
|
|
4
|
+
import { DatePickerField, TimePickerField, InputField, NumberField, SelectMultipleField, SelectField, SelectSearch, } from './Fields';
|
|
5
|
+
import { fieldCalculations } from './filterFieldsGenerate';
|
|
6
|
+
import { InputAdornment } from './InputAdornment';
|
|
7
|
+
import { usePlatform } from '../../../../utils/platform';
|
|
8
|
+
import { useConfig } from '../../../../utils/config-context';
|
|
9
|
+
// 计算方式下拉选框
|
|
10
|
+
const CalculationSelect = ({ arg, cb, isDate = false }) => {
|
|
11
|
+
const { classPrefix } = useConfig();
|
|
12
|
+
const isH5 = usePlatform() === 'h5'; // 响应式判定
|
|
13
|
+
const [value, setValue] = useState(arg.value);
|
|
14
|
+
const calculation = (value) => {
|
|
15
|
+
setValue(value);
|
|
16
|
+
const fieldCalculation = { ...arg };
|
|
17
|
+
fieldCalculation.value = value;
|
|
18
|
+
const fieldValue = {
|
|
19
|
+
fieldCalculation,
|
|
20
|
+
isRange: value === 'scope',
|
|
21
|
+
};
|
|
22
|
+
if (value === 'scope' || arg.value === 'scope') {
|
|
23
|
+
fieldValue.value = null;
|
|
24
|
+
}
|
|
25
|
+
cb(fieldValue);
|
|
26
|
+
};
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
setValue(arg.value);
|
|
29
|
+
}, [arg]);
|
|
30
|
+
const options = isDate
|
|
31
|
+
? fieldCalculations[arg.type].filter((i) => i.value !== 'neq')
|
|
32
|
+
: fieldCalculations[arg.type];
|
|
33
|
+
return isH5 ? (_jsx("div", { className: `${classPrefix}-space`, children: options.map((i) => (_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx("div", { className: `${classPrefix}-table-wrap-filter__tag ${i.value === value ? 'is-selected ' : ''}`, onClick: () => {
|
|
34
|
+
calculation(i.value);
|
|
35
|
+
}, children: i.text }) }, i.value))) })) : (_jsx(Select, { size: "auto", options: options, value: value, onChange: (value) => calculation(value) }));
|
|
36
|
+
};
|
|
37
|
+
// 筛选项
|
|
38
|
+
export const FilterFieldItem = ({ updateFilterData, ...filterFieldItemConfig }) => {
|
|
39
|
+
const [disabled, setDisabled] = useState(false);
|
|
40
|
+
const { filterType, isRange, label, options, fieldCalculation, value } = filterFieldItemConfig;
|
|
41
|
+
const updateFilterConfig = (value) => {
|
|
42
|
+
const lastFilterConfig = { ...filterFieldItemConfig, ...value };
|
|
43
|
+
updateFilterData(lastFilterConfig);
|
|
44
|
+
};
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (['$empty', '$nempty'].includes(fieldCalculation.value)) {
|
|
47
|
+
setDisabled(true);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
setDisabled(false);
|
|
51
|
+
}
|
|
52
|
+
}, [fieldCalculation.value]);
|
|
53
|
+
const renderFieldItem = () => {
|
|
54
|
+
switch (filterType) {
|
|
55
|
+
case 'datetime':
|
|
56
|
+
return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig, isDate: true }), children: _jsx(DatePickerField, { disabled: disabled, showTime: true, isRange: isRange, updateValue: updateFilterConfig, value: value }) }));
|
|
57
|
+
case 'date':
|
|
58
|
+
return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig, isDate: true }), children: _jsx(DatePickerField, { disabled: disabled, value: value, isRange: isRange, updateValue: updateFilterConfig }) }));
|
|
59
|
+
case 'time':
|
|
60
|
+
return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig, isDate: true }), children: _jsx(TimePickerField, { disabled: disabled, value: value, isRange: isRange, updateValue: updateFilterConfig }) }));
|
|
61
|
+
case 'string':
|
|
62
|
+
return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(InputField, { updateValue: updateFilterConfig, value: value, disabled: disabled }) }));
|
|
63
|
+
case 'number':
|
|
64
|
+
return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(NumberField, { updateValue: updateFilterConfig, value: value, isRange: isRange, disabled: disabled }) }));
|
|
65
|
+
case 'boolean':
|
|
66
|
+
return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(SelectMultipleField, { options: options || [], updateValue: updateFilterConfig, value: value, disabled: disabled }) }));
|
|
67
|
+
case 'x-enumObj':
|
|
68
|
+
return (_jsx(SelectMultipleField
|
|
69
|
+
// @ts-ignore 不存在的属性
|
|
70
|
+
, {
|
|
71
|
+
// @ts-ignore 不存在的属性
|
|
72
|
+
options: options || [], updateValue: updateFilterConfig, value: value, disabled: disabled }));
|
|
73
|
+
case 'x-enum':
|
|
74
|
+
if (filterFieldItemConfig.xMultiSelect) {
|
|
75
|
+
return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(SelectMultipleField, { optionName: filterFieldItemConfig.xOptionName, updateValue: updateFilterConfig, value: value, disabled: disabled }) }));
|
|
76
|
+
}
|
|
77
|
+
return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(SelectField, { optionName: filterFieldItemConfig.xOptionName, updateValue: updateFilterConfig, value: value, disabled: disabled }) }));
|
|
78
|
+
case 'father-son':
|
|
79
|
+
case 'related':
|
|
80
|
+
return (_jsx(InputAdornment, { label: label, before: _jsx(CalculationSelect, { arg: fieldCalculation, cb: updateFilterConfig }), children: _jsx(SelectSearch, { fields: filterFieldItemConfig.fields, format: filterType, childDbName: filterFieldItemConfig.childDbName, value: value, updateValue: updateFilterConfig, dbName: filterFieldItemConfig.dbName, disabled: disabled }) }));
|
|
81
|
+
default:
|
|
82
|
+
return (_jsx(Input, { size: "full", disabled: true, defaultValue: '该类型暂不支持表单筛选器' }));
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
return renderFieldItem();
|
|
86
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Tooltip } from 'tea-component';
|
|
3
|
+
import { useConfig } from '../../../../utils/config-context';
|
|
4
|
+
import { usePlatform } from '../../../../utils/platform';
|
|
5
|
+
export const InputAdornment = ({ label, before, children }) => {
|
|
6
|
+
const { classPrefix } = useConfig();
|
|
7
|
+
const isH5 = usePlatform() === 'h5'; // 响应式判定
|
|
8
|
+
return isH5 ? (_jsxs("div", { children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__label`, children: label }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__controls`, children: before }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__form-wrap ${classPrefix}-table-wrap-filter-item__content`, children: children })] })) : (_jsxs("div", { className: `${classPrefix}-table-wrap-filter-item`, children: [_jsxs("div", { className: `${classPrefix}-table-wrap-filter-item__label`, children: [_jsx("label", { htmlFor: label, children: _jsx(Tooltip, { title: label, children: label }) }), _jsx("span", { className: `${classPrefix}-table-wrap-filter-item__label-extra`, children: before })] }), _jsx("div", { className: `${classPrefix}-table-wrap-filter-item__content`, children: children })] }));
|
|
9
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useMemo } from 'react';
|
|
3
|
+
import { Select, LoadingTip } from 'tea-component';
|
|
4
|
+
import { useChooseList, getDataBaseInfo } from '../../hooks/useChooseList';
|
|
5
|
+
import { DataSource } from '../../../../utils/datasource';
|
|
6
|
+
// 搜索下拉
|
|
7
|
+
export const SelectSearch = ({ value, updateValue, format, childDbName, dbName, fields, disabled = false, }) => {
|
|
8
|
+
// 每次请求数据个数
|
|
9
|
+
const defaultSize = 50;
|
|
10
|
+
const defaultPage = 1;
|
|
11
|
+
const dataSourceAPI = useMemo(() => new DataSource(dbName), [dbName]); // datasource 方法-模型
|
|
12
|
+
const dataBase = useMemo(() => getDataBaseInfo(fields, format, childDbName), [childDbName, fields, format]);
|
|
13
|
+
const primaryColumn = dataBase === null || dataBase === void 0 ? void 0 : dataBase.primaryColumn;
|
|
14
|
+
const [query, setQuery] = useState({
|
|
15
|
+
pageNo: defaultPage,
|
|
16
|
+
pageSize: defaultSize,
|
|
17
|
+
where: [],
|
|
18
|
+
});
|
|
19
|
+
const { result, total, isValidating, empty } = useChooseList({
|
|
20
|
+
dataSourceAPI,
|
|
21
|
+
childDbName,
|
|
22
|
+
queryParams: query,
|
|
23
|
+
primaryColumn: primaryColumn,
|
|
24
|
+
});
|
|
25
|
+
return (_jsx(Select, { disabled: disabled, size: "full", clearable: true, searchable: true, matchButtonWidth: true, appearance: "button", autoClearSearchValue: true, options: result, value: value, bottomTips: isValidating ? _jsx(LoadingTip, {}) : '', onChange: (value) => {
|
|
26
|
+
updateValue({ value });
|
|
27
|
+
}, onOpen: () => {
|
|
28
|
+
empty();
|
|
29
|
+
setQuery({ ...query, pageNo: defaultPage, where: [] });
|
|
30
|
+
}, onScrollBottom: () => {
|
|
31
|
+
if (!isValidating && result.length < total) {
|
|
32
|
+
setQuery((query) => ({
|
|
33
|
+
...query,
|
|
34
|
+
pageNo: query.pageNo + defaultPage,
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
}, onSearchValueChange: (value) => {
|
|
38
|
+
const where = (value === null || value === void 0 ? void 0 : value.length)
|
|
39
|
+
? [{ key: primaryColumn, val: `${value}`, rel: 'search' }]
|
|
40
|
+
: [];
|
|
41
|
+
empty();
|
|
42
|
+
setQuery({ ...query, pageNo: defaultPage, where });
|
|
43
|
+
} }));
|
|
44
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// 计算方式
|
|
2
|
+
export const fieldCalculations = {
|
|
3
|
+
number: [
|
|
4
|
+
{ text: '范围', value: 'scope' },
|
|
5
|
+
{ text: '等于', value: 'eq' },
|
|
6
|
+
{ text: '不等于', value: 'neq' },
|
|
7
|
+
{ text: '大于', value: 'gt' },
|
|
8
|
+
{ text: '小于', value: 'lt' },
|
|
9
|
+
{ text: '大于等于', value: 'gte' },
|
|
10
|
+
{ text: '小于等于', value: 'lte' },
|
|
11
|
+
{ text: '为空', value: '$empty' },
|
|
12
|
+
{ text: '不为空', value: '$nempty' },
|
|
13
|
+
],
|
|
14
|
+
string: [
|
|
15
|
+
{ text: '包含', value: 'search' },
|
|
16
|
+
{ text: '不包含', value: 'exclude' },
|
|
17
|
+
{ text: '等于', value: 'eq' },
|
|
18
|
+
{ text: '不等于', value: 'neq' },
|
|
19
|
+
{ text: '开头是', value: 'startWith' },
|
|
20
|
+
{ text: '为空', value: '$empty' },
|
|
21
|
+
{ text: '不为空', value: '$nempty' },
|
|
22
|
+
],
|
|
23
|
+
radio: [
|
|
24
|
+
{ text: '等于', value: 'eq' },
|
|
25
|
+
{ text: '不等于', value: 'neq' },
|
|
26
|
+
{ text: '为空', value: '$empty' },
|
|
27
|
+
{ text: '不为空', value: '$nempty' },
|
|
28
|
+
],
|
|
29
|
+
checkbox: [
|
|
30
|
+
{ text: '等于任意一个', value: 'in' },
|
|
31
|
+
{ text: '不等于任意一个', value: 'nin' },
|
|
32
|
+
{ text: '为空', value: '$empty' },
|
|
33
|
+
{ text: '不为空', value: '$nempty' },
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* 生成筛选配置
|
|
38
|
+
* 1、过滤不支持搜索的字段
|
|
39
|
+
* 2、生成配置
|
|
40
|
+
* 3、枚举/数字需要特殊处理
|
|
41
|
+
* { filterType: 'datetime' | 'date' | 'time' | 'string' |'number' | 'x-enumObj' , isRange: boolean }
|
|
42
|
+
*/
|
|
43
|
+
export const filterFieldsGenerate = (fields) => {
|
|
44
|
+
var _a;
|
|
45
|
+
return (_a = fields === null || fields === void 0 ? void 0 : fields.filter((field) => {
|
|
46
|
+
// 不支持搜索的类型
|
|
47
|
+
if (!field)
|
|
48
|
+
return false;
|
|
49
|
+
if (((field === null || field === void 0 ? void 0 : field.type) === 'array' && (field === null || field === void 0 ? void 0 : field.format) === '') ||
|
|
50
|
+
((field === null || field === void 0 ? void 0 : field.format) === 'father-son' && (field === null || field === void 0 ? void 0 : field.default) === '') ||
|
|
51
|
+
(field === null || field === void 0 ? void 0 : field.type) === 'object' ||
|
|
52
|
+
(field === null || field === void 0 ? void 0 : field.format) === 'x-file' ||
|
|
53
|
+
(field === null || field === void 0 ? void 0 : field.format) === 'x-image' ||
|
|
54
|
+
(field === null || field === void 0 ? void 0 : field.format) === 'x-rtf')
|
|
55
|
+
return false;
|
|
56
|
+
return true;
|
|
57
|
+
})) === null || _a === void 0 ? void 0 : _a.map((i) => {
|
|
58
|
+
var _a, _b;
|
|
59
|
+
// 生成计算方式
|
|
60
|
+
const fieldCalculation = ['string', 'number'].includes(i.type)
|
|
61
|
+
? { type: i.type, value: fieldCalculations[i.type][0].value }
|
|
62
|
+
: {};
|
|
63
|
+
const filterFieldItemConfig = {
|
|
64
|
+
id: i['x-id'],
|
|
65
|
+
name: i.name,
|
|
66
|
+
value: '',
|
|
67
|
+
isRange: true,
|
|
68
|
+
filterType: i.type,
|
|
69
|
+
label: i.title,
|
|
70
|
+
fieldCalculation,
|
|
71
|
+
options: [],
|
|
72
|
+
};
|
|
73
|
+
if (i.type === 'number' &&
|
|
74
|
+
['time', 'date', 'datetime'].includes(i.format)) {
|
|
75
|
+
filterFieldItemConfig.filterType = i.format;
|
|
76
|
+
}
|
|
77
|
+
if (i.type === 'boolean') {
|
|
78
|
+
filterFieldItemConfig.filterType = i.type;
|
|
79
|
+
filterFieldItemConfig.options = [
|
|
80
|
+
{ value: true, text: '是' },
|
|
81
|
+
{ value: false, text: '否' },
|
|
82
|
+
{ value: null, text: '空' },
|
|
83
|
+
];
|
|
84
|
+
filterFieldItemConfig.fieldCalculation.type = 'checkbox';
|
|
85
|
+
filterFieldItemConfig.fieldCalculation.value = 'in';
|
|
86
|
+
}
|
|
87
|
+
if ((_a = i['x-enumObj']) === null || _a === void 0 ? void 0 : _a.length) {
|
|
88
|
+
filterFieldItemConfig.filterType = 'x-enumObj';
|
|
89
|
+
filterFieldItemConfig.options = i['x-enumObj'].map((enumItem) => ({
|
|
90
|
+
value: enumItem === null || enumItem === void 0 ? void 0 : enumItem.value,
|
|
91
|
+
text: enumItem === null || enumItem === void 0 ? void 0 : enumItem.label,
|
|
92
|
+
}));
|
|
93
|
+
filterFieldItemConfig.options.push({ value: null, text: '空' });
|
|
94
|
+
}
|
|
95
|
+
if (i.format === 'x-enum') {
|
|
96
|
+
filterFieldItemConfig.fieldCalculation.value = 'eq';
|
|
97
|
+
filterFieldItemConfig.filterType = i.format;
|
|
98
|
+
filterFieldItemConfig.xMultiSelect = i['x-multi-select'];
|
|
99
|
+
filterFieldItemConfig.xOptionName = i['x-option-name'];
|
|
100
|
+
filterFieldItemConfig.fieldCalculation.type =
|
|
101
|
+
filterFieldItemConfig.xMultiSelect ? 'checkbox' : 'radio';
|
|
102
|
+
filterFieldItemConfig.fieldCalculation.value =
|
|
103
|
+
filterFieldItemConfig.xMultiSelect ? 'in' : 'eq';
|
|
104
|
+
}
|
|
105
|
+
if (i.format === 'father-son' || i.format === 'related') {
|
|
106
|
+
filterFieldItemConfig.filterType = i.format;
|
|
107
|
+
filterFieldItemConfig.childDbName = (_b = i['x-parent']) === null || _b === void 0 ? void 0 : _b.parentDataSourceName;
|
|
108
|
+
filterFieldItemConfig.fieldCalculation.type = 'radio';
|
|
109
|
+
filterFieldItemConfig.fieldCalculation.value = 'eq';
|
|
110
|
+
}
|
|
111
|
+
return filterFieldItemConfig;
|
|
112
|
+
});
|
|
113
|
+
};
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Row, Col, ConfigProvider, Drawer } from 'tea-component';
|
|
4
|
+
import { formatDateToNumber, dateCalculation } from '../../../../utils/date';
|
|
5
|
+
import isObjectEqual from '../../../../utils/isObjectEqual';
|
|
6
|
+
import { useConfig } from '../../../../utils/config-context';
|
|
7
|
+
import { FilterFieldItem } from './FilterFieldItem';
|
|
8
|
+
import { filterFieldsGenerate } from './filterFieldsGenerate';
|
|
9
|
+
import { WdButton } from '../../../wd-button';
|
|
10
|
+
import { usePlatform } from '../../../../utils/platform';
|
|
11
|
+
// 筛选表单
|
|
12
|
+
export const FilterFieldsPanel = ({ filterFields, fetchData, openMobileFilter, setOpenMobileFilter, }) => {
|
|
13
|
+
const { classPrefix } = useConfig();
|
|
14
|
+
const isH5 = usePlatform() === 'h5'; // 响应式判定
|
|
15
|
+
const [collapse, setCollapse] = useState(true);
|
|
16
|
+
const [initFilterData, setInitFilterData] = useState([]);
|
|
17
|
+
const [filterData, setFilterData] = useState([]);
|
|
18
|
+
const updateFilterData = (filterFieldItemConfig) => {
|
|
19
|
+
const newData = filterData.map((i) => i.id === filterFieldItemConfig.id ? filterFieldItemConfig : i);
|
|
20
|
+
setFilterData(newData);
|
|
21
|
+
};
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const result = filterFieldsGenerate(filterFields);
|
|
24
|
+
// 筛选字段改变,重新初始化筛选面板
|
|
25
|
+
if (!isObjectEqual(result, initFilterData)) {
|
|
26
|
+
const initFilterData = JSON.parse(JSON.stringify(result));
|
|
27
|
+
setInitFilterData(initFilterData);
|
|
28
|
+
setFilterData(initFilterData);
|
|
29
|
+
}
|
|
30
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
31
|
+
}, [filterFields]);
|
|
32
|
+
const searchHandle = () => {
|
|
33
|
+
let searchValues = [];
|
|
34
|
+
const filterValues = filterData.filter((i) => {
|
|
35
|
+
if (Array.isArray(i.value) &&
|
|
36
|
+
i.filterType === 'number' &&
|
|
37
|
+
i.fieldCalculation.value === 'scope') {
|
|
38
|
+
// 若筛选字段为number类型,且为范围选择时,只要有一个值则返回
|
|
39
|
+
return i.value[0] || i.value[1];
|
|
40
|
+
}
|
|
41
|
+
return !!(i.value && i.value.length);
|
|
42
|
+
});
|
|
43
|
+
// 为空不为空筛选条件
|
|
44
|
+
filterData.forEach((i) => {
|
|
45
|
+
var _a, _b;
|
|
46
|
+
if (['$empty', '$nempty'].includes((_a = i === null || i === void 0 ? void 0 : i.fieldCalculation) === null || _a === void 0 ? void 0 : _a.value)) {
|
|
47
|
+
const $and = searchValues.find((i) => i.$and);
|
|
48
|
+
if ($and) {
|
|
49
|
+
searchValues = searchValues.map((n) => {
|
|
50
|
+
var _a;
|
|
51
|
+
if (n.$and) {
|
|
52
|
+
return {
|
|
53
|
+
$and: [
|
|
54
|
+
...n.$and,
|
|
55
|
+
{ [i.name]: { [(_a = i === null || i === void 0 ? void 0 : i.fieldCalculation) === null || _a === void 0 ? void 0 : _a.value]: '1' } },
|
|
56
|
+
],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return n;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
searchValues.push({
|
|
64
|
+
$and: [{ [i.name]: { [(_b = i === null || i === void 0 ? void 0 : i.fieldCalculation) === null || _b === void 0 ? void 0 : _b.value]: '1' } }],
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
// 值筛选条件
|
|
70
|
+
filterValues.forEach((i) => {
|
|
71
|
+
switch (i.fieldCalculation.value) {
|
|
72
|
+
case 'scope':
|
|
73
|
+
if (i.filterType === 'number') {
|
|
74
|
+
if (i.value[0]) {
|
|
75
|
+
searchValues.push({
|
|
76
|
+
key: i.name,
|
|
77
|
+
val: Number(i.value[0]),
|
|
78
|
+
rel: 'gte',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (i.value[1]) {
|
|
82
|
+
searchValues.push({
|
|
83
|
+
key: i.name,
|
|
84
|
+
val: Number(i.value[1]),
|
|
85
|
+
rel: 'lte',
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
searchValues.push({
|
|
91
|
+
key: i.name,
|
|
92
|
+
val: formatDateToNumber(i.filterType, i.value[0]),
|
|
93
|
+
rel: 'gte',
|
|
94
|
+
});
|
|
95
|
+
searchValues.push({
|
|
96
|
+
key: i.name,
|
|
97
|
+
// @ts-ignore 兼容字符串和数字
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
99
|
+
val: formatDateToNumber(i.filterType, i.value[1]) + 999,
|
|
100
|
+
rel: 'lte',
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
case 'exclude':
|
|
105
|
+
searchValues.push({
|
|
106
|
+
key: i.name,
|
|
107
|
+
val: `^((?!${i.value}).)*$`,
|
|
108
|
+
rel: 'regex',
|
|
109
|
+
});
|
|
110
|
+
break;
|
|
111
|
+
case 'startWith':
|
|
112
|
+
searchValues.push({ key: i.name, val: `^${i.value}`, rel: 'regex' });
|
|
113
|
+
break;
|
|
114
|
+
default: {
|
|
115
|
+
const searchItem = {
|
|
116
|
+
key: i.name,
|
|
117
|
+
val: i.value,
|
|
118
|
+
rel: i.fieldCalculation.value,
|
|
119
|
+
};
|
|
120
|
+
if (i.filterType === 'number') {
|
|
121
|
+
searchItem.val = Number(i.value);
|
|
122
|
+
searchValues.push(searchItem);
|
|
123
|
+
}
|
|
124
|
+
else if (['date', 'datetime', 'time'].includes(i.filterType)) {
|
|
125
|
+
searchItem.val = formatDateToNumber(i.filterType, i.value);
|
|
126
|
+
dateCalculation(searchItem, i.filterType).forEach((i) => {
|
|
127
|
+
searchValues.push(i);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
searchValues.push(searchItem);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
fetchData(searchValues);
|
|
137
|
+
};
|
|
138
|
+
const num = 2;
|
|
139
|
+
const maxlength = 3;
|
|
140
|
+
return (_jsxs(ConfigProvider, { classPrefix: "wedatea2td", children: [_jsx(Drawer, { className: `${classPrefix}-table-mobile-filter-drawer ${classPrefix}-table-wrap-filter ${classPrefix}-h5-table-wrap-filter`, title: "\u7B5B\u9009\u5668", visible: isH5 && openMobileFilter, onClose: () => {
|
|
141
|
+
setOpenMobileFilter(false);
|
|
142
|
+
}, children: _jsxs("div", { children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__body`, children: filterData === null || filterData === void 0 ? void 0 : filterData.map((i) => (_jsx(FilterFieldItem, { ...i, updateFilterData: updateFilterData, fields: filterFields }, i.id))) }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__footer`, children: _jsxs("div", { className: `${classPrefix}-table-wrap-filter__btn`, children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__btn-item`, children: _jsx(WdButton, { theme: "primary", variant: "outline", size: "lg", text: "\u91CD\u7F6E", events: {
|
|
143
|
+
tap: () => {
|
|
144
|
+
setFilterData(initFilterData);
|
|
145
|
+
fetchData();
|
|
146
|
+
setOpenMobileFilter(false);
|
|
147
|
+
},
|
|
148
|
+
} }) }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__btn-item`, children: _jsx(WdButton, { theme: "primary", size: "lg", text: "\u786E\u5B9A", events: {
|
|
149
|
+
tap: () => {
|
|
150
|
+
searchHandle();
|
|
151
|
+
setOpenMobileFilter(false);
|
|
152
|
+
},
|
|
153
|
+
} }) })] }) })] }) }), !isH5 && !!filterData.length && (_jsx("div", { className: `${classPrefix}-table-wrap-filter`, children: _jsxs(Row, { gap: 20, verticalAlign: 'bottom', style: { justifyContent: 'space-between' }, children: [_jsx(_Fragment, { children: filterData === null || filterData === void 0 ? void 0 : filterData.map((i, index) => (_jsx(Col, { span: 6, style: {
|
|
154
|
+
display: `${index > num && collapse ? 'none' : 'block'}`,
|
|
155
|
+
}, children: _jsx(FilterFieldItem, { ...i, updateFilterData: updateFilterData, fields: filterFields }) }, i.id))) }), _jsx(Col, { span: 24, style: { flex: '1', textAlign: 'right' }, children: _jsxs("div", { className: `${classPrefix}-space`, children: [_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { size: "md", theme: "secondary", text: "\u91CD\u7F6E", events: {
|
|
156
|
+
tap: () => {
|
|
157
|
+
setFilterData(initFilterData);
|
|
158
|
+
fetchData();
|
|
159
|
+
},
|
|
160
|
+
} }) }), _jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { size: "md", theme: "primary", text: "\u67E5\u8BE2", events: {
|
|
161
|
+
tap: () => {
|
|
162
|
+
searchHandle();
|
|
163
|
+
},
|
|
164
|
+
} }) }), filterData.length > maxlength && (_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { icon: collapse ? 'td:chevron-down' : 'td:chevron-up', iconType: "icon-only", theme: "secondary", variant: "text", size: "md", events: {
|
|
165
|
+
tap: () => {
|
|
166
|
+
setCollapse(!collapse);
|
|
167
|
+
},
|
|
168
|
+
} }) }))] }) }, "search-button")] }) }))] }));
|
|
169
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ImportFileModalByApi as ImportFileModalByApiFromTable } from '../../../table/ImportFileModalByApi';
|
|
3
|
+
import { alertErrorMessage } from '../../../../utils/platform';
|
|
4
|
+
import { ConfigProvider } from 'tea-component';
|
|
5
|
+
/**
|
|
6
|
+
* 后端导入弹窗
|
|
7
|
+
*/
|
|
8
|
+
export const ImportFileModal = ({ fields, isImportFileModalByApiVisible, datasourceTitle, dbName, setIsImportFileModalByApiVisible, setIsInOrOutRecordModalVisible, refresh, }) => {
|
|
9
|
+
var _a;
|
|
10
|
+
const supportFields = (_a = fields
|
|
11
|
+
.filter((field) => {
|
|
12
|
+
// 不支持上传的类型
|
|
13
|
+
if (!field)
|
|
14
|
+
return false;
|
|
15
|
+
if (field['x-system'])
|
|
16
|
+
return false;
|
|
17
|
+
// 计算公式不支持
|
|
18
|
+
if (field['format'] === 'function')
|
|
19
|
+
return false;
|
|
20
|
+
// 关联模型的字段不支持
|
|
21
|
+
if ((field === null || field === void 0 ? void 0 : field['x-viewType']) === 'RELATION_VIEW')
|
|
22
|
+
return false;
|
|
23
|
+
return true;
|
|
24
|
+
})) === null || _a === void 0 ? void 0 : _a.sort((a, b) => (a === null || a === void 0 ? void 0 : a['x-index']) - (b === null || b === void 0 ? void 0 : b['x-index']));
|
|
25
|
+
return (_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: isImportFileModalByApiVisible && (_jsx(ImportFileModalByApiFromTable, { fields: supportFields, visible: isImportFileModalByApiVisible, datasourceTitle: datasourceTitle, dbName: dbName, onCancel: () => {
|
|
26
|
+
setIsImportFileModalByApiVisible(false);
|
|
27
|
+
}, handleInOrOutRecordModealVisible: setIsInOrOutRecordModalVisible, refresh: refresh })) }));
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* 后端表格导入方法
|
|
31
|
+
*/
|
|
32
|
+
export const importHandleByApi = ({ isModel, isH5, setIsImportFileModalByApiVisible, }) => {
|
|
33
|
+
if (!isModel) {
|
|
34
|
+
return alertErrorMessage({
|
|
35
|
+
message: '当前表格组件绑定了APIs,暂不支持进行数据导入',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (isH5) {
|
|
39
|
+
return alertErrorMessage({
|
|
40
|
+
message: '移动端暂不支持进行数据导入',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
setIsImportFileModalByApiVisible(true);
|
|
44
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { InOrOutRecordModeal as InOrOutRecordModalComp } from '../../table/InOrOutRecordModeal';
|
|
3
|
+
import { ConfigProvider } from 'tea-component';
|
|
4
|
+
/*
|
|
5
|
+
导入导出记录弹窗
|
|
6
|
+
*/
|
|
7
|
+
export const InOrOutRecordModal = ({ isInOrOutRecordModalVisible, dbName, setIsImportFileModalByApiVisible, setIsExportFileModalByApiVisible, setIsInOrOutRecordModalVisible, }) => {
|
|
8
|
+
return (_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: isInOrOutRecordModalVisible && (_jsx(InOrOutRecordModalComp, { visible: isInOrOutRecordModalVisible, dbName: dbName, onCancel: () => {
|
|
9
|
+
isInOrOutRecordModalVisible === 'import'
|
|
10
|
+
? setIsImportFileModalByApiVisible(true)
|
|
11
|
+
: setIsExportFileModalByApiVisible(true);
|
|
12
|
+
setIsInOrOutRecordModalVisible(false);
|
|
13
|
+
} })) }));
|
|
14
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useConfig } from '../../../../utils/config-context';
|
|
3
|
+
import WdIcon from '../../../wd-icon';
|
|
4
|
+
const defaultTotal = 0;
|
|
5
|
+
export const Pagination = ({ total = defaultTotal, pageIndex, pageSize, onPagingChange, }) => {
|
|
6
|
+
const pagingChangeHandle = () => {
|
|
7
|
+
onPagingChange();
|
|
8
|
+
};
|
|
9
|
+
const { classPrefix } = useConfig();
|
|
10
|
+
return (_jsxs("div", { className: `${classPrefix}-pagination`, children: [_jsx("div", { className: `${classPrefix}-pagination__state`, children: _jsxs("span", { className: `${classPrefix}-pagination__text`, children: ["\u5171 ", _jsx("strong", { children: total }), " \u6761"] }) }), _jsxs("div", { className: `${classPrefix}-pagination__operate`, children: [_jsx("span", { className: `${classPrefix}-pagination__btn is-disabled`, children: _jsx(WdIcon, { name: "td:chevron-left-double" }) }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: _jsx(WdIcon, { name: "td:chevron-left" }) }), _jsx("span", { className: `${classPrefix}-pagination__btn is-selected`, children: pageIndex }), _jsx("span", { className: `${classPrefix}-pagination__btn `, onClick: pagingChangeHandle, children: "2" }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: "3" }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: "4" }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: "5" }), _jsx("span", { className: `${classPrefix}-pagination__btn ${classPrefix}-pagination__btn--borderless `, children: _jsx(WdIcon, { name: "td:ellipsis" }) }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: "90" }), _jsx("span", { className: `${classPrefix}-pagination__btn `, children: _jsx(WdIcon, { name: "td:chevron-right" }) }), _jsx("span", { className: `${classPrefix}-pagination__btn is-disabled`, children: _jsx(WdIcon, { name: "td:chevron-right-double" }) }), _jsx("div", { className: `${classPrefix}-pagination__manualinput`, children: _jsxs("span", { className: `${classPrefix}-pagination__totalpage`, children: [pageSize, "/ 100 \u9875"] }) })] })] }));
|
|
11
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, TagSearchBox, useClassNames, ConfigProvider, } from 'tea-component';
|
|
3
|
+
import { alertErrorMessage } from '../../../../utils/platform';
|
|
4
|
+
import { getSearchAttributes, filterCustomFields } from '../FieldRender';
|
|
5
|
+
export const SearchBox = ({ searchValues, fields, columnSets, fetchData, refresh, }) => {
|
|
6
|
+
const { Margin } = useClassNames();
|
|
7
|
+
// 搜索框字段按列管理过滤
|
|
8
|
+
const searchFields = filterCustomFields({ fields, columnSets });
|
|
9
|
+
return (_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: _jsxs("div", { className: "modal-table__search", style: { width: '100%' }, children: [_jsx(TagSearchBox, { className: "modal-table__search-input", hideHelp: true, minWidth: 400, tips: (searchValues === null || searchValues === void 0 ? void 0 : searchValues.length) ? '' : '搜索', attributesSelectTips: "\u9009\u62E9\u8FDB\u884C\u641C\u7D22\u7684\u5B57\u6BB5", attributes: getSearchAttributes(searchFields),
|
|
10
|
+
// 清空查询
|
|
11
|
+
onClearButtonClick: () => {
|
|
12
|
+
fetchData({ searchValues: [], pageIndex: 1 });
|
|
13
|
+
}, onChange: (tags) => {
|
|
14
|
+
const searchValues = tags
|
|
15
|
+
.map((item) => {
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
// 没有选择 key
|
|
18
|
+
if (!item.attr) {
|
|
19
|
+
alertErrorMessage({ message: '请选择搜索关键字' });
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const { key } = item.attr;
|
|
23
|
+
let val = ((_a = item.values[0]) === null || _a === void 0 ? void 0 : _a.key) === undefined
|
|
24
|
+
? (_b = item.values[0]) === null || _b === void 0 ? void 0 : _b.name
|
|
25
|
+
: (_c = item.values[0]) === null || _c === void 0 ? void 0 : _c.key;
|
|
26
|
+
let rel = 'search';
|
|
27
|
+
// 过滤无效搜索值
|
|
28
|
+
if (val === undefined) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
// 字符串转换成数字
|
|
32
|
+
if (item.attr.fieldType === 'number') {
|
|
33
|
+
val = Number(val);
|
|
34
|
+
}
|
|
35
|
+
// 枚举-旧/数字/布尔用 eq,新枚举 TODO
|
|
36
|
+
if (['number', 'boolean'].includes(item.attr.fieldType) ||
|
|
37
|
+
item.attr.format === 'x-enum') {
|
|
38
|
+
rel = 'eq';
|
|
39
|
+
}
|
|
40
|
+
return { key, val, rel };
|
|
41
|
+
})
|
|
42
|
+
.filter((item) => item);
|
|
43
|
+
fetchData({ searchValues });
|
|
44
|
+
} }), _jsx(Button, { className: Margin.Left['2n'], icon: "refresh", title: "\u5237\u65B0", onClick: refresh })] }) }));
|
|
45
|
+
};
|