Compare commits

...

2 Commits

2 changed files with 36 additions and 7 deletions

View File

@ -11,6 +11,14 @@ export default {
data 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-button type="primary" size="large" style="margin-left: 10px;" @click="handleAsk">提问</el-button>
</el-header> </el-header>
<el-main class="nopadding"> <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-main>
</el-container> </el-container>
</template> </template>
@ -20,19 +29,31 @@ const plh = ref('请以 查询 开头,提出您的查询统计分析需求');
const input = ref(null); const input = ref(null);
const myIframe = ref(null); const myIframe = ref(null);
const ichatTid = ref(null);
const steps = ref([]);
const handleAsk = () => { const handleAsk = () => {
if (input.value) { if (input.value) {
const loading = ElLoading.service({
fullscreen: true,
text: "正在查询...请稍等",
});
API.ichat.workchain.ask.req({input: input.value}).then(res=>{ API.ichat.workchain.ask.req({input: input.value}).then(res=>{
myIframe.value.srcdoc = res.content; ichatTid.value = res.ichat_tid;
getTaskStatus();
}).catch(err=>{ }).catch(err=>{
}).finally(()=>{ }).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> </script>