From 4d406275216cdb0d63c82a80a775ec2e0106e569 Mon Sep 17 00:00:00 2001 From: yuntian001 Date: Fri, 18 Aug 2023 21:10:40 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20tag=E6=BB=9A=E5=8A=A8=E4=BC=9A?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=9A=E5=B1=95=E7=A4=BA=E5=89=8D=E4=B8=80?= =?UTF-8?q?=E4=B8=AA/=E5=90=8E=E4=B8=80=E4=B8=AAtag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../header/components/tagBar/index.vue | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/layout/components/header/components/tagBar/index.vue b/src/layout/components/header/components/tagBar/index.vue index c0a9a783..d4295bf9 100644 --- a/src/layout/components/header/components/tagBar/index.vue +++ b/src/layout/components/header/components/tagBar/index.vue @@ -131,19 +131,30 @@ const go = () => { const jump = (index: number) => { nextTick(() => { if (tagsRef.value[index]) { - const offsetLeft = tagsRef.value[index].offsetLeft; - const offsetWidth = tagsRef.value[index].offsetWidth; - const offsetRight = offsetWidth + offsetLeft; + currentTag.value = tags[index]; + if (index === 0) { + setScrollLeft(0); + return; + } + if (index === tagsRef.value.length - 1) { + setScrollLeft(tagsRef.value[tagsRef.value.length - 1].offsetLeft); + return; + } const parentWidth = scrollbarRef.value!.$el.clientWidth; const parentLeft = scrollLeft.value; const parentRight = parentWidth + scrollLeft.value; - if (offsetLeft < parentLeft) { + const lastLeft = tagsRef.value[index - 1].offsetLeft; + const offsetLeft = tagsRef.value[index].offsetLeft; + const offsetRight = offsetLeft + tagsRef.value[index].offsetWidth; + const nextLeft = tagsRef.value[index + 1].offsetLeft; + const nextRight = nextLeft + tagsRef.value[index + 1].offsetWidth; + if (parentWidth <= offsetRight - lastLeft || parentWidth <= nextRight - offsetLeft) { setScrollLeft(offsetLeft); + } else if (lastLeft < parentLeft) { + setScrollLeft(lastLeft); + } else if (nextRight > parentRight) { + setScrollLeft(nextRight - parentWidth); } - if (offsetRight > parentRight) { - setScrollLeft(offsetLeft + offsetWidth - parentWidth); - } - currentTag.value = tags[index]; } }); }; From 5a5fb0f9614bef5dccfe509be5293d2de0113ce9 Mon Sep 17 00:00:00 2001 From: yuntian001 Date: Fri, 18 Aug 2023 21:40:21 +0800 Subject: [PATCH 2/6] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8tag=E5=80=BC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/header/components/tagBar/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layout/components/header/components/tagBar/index.vue b/src/layout/components/header/components/tagBar/index.vue index d4295bf9..c80532cb 100644 --- a/src/layout/components/header/components/tagBar/index.vue +++ b/src/layout/components/header/components/tagBar/index.vue @@ -137,7 +137,7 @@ const jump = (index: number) => { return; } if (index === tagsRef.value.length - 1) { - setScrollLeft(tagsRef.value[tagsRef.value.length - 1].offsetLeft); + setScrollLeft(max.value); return; } const parentWidth = scrollbarRef.value!.$el.clientWidth; From ba38f088c12ad791a77571caa3cd8e7fe774c835 Mon Sep 17 00:00:00 2001 From: yuntian001 Date: Fri, 18 Aug 2023 22:01:04 +0800 Subject: [PATCH 3/6] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dtag=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E6=97=B6=E6=BB=9A=E5=8A=A8=E6=9C=80=E5=A4=A7=E5=80=BC?= =?UTF-8?q?=E6=9C=AA=E6=9B=B4=E6=96=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../header/components/tagBar/index.vue | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/layout/components/header/components/tagBar/index.vue b/src/layout/components/header/components/tagBar/index.vue index c80532cb..c475f26a 100644 --- a/src/layout/components/header/components/tagBar/index.vue +++ b/src/layout/components/header/components/tagBar/index.vue @@ -105,22 +105,22 @@ const setScrollLeft = (left: number, isAdd = false) => { } $(scrollbarRef.value!.$el).find('.el-scrollbar__wrap').animate({ scrollLeft: left }, 300); }; -const max = ref(0); const tagsRef = ref([] as HTMLElement[]); const currentTag = ref({ fullPath: '/', meta: { title: '' }, } as RouteLocationNormalized); const route = useRoute(); -onMounted(() => { +const max = ref(0); +const setMax = () => { max.value = listRef.value!.offsetWidth - scrollbarRef.value?.$el.clientWidth; - mitter.on( - event.RESIZE, - () => { - max.value = listRef.value!.offsetWidth - scrollbarRef.value?.$el.clientWidth; - }, - true, - ); +}; +onMounted(() => { + mitter.on(event.RESIZE, setMax, true); + watch(tags, setMax, { + flush: 'post', + immediate: true, + }); }); const back = () => { setScrollLeft(0 - scrollbarRef.value!.$el.clientWidth / 2, true); @@ -137,7 +137,7 @@ const jump = (index: number) => { return; } if (index === tagsRef.value.length - 1) { - setScrollLeft(max.value); + max.value > 0 && setScrollLeft(max.value); return; } const parentWidth = scrollbarRef.value!.$el.clientWidth; From 30e07bf49fef07f0982ce6a5b8af0e167c752308 Mon Sep 17 00:00:00 2001 From: yuntian001 Date: Fri, 18 Aug 2023 21:40:21 +0800 Subject: [PATCH 4/6] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8tag=E5=80=BC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/header/components/tagBar/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layout/components/header/components/tagBar/index.vue b/src/layout/components/header/components/tagBar/index.vue index d4295bf9..c80532cb 100644 --- a/src/layout/components/header/components/tagBar/index.vue +++ b/src/layout/components/header/components/tagBar/index.vue @@ -137,7 +137,7 @@ const jump = (index: number) => { return; } if (index === tagsRef.value.length - 1) { - setScrollLeft(tagsRef.value[tagsRef.value.length - 1].offsetLeft); + setScrollLeft(max.value); return; } const parentWidth = scrollbarRef.value!.$el.clientWidth; From ea0d34cfee63a05c6226b070221a70f69fe207f1 Mon Sep 17 00:00:00 2001 From: yuntian001 Date: Fri, 18 Aug 2023 22:01:04 +0800 Subject: [PATCH 5/6] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dtag=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E6=97=B6=E6=BB=9A=E5=8A=A8=E6=9C=80=E5=A4=A7=E5=80=BC?= =?UTF-8?q?=E6=9C=AA=E6=9B=B4=E6=96=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../header/components/tagBar/index.vue | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/layout/components/header/components/tagBar/index.vue b/src/layout/components/header/components/tagBar/index.vue index c80532cb..c475f26a 100644 --- a/src/layout/components/header/components/tagBar/index.vue +++ b/src/layout/components/header/components/tagBar/index.vue @@ -105,22 +105,22 @@ const setScrollLeft = (left: number, isAdd = false) => { } $(scrollbarRef.value!.$el).find('.el-scrollbar__wrap').animate({ scrollLeft: left }, 300); }; -const max = ref(0); const tagsRef = ref([] as HTMLElement[]); const currentTag = ref({ fullPath: '/', meta: { title: '' }, } as RouteLocationNormalized); const route = useRoute(); -onMounted(() => { +const max = ref(0); +const setMax = () => { max.value = listRef.value!.offsetWidth - scrollbarRef.value?.$el.clientWidth; - mitter.on( - event.RESIZE, - () => { - max.value = listRef.value!.offsetWidth - scrollbarRef.value?.$el.clientWidth; - }, - true, - ); +}; +onMounted(() => { + mitter.on(event.RESIZE, setMax, true); + watch(tags, setMax, { + flush: 'post', + immediate: true, + }); }); const back = () => { setScrollLeft(0 - scrollbarRef.value!.$el.clientWidth / 2, true); @@ -137,7 +137,7 @@ const jump = (index: number) => { return; } if (index === tagsRef.value.length - 1) { - setScrollLeft(max.value); + max.value > 0 && setScrollLeft(max.value); return; } const parentWidth = scrollbarRef.value!.$el.clientWidth; From 5079e3cc6ec670ed9b030054623ac96f4889e986 Mon Sep 17 00:00:00 2001 From: yuntian001 Date: Fri, 18 Aug 2023 22:14:44 +0800 Subject: [PATCH 6/6] =?UTF-8?q?fix:=20=E5=8A=A0=E4=B8=8A=20:column-config?= =?UTF-8?q?=3D"{useKey:true}"=20=E4=BF=AE=E5=A4=8D=E6=96=B0=E7=89=88vxe-ta?= =?UTF-8?q?ble=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/rolePermissions/components/group/group.vue | 1 + src/views/rolePermissions/components/menu/menu.vue | 1 + 2 files changed, 2 insertions(+) diff --git a/src/views/rolePermissions/components/group/group.vue b/src/views/rolePermissions/components/group/group.vue index 3ec24e7d..50941eb1 100644 --- a/src/views/rolePermissions/components/group/group.vue +++ b/src/views/rolePermissions/components/group/group.vue @@ -7,6 +7,7 @@ :loading="group.loading.value" :row-config="{ isCurrent: true, useKey: true }" :tree-config="{ expandAll: true, line: true }" + :column-config="{ useKey: true }" :custom-column="false" :print="false" :export-menu="[]" diff --git a/src/views/rolePermissions/components/menu/menu.vue b/src/views/rolePermissions/components/menu/menu.vue index 7ee86b69..22d1460f 100644 --- a/src/views/rolePermissions/components/menu/menu.vue +++ b/src/views/rolePermissions/components/menu/menu.vue @@ -9,6 +9,7 @@ :tree-config="{ expandAll: true, line: true, reserve: true }" :checkbox-config="{ labelField: 'id' }" :row-config="{ keyField: 'rule', useKey: true }" + :column-config="{ useKey: true }" align="center" border me-class="table-menu"