From fa64615572b2a8734424c237e68edd041dfa1264 Mon Sep 17 00:00:00 2001 From: ailoooong Date: Wed, 11 Jun 2025 17:38:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E6=90=9C=E7=B4=A2=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E9=A1=B5url=E6=9F=A5=E8=AF=A2=E5=8F=82=E6=95=B0=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/OCardItem.vue | 3 ++- src/components/ResultNoApp.vue | 8 +++++-- src/components/filter/FilterHeader.vue | 8 ++++--- src/components/search/SearchFilter.vue | 29 +++++++++++++---------- src/components/search/SearchRecommend.vue | 6 ++--- src/components/search/SearchTab.vue | 20 +++++++++------- src/data/nav.ts | 2 +- src/i18n/software/software-en.ts | 1 + src/i18n/software/software-zh.ts | 1 + src/router/index.ts | 4 ++++ src/views/conda/CondaContent.vue | 25 ++++++++++--------- src/views/epkg/EpkgContent.vue | 25 ++++++++++--------- src/views/field/FieldContent.vue | 29 +++++++++++++---------- src/views/home/HomeField.vue | 2 +- src/views/image/ImageContent.vue | 26 +++++++++++--------- src/views/oepkg/OEpkgContent.vue | 25 ++++++++++--------- src/views/package/RpmContent.vue | 23 ++++++++++-------- src/views/search/TheSearch.vue | 16 ++++++------- src/views/upstream/UpstreamContent.vue | 6 +++-- 19 files changed, 150 insertions(+), 109 deletions(-) diff --git a/src/components/OCardItem.vue b/src/components/OCardItem.vue index 57ab3b4..cea0ee5 100644 --- a/src/components/OCardItem.vue +++ b/src/components/OCardItem.vue @@ -128,12 +128,13 @@ const onClickLink = (event: MouseEvent, isTag?: boolean) => { reportAnalytics(obj); return; } + const name = route.query?.name ?? route.query?.q ?? ''; if (isPageSearch.value) { reportAnalytics({ tab: route.query.tab, type: 'search_content', target: target.textContent, - content: route.query.name, + content: name, }); return; } diff --git a/src/components/ResultNoApp.vue b/src/components/ResultNoApp.vue index 7ea4521..dbac1bd 100644 --- a/src/components/ResultNoApp.vue +++ b/src/components/ResultNoApp.vue @@ -1,5 +1,5 @@ @@ -95,7 +98,8 @@ defineExpose({ padding: 0 var(--layout-content-padding); display: flex; justify-content: space-between; - height: 160px; + min-height: 140px; + flex-direction: column; .banner-text { display: flex; flex-direction: column; @@ -187,13 +191,4 @@ defineExpose({ opacity: 1; } } - -.banner-text { - .banner-title { - animation: fade-up var(--o-duration-l) var(--o-easing-standard-in); - } - .banner-subtitle { - animation: fade-up 800ms var(--o-easing-standard-in); - } -} diff --git a/src/components/AppFooter.vue b/src/components/AppFooter.vue index 27ebd9a..63fb9fa 100644 --- a/src/components/AppFooter.vue +++ b/src/components/AppFooter.vue @@ -1,7 +1,6 @@ diff --git a/src/components/filter/FilterHeader.vue b/src/components/filter/FilterHeader.vue index 90dc71a..26e6506 100644 --- a/src/components/filter/FilterHeader.vue +++ b/src/components/filter/FilterHeader.vue @@ -46,6 +46,7 @@ const { locale } = useLocale(); const emits = defineEmits<{ (e: 'sort', value: string[] | string): void; + (e: 'search', value: string): void; (e: 'clear'): void; }>(); @@ -55,17 +56,16 @@ const searchValue = ref(''); const showPanel = ref(false); // 搜索 -const changeSearchInput = (v: string) => { - changePkgInput(v); - searchValue.value = v; +const changeSearchInput = () => { + changePkgInput(); replaceWinUrl(); }; -const changePkgInput = (v: string) => { - if (v === '') { +const changePkgInput = () => { + if (searchValue.value === '') { return; } - if (v.length > 100) { + if (searchValue.value && searchValue.value.length > 100) { return msg.danger({ content: '文字长度不能超过100字符', }); @@ -75,15 +75,16 @@ const changePkgInput = (v: string) => { const clearSearchData = () => { emits('clear'); router.push({ - path: `/${locale.value}/` + (route.name as string), + query: { + q: undefined, + }, }); }; const replaceWinUrl = () => { collectDownloadData(searchValue.value); - + emits('search', searchValue.value); router.push({ - path: `/${locale.value}/` + (route.name as string), query: { q: searchValue.value, }, @@ -217,12 +218,12 @@ const getSearchplaceholder = (name: string) => { clearable @focus="showPanel = true" v-model="searchValue" - @press-enter="(v) => changeSearchInput(v)" - @input="(v) => changePkgInput(v)" + @press-enter="changeSearchInput" + @input="changePkgInput" @clear="clearSearchData" > diff --git a/src/components/header/AppLogin.vue b/src/components/header/AppLogin.vue index 77bf5aa..f6a7b80 100644 --- a/src/components/header/AppLogin.vue +++ b/src/components/header/AppLogin.vue @@ -72,6 +72,7 @@ const jumpTo = (v: string) => { .login-btn { color: var(--o-color-info1); + width: 20px; cursor: pointer; } diff --git a/src/components/header/HeaderNav.vue b/src/components/header/HeaderNav.vue index cc35bf2..cfb3fe7 100644 --- a/src/components/header/HeaderNav.vue +++ b/src/components/header/HeaderNav.vue @@ -36,8 +36,14 @@ const onMouseLeave = () => { }; // -------------------- 选中事件 -------------------- +/** 软件列表 */ +const softwareList = ['rpm', 'image', 'oepkg', 'conda']; const selectedIndex = computed(() => { - return props.options.findIndex((item) => route.name?.toString().startsWith(item.id)); + let name = route.name?.toString(); + if (softwareList.includes(name)) { + name = 'list'; + } + return props.options.findIndex((item) => name.startsWith(item.id)); }); // 导航跳转 diff --git a/src/components/header/HeaderTheme.vue b/src/components/header/HeaderTheme.vue index 309bc71..653bf3b 100644 --- a/src/components/header/HeaderTheme.vue +++ b/src/components/header/HeaderTheme.vue @@ -24,12 +24,11 @@ const { changeTheme, isLight, isDark } = useTheme(); height: 100%; display: flex; align-items: center; - width: 24px; } .theme-icon { color: var(--o-color-info1); - width: 24px; + width: 20px; cursor: pointer; } diff --git a/src/components/search/SearchFilter.vue b/src/components/search/SearchFilter.vue index f00fa3e..df26dc5 100644 --- a/src/components/search/SearchFilter.vue +++ b/src/components/search/SearchFilter.vue @@ -1,8 +1,7 @@