Commit d397d34e by Liu

fix:提问接口逻辑

parent 6bc4c016
export const envConf = { export const envConf = {
dev: { dev: {
apiUrl: '/api', apiUrl: '/api',
proxyUrl: 'http://82.156.138.187:19002/dev-sdream-api', proxyUrl: 'http://43.143.240.58:19002/dev-sdream-api',
}, },
sit: { sit: {
apiUrl: '/api', apiUrl: '/api',
proxyUrl: 'http://82.156.138.187:19002/dev-sdream-api', proxyUrl: 'http://43.143.240.58:19002/dev-sdream-api',
}, },
prod: { prod: {
apiUrl: 'http://82.156.138.187:19002/dev-sdream-api', apiUrl: 'http://43.143.240.58:19002/dev-sdream-api',
proxyUrl: 'http://82.156.138.187:19002/dev-sdream-api', proxyUrl: 'http://43.143.240.58:19002/dev-sdream-api',
}, },
} }
......
...@@ -241,7 +241,7 @@ export const TacticsChat: React.FC = () => { ...@@ -241,7 +241,7 @@ export const TacticsChat: React.FC = () => {
question: string | undefined, question: string | undefined,
productCode?: string, productCode?: string,
toolId?: string, toolId?: string,
extra?: { busiType?: string, recordType?: string, includeQuestion?: boolean }, extra?: { busiType?: string, recordType?: string, includeQuestion?: boolean, includeTacticsMeta?: boolean },
) => { ) => {
// 优先读取缓存中的 toolId,再回退到传参 // 优先读取缓存中的 toolId,再回退到传参
const sessionToolId = sessionStorage.getItem('currentToolId') ?? undefined const sessionToolId = sessionStorage.getItem('currentToolId') ?? undefined
...@@ -292,6 +292,7 @@ export const TacticsChat: React.FC = () => { ...@@ -292,6 +292,7 @@ export const TacticsChat: React.FC = () => {
fetchUrl = proxy + fetchUrl fetchUrl = proxy + fetchUrl
const shouldSendQuestion = extra?.includeQuestion !== false const shouldSendQuestion = extra?.includeQuestion !== false
const shouldIncludeTacticsMeta = extra?.includeTacticsMeta !== false
// 去除缓存中可能存在的 from 字段,避免作为参数传递 // 去除缓存中可能存在的 from 字段,避免作为参数传递
const { from: _omitFrom, ...safeTacticsMeta } = tacticsMeta || {} const { from: _omitFrom, ...safeTacticsMeta } = tacticsMeta || {}
...@@ -301,10 +302,12 @@ export const TacticsChat: React.FC = () => { ...@@ -301,10 +302,12 @@ export const TacticsChat: React.FC = () => {
stream: true, stream: true,
productCode, productCode,
toolId: resolvedToolId, toolId: resolvedToolId,
...safeTacticsMeta,
...(extra?.busiType ? { busiType: extra.busiType } : {}), ...(extra?.busiType ? { busiType: extra.busiType } : {}),
...(extra?.recordType ? { recordType: extra.recordType } : {}), ...(extra?.recordType ? { recordType: extra.recordType } : {}),
} }
if (shouldIncludeTacticsMeta) {
Object.assign(requestBody, safeTacticsMeta)
}
if (shouldSendQuestion) { if (shouldSendQuestion) {
requestBody.question = question ?? '' requestBody.question = question ?? ''
} }
...@@ -471,7 +474,7 @@ export const TacticsChat: React.FC = () => { ...@@ -471,7 +474,7 @@ export const TacticsChat: React.FC = () => {
login() login()
}, [login]) }, [login])
// 进入会话后自动触发一次提交(不带 question),busiType 02 / recordType A02 // 进入会话后自动触发一次提交,默认 question 为“策略分析”,busiType 02 / recordType A02
const hasAutoSubmittedRef = useRef(false) const hasAutoSubmittedRef = useRef(false)
useEffect(() => { useEffect(() => {
if (id) { if (id) {
...@@ -486,7 +489,7 @@ export const TacticsChat: React.FC = () => { ...@@ -486,7 +489,7 @@ export const TacticsChat: React.FC = () => {
'策略分析', '策略分析',
undefined, undefined,
undefined, undefined,
{ busiType: '02', recordType: 'A02', includeQuestion: false }, { busiType: '02', recordType: 'A02', includeQuestion: true, includeTacticsMeta: true },
) )
} }
}, [isLoading, handleSubmitQuestion, id]) }, [isLoading, handleSubmitQuestion, id])
...@@ -667,7 +670,7 @@ export const TacticsChat: React.FC = () => { ...@@ -667,7 +670,7 @@ export const TacticsChat: React.FC = () => {
question, question,
undefined, undefined,
undefined, undefined,
{ busiType: '02', recordType: 'A02', includeQuestion: true }, { busiType: '02', recordType: 'A01', includeQuestion: true, includeTacticsMeta: false },
) )
}} }}
placeholders={['']} placeholders={['']}
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
import type { PayloadAction } from '@reduxjs/toolkit' import type { PayloadAction } from '@reduxjs/toolkit'
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit' import { createAsyncThunk, createSlice } from '@reduxjs/toolkit'
import type { TacticsConversation, TacticsConversationState } from '@/types/tactics' import type { TacticsConversation, TacticsConversationState } from '@/types/tactics'
import { fetchCreateTacticsConversation, fetchDeleteTacticsConversation, fetchTacticsConversationPage } from '@/api/tactics' import { fetchCreateTacticsConversation, fetchDeleteTacticsConversation } from '@/api/tactics'
const initialState: TacticsConversationState = { const initialState: TacticsConversationState = {
conversations: [], conversations: [],
...@@ -13,31 +13,11 @@ const initialState: TacticsConversationState = { ...@@ -13,31 +13,11 @@ const initialState: TacticsConversationState = {
shouldSendQuestion: '', shouldSendQuestion: '',
} }
// 处理会话数据(简化版,可根据实际需求调整)
function processTacticsConversationData(records: any[]): TacticsConversation[] {
return records.map(record => ({
id: record.conversationId || record.id,
title: record.title || record.conversationTitle,
createdAt: record.createTime || record.createdAt,
updatedAt: record.updateTime || record.updatedAt,
}))
}
export const fetchTacticsConversations = createAsyncThunk( export const fetchTacticsConversations = createAsyncThunk(
'tactics/fetchTacticsConversations', 'tactics/fetchTacticsConversations',
async (_, { rejectWithValue }) => { async () => {
try { // 该页面内无需调用远程接口,保持 thunk 以兼容现有调用
const response = await fetchTacticsConversationPage({ return [] as TacticsConversation[]
pageNum: 1,
pageSize: 100,
})
const records = response.data?.records || []
return processTacticsConversationData(records)
}
catch (error) {
console.error('Failed to fetch tactics conversations:', error)
return rejectWithValue('Failed to fetch tactics conversations')
}
}, },
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment