diff --git a/components/i/search/ExtraInfo.vue b/components/i/search/ExtraInfo.vue index e9a264c1d05ff4a16a33527b398d5247f7ad3dfe..948077cbb969ef2660eae86604f42321a16c3241 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 6adac70a03cd81fd992d75d88758e94350c4fa0b..856fd89469868cc6dd5e6b8799c04c63efd65dc0 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 4084e4eecf45b18452892e2d40d5fc5afacf38bb..8e478cf6d0ecfea0a8b659c130f98fd27e129d8e 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) } })