From 6bcd80d09e3c0bf51b9fe67d9aef2e5bb4324f14 Mon Sep 17 00:00:00 2001 From: DebugIsFalse <511418503@qq.com> Date: Fri, 7 Jun 2024 11:39:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=9A=E4=B8=AA=E5=9B=BE=E8=A1=A8?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/i/search/ExtraInfo.vue | 6 +++--- pages/search/[id].vue | 7 +++---- utils/searchUtil.js | 15 +++++++++------ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/components/i/search/ExtraInfo.vue b/components/i/search/ExtraInfo.vue index e9a264c..948077c 100644 --- a/components/i/search/ExtraInfo.vue +++ b/components/i/search/ExtraInfo.vue @@ -12,9 +12,9 @@ diff --git a/pages/search/[id].vue b/pages/search/[id].vue index 6adac70..856fd89 100644 --- a/pages/search/[id].vue +++ b/pages/search/[id].vue @@ -102,10 +102,10 @@ async function initSearchRecordsChart (repos) { let {output, index} = repo const {gits, urls} = handleFormatInfoData(output) fetchRepoStarsData(urls).then((result) => { - const card = handleFormatRepoStars(result) + const card = handleFormatRepoStars(result, gits) const cardItem = data.value[index].extra.find(item => item.type === card.type) if (!cardItem) return - Object.assign(cardItem, card, { info : gits }) + Object.assign(cardItem, card) }) }) } @@ -220,9 +220,8 @@ async function getRepoStarsData (output) { askingSidebarCards.value.push({ ready: false, type: 'search_relate_repo' }) const { gits, urls } = handleFormatInfoData(output) const data = await fetchRepoStarsData(urls) - const cardItem = handleFormatRepoStars(data) + const cardItem = handleFormatRepoStars(data, gits) const hasRepoStarItem = askingSidebarCards.value.find(item => item.type === cardItem.type) - cardItem.info = gits if (hasRepoStarItem) { Object.assign(hasRepoStarItem, cardItem) } else { diff --git a/utils/searchUtil.js b/utils/searchUtil.js index 4084e4e..8e478cf 100644 --- a/utils/searchUtil.js +++ b/utils/searchUtil.js @@ -62,23 +62,26 @@ export function gitToLabel(url) { // 返回匹配到的项目名称 return match[1]; } -export function handleFormatRepoStars (repoObj) { +export function handleFormatRepoStars (repoObj, gits) { const card = { type: 'search_relate_repo', title: 'Star对比', - labels: [], ready: true, data: [] } + const gitsMap = {} + gits.forEach(item => { + gitsMap[item.url] = item + }) Object.keys(repoObj).forEach(child => { const data = repoObj[child] - const cardDataItem = { label: gitToLabel(child), data: [] } + const cardDataItem = { data: [{ data: [], label: 'Star数量' }], labels: [], info: gitsMap[child] } data.forEach(dataItem => { const { date, stargazers } = dataItem - card.labels = [...new Set([...card.labels, date])] - cardDataItem.data.push(stargazers) + cardDataItem.labels.push(date) + cardDataItem.data[0].data.push(stargazers) }) - if (cardDataItem.data.length > 0) { + if (cardDataItem.data[0].data.length > 0) { card.data.push(cardDataItem) } }) -- GitLab