From 68e754dc8477690be3d83c2c868f0486579f9509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B1=E7=9C=A0=E5=84=80=E5=BC=8F?= <854085467@qq.com> Date: Sun, 25 Sep 2022 22:58:42 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(component):=20=E4=BC=98=E5=8C=96=20pa?= =?UTF-8?q?ge=20=E7=BB=84=E4=BB=B6=20limit=20=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/src/component/page/index.vue | 12 ++-- .../component/src/component/select/index.vue | 70 ++++++++++++++----- 2 files changed, 57 insertions(+), 25 deletions(-) diff --git a/package/component/src/component/page/index.vue b/package/component/src/component/page/index.vue index 1f9a684d..d15d7cca 100644 --- a/package/component/src/component/page/index.vue +++ b/package/component/src/component/page/index.vue @@ -58,12 +58,7 @@ watch( const totalPage = computed(() => { maxPage.value = Math.ceil(props.total / inlimit.value); let r: number[] = []; - let start = - maxPage.value <= props.pages - ? 1 - : currentPage.value > pages - ? currentPage.value - pages - : 1; + let start = maxPage.value <= props.pages ? 1 : currentPage.value > pages ? currentPage.value - pages : 1; for (let i = start; ; i++) { if (r.length >= props.pages || i > maxPage.value) { break; @@ -102,7 +97,10 @@ const jumpPage = () => { }; const changelimit = () => { - currentPage.value = 1; + const maxPage = Math.ceil(props.total / inlimit.value); + if(currentPage.value > maxPage ) { + currentPage.value = maxPage; + } emit("change", { current: currentPage.value, limit: inlimit.value }); }; diff --git a/package/component/src/component/select/index.vue b/package/component/src/component/select/index.vue index f47787ee..33b70fa4 100644 --- a/package/component/src/component/select/index.vue +++ b/package/component/src/component/select/index.vue @@ -15,7 +15,7 @@ import { onMounted, VNode, Component, - watch + watch, } from "vue"; import LayInput from "../input/index.vue"; import LayTagInput from "../tagInput/index.vue"; @@ -65,16 +65,19 @@ onMounted(() => { } Object.assign(options.value, props.items); - watch(selectedValue, () => { - if (multiple.value) { - // tag-input 格式化 - - } else { - singleLabel.value = options.value.find((item: any) => { - return item.value === selectedValue.value; - })?.label; - } - }, { immediate: true }) + watch( + selectedValue, + () => { + if (multiple.value) { + // tag-input 格式化 + } else { + singleLabel.value = options.value.find((item: any) => { + return item.value === selectedValue.value; + })?.label; + } + }, + { immediate: true } + ); }); const getOption = function (nodes: VNode[]) { @@ -111,24 +114,55 @@ provide("multiple", multiple);