2025-05-06 18:07:15 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="guess-you-want-to-ask-card">
|
|
|
|
|
|
<div class="card-title">
|
|
|
|
|
|
<img src="@/assets/imgs/jyh/ai/icon_cnxw.png" style="width: 20px;height: 20px;margin-right: 8px"></img>
|
|
|
|
|
|
<span>猜你想问</span>
|
|
|
|
|
|
<d-button @click="changeQuestions" class="jyh-button1" variant="solid">
|
|
|
|
|
|
<div class="flex flex-center">
|
|
|
|
|
|
<img style="height: 15px;margin-right: 8px" width="16" src="@/assets/imgs/jyh/ai/icon_reflush.png" />
|
|
|
|
|
|
<span>换一批</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</d-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="card-description">
|
2025-05-08 11:25:57 +08:00
|
|
|
|
<button v-for="(question, index) in questions" :key="index" class="question-button" @click="emits('submit',question)">
|
2025-05-06 18:07:15 +08:00
|
|
|
|
{{ question }}
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script setup>
|
2025-06-09 16:42:07 +08:00
|
|
|
|
import { nextTick, onMounted, ref } from 'vue';
|
|
|
|
|
|
import axios from 'axios';
|
2025-05-06 18:07:15 +08:00
|
|
|
|
|
2025-05-08 11:25:57 +08:00
|
|
|
|
const emits = defineEmits(['submit']);
|
|
|
|
|
|
|
2025-05-06 18:07:15 +08:00
|
|
|
|
// 假设的图标 URL,你可以根据实际情况修改
|
|
|
|
|
|
const iconUrl = 'https://example.com/icon.png';
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化问题列表
|
|
|
|
|
|
const questions = ref([
|
2025-06-09 16:42:07 +08:00
|
|
|
|
// '获取代码行数超过100万行的前10款软件',
|
|
|
|
|
|
// '查找v0.15.5版本的livebook软件详情',
|
|
|
|
|
|
// '获取5个安全评分低于30的高风险软件',
|
|
|
|
|
|
// '查询下载量前10的恶意包',
|
|
|
|
|
|
// '查询金融行业软件的高危漏洞修复方案',
|
|
|
|
|
|
// '统计不同业务领域的平均安全评分',
|
2025-05-16 14:41:09 +08:00
|
|
|
|
// '危险和严重的个人预警通知',
|
|
|
|
|
|
// '我的订阅列表'
|
2025-05-06 18:07:15 +08:00
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
// 换一批问题的函数
|
|
|
|
|
|
const changeQuestions = () => {
|
2025-06-09 16:42:07 +08:00
|
|
|
|
fetchFollowupQuestions()
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
|
fetchFollowupQuestions()
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
const VITE_AI_API_HOST = import.meta.env.VITE_AI_API_HOST;
|
|
|
|
|
|
// 猜你想问接口
|
|
|
|
|
|
const fetchFollowupQuestions = async (question,df_id,sql_id='') => {
|
|
|
|
|
|
debugger
|
|
|
|
|
|
try {
|
|
|
|
|
|
// 构造请求参数(需根据实际文档补充 df_id 和 sql_id,示例中使用空字符串占位)
|
|
|
|
|
|
const params = {
|
|
|
|
|
|
questions: questions.value,
|
|
|
|
|
|
// df_id: df_id || '', // 使用当前会话ID,若无则为空
|
|
|
|
|
|
// sql_id: sql_id || '' // 同上
|
|
|
|
|
|
};
|
|
|
|
|
|
const response = await axios.post(
|
|
|
|
|
|
`${VITE_AI_API_HOST}/api/v0/update_recommend_questions`,
|
|
|
|
|
|
params
|
|
|
|
|
|
);
|
|
|
|
|
|
debugger
|
|
|
|
|
|
const createRes = response.data;
|
|
|
|
|
|
if (createRes&&createRes.questions) {
|
|
|
|
|
|
questions.value = createRes.questions
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// Message.error('创建会话失败,未获取到会话ID');
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
console.error('查询相关问题失败:', error);
|
|
|
|
|
|
// Message.error('创建会话失败,请重试');
|
|
|
|
|
|
}
|
2025-05-06 18:07:15 +08:00
|
|
|
|
};
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|
.guess-you-want-to-ask-card {
|
|
|
|
|
|
border-radius: 24px;
|
|
|
|
|
|
background: #FFFFFF;
|
2025-05-12 10:23:52 +08:00
|
|
|
|
padding: 18px 24px;
|
2025-05-06 18:07:15 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.card-title {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
color: #191919;
|
|
|
|
|
|
font-family: HarmonyOS Sans SC;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
line-height: 24px;
|
|
|
|
|
|
letter-spacing: 0px;
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.card-title i {
|
|
|
|
|
|
margin-right: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.title-icon {
|
|
|
|
|
|
width: 20px;
|
|
|
|
|
|
height: 20px;
|
|
|
|
|
|
margin-right: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.card-description {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
gap: 8px;
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.question-button {
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
border-radius: 35px;
|
|
|
|
|
|
background: #F3F3F3;
|
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.question-button:hover {
|
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.jyh-button1 {
|
|
|
|
|
|
margin-left: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|