@web-utils/form-ui 1.0.0-beta7 → 1.0.0-beta70
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/address-input/index.mjs +2 -0
- package/address-input/style.css +1 -0
- package/affix/index.mjs +49 -0
- package/affix/style.css +1 -0
- package/api/index.d.ts +66 -0
- package/api/index.mjs +42 -0
- package/awesome-button/index.mjs +49 -0
- package/base.css +1 -1
- package/capsule-tab/index.mjs +27 -0
- package/capsule-tab/style.css +1 -0
- package/card/index.mjs +89 -0
- package/card/style.css +1 -0
- package/chunks/3gUkQF12.mjs +207 -0
- package/chunks/49634Q2N2.mjs +936 -0
- package/chunks/5itVLmv82.mjs +108 -0
- package/chunks/6kdakei5.mjs +644 -0
- package/chunks/77cFhiAz.mjs +13 -0
- package/chunks/7Cv9Cq-02.mjs +1354 -0
- package/chunks/7JVbVOff2.mjs +46 -0
- package/chunks/9rQitPz7.mjs +590 -0
- package/chunks/B1ATN2my.mjs +26 -0
- package/chunks/B1GA44yT2.mjs +42 -0
- package/chunks/B31ub5xS.mjs +46 -0
- package/chunks/B3d4fdGH.mjs +17 -0
- package/chunks/B5voIv4_.mjs +194 -0
- package/chunks/B7O8aGqC2.mjs +58 -0
- package/chunks/B8wGY5Hs2.mjs +26 -0
- package/chunks/BBPczt0U.mjs +4 -0
- package/chunks/BBqq6o072.mjs +243 -0
- package/chunks/BCVhSMZN.mjs +1328 -0
- package/chunks/BDVLN2ly.mjs +105 -0
- package/chunks/BEysX5TF2.mjs +1038 -0
- package/chunks/BI-ZFlSw2.mjs +26 -0
- package/chunks/BIj6pa8Z.mjs +15 -0
- package/chunks/BJby9uHB2.mjs +233 -0
- package/chunks/BMTtnkb7.mjs +60 -0
- package/chunks/BPpMbPS8.mjs +63 -0
- package/chunks/BQNqBw8h2.mjs +27 -0
- package/chunks/BUAQybGW.mjs +230 -0
- package/chunks/BVIHqL6g.mjs +17 -0
- package/chunks/BVSQ6DfJ.mjs +17 -0
- package/chunks/BVuwiZGi.mjs +37 -0
- package/chunks/B__5L22p2.mjs +346 -0
- package/chunks/BaLjN8Ow.mjs +197 -0
- package/chunks/Baam4z-g.mjs +275 -0
- package/chunks/Bdeug17L.mjs +42 -0
- package/chunks/BeWNlclr.mjs +295 -0
- package/chunks/BecO0t0_2.mjs +2430 -0
- package/chunks/BffxPn8a.mjs +34 -0
- package/chunks/Bgw_3soo.mjs +35 -0
- package/chunks/BjCfQFUL.mjs +54 -0
- package/chunks/BjWs-r2V.mjs +25 -0
- package/chunks/BkEMJ725.mjs +214 -0
- package/chunks/BlB1fEo92.mjs +8 -0
- package/chunks/BoId6V9J.mjs +17 -0
- package/chunks/BrYtAPbN2.mjs +161 -0
- package/chunks/BsKwchVA.mjs +14 -0
- package/chunks/BsM0L7CS.mjs +132 -0
- package/chunks/BvbjlaN02.mjs +514 -0
- package/chunks/BvcK4D8A2.mjs +1800 -0
- package/chunks/BwYEpK-u.mjs +8 -0
- package/chunks/C1RsHtGI.mjs +40 -0
- package/chunks/C5f3Xfsc2.mjs +36 -0
- package/chunks/C7l9aZGE.mjs +577 -0
- package/chunks/CDqVJ7U3.mjs +449 -0
- package/chunks/CFvkR9Ze2.mjs +31 -0
- package/chunks/CGM03LI5.mjs +588 -0
- package/chunks/CIybFvu92.mjs +30 -0
- package/chunks/CPejK_GQ2.mjs +383 -0
- package/chunks/CQSTyCVP.mjs +6 -0
- package/chunks/CQxz8uUc.mjs +454 -0
- package/chunks/CR29QUwT2.mjs +28 -0
- package/chunks/CWvo-ucD.mjs +446 -0
- package/chunks/C_eGir-J.mjs +17 -0
- package/chunks/CaRunrOV2.mjs +5289 -0
- package/chunks/Calzy0Az.mjs +1275 -0
- package/chunks/CbbjpJFg2.mjs +26 -0
- package/chunks/CbgD7y-5.mjs +5 -0
- package/chunks/CbsGuLZz2.mjs +105 -0
- package/chunks/CcT5SsZk.mjs +48 -0
- package/chunks/CdBytH8S.mjs +266 -0
- package/chunks/Ch_zaHx9.mjs +89 -0
- package/chunks/CiFlMt6Z.mjs +41 -0
- package/chunks/CjjJimnU.mjs +20 -0
- package/chunks/Cjkq49252.mjs +60 -0
- package/chunks/CjmfMN1X2.mjs +34 -0
- package/chunks/CnCSm3LY2.mjs +4 -0
- package/chunks/CsLrkldT2.mjs +225 -0
- package/chunks/Csiz_xCa2.mjs +273 -0
- package/chunks/Ctd3_wOH2.mjs +6 -0
- package/chunks/Cu2A_1vk2.mjs +106 -0
- package/chunks/CuoF9V8s.mjs +3091 -0
- package/chunks/CwBq1JZV.mjs +250 -0
- package/chunks/CwWfRmD3.mjs +57 -0
- package/chunks/CwqeV7002.mjs +67 -0
- package/chunks/Cy8jqgun2.mjs +41 -0
- package/chunks/D-hj62se2.mjs +525 -0
- package/chunks/D3Xixh5v.mjs +5 -0
- package/chunks/D4oNQiIK.mjs +461 -0
- package/chunks/D6vTCC1Z2.mjs +110 -0
- package/chunks/D8r81QxD.mjs +732 -0
- package/chunks/D9qn1x3X2.mjs +87 -0
- package/chunks/DL0o_C092.mjs +1093 -0
- package/chunks/DLgn1tQG2.mjs +60 -0
- package/chunks/DNSPORak.mjs +479 -0
- package/chunks/DStwh2ne.mjs +281 -0
- package/chunks/DTUh8o0p2.mjs +145 -0
- package/chunks/DXiLi19u2.mjs +33 -0
- package/chunks/DZ0frL1U.mjs +69 -0
- package/chunks/D_qwjNah.mjs +1094 -0
- package/chunks/DbtlO6wD.mjs +52 -0
- package/chunks/DfJJr053.mjs +217 -0
- package/chunks/Dg9Q-Tbi2.mjs +299 -0
- package/chunks/DhQF2ZlD.mjs +182 -0
- package/chunks/Dls3rTka2.mjs +24 -0
- package/chunks/DnBzQ-xh.mjs +4 -0
- package/chunks/DoNfjRR1.mjs +68 -0
- package/chunks/DoOkwYtO.mjs +609 -0
- package/chunks/DrKq_frR.mjs +98 -0
- package/chunks/DsYXqJLZ.mjs +641 -0
- package/chunks/DsZznbt2.mjs +208 -0
- package/chunks/Dsd58O0g.mjs +25 -0
- package/chunks/Dtq1xYk8.mjs +47 -0
- package/chunks/DxL9oojv2.mjs +418 -0
- package/chunks/EA6hte7s2.mjs +49 -0
- package/chunks/FeuisuNY2.mjs +88 -0
- package/chunks/GEtlriHC.mjs +188 -0
- package/chunks/GsvG1yFW.mjs +1919 -0
- package/chunks/KGmxNbpi.mjs +21 -0
- package/chunks/Q2Mal3Qn2.mjs +439 -0
- package/chunks/T_jwNKBr.mjs +379 -0
- package/chunks/TtxSplBB.mjs +195 -0
- package/chunks/Wl17p0C82.mjs +94 -0
- package/chunks/Z0BPDZlb.mjs +66 -0
- package/chunks/akEzJ4kG.mjs +18 -0
- package/chunks/cMuWbLPt.mjs +196 -0
- package/chunks/e70aZf3z.mjs +64 -0
- package/chunks/gh52LMTG.mjs +12 -0
- package/chunks/h-Uhst9y.mjs +98 -0
- package/chunks/hgAOQY9a.mjs +406 -0
- package/chunks/lGc5ksPb.mjs +279 -0
- package/chunks/mD3gmiOy2.mjs +96 -0
- package/chunks/nLBvkerV2.mjs +621 -0
- package/chunks/pZQfJv282.mjs +4 -0
- package/chunks/qrHhuZXg.mjs +465 -0
- package/chunks/uqKZ4RIo.mjs +222 -0
- package/code-mirror-editor/index.mjs +99 -0
- package/code-mirror-editor/style.css +1 -0
- package/confirm-button/index.mjs +35 -0
- package/confirmable/index.mjs +8 -0
- package/constants/index.d.ts +73 -0
- package/constants/index.mjs +4 -0
- package/context-menu/index.mjs +196 -0
- package/context-menu/style.css +1 -0
- package/count-up/index.mjs +94 -0
- package/custom-scrollbar/index.mjs +93 -0
- package/data-box/index.mjs +68 -0
- package/data-box/style.css +1 -0
- package/data-card/index.mjs +63 -0
- package/data-card/style.css +1 -0
- package/data-card-text/index.mjs +67 -0
- package/data-card-text/style.css +1 -0
- package/data-display/index.mjs +73 -0
- package/data-display/style.css +1 -0
- package/data-icons/index.mjs +74 -0
- package/data-icons/style.css +1 -0
- package/data-imgtext/index.mjs +71 -0
- package/data-imgtext/style.css +1 -0
- package/data-operatext/index.mjs +54 -0
- package/data-operatext/style.css +1 -0
- package/data-panel/index.mjs +61 -0
- package/data-panel/style.css +1 -0
- package/data-pay/index.mjs +110 -0
- package/data-pay/style.css +1 -0
- package/data-price/index.mjs +51 -0
- package/data-price/style.css +1 -0
- package/data-progress/index.mjs +72 -0
- package/data-progress/style.css +1 -0
- package/data-rotate/index.mjs +65 -0
- package/data-rotate/style.css +1 -0
- package/data-table-picker/index.mjs +118 -0
- package/data-tabs/index.mjs +71 -0
- package/data-tabs/style.css +1 -0
- package/dict-render/index.mjs +2 -0
- package/e-charts/index.mjs +179 -0
- package/e-charts/style.css +1 -0
- package/easy-popup/index.mjs +92 -0
- package/easy-popup/style.css +1 -0
- package/editable-progress/index.mjs +120 -0
- package/editable-progress/style.css +1 -0
- package/editable-tree/index.mjs +2 -0
- package/editable-tree/style.css +1 -0
- package/element-dialog/index.mjs +2 -91
- package/element-dialog/style.css +1 -1
- package/element-listeners/style.css +1 -0
- package/element-multi-instance/style.css +1 -0
- package/element-resize-observer/index.mjs +40 -0
- package/element-resize-observer/style.css +1 -0
- package/empty-view/index.mjs +1 -1
- package/error-view/index.mjs +37 -0
- package/error-view/style.css +1 -0
- package/flex-box/index.mjs +2 -0
- package/flex-column/index.mjs +2 -0
- package/flex-item/index.mjs +2 -0
- package/flex-row/index.mjs +2 -0
- package/flex-scroll-area/index.mjs +1 -1
- package/flex-scroller/index.mjs +29 -0
- package/flex-scroller/style.css +1 -0
- package/flow-designer/index.mjs +2 -0
- package/flow-designer/style.css +1 -0
- package/flow-viewer/index.mjs +159 -0
- package/flow-viewer/style.css +1 -0
- package/form-advice/index.mjs +13 -12
- package/form-button/index.mjs +36 -0
- package/form-card/index.mjs +18 -0
- package/form-cascader/index.mjs +2 -0
- package/form-checkbox/index.mjs +1 -1
- package/form-checkbox-group/index.mjs +2 -0
- package/form-checkbox-group/style.css +1 -0
- package/form-date-picker/index.mjs +1 -1
- package/form-holder/index.mjs +1 -1
- package/form-holder/style.css +1 -1
- package/form-image/index.mjs +1 -1
- package/form-input/index.mjs +1 -1
- package/form-input/style.css +1 -0
- package/form-input-cron-expression/index.mjs +2 -0
- package/form-input-cron-expression/style.css +1 -0
- package/form-input-email/index.mjs +1 -1
- package/form-input-id-card/index.mjs +1 -1
- package/form-input-number/index.mjs +1 -1
- package/form-input-phone-number/index.mjs +1 -1
- package/form-input-tag/index.mjs +1 -3
- package/form-input-time/index.mjs +1 -3
- package/form-item-config-provider/index.mjs +24 -0
- package/form-item-group/index.mjs +2 -78
- package/form-item-group/style.css +1 -1
- package/form-item-x/index.mjs +1 -1
- package/form-item-x/style.css +1 -0
- package/form-radio-group/index.mjs +1 -1
- package/form-rate/index.mjs +1 -1
- package/form-red-table/index.mjs +27 -26
- package/form-row/index.mjs +1 -1
- package/form-select/index.mjs +1 -1
- package/form-slider/index.mjs +1 -1
- package/form-switch/index.mjs +1 -1
- package/form-table/index.mjs +2 -0
- package/form-table-plus/index.mjs +2 -0
- package/form-text/index.mjs +1 -1
- package/form-textarea/index.mjs +2 -0
- package/form-time-select/index.mjs +2 -0
- package/form-tree-select/index.mjs +2 -0
- package/form-tree-select/style.css +1 -0
- package/form-tree-select-multiple/index.mjs +2 -0
- package/form-view/index.mjs +280 -6
- package/form-view/style.css +1 -0
- package/guide-steps/index.mjs +2 -0
- package/guide-steps/style.css +1 -0
- package/helper/dictionary.d.ts +29 -0
- package/helper/dictionary.mjs +97 -0
- package/helper/form-item.d.ts +17 -0
- package/helper/form-item.mjs +27 -0
- package/helper/input.d.ts +47 -0
- package/helper/input.mjs +2 -0
- package/helper/sub-table-plus.d.ts +98 -0
- package/helper/sub-table-plus.mjs +4 -0
- package/highlight-j-s/index.mjs +51 -0
- package/highlight-j-s/style.css +1 -0
- package/hook/useDictionary.d.ts +60 -0
- package/hook/useDictionary.mjs +15 -0
- package/hook/useVisibilityChange.d.ts +4 -0
- package/hook/useVisibilityChange.mjs +14 -0
- package/iframe-window/index.mjs +37 -0
- package/iframe-window/style.css +1 -0
- package/image-cropper/index.mjs +155 -0
- package/image-cropper/style.css +1 -0
- package/image-preview/index.mjs +2 -0
- package/image-preview/style.css +1 -0
- package/image-viewer/index.mjs +70 -0
- package/image-viewer/style.css +1 -0
- package/index.css +2 -0
- package/index.d.ts +91 -6
- package/index.mjs +123 -61
- package/input-number-range/index.mjs +76 -0
- package/input-number-range/style.css +1 -0
- package/keyboard/index.mjs +2 -0
- package/keyboard/style.css +1 -0
- package/loading-view/index.mjs +39 -0
- package/loading-view/style.css +1 -0
- package/name-avatar/index.mjs +61 -0
- package/name-avatar/style.css +1 -0
- package/nav-bar/index.mjs +36 -0
- package/nav-bar/style.css +1 -0
- package/package.json +28 -17
- package/page/index.mjs +17 -0
- package/page/style.css +1 -0
- package/page-header/index.mjs +25 -0
- package/page-header/style.css +1 -0
- package/page-index/index.mjs +123 -0
- package/page-index/style.css +1 -0
- package/page-index-top/index.mjs +85 -0
- package/page-skeleton/index.mjs +44 -0
- package/page-skeleton/style.css +1 -0
- package/page-skeleton-new/index.mjs +80 -0
- package/page-skeleton-new/style.css +1 -0
- package/pageable-table/index.mjs +2 -0
- package/pageable-table/style.css +1 -0
- package/photo-swipe/index.mjs +2 -0
- package/props/cascader.d.ts +326 -0
- package/props/cascader.mjs +145 -0
- package/props/checkbox-group.d.ts +213 -0
- package/props/checkbox-group.mjs +83 -0
- package/props/checkbox.d.ts +205 -0
- package/props/checkbox.mjs +74 -0
- package/props/col.d.ts +74 -0
- package/props/col.mjs +32 -0
- package/props/common.d.ts +114 -0
- package/props/common.mjs +18 -0
- package/props/date.d.ts +339 -0
- package/props/date.mjs +145 -0
- package/props/form-item.d.ts +144 -0
- package/props/form-item.mjs +73 -0
- package/props/form.d.ts +157 -0
- package/props/form.mjs +89 -0
- package/props/image.d.ts +102 -0
- package/props/image.mjs +10 -0
- package/props/input-cron.d.ts +102 -0
- package/props/input-cron.mjs +16 -0
- package/props/input-number.d.ts +216 -0
- package/props/input-number.mjs +72 -0
- package/props/input-tag.d.ts +123 -0
- package/props/input-tag.mjs +33 -0
- package/props/input.d.ts +299 -0
- package/props/input.mjs +97 -0
- package/props/radio-group.d.ts +205 -0
- package/props/radio-group.mjs +84 -0
- package/props/rate.d.ts +211 -0
- package/props/rate.mjs +66 -0
- package/props/select.d.ts +450 -0
- package/props/select.mjs +218 -0
- package/props/slide.d.ts +235 -0
- package/props/slide.mjs +72 -0
- package/props/switch.d.ts +229 -0
- package/props/switch.mjs +80 -0
- package/props/text.d.ts +127 -0
- package/props/text.mjs +22 -0
- package/props/textarea.d.ts +266 -0
- package/props/textarea.mjs +82 -0
- package/props/time-select.d.ts +216 -0
- package/props/time-select.mjs +67 -0
- package/props/time.d.ts +304 -0
- package/props/time.mjs +138 -0
- package/props/tree-select-multiple.d.ts +324 -0
- package/props/tree-select-multiple.mjs +16 -0
- package/props/tree-select.d.ts +326 -0
- package/props/tree-select.mjs +25 -0
- package/props/tree.d.ts +76 -0
- package/props/tree.mjs +75 -0
- package/props/vue-tree-select.d.ts +458 -0
- package/props/vue-tree-select.mjs +213 -0
- package/resolver/index.mjs +29 -0
- package/sign-panel/index.mjs +183 -0
- package/sign-panel/style.css +1 -0
- package/skeleton-panel/index.mjs +37 -0
- package/skeleton-panel/style.css +1 -0
- package/split-pane/index.mjs +2 -0
- package/split-pane/style.css +1 -0
- package/stateful/index.mjs +67 -0
- package/stateful/style.css +1 -0
- package/sub-table/index.mjs +2 -0
- package/sub-table/style.css +1 -0
- package/sub-table-plus/index.mjs +2 -0
- package/sub-table-plus/style.css +1 -0
- package/swiper/index.mjs +126 -0
- package/swiper/style.css +1 -0
- package/table-column/index.mjs +2 -0
- package/table-column/style.css +1 -0
- package/table-column-def/index.mjs +11 -0
- package/table-view/index.mjs +468 -6
- package/table-view/style.css +1 -0
- package/tag-render/index.mjs +86 -0
- package/tag-render/style.css +1 -0
- package/text-ellipsis/index.mjs +124 -0
- package/text-ellipsis/style.css +1 -0
- package/toolbar/index.mjs +1 -8
- package/toolbar/style.css +1 -0
- package/toolbar-button/index.mjs +1 -8
- package/toolbar-button/style.css +1 -0
- package/vue-cron/index.mjs +2 -0
- package/vue-cron/style.css +1 -0
- package/vue-qr-code/index.mjs +32 -0
- package/vue-tags-input/index.mjs +350 -0
- package/vue-tags-input/style.css +1 -0
- package/vue-tree-select/index.mjs +2 -0
- package/vue-tree-select/style.css +1 -0
- package/vue-video-player/index.mjs +136 -0
- package/vue-video-player/style.css +1 -0
- package/watermark/index.mjs +2 -0
- package/watermark/style.css +1 -0
- package/web-types.json +1 -1
- package/x-input-tag/index.mjs +232 -0
- package/x-input-tag/style.css +1 -0
- package/year-calendar/index.mjs +2 -0
- package/year-calendar/style.css +1 -0
- package/chunks/B4M_TFeR.mjs +0 -152
- package/chunks/B5BIQCcK.mjs +0 -149
- package/chunks/BHNKrW1j.mjs +0 -61
- package/chunks/BO9jWhBl.mjs +0 -46
- package/chunks/BZ8aOa78.mjs +0 -35
- package/chunks/Bsz7y4Xp.mjs +0 -73
- package/chunks/Bxj372sF.mjs +0 -53
- package/chunks/C33EmJN8.mjs +0 -32
- package/chunks/C6Li3-l7.mjs +0 -28
- package/chunks/CBcdalMX.mjs +0 -35
- package/chunks/CdRsyF0n.mjs +0 -43
- package/chunks/ClNahmiU.mjs +0 -23
- package/chunks/CstztYMu.mjs +0 -28
- package/chunks/DC9b53M6.mjs +0 -32
- package/chunks/DDVAgRED.mjs +0 -36
- package/chunks/DpJQABVD.mjs +0 -91
- package/chunks/ZsLNWI9x.mjs +0 -46
- package/chunks/jn_iQrVZ.mjs +0 -28
- package/constants.d.ts +0 -1
- package/constants.mjs +0 -4
- package/element-dialog/index.d.ts +0 -53
- package/empty-view/index.d.ts +0 -29
- package/flex-scroll-area/index.d.ts +0 -22
- package/form-advice/index.d.ts +0 -9
- package/form-cell/index.d.ts +0 -25
- package/form-check-box-group/index.d.ts +0 -93
- package/form-check-box-group/index.mjs +0 -2
- package/form-checkbox/index.d.ts +0 -81
- package/form-date-picker/index.d.ts +0 -104
- package/form-holder/index.d.ts +0 -95
- package/form-image/index.d.ts +0 -82
- package/form-input/index.d.ts +0 -91
- package/form-input-email/index.d.ts +0 -79
- package/form-input-id-card/index.d.ts +0 -79
- package/form-input-number/index.d.ts +0 -95
- package/form-input-phone-number/index.d.ts +0 -79
- package/form-input-tag/index.d.ts +0 -2
- package/form-input-time/index.d.ts +0 -2
- package/form-item-group/index.d.ts +0 -18
- package/form-item-x/index.d.ts +0 -54
- package/form-radio-group/index.d.ts +0 -81
- package/form-rate/index.d.ts +0 -79
- package/form-red-table/index.d.ts +0 -21
- package/form-row/index.d.ts +0 -11
- package/form-select/index.d.ts +0 -81
- package/form-slider/index.d.ts +0 -79
- package/form-switch/index.d.ts +0 -79
- package/form-text/index.d.ts +0 -77
- package/form-view/index.d.ts +0 -2
- package/input/style.css +0 -1
- package/resolver.mjs +0 -79
- package/table-view/index.d.ts +0 -2
- package/toolbar/index.d.ts +0 -2
- package/toolbar-button/index.d.ts +0 -2
- /package/{resolver.d.ts → resolver/index.d.ts} +0 -0
package/form-view/index.mjs
CHANGED
|
@@ -1,9 +1,283 @@
|
|
|
1
|
+
import { t as e } from "../chunks/BwYEpK-u.mjs";
|
|
2
|
+
import t from "../element-resize-observer/index.mjs";
|
|
3
|
+
import n from "../empty-view/index.mjs";
|
|
4
|
+
import { t as r } from "../chunks/D6vTCC1Z2.mjs";
|
|
5
|
+
import i from "../loading-view/index.mjs";
|
|
6
|
+
import { t as a } from "../chunks/3gUkQF12.mjs";
|
|
7
|
+
import { Fragment as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createSlots as d, createVNode as f, mergeProps as p, normalizeClass as m, normalizeStyle as h, openBlock as g, renderList as _, renderSlot as v, resolveComponent as y, toDisplayString as b, toHandlers as x, vShow as S, withCtx as C, withDirectives as w } from "vue";
|
|
8
|
+
import { animate as T, hasOwn as E, isInContainer as D, toStringArray as O } from "@web-utils/core";
|
|
9
|
+
import { merge as k } from "@web-utils/integrations/lodash";
|
|
1
10
|
//#region src/components/form/FormView.vue
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
11
|
+
var A = [
|
|
12
|
+
"back",
|
|
13
|
+
"create",
|
|
14
|
+
"save",
|
|
15
|
+
"withdraw",
|
|
16
|
+
"edit",
|
|
17
|
+
"submit",
|
|
18
|
+
"publish",
|
|
19
|
+
"agree",
|
|
20
|
+
"disagree",
|
|
21
|
+
"reject",
|
|
22
|
+
"finish",
|
|
23
|
+
"cancel",
|
|
24
|
+
"enable",
|
|
25
|
+
"exp",
|
|
26
|
+
"imp",
|
|
27
|
+
"del",
|
|
28
|
+
"disabled",
|
|
29
|
+
"reload",
|
|
30
|
+
"slot"
|
|
31
|
+
], j = A.map((e) => `${e}-down`), M = [
|
|
32
|
+
"back",
|
|
33
|
+
"withdraw",
|
|
34
|
+
"edit"
|
|
35
|
+
], N = [
|
|
36
|
+
"save",
|
|
37
|
+
"submit",
|
|
38
|
+
"",
|
|
39
|
+
"publish",
|
|
40
|
+
"agree",
|
|
41
|
+
"disagree",
|
|
42
|
+
"reject",
|
|
43
|
+
"finish",
|
|
44
|
+
"cancel"
|
|
45
|
+
], P = (e, t) => {
|
|
46
|
+
if (e.classList.contains(t)) return e;
|
|
47
|
+
let n = e.parentNode;
|
|
48
|
+
for (; n && !n.classList.contains(t);) n = n.parentNode;
|
|
49
|
+
return n.classList.contains(t) ? n : null;
|
|
50
|
+
}, F = {
|
|
51
|
+
name: "FormView",
|
|
52
|
+
inject: { flowContext: { default: {} } },
|
|
53
|
+
provide() {
|
|
54
|
+
return { formView: this };
|
|
55
|
+
},
|
|
56
|
+
props: {
|
|
57
|
+
notForm: Boolean,
|
|
58
|
+
loading: Boolean,
|
|
59
|
+
unLimit: Boolean,
|
|
60
|
+
formWidth: {
|
|
61
|
+
type: String,
|
|
62
|
+
default: "75%"
|
|
63
|
+
},
|
|
64
|
+
toolbarAttrs: {
|
|
65
|
+
type: Object,
|
|
66
|
+
default: () => {}
|
|
67
|
+
},
|
|
68
|
+
toolbarListeners: { type: Object },
|
|
69
|
+
contentClass: { type: String },
|
|
70
|
+
className: { type: String },
|
|
71
|
+
title: { type: String },
|
|
72
|
+
showToolbar: {
|
|
73
|
+
type: Boolean,
|
|
74
|
+
default: !0
|
|
75
|
+
},
|
|
76
|
+
formNav: {
|
|
77
|
+
type: Boolean,
|
|
78
|
+
default: !0
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
data() {
|
|
82
|
+
return {
|
|
83
|
+
groups: [],
|
|
84
|
+
activeIndex: -1,
|
|
85
|
+
tryByClick: !1,
|
|
86
|
+
showNav: !1
|
|
87
|
+
};
|
|
88
|
+
},
|
|
89
|
+
computed: {
|
|
90
|
+
isFormLoading() {
|
|
91
|
+
return this.loading || E(this.$parent, "isFormLoaded") ? !this.$parent.isFormLoaded : !1;
|
|
92
|
+
},
|
|
93
|
+
toolbarProps() {
|
|
94
|
+
var e;
|
|
95
|
+
let t = {}, n = ((e = this.toolbarAttrs) == null ? void 0 : e.buttons) || this.$parent.buttons, r = k({}, this.toolbarAttrs, t);
|
|
96
|
+
return r.buttons = n || ["back"], r.buttons = O(r.buttons), r;
|
|
97
|
+
},
|
|
98
|
+
toolbarButtons() {
|
|
99
|
+
return this.toolbarProps.buttons.filter((e) => !N.includes(e) && e.indexOf(":down") < 0).map((e) => e.replace(":up", ""));
|
|
100
|
+
},
|
|
101
|
+
footerBarButtons() {
|
|
102
|
+
let e = this.toolbarProps.buttons.filter((e) => !M.includes(e) && (N.includes(e) || e.indexOf(":down") > -1)).map((e) => e.replace(":down", ""));
|
|
103
|
+
return e = e || [], this.$parent.isEnabled && !e.includes("cancel") && e.push("cancel"), e;
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
created() {
|
|
107
|
+
this.onFormResize({ width: window.document.body.clientWidth });
|
|
108
|
+
},
|
|
109
|
+
async activated() {
|
|
110
|
+
this.$refs.formScroller && (await this.$nextTick(), this.scrollTo(this.formScrollTop, this.formScrollLeft));
|
|
111
|
+
},
|
|
112
|
+
methods: {
|
|
113
|
+
addGroup(e) {
|
|
114
|
+
e && (this.activeIndex === -1 && (this.activeIndex = 0), this.groups.push(e), this.groups = this.groups.sort((e, t) => {
|
|
115
|
+
let n = P(e.$el, "form-card"), r = P(t.$el, "form-card");
|
|
116
|
+
if (n === r) return [].indexOf.call(e.$el.parentNode.children, e.$el) - [].indexOf.call(t.$el.parentNode.children, t.$el);
|
|
117
|
+
{
|
|
118
|
+
let e = P(n, "form-scroller");
|
|
119
|
+
return [].indexOf.call(e.children, n) - [].indexOf.call(e.children, r);
|
|
120
|
+
}
|
|
121
|
+
}), e.active && (this.activeIndex = this.groups.indexOf(e), this.navItemClick(e, this.activeIndex)));
|
|
122
|
+
},
|
|
123
|
+
removeGroup(e) {
|
|
124
|
+
if (e) {
|
|
125
|
+
let t = this.groups.indexOf(e);
|
|
126
|
+
this.groups.splice(t, 1), this.activeIndex > this.groups.length - 1 && (this.activeIndex = 0);
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
getToolbarSlotKeys() {
|
|
130
|
+
return Object.keys(this.$slots).filter((e) => A.includes(e));
|
|
131
|
+
},
|
|
132
|
+
getFooterSlotKeys() {
|
|
133
|
+
return Object.keys(this.$slots).filter((e) => j.includes(e));
|
|
134
|
+
},
|
|
135
|
+
getFooterSlotKey(e) {
|
|
136
|
+
return e.replace("-down", "");
|
|
137
|
+
},
|
|
138
|
+
onFormResize({ width: e }) {
|
|
139
|
+
this.showNav = e > 1500;
|
|
140
|
+
},
|
|
141
|
+
onEdit() {
|
|
142
|
+
!this.toolbarListeners.edit && E(this.$parent, "disabled") && (this.$parent.disabled = !1);
|
|
143
|
+
},
|
|
144
|
+
async navItemClick(e, t) {
|
|
145
|
+
this.showNav && (await this.$nextTick(), this.activeFormItemGroup(e, t), e.expand || e.open());
|
|
146
|
+
},
|
|
147
|
+
activeFormItemGroup(e, t) {
|
|
148
|
+
this.$refs.formScroller.scrollTop = e.$el.offsetTop - 10, T(e.$el, "breathe-indicator-animation"), this.tryByClick = !0, this.activeIndex = t;
|
|
149
|
+
},
|
|
150
|
+
tryActive() {
|
|
151
|
+
if (this.showNav) {
|
|
152
|
+
for (let e = 0; e < this.groups.length; e++) if (D(this.groups[e].$el, this.$refs.formScroller, { bottomOffset: 10 })) {
|
|
153
|
+
this.activeIndex = e;
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
onFormScroll() {
|
|
159
|
+
this.formScrollTop = this.$refs.formScroller.scrollTop, this.formScrollLeft = this.$refs.formScroller.scrollLeft, !this.tryByClick && this.groups.length && window.requestAnimationFrame(this.tryActive), this.tryByClick = !1;
|
|
160
|
+
},
|
|
161
|
+
scrollTo(e, t) {
|
|
162
|
+
e && (this.$refs.formScroller.scrollTop = e), t && (this.$refs.formScroller.scrollLeft = t);
|
|
163
|
+
}
|
|
6
164
|
}
|
|
7
|
-
}
|
|
165
|
+
}, I = {
|
|
166
|
+
key: 0,
|
|
167
|
+
class: "form-view-toolbar"
|
|
168
|
+
}, L = { class: "form-scroller-wrapper" }, R = {
|
|
169
|
+
key: 0,
|
|
170
|
+
class: "form-view-title"
|
|
171
|
+
}, z = { class: "form-content" }, B = {
|
|
172
|
+
key: 0,
|
|
173
|
+
class: "form-view-title"
|
|
174
|
+
}, V = { class: "form-content" }, H = {
|
|
175
|
+
key: 1,
|
|
176
|
+
class: "form-nav"
|
|
177
|
+
}, U = { class: "form-nav-list" }, W = ["onClick"];
|
|
178
|
+
function G(e, T, E, D, O, k) {
|
|
179
|
+
let A = a, j = n, M = y("FlowLog"), N = r, P = t, F = i;
|
|
180
|
+
return g(), l("div", { class: m(["form-view", E.className]) }, [
|
|
181
|
+
c(" 顶部工具栏 "),
|
|
182
|
+
E.showToolbar ? w((g(), l("div", I, [v(e.$slots, "form-view-toolbar", {}, () => [f(A, p({
|
|
183
|
+
...k.toolbarProps,
|
|
184
|
+
buttons: k.toolbarButtons
|
|
185
|
+
}, { onEdit: k.onEdit }, x(E.toolbarListeners)), d({
|
|
186
|
+
default: C(({ buttons: t }) => [v(e.$slots, "toolbar-button", { buttons: t })]),
|
|
187
|
+
"toolbar-right": C(() => [v(e.$slots, "toolbar-right")]),
|
|
188
|
+
_: 2
|
|
189
|
+
}, [_(k.getToolbarSlotKeys(), (t) => ({
|
|
190
|
+
name: t,
|
|
191
|
+
fn: C(() => [v(e.$slots, t)])
|
|
192
|
+
}))]), 1040, ["onEdit"])])], 512)), [[S, !k.isFormLoading]]) : c("v-if", !0),
|
|
193
|
+
c(" 内容 "),
|
|
194
|
+
w(u("div", L, [u("div", {
|
|
195
|
+
ref: "formScroller",
|
|
196
|
+
class: m(["form-scroller", E.contentClass]),
|
|
197
|
+
onScroll: T[0] || (T[0] = (...e) => k.onFormScroll && k.onFormScroll(...e))
|
|
198
|
+
}, [
|
|
199
|
+
c(" 非表单 "),
|
|
200
|
+
E.notForm ? (g(), l("div", {
|
|
201
|
+
key: 0,
|
|
202
|
+
style: h({ width: E.formWidth }),
|
|
203
|
+
class: "not-form"
|
|
204
|
+
}, [
|
|
205
|
+
E.title ? (g(), l("div", R, b(E.title), 1)) : c("v-if", !0),
|
|
206
|
+
c(" 表单内容 "),
|
|
207
|
+
v(e.$slots, "default", {}, () => [f(j, { "empty-tips": "请添加表单内容" })]),
|
|
208
|
+
c(" 底部工具栏 "),
|
|
209
|
+
k.footerBarButtons.length ? (g(), s(A, p({ key: 1 }, {
|
|
210
|
+
...k.toolbarProps,
|
|
211
|
+
buttons: k.footerBarButtons
|
|
212
|
+
}, { footer: "" }, x(E.toolbarListeners)), d({
|
|
213
|
+
default: C(({ buttons: t, footer: n }) => [v(e.$slots, "footer-button", {
|
|
214
|
+
buttons: t,
|
|
215
|
+
footer: n
|
|
216
|
+
})]),
|
|
217
|
+
_: 2
|
|
218
|
+
}, [_(k.getFooterSlotKeys(), (t) => ({
|
|
219
|
+
name: k.getFooterSlotKey(t),
|
|
220
|
+
fn: C(() => [v(e.$slots, t)])
|
|
221
|
+
}))]), 1040)) : c("v-if", !0),
|
|
222
|
+
c(" 表单底部 "),
|
|
223
|
+
e.$slots["form-bottom"] ? v(e.$slots, "form-bottom", { key: 2 }) : c("v-if", !0)
|
|
224
|
+
], 4)) : (g(), l(o, { key: 1 }, [c(" 表单 "), u("div", {
|
|
225
|
+
class: m(["form-card", { "un-limit": E.unLimit }]),
|
|
226
|
+
style: h({ width: `calc(${E.formWidth} + 40px)` })
|
|
227
|
+
}, [u("div", z, [
|
|
228
|
+
c(" 表单内容 "),
|
|
229
|
+
E.title ? (g(), l("div", B, b(E.title), 1)) : c("v-if", !0),
|
|
230
|
+
v(e.$slots, "default", {}, () => [f(j, { "empty-tips": "请添加表单内容" })]),
|
|
231
|
+
c(" 底部工具栏 "),
|
|
232
|
+
k.footerBarButtons.length ? (g(), s(A, p({ key: 1 }, {
|
|
233
|
+
...k.toolbarProps,
|
|
234
|
+
buttons: k.footerBarButtons
|
|
235
|
+
}, { footer: "" }, x(E.toolbarListeners)), d({
|
|
236
|
+
default: C(({ buttons: t, footer: n }) => [v(e.$slots, "footer-button", {
|
|
237
|
+
buttons: t,
|
|
238
|
+
footer: n
|
|
239
|
+
})]),
|
|
240
|
+
_: 2
|
|
241
|
+
}, [_(k.getFooterSlotKeys(), (t) => ({
|
|
242
|
+
name: k.getFooterSlotKey(t),
|
|
243
|
+
fn: C(() => [v(e.$slots, t)])
|
|
244
|
+
}))]), 1040)) : c("v-if", !0)
|
|
245
|
+
])], 6)], 2112)),
|
|
246
|
+
e.$slots["form-bottom"] || e.$parent.$options.flowForm && k.flowContext.logs.length ? (g(), l("div", {
|
|
247
|
+
key: 2,
|
|
248
|
+
class: m(["form-card", { "un-limit": E.unLimit }]),
|
|
249
|
+
style: h([{ width: `calc(${E.formWidth} + 40px)` }, { "min-height": "0" }])
|
|
250
|
+
}, [u("div", V, [
|
|
251
|
+
e.$parent.$options.flowForm && k.flowContext.logs.length ? (g(), s(N, {
|
|
252
|
+
key: 0,
|
|
253
|
+
"block-title": "流程日志"
|
|
254
|
+
}, {
|
|
255
|
+
default: C(() => [f(M, {
|
|
256
|
+
class: "flow-log",
|
|
257
|
+
fetch: !1,
|
|
258
|
+
"show-title": !1,
|
|
259
|
+
"business-key": e.$parent.bizKey
|
|
260
|
+
}, null, 8, ["business-key"])]),
|
|
261
|
+
_: 1
|
|
262
|
+
})) : c("v-if", !0),
|
|
263
|
+
c(" 表单底部 "),
|
|
264
|
+
v(e.$slots, "form-bottom")
|
|
265
|
+
])], 6)) : c("v-if", !0)
|
|
266
|
+
], 34), f(P, { onNotify: k.onFormResize }, null, 8, ["onNotify"])], 512), [[S, !k.isFormLoading]]),
|
|
267
|
+
c(" 表单导航 "),
|
|
268
|
+
E.formNav && !k.isFormLoading && O.showNav && O.groups.length ? (g(), l("div", H, [T[1] || (T[1] = u("div", { class: "form-nav-header" }, "表单导航", -1)), u("ul", U, [(g(!0), l(o, null, _(O.groups, (e, t) => (g(), l("li", {
|
|
269
|
+
key: e.blockTitle,
|
|
270
|
+
class: m(["form-nav-item", { active: O.activeIndex === t }]),
|
|
271
|
+
onClick: (n) => k.navItemClick(e, t)
|
|
272
|
+
}, b(e.blockTitle), 11, W))), 128))])])) : c("v-if", !0),
|
|
273
|
+
c(" 加载提示 "),
|
|
274
|
+
k.isFormLoading ? (g(), s(F, {
|
|
275
|
+
key: 2,
|
|
276
|
+
"icon-size": "34px",
|
|
277
|
+
"font-size": "16px"
|
|
278
|
+
})) : c("v-if", !0)
|
|
279
|
+
], 2);
|
|
280
|
+
}
|
|
281
|
+
var K = /* @__PURE__ */ e(F, [["render", G]]);
|
|
8
282
|
//#endregion
|
|
9
|
-
export {
|
|
283
|
+
export { K as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.form-view{flex-direction:column;height:100%;display:flex}.form-view .form-scroller-wrapper{flex:1;position:relative}.form-view .not-form{margin:0 auto}.form-view .form-view-toolbar{overflow:hidden}.form-view .form-scroller{flex:1;position:absolute;top:0;bottom:0;left:0;right:0;overflow:auto}.form-view .form-scroller .el-row{position:static}.form-view .form-content .el-form .el-row{padding-right:2rem}.form-view .form-content .el-form .el-row .el-row{padding-right:0}.form-view .form-card{color:#303133;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;max-width:1000px;margin:14px auto;padding:20px;transition:all .3s;overflow:hidden;box-shadow:0 2px 12px #0000001a}.form-view .form-card.un-limit{max-width:100%}.form-view .form-nav{background-color:#fff;position:absolute;top:55px;left:20px;box-shadow:0 2px 12px #0000001a}.form-view .form-nav-list{min-width:180px;padding:10px 20px}.form-view .form-nav-header{color:#e34e55;background-color:#f3f5fb;padding:5px 20px;font-size:15px;font-weight:700;position:relative}.form-view .form-nav-item{cursor:pointer;padding:5px 0;font-family:element-icons,serif;font-size:14px;list-style:none;position:relative}.form-view .form-nav-item.active,.form-view .form-nav-item:hover{color:#e34e55;font-weight:700}.form-view .form-nav-item.active:before{content:"";position:absolute;left:-14px}.form-view .form-view-title{color:#333;text-align:center;background-color:#fff;width:100%;height:36px;margin-bottom:10px;font-size:22px;line-height:36px}.form-view .tip{background-color:#ecf8ff;border-left:5px solid #50bfff;border-radius:4px;margin:20px 0;padding:8px 16px}.form-view .tip p{color:#5e6d82;font-size:14px;line-height:1.5em}.form-view .tip.danger{background-color:#fde2e2;border-left-color:#f56c6c}.form-view .tip.danger p{color:#564646}.form-view .tip.warning{background-color:#f7efe2;border-left-color:#e6a23c}.form-view .tip.warning p{color:#5d564b}.form-view .select-num{color:#898989;font-size:12px}.form-view .select-num .num{font-family:impact,Constantia,Georgia,serif;font-size:19px}.form-view .el-table .el-table__header th{color:#595959;background:#fff;font-weight:400}.form-view .el-table td{padding:4px 0}.form-view .el-table td .cell .el-input .el-input__inner{padding-left:4px}.form-view .el-table td .cell .el-input.el-input--prefix .el-input__inner{padding-left:30px}.form-view .el-table td .cell .el-input.is-disabled .el-input__suffix{display:none}.form-view .el-table td .cell .el-input.is-disabled .el-input__inner{white-space:normal;word-break:break-word;background:0 0;border:0;padding:0 0 0 4px;line-height:1.6}@keyframes breathe-indicator{0%{box-shadow:0 0 0 0 var(--color-primary,red)}to{box-shadow:0 0 4px 1px var(--color-primary,red)}}.form-view .breathe-indicator-animation{animation-name:breathe-indicator;animation-duration:.3s;animation-timing-function:ease-in-out;animation-iteration-count:4;animation-direction:alternate;animation-delay:.1s}@media screen and (min-width:1700px){.form-view.form-view__lg .form-card{position:relative;left:60px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.guide-steps{margin-top:20px;margin-bottom:20px}.guide-steps .el-step .el-step__line-inner{border-width:1px!important;width:100%!important}.guide-steps .el-step.current.important .el-step__head .el-step__icon.is-text{color:#f55634!important;border-color:#f55634!important}.guide-steps .el-step.current.important .el-step__title{color:#f55634!important}.guide-steps .el-step.available .el-step__head .el-step__icon.is-text{color:#eab006!important;border-color:#eab006!important}.guide-steps .el-step.available .el-step__title{color:#eab006!important}.guide-steps .el-step .el-step__icon.is-text{cursor:pointer}.guide-steps .el-step.disabled .el-step__icon.is-text{cursor:not-allowed}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DictItem } from '../api';
|
|
2
|
+
export declare const clearDictCache: () => void;
|
|
3
|
+
export type DictOption = {
|
|
4
|
+
options?: any;
|
|
5
|
+
treeDict?: boolean;
|
|
6
|
+
idAsValue?: boolean;
|
|
7
|
+
labelAsValue?: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* 获取字典
|
|
11
|
+
* @param type 字典类型
|
|
12
|
+
* @param cache 是否使用缓存
|
|
13
|
+
* @param api
|
|
14
|
+
* @param idAsValue
|
|
15
|
+
* @param labelAsValue
|
|
16
|
+
*/
|
|
17
|
+
export declare const getDictData: (type: string, cache?: boolean, { options, treeDict, idAsValue, labelAsValue }?: DictOption) => DictItem[] | readonly DictItem[] | Promise<DictItem[] | readonly DictItem[] | null>;
|
|
18
|
+
/**
|
|
19
|
+
* 获取字典项
|
|
20
|
+
*/
|
|
21
|
+
export declare const getDictItem: (type: string, value: any, cache?: boolean, { treeDict, idAsValue, labelAsValue }?: DictOption) => Promise<any>;
|
|
22
|
+
/**
|
|
23
|
+
* 获取字典项
|
|
24
|
+
*/
|
|
25
|
+
export declare const getDictLabel: (type: string, value: any, cache?: boolean, { treeDict, idAsValue, labelAsValue }?: DictOption) => Promise<any>;
|
|
26
|
+
export declare const confirmOptions: readonly {
|
|
27
|
+
label: string;
|
|
28
|
+
value: string;
|
|
29
|
+
}[];
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { d as e, p as t } from "../chunks/D-hj62se2.mjs";
|
|
2
|
+
import { getDictTreeByType as n, remote as r } from "../api/index.mjs";
|
|
3
|
+
//#region src/helper/dictionary.ts
|
|
4
|
+
var i = {}, a = {}, o = {}, s = () => {
|
|
5
|
+
for (let e in i) delete i[e];
|
|
6
|
+
for (let e in a) delete a[e];
|
|
7
|
+
}, c = (e, t = !0, { options: n, treeDict: r, idAsValue: a, labelAsValue: o } = {}) => {
|
|
8
|
+
let s = e;
|
|
9
|
+
r && (s = `${e}-${a}-${o}${n ? "-options" : ""}`);
|
|
10
|
+
let c = i[s];
|
|
11
|
+
return t && c ? c : r ? u(e, t, {
|
|
12
|
+
idAsValue: a,
|
|
13
|
+
labelAsValue: o
|
|
14
|
+
}) : l(e, t);
|
|
15
|
+
}, l = (e, t = !0) => {
|
|
16
|
+
if (o[e]) return o[e];
|
|
17
|
+
let n = new Promise((n, s) => {
|
|
18
|
+
if (t && i[e]) n(i[e]);
|
|
19
|
+
else {
|
|
20
|
+
var c;
|
|
21
|
+
(c = r(e)) == null || c.then((r) => {
|
|
22
|
+
let s = r.data.data;
|
|
23
|
+
if (t) {
|
|
24
|
+
let t = {};
|
|
25
|
+
s.forEach(({ label: e, value: n }) => {
|
|
26
|
+
t[n] = Object.freeze({
|
|
27
|
+
label: e,
|
|
28
|
+
value: n
|
|
29
|
+
});
|
|
30
|
+
}), a[e] = t, s = Object.freeze(s), i[e] = s;
|
|
31
|
+
}
|
|
32
|
+
o[e] = null, n(s);
|
|
33
|
+
}).catch((t) => {
|
|
34
|
+
o[e] = null, s(t);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return o[e] = n, n;
|
|
39
|
+
}, u = (r, s = !0, { idAsValue: c, labelAsValue: l } = {}) => {
|
|
40
|
+
let u = `${r}-${c}-${l}`;
|
|
41
|
+
if (o[u]) return o[u];
|
|
42
|
+
let d = new Promise((d, f) => {
|
|
43
|
+
if (s && i[u]) d(i[u]);
|
|
44
|
+
else {
|
|
45
|
+
var p;
|
|
46
|
+
(p = n(r, {
|
|
47
|
+
idAsValue: c,
|
|
48
|
+
labelAsValue: l
|
|
49
|
+
})) == null || p.then((n) => {
|
|
50
|
+
let r = n.data.data;
|
|
51
|
+
s && (i[u] = r, i[`${u}-options`] = t(r), a[u] = e(r)), o[u] = null, d(r);
|
|
52
|
+
}).catch((e) => {
|
|
53
|
+
o[u] = null, f(e);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return o[u] = d, d;
|
|
58
|
+
}, d = async (e, n, r = !0, { treeDict: i, idAsValue: o, labelAsValue: s } = {}) => {
|
|
59
|
+
let l = e;
|
|
60
|
+
i && (l = `${e}-${o}-${s}`);
|
|
61
|
+
let u = a[l], d;
|
|
62
|
+
if (r && u) d = u[n];
|
|
63
|
+
else {
|
|
64
|
+
let u = await c(e, r, {
|
|
65
|
+
treeDict: i,
|
|
66
|
+
idAsValue: o,
|
|
67
|
+
labelAsValue: s
|
|
68
|
+
});
|
|
69
|
+
if (r) d = a[l][n];
|
|
70
|
+
else {
|
|
71
|
+
if (i && (u = t(u)), !u) return d;
|
|
72
|
+
for (let e = 0; e < u.length; e++) {
|
|
73
|
+
let t = u[e];
|
|
74
|
+
if (t.value === n) {
|
|
75
|
+
d = t;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return d;
|
|
82
|
+
}, f = async (e, t, n = !0, { treeDict: r, idAsValue: i, labelAsValue: a } = {}) => {
|
|
83
|
+
var o;
|
|
84
|
+
return ((o = await d(e, t, n, {
|
|
85
|
+
treeDict: r,
|
|
86
|
+
idAsValue: i,
|
|
87
|
+
labelAsValue: a
|
|
88
|
+
})) == null ? void 0 : o.label) || t || "";
|
|
89
|
+
}, p = Object.freeze([{
|
|
90
|
+
label: "是",
|
|
91
|
+
value: "1"
|
|
92
|
+
}, {
|
|
93
|
+
label: "否",
|
|
94
|
+
value: "0"
|
|
95
|
+
}]);
|
|
96
|
+
//#endregion
|
|
97
|
+
export { s as clearDictCache, p as confirmOptions, c as getDictData, d as getDictItem, f as getDictLabel };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Attrs } from 'vue';
|
|
2
|
+
export declare const useRequired: (props: Record<string, any>) => globalThis.ComputedRef<boolean>;
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param props
|
|
6
|
+
* @param param1
|
|
7
|
+
* @param param1.rules
|
|
8
|
+
* @returns {ComputedRef<{}>}
|
|
9
|
+
*/
|
|
10
|
+
export declare const useFormItemProps: (props: Record<string, any>, { rules, attrs, block, class: clas, messagePrefix, message }?: {
|
|
11
|
+
rules?: object[];
|
|
12
|
+
attrs?: Attrs;
|
|
13
|
+
class?: string;
|
|
14
|
+
block?: Readonly<Ref<any, any>>;
|
|
15
|
+
messagePrefix?: string;
|
|
16
|
+
message?: string;
|
|
17
|
+
}) => ComputedRef<Record<string, any>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { formItemProps as e } from "../props/form-item.mjs";
|
|
2
|
+
import { colProps as t } from "../props/col.mjs";
|
|
3
|
+
import { formHolderContextKey as n } from "../constants/index.mjs";
|
|
4
|
+
import { computed as r, inject as i, unref as a } from "vue";
|
|
5
|
+
import { isArray as o, isPlainObject as s, isString as c } from "@web-utils/core";
|
|
6
|
+
//#region src/helper/form-item.ts
|
|
7
|
+
var l = (e) => {
|
|
8
|
+
let t = i(n, null);
|
|
9
|
+
return r(() => e.required === !0 ? !0 : (t == null ? void 0 : t.requiredFieldsMap[e.prop]) === !0);
|
|
10
|
+
}, u = (e, t) => {
|
|
11
|
+
c(t) ? e.push(t) : o(t) ? e.push(...t) : s(t) && e.push(t);
|
|
12
|
+
}, d = (n, { rules: i, attrs: o, block: s, class: c, messagePrefix: d, message: f } = {}) => {
|
|
13
|
+
let p = l(n);
|
|
14
|
+
return r(() => {
|
|
15
|
+
let r = { message: f }, l = a(i);
|
|
16
|
+
Object.keys({
|
|
17
|
+
...e,
|
|
18
|
+
...t
|
|
19
|
+
}).forEach((e) => {
|
|
20
|
+
e === "rules" ? n[e] && l ? r[e] = [...n[e], ...l] : n[e] ? r[e] = n[e] : l && (r[e] = l) : e === "messagePrefix" ? r[e] = n.messagePrefix || d : e === "block" ? r[e] = (s == null ? void 0 : s.value) ?? n.block : r[e] = n[e];
|
|
21
|
+
});
|
|
22
|
+
let m = [];
|
|
23
|
+
return u(m, a(o == null ? void 0 : o.class)), u(m, a(c)), r.required = p.value, r.class = m, r.style = o == null ? void 0 : o.style, r;
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
//#endregion
|
|
27
|
+
export { d as useFormItemProps, l as useRequired };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Attrs } from 'vue';
|
|
2
|
+
export declare const useDisabled: (props: Record<string, any>) => globalThis.ComputedRef<any>;
|
|
3
|
+
export declare const inputEmits: {
|
|
4
|
+
/**
|
|
5
|
+
* 输入事件
|
|
6
|
+
*/
|
|
7
|
+
"update:modelValue": null;
|
|
8
|
+
};
|
|
9
|
+
export declare const updateModelValue: (emit: (event: string, ...args: any[]) => void, value: any) => void;
|
|
10
|
+
export declare const renderFormItem: (props: Record<string, any>, { vNodes, formItemProps, slots, disabled }: {
|
|
11
|
+
disabled: ComputedRef<boolean>;
|
|
12
|
+
vNodes: VNode;
|
|
13
|
+
formItemProps: Record<string, any>;
|
|
14
|
+
slots: Readonly<any>;
|
|
15
|
+
}) => globalThis.VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
}>;
|
|
18
|
+
export declare const useInput: (props: Record<string, any>, { emit, slots, events, predicate, removeOn, attrs, block, class: clas, rules, messagePrefix, extraFormItemProps }: {
|
|
19
|
+
emit: (event: string, ...args: any[]) => void;
|
|
20
|
+
events: string[];
|
|
21
|
+
slots: Readonly<any>;
|
|
22
|
+
attrs: Attrs;
|
|
23
|
+
block?: boolean;
|
|
24
|
+
rules: object[];
|
|
25
|
+
class?: string;
|
|
26
|
+
messagePrefix?: string;
|
|
27
|
+
removeOn?: boolean;
|
|
28
|
+
predicate: (key: string) => boolean;
|
|
29
|
+
extraFormItemProps: Record<string, any>;
|
|
30
|
+
}) => {
|
|
31
|
+
emitInput: (value: any) => void;
|
|
32
|
+
render: ({ vNodes }: {
|
|
33
|
+
vNodes: VNode;
|
|
34
|
+
}) => globalThis.VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
35
|
+
[key: string]: any;
|
|
36
|
+
}>;
|
|
37
|
+
placeholder: globalThis.ComputedRef<any>;
|
|
38
|
+
disabled: globalThis.ComputedRef<any>;
|
|
39
|
+
formItemProps: globalThis.ComputedRef<Record<string, any>>;
|
|
40
|
+
autoBind: globalThis.ComputedRef<Record<string, any>>;
|
|
41
|
+
inputProps: globalThis.ComputedRef<Record<string, any>>;
|
|
42
|
+
listeners: globalThis.ComputedRef<Record<string, any>>;
|
|
43
|
+
printing: globalThis.ComputedRef<boolean>;
|
|
44
|
+
};
|
|
45
|
+
export declare const FontIcon: (props: Record<string, any>) => globalThis.VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
46
|
+
[key: string]: any;
|
|
47
|
+
}> | null;
|
package/helper/input.mjs
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { TableColumnCtx } from 'element-plus';
|
|
2
|
+
export type InputType = 'input' | 'checkbox1' | 'inputPhoneNumber' | 'user' | 'department' | 'select' | 'datePicker' | 'cascader' | 'checkbox' | 'number';
|
|
3
|
+
export type Align = 'left' | 'center' | 'right';
|
|
4
|
+
export type Option = {
|
|
5
|
+
value?: string | number;
|
|
6
|
+
label?: string;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* 表格列配置类型定义
|
|
11
|
+
* 用于定义动态表格或表单的列属性和行为
|
|
12
|
+
*/
|
|
13
|
+
export type ColumnType = {
|
|
14
|
+
/** 列显示标签文本,如不设置则默认为 prop 的转换 */
|
|
15
|
+
label?: string;
|
|
16
|
+
/** 字段属性名,对应数据对象中的键名 */
|
|
17
|
+
prop: string;
|
|
18
|
+
/** 字段类型 */
|
|
19
|
+
type?: InputType;
|
|
20
|
+
/** 是否为必填字段 */
|
|
21
|
+
required?: boolean;
|
|
22
|
+
/** 是否可编辑 */
|
|
23
|
+
editable?: boolean;
|
|
24
|
+
/** 是否设置默认值,为 true 时会根据 type 自动设置初始值 */
|
|
25
|
+
setVal?: boolean;
|
|
26
|
+
/** 字段对应的UI组件属性配置对象 */
|
|
27
|
+
attrs?: object;
|
|
28
|
+
/**
|
|
29
|
+
* 动态获取字段属性的函数
|
|
30
|
+
* @param row 当前行数据对象
|
|
31
|
+
* @returns 动态属性配置对象
|
|
32
|
+
*/
|
|
33
|
+
getAttrs?: (row: object) => object;
|
|
34
|
+
/**
|
|
35
|
+
* 判断字段是否禁用的函数
|
|
36
|
+
* @param row 当前行数据对象
|
|
37
|
+
* @returns 是否禁用
|
|
38
|
+
*/
|
|
39
|
+
isDisabled?: (row: object) => boolean;
|
|
40
|
+
/**
|
|
41
|
+
* 设置字段值的自定义函数
|
|
42
|
+
* @param row 当前行数据对象
|
|
43
|
+
* @param val 当前字段值
|
|
44
|
+
* @param item 当前列配置对象
|
|
45
|
+
* @param rows 表格所有行数据
|
|
46
|
+
*/
|
|
47
|
+
setValue?: (row: object, val: any, item: ColumnType, rows: object[]) => void;
|
|
48
|
+
/**
|
|
49
|
+
* 字段失去焦点时的回调函数
|
|
50
|
+
* @param row 当前行数据对象
|
|
51
|
+
* @param item 当前列配置对象
|
|
52
|
+
* @param rows 表格所有行数据
|
|
53
|
+
*/
|
|
54
|
+
onBlur?: (row: object, item: ColumnType, rows: object[]) => void;
|
|
55
|
+
/**
|
|
56
|
+
* 动态获取字段类型的函数
|
|
57
|
+
* @param row 当前行数据对象
|
|
58
|
+
* @param item 当前列配置对象
|
|
59
|
+
* @returns 字段类型字符串
|
|
60
|
+
*/
|
|
61
|
+
getType?: (row: object, item: ColumnType) => string;
|
|
62
|
+
/**
|
|
63
|
+
* 获取显示值
|
|
64
|
+
* @param row 当前行数据对象
|
|
65
|
+
* @param column 列对象
|
|
66
|
+
* @param item 当前列配置对象
|
|
67
|
+
* @returns 显示值
|
|
68
|
+
*/
|
|
69
|
+
getVal?: (row: object, column: TableColumnCtx<object>, item: ColumnType) => any;
|
|
70
|
+
/** 是否单选,type 为 user, department 时有效 */
|
|
71
|
+
single?: boolean;
|
|
72
|
+
/** id 属性名,type 为 user 时有效 */
|
|
73
|
+
idProp?: string;
|
|
74
|
+
/** 部门类型,type 为 department 时有效 */
|
|
75
|
+
ouType?: string;
|
|
76
|
+
/** 开始时间属性名,type 为 datePicker 时有效 */
|
|
77
|
+
start?: string;
|
|
78
|
+
/** 结束时间属性名,type 为 datePicker 时有效 */
|
|
79
|
+
end?: string;
|
|
80
|
+
options?: Option[];
|
|
81
|
+
dictType?: string;
|
|
82
|
+
idAsValue?: boolean;
|
|
83
|
+
labelAsValue?: boolean;
|
|
84
|
+
align?: Align;
|
|
85
|
+
width?: string;
|
|
86
|
+
clickable?: boolean;
|
|
87
|
+
showOverflowTooltip?: boolean;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* 定义列
|
|
91
|
+
* @param column
|
|
92
|
+
*/
|
|
93
|
+
export declare const definColumn: (column: ColumnType) => ColumnType;
|
|
94
|
+
/**
|
|
95
|
+
* 定义列
|
|
96
|
+
* @param columns
|
|
97
|
+
*/
|
|
98
|
+
export declare const defineColumns: (columns: ColumnType[]) => ColumnType[];
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { t as e } from "../chunks/BwYEpK-u.mjs";
|
|
2
|
+
import { createElementBlock as t, createElementVNode as n, normalizeClass as r, openBlock as i } from "vue";
|
|
3
|
+
import { escapeHtml as a } from "@web-utils/core";
|
|
4
|
+
import o from "highlight.js/lib/core";
|
|
5
|
+
import "highlight.js/styles/atom-one-dark-reasonable.css";
|
|
6
|
+
//#region src/components/HighlightJS.vue
|
|
7
|
+
var s = {
|
|
8
|
+
name: "HighlightJS",
|
|
9
|
+
props: {
|
|
10
|
+
language: String,
|
|
11
|
+
code: String,
|
|
12
|
+
autodetect: Boolean
|
|
13
|
+
},
|
|
14
|
+
data() {
|
|
15
|
+
return { detectedLanguage: "" };
|
|
16
|
+
},
|
|
17
|
+
computed: {
|
|
18
|
+
className() {
|
|
19
|
+
return this.detectedLanguage ? `hljs ${this.detectedLanguage}` : "";
|
|
20
|
+
},
|
|
21
|
+
highlighted() {
|
|
22
|
+
if (!this.language && !o.getLanguage(this.language)) return console.warn(`The language "${this.language}" you specified could not be found.`), {
|
|
23
|
+
language: "",
|
|
24
|
+
value: a(this.code)
|
|
25
|
+
};
|
|
26
|
+
let e = {};
|
|
27
|
+
return e = !this.language || this.autodetect ? o.highlightAuto(this.code) : o.highlight(this.code, {
|
|
28
|
+
language: this.language,
|
|
29
|
+
ignoreIllegals: this.ignoreIllegals
|
|
30
|
+
}), e;
|
|
31
|
+
},
|
|
32
|
+
ignoreIllegals() {
|
|
33
|
+
return !0;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
watch: { "highlighted.language": {
|
|
37
|
+
immediate: !0,
|
|
38
|
+
handler(e) {
|
|
39
|
+
this.detectedLanguage = e;
|
|
40
|
+
}
|
|
41
|
+
} }
|
|
42
|
+
}, c = { class: "highlight-js" }, l = ["innerHTML"];
|
|
43
|
+
function u(e, a, o, s, u, d) {
|
|
44
|
+
return i(), t("pre", c, [n("code", {
|
|
45
|
+
class: r(d.className),
|
|
46
|
+
innerHTML: d.highlighted.value
|
|
47
|
+
}, null, 10, l)]);
|
|
48
|
+
}
|
|
49
|
+
var d = /* @__PURE__ */ e(s, [["render", u]]);
|
|
50
|
+
//#endregion
|
|
51
|
+
export { d as default };
|