提交 4bfeccfb 编写于 作者: D DebugIsFalse

fix: 添加临时处理title问题

上级 62477554
......@@ -50,7 +50,7 @@
<script setup>
const { $repos } = storeToRefs(useReposStore())
const { $setRepo } = useReposStore()
const { $getSearchHistory } = useSearchStore()
const { $getSearchHistory, $setFirstRecordTitle } = useSearchStore()
const emits = defineEmits([ 'search' ])
const query = ref('')
const selectedRepo = ref('')
......@@ -79,6 +79,8 @@ const handleSearch = async () => {
})
loading.value = false
if (error.value) return
// todo 临时存到pina给搜索使用
$setFirstRecordTitle(query.value)
navigateTo(`/search/${data.value.data.c_id}`)
emits('search')
nextTick(() => {
......
......@@ -2,7 +2,7 @@
<div class="w-full items-center flex flex-col">
<IException v-if="historyStatus !== 200" :code="historyStatus" />
<template v-else>
<iSearchHeader ref="refHeader" :query="state.query" :is-public="state.isPublic" @update-query="handleUpdateQuery" />
<iSearchHeader ref="refHeader" :query="state.title" :is-public="state.isPublic" @update-query="handleUpdateQuery" />
<div class="container min-h-svh max-w-screen-lg flex flex-col space-y-6 p-6 mb-6 pb-0" id="scrollElement">
<div class="grid">
<h1 class="text-3xl">{{ state.query }}</h1>
......@@ -52,7 +52,10 @@
const route = useRoute()
const { y } = useWindowScroll({ behavior: 'smooth' })
const { directions } = useScroll(window)
const { $firstRecordTitle } = storeToRefs(useSearchStore())
const { $setFirstRecordTitle } = useSearchStore()
const state = reactive({
title: '',
query: '',
repo: '',
id: route.params.id,
......@@ -72,9 +75,13 @@ let asking = ref(false)
let aiChatController = null // 用户取消操作方法
const markedEnd = '[DONE]'
function initSearchItemInfo (info) {
function initSearchItemInfo (info, records) {
const { title, repo_name, repo_path, repo_branch, is_public } = info
Object.assign(state, { query: title, repo: repo_name, gitPath: repo_path, branch: repo_branch, isPublic: is_public })
Object.assign(state, { query: $firstRecordTitle.value, title, repo: repo_name, gitPath: repo_path, branch: repo_branch, isPublic: is_public })
// 单独处理query,兼容临时title的历史记录
if (records && records.length > 0) {
state.query = records[0].question
}
}
function initSearchRecords (records) {
data.value = records.map(item => {
......@@ -102,7 +109,7 @@ async function init () {
return
}
const { info, records } = data.value && data.value.data
initSearchItemInfo(info)
initSearchItemInfo(info, records)
initSearchRecords(records)
}
await init()
......@@ -316,9 +323,15 @@ useHead({
title: `${state.query} - GitBot`
})
nextTick( () => {
if (data.value.length === 0 && state.query) {
Object.assign(askingData.value, { desLoading: true, question: state.query })
generateFetchData(state.query)
console.log('$firstRecordTitle.value:', $firstRecordTitle.value)
const query = $firstRecordTitle.value || state.query
// 清除临时缓存提问问题
$setFirstRecordTitle('')
if (data.value.length === 0 && query) {
Object.assign(askingData.value, { desLoading: true, question: query })
generateFetchData(query)
} else {
asking.value = false;
askingData.value = {}
......
......@@ -3,10 +3,17 @@ import { defineStore } from 'pinia'
export const useSearchStore = defineStore('search', () => {
const { $isSignIn } = useUserStore()
const $searchHistory = ref([])
const $firstRecordTitle = ref('')
async function $getSearchHistory () {
if (!$isSignIn) return
const { data } = await useRequest('/v1/chat/completion/list')
$searchHistory.value = data.value.data
}
return { $searchHistory, $getSearchHistory }
function $setFirstRecordTitle (article) {
$firstRecordTitle.value = article
}
return {
$searchHistory, $getSearchHistory,
$firstRecordTitle, $setFirstRecordTitle
}
})
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册