先引入axios用于与后端的通信
import axios from 'axios';
先设置显示对话框可见,使其一进入页面就可看见提示框
设置各问题选择的按钮不可见,这样就不有前后组件顺序的问题
设置responseMessage变量作为将前端输入传给后端进行数据处理
设置response变量用于将后端传入的信息传回前端
为了ui界面的美观,先设置回答界面不可见
return{
tipVisible: true, // 初始状态为显示对话框
inputText: '', // 输入框的内容
buttonVisible: false,
civilServiceVisible: false,
educationalVisible: false,
bankVisible: false,
enterpriseVisible: false,
showText: false,
displayMessage:'',
simulator:"模拟器给出修改意见以及标准答案:",
response: [], // 用于显示回复的消息
responseMessage: '', // 响应消息
responseAreaVisibility:false
};
先是显示问题的方法(以考公为例)
handleCivilQuestion(question) {
this.civilServiceVisible=false;
switch (question) {
case 'civilQuestion1': this.civilQuestion1();break;
case 'civilQuestion2':this.civilQuestion2();break;
case 'civilQuestion3':this.civilQuestion3();break;
case 'civilQuestion4':this.civilQuestion4();break;
case 'civilQuestion5':this.civilQuestion5();break;
default:break;
}
},
civilQuestion1() {
this.showText=true;this.displayMessage="问题一:你认为什么是成为一名优秀公务员的关键特质?";},
civilQuestion2() {
this.showText=true;this.displayMessage="问题二:举一个你在团队合作中发挥关键作用的例子。"; },
civilQuestion3() {
this.showText=true;this.displayMessage="问题三:你如何看待个人利益与公共利益之间的关系?"; },
civilQuestion4() {
this.showText=true;this.displayMessage="问题四:你为什么想要加入公务员队伍?";},
civilQuestion5() {
this.showText=true;this.displayMessage="问题五:你的长远职业规划是什么?";},
关闭对话框的方法
close() {
this.tipVisible = false; // 点击按钮时隐藏对话框
this.buttonVisible=true;
},
发送输入的文字以及后端通信的方法
利用axios进行前后端数据的传输
inputDialog(){
axios.post('http://localhost:8002/api/generate_response', { user_input: (this.displayMessage+this.inputText) })
.then(response => {
console.log('API响应数据:', response.data); // 输出API响应数据以进行调试
if (response.data && response.data.message) {
this.responseMessage = response.data.message;
// this.extendedResponse = response.data.extended;
console.log('设置的responseMessage:', this.responseMessage); // 输出设置的响应消息
//console.log('设置的extendedResponse:', this.extendedResponse); // 输出设置的扩展消息
} else {
console.error('响应数据格式不正确:', response.data);
}
})
.catch(error => {
console.error('生成回复时出错:', error);
});
//提交对话内容
if (this.inputText.trim() !== '') {
this.response.push(this.inputText.trim()); // 将输入框中的内容追加到消息数组中
this.inputText = ''; // 清空输入框
this.responseAreaVisibility=true;
}},
问题选择框逻辑(以考公为例)
civilService(){
this.responseAreaVisibility=false;
this.responseMessage='';
this.response=[];
this.showText=false;
this.civilServiceVisible=true;
this.educationalVisible=false;
this.bankVisible=false;
this.enterpriseVisible=false;
},
后续尽请期待~