mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-19 09:14:27 +08:00
code refactor
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-select
|
<v-select
|
||||||
class="two-column-main-select"
|
ref="twoColumnMainSelect"
|
||||||
persistent-placeholder
|
persistent-placeholder
|
||||||
:density="density"
|
:density="density"
|
||||||
:variant="variant"
|
:variant="variant"
|
||||||
@@ -89,6 +89,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { VSelect } from 'vuetify/components/VSelect';
|
||||||
import { VTextField } from 'vuetify/components/VTextField';
|
import { VTextField } from 'vuetify/components/VTextField';
|
||||||
|
|
||||||
import { ref, computed, useTemplateRef, nextTick } from 'vue';
|
import { ref, computed, useTemplateRef, nextTick } from 'vue';
|
||||||
@@ -142,6 +143,7 @@ const {
|
|||||||
updateCurrentSecondaryValue
|
updateCurrentSecondaryValue
|
||||||
} = useTwoColumnListItemSelectionBase(props);
|
} = useTwoColumnListItemSelectionBase(props);
|
||||||
|
|
||||||
|
const twoColumnMainSelect = useTemplateRef<VSelect>('twoColumnMainSelect');
|
||||||
const filterInput = useTemplateRef<VTextField>('filterInput');
|
const filterInput = useTemplateRef<VTextField>('filterInput');
|
||||||
const dropdownMenu = useTemplateRef<HTMLElement>('dropdownMenu');
|
const dropdownMenu = useTemplateRef<HTMLElement>('dropdownMenu');
|
||||||
|
|
||||||
@@ -216,8 +218,8 @@ function isSecondarySelected(subItem: unknown): boolean {
|
|||||||
function updateMenuPosition(): void {
|
function updateMenuPosition(): void {
|
||||||
if (props.autoUpdateMenuPosition) {
|
if (props.autoUpdateMenuPosition) {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
const mainSelectRect = document.querySelector('.two-column-main-select')?.getBoundingClientRect();
|
const mainSelectRect = twoColumnMainSelect.value?.$el.getBoundingClientRect();
|
||||||
const selectMenu = document.querySelector('.two-column-select-menu') as (HTMLElement | null);
|
const selectMenu = dropdownMenu.value?.parentElement?.parentElement;
|
||||||
const selectMenuRect = selectMenu?.getBoundingClientRect();
|
const selectMenuRect = selectMenu?.getBoundingClientRect();
|
||||||
|
|
||||||
if (mainSelectRect && selectMenu && selectMenuRect) {
|
if (mainSelectRect && selectMenu && selectMenuRect) {
|
||||||
|
|||||||
Reference in New Issue
Block a user