@cldemo/ui-kit 1.0.10 → 1.0.11
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/buildLibs/utils/Element/ClCheckboxOne.cjs +2 -0
- package/buildLibs/utils/Element/ClCheckboxOne.cjs.map +1 -0
- package/buildLibs/utils/Element/ClCheckboxOne.js +5 -0
- package/buildLibs/utils/Element/ClCheckboxOne.js.map +1 -0
- package/buildLibs/utils/Element/ClFormValidate.cjs +2 -0
- package/buildLibs/utils/Element/ClFormValidate.cjs.map +1 -0
- package/buildLibs/utils/Element/ClFormValidate.js +5 -0
- package/buildLibs/utils/Element/ClFormValidate.js.map +1 -0
- package/buildLibs/utils/Element/ClImage.cjs +1 -1
- package/buildLibs/utils/Element/ClImage.js +1 -1
- package/buildLibs/utils/Element/ClLoadFullCenter.cjs +2 -0
- package/buildLibs/utils/Element/ClLoadFullCenter.cjs.map +1 -0
- package/buildLibs/utils/Element/ClLoadFullCenter.css +1 -0
- package/buildLibs/utils/Element/ClLoadFullCenter.js +45 -0
- package/buildLibs/utils/Element/ClLoadFullCenter.js.map +1 -0
- package/buildLibs/utils/Element/ClLoadIng.cjs +2 -0
- package/buildLibs/utils/Element/ClLoadIng.cjs.map +1 -0
- package/buildLibs/utils/Element/ClLoadIng.js +5 -0
- package/buildLibs/utils/Element/ClLoadIng.js.map +1 -0
- package/buildLibs/utils/Element/ClLoadWarp.cjs +2 -0
- package/buildLibs/utils/Element/ClLoadWarp.cjs.map +1 -0
- package/buildLibs/utils/Element/ClLoadWarp.css +1 -0
- package/buildLibs/utils/Element/ClLoadWarp.js +53 -0
- package/buildLibs/utils/Element/ClLoadWarp.js.map +1 -0
- package/buildLibs/utils/Element/ClRadioOne.cjs +2 -0
- package/buildLibs/utils/Element/ClRadioOne.cjs.map +1 -0
- package/buildLibs/utils/Element/ClRadioOne.js +5 -0
- package/buildLibs/utils/Element/ClRadioOne.js.map +1 -0
- package/buildLibs/utils/Element/ClTransitionSlideupdown.cjs +2 -0
- package/buildLibs/utils/Element/ClTransitionSlideupdown.cjs.map +1 -0
- package/buildLibs/utils/Element/ClTransitionSlideupdown.js +5 -0
- package/buildLibs/utils/Element/ClTransitionSlideupdown.js.map +1 -0
- package/buildLibs/utils/Element/ClWaterfallImage.cjs +2 -0
- package/buildLibs/utils/Element/ClWaterfallImage.cjs.map +1 -0
- package/buildLibs/utils/Element/ClWaterfallImage.css +1 -0
- package/buildLibs/utils/Element/ClWaterfallImage.js +48 -0
- package/buildLibs/utils/Element/ClWaterfallImage.js.map +1 -0
- package/buildLibs/utils/Mobile/ClBanner.cjs +1 -1
- package/buildLibs/utils/Mobile/ClBanner.js +1 -1
- package/buildLibs/utils/Mobile/ClDropdownMenuM.cjs +1 -1
- package/buildLibs/utils/Mobile/ClDropdownMenuM.cjs.map +1 -1
- package/buildLibs/utils/Mobile/ClDropdownMenuM.js +13 -12
- package/buildLibs/utils/Mobile/ClDropdownMenuM.js.map +1 -1
- package/buildLibs/utils/Mobile/ClDropdownMenuMItem.cjs +2 -0
- package/buildLibs/utils/Mobile/ClDropdownMenuMItem.cjs.map +1 -0
- package/buildLibs/utils/Mobile/ClDropdownMenuMItem.js +160 -0
- package/buildLibs/utils/Mobile/ClDropdownMenuMItem.js.map +1 -0
- package/buildLibs/utils/Mobile/ClPicker.cjs +1 -1
- package/buildLibs/utils/Mobile/ClPicker.js +1 -1
- package/buildLibs/utils/Mobile/ClPickerDate.cjs +1 -1
- package/buildLibs/utils/Mobile/ClPickerDate.js +1 -1
- package/buildLibs/utils/Mobile/ClPickerTime.cjs +1 -1
- package/buildLibs/utils/Mobile/ClPickerTime.js +1 -1
- package/buildLibs/utils/Mobile/ClPullToRefresh.cjs +1 -1
- package/buildLibs/utils/Mobile/ClPullToRefresh.js +1 -1
- package/buildLibs/utils/Mobile/ClScrollCard.cjs +1 -1
- package/buildLibs/utils/Mobile/ClScrollCard.js +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BPgunUb2.js → Index.vue_vue_type_script_setup_true_lang-6KT1IHDu.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BPgunUb2.js.map → Index.vue_vue_type_script_setup_true_lang-6KT1IHDu.js.map} +1 -1
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-B-yZtW91.js +71 -0
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-B-yZtW91.js.map +1 -0
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-gtDsWrhd.js → Index.vue_vue_type_script_setup_true_lang-BDPkmgGP.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-gtDsWrhd.js.map → Index.vue_vue_type_script_setup_true_lang-BDPkmgGP.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-D_IwyxiV.js → Index.vue_vue_type_script_setup_true_lang-Bnjm8vi-.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-D_IwyxiV.js.map → Index.vue_vue_type_script_setup_true_lang-Bnjm8vi-.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Cpb9rd-y.js → Index.vue_vue_type_script_setup_true_lang-Bs8FGIQa.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Cpb9rd-y.js.map → Index.vue_vue_type_script_setup_true_lang-Bs8FGIQa.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-hm75HKxP.js → Index.vue_vue_type_script_setup_true_lang-C7FRB7fV.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-hm75HKxP.js.map → Index.vue_vue_type_script_setup_true_lang-C7FRB7fV.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Xe4BacqD.js → Index.vue_vue_type_script_setup_true_lang-CFzimlB_.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Xe4BacqD.js.map → Index.vue_vue_type_script_setup_true_lang-CFzimlB_.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Bp39ENoP.js → Index.vue_vue_type_script_setup_true_lang-CGeXNRtY.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Bp39ENoP.js.map → Index.vue_vue_type_script_setup_true_lang-CGeXNRtY.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-4NloX3Qk.js → Index.vue_vue_type_script_setup_true_lang-CSV9UWJx.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-4NloX3Qk.js.map → Index.vue_vue_type_script_setup_true_lang-CSV9UWJx.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-CRJ3-pTH.js → Index.vue_vue_type_script_setup_true_lang-ChE1tZwr.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-CRJ3-pTH.js.map → Index.vue_vue_type_script_setup_true_lang-ChE1tZwr.js.map} +1 -1
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-CjgtxJ6a.js +2 -0
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-CjgtxJ6a.js.map +1 -0
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-N1GhNa1r.js → Index.vue_vue_type_script_setup_true_lang-CpuYxzDD.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-N1GhNa1r.js.map → Index.vue_vue_type_script_setup_true_lang-CpuYxzDD.js.map} +1 -1
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-CumTbPny.js +2 -0
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-CumTbPny.js.map +1 -0
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-NdqbsOrG.js → Index.vue_vue_type_script_setup_true_lang-CvF_iIQS.js} +2 -2
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-NdqbsOrG.js.map → Index.vue_vue_type_script_setup_true_lang-CvF_iIQS.js.map} +1 -1
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-CxVAWr6w.js +266 -0
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-CxVAWr6w.js.map +1 -0
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-DgMvq-RQ.js → Index.vue_vue_type_script_setup_true_lang-DFKjhT_C.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-DgMvq-RQ.js.map → Index.vue_vue_type_script_setup_true_lang-DFKjhT_C.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-D22m4oiN.js → Index.vue_vue_type_script_setup_true_lang-DdWmaT86.js} +2 -2
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-D22m4oiN.js.map → Index.vue_vue_type_script_setup_true_lang-DdWmaT86.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BtoovAWs.js → Index.vue_vue_type_script_setup_true_lang-DxHfO8TH.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BtoovAWs.js.map → Index.vue_vue_type_script_setup_true_lang-DxHfO8TH.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-CW63TdvW.js → Index.vue_vue_type_script_setup_true_lang-HwprdMv4.js} +2 -2
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-CW63TdvW.js.map → Index.vue_vue_type_script_setup_true_lang-HwprdMv4.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BLp0owhs.js → Index.vue_vue_type_script_setup_true_lang-IGgTDykL.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BLp0owhs.js.map → Index.vue_vue_type_script_setup_true_lang-IGgTDykL.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BKr3_J68.js → Index.vue_vue_type_script_setup_true_lang-Lwl-M8kR.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BKr3_J68.js.map → Index.vue_vue_type_script_setup_true_lang-Lwl-M8kR.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Dxb_K2w0.js → Index.vue_vue_type_script_setup_true_lang-gsnpWNek.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Dxb_K2w0.js.map → Index.vue_vue_type_script_setup_true_lang-gsnpWNek.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-EGKo8cIw.js → Index.vue_vue_type_script_setup_true_lang-huUkL0wY.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-EGKo8cIw.js.map → Index.vue_vue_type_script_setup_true_lang-huUkL0wY.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BFSRH9yz.js → Index.vue_vue_type_script_setup_true_lang-in1ZSapu.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BFSRH9yz.js.map → Index.vue_vue_type_script_setup_true_lang-in1ZSapu.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-C8HQVerr.js → Index.vue_vue_type_script_setup_true_lang-r6RBdV4y.js} +2 -2
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-C8HQVerr.js.map → Index.vue_vue_type_script_setup_true_lang-r6RBdV4y.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-DvzXfKhj.js → Index.vue_vue_type_script_setup_true_lang-tTHdssVu.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-DvzXfKhj.js.map → Index.vue_vue_type_script_setup_true_lang-tTHdssVu.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BxxIDGfR.js → Index.vue_vue_type_script_setup_true_lang-tjRv0vNR.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-BxxIDGfR.js.map → Index.vue_vue_type_script_setup_true_lang-tjRv0vNR.js.map} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Bk2WD0GS.js → Index.vue_vue_type_script_setup_true_lang-yahz6Ej5.js} +1 -1
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-Bk2WD0GS.js.map → Index.vue_vue_type_script_setup_true_lang-yahz6Ej5.js.map} +1 -1
- package/buildLibs/utils/Shared/Index24.css +1 -1
- package/buildLibs/utils/Shared/Index25.css +1 -1
- package/buildLibs/utils/Shared/Index26.css +1 -1
- package/buildLibs/utils/Shared/Index27.css +1 -1
- package/buildLibs/utils/Shared/Index28.css +1 -1
- package/buildLibs/utils/Shared/Index29.css +1 -1
- package/buildLibs/utils/Shared/Index30.css +1 -1
- package/buildLibs/utils/Shared/Index31.css +1 -1
- package/buildLibs/utils/Shared/Index32.css +1 -1
- package/buildLibs/utils/Shared/Index33.css +1 -1
- package/buildLibs/utils/Shared/Index34.css +1 -1
- package/buildLibs/utils/Shared/Index35.css +1 -1
- package/buildLibs/utils/Shared/Index36.css +1 -1
- package/buildLibs/utils/Shared/Index37.css +1 -0
- package/buildLibs/utils/Shared/One.vue_vue_type_script_setup_true_lang-CR1t8XZl.js +2 -0
- package/buildLibs/utils/Shared/One.vue_vue_type_script_setup_true_lang-CR1t8XZl.js.map +1 -0
- package/buildLibs/utils/Shared/One.vue_vue_type_script_setup_true_lang-oBeFlRzi.js +148 -0
- package/buildLibs/utils/Shared/One.vue_vue_type_script_setup_true_lang-oBeFlRzi.js.map +1 -0
- package/buildLibs/utils/Shared/Validate.vue_vue_type_script_setup_true_lang-Bquk40ES.js +406 -0
- package/buildLibs/utils/Shared/Validate.vue_vue_type_script_setup_true_lang-Bquk40ES.js.map +1 -0
- package/buildLibs/utils/Shared/Validate.vue_vue_type_script_setup_true_lang-CAmKX5pn.js +2 -0
- package/buildLibs/utils/Shared/Validate.vue_vue_type_script_setup_true_lang-CAmKX5pn.js.map +1 -0
- package/buildLibs/utils/Shared/{Index.vue_vue_type_script_setup_true_lang-C9mOHVoE.js → use-CKNkvmW4.js} +78 -141
- package/buildLibs/utils/Shared/use-CKNkvmW4.js.map +1 -0
- package/buildLibs/utils/Shared/use-D0Yu2Dbn.js +2 -0
- package/buildLibs/utils/Shared/use-D0Yu2Dbn.js.map +1 -0
- package/buildLibs/utils/Web/ClCropperPreview.cjs +1 -1
- package/buildLibs/utils/Web/ClCropperPreview.js +2 -2
- package/buildLibs/utils/Web/ClDatetime.cjs +1 -1
- package/buildLibs/utils/Web/ClDatetime.js +1 -1
- package/buildLibs/utils/Web/ClDropdownMenuItem.cjs +2 -0
- package/buildLibs/utils/Web/ClDropdownMenuItem.cjs.map +1 -0
- package/buildLibs/utils/Web/ClDropdownMenuItem.css +1 -0
- package/buildLibs/utils/Web/ClDropdownMenuItem.js +72 -0
- package/buildLibs/utils/Web/ClDropdownMenuItem.js.map +1 -0
- package/buildLibs/utils/Web/ClEcharts.cjs +1 -1
- package/buildLibs/utils/Web/ClEcharts.js +1 -1
- package/buildLibs/utils/Web/ClEchartsLineAxisTag.cjs +1 -1
- package/buildLibs/utils/Web/ClEchartsLineAxisTag.js +1 -1
- package/buildLibs/utils/Web/ClFileUpload.cjs +1 -1
- package/buildLibs/utils/Web/ClFileUpload.js +1 -1
- package/buildLibs/utils/Web/ClInputTag.cjs +1 -1
- package/buildLibs/utils/Web/ClInputTag.js +1 -1
- package/buildLibs/utils/Web/ClPaginate.cjs +1 -1
- package/buildLibs/utils/Web/ClPaginate.js +1 -1
- package/buildLibs/utils/Web/ClPreviewExample.cjs +1 -1
- package/buildLibs/utils/Web/ClPreviewExample.js +1 -1
- package/buildLibs/utils/Web/ClScrollXFence.cjs +1 -1
- package/buildLibs/utils/Web/ClScrollXFence.js +1 -1
- package/buildLibs/utils/Web/ClSelect.cjs +1 -1
- package/buildLibs/utils/Web/ClSelect.js +1 -1
- package/buildLibs/utils/Web/ClSelectCascade.cjs +1 -1
- package/buildLibs/utils/Web/ClSelectCascade.js +1 -1
- package/buildLibs/utils/Web/ClSelectTag.cjs +1 -1
- package/buildLibs/utils/Web/ClSelectTag.js +1 -1
- package/buildLibs/utils/Web/ClSelectTree.cjs +1 -1
- package/buildLibs/utils/Web/ClSelectTree.js +1 -1
- package/buildLibs/utils/Web/ClTable.cjs +1 -1
- package/buildLibs/utils/Web/ClTable.cjs.map +1 -1
- package/buildLibs/utils/Web/ClTable.js +1081 -1218
- package/buildLibs/utils/Web/ClTable.js.map +1 -1
- package/buildLibs/utils/Web/ClTabs.cjs +1 -1
- package/buildLibs/utils/Web/ClTabs.js +1 -1
- package/buildLibs/utils/Web/ClTree.cjs +1 -1
- package/buildLibs/utils/Web/ClTree.js +1 -1
- package/buildLibs/utils/Web/ClXeditable.cjs +1 -1
- package/buildLibs/utils/Web/ClXeditable.cjs.map +1 -1
- package/buildLibs/utils/Web/ClXeditable.js +33 -32
- package/buildLibs/utils/Web/ClXeditable.js.map +1 -1
- package/package.json +21 -8
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-B-yxIx8F.js +0 -663
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-B-yxIx8F.js.map +0 -1
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-C9mOHVoE.js.map +0 -1
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-CcOk4kyd.js +0 -2
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-CcOk4kyd.js.map +0 -1
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-DtZgYjSl.js +0 -2
- package/buildLibs/utils/Shared/Index.vue_vue_type_script_setup_true_lang-DtZgYjSl.js.map +0 -1
- package/buildLibs/utils/Shared/Video-BV0YLYT2.js +0 -114
- package/buildLibs/utils/Shared/Video-BV0YLYT2.js.map +0 -1
- package/buildLibs/utils/Shared/Video-c3jHJSxl.js +0 -2
- package/buildLibs/utils/Shared/Video-c3jHJSxl.js.map +0 -1
- package/buildLibs/utils/Shared/Video.css +0 -1
- package/buildLibs/utils/Web/ClDropdownMenuM.css +0 -1
- package/buildLibs/utils/Web/ClPreview.cjs +0 -2
- package/buildLibs/utils/Web/ClPreview.cjs.map +0 -1
- package/buildLibs/utils/Web/ClPreview.css +0 -1
- package/buildLibs/utils/Web/ClPreview.js +0 -353
- package/buildLibs/utils/Web/ClPreview.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.vue_vue_type_script_setup_true_lang-DgMvq-RQ.js","sources":["../../../src/libs/Web/ECharts/theme/macarons.ts","../../../src/libs/Web/ECharts/Index.vue"],"sourcesContent":["const colorPalette = [\n \"#2ec7c9\",\n \"#b6a2de\",\n \"#5ab1ef\",\n \"#ffb980\",\n \"#d87a80\",\n \"#8d98b3\",\n \"#e5cf0d\",\n \"#97b552\",\n \"#95706d\",\n \"#dc69aa\",\n \"#07a2a4\",\n \"#9a7fd1\",\n \"#588dd5\",\n \"#f5994e\",\n \"#c05050\",\n \"#59678c\",\n \"#c9ab00\",\n \"#7eb00a\",\n \"#6f5553\",\n \"#c14089\",\n];\n\nexport const theme = {\n color: colorPalette,\n\n title: {\n textStyle: {\n fontWeight: \"normal\",\n color: \"#008acd\",\n },\n },\n\n visualMap: {\n itemWidth: 15,\n color: [\"#5ab1ef\", \"#e0ffff\"],\n },\n\n /* toolbox: {\n iconStyle: {\n normal: {\n borderColor: colorPalette[0],\n },\n },\n }, */\n\n tooltip: {\n backgroundColor: \"rgba(50,50,50,0.5)\",\n axisPointer: {\n type: \"line\",\n lineStyle: {\n color: \"#008acd\",\n },\n crossStyle: {\n color: \"#008acd\",\n },\n shadowStyle: {\n color: \"rgba(200,200,200,0.2)\",\n },\n },\n },\n\n dataZoom: {\n dataBackgroundColor: \"#efefff\",\n fillerColor: \"rgba(182,162,222,0.2)\",\n handleColor: \"#008acd\",\n },\n\n grid: {\n borderColor: \"#eee\",\n },\n\n categoryAxis: {\n axisLine: {\n lineStyle: {\n color: \"#008acd\",\n },\n },\n splitLine: {\n lineStyle: {\n color: [\"#eee\"],\n },\n },\n },\n\n valueAxis: {\n axisLine: {\n lineStyle: {\n color: \"#008acd\",\n },\n },\n splitArea: {\n show: true,\n areaStyle: {\n color: [\"rgba(250,250,250,0.1)\", \"rgba(200,200,200,0.1)\"],\n },\n },\n splitLine: {\n lineStyle: {\n color: [\"#eee\"],\n },\n },\n },\n\n timeline: {\n lineStyle: {\n color: \"#008acd\",\n },\n controlStyle: {\n color: \"#008acd\",\n borderColor: \"#008acd\",\n },\n symbol: \"emptyCircle\",\n symbolSize: 3,\n },\n\n line: {\n smooth: true,\n symbol: \"emptyCircle\",\n symbolSize: 3,\n },\n\n candlestick: {\n itemStyle: {\n color: \"#d87a80\",\n color0: \"#2ec7c9\",\n },\n lineStyle: {\n width: 1,\n color: \"#d87a80\",\n color0: \"#2ec7c9\",\n },\n areaStyle: {\n color: \"#2ec7c9\",\n color0: \"#b6a2de\",\n },\n },\n\n scatter: {\n symbol: \"circle\",\n symbolSize: 4,\n },\n\n map: {\n /* itemStyle: {\n color: \"#ddd\",\n },\n areaStyle: {\n color: \"#fe994e\",\n },\n label: {\n color: \"#d87a80\",\n }, */\n\n itemStyle: {\n color: \"#2ec7c9\", // 省会圆点\n },\n label: {\n color: \"#000000\",\n },\n },\n\n graph: {\n itemStyle: {\n color: \"#d87a80\",\n },\n linkStyle: {\n color: \"#2ec7c9\",\n },\n },\n\n gauge: {\n axisLine: {\n lineStyle: {\n color: [\n [0.2, \"#2ec7c9\"],\n [0.8, \"#5ab1ef\"],\n [1, \"#d87a80\"],\n ],\n width: 10,\n },\n },\n axisTick: {\n splitNumber: 10,\n length: 15,\n lineStyle: {\n color: \"auto\",\n },\n },\n splitLine: {\n length: 22,\n lineStyle: {\n color: \"auto\",\n },\n },\n pointer: {\n width: 5,\n },\n },\n};\n","<template>\n <div\n :id=\"elId\"\n :class=\"clsParent\"\n :style=\"styParent\"\n >\n <slot name=\"chartHead\"></slot>\n <div\n ref=\"refElChart\"\n :style=\"styChart\"\n role=\"img\"\n aria-label=\"图表\"\n ></div>\n <cl-load-ing\n :isLoadIng=\"optBase.isShowLoad\"\n :isEmpty=\"optBase.isEmptyData\"\n >\n <template v-slot:nothingData>\n <slot name=\"nothingData\"></slot>\n </template>\n </cl-load-ing>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n ref,\n reactive,\n computed,\n watch,\n onMounted,\n onBeforeUnmount,\n onActivated,\n onDeactivated,\n nextTick,\n} from 'vue';\n// echarts 由 <cl-echarts> 组件按需加载:type-only import 不产生运行时依赖,\n// 运行时模块在首次绘图表时才动态 import('echarts'),避免被跨惰性页共享提升进入口首屏\nimport type { EChartsType, EChartsOption } from 'echarts';\nimport { theme as themeMacarons } from './theme/macarons';\nimport CommonBase from '../../Common/base';\nimport CommonElement from '../../Common/Element/index';\nimport { Resize as ResizeEvent } from '../../Common/Element/Event/index';\nimport ClLoadIng from '../../Element/Load/Ing.vue';\nimport './index.css';\n\n// 懒加载 echarts 运行时实例(首次图表初始化时动态 import,模块级缓存)\nlet _echartsPromise: Promise<typeof import('echarts')> | null = null;\nlet _themeRegistered = false;\nconst _getECharts = () => {\n if (!_echartsPromise) _echartsPromise = import('echarts');\n return _echartsPromise;\n};\n\ndefineOptions({ name: 'ClEcharts' });\n\nconst props = defineProps({\n id: String, // desc: 自定义ID\n chartOption: Object, // desc: ECharts 配置项(整体替换引用以更新图表)\n className: String, // desc: 自定义CSS类名\n height: {\n type: [Number, String],\n default: 400, // desc: 图表高度(Number 单位 px;String 需带 CSS 单位,如 100%、400px)\n },\n isRunLoad: {\n type: Boolean,\n default: false, // desc: 是否显示加载态\n },\n});\n\nconst emit = defineEmits<{\n (e: 'onInitFirst'): void; // desc: 图表初始化完成后触发(首帧渲染后延迟约 50ms)\n (e: 'onHideResize'): void; // desc: 窗口尺寸变化时检测到父容器隐藏则触发\n (e: 'onError', msg: string): void; // desc: 图表配置异常时触发\n}>();\n\n// slots:\n// chartHead: 图表头部插槽\n// nothingData: 空数据态插槽\n\nconst elId = props.id; // || `echarts-${CommonBase.getRandom(N)}`\n\nconst refElChart = ref<HTMLElement | null>(null);\n\nconst optBase = reactive({\n isShowLoad: props.isRunLoad,\n isEmptyData: false,\n});\n\nconst _pageData: {\n resizeEvent: ResizeEvent | null;\n chartObject: EChartsType | null;\n initTimer: ReturnType<typeof setTimeout> | null;\n isHideEmit: boolean;\n} = {\n resizeEvent: null,\n chartObject: null,\n initTimer: null,\n isHideEmit: false,\n};\n\nconst clsParent = computed(() => {\n let cls: Record<string, boolean> = {\n 'panel-echarts': true,\n 'chart-loading': optBase.isShowLoad || optBase.isEmptyData,\n };\n cls = CommonBase.getJsonMerge(cls, CommonElement.getClassNameJson(props.className));\n return cls;\n});\n\nconst styParent = computed(() => {\n const sty: Record<string, string> = {};\n if (optBase.isShowLoad || optBase.isEmptyData) {\n sty.height = '100%';\n }\n return sty;\n});\n\nconst styChart = computed(() => {\n const sty: Record<string, string> = {};\n const { height } = props;\n if (typeof height === 'number' && CommonBase.isFinite(height) && height > 0) {\n sty.height = `${height}px`;\n } else if (CommonBase.isNonEmptyString(height)) {\n sty.height = height;\n }\n return sty;\n});\n\nconst _emitHideResize = () => {\n emit('onHideResize');\n};\n\nconst _emitInitFirst = () => {\n emit('onInitFirst');\n};\n\nconst _runResize = () => {\n if (_pageData.chartObject) {\n _pageData.chartObject.resize();\n }\n};\n\nconst _initBind = async (options?: EChartsOption) => {\n if (!refElChart.value) {\n return;\n }\n const isEmpty = CommonBase.isEmpty(options);\n optBase.isEmptyData = isEmpty;\n if (!isEmpty && options) {\n try {\n // echarts 按需动态加载(含首次注册主题)\n const ECharts = await _getECharts();\n if (!_themeRegistered) {\n ECharts.registerTheme('macarons', themeMacarons);\n _themeRegistered = true;\n }\n if (!_pageData.chartObject) {\n _pageData.chartObject = ECharts.init(refElChart.value, 'macarons');\n _pageData.initTimer = setTimeout(() => {\n _emitInitFirst();\n }, 50); // 等首帧渲染完成后触发,保证父组件拿到真实图表实例\n }\n _pageData.chartObject.setOption(options, true);\n _runResize();\n } catch {\n if (_pageData.initTimer) {\n clearTimeout(_pageData.initTimer);\n _pageData.initTimer = null;\n }\n emit('onError', '图表配置异常');\n }\n } else if (_pageData.chartObject) {\n _pageData.chartObject.clear();\n }\n};\n\nconst _onWinResize = () => {\n if (_pageData.chartObject) {\n const isCheckHide = CommonElement.isHiddenParent(refElChart.value);\n if (!isCheckHide) {\n if (_pageData.isHideEmit) {\n _pageData.isHideEmit = false;\n }\n _runResize();\n } else if (!_pageData.isHideEmit) {\n _pageData.isHideEmit = true;\n _emitHideResize();\n }\n }\n};\n\nconst _initMain = () => {\n void _initBind(props.chartOption);\n};\n\nonMounted(() => {\n _pageData.resizeEvent = new ResizeEvent({\n callback: () => {\n _onWinResize();\n },\n });\n nextTick(() => {\n _initMain();\n });\n});\n\nonBeforeUnmount(() => {\n if (_pageData.resizeEvent) {\n _pageData.resizeEvent.destroy();\n }\n if (_pageData.initTimer) {\n clearTimeout(_pageData.initTimer);\n }\n if (_pageData.chartObject) {\n _pageData.chartObject.dispose();\n _pageData.chartObject = null;\n }\n});\n\nonActivated(() => {\n if (!_pageData.resizeEvent) {\n _pageData.resizeEvent = new ResizeEvent({\n callback: () => {\n _onWinResize();\n },\n });\n }\n nextTick(() => {\n _runResize();\n });\n});\n\nonDeactivated(() => {\n if (_pageData.resizeEvent) {\n _pageData.resizeEvent.destroy();\n _pageData.resizeEvent = null;\n }\n});\n\nwatch(\n () => props.isRunLoad,\n newValue => {\n optBase.isShowLoad = newValue;\n },\n);\n\nwatch(\n () => props.chartOption,\n newValue => {\n void _initBind(newValue);\n },\n);\n\nconst getChartObject = () => {\n return _pageData.chartObject;\n};\n\nconst getChartElement = () => {\n return refElChart.value;\n};\n\nconst resize = () => {\n _runResize();\n};\n\nexport interface ClEchartsExpose {\n getChartObject(): EChartsType | null;\n getChartElement(): HTMLElement | null;\n resize(): void;\n}\n\ndefineExpose({\n getChartObject,\n getChartElement,\n resize,\n});\n</script>\n"],"names":["colorPalette","theme","_echartsPromise","_themeRegistered","_getECharts","props","__props","emit","__emit","elId","refElChart","ref","optBase","reactive","_pageData","clsParent","computed","cls","CommonBase","CommonElement","styParent","sty","styChart","height","_emitHideResize","_emitInitFirst","_runResize","_initBind","options","isEmpty","ECharts","themeMacarons","_onWinResize","_initMain","onMounted","ResizeEvent","nextTick","onBeforeUnmount","onActivated","onDeactivated","watch","newValue","__expose","_createElementBlock","_unref","_renderSlot","_ctx","_createElementVNode","_createVNode","ClLoadIng"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Index.vue_vue_type_script_setup_true_lang-DFKjhT_C.js","sources":["../../../src/libs/Web/ECharts/theme/macarons.ts","../../../src/libs/Web/ECharts/Index.vue"],"sourcesContent":["const colorPalette = [\n \"#2ec7c9\",\n \"#b6a2de\",\n \"#5ab1ef\",\n \"#ffb980\",\n \"#d87a80\",\n \"#8d98b3\",\n \"#e5cf0d\",\n \"#97b552\",\n \"#95706d\",\n \"#dc69aa\",\n \"#07a2a4\",\n \"#9a7fd1\",\n \"#588dd5\",\n \"#f5994e\",\n \"#c05050\",\n \"#59678c\",\n \"#c9ab00\",\n \"#7eb00a\",\n \"#6f5553\",\n \"#c14089\",\n];\n\nexport const theme = {\n color: colorPalette,\n\n title: {\n textStyle: {\n fontWeight: \"normal\",\n color: \"#008acd\",\n },\n },\n\n visualMap: {\n itemWidth: 15,\n color: [\"#5ab1ef\", \"#e0ffff\"],\n },\n\n /* toolbox: {\n iconStyle: {\n normal: {\n borderColor: colorPalette[0],\n },\n },\n }, */\n\n tooltip: {\n backgroundColor: \"rgba(50,50,50,0.5)\",\n axisPointer: {\n type: \"line\",\n lineStyle: {\n color: \"#008acd\",\n },\n crossStyle: {\n color: \"#008acd\",\n },\n shadowStyle: {\n color: \"rgba(200,200,200,0.2)\",\n },\n },\n },\n\n dataZoom: {\n dataBackgroundColor: \"#efefff\",\n fillerColor: \"rgba(182,162,222,0.2)\",\n handleColor: \"#008acd\",\n },\n\n grid: {\n borderColor: \"#eee\",\n },\n\n categoryAxis: {\n axisLine: {\n lineStyle: {\n color: \"#008acd\",\n },\n },\n splitLine: {\n lineStyle: {\n color: [\"#eee\"],\n },\n },\n },\n\n valueAxis: {\n axisLine: {\n lineStyle: {\n color: \"#008acd\",\n },\n },\n splitArea: {\n show: true,\n areaStyle: {\n color: [\"rgba(250,250,250,0.1)\", \"rgba(200,200,200,0.1)\"],\n },\n },\n splitLine: {\n lineStyle: {\n color: [\"#eee\"],\n },\n },\n },\n\n timeline: {\n lineStyle: {\n color: \"#008acd\",\n },\n controlStyle: {\n color: \"#008acd\",\n borderColor: \"#008acd\",\n },\n symbol: \"emptyCircle\",\n symbolSize: 3,\n },\n\n line: {\n smooth: true,\n symbol: \"emptyCircle\",\n symbolSize: 3,\n },\n\n candlestick: {\n itemStyle: {\n color: \"#d87a80\",\n color0: \"#2ec7c9\",\n },\n lineStyle: {\n width: 1,\n color: \"#d87a80\",\n color0: \"#2ec7c9\",\n },\n areaStyle: {\n color: \"#2ec7c9\",\n color0: \"#b6a2de\",\n },\n },\n\n scatter: {\n symbol: \"circle\",\n symbolSize: 4,\n },\n\n map: {\n /* itemStyle: {\n color: \"#ddd\",\n },\n areaStyle: {\n color: \"#fe994e\",\n },\n label: {\n color: \"#d87a80\",\n }, */\n\n itemStyle: {\n color: \"#2ec7c9\", // 省会圆点\n },\n label: {\n color: \"#000000\",\n },\n },\n\n graph: {\n itemStyle: {\n color: \"#d87a80\",\n },\n linkStyle: {\n color: \"#2ec7c9\",\n },\n },\n\n gauge: {\n axisLine: {\n lineStyle: {\n color: [\n [0.2, \"#2ec7c9\"],\n [0.8, \"#5ab1ef\"],\n [1, \"#d87a80\"],\n ],\n width: 10,\n },\n },\n axisTick: {\n splitNumber: 10,\n length: 15,\n lineStyle: {\n color: \"auto\",\n },\n },\n splitLine: {\n length: 22,\n lineStyle: {\n color: \"auto\",\n },\n },\n pointer: {\n width: 5,\n },\n },\n};\n","<template>\n <div\n :id=\"elId\"\n :class=\"clsParent\"\n :style=\"styParent\"\n >\n <slot name=\"chartHead\"></slot>\n <div\n ref=\"refElChart\"\n :style=\"styChart\"\n role=\"img\"\n aria-label=\"图表\"\n ></div>\n <cl-load-ing\n :isLoadIng=\"optBase.isShowLoad\"\n :isEmpty=\"optBase.isEmptyData\"\n >\n <template v-slot:nothingData>\n <slot name=\"nothingData\"></slot>\n </template>\n </cl-load-ing>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n ref,\n reactive,\n computed,\n watch,\n onMounted,\n onBeforeUnmount,\n onActivated,\n onDeactivated,\n nextTick,\n} from 'vue';\n// echarts 由 <cl-echarts> 组件按需加载:type-only import 不产生运行时依赖,\n// 运行时模块在首次绘图表时才动态 import('echarts'),避免被跨惰性页共享提升进入口首屏\nimport type { EChartsType, EChartsOption } from 'echarts';\nimport { theme as themeMacarons } from './theme/macarons';\nimport CommonBase from '../../Common/base';\nimport CommonElement from '../../Common/Element/index';\nimport { Resize as ResizeEvent } from '../../Common/Element/Event/index';\nimport ClLoadIng from '../../Element/Load/Ing.vue';\nimport './index.css';\n\n// 懒加载 echarts 运行时实例(首次图表初始化时动态 import,模块级缓存)\nlet _echartsPromise: Promise<typeof import('echarts')> | null = null;\nlet _themeRegistered = false;\nconst _getECharts = () => {\n if (!_echartsPromise) _echartsPromise = import('echarts');\n return _echartsPromise;\n};\n\ndefineOptions({ name: 'ClEcharts' });\n\nconst props = defineProps({\n id: String, // desc: 自定义ID\n chartOption: Object, // desc: ECharts 配置项(整体替换引用以更新图表)\n className: String, // desc: 自定义CSS类名\n height: {\n type: [Number, String],\n default: 400, // desc: 图表高度(Number 单位 px;String 需带 CSS 单位,如 100%、400px)\n },\n isRunLoad: {\n type: Boolean,\n default: false, // desc: 是否显示加载态\n },\n});\n\nconst emit = defineEmits<{\n (e: 'onInitFirst'): void; // desc: 图表初始化完成后触发(首帧渲染后延迟约 50ms)\n (e: 'onHideResize'): void; // desc: 窗口尺寸变化时检测到父容器隐藏则触发\n (e: 'onError', msg: string): void; // desc: 图表配置异常时触发\n}>();\n\n// slots:\n// chartHead: 图表头部插槽\n// nothingData: 空数据态插槽\n\nconst elId = props.id; // || `echarts-${CommonBase.getRandom(N)}`\n\nconst refElChart = ref<HTMLElement | null>(null);\n\nconst optBase = reactive({\n isShowLoad: props.isRunLoad,\n isEmptyData: false,\n});\n\nconst _pageData: {\n resizeEvent: ResizeEvent | null;\n chartObject: EChartsType | null;\n initTimer: ReturnType<typeof setTimeout> | null;\n isHideEmit: boolean;\n} = {\n resizeEvent: null,\n chartObject: null,\n initTimer: null,\n isHideEmit: false,\n};\n\nconst clsParent = computed(() => {\n let cls: Record<string, boolean> = {\n 'panel-echarts': true,\n 'chart-loading': optBase.isShowLoad || optBase.isEmptyData,\n };\n cls = CommonBase.getJsonMerge(cls, CommonElement.getClassNameJson(props.className));\n return cls;\n});\n\nconst styParent = computed(() => {\n const sty: Record<string, string> = {};\n if (optBase.isShowLoad || optBase.isEmptyData) {\n sty.height = '100%';\n }\n return sty;\n});\n\nconst styChart = computed(() => {\n const sty: Record<string, string> = {};\n const { height } = props;\n if (typeof height === 'number' && CommonBase.isFinite(height) && height > 0) {\n sty.height = `${height}px`;\n } else if (CommonBase.isNonEmptyString(height)) {\n sty.height = height;\n }\n return sty;\n});\n\nconst _emitHideResize = () => {\n emit('onHideResize');\n};\n\nconst _emitInitFirst = () => {\n emit('onInitFirst');\n};\n\nconst _runResize = () => {\n if (_pageData.chartObject) {\n _pageData.chartObject.resize();\n }\n};\n\nconst _initBind = async (options?: EChartsOption) => {\n if (!refElChart.value) {\n return;\n }\n const isEmpty = CommonBase.isEmpty(options);\n optBase.isEmptyData = isEmpty;\n if (!isEmpty && options) {\n try {\n // echarts 按需动态加载(含首次注册主题)\n const ECharts = await _getECharts();\n if (!_themeRegistered) {\n ECharts.registerTheme('macarons', themeMacarons);\n _themeRegistered = true;\n }\n if (!_pageData.chartObject) {\n _pageData.chartObject = ECharts.init(refElChart.value, 'macarons');\n _pageData.initTimer = setTimeout(() => {\n _emitInitFirst();\n }, 50); // 等首帧渲染完成后触发,保证父组件拿到真实图表实例\n }\n _pageData.chartObject.setOption(options, true);\n _runResize();\n } catch {\n if (_pageData.initTimer) {\n clearTimeout(_pageData.initTimer);\n _pageData.initTimer = null;\n }\n emit('onError', '图表配置异常');\n }\n } else if (_pageData.chartObject) {\n _pageData.chartObject.clear();\n }\n};\n\nconst _onWinResize = () => {\n if (_pageData.chartObject) {\n const isCheckHide = CommonElement.isHiddenParent(refElChart.value);\n if (!isCheckHide) {\n if (_pageData.isHideEmit) {\n _pageData.isHideEmit = false;\n }\n _runResize();\n } else if (!_pageData.isHideEmit) {\n _pageData.isHideEmit = true;\n _emitHideResize();\n }\n }\n};\n\nconst _initMain = () => {\n void _initBind(props.chartOption);\n};\n\nonMounted(() => {\n _pageData.resizeEvent = new ResizeEvent({\n callback: () => {\n _onWinResize();\n },\n });\n nextTick(() => {\n _initMain();\n });\n});\n\nonBeforeUnmount(() => {\n if (_pageData.resizeEvent) {\n _pageData.resizeEvent.destroy();\n }\n if (_pageData.initTimer) {\n clearTimeout(_pageData.initTimer);\n }\n if (_pageData.chartObject) {\n _pageData.chartObject.dispose();\n _pageData.chartObject = null;\n }\n});\n\nonActivated(() => {\n if (!_pageData.resizeEvent) {\n _pageData.resizeEvent = new ResizeEvent({\n callback: () => {\n _onWinResize();\n },\n });\n }\n nextTick(() => {\n _runResize();\n });\n});\n\nonDeactivated(() => {\n if (_pageData.resizeEvent) {\n _pageData.resizeEvent.destroy();\n _pageData.resizeEvent = null;\n }\n});\n\nwatch(\n () => props.isRunLoad,\n newValue => {\n optBase.isShowLoad = newValue;\n },\n);\n\nwatch(\n () => props.chartOption,\n newValue => {\n void _initBind(newValue);\n },\n);\n\nconst getChartObject = () => {\n return _pageData.chartObject;\n};\n\nconst getChartElement = () => {\n return refElChart.value;\n};\n\nconst resize = () => {\n _runResize();\n};\n\nexport interface ClEchartsExpose {\n getChartObject(): EChartsType | null;\n getChartElement(): HTMLElement | null;\n resize(): void;\n}\n\ndefineExpose({\n getChartObject,\n getChartElement,\n resize,\n});\n</script>\n"],"names":["colorPalette","theme","_echartsPromise","_themeRegistered","_getECharts","props","__props","emit","__emit","elId","refElChart","ref","optBase","reactive","_pageData","clsParent","computed","cls","CommonBase","CommonElement","styParent","sty","styChart","height","_emitHideResize","_emitInitFirst","_runResize","_initBind","options","isEmpty","ECharts","themeMacarons","_onWinResize","_initMain","onMounted","ResizeEvent","nextTick","onBeforeUnmount","onActivated","onDeactivated","watch","newValue","__expose","_createElementBlock","_unref","_renderSlot","_ctx","_createElementVNode","_createVNode","ClLoadIng"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),l=require("./base-C2QOJBgB.js"),A=require("./index-DAgtltwJ.js"),O=require("./Index.vue_vue_type_script_setup_true_lang-g88DiQYZ.js"),J=require("./Index.vue_vue_type_script_setup_true_lang-BfMnOBXD.js"),K=require("./Index.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
//# sourceMappingURL=Index.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
"use strict";const e=require("vue"),l=require("./base-C2QOJBgB.js"),A=require("./index-DAgtltwJ.js"),O=require("./Index.vue_vue_type_script_setup_true_lang-g88DiQYZ.js"),J=require("./Index.vue_vue_type_script_setup_true_lang-BfMnOBXD.js"),K=require("./Index.vue_vue_type_script_setup_true_lang-6KT1IHDu.js"),T=require("./language-DNQZvFJT.js"),j=["id"],z={class:"paginate-statistic"},U={class:"paginate-list"},R={class:"pagination",role:"navigation","aria-label":"pagination"},G=["tabindex","aria-label","onClick","onKeydown"],H={key:0},Q={key:1},W={key:0,class:"paginate-limit"},X={key:2,class:"paginate-jump"},M=10,Y=e.defineComponent({name:"ClPaginate",__name:"Index",props:{id:String,className:String,disabled:{type:Boolean,default:!1},isShowLimit:{type:Boolean,default:!0},limitValue:{type:Number,default:10},limitData:Array,isShowJump:{type:Boolean,default:!0},totalCount:{type:Number,default:0},currentPage:{type:Number,default:1}},emits:["onChange"],setup(m,{emit:N}){const s=m,P=N,{optPageLanguage:f,getPageLanguage:w}=T.useLanguage();w("paginate");const I=`paginate-${l.CommonBase.getRandom(5)}`,D=s.id,u=e.ref(""),d=e.ref(""),B=e.ref(-1),b=e.ref(-1),V=e.computed(()=>{let t={"panel-paginate":!0,"paginate-disabled":s.disabled};return t=l.CommonBase.getJsonMerge(t,A.CommonElement.getClassNameJson(s.className)),t}),h=e.computed(()=>Math.max(1,parseInt(u.value)||M)),v=e.computed(()=>{const t=l.CommonBase.isFinite(s.currentPage)?s.currentPage:1,i=s.totalCount>0?Math.ceil(s.totalCount/h.value):0;return i>0?Math.min(Math.max(1,t),i):t}),y=e.computed(()=>{const t=s.limitData;if(l.CommonBase.isArray(t)&&!l.CommonBase.isEmpty(t)){const o=l.CommonBase.getListClone(t).filter(n=>!l.CommonBase.isEmpty(n)&&!l.CommonBase.isEmpty(n.id));if(o.length>0)return o}const i=f.value.pageStrip,a=l.CommonBase.isNonEmptyString(i)?i:"";return[{id:10,name:`10${a}`},{id:20,name:`20${a}`},{id:30,name:`30${a}`},{id:50,name:`50${a}`},{id:100,name:`100${a}`}]}),$=e.computed(()=>{const t=h.value,i=v.value,a=s.totalCount;let o=(i-1)*t,n=i*t;a>0?(o=o+1,n=n>a?a:n,o>n&&(o=n)):(o=0,n=0);const C=f.value.statistic;return l.CommonBase.isNonEmptyString(C)?l.CommonBase.convertStringFormat(C,{s:o,e:n,_total:a}):""}),F=e.computed(()=>{let t=!1,i=!1,a=!1,o=!1,n=0;const C=h.value,E=s.totalCount;E>0&&(n=Math.ceil(E/C));const c=v.value;t=n>0?c===1:!0,i=t,a=n>0?c===n:!0,o=a;const p=[];if(p.push({icon:"angle-double-left",ariaLabel:"first page",active:!1,disabled:t,page:1}),p.push({icon:"angle-left",ariaLabel:"previous page",active:!1,disabled:i,page:t?1:c-1}),n>0){let r=[];if(n>7){const S=n-5+1+1;c<=4?(r=l.CommonBase.getArrByMinMax(1,5),r.push("…"),r.push(n)):c>=S?(r=l.CommonBase.getArrByMinMax(S-1,n),r.unshift("…"),r.unshift(1)):(r=l.CommonBase.getArrByMinMax(c-1,c+1),r.unshift("…"),r.unshift(1),r.push("…"),r.push(n))}else r=l.CommonBase.getArrByMinMax(1,n);r.forEach(_=>{p.push({title:_,active:_===c,isOmit:_==="…",page:_})})}return p.push({icon:"angle-right",ariaLabel:"next page",active:!1,disabled:o,page:a?n:c+1}),p.push({icon:"angle-double-right",ariaLabel:"last page",active:!1,disabled:a,page:n}),p}),g=(t,i)=>{const a=parseInt(String(t)),o=parseInt(String(i));l.CommonBase.isFinite(a)&&l.CommonBase.isFinite(o)&&(a!==B.value||o!==b.value)&&(B.value=a,b.value=o,P("onChange",a,o))},L=()=>{const t=!l.CommonBase.isEmpty(s.limitValue)&&l.CommonBase.isFinite(s.limitValue)?s.limitValue:M;let a=(t>0?t:M).toString();if(s.isShowLimit){const o=y.value.map(n=>n.id.toString());o.includes(a)||(a=o[0])}return a};u.value=L(),e.watch(()=>s.limitValue,()=>{const t=L();if(t!==u.value){u.value=t;const i=v.value;i!==s.currentPage&&g(i,t)}}),e.watch(()=>s.limitData,()=>{const t=L();t!==u.value&&(u.value=t,g(v.value,t))}),e.watch(()=>s.currentPage,()=>{B.value=-1,b.value=-1}),e.watch(()=>s.totalCount,()=>{const t=v.value;t!==s.currentPage&&g(t,u.value)});const x=t=>{!s.disabled&&!t.active&&!t.disabled&&!t.isOmit&&(d.value="",g(t.page,u.value))},q=t=>{if(s.disabled)return;y.value.some(a=>a.id.toString()===t)&&(d.value="",u.value=t,g(1,t))},k=t=>{if(s.disabled||!l.CommonBase.isNonEmptyString(t))return;const i=parseInt(t);if(l.CommonBase.isFinite(i)){const a=s.totalCount>0?Math.ceil(s.totalCount/h.value):0;if(i>=1&&(a===0||i<=a)){d.value="",g(i,u.value);return}}d.value=""};return(t,i)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(D),class:e.normalizeClass(V.value)},[e.createElementVNode("div",z,e.toDisplayString($.value),1),e.createElementVNode("div",U,[e.createElementVNode("ul",R,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.value,(a,o)=>(e.openBlock(),e.createElementBlock("li",{key:`${I}-${o}`,class:e.normalizeClass({"paginate-disabled":a.disabled||m.disabled,"paginate-active":a.active,"paginate-omit":a.isOmit}),tabindex:a.disabled||m.disabled?-1:0,role:"button","aria-label":a.ariaLabel||String(a.page),onClick:n=>x(a),onKeydown:[e.withKeys(n=>x(a),["enter"]),e.withKeys(e.withModifiers(n=>x(a),["prevent"]),["space"])]},[a.icon?(e.openBlock(),e.createElementBlock("span",H,[e.createVNode(O._sfc_main,{name:a.icon},null,8,["name"])])):(e.openBlock(),e.createElementBlock("span",Q,e.toDisplayString(a.title),1))],42,G))),128))])]),m.isShowLimit?(e.openBlock(),e.createElementBlock("div",W,[e.createVNode(K._sfc_main,{list:y.value,value:u.value,disabled:m.disabled,transitionLeave:"dropdownLayer-close-no-anim",onOnChange:q},null,8,["list","value","disabled"])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[],64)),m.isShowJump?(e.openBlock(),e.createElementBlock("div",X,[e.createElementVNode("span",null,e.toDisplayString(e.unref(f).jumpTo),1),e.createVNode(J._sfc_main,{value:d.value,"onUpdate:value":i[0]||(i[0]=a=>d.value=a),disabled:m.disabled,onOnKeyupEnter:k,onOnChangeBlur:k,onOnClear:k},null,8,["value","disabled"]),e.createElementVNode("span",null,e.toDisplayString(e.unref(f).page),1)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[],64))],10,j))}});exports._sfc_main=Y;
|
|
2
|
+
//# sourceMappingURL=Index.vue_vue_type_script_setup_true_lang-DdWmaT86.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.vue_vue_type_script_setup_true_lang-D22m4oiN.js","sources":["../../../src/libs/Web/Paginate/Index.vue"],"sourcesContent":["<template>\n <div\n :id=\"elId\"\n :class=\"clsParent\"\n >\n <div class=\"paginate-statistic\">{{ optStatistic }}</div>\n <div class=\"paginate-list\">\n <ul\n class=\"pagination\"\n role=\"navigation\"\n aria-label=\"pagination\"\n >\n <li\n v-for=\"(info, inx) in optList\"\n :key=\"`${_keyIndex}-${inx}`\"\n :class=\"{\n 'paginate-disabled': info.disabled || disabled,\n 'paginate-active': info.active,\n 'paginate-omit': info.isOmit,\n }\"\n :tabindex=\"info.disabled || disabled ? -1 : 0\"\n role=\"button\"\n :aria-label=\"info.ariaLabel || String(info.page)\"\n @click=\"onChangePage(info)\"\n @keydown.enter=\"onChangePage(info)\"\n @keydown.space.prevent=\"onChangePage(info)\"\n >\n <span v-if=\"info.icon\"><cl-icon-font :name=\"info.icon\"></cl-icon-font></span\n ><span v-else>{{ info.title }}</span>\n </li>\n </ul>\n </div>\n <div\n class=\"paginate-limit\"\n v-if=\"isShowLimit\"\n >\n <cl-select\n :list=\"optLimitData\"\n :value=\"optCurrentLimit\"\n :disabled=\"disabled\"\n :transitionLeave=\"'dropdownLayer-close-no-anim'\"\n @onChange=\"onChangeLimit\"\n ></cl-select>\n </div>\n <template v-else></template>\n <div\n class=\"paginate-jump\"\n v-if=\"isShowJump\"\n >\n <span>{{ optPageLanguage.jumpTo }}</span>\n <cl-input\n v-model:value=\"optJumpValue\"\n :disabled=\"disabled\"\n @onKeyupEnter=\"onChangeJump\"\n @onChangeBlur=\"onChangeJump\"\n @onClear=\"onChangeJump\"\n ></cl-input\n ><span>{{ optPageLanguage.page }}</span>\n </div>\n <template v-else></template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { watch, computed, ref } from 'vue';\nimport CommonBase from '../../Common/base';\nimport CommonElement from '../../Common/Element/index';\nimport ClIconFont from '../../Element/IconFont/Index.vue';\nimport ClInput from '../../Element/Input/Index.vue';\nimport ClSelect from '../Select/Index.vue';\nimport useLanguage from '../../Use/language';\nimport './index.css';\n\nexport interface PaginateLimitItem {\n id: string | number;\n name: string;\n}\n\ninterface PaginatePageItem {\n icon?: string;\n title?: string | number;\n active: boolean;\n disabled?: boolean;\n isOmit?: boolean;\n ariaLabel?: string;\n page: number | string;\n}\n\ndefineOptions({ name: 'ClPaginate' });\n\nconst props = defineProps({\n id: String, // desc: 自定义元素 id\n className: String, // desc: 自定义CSS类名\n disabled: {\n type: Boolean,\n default: false, // desc: 是否禁用分页\n },\n isShowLimit: {\n type: Boolean,\n default: true, // desc: 是否显示每页条数下拉\n },\n limitValue: {\n type: Number,\n default: 10, // desc: 每页条数\n },\n limitData: Array as () => PaginateLimitItem[], // desc: 每页条数选项列表\n isShowJump: {\n type: Boolean,\n default: true, // desc: 是否显示跳页输入\n },\n totalCount: {\n type: Number,\n default: 0, // desc: 数据总条数\n },\n currentPage: {\n type: Number,\n default: 1, // desc: 当前页码\n },\n});\n\nconst emit = defineEmits<{\n (e: 'onChange', page: number, limit: number): void; // desc: 页码或每页条数变化时触发\n}>();\n\n// kb: Enter/Space 触发当前聚焦分页按钮翻页(分页按钮 li 支持键盘焦点)\n\nconst { optPageLanguage, getPageLanguage } = useLanguage();\ngetPageLanguage('paginate');\n\nconst _keyIndex = `paginate-${CommonBase.getRandom(5)}`;\nconst elId = props.id; // || `paginate-${CommonBase.getRandom(8)}`\nconst DEFAULT_LIMIT = 10;\nconst optCurrentLimit = ref('');\nconst optJumpValue = ref('');\nconst optLastPage = ref(-1);\nconst optLastLimit = ref(-1);\n\nconst clsParent = computed(() => {\n let cls: Record<string, boolean> = {\n 'panel-paginate': true,\n 'paginate-disabled': props.disabled,\n };\n cls = CommonBase.getJsonMerge(cls, CommonElement.getClassNameJson(props.className));\n return cls;\n});\n\nconst optCurrentLimitNum = computed(() =>\n Math.max(1, parseInt(optCurrentLimit.value) || DEFAULT_LIMIT),\n);\n\nconst optCurrentPageNum = computed(() => {\n const _rawPage = CommonBase.isFinite(props.currentPage) ? props.currentPage : 1;\n const _maxPage =\n props.totalCount > 0 ? Math.ceil(props.totalCount / optCurrentLimitNum.value) : 0;\n return _maxPage > 0 ? Math.min(Math.max(1, _rawPage), _maxPage) : _rawPage;\n});\n\nconst optLimitData = computed(() => {\n const limitData = props.limitData;\n if (CommonBase.isArray(limitData) && !CommonBase.isEmpty(limitData)) {\n const _valid = CommonBase.getListClone(limitData).filter(\n (p: PaginateLimitItem) => !CommonBase.isEmpty(p) && !CommonBase.isEmpty(p.id),\n );\n if (_valid.length > 0) {\n return _valid;\n }\n }\n const _strip = optPageLanguage.value.pageStrip;\n const _suffix = CommonBase.isNonEmptyString(_strip) ? _strip : '';\n return [\n { id: 10, name: `10${_suffix}` },\n { id: 20, name: `20${_suffix}` },\n { id: 30, name: `30${_suffix}` },\n { id: 50, name: `50${_suffix}` },\n { id: 100, name: `100${_suffix}` },\n ];\n});\n\nconst optStatistic = computed(() => {\n const _currentLimit = optCurrentLimitNum.value;\n const _currentPage = optCurrentPageNum.value;\n const _total = props.totalCount;\n let s = (_currentPage - 1) * _currentLimit;\n let e = _currentPage * _currentLimit;\n if (_total > 0) {\n s = s + 1;\n e = e > _total ? _total : e;\n if (s > e) {\n s = e;\n }\n } else {\n s = 0;\n e = 0;\n }\n const _fmt = optPageLanguage.value.statistic;\n if (!CommonBase.isNonEmptyString(_fmt)) {\n return '';\n }\n return CommonBase.convertStringFormat(_fmt, { s, e, _total });\n});\n\nconst optList = computed(() => {\n let isDisabledFirst = false;\n let isDisabledPrev = false;\n let isDisabledEnd = false;\n let isDisabledNext = false;\n let maxPage = 0;\n const _currentLimit = optCurrentLimitNum.value;\n const _total = props.totalCount;\n if (_total > 0) {\n maxPage = Math.ceil(_total / _currentLimit);\n }\n const _currentPage = optCurrentPageNum.value;\n isDisabledFirst = maxPage > 0 ? _currentPage === 1 : true;\n isDisabledPrev = isDisabledFirst;\n isDisabledEnd = maxPage > 0 ? _currentPage === maxPage : true;\n isDisabledNext = isDisabledEnd;\n const list: PaginatePageItem[] = [];\n list.push({\n icon: 'angle-double-left',\n ariaLabel: 'first page',\n active: false,\n disabled: isDisabledFirst,\n page: 1,\n });\n list.push({\n icon: 'angle-left',\n ariaLabel: 'previous page',\n active: false,\n disabled: isDisabledPrev,\n page: isDisabledFirst ? 1 : _currentPage - 1,\n });\n if (maxPage > 0) {\n const pMargin = 1; // 当前页左右各保留 1 页\n const omit = '…'; // 页码过多时的省略号占位\n let showNum: (number | string)[] = [];\n const numMax = 1 + pMargin * 2 + 2 + 2; // 窗口上限 = 当前页 + 左右页(2) + 省略号(2) + 首尾页(2)\n if (maxPage > numMax) {\n const unilateral = numMax - 2; // 单侧折叠时窗口大小(去掉一侧省略号)\n const sIndex = unilateral - pMargin;\n const eIndex = maxPage - unilateral + pMargin + 1;\n if (_currentPage <= sIndex) {\n showNum = CommonBase.getArrByMinMax(1, sIndex + pMargin);\n showNum.push(omit);\n showNum.push(maxPage);\n } else if (_currentPage >= eIndex) {\n showNum = CommonBase.getArrByMinMax(eIndex - pMargin, maxPage);\n showNum.unshift(omit);\n showNum.unshift(1);\n } else {\n showNum = CommonBase.getArrByMinMax(_currentPage - pMargin, _currentPage + pMargin);\n showNum.unshift(omit);\n showNum.unshift(1);\n showNum.push(omit);\n showNum.push(maxPage);\n }\n } else {\n showNum = CommonBase.getArrByMinMax(1, maxPage);\n }\n showNum.forEach(p => {\n list.push({ title: p, active: p === _currentPage, isOmit: p === omit, page: p });\n });\n }\n list.push({\n icon: 'angle-right',\n ariaLabel: 'next page',\n active: false,\n disabled: isDisabledNext,\n page: isDisabledEnd ? maxPage : _currentPage + 1,\n });\n list.push({\n icon: 'angle-double-right',\n ariaLabel: 'last page',\n active: false,\n disabled: isDisabledEnd,\n page: maxPage,\n });\n return list;\n});\n\nconst _emitChangePage = (page: number | string, limit: number | string) => {\n const _page = parseInt(String(page));\n const _limit = parseInt(String(limit));\n if (CommonBase.isFinite(_page) && CommonBase.isFinite(_limit)) {\n if (_page !== optLastPage.value || _limit !== optLastLimit.value) {\n optLastPage.value = _page;\n optLastLimit.value = _limit;\n emit('onChange', _page, _limit);\n }\n }\n};\n\nconst _getEffectiveLimit = () => {\n const _raw =\n !CommonBase.isEmpty(props.limitValue) && CommonBase.isFinite(props.limitValue)\n ? props.limitValue\n : DEFAULT_LIMIT;\n const _value = _raw > 0 ? _raw : DEFAULT_LIMIT;\n let _tempLimit = _value.toString();\n if (props.isShowLimit) {\n const ids = optLimitData.value.map((p: PaginateLimitItem) => p.id.toString());\n if (!ids.includes(_tempLimit)) {\n _tempLimit = ids[0];\n }\n }\n return _tempLimit;\n};\noptCurrentLimit.value = _getEffectiveLimit();\n\nwatch(\n () => props.limitValue,\n () => {\n const _newLimit = _getEffectiveLimit();\n if (_newLimit !== optCurrentLimit.value) {\n optCurrentLimit.value = _newLimit;\n const _page = optCurrentPageNum.value;\n if (_page !== props.currentPage) {\n _emitChangePage(_page, _newLimit);\n }\n }\n },\n);\n\nwatch(\n () => props.limitData,\n () => {\n const _newLimit = _getEffectiveLimit();\n if (_newLimit !== optCurrentLimit.value) {\n optCurrentLimit.value = _newLimit;\n _emitChangePage(optCurrentPageNum.value, _newLimit);\n }\n },\n);\n\nwatch(\n () => props.currentPage,\n () => {\n optLastPage.value = -1;\n optLastLimit.value = -1;\n },\n);\n\nwatch(\n () => props.totalCount,\n () => {\n const _page = optCurrentPageNum.value;\n if (_page !== props.currentPage) {\n _emitChangePage(_page, optCurrentLimit.value);\n }\n },\n);\n\nconst onChangePage = (info: PaginatePageItem) => {\n if (!props.disabled && !info.active && !info.disabled && !info.isOmit) {\n optJumpValue.value = '';\n _emitChangePage(info.page, optCurrentLimit.value);\n }\n};\n\nconst onChangeLimit = (value: string) => {\n if (props.disabled) {\n return;\n }\n const _exists = optLimitData.value.some((p: PaginateLimitItem) => p.id.toString() === value);\n if (_exists) {\n optJumpValue.value = '';\n optCurrentLimit.value = value;\n _emitChangePage(1, value);\n }\n};\n\nconst onChangeJump = (value?: string) => {\n if (props.disabled || !CommonBase.isNonEmptyString(value)) {\n return;\n }\n const _page = parseInt(value);\n if (CommonBase.isFinite(_page)) {\n const _maxPage =\n props.totalCount > 0 ? Math.ceil(props.totalCount / optCurrentLimitNum.value) : 0;\n if (_page >= 1 && (_maxPage === 0 || _page <= _maxPage)) {\n optJumpValue.value = '';\n _emitChangePage(_page, optCurrentLimit.value);\n return;\n }\n }\n optJumpValue.value = '';\n};\n</script>\n"],"names":["DEFAULT_LIMIT","props","__props","emit","__emit","optPageLanguage","getPageLanguage","useLanguage","_keyIndex","CommonBase","elId","optCurrentLimit","ref","optJumpValue","optLastPage","optLastLimit","clsParent","computed","cls","CommonElement","optCurrentLimitNum","optCurrentPageNum","_rawPage","_maxPage","optLimitData","limitData","_valid","p","_strip","_suffix","optStatistic","_currentLimit","_currentPage","_total","s","e","_fmt","optList","isDisabledFirst","isDisabledPrev","isDisabledEnd","isDisabledNext","maxPage","list","showNum","eIndex","_emitChangePage","page","limit","_page","_limit","_getEffectiveLimit","_raw","_tempLimit","ids","watch","_newLimit","onChangePage","info","onChangeLimit","value","onChangeJump","_createElementBlock","_unref","_createElementVNode","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4","_openBlock","_Fragment","_renderList","inx","_normalizeClass","$event","_withKeys","_withModifiers","_hoisted_6","_createVNode","ClIconFont","_hoisted_7","_hoisted_8","ClSelect","_hoisted_9","ClInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Index.vue_vue_type_script_setup_true_lang-DdWmaT86.js","sources":["../../../src/libs/Web/Paginate/Index.vue"],"sourcesContent":["<template>\n <div\n :id=\"elId\"\n :class=\"clsParent\"\n >\n <div class=\"paginate-statistic\">{{ optStatistic }}</div>\n <div class=\"paginate-list\">\n <ul\n class=\"pagination\"\n role=\"navigation\"\n aria-label=\"pagination\"\n >\n <li\n v-for=\"(info, inx) in optList\"\n :key=\"`${_keyIndex}-${inx}`\"\n :class=\"{\n 'paginate-disabled': info.disabled || disabled,\n 'paginate-active': info.active,\n 'paginate-omit': info.isOmit,\n }\"\n :tabindex=\"info.disabled || disabled ? -1 : 0\"\n role=\"button\"\n :aria-label=\"info.ariaLabel || String(info.page)\"\n @click=\"onChangePage(info)\"\n @keydown.enter=\"onChangePage(info)\"\n @keydown.space.prevent=\"onChangePage(info)\"\n >\n <span v-if=\"info.icon\"><cl-icon-font :name=\"info.icon\"></cl-icon-font></span\n ><span v-else>{{ info.title }}</span>\n </li>\n </ul>\n </div>\n <div\n class=\"paginate-limit\"\n v-if=\"isShowLimit\"\n >\n <cl-select\n :list=\"optLimitData\"\n :value=\"optCurrentLimit\"\n :disabled=\"disabled\"\n :transitionLeave=\"'dropdownLayer-close-no-anim'\"\n @onChange=\"onChangeLimit\"\n ></cl-select>\n </div>\n <template v-else></template>\n <div\n class=\"paginate-jump\"\n v-if=\"isShowJump\"\n >\n <span>{{ optPageLanguage.jumpTo }}</span>\n <cl-input\n v-model:value=\"optJumpValue\"\n :disabled=\"disabled\"\n @onKeyupEnter=\"onChangeJump\"\n @onChangeBlur=\"onChangeJump\"\n @onClear=\"onChangeJump\"\n ></cl-input\n ><span>{{ optPageLanguage.page }}</span>\n </div>\n <template v-else></template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { watch, computed, ref } from 'vue';\nimport CommonBase from '../../Common/base';\nimport CommonElement from '../../Common/Element/index';\nimport ClIconFont from '../../Element/IconFont/Index.vue';\nimport ClInput from '../../Element/Input/Index.vue';\nimport ClSelect from '../Select/Index.vue';\nimport useLanguage from '../../Use/language';\nimport './index.css';\n\nexport interface PaginateLimitItem {\n id: string | number;\n name: string;\n}\n\ninterface PaginatePageItem {\n icon?: string;\n title?: string | number;\n active: boolean;\n disabled?: boolean;\n isOmit?: boolean;\n ariaLabel?: string;\n page: number | string;\n}\n\ndefineOptions({ name: 'ClPaginate' });\n\nconst props = defineProps({\n id: String, // desc: 自定义元素 id\n className: String, // desc: 自定义CSS类名\n disabled: {\n type: Boolean,\n default: false, // desc: 是否禁用分页\n },\n isShowLimit: {\n type: Boolean,\n default: true, // desc: 是否显示每页条数下拉\n },\n limitValue: {\n type: Number,\n default: 10, // desc: 每页条数\n },\n limitData: Array as () => PaginateLimitItem[], // desc: 每页条数选项列表\n isShowJump: {\n type: Boolean,\n default: true, // desc: 是否显示跳页输入\n },\n totalCount: {\n type: Number,\n default: 0, // desc: 数据总条数\n },\n currentPage: {\n type: Number,\n default: 1, // desc: 当前页码\n },\n});\n\nconst emit = defineEmits<{\n (e: 'onChange', page: number, limit: number): void; // desc: 页码或每页条数变化时触发\n}>();\n\n// kb: Enter/Space 触发当前聚焦分页按钮翻页(分页按钮 li 支持键盘焦点)\n\nconst { optPageLanguage, getPageLanguage } = useLanguage();\ngetPageLanguage('paginate');\n\nconst _keyIndex = `paginate-${CommonBase.getRandom(5)}`;\nconst elId = props.id; // || `paginate-${CommonBase.getRandom(8)}`\nconst DEFAULT_LIMIT = 10;\nconst optCurrentLimit = ref('');\nconst optJumpValue = ref('');\nconst optLastPage = ref(-1);\nconst optLastLimit = ref(-1);\n\nconst clsParent = computed(() => {\n let cls: Record<string, boolean> = {\n 'panel-paginate': true,\n 'paginate-disabled': props.disabled,\n };\n cls = CommonBase.getJsonMerge(cls, CommonElement.getClassNameJson(props.className));\n return cls;\n});\n\nconst optCurrentLimitNum = computed(() =>\n Math.max(1, parseInt(optCurrentLimit.value) || DEFAULT_LIMIT),\n);\n\nconst optCurrentPageNum = computed(() => {\n const _rawPage = CommonBase.isFinite(props.currentPage) ? props.currentPage : 1;\n const _maxPage =\n props.totalCount > 0 ? Math.ceil(props.totalCount / optCurrentLimitNum.value) : 0;\n return _maxPage > 0 ? Math.min(Math.max(1, _rawPage), _maxPage) : _rawPage;\n});\n\nconst optLimitData = computed(() => {\n const limitData = props.limitData;\n if (CommonBase.isArray(limitData) && !CommonBase.isEmpty(limitData)) {\n const _valid = CommonBase.getListClone(limitData).filter(\n (p: PaginateLimitItem) => !CommonBase.isEmpty(p) && !CommonBase.isEmpty(p.id),\n );\n if (_valid.length > 0) {\n return _valid;\n }\n }\n const _strip = optPageLanguage.value.pageStrip;\n const _suffix = CommonBase.isNonEmptyString(_strip) ? _strip : '';\n return [\n { id: 10, name: `10${_suffix}` },\n { id: 20, name: `20${_suffix}` },\n { id: 30, name: `30${_suffix}` },\n { id: 50, name: `50${_suffix}` },\n { id: 100, name: `100${_suffix}` },\n ];\n});\n\nconst optStatistic = computed(() => {\n const _currentLimit = optCurrentLimitNum.value;\n const _currentPage = optCurrentPageNum.value;\n const _total = props.totalCount;\n let s = (_currentPage - 1) * _currentLimit;\n let e = _currentPage * _currentLimit;\n if (_total > 0) {\n s = s + 1;\n e = e > _total ? _total : e;\n if (s > e) {\n s = e;\n }\n } else {\n s = 0;\n e = 0;\n }\n const _fmt = optPageLanguage.value.statistic;\n if (!CommonBase.isNonEmptyString(_fmt)) {\n return '';\n }\n return CommonBase.convertStringFormat(_fmt, { s, e, _total });\n});\n\nconst optList = computed(() => {\n let isDisabledFirst = false;\n let isDisabledPrev = false;\n let isDisabledEnd = false;\n let isDisabledNext = false;\n let maxPage = 0;\n const _currentLimit = optCurrentLimitNum.value;\n const _total = props.totalCount;\n if (_total > 0) {\n maxPage = Math.ceil(_total / _currentLimit);\n }\n const _currentPage = optCurrentPageNum.value;\n isDisabledFirst = maxPage > 0 ? _currentPage === 1 : true;\n isDisabledPrev = isDisabledFirst;\n isDisabledEnd = maxPage > 0 ? _currentPage === maxPage : true;\n isDisabledNext = isDisabledEnd;\n const list: PaginatePageItem[] = [];\n list.push({\n icon: 'angle-double-left',\n ariaLabel: 'first page',\n active: false,\n disabled: isDisabledFirst,\n page: 1,\n });\n list.push({\n icon: 'angle-left',\n ariaLabel: 'previous page',\n active: false,\n disabled: isDisabledPrev,\n page: isDisabledFirst ? 1 : _currentPage - 1,\n });\n if (maxPage > 0) {\n const pMargin = 1; // 当前页左右各保留 1 页\n const omit = '…'; // 页码过多时的省略号占位\n let showNum: (number | string)[] = [];\n const numMax = 1 + pMargin * 2 + 2 + 2; // 窗口上限 = 当前页 + 左右页(2) + 省略号(2) + 首尾页(2)\n if (maxPage > numMax) {\n const unilateral = numMax - 2; // 单侧折叠时窗口大小(去掉一侧省略号)\n const sIndex = unilateral - pMargin;\n const eIndex = maxPage - unilateral + pMargin + 1;\n if (_currentPage <= sIndex) {\n showNum = CommonBase.getArrByMinMax(1, sIndex + pMargin);\n showNum.push(omit);\n showNum.push(maxPage);\n } else if (_currentPage >= eIndex) {\n showNum = CommonBase.getArrByMinMax(eIndex - pMargin, maxPage);\n showNum.unshift(omit);\n showNum.unshift(1);\n } else {\n showNum = CommonBase.getArrByMinMax(_currentPage - pMargin, _currentPage + pMargin);\n showNum.unshift(omit);\n showNum.unshift(1);\n showNum.push(omit);\n showNum.push(maxPage);\n }\n } else {\n showNum = CommonBase.getArrByMinMax(1, maxPage);\n }\n showNum.forEach(p => {\n list.push({ title: p, active: p === _currentPage, isOmit: p === omit, page: p });\n });\n }\n list.push({\n icon: 'angle-right',\n ariaLabel: 'next page',\n active: false,\n disabled: isDisabledNext,\n page: isDisabledEnd ? maxPage : _currentPage + 1,\n });\n list.push({\n icon: 'angle-double-right',\n ariaLabel: 'last page',\n active: false,\n disabled: isDisabledEnd,\n page: maxPage,\n });\n return list;\n});\n\nconst _emitChangePage = (page: number | string, limit: number | string) => {\n const _page = parseInt(String(page));\n const _limit = parseInt(String(limit));\n if (CommonBase.isFinite(_page) && CommonBase.isFinite(_limit)) {\n if (_page !== optLastPage.value || _limit !== optLastLimit.value) {\n optLastPage.value = _page;\n optLastLimit.value = _limit;\n emit('onChange', _page, _limit);\n }\n }\n};\n\nconst _getEffectiveLimit = () => {\n const _raw =\n !CommonBase.isEmpty(props.limitValue) && CommonBase.isFinite(props.limitValue)\n ? props.limitValue\n : DEFAULT_LIMIT;\n const _value = _raw > 0 ? _raw : DEFAULT_LIMIT;\n let _tempLimit = _value.toString();\n if (props.isShowLimit) {\n const ids = optLimitData.value.map((p: PaginateLimitItem) => p.id.toString());\n if (!ids.includes(_tempLimit)) {\n _tempLimit = ids[0];\n }\n }\n return _tempLimit;\n};\noptCurrentLimit.value = _getEffectiveLimit();\n\nwatch(\n () => props.limitValue,\n () => {\n const _newLimit = _getEffectiveLimit();\n if (_newLimit !== optCurrentLimit.value) {\n optCurrentLimit.value = _newLimit;\n const _page = optCurrentPageNum.value;\n if (_page !== props.currentPage) {\n _emitChangePage(_page, _newLimit);\n }\n }\n },\n);\n\nwatch(\n () => props.limitData,\n () => {\n const _newLimit = _getEffectiveLimit();\n if (_newLimit !== optCurrentLimit.value) {\n optCurrentLimit.value = _newLimit;\n _emitChangePage(optCurrentPageNum.value, _newLimit);\n }\n },\n);\n\nwatch(\n () => props.currentPage,\n () => {\n optLastPage.value = -1;\n optLastLimit.value = -1;\n },\n);\n\nwatch(\n () => props.totalCount,\n () => {\n const _page = optCurrentPageNum.value;\n if (_page !== props.currentPage) {\n _emitChangePage(_page, optCurrentLimit.value);\n }\n },\n);\n\nconst onChangePage = (info: PaginatePageItem) => {\n if (!props.disabled && !info.active && !info.disabled && !info.isOmit) {\n optJumpValue.value = '';\n _emitChangePage(info.page, optCurrentLimit.value);\n }\n};\n\nconst onChangeLimit = (value: string) => {\n if (props.disabled) {\n return;\n }\n const _exists = optLimitData.value.some((p: PaginateLimitItem) => p.id.toString() === value);\n if (_exists) {\n optJumpValue.value = '';\n optCurrentLimit.value = value;\n _emitChangePage(1, value);\n }\n};\n\nconst onChangeJump = (value?: string) => {\n if (props.disabled || !CommonBase.isNonEmptyString(value)) {\n return;\n }\n const _page = parseInt(value);\n if (CommonBase.isFinite(_page)) {\n const _maxPage =\n props.totalCount > 0 ? Math.ceil(props.totalCount / optCurrentLimitNum.value) : 0;\n if (_page >= 1 && (_maxPage === 0 || _page <= _maxPage)) {\n optJumpValue.value = '';\n _emitChangePage(_page, optCurrentLimit.value);\n return;\n }\n }\n optJumpValue.value = '';\n};\n</script>\n"],"names":["DEFAULT_LIMIT","props","__props","emit","__emit","optPageLanguage","getPageLanguage","useLanguage","_keyIndex","CommonBase","elId","optCurrentLimit","ref","optJumpValue","optLastPage","optLastLimit","clsParent","computed","cls","CommonElement","optCurrentLimitNum","optCurrentPageNum","_rawPage","_maxPage","optLimitData","limitData","_valid","p","_strip","_suffix","optStatistic","_currentLimit","_currentPage","_total","s","e","_fmt","optList","isDisabledFirst","isDisabledPrev","isDisabledEnd","isDisabledNext","maxPage","list","showNum","eIndex","_emitChangePage","page","limit","_page","_limit","_getEffectiveLimit","_raw","_tempLimit","ids","watch","_newLimit","onChangePage","info","onChangeLimit","value","onChangeJump","_createElementBlock","_unref","_createElementVNode","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4","_openBlock","_Fragment","_renderList","inx","_normalizeClass","$event","_withKeys","_withModifiers","_hoisted_6","_createVNode","ClIconFont","_hoisted_7","_hoisted_8","ClSelect","_hoisted_9","ClInput"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";const s=require("vue"),n=require("./base-C2QOJBgB.js"),O=require("./index-DAgtltwJ.js"),Q=require("./globalConfig-vNEDVL2C.js"),U=require("./language-DNQZvFJT.js"),W=["id"],X={class:"selectTag-container"},Y=["aria-selected","aria-disabled","tabindex"],Z=["aria-selected","aria-disabled","tabindex","onClick","onKeydown"],ee=["innerHTML"],te={key:1},se=s.defineComponent({name:"ClSelectTag",__name:"Index",props:{id:String,value:[String,Number],className:String,disabled:Boolean,type:{type:String,required:!0,validator:m=>["checkbox","radio"].indexOf(m)!==-1},list:{type:Array,default:()=>[]},theme:String,width:String,isShowAll:Boolean,showAllLabel:String,isInitRadioValue:{type:Boolean,default:!0},isRadioClickCancel:Boolean,checkChangeBefore:Function},emits:{"update:value":m=>!0,onChange:(m,b,w,a)=>!0,onInit:(m,b,w)=>!0,onError:m=>!0},setup(m,{expose:b,emit:w}){const a=m,p=w,{optPageLanguage:K,getPageLanguage:F}=U.useLanguage();F("common");const J=`s-${n.CommonBase.getRandom(5)}`,R=a.id,x=s.reactive({theme:""}),y=s.ref(!1),D=e=>{let t=[];return n.CommonBase.isEmpty(e)||(t=e.toString().split(",")),t},c=s.ref(D(a.value));let C=[],f={};const h=s.ref(!1);let v=0;const N=s.computed(()=>{const{theme:e}=a,t={"panel-selectTag":!0};let o=x.theme;return e&&(o=e),n.CommonBase.isEmpty(o)||(t[`selectTag-${o}`]=!0),n.CommonBase.getJsonMerge(t,O.CommonElement.getClassNameJson(a.className))}),z=s.computed(()=>{const e={};return n.CommonBase.isEmpty(a.width)||(e.width=a.width),e}),B=e=>{p("update:value",e)},q=e=>{if(!n.CommonBase.isEqualArr(c.value,e)){const t=n.CommonBase.getArrClone(c.value),o=g(t);c.value=n.CommonBase.getArrClone(e);const{value:l,isAll:i,info:r}=g(e);a.isShowAll&&(y.value=i),B(l),p("onChange",l,r,i,{value:o.value,info:o.info})}},H=()=>{s.nextTick(()=>{const{value:e,isAll:t,info:o}=g(c.value);p("onInit",e,o,t)})},g=e=>{const t=[];n.CommonBase.isEmpty(e)||e.forEach(r=>{n.CommonBase.isExistJsonKey(f,r)&&t.push(n.CommonBase.getJsonClone(f[r]))});const o=e.join(","),l=t.length>0&&t.length===C.length;let i;return a.type==="radio"?(i={},t.length>0&&(i=t[0])):i=t,{value:o,info:i,isAll:l}},L=e=>!n.CommonBase.isEmpty(e.id)&&c.value.includes(e.id.toString()),j=e=>{const t={};return e.isHtml?t.width="auto":n.CommonBase.isEmpty(e.width)?n.CommonBase.isEmpty(a.width)||(t.width=a.width):t.width=e.width,t},P=()=>{const e=Q.getGlobalConfig("selectTag");e?.theme&&(x.theme=e.theme)},S=e=>{const t=[];if(e.length>0){const o=f[e[0]],l=o&&!n.CommonBase.isEmpty(o.type)?o.type:a.type;e.forEach(i=>{if(n.CommonBase.isExistJsonKey(f,i)){const r=f[i];if((n.CommonBase.isEmpty(r.type)?a.type:r.type)===l)switch(l){case"radio":t.length===0&&t.push(i);break;case"checkbox":t.push(i);break}}})}return t},E=e=>{if(f={},C=[],!n.CommonBase.isEmpty(e)){const t=n.CommonBase.getArrClone(c.value);e.forEach(o=>{if(n.CommonBase.isExistJsonKey(o,"id")){const l=o.id.toString();f[l]=o,o.isDisabled?n.CommonBase.isExistValue(t,l)&&C.push(l):C.push(l)}})}},k=()=>{if(h.value){let e=[];n.CommonBase.isEmpty(c.value)||(e=S(c.value),n.CommonBase.isEqualArr(c.value,e)||(c.value=e,B(e.join(",")))),a.isShowAll&&(y.value=e.length>0&&e.length===C.length)}},A=()=>{if(a.type==="radio"&&a.isInitRadioValue&&n.CommonBase.isEmpty(c.value)&&!n.CommonBase.isEmpty(a.list)){const e=a.list.find(t=>!t.isDisabled);if(e&&!n.CommonBase.isEmpty(e.id)){const t=e.id.toString();c.value=[t],B(t)}}},V=e=>{const t=D(e);n.CommonBase.isEqualArr(c.value,t)||(c.value=t,B(t.join(",")))},G=()=>{P(),h.value=!n.CommonBase.isEmpty(a.list),E(a.list),A(),k()};s.onMounted(()=>{s.nextTick(()=>{G()})}),s.watch(h,e=>{e&&H()}),s.watch([()=>a.list,()=>a.value,()=>a.type],([e,t],[o,l])=>{const i=e;!h.value&&i!==o&&(h.value=!0),t!==l&&V(t),E(i),t===l&&A(),k()});const I=async()=>{if(!a.disabled&&!n.CommonBase.isEmpty(a.list)){const e=++v;if(!a.list.some(r=>!r.isDisabled))return;const o=[];a.list.forEach(r=>{if(n.CommonBase.isEmpty(r.id))return;const u=r.id.toString();r.isDisabled?n.CommonBase.isExistValue(c.value,u)&&o.push(u):y.value||o.push(u)});const l=S(o);let i=!0;if(a.checkChangeBefore){const{value:r}=g(l),u=g(n.CommonBase.getArrClone(c.value));try{i=await a.checkChangeBefore(r,u.value),i=n.CommonBase.isBoolean(i)?i:!0}catch(d){i=!1,p("onError",d instanceof Error?d.message:String(d))}}i&&e===v&&q(l)}},T=async e=>{if(!e.isDisabled&&!a.disabled&&!n.CommonBase.isEmpty(e.id)){const t=++v;let o=a.type;o=n.CommonBase.isEmpty(e.type)?o:e.type;const l=n.CommonBase.getArrClone(c.value);let i=[];const r=e.id.toString();if(l.length===0)i=[r];else if(o==="radio")n.CommonBase.isEqualArr(l,[r])?i=a.isRadioClickCancel?[]:l:i=[r];else{const d=f[l[0]];(d&&!n.CommonBase.isEmpty(d.type)?d.type:a.type)==="radio"?i=[r]:n.CommonBase.isExistValue(l,r)?i=n.CommonBase.getArrRemoveById(l,r):(i=l,i.push(r))}let u=!0;if(a.checkChangeBefore){const{value:d}=g(i),$=g(l);try{u=await a.checkChangeBefore(d,$.value),u=n.CommonBase.isBoolean(u)?u:!0}catch(_){u=!1,p("onError",_ instanceof Error?_.message:String(_))}}u&&t===v&&q(i)}},M=()=>S(c.value).join(",");return b({getValue:M,getValueData:()=>{const{value:e,info:t}=g(M().split(","));return a.type==="radio"&&n.CommonBase.isEmpty(e)?null:t},setValue:e=>{V(e),E(a.list),k()},runInitComplete:()=>{h.value||(h.value=!0,V(a.value),E(a.list),A(),k())}}),(e,t)=>(s.openBlock(),s.createElementBlock("div",{id:s.unref(R),class:s.normalizeClass(N.value)},[s.createElementVNode("ul",X,[m.isShowAll?(s.openBlock(),s.createElementBlock("li",{key:0,role:"option","aria-selected":y.value,"aria-disabled":m.disabled,tabindex:m.disabled?-1:0,class:s.normalizeClass({"selectTag-item":!0,"selectTag-active":y.value,"selectTag-disabled":m.disabled}),style:s.normalizeStyle(z.value),onClick:t[0]||(t[0]=o=>I()),onKeydown:[t[1]||(t[1]=s.withKeys(s.withModifiers(o=>I(),["prevent"]),["enter"])),t[2]||(t[2]=s.withKeys(s.withModifiers(o=>I(),["prevent"]),["space"]))]},[s.createElementVNode("span",null,s.toDisplayString(m.showAllLabel||s.unref(K).checkboxAll),1)],46,Y)):(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[],64)),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(m.list,(o,l)=>(s.openBlock(),s.createElementBlock("li",{key:`${J}-${o.id}-${l}`,role:"option","aria-selected":L(o),"aria-disabled":o.isDisabled||m.disabled,tabindex:o.isDisabled||m.disabled?-1:0,class:s.normalizeClass({"selectTag-item":!0,"selectTag-active":L(o),"selectTag-disabled":o.isDisabled||m.disabled}),style:s.normalizeStyle(j(o)),onClick:i=>T(o),onKeydown:[s.withKeys(s.withModifiers(i=>T(o),["prevent"]),["enter"]),s.withKeys(s.withModifiers(i=>T(o),["prevent"]),["space"])]},[s.renderSlot(e.$slots,"default",{data:o},()=>[o.isHtml?(s.openBlock(),s.createElementBlock("span",{key:0,innerHTML:s.unref(n.CommonBase).encodeHTML(o.name)},null,8,ee)):(s.openBlock(),s.createElementBlock("span",te,s.toDisplayString(o.name),1))])],46,Z))),128))])],10,W))}});exports._sfc_main=se;
|
|
2
|
-
//# sourceMappingURL=Index.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
//# sourceMappingURL=Index.vue_vue_type_script_setup_true_lang-DxHfO8TH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.vue_vue_type_script_setup_true_lang-BtoovAWs.js","sources":["../../../src/libs/Web/SelectTag/Index.vue"],"sourcesContent":["<template>\n <div\n :id=\"elId\"\n :class=\"clsParent\"\n >\n <ul class=\"selectTag-container\">\n <li\n v-if=\"isShowAll\"\n role=\"option\"\n :aria-selected=\"optAllValue\"\n :aria-disabled=\"disabled\"\n :tabindex=\"disabled ? -1 : 0\"\n :class=\"{\n 'selectTag-item': true,\n 'selectTag-active': optAllValue,\n 'selectTag-disabled': disabled,\n }\"\n :style=\"styItem\"\n @click=\"onClickAll()\"\n @keydown.enter.prevent=\"onClickAll()\"\n @keydown.space.prevent=\"onClickAll()\"\n >\n <span>{{ showAllLabel || optPageLanguage.checkboxAll }}</span>\n </li>\n <template v-else></template>\n <li\n v-for=\"(info, stIndex) in list\"\n :key=\"`${_keyIndex}-${info.id}-${stIndex}`\"\n role=\"option\"\n :aria-selected=\"_isItemActive(info)\"\n :aria-disabled=\"info.isDisabled || disabled\"\n :tabindex=\"info.isDisabled || disabled ? -1 : 0\"\n :class=\"{\n 'selectTag-item': true,\n 'selectTag-active': _isItemActive(info),\n 'selectTag-disabled': info.isDisabled || disabled,\n }\"\n :style=\"styItemFun(info)\"\n @click=\"onClickItem(info)\"\n @keydown.enter.prevent=\"onClickItem(info)\"\n @keydown.space.prevent=\"onClickItem(info)\"\n >\n <slot :data=\"info\">\n <span\n v-if=\"info.isHtml\"\n v-html=\"CommonBase.encodeHTML(info.name)\"\n ></span>\n <span v-else>{{ info.name }}</span>\n </slot>\n </li>\n </ul>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, nextTick, watch, reactive, ref, computed } from 'vue';\nimport CommonBase from '../../Common/base';\nimport CommonElement from '../../Common/Element/index';\nimport { getGlobalConfig } from '../../Common/globalConfig';\nimport useLanguage from '../../Use/language';\nimport './index.css';\n\nexport interface ListInfo {\n id: string | number;\n name: string;\n isDisabled: boolean;\n type: string;\n isHtml: boolean;\n width?: string; // desc: 选项宽度(优先级高于组件 width)\n}\n\nexport interface ClSelectTagExpose {\n getValue: () => string;\n getValueData: () => ListInfo | ListInfo[] | null;\n setValue: (value: string) => void;\n runInitComplete: () => void;\n}\n\ndefineOptions({ name: 'ClSelectTag' });\n\nconst props = defineProps({\n id: String, // desc: 组件唯一标识(DOM id)\n value: [String, Number], // desc: 选中值,逗号分隔的字符串\n className: String, // desc: 自定义CSS类名\n disabled: Boolean, // desc: 是否禁用\n type: {\n type: String,\n required: true, // desc: 选择类型 | enum: checkbox, radio\n validator: (value: string) => {\n return ['checkbox', 'radio'].indexOf(value) !== -1;\n },\n },\n list: {\n type: Array as () => ListInfo[],\n default: () => [],\n }, // desc: 选项列表(数据变更需传入新引用)\n theme: String, // desc: 主题 | enum: default, interval (可自定义)\n width: String, // desc: 选项宽度\n isShowAll: Boolean, // desc: 是否显示全选\n showAllLabel: String, // desc: 全选按钮自定义文案\n isInitRadioValue: {\n type: Boolean,\n default: true,\n }, // desc: 单选模式下是否自动选中第一项\n isRadioClickCancel: Boolean, // desc: 单选模式下点击已选中项是否取消选中\n checkChangeBefore: Function, // desc: 选中变更前的异步校验,返回 false 阻止变更\n});\n\nconst emit = defineEmits({\n 'update:value': (_value: string | number) => true, // desc: 选中值更新时触发(v-model 绑定,回传为逗号分隔字符串)\n onChange: (\n _value: string | number,\n _info: ListInfo | ListInfo[],\n _isAll: boolean,\n _changeInfo: { value: string; info: ListInfo | ListInfo[] },\n ) => true, // desc: 选中值变更时触发(radio 模式 info 为单对象,checkbox 模式为数组;changeInfo 为变更前旧值快照)\n onInit: (_value: string | number, _info: ListInfo | ListInfo[], _isAll: boolean) => true, // desc: 组件初始化完成时触发(info 形态同 onChange)\n onError: (_message: string) => true, // desc: 选中变更前异步校验执行异常时触发\n});\n// kb: Enter/Space 选中当前项(li 聚焦后生效)\n// slots: default\n\nconst { optPageLanguage, getPageLanguage } = useLanguage();\ngetPageLanguage('common');\n\nconst _keyIndex = `s-${CommonBase.getRandom(5)}`;\nconst elId = props.id; // || `st-${CommonBase.getRandom(8)}`\nconst optBase = reactive<{ theme: string }>({\n theme: '',\n});\n\nconst optAllValue = ref(false);\n\nconst _convertValueArr = (value: any) => {\n let arr: any[] = [];\n if (!CommonBase.isEmpty(value)) {\n arr = value.toString().split(',');\n }\n return arr;\n};\n\nconst optTextValue = ref(_convertValueArr(props.value));\nlet _listAllId: string[] = [];\nlet _listDataToJson: Record<string, ListInfo> = {};\nconst _optIsFirstDataFinish = ref(false);\nlet _clickSeq = 0;\n\nconst clsParent = computed(() => {\n const { theme } = props;\n const cls: any = {\n 'panel-selectTag': true,\n };\n let newTheme: string | undefined = optBase.theme;\n if (theme) {\n newTheme = theme;\n }\n if (!CommonBase.isEmpty(newTheme)) {\n cls[`selectTag-${newTheme}`] = true;\n }\n return CommonBase.getJsonMerge(cls, CommonElement.getClassNameJson(props.className));\n});\n\nconst styItem = computed(() => {\n const sty: any = {};\n if (!CommonBase.isEmpty(props.width)) {\n sty.width = props.width;\n }\n return sty;\n});\n\nconst _emitModelValue = (value: string) => {\n emit('update:value', value);\n};\n\nconst _emitChange = (arrIds: string[]) => {\n if (!CommonBase.isEqualArr(optTextValue.value, arrIds)) {\n const oldSelectValue = CommonBase.getArrClone(optTextValue.value);\n const oldSelectInfo = _getValueInfo(oldSelectValue);\n optTextValue.value = CommonBase.getArrClone(arrIds);\n const { value, isAll, info } = _getValueInfo(arrIds);\n if (props.isShowAll) {\n optAllValue.value = isAll;\n }\n _emitModelValue(value);\n emit('onChange', value, info, isAll, {\n value: oldSelectInfo.value,\n info: oldSelectInfo.info,\n });\n }\n};\n\nconst _emitInit = () => {\n nextTick(() => {\n const { value, isAll, info } = _getValueInfo(optTextValue.value);\n emit('onInit', value, info, isAll);\n });\n};\n\nconst _getValueInfo = (ids: string[]) => {\n const dataList: any[] = [];\n if (!CommonBase.isEmpty(ids)) {\n ids.forEach((v: string) => {\n if (CommonBase.isExistJsonKey(_listDataToJson, v)) {\n dataList.push(CommonBase.getJsonClone(_listDataToJson[v]));\n }\n });\n }\n const value = ids.join(',');\n const isAll = dataList.length > 0 && dataList.length === _listAllId.length;\n let info: any;\n if (props.type === 'radio') {\n info = {};\n if (dataList.length > 0) {\n info = dataList[0];\n }\n } else {\n info = dataList;\n }\n return { value, info, isAll };\n};\n\nconst _isItemActive = (info: ListInfo) => {\n return !CommonBase.isEmpty(info.id) && optTextValue.value.includes(info.id.toString());\n};\n\nconst styItemFun = (info: any) => {\n const sty: any = {};\n if (info.isHtml) {\n sty.width = 'auto';\n } else if (!CommonBase.isEmpty(info.width)) {\n sty.width = info.width;\n } else if (!CommonBase.isEmpty(props.width)) {\n sty.width = props.width;\n }\n return sty;\n};\n\nconst _initMergeGlobalsOption = () => {\n const opt = getGlobalConfig<{ theme?: string }>('selectTag');\n if (opt?.theme) {\n optBase.theme = opt.theme;\n }\n};\n\nconst _getEffectiveValue = (selectValue: any[]) => {\n const effectiveValue: any[] = [];\n if (selectValue.length > 0) {\n const firstInfo = _listDataToJson[selectValue[0]];\n const firstType =\n firstInfo && !CommonBase.isEmpty(firstInfo.type) ? firstInfo.type : props.type;\n selectValue.forEach((v: string) => {\n if (CommonBase.isExistJsonKey(_listDataToJson, v)) {\n const info = _listDataToJson[v];\n const type = CommonBase.isEmpty(info.type) ? props.type : info.type;\n if (type === firstType) {\n switch (firstType) {\n case 'radio':\n if (effectiveValue.length === 0) {\n effectiveValue.push(v);\n }\n break;\n case 'checkbox':\n effectiveValue.push(v);\n break;\n default:\n break;\n }\n }\n }\n });\n }\n return effectiveValue;\n};\n\nconst _convertListToJson = (list: any[]) => {\n _listDataToJson = {};\n _listAllId = [];\n if (!CommonBase.isEmpty(list)) {\n const selectValue: any[] = CommonBase.getArrClone(optTextValue.value);\n list.forEach((info: any) => {\n if (CommonBase.isExistJsonKey(info, 'id')) {\n const id = info.id.toString();\n _listDataToJson[id] = info;\n if (info.isDisabled) {\n if (CommonBase.isExistValue(selectValue, id)) {\n _listAllId.push(id);\n }\n } else {\n _listAllId.push(id);\n }\n }\n });\n }\n};\n\nconst _checkValueInList = () => {\n if (_optIsFirstDataFinish.value) {\n let effectiveValue = [];\n if (!CommonBase.isEmpty(optTextValue.value)) {\n effectiveValue = _getEffectiveValue(optTextValue.value);\n if (!CommonBase.isEqualArr(optTextValue.value, effectiveValue)) {\n optTextValue.value = effectiveValue;\n _emitModelValue(effectiveValue.join(','));\n }\n }\n if (props.isShowAll) {\n optAllValue.value = effectiveValue.length > 0 && effectiveValue.length === _listAllId.length;\n }\n }\n};\n\nconst _initRadioDefaultValue = () => {\n if (\n props.type === 'radio' &&\n props.isInitRadioValue &&\n CommonBase.isEmpty(optTextValue.value) &&\n !CommonBase.isEmpty(props.list)\n ) {\n const firstEnabled = props.list.find((info: ListInfo) => !info.isDisabled);\n if (firstEnabled && !CommonBase.isEmpty(firstEnabled.id)) {\n const value = firstEnabled.id.toString();\n optTextValue.value = [value];\n _emitModelValue(value);\n }\n }\n};\n\nconst _setValue = (value: any) => {\n const arrValue = _convertValueArr(value);\n if (!CommonBase.isEqualArr(optTextValue.value, arrValue)) {\n optTextValue.value = arrValue;\n _emitModelValue(arrValue.join(','));\n }\n};\n\nconst _initMain = () => {\n _initMergeGlobalsOption();\n _optIsFirstDataFinish.value = !CommonBase.isEmpty(props.list);\n _convertListToJson(props.list);\n _initRadioDefaultValue();\n _checkValueInList();\n};\n\nonMounted(() => {\n nextTick(() => {\n _initMain();\n });\n});\n\nwatch(_optIsFirstDataFinish, newValue => {\n if (newValue) {\n _emitInit();\n }\n});\n\nwatch(\n [() => props.list, () => props.value, () => props.type],\n ([newList, newValue], [oldList, oldValue]) => {\n const list = newList as any[];\n if (!_optIsFirstDataFinish.value && list !== oldList) {\n _optIsFirstDataFinish.value = true;\n }\n if (newValue !== oldValue) {\n _setValue(newValue);\n }\n _convertListToJson(list);\n if (newValue === oldValue) {\n _initRadioDefaultValue();\n }\n _checkValueInList();\n },\n);\n\nconst onClickAll = async () => {\n if (!props.disabled && !CommonBase.isEmpty(props.list)) {\n const clickSeq = ++_clickSeq;\n const hasEnabled = props.list.some((info: ListInfo) => !info.isDisabled);\n if (!hasEnabled) {\n return;\n }\n const selectIds: string[] = [];\n props.list.forEach((info: any) => {\n if (CommonBase.isEmpty(info.id)) {\n return;\n }\n const id = info.id.toString();\n if (info.isDisabled) {\n if (CommonBase.isExistValue(optTextValue.value, id)) {\n selectIds.push(id);\n }\n } else if (!optAllValue.value) {\n selectIds.push(id);\n }\n });\n const arrValue = _getEffectiveValue(selectIds);\n let tempCheck: any = true;\n if (props.checkChangeBefore) {\n const { value: newVal } = _getValueInfo(arrValue);\n const oldInfo = _getValueInfo(CommonBase.getArrClone(optTextValue.value));\n try {\n tempCheck = await props.checkChangeBefore(newVal, oldInfo.value);\n tempCheck = CommonBase.isBoolean(tempCheck) ? tempCheck : true;\n } catch (err) {\n tempCheck = false;\n emit('onError', err instanceof Error ? err.message : String(err));\n }\n }\n if (tempCheck && clickSeq === _clickSeq) {\n _emitChange(arrValue);\n }\n }\n};\n\nconst onClickItem = async (item: any) => {\n if (!item.isDisabled && !props.disabled && !CommonBase.isEmpty(item.id)) {\n const clickSeq = ++_clickSeq;\n let type = props.type;\n type = CommonBase.isEmpty(item.type) ? type : item.type;\n\n const oldSelectValue = CommonBase.getArrClone(optTextValue.value);\n let newSelectValue = [];\n const value: string = item.id.toString();\n if (oldSelectValue.length === 0) {\n newSelectValue = [value];\n } else if (type === 'radio') {\n if (CommonBase.isEqualArr(oldSelectValue, [value])) {\n newSelectValue = props.isRadioClickCancel ? [] : oldSelectValue;\n } else {\n newSelectValue = [value];\n }\n } else {\n const oldFirstInfo = _listDataToJson[oldSelectValue[0]];\n const oldFirstType =\n oldFirstInfo && !CommonBase.isEmpty(oldFirstInfo.type) ? oldFirstInfo.type : props.type;\n if (oldFirstType === 'radio') {\n newSelectValue = [value];\n } else if (CommonBase.isExistValue(oldSelectValue, value)) {\n newSelectValue = CommonBase.getArrRemoveById(oldSelectValue, value);\n } else {\n newSelectValue = oldSelectValue;\n newSelectValue.push(value);\n }\n }\n\n let tempCheck: any = true;\n if (props.checkChangeBefore) {\n const { value: newVal } = _getValueInfo(newSelectValue);\n const oldInfo = _getValueInfo(oldSelectValue);\n try {\n tempCheck = await props.checkChangeBefore(newVal, oldInfo.value);\n tempCheck = CommonBase.isBoolean(tempCheck) ? tempCheck : true;\n } catch (err) {\n tempCheck = false;\n emit('onError', err instanceof Error ? err.message : String(err));\n }\n }\n if (tempCheck && clickSeq === _clickSeq) {\n _emitChange(newSelectValue);\n }\n }\n};\n\nconst getValue = () => {\n const values = _getEffectiveValue(optTextValue.value);\n return values.join(',');\n};\nconst getValueData = () => {\n const { value, info } = _getValueInfo(getValue().split(','));\n if (props.type === 'radio') {\n return CommonBase.isEmpty(value) ? null : info;\n }\n return info;\n};\nconst setValue = (value: string) => {\n _setValue(value);\n _convertListToJson(props.list);\n _checkValueInList();\n};\nconst runInitComplete = () => {\n if (!_optIsFirstDataFinish.value) {\n _optIsFirstDataFinish.value = true;\n _setValue(props.value);\n _convertListToJson(props.list);\n _initRadioDefaultValue();\n _checkValueInList();\n }\n};\n\ndefineExpose({\n getValue,\n getValueData,\n setValue,\n runInitComplete,\n});\n</script>\n"],"names":["props","__props","emit","__emit","optPageLanguage","getPageLanguage","useLanguage","_keyIndex","CommonBase","elId","optBase","reactive","optAllValue","ref","_convertValueArr","value","arr","optTextValue","_listAllId","_listDataToJson","_optIsFirstDataFinish","_clickSeq","clsParent","computed","theme","cls","newTheme","CommonElement","styItem","sty","_emitModelValue","_emitChange","arrIds","oldSelectValue","oldSelectInfo","_getValueInfo","isAll","info","_emitInit","nextTick","ids","dataList","v","_isItemActive","styItemFun","_initMergeGlobalsOption","opt","getGlobalConfig","_getEffectiveValue","selectValue","effectiveValue","firstInfo","firstType","_convertListToJson","list","id","_checkValueInList","_initRadioDefaultValue","firstEnabled","_setValue","arrValue","_initMain","onMounted","watch","newValue","newList","oldList","oldValue","onClickAll","clickSeq","selectIds","tempCheck","newVal","oldInfo","err","onClickItem","item","type","newSelectValue","oldFirstInfo","getValue","__expose","_createElementBlock","_unref","_createElementVNode","_hoisted_2","_normalizeClass","_toDisplayString","_Fragment","_openBlock","_renderList","stIndex","_normalizeStyle","$event","_withKeys","_withModifiers","_renderSlot","_ctx","_hoisted_6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Index.vue_vue_type_script_setup_true_lang-DxHfO8TH.js","sources":["../../../src/libs/Web/SelectTag/Index.vue"],"sourcesContent":["<template>\n <div\n :id=\"elId\"\n :class=\"clsParent\"\n >\n <ul class=\"selectTag-container\">\n <li\n v-if=\"isShowAll\"\n role=\"option\"\n :aria-selected=\"optAllValue\"\n :aria-disabled=\"disabled\"\n :tabindex=\"disabled ? -1 : 0\"\n :class=\"{\n 'selectTag-item': true,\n 'selectTag-active': optAllValue,\n 'selectTag-disabled': disabled,\n }\"\n :style=\"styItem\"\n @click=\"onClickAll()\"\n @keydown.enter.prevent=\"onClickAll()\"\n @keydown.space.prevent=\"onClickAll()\"\n >\n <span>{{ showAllLabel || optPageLanguage.checkboxAll }}</span>\n </li>\n <template v-else></template>\n <li\n v-for=\"(info, stIndex) in list\"\n :key=\"`${_keyIndex}-${info.id}-${stIndex}`\"\n role=\"option\"\n :aria-selected=\"_isItemActive(info)\"\n :aria-disabled=\"info.isDisabled || disabled\"\n :tabindex=\"info.isDisabled || disabled ? -1 : 0\"\n :class=\"{\n 'selectTag-item': true,\n 'selectTag-active': _isItemActive(info),\n 'selectTag-disabled': info.isDisabled || disabled,\n }\"\n :style=\"styItemFun(info)\"\n @click=\"onClickItem(info)\"\n @keydown.enter.prevent=\"onClickItem(info)\"\n @keydown.space.prevent=\"onClickItem(info)\"\n >\n <slot :data=\"info\">\n <span\n v-if=\"info.isHtml\"\n v-html=\"CommonBase.encodeHTML(info.name)\"\n ></span>\n <span v-else>{{ info.name }}</span>\n </slot>\n </li>\n </ul>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, nextTick, watch, reactive, ref, computed } from 'vue';\nimport CommonBase from '../../Common/base';\nimport CommonElement from '../../Common/Element/index';\nimport { getGlobalConfig } from '../../Common/globalConfig';\nimport useLanguage from '../../Use/language';\nimport './index.css';\n\nexport interface ListInfo {\n id: string | number;\n name: string;\n isDisabled: boolean;\n type: string;\n isHtml: boolean;\n width?: string; // desc: 选项宽度(优先级高于组件 width)\n}\n\nexport interface ClSelectTagExpose {\n getValue: () => string;\n getValueData: () => ListInfo | ListInfo[] | null;\n setValue: (value: string) => void;\n runInitComplete: () => void;\n}\n\ndefineOptions({ name: 'ClSelectTag' });\n\nconst props = defineProps({\n id: String, // desc: 组件唯一标识(DOM id)\n value: [String, Number], // desc: 选中值,逗号分隔的字符串\n className: String, // desc: 自定义CSS类名\n disabled: Boolean, // desc: 是否禁用\n type: {\n type: String,\n required: true, // desc: 选择类型 | enum: checkbox, radio\n validator: (value: string) => {\n return ['checkbox', 'radio'].indexOf(value) !== -1;\n },\n },\n list: {\n type: Array as () => ListInfo[],\n default: () => [],\n }, // desc: 选项列表(数据变更需传入新引用)\n theme: String, // desc: 主题 | enum: default, interval (可自定义)\n width: String, // desc: 选项宽度\n isShowAll: Boolean, // desc: 是否显示全选\n showAllLabel: String, // desc: 全选按钮自定义文案\n isInitRadioValue: {\n type: Boolean,\n default: true,\n }, // desc: 单选模式下是否自动选中第一项\n isRadioClickCancel: Boolean, // desc: 单选模式下点击已选中项是否取消选中\n checkChangeBefore: Function, // desc: 选中变更前的异步校验,返回 false 阻止变更\n});\n\nconst emit = defineEmits({\n 'update:value': (_value: string | number) => true, // desc: 选中值更新时触发(v-model 绑定,回传为逗号分隔字符串)\n onChange: (\n _value: string | number,\n _info: ListInfo | ListInfo[],\n _isAll: boolean,\n _changeInfo: { value: string; info: ListInfo | ListInfo[] },\n ) => true, // desc: 选中值变更时触发(radio 模式 info 为单对象,checkbox 模式为数组;changeInfo 为变更前旧值快照)\n onInit: (_value: string | number, _info: ListInfo | ListInfo[], _isAll: boolean) => true, // desc: 组件初始化完成时触发(info 形态同 onChange)\n onError: (_message: string) => true, // desc: 选中变更前异步校验执行异常时触发\n});\n// kb: Enter/Space 选中当前项(li 聚焦后生效)\n// slots: default\n\nconst { optPageLanguage, getPageLanguage } = useLanguage();\ngetPageLanguage('common');\n\nconst _keyIndex = `s-${CommonBase.getRandom(5)}`;\nconst elId = props.id; // || `st-${CommonBase.getRandom(8)}`\nconst optBase = reactive<{ theme: string }>({\n theme: '',\n});\n\nconst optAllValue = ref(false);\n\nconst _convertValueArr = (value: any) => {\n let arr: any[] = [];\n if (!CommonBase.isEmpty(value)) {\n arr = value.toString().split(',');\n }\n return arr;\n};\n\nconst optTextValue = ref(_convertValueArr(props.value));\nlet _listAllId: string[] = [];\nlet _listDataToJson: Record<string, ListInfo> = {};\nconst _optIsFirstDataFinish = ref(false);\nlet _clickSeq = 0;\n\nconst clsParent = computed(() => {\n const { theme } = props;\n const cls: any = {\n 'panel-selectTag': true,\n };\n let newTheme: string | undefined = optBase.theme;\n if (theme) {\n newTheme = theme;\n }\n if (!CommonBase.isEmpty(newTheme)) {\n cls[`selectTag-${newTheme}`] = true;\n }\n return CommonBase.getJsonMerge(cls, CommonElement.getClassNameJson(props.className));\n});\n\nconst styItem = computed(() => {\n const sty: any = {};\n if (!CommonBase.isEmpty(props.width)) {\n sty.width = props.width;\n }\n return sty;\n});\n\nconst _emitModelValue = (value: string) => {\n emit('update:value', value);\n};\n\nconst _emitChange = (arrIds: string[]) => {\n if (!CommonBase.isEqualArr(optTextValue.value, arrIds)) {\n const oldSelectValue = CommonBase.getArrClone(optTextValue.value);\n const oldSelectInfo = _getValueInfo(oldSelectValue);\n optTextValue.value = CommonBase.getArrClone(arrIds);\n const { value, isAll, info } = _getValueInfo(arrIds);\n if (props.isShowAll) {\n optAllValue.value = isAll;\n }\n _emitModelValue(value);\n emit('onChange', value, info, isAll, {\n value: oldSelectInfo.value,\n info: oldSelectInfo.info,\n });\n }\n};\n\nconst _emitInit = () => {\n nextTick(() => {\n const { value, isAll, info } = _getValueInfo(optTextValue.value);\n emit('onInit', value, info, isAll);\n });\n};\n\nconst _getValueInfo = (ids: string[]) => {\n const dataList: any[] = [];\n if (!CommonBase.isEmpty(ids)) {\n ids.forEach((v: string) => {\n if (CommonBase.isExistJsonKey(_listDataToJson, v)) {\n dataList.push(CommonBase.getJsonClone(_listDataToJson[v]));\n }\n });\n }\n const value = ids.join(',');\n const isAll = dataList.length > 0 && dataList.length === _listAllId.length;\n let info: any;\n if (props.type === 'radio') {\n info = {};\n if (dataList.length > 0) {\n info = dataList[0];\n }\n } else {\n info = dataList;\n }\n return { value, info, isAll };\n};\n\nconst _isItemActive = (info: ListInfo) => {\n return !CommonBase.isEmpty(info.id) && optTextValue.value.includes(info.id.toString());\n};\n\nconst styItemFun = (info: any) => {\n const sty: any = {};\n if (info.isHtml) {\n sty.width = 'auto';\n } else if (!CommonBase.isEmpty(info.width)) {\n sty.width = info.width;\n } else if (!CommonBase.isEmpty(props.width)) {\n sty.width = props.width;\n }\n return sty;\n};\n\nconst _initMergeGlobalsOption = () => {\n const opt = getGlobalConfig<{ theme?: string }>('selectTag');\n if (opt?.theme) {\n optBase.theme = opt.theme;\n }\n};\n\nconst _getEffectiveValue = (selectValue: any[]) => {\n const effectiveValue: any[] = [];\n if (selectValue.length > 0) {\n const firstInfo = _listDataToJson[selectValue[0]];\n const firstType =\n firstInfo && !CommonBase.isEmpty(firstInfo.type) ? firstInfo.type : props.type;\n selectValue.forEach((v: string) => {\n if (CommonBase.isExistJsonKey(_listDataToJson, v)) {\n const info = _listDataToJson[v];\n const type = CommonBase.isEmpty(info.type) ? props.type : info.type;\n if (type === firstType) {\n switch (firstType) {\n case 'radio':\n if (effectiveValue.length === 0) {\n effectiveValue.push(v);\n }\n break;\n case 'checkbox':\n effectiveValue.push(v);\n break;\n default:\n break;\n }\n }\n }\n });\n }\n return effectiveValue;\n};\n\nconst _convertListToJson = (list: any[]) => {\n _listDataToJson = {};\n _listAllId = [];\n if (!CommonBase.isEmpty(list)) {\n const selectValue: any[] = CommonBase.getArrClone(optTextValue.value);\n list.forEach((info: any) => {\n if (CommonBase.isExistJsonKey(info, 'id')) {\n const id = info.id.toString();\n _listDataToJson[id] = info;\n if (info.isDisabled) {\n if (CommonBase.isExistValue(selectValue, id)) {\n _listAllId.push(id);\n }\n } else {\n _listAllId.push(id);\n }\n }\n });\n }\n};\n\nconst _checkValueInList = () => {\n if (_optIsFirstDataFinish.value) {\n let effectiveValue = [];\n if (!CommonBase.isEmpty(optTextValue.value)) {\n effectiveValue = _getEffectiveValue(optTextValue.value);\n if (!CommonBase.isEqualArr(optTextValue.value, effectiveValue)) {\n optTextValue.value = effectiveValue;\n _emitModelValue(effectiveValue.join(','));\n }\n }\n if (props.isShowAll) {\n optAllValue.value = effectiveValue.length > 0 && effectiveValue.length === _listAllId.length;\n }\n }\n};\n\nconst _initRadioDefaultValue = () => {\n if (\n props.type === 'radio' &&\n props.isInitRadioValue &&\n CommonBase.isEmpty(optTextValue.value) &&\n !CommonBase.isEmpty(props.list)\n ) {\n const firstEnabled = props.list.find((info: ListInfo) => !info.isDisabled);\n if (firstEnabled && !CommonBase.isEmpty(firstEnabled.id)) {\n const value = firstEnabled.id.toString();\n optTextValue.value = [value];\n _emitModelValue(value);\n }\n }\n};\n\nconst _setValue = (value: any) => {\n const arrValue = _convertValueArr(value);\n if (!CommonBase.isEqualArr(optTextValue.value, arrValue)) {\n optTextValue.value = arrValue;\n _emitModelValue(arrValue.join(','));\n }\n};\n\nconst _initMain = () => {\n _initMergeGlobalsOption();\n _optIsFirstDataFinish.value = !CommonBase.isEmpty(props.list);\n _convertListToJson(props.list);\n _initRadioDefaultValue();\n _checkValueInList();\n};\n\nonMounted(() => {\n nextTick(() => {\n _initMain();\n });\n});\n\nwatch(_optIsFirstDataFinish, newValue => {\n if (newValue) {\n _emitInit();\n }\n});\n\nwatch(\n [() => props.list, () => props.value, () => props.type],\n ([newList, newValue], [oldList, oldValue]) => {\n const list = newList as any[];\n if (!_optIsFirstDataFinish.value && list !== oldList) {\n _optIsFirstDataFinish.value = true;\n }\n if (newValue !== oldValue) {\n _setValue(newValue);\n }\n _convertListToJson(list);\n if (newValue === oldValue) {\n _initRadioDefaultValue();\n }\n _checkValueInList();\n },\n);\n\nconst onClickAll = async () => {\n if (!props.disabled && !CommonBase.isEmpty(props.list)) {\n const clickSeq = ++_clickSeq;\n const hasEnabled = props.list.some((info: ListInfo) => !info.isDisabled);\n if (!hasEnabled) {\n return;\n }\n const selectIds: string[] = [];\n props.list.forEach((info: any) => {\n if (CommonBase.isEmpty(info.id)) {\n return;\n }\n const id = info.id.toString();\n if (info.isDisabled) {\n if (CommonBase.isExistValue(optTextValue.value, id)) {\n selectIds.push(id);\n }\n } else if (!optAllValue.value) {\n selectIds.push(id);\n }\n });\n const arrValue = _getEffectiveValue(selectIds);\n let tempCheck: any = true;\n if (props.checkChangeBefore) {\n const { value: newVal } = _getValueInfo(arrValue);\n const oldInfo = _getValueInfo(CommonBase.getArrClone(optTextValue.value));\n try {\n tempCheck = await props.checkChangeBefore(newVal, oldInfo.value);\n tempCheck = CommonBase.isBoolean(tempCheck) ? tempCheck : true;\n } catch (err) {\n tempCheck = false;\n emit('onError', err instanceof Error ? err.message : String(err));\n }\n }\n if (tempCheck && clickSeq === _clickSeq) {\n _emitChange(arrValue);\n }\n }\n};\n\nconst onClickItem = async (item: any) => {\n if (!item.isDisabled && !props.disabled && !CommonBase.isEmpty(item.id)) {\n const clickSeq = ++_clickSeq;\n let type = props.type;\n type = CommonBase.isEmpty(item.type) ? type : item.type;\n\n const oldSelectValue = CommonBase.getArrClone(optTextValue.value);\n let newSelectValue = [];\n const value: string = item.id.toString();\n if (oldSelectValue.length === 0) {\n newSelectValue = [value];\n } else if (type === 'radio') {\n if (CommonBase.isEqualArr(oldSelectValue, [value])) {\n newSelectValue = props.isRadioClickCancel ? [] : oldSelectValue;\n } else {\n newSelectValue = [value];\n }\n } else {\n const oldFirstInfo = _listDataToJson[oldSelectValue[0]];\n const oldFirstType =\n oldFirstInfo && !CommonBase.isEmpty(oldFirstInfo.type) ? oldFirstInfo.type : props.type;\n if (oldFirstType === 'radio') {\n newSelectValue = [value];\n } else if (CommonBase.isExistValue(oldSelectValue, value)) {\n newSelectValue = CommonBase.getArrRemoveById(oldSelectValue, value);\n } else {\n newSelectValue = oldSelectValue;\n newSelectValue.push(value);\n }\n }\n\n let tempCheck: any = true;\n if (props.checkChangeBefore) {\n const { value: newVal } = _getValueInfo(newSelectValue);\n const oldInfo = _getValueInfo(oldSelectValue);\n try {\n tempCheck = await props.checkChangeBefore(newVal, oldInfo.value);\n tempCheck = CommonBase.isBoolean(tempCheck) ? tempCheck : true;\n } catch (err) {\n tempCheck = false;\n emit('onError', err instanceof Error ? err.message : String(err));\n }\n }\n if (tempCheck && clickSeq === _clickSeq) {\n _emitChange(newSelectValue);\n }\n }\n};\n\nconst getValue = () => {\n const values = _getEffectiveValue(optTextValue.value);\n return values.join(',');\n};\nconst getValueData = () => {\n const { value, info } = _getValueInfo(getValue().split(','));\n if (props.type === 'radio') {\n return CommonBase.isEmpty(value) ? null : info;\n }\n return info;\n};\nconst setValue = (value: string) => {\n _setValue(value);\n _convertListToJson(props.list);\n _checkValueInList();\n};\nconst runInitComplete = () => {\n if (!_optIsFirstDataFinish.value) {\n _optIsFirstDataFinish.value = true;\n _setValue(props.value);\n _convertListToJson(props.list);\n _initRadioDefaultValue();\n _checkValueInList();\n }\n};\n\ndefineExpose({\n getValue,\n getValueData,\n setValue,\n runInitComplete,\n});\n</script>\n"],"names":["props","__props","emit","__emit","optPageLanguage","getPageLanguage","useLanguage","_keyIndex","CommonBase","elId","optBase","reactive","optAllValue","ref","_convertValueArr","value","arr","optTextValue","_listAllId","_listDataToJson","_optIsFirstDataFinish","_clickSeq","clsParent","computed","theme","cls","newTheme","CommonElement","styItem","sty","_emitModelValue","_emitChange","arrIds","oldSelectValue","oldSelectInfo","_getValueInfo","isAll","info","_emitInit","nextTick","ids","dataList","v","_isItemActive","styItemFun","_initMergeGlobalsOption","opt","getGlobalConfig","_getEffectiveValue","selectValue","effectiveValue","firstInfo","firstType","_convertListToJson","list","id","_checkValueInList","_initRadioDefaultValue","firstEnabled","_setValue","arrValue","_initMain","onMounted","watch","newValue","newList","oldList","oldValue","onClickAll","clickSeq","selectIds","tempCheck","newVal","oldInfo","err","onClickItem","item","type","newSelectValue","oldFirstInfo","getValue","__expose","_createElementBlock","_unref","_createElementVNode","_hoisted_2","_normalizeClass","_toDisplayString","_Fragment","_openBlock","_renderList","stIndex","_normalizeStyle","$event","_withKeys","_withModifiers","_renderSlot","_ctx","_hoisted_6"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { C as l } from "./base-DU7nGSf6.js";
|
|
|
3
3
|
import { C as Y } from "./index-DvNmQjNH.js";
|
|
4
4
|
import { _ as Z } from "./Index.vue_vue_type_script_setup_true_lang-D4kAoS8e.js";
|
|
5
5
|
import { _ as ee } from "./Index.vue_vue_type_script_setup_true_lang-Di8-5XQl.js";
|
|
6
|
-
import { _ as te } from "./Index.vue_vue_type_script_setup_true_lang-
|
|
6
|
+
import { _ as te } from "./Index.vue_vue_type_script_setup_true_lang-in1ZSapu.js";
|
|
7
7
|
import { u as ae } from "./language-BxAxu5Gv.js";
|
|
8
8
|
const ie = ["id"], ne = { class: "paginate-statistic" }, se = { class: "paginate-list" }, le = {
|
|
9
9
|
class: "pagination",
|
|
@@ -254,4 +254,4 @@ const ie = ["id"], ne = { class: "paginate-statistic" }, se = { class: "paginate
|
|
|
254
254
|
export {
|
|
255
255
|
Me as _
|
|
256
256
|
};
|
|
257
|
-
//# sourceMappingURL=Index.vue_vue_type_script_setup_true_lang-
|
|
257
|
+
//# sourceMappingURL=Index.vue_vue_type_script_setup_true_lang-HwprdMv4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.vue_vue_type_script_setup_true_lang-CW63TdvW.js","sources":["../../../src/libs/Web/Paginate/Index.vue"],"sourcesContent":["<template>\n <div\n :id=\"elId\"\n :class=\"clsParent\"\n >\n <div class=\"paginate-statistic\">{{ optStatistic }}</div>\n <div class=\"paginate-list\">\n <ul\n class=\"pagination\"\n role=\"navigation\"\n aria-label=\"pagination\"\n >\n <li\n v-for=\"(info, inx) in optList\"\n :key=\"`${_keyIndex}-${inx}`\"\n :class=\"{\n 'paginate-disabled': info.disabled || disabled,\n 'paginate-active': info.active,\n 'paginate-omit': info.isOmit,\n }\"\n :tabindex=\"info.disabled || disabled ? -1 : 0\"\n role=\"button\"\n :aria-label=\"info.ariaLabel || String(info.page)\"\n @click=\"onChangePage(info)\"\n @keydown.enter=\"onChangePage(info)\"\n @keydown.space.prevent=\"onChangePage(info)\"\n >\n <span v-if=\"info.icon\"><cl-icon-font :name=\"info.icon\"></cl-icon-font></span\n ><span v-else>{{ info.title }}</span>\n </li>\n </ul>\n </div>\n <div\n class=\"paginate-limit\"\n v-if=\"isShowLimit\"\n >\n <cl-select\n :list=\"optLimitData\"\n :value=\"optCurrentLimit\"\n :disabled=\"disabled\"\n :transitionLeave=\"'dropdownLayer-close-no-anim'\"\n @onChange=\"onChangeLimit\"\n ></cl-select>\n </div>\n <template v-else></template>\n <div\n class=\"paginate-jump\"\n v-if=\"isShowJump\"\n >\n <span>{{ optPageLanguage.jumpTo }}</span>\n <cl-input\n v-model:value=\"optJumpValue\"\n :disabled=\"disabled\"\n @onKeyupEnter=\"onChangeJump\"\n @onChangeBlur=\"onChangeJump\"\n @onClear=\"onChangeJump\"\n ></cl-input\n ><span>{{ optPageLanguage.page }}</span>\n </div>\n <template v-else></template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { watch, computed, ref } from 'vue';\nimport CommonBase from '../../Common/base';\nimport CommonElement from '../../Common/Element/index';\nimport ClIconFont from '../../Element/IconFont/Index.vue';\nimport ClInput from '../../Element/Input/Index.vue';\nimport ClSelect from '../Select/Index.vue';\nimport useLanguage from '../../Use/language';\nimport './index.css';\n\nexport interface PaginateLimitItem {\n id: string | number;\n name: string;\n}\n\ninterface PaginatePageItem {\n icon?: string;\n title?: string | number;\n active: boolean;\n disabled?: boolean;\n isOmit?: boolean;\n ariaLabel?: string;\n page: number | string;\n}\n\ndefineOptions({ name: 'ClPaginate' });\n\nconst props = defineProps({\n id: String, // desc: 自定义元素 id\n className: String, // desc: 自定义CSS类名\n disabled: {\n type: Boolean,\n default: false, // desc: 是否禁用分页\n },\n isShowLimit: {\n type: Boolean,\n default: true, // desc: 是否显示每页条数下拉\n },\n limitValue: {\n type: Number,\n default: 10, // desc: 每页条数\n },\n limitData: Array as () => PaginateLimitItem[], // desc: 每页条数选项列表\n isShowJump: {\n type: Boolean,\n default: true, // desc: 是否显示跳页输入\n },\n totalCount: {\n type: Number,\n default: 0, // desc: 数据总条数\n },\n currentPage: {\n type: Number,\n default: 1, // desc: 当前页码\n },\n});\n\nconst emit = defineEmits<{\n (e: 'onChange', page: number, limit: number): void; // desc: 页码或每页条数变化时触发\n}>();\n\n// kb: Enter/Space 触发当前聚焦分页按钮翻页(分页按钮 li 支持键盘焦点)\n\nconst { optPageLanguage, getPageLanguage } = useLanguage();\ngetPageLanguage('paginate');\n\nconst _keyIndex = `paginate-${CommonBase.getRandom(5)}`;\nconst elId = props.id; // || `paginate-${CommonBase.getRandom(8)}`\nconst DEFAULT_LIMIT = 10;\nconst optCurrentLimit = ref('');\nconst optJumpValue = ref('');\nconst optLastPage = ref(-1);\nconst optLastLimit = ref(-1);\n\nconst clsParent = computed(() => {\n let cls: Record<string, boolean> = {\n 'panel-paginate': true,\n 'paginate-disabled': props.disabled,\n };\n cls = CommonBase.getJsonMerge(cls, CommonElement.getClassNameJson(props.className));\n return cls;\n});\n\nconst optCurrentLimitNum = computed(() =>\n Math.max(1, parseInt(optCurrentLimit.value) || DEFAULT_LIMIT),\n);\n\nconst optCurrentPageNum = computed(() => {\n const _rawPage = CommonBase.isFinite(props.currentPage) ? props.currentPage : 1;\n const _maxPage =\n props.totalCount > 0 ? Math.ceil(props.totalCount / optCurrentLimitNum.value) : 0;\n return _maxPage > 0 ? Math.min(Math.max(1, _rawPage), _maxPage) : _rawPage;\n});\n\nconst optLimitData = computed(() => {\n const limitData = props.limitData;\n if (CommonBase.isArray(limitData) && !CommonBase.isEmpty(limitData)) {\n const _valid = CommonBase.getListClone(limitData).filter(\n (p: PaginateLimitItem) => !CommonBase.isEmpty(p) && !CommonBase.isEmpty(p.id),\n );\n if (_valid.length > 0) {\n return _valid;\n }\n }\n const _strip = optPageLanguage.value.pageStrip;\n const _suffix = CommonBase.isNonEmptyString(_strip) ? _strip : '';\n return [\n { id: 10, name: `10${_suffix}` },\n { id: 20, name: `20${_suffix}` },\n { id: 30, name: `30${_suffix}` },\n { id: 50, name: `50${_suffix}` },\n { id: 100, name: `100${_suffix}` },\n ];\n});\n\nconst optStatistic = computed(() => {\n const _currentLimit = optCurrentLimitNum.value;\n const _currentPage = optCurrentPageNum.value;\n const _total = props.totalCount;\n let s = (_currentPage - 1) * _currentLimit;\n let e = _currentPage * _currentLimit;\n if (_total > 0) {\n s = s + 1;\n e = e > _total ? _total : e;\n if (s > e) {\n s = e;\n }\n } else {\n s = 0;\n e = 0;\n }\n const _fmt = optPageLanguage.value.statistic;\n if (!CommonBase.isNonEmptyString(_fmt)) {\n return '';\n }\n return CommonBase.convertStringFormat(_fmt, { s, e, _total });\n});\n\nconst optList = computed(() => {\n let isDisabledFirst = false;\n let isDisabledPrev = false;\n let isDisabledEnd = false;\n let isDisabledNext = false;\n let maxPage = 0;\n const _currentLimit = optCurrentLimitNum.value;\n const _total = props.totalCount;\n if (_total > 0) {\n maxPage = Math.ceil(_total / _currentLimit);\n }\n const _currentPage = optCurrentPageNum.value;\n isDisabledFirst = maxPage > 0 ? _currentPage === 1 : true;\n isDisabledPrev = isDisabledFirst;\n isDisabledEnd = maxPage > 0 ? _currentPage === maxPage : true;\n isDisabledNext = isDisabledEnd;\n const list: PaginatePageItem[] = [];\n list.push({\n icon: 'angle-double-left',\n ariaLabel: 'first page',\n active: false,\n disabled: isDisabledFirst,\n page: 1,\n });\n list.push({\n icon: 'angle-left',\n ariaLabel: 'previous page',\n active: false,\n disabled: isDisabledPrev,\n page: isDisabledFirst ? 1 : _currentPage - 1,\n });\n if (maxPage > 0) {\n const pMargin = 1; // 当前页左右各保留 1 页\n const omit = '…'; // 页码过多时的省略号占位\n let showNum: (number | string)[] = [];\n const numMax = 1 + pMargin * 2 + 2 + 2; // 窗口上限 = 当前页 + 左右页(2) + 省略号(2) + 首尾页(2)\n if (maxPage > numMax) {\n const unilateral = numMax - 2; // 单侧折叠时窗口大小(去掉一侧省略号)\n const sIndex = unilateral - pMargin;\n const eIndex = maxPage - unilateral + pMargin + 1;\n if (_currentPage <= sIndex) {\n showNum = CommonBase.getArrByMinMax(1, sIndex + pMargin);\n showNum.push(omit);\n showNum.push(maxPage);\n } else if (_currentPage >= eIndex) {\n showNum = CommonBase.getArrByMinMax(eIndex - pMargin, maxPage);\n showNum.unshift(omit);\n showNum.unshift(1);\n } else {\n showNum = CommonBase.getArrByMinMax(_currentPage - pMargin, _currentPage + pMargin);\n showNum.unshift(omit);\n showNum.unshift(1);\n showNum.push(omit);\n showNum.push(maxPage);\n }\n } else {\n showNum = CommonBase.getArrByMinMax(1, maxPage);\n }\n showNum.forEach(p => {\n list.push({ title: p, active: p === _currentPage, isOmit: p === omit, page: p });\n });\n }\n list.push({\n icon: 'angle-right',\n ariaLabel: 'next page',\n active: false,\n disabled: isDisabledNext,\n page: isDisabledEnd ? maxPage : _currentPage + 1,\n });\n list.push({\n icon: 'angle-double-right',\n ariaLabel: 'last page',\n active: false,\n disabled: isDisabledEnd,\n page: maxPage,\n });\n return list;\n});\n\nconst _emitChangePage = (page: number | string, limit: number | string) => {\n const _page = parseInt(String(page));\n const _limit = parseInt(String(limit));\n if (CommonBase.isFinite(_page) && CommonBase.isFinite(_limit)) {\n if (_page !== optLastPage.value || _limit !== optLastLimit.value) {\n optLastPage.value = _page;\n optLastLimit.value = _limit;\n emit('onChange', _page, _limit);\n }\n }\n};\n\nconst _getEffectiveLimit = () => {\n const _raw =\n !CommonBase.isEmpty(props.limitValue) && CommonBase.isFinite(props.limitValue)\n ? props.limitValue\n : DEFAULT_LIMIT;\n const _value = _raw > 0 ? _raw : DEFAULT_LIMIT;\n let _tempLimit = _value.toString();\n if (props.isShowLimit) {\n const ids = optLimitData.value.map((p: PaginateLimitItem) => p.id.toString());\n if (!ids.includes(_tempLimit)) {\n _tempLimit = ids[0];\n }\n }\n return _tempLimit;\n};\noptCurrentLimit.value = _getEffectiveLimit();\n\nwatch(\n () => props.limitValue,\n () => {\n const _newLimit = _getEffectiveLimit();\n if (_newLimit !== optCurrentLimit.value) {\n optCurrentLimit.value = _newLimit;\n const _page = optCurrentPageNum.value;\n if (_page !== props.currentPage) {\n _emitChangePage(_page, _newLimit);\n }\n }\n },\n);\n\nwatch(\n () => props.limitData,\n () => {\n const _newLimit = _getEffectiveLimit();\n if (_newLimit !== optCurrentLimit.value) {\n optCurrentLimit.value = _newLimit;\n _emitChangePage(optCurrentPageNum.value, _newLimit);\n }\n },\n);\n\nwatch(\n () => props.currentPage,\n () => {\n optLastPage.value = -1;\n optLastLimit.value = -1;\n },\n);\n\nwatch(\n () => props.totalCount,\n () => {\n const _page = optCurrentPageNum.value;\n if (_page !== props.currentPage) {\n _emitChangePage(_page, optCurrentLimit.value);\n }\n },\n);\n\nconst onChangePage = (info: PaginatePageItem) => {\n if (!props.disabled && !info.active && !info.disabled && !info.isOmit) {\n optJumpValue.value = '';\n _emitChangePage(info.page, optCurrentLimit.value);\n }\n};\n\nconst onChangeLimit = (value: string) => {\n if (props.disabled) {\n return;\n }\n const _exists = optLimitData.value.some((p: PaginateLimitItem) => p.id.toString() === value);\n if (_exists) {\n optJumpValue.value = '';\n optCurrentLimit.value = value;\n _emitChangePage(1, value);\n }\n};\n\nconst onChangeJump = (value?: string) => {\n if (props.disabled || !CommonBase.isNonEmptyString(value)) {\n return;\n }\n const _page = parseInt(value);\n if (CommonBase.isFinite(_page)) {\n const _maxPage =\n props.totalCount > 0 ? Math.ceil(props.totalCount / optCurrentLimitNum.value) : 0;\n if (_page >= 1 && (_maxPage === 0 || _page <= _maxPage)) {\n optJumpValue.value = '';\n _emitChangePage(_page, optCurrentLimit.value);\n return;\n }\n }\n optJumpValue.value = '';\n};\n</script>\n"],"names":["DEFAULT_LIMIT","props","__props","emit","__emit","optPageLanguage","getPageLanguage","useLanguage","_keyIndex","CommonBase","elId","optCurrentLimit","ref","optJumpValue","optLastPage","optLastLimit","clsParent","computed","cls","CommonElement","optCurrentLimitNum","optCurrentPageNum","_rawPage","_maxPage","optLimitData","limitData","_valid","p","_strip","_suffix","optStatistic","_currentLimit","_currentPage","_total","e","_fmt","optList","isDisabledFirst","isDisabledPrev","isDisabledEnd","isDisabledNext","maxPage","list","showNum","eIndex","_emitChangePage","page","limit","_page","_limit","_getEffectiveLimit","_raw","_tempLimit","ids","watch","_newLimit","onChangePage","info","onChangeLimit","value","onChangeJump","_createElementBlock","_unref","_createElementVNode","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4","_openBlock","_Fragment","_renderList","inx","_normalizeClass","$event","_withKeys","_withModifiers","_hoisted_6","_createVNode","ClIconFont","_hoisted_7","_hoisted_8","ClSelect","_hoisted_9","ClInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Index.vue_vue_type_script_setup_true_lang-HwprdMv4.js","sources":["../../../src/libs/Web/Paginate/Index.vue"],"sourcesContent":["<template>\n <div\n :id=\"elId\"\n :class=\"clsParent\"\n >\n <div class=\"paginate-statistic\">{{ optStatistic }}</div>\n <div class=\"paginate-list\">\n <ul\n class=\"pagination\"\n role=\"navigation\"\n aria-label=\"pagination\"\n >\n <li\n v-for=\"(info, inx) in optList\"\n :key=\"`${_keyIndex}-${inx}`\"\n :class=\"{\n 'paginate-disabled': info.disabled || disabled,\n 'paginate-active': info.active,\n 'paginate-omit': info.isOmit,\n }\"\n :tabindex=\"info.disabled || disabled ? -1 : 0\"\n role=\"button\"\n :aria-label=\"info.ariaLabel || String(info.page)\"\n @click=\"onChangePage(info)\"\n @keydown.enter=\"onChangePage(info)\"\n @keydown.space.prevent=\"onChangePage(info)\"\n >\n <span v-if=\"info.icon\"><cl-icon-font :name=\"info.icon\"></cl-icon-font></span\n ><span v-else>{{ info.title }}</span>\n </li>\n </ul>\n </div>\n <div\n class=\"paginate-limit\"\n v-if=\"isShowLimit\"\n >\n <cl-select\n :list=\"optLimitData\"\n :value=\"optCurrentLimit\"\n :disabled=\"disabled\"\n :transitionLeave=\"'dropdownLayer-close-no-anim'\"\n @onChange=\"onChangeLimit\"\n ></cl-select>\n </div>\n <template v-else></template>\n <div\n class=\"paginate-jump\"\n v-if=\"isShowJump\"\n >\n <span>{{ optPageLanguage.jumpTo }}</span>\n <cl-input\n v-model:value=\"optJumpValue\"\n :disabled=\"disabled\"\n @onKeyupEnter=\"onChangeJump\"\n @onChangeBlur=\"onChangeJump\"\n @onClear=\"onChangeJump\"\n ></cl-input\n ><span>{{ optPageLanguage.page }}</span>\n </div>\n <template v-else></template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { watch, computed, ref } from 'vue';\nimport CommonBase from '../../Common/base';\nimport CommonElement from '../../Common/Element/index';\nimport ClIconFont from '../../Element/IconFont/Index.vue';\nimport ClInput from '../../Element/Input/Index.vue';\nimport ClSelect from '../Select/Index.vue';\nimport useLanguage from '../../Use/language';\nimport './index.css';\n\nexport interface PaginateLimitItem {\n id: string | number;\n name: string;\n}\n\ninterface PaginatePageItem {\n icon?: string;\n title?: string | number;\n active: boolean;\n disabled?: boolean;\n isOmit?: boolean;\n ariaLabel?: string;\n page: number | string;\n}\n\ndefineOptions({ name: 'ClPaginate' });\n\nconst props = defineProps({\n id: String, // desc: 自定义元素 id\n className: String, // desc: 自定义CSS类名\n disabled: {\n type: Boolean,\n default: false, // desc: 是否禁用分页\n },\n isShowLimit: {\n type: Boolean,\n default: true, // desc: 是否显示每页条数下拉\n },\n limitValue: {\n type: Number,\n default: 10, // desc: 每页条数\n },\n limitData: Array as () => PaginateLimitItem[], // desc: 每页条数选项列表\n isShowJump: {\n type: Boolean,\n default: true, // desc: 是否显示跳页输入\n },\n totalCount: {\n type: Number,\n default: 0, // desc: 数据总条数\n },\n currentPage: {\n type: Number,\n default: 1, // desc: 当前页码\n },\n});\n\nconst emit = defineEmits<{\n (e: 'onChange', page: number, limit: number): void; // desc: 页码或每页条数变化时触发\n}>();\n\n// kb: Enter/Space 触发当前聚焦分页按钮翻页(分页按钮 li 支持键盘焦点)\n\nconst { optPageLanguage, getPageLanguage } = useLanguage();\ngetPageLanguage('paginate');\n\nconst _keyIndex = `paginate-${CommonBase.getRandom(5)}`;\nconst elId = props.id; // || `paginate-${CommonBase.getRandom(8)}`\nconst DEFAULT_LIMIT = 10;\nconst optCurrentLimit = ref('');\nconst optJumpValue = ref('');\nconst optLastPage = ref(-1);\nconst optLastLimit = ref(-1);\n\nconst clsParent = computed(() => {\n let cls: Record<string, boolean> = {\n 'panel-paginate': true,\n 'paginate-disabled': props.disabled,\n };\n cls = CommonBase.getJsonMerge(cls, CommonElement.getClassNameJson(props.className));\n return cls;\n});\n\nconst optCurrentLimitNum = computed(() =>\n Math.max(1, parseInt(optCurrentLimit.value) || DEFAULT_LIMIT),\n);\n\nconst optCurrentPageNum = computed(() => {\n const _rawPage = CommonBase.isFinite(props.currentPage) ? props.currentPage : 1;\n const _maxPage =\n props.totalCount > 0 ? Math.ceil(props.totalCount / optCurrentLimitNum.value) : 0;\n return _maxPage > 0 ? Math.min(Math.max(1, _rawPage), _maxPage) : _rawPage;\n});\n\nconst optLimitData = computed(() => {\n const limitData = props.limitData;\n if (CommonBase.isArray(limitData) && !CommonBase.isEmpty(limitData)) {\n const _valid = CommonBase.getListClone(limitData).filter(\n (p: PaginateLimitItem) => !CommonBase.isEmpty(p) && !CommonBase.isEmpty(p.id),\n );\n if (_valid.length > 0) {\n return _valid;\n }\n }\n const _strip = optPageLanguage.value.pageStrip;\n const _suffix = CommonBase.isNonEmptyString(_strip) ? _strip : '';\n return [\n { id: 10, name: `10${_suffix}` },\n { id: 20, name: `20${_suffix}` },\n { id: 30, name: `30${_suffix}` },\n { id: 50, name: `50${_suffix}` },\n { id: 100, name: `100${_suffix}` },\n ];\n});\n\nconst optStatistic = computed(() => {\n const _currentLimit = optCurrentLimitNum.value;\n const _currentPage = optCurrentPageNum.value;\n const _total = props.totalCount;\n let s = (_currentPage - 1) * _currentLimit;\n let e = _currentPage * _currentLimit;\n if (_total > 0) {\n s = s + 1;\n e = e > _total ? _total : e;\n if (s > e) {\n s = e;\n }\n } else {\n s = 0;\n e = 0;\n }\n const _fmt = optPageLanguage.value.statistic;\n if (!CommonBase.isNonEmptyString(_fmt)) {\n return '';\n }\n return CommonBase.convertStringFormat(_fmt, { s, e, _total });\n});\n\nconst optList = computed(() => {\n let isDisabledFirst = false;\n let isDisabledPrev = false;\n let isDisabledEnd = false;\n let isDisabledNext = false;\n let maxPage = 0;\n const _currentLimit = optCurrentLimitNum.value;\n const _total = props.totalCount;\n if (_total > 0) {\n maxPage = Math.ceil(_total / _currentLimit);\n }\n const _currentPage = optCurrentPageNum.value;\n isDisabledFirst = maxPage > 0 ? _currentPage === 1 : true;\n isDisabledPrev = isDisabledFirst;\n isDisabledEnd = maxPage > 0 ? _currentPage === maxPage : true;\n isDisabledNext = isDisabledEnd;\n const list: PaginatePageItem[] = [];\n list.push({\n icon: 'angle-double-left',\n ariaLabel: 'first page',\n active: false,\n disabled: isDisabledFirst,\n page: 1,\n });\n list.push({\n icon: 'angle-left',\n ariaLabel: 'previous page',\n active: false,\n disabled: isDisabledPrev,\n page: isDisabledFirst ? 1 : _currentPage - 1,\n });\n if (maxPage > 0) {\n const pMargin = 1; // 当前页左右各保留 1 页\n const omit = '…'; // 页码过多时的省略号占位\n let showNum: (number | string)[] = [];\n const numMax = 1 + pMargin * 2 + 2 + 2; // 窗口上限 = 当前页 + 左右页(2) + 省略号(2) + 首尾页(2)\n if (maxPage > numMax) {\n const unilateral = numMax - 2; // 单侧折叠时窗口大小(去掉一侧省略号)\n const sIndex = unilateral - pMargin;\n const eIndex = maxPage - unilateral + pMargin + 1;\n if (_currentPage <= sIndex) {\n showNum = CommonBase.getArrByMinMax(1, sIndex + pMargin);\n showNum.push(omit);\n showNum.push(maxPage);\n } else if (_currentPage >= eIndex) {\n showNum = CommonBase.getArrByMinMax(eIndex - pMargin, maxPage);\n showNum.unshift(omit);\n showNum.unshift(1);\n } else {\n showNum = CommonBase.getArrByMinMax(_currentPage - pMargin, _currentPage + pMargin);\n showNum.unshift(omit);\n showNum.unshift(1);\n showNum.push(omit);\n showNum.push(maxPage);\n }\n } else {\n showNum = CommonBase.getArrByMinMax(1, maxPage);\n }\n showNum.forEach(p => {\n list.push({ title: p, active: p === _currentPage, isOmit: p === omit, page: p });\n });\n }\n list.push({\n icon: 'angle-right',\n ariaLabel: 'next page',\n active: false,\n disabled: isDisabledNext,\n page: isDisabledEnd ? maxPage : _currentPage + 1,\n });\n list.push({\n icon: 'angle-double-right',\n ariaLabel: 'last page',\n active: false,\n disabled: isDisabledEnd,\n page: maxPage,\n });\n return list;\n});\n\nconst _emitChangePage = (page: number | string, limit: number | string) => {\n const _page = parseInt(String(page));\n const _limit = parseInt(String(limit));\n if (CommonBase.isFinite(_page) && CommonBase.isFinite(_limit)) {\n if (_page !== optLastPage.value || _limit !== optLastLimit.value) {\n optLastPage.value = _page;\n optLastLimit.value = _limit;\n emit('onChange', _page, _limit);\n }\n }\n};\n\nconst _getEffectiveLimit = () => {\n const _raw =\n !CommonBase.isEmpty(props.limitValue) && CommonBase.isFinite(props.limitValue)\n ? props.limitValue\n : DEFAULT_LIMIT;\n const _value = _raw > 0 ? _raw : DEFAULT_LIMIT;\n let _tempLimit = _value.toString();\n if (props.isShowLimit) {\n const ids = optLimitData.value.map((p: PaginateLimitItem) => p.id.toString());\n if (!ids.includes(_tempLimit)) {\n _tempLimit = ids[0];\n }\n }\n return _tempLimit;\n};\noptCurrentLimit.value = _getEffectiveLimit();\n\nwatch(\n () => props.limitValue,\n () => {\n const _newLimit = _getEffectiveLimit();\n if (_newLimit !== optCurrentLimit.value) {\n optCurrentLimit.value = _newLimit;\n const _page = optCurrentPageNum.value;\n if (_page !== props.currentPage) {\n _emitChangePage(_page, _newLimit);\n }\n }\n },\n);\n\nwatch(\n () => props.limitData,\n () => {\n const _newLimit = _getEffectiveLimit();\n if (_newLimit !== optCurrentLimit.value) {\n optCurrentLimit.value = _newLimit;\n _emitChangePage(optCurrentPageNum.value, _newLimit);\n }\n },\n);\n\nwatch(\n () => props.currentPage,\n () => {\n optLastPage.value = -1;\n optLastLimit.value = -1;\n },\n);\n\nwatch(\n () => props.totalCount,\n () => {\n const _page = optCurrentPageNum.value;\n if (_page !== props.currentPage) {\n _emitChangePage(_page, optCurrentLimit.value);\n }\n },\n);\n\nconst onChangePage = (info: PaginatePageItem) => {\n if (!props.disabled && !info.active && !info.disabled && !info.isOmit) {\n optJumpValue.value = '';\n _emitChangePage(info.page, optCurrentLimit.value);\n }\n};\n\nconst onChangeLimit = (value: string) => {\n if (props.disabled) {\n return;\n }\n const _exists = optLimitData.value.some((p: PaginateLimitItem) => p.id.toString() === value);\n if (_exists) {\n optJumpValue.value = '';\n optCurrentLimit.value = value;\n _emitChangePage(1, value);\n }\n};\n\nconst onChangeJump = (value?: string) => {\n if (props.disabled || !CommonBase.isNonEmptyString(value)) {\n return;\n }\n const _page = parseInt(value);\n if (CommonBase.isFinite(_page)) {\n const _maxPage =\n props.totalCount > 0 ? Math.ceil(props.totalCount / optCurrentLimitNum.value) : 0;\n if (_page >= 1 && (_maxPage === 0 || _page <= _maxPage)) {\n optJumpValue.value = '';\n _emitChangePage(_page, optCurrentLimit.value);\n return;\n }\n }\n optJumpValue.value = '';\n};\n</script>\n"],"names":["DEFAULT_LIMIT","props","__props","emit","__emit","optPageLanguage","getPageLanguage","useLanguage","_keyIndex","CommonBase","elId","optCurrentLimit","ref","optJumpValue","optLastPage","optLastLimit","clsParent","computed","cls","CommonElement","optCurrentLimitNum","optCurrentPageNum","_rawPage","_maxPage","optLimitData","limitData","_valid","p","_strip","_suffix","optStatistic","_currentLimit","_currentPage","_total","e","_fmt","optList","isDisabledFirst","isDisabledPrev","isDisabledEnd","isDisabledNext","maxPage","list","showNum","eIndex","_emitChangePage","page","limit","_page","_limit","_getEffectiveLimit","_raw","_tempLimit","ids","watch","_newLimit","onChangePage","info","onChangeLimit","value","onChangeJump","_createElementBlock","_unref","_createElementVNode","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4","_openBlock","_Fragment","_renderList","inx","_normalizeClass","$event","_withKeys","_withModifiers","_hoisted_6","_createVNode","ClIconFont","_hoisted_7","_hoisted_8","ClSelect","_hoisted_9","ClInput"],"mappings":"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"}
|
|
@@ -1117,4 +1117,4 @@ const at = { key: 0 }, st = { key: 1 }, ot = { class: "inputTag-operate" }, Me =
|
|
|
1117
1117
|
export {
|
|
1118
1118
|
$t as _
|
|
1119
1119
|
};
|
|
1120
|
-
//# sourceMappingURL=Index.vue_vue_type_script_setup_true_lang-
|
|
1120
|
+
//# sourceMappingURL=Index.vue_vue_type_script_setup_true_lang-IGgTDykL.js.map
|