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

fix: 添加临时处理title问题

上级 62477554
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<script setup> <script setup>
const { $repos } = storeToRefs(useReposStore()) const { $repos } = storeToRefs(useReposStore())
const { $setRepo } = useReposStore() const { $setRepo } = useReposStore()
const { $getSearchHistory } = useSearchStore() const { $getSearchHistory, $setFirstRecordTitle } = useSearchStore()
const emits = defineEmits([ 'search' ]) const emits = defineEmits([ 'search' ])
const query = ref('') const query = ref('')
const selectedRepo = ref('') const selectedRepo = ref('')
...@@ -79,6 +79,8 @@ const handleSearch = async () => { ...@@ -79,6 +79,8 @@ const handleSearch = async () => {
}) })
loading.value = false loading.value = false
if (error.value) return if (error.value) return
// todo 临时存到pina给搜索使用
$setFirstRecordTitle(query.value)
navigateTo(`/search/${data.value.data.c_id}`) navigateTo(`/search/${data.value.data.c_id}`)
emits('search') emits('search')
nextTick(() => { nextTick(() => {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="w-full items-center flex flex-col"> <div class="w-full items-center flex flex-col">
<IException v-if="historyStatus !== 200" :code="historyStatus" /> <IException v-if="historyStatus !== 200" :code="historyStatus" />
<template v-else> <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="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"> <div class="grid">
<h1 class="text-3xl">{{ state.query }}</h1> <h1 class="text-3xl">{{ state.query }}</h1>
...@@ -52,7 +52,10 @@ ...@@ -52,7 +52,10 @@
const route = useRoute() const route = useRoute()
const { y } = useWindowScroll({ behavior: 'smooth' }) const { y } = useWindowScroll({ behavior: 'smooth' })
const { directions } = useScroll(window) const { directions } = useScroll(window)
const { $firstRecordTitle } = storeToRefs(useSearchStore())
const { $setFirstRecordTitle } = useSearchStore()
const state = reactive({ const state = reactive({
title: '',
query: '', query: '',
repo: '', repo: '',
id: route.params.id, id: route.params.id,
...@@ -72,9 +75,13 @@ let asking = ref(false) ...@@ -72,9 +75,13 @@ let asking = ref(false)
let aiChatController = null // 用户取消操作方法 let aiChatController = null // 用户取消操作方法
const markedEnd = '[DONE]' const markedEnd = '[DONE]'
function initSearchItemInfo (info) { function initSearchItemInfo (info, records) {
const { title, repo_name, repo_path, repo_branch, is_public } = info 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) { function initSearchRecords (records) {
data.value = records.map(item => { data.value = records.map(item => {
...@@ -102,7 +109,7 @@ async function init () { ...@@ -102,7 +109,7 @@ async function init () {
return return
} }
const { info, records } = data.value && data.value.data const { info, records } = data.value && data.value.data
initSearchItemInfo(info) initSearchItemInfo(info, records)
initSearchRecords(records) initSearchRecords(records)
} }
await init() await init()
...@@ -316,9 +323,15 @@ useHead({ ...@@ -316,9 +323,15 @@ useHead({
title: `${state.query} - GitBot` title: `${state.query} - GitBot`
}) })
nextTick( () => { nextTick( () => {
if (data.value.length === 0 && state.query) { console.log('$firstRecordTitle.value:', $firstRecordTitle.value)
Object.assign(askingData.value, { desLoading: true, question: state.query }) const query = $firstRecordTitle.value || state.query
generateFetchData(state.query)
// 清除临时缓存提问问题
$setFirstRecordTitle('')
if (data.value.length === 0 && query) {
Object.assign(askingData.value, { desLoading: true, question: query })
generateFetchData(query)
} else { } else {
asking.value = false; asking.value = false;
askingData.value = {} askingData.value = {}
......
...@@ -3,10 +3,17 @@ import { defineStore } from 'pinia' ...@@ -3,10 +3,17 @@ import { defineStore } from 'pinia'
export const useSearchStore = defineStore('search', () => { export const useSearchStore = defineStore('search', () => {
const { $isSignIn } = useUserStore() const { $isSignIn } = useUserStore()
const $searchHistory = ref([]) const $searchHistory = ref([])
const $firstRecordTitle = ref('')
async function $getSearchHistory () { async function $getSearchHistory () {
if (!$isSignIn) return if (!$isSignIn) return
const { data } = await useRequest('/v1/chat/completion/list') const { data } = await useRequest('/v1/chat/completion/list')
$searchHistory.value = data.value.data $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.
先完成此消息的编辑!
想要评论请 注册