feat: ichat获取返回结果

This commit is contained in:
caoqianming 2025-08-05 14:24:14 +08:00
parent 2ec6a4b0ce
commit 58403f3fb8
2 changed files with 36 additions and 7 deletions

View File

@ -11,6 +11,14 @@ export default {
data
);
}
},
get: {
name: "获取结果",
req: async function (tid) {
return await http.get(
`${config.API_URL}/ichat/workchain/ask/?ichat_tid=${tid}`
);
}
}
}
}

View File

@ -7,7 +7,16 @@
<el-button type="primary" size="large" style="margin-left: 10px;" @click="handleAsk">提问</el-button>
</el-header>
<el-main class="nopadding">
<iframe ref="myIframe" frameborder="0" width="100%" height="100%"></iframe>
<el-container>
<el-aside width="200px">
<div style="margin-left:4px; font-size:16px">
<p v-for="step in steps" :key="step.id">{{step.msg}}</p>
</div>
</el-aside>
<el-main class="nopadding">
<iframe ref="myIframe" width="100%" height="100%" frameborder="0"></iframe>
</el-main>
</el-container>
</el-main>
</el-container>
</template>
@ -20,19 +29,31 @@ const plh = ref('请以 查询 开头,提出您的查询统计分析需求');
const input = ref(null);
const myIframe = ref(null);
const ichatTid = ref(null);
const steps = ref([]);
const handleAsk = () => {
if (input.value) {
const loading = ElLoading.service({
fullscreen: true,
text: "正在查询...请稍等",
});
API.ichat.workchain.ask.req({input: input.value}).then(res=>{
myIframe.value.srcdoc = res.content;
ichatTid.value = res.ichat_tid;
getTaskStatus();
}).catch(err=>{
}).finally(()=>{
loading.close();
})
}
}
const getTaskStatus = () => {
const interval = setInterval(() => {
API.ichat.workchain.get.req(ichatTid.value).then(res=>{
steps.value = res.steps;
if(res.state == "done"){
myIframe.value.srcdoc = res.content;
}
if (res.state != "progress") {
clearInterval(interval);
}
})
}, 2000);
}
</script>