Browse Source

非空判断;md数据处理。

hongxilin/hotfix-20250625101643-手机输入法弹出输入框上浮
宋杰 1 week ago
parent
commit
06bba2fbaf
  1. 43
      src/views/AiEmotion.vue
  2. 8
      src/views/homePage.vue

43
src/views/AiEmotion.vue

@ -185,10 +185,40 @@ import { useEmotionStore } from '@/store/emotion'; // 导入Pinia store
import { useAudioStore } from '@/store/audio.js'; // store import { useAudioStore } from '@/store/audio.js'; // store
import { Howl, Howler } from 'howler'; // import { Howl, Howler } from 'howler'; //
import { reactive } from 'vue'; import { reactive } from 'vue';
import { marked } from 'marked'; // marked
// 使Pinia store // 使Pinia store
const emotionStore = useEmotionStore(); const emotionStore = useEmotionStore();
const audioStore = useAudioStore(); const audioStore = useAudioStore();
// refuse
function processRefuseMessage(refuseData) {
if (!refuseData) return '未知错误';
// refuseMarkdown
try {
// marked
marked.setOptions({
breaks: true, // <br>
gfm: true, // GitHub Flavored Markdown
sanitize: false, // HTML
smartLists: true, //
smartypants: true, //
xhtml: false, // 使 XHTML
});
// MarkdownHTML
const htmlContent = marked(refuseData);
// HTMLElMessage
const tempDiv = document.createElement('div');
tempDiv.innerHTML = htmlContent;
return tempDiv.textContent || tempDiv.innerText || refuseData;
} catch (error) {
console.error('处理refuse消息时出错:', error);
return refuseData;
}
}
// //
const marketTemperatureRef = ref(null); // const marketTemperatureRef = ref(null); //
const emoEnergyConverterRef = ref(null) const emoEnergyConverterRef = ref(null)
@ -726,6 +756,11 @@ async function handleSendMessage(input) {
console.log("发送内容:", input); console.log("发送内容:", input);
// //
if (!input || !input.trim()) {
ElMessage.warning("输入内容不能为空");
return;
}
if (input.trim()) { if (input.trim()) {
const userMessage = reactive({ sender: 'user', text: input }); const userMessage = reactive({ sender: 'user', text: input });
messages.value.push(userMessage); messages.value.push(userMessage);
@ -791,7 +826,7 @@ async function handleSendMessage(input) {
emotionStore.updateActiveStockConclusion(conclusionResponse.data); emotionStore.updateActiveStockConclusion(conclusionResponse.data);
} }
} else { } else {
ElMessage.error(parsedData.refuse);
ElMessage.error(processRefuseMessage(parsedData.refuse));
} }
} catch (error) { } catch (error) {
ElMessage.error('请求工作流接口失败,请检查网络连接'); ElMessage.error('请求工作流接口失败,请检查网络连接');
@ -800,7 +835,7 @@ async function handleSendMessage(input) {
isRotating.value = false; isRotating.value = false;
} }
} else { } else {
ElMessage.error(parsedData.refuse);
ElMessage.error(processRefuseMessage(parsedData.refuse));
} }
} }
@ -848,10 +883,10 @@ async function fetchData(code, market, stockName, queryText) {
// store // store
emotionStore.addStock(stockData); emotionStore.addStock(stockData);
} else { } else {
ElMessage.error(stockDataResponse.refuse);
ElMessage.error(processRefuseMessage(stockDataResponse.refuse));
} }
} catch (error) { } catch (error) {
ElMessage.error(stockDataResponse.refuse);
ElMessage.error(processRefuseMessage(stockDataResponse?.refuse || '请求失败,请检查网络连接'));
} }
} }

8
src/views/homePage.vue

@ -143,6 +143,13 @@ const sendMessage = async () => {
ElMessage.error("请先登录"); ElMessage.error("请先登录");
return; return;
} }
//
if (!message.value || !message.value.trim()) {
ElMessage.warning("输入内容不能为空");
return;
}
isScrolling.value = false; isScrolling.value = false;
// AiEmotion // AiEmotion
@ -157,7 +164,6 @@ const sendMessage = async () => {
ensureAIchat(); ensureAIchat();
console.log(chatStore.isLoading, "isLoading.value1111"); console.log(chatStore.isLoading, "isLoading.value1111");
if (!message.value) return;
if (chatStore.isLoading) return; if (chatStore.isLoading) return;
chatStore.setLoading(true); chatStore.setLoading(true);
console.log(chatStore.isLoading, "isLoading.value2222"); console.log(chatStore.isLoading, "isLoading.value2222");

Loading…
Cancel
Save