可信代码库-AI大模型首页推荐问题接口及对话搜索功能对接
This commit is contained in:
@@ -19,7 +19,8 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { nextTick, onMounted, ref } from 'vue';
|
||||
import axios from 'axios';
|
||||
|
||||
const emits = defineEmits(['submit']);
|
||||
|
||||
@@ -28,26 +29,51 @@ const iconUrl = 'https://example.com/icon.png';
|
||||
|
||||
// 初始化问题列表
|
||||
const questions = ref([
|
||||
'获取代码行数超过100万行的前10款软件',
|
||||
'查找v0.15.5版本的livebook软件详情',
|
||||
'获取5个安全评分低于30的高风险软件',
|
||||
'查询下载量前10的恶意包',
|
||||
'查询金融行业软件的高危漏洞修复方案',
|
||||
'统计不同业务领域的平均安全评分',
|
||||
// '获取代码行数超过100万行的前10款软件',
|
||||
// '查找v0.15.5版本的livebook软件详情',
|
||||
// '获取5个安全评分低于30的高风险软件',
|
||||
// '查询下载量前10的恶意包',
|
||||
// '查询金融行业软件的高危漏洞修复方案',
|
||||
// '统计不同业务领域的平均安全评分',
|
||||
// '危险和严重的个人预警通知',
|
||||
// '我的订阅列表'
|
||||
]);
|
||||
|
||||
// 换一批问题的函数
|
||||
const changeQuestions = () => {
|
||||
// 这里可以实现从后端获取新问题列表的逻辑
|
||||
// 示例中简单地更新问题列表
|
||||
questions.value = [
|
||||
'热门数据库软件有哪些',
|
||||
'数据库软件的选型',
|
||||
'代码漏洞检测方法',
|
||||
'性能优化策略'
|
||||
];
|
||||
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('创建会话失败,请重试');
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
v-if="dhlsList.length>0"
|
||||
class="jyh-table"
|
||||
:data="dhlsList"
|
||||
row-key="id"
|
||||
@check-change="handleCheckChange('dhls')"
|
||||
row-key="conversationId"
|
||||
@check-change="handleCheckChange"
|
||||
:pagination="false"
|
||||
:indent="32"
|
||||
>
|
||||
@@ -60,8 +60,8 @@
|
||||
v-if="collectionList.length>0"
|
||||
class="jyh-table"
|
||||
:data="collectionList"
|
||||
row-key="id"
|
||||
@check-change="handleCheckChange('scdh')"
|
||||
row-key="conversationId"
|
||||
@check-change="handleCheckChange"
|
||||
:pagination="false"
|
||||
:indent="32"
|
||||
>
|
||||
@@ -107,6 +107,20 @@
|
||||
<d-button @click="handleCancel">取消</d-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- 删除组件 -->
|
||||
<GModal
|
||||
v-model="deletevModels"
|
||||
ref="deleteModal"
|
||||
title="删除?"
|
||||
@confirm="confirmDelete"
|
||||
showWarnIcon
|
||||
confirmColor="danger"
|
||||
>
|
||||
<span class="inline-block text-G900 text-sm font-normal leading-[20px] break-all"
|
||||
>你确认批量删除对话 ?</span
|
||||
>
|
||||
</GModal>
|
||||
</d-modal>
|
||||
</template>
|
||||
|
||||
@@ -115,9 +129,11 @@ import { ref, computed, watch } from 'vue';
|
||||
import axios from 'axios';
|
||||
import { Message } from 'vue-devui/message';
|
||||
import NoData from '@/components/NoData/NoData.vue';
|
||||
import { GModal } from '@/components/Setting/index';
|
||||
|
||||
// 接收父组件传递的用户名
|
||||
const props = defineProps(['username']);
|
||||
const emits = defineEmits(['loadData']);
|
||||
|
||||
// 模态框状态
|
||||
const visible = ref(false);
|
||||
@@ -250,8 +266,9 @@ const handlePageChange = async (page) => {
|
||||
// 选中的行ID
|
||||
const selectedRowKeys = ref([]);
|
||||
// 复选框选中状态变化
|
||||
const handleCheckChange = (tabType, checkedKeys) => {
|
||||
selectedRowKeys.value = checkedKeys;
|
||||
const handleCheckChange = (checked, row, selection) => {
|
||||
debugger
|
||||
selectedRowKeys.value = selection.map(i=> i.conversationId);
|
||||
};
|
||||
|
||||
const initData = async () => {
|
||||
@@ -279,6 +296,7 @@ const handleDelete = async (conversationIds, tabType) => {
|
||||
// 刷新当前标签页的数据
|
||||
initData()
|
||||
selectedRowKeys.value = []; // 清空选中项
|
||||
emits('loadData')
|
||||
} else {
|
||||
Message.error(res.data.message || '删除失败');
|
||||
}
|
||||
@@ -288,22 +306,19 @@ const handleDelete = async (conversationIds, tabType) => {
|
||||
}
|
||||
};
|
||||
|
||||
const deletevModels = ref(false);
|
||||
// 批量删除
|
||||
const handleBatchDelete = () => {
|
||||
if (!selectedRowKeys.value.length) {
|
||||
Message.warning('请先选择要删除的对话');
|
||||
return;
|
||||
}
|
||||
|
||||
// 确认删除提示
|
||||
Message.confirm({
|
||||
title: '确认删除',
|
||||
content: `确定要删除选中的 ${selectedRowKeys.value.length} 条对话吗?`,
|
||||
onConfirm: async () => {
|
||||
await handleDelete(selectedRowKeys.value, selectTab.value === 'dhls' ? 'history' : 'collection');
|
||||
}
|
||||
});
|
||||
deletevModels.value = true
|
||||
};
|
||||
const confirmDelete = async () => {
|
||||
await handleDelete(selectedRowKeys.value, selectTab.value === 'dhls' ? 'history' : 'collection');
|
||||
};
|
||||
|
||||
|
||||
// 关闭模态框
|
||||
const handleCancel = () => {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Card class="ViewHistoryAside">
|
||||
<d-tabs class="jyh-tabs-4" type="wrapped" v-model="selectTab">
|
||||
<d-tab id="dhls" title="对话历史">
|
||||
<d-search icon-position="left" style="width: 100%" placeholder="请输入搜索软件名称" v-model="searchText" @change="loadData"></d-search>
|
||||
<d-search icon-position="left" style="width: 100%" placeholder="请输入搜索软件名称" v-model="searchText" @change="loadData" @search="loadData"></d-search>
|
||||
<!-- 可滚动内容区域 -->
|
||||
<div class="scrollable-content">
|
||||
<d-collapse class="jyh-collapse" v-model="collapseValue">
|
||||
@@ -116,12 +116,12 @@
|
||||
</template>
|
||||
批量管理
|
||||
</d-button>
|
||||
<BatchManageModal :username="props.username" ref="BatchManageModalRef"/>
|
||||
<BatchManageModal :username="props.username" @loadData="loadData" ref="BatchManageModalRef"/>
|
||||
</div>
|
||||
</div>
|
||||
</d-tab>
|
||||
<d-tab id="scdh" title="收藏对话">
|
||||
<d-search icon-position="left" style="width: 100%" placeholder="请输入搜索软件名称" v-model="searchText" @change="loadData"></d-search>
|
||||
<d-search icon-position="left" style="width: 100%" placeholder="请输入搜索软件名称" v-model="searchText" @change="loadData" @search="loadData"></d-search>
|
||||
<!-- 可滚动内容区域 -->
|
||||
<div class="scrollable-content">
|
||||
<d-collapse class="jyh-collapse" v-model="collapseValue">
|
||||
@@ -230,7 +230,7 @@
|
||||
</template>
|
||||
批量管理
|
||||
</d-button>
|
||||
<BatchManageModal :username="props.username" ref="BatchManageModalRef"/>
|
||||
<BatchManageModal :username="props.username" @loadData="loadData" ref="BatchManageModalRef"/>
|
||||
</div>
|
||||
</div>
|
||||
</d-tab>
|
||||
|
||||
Reference in New Issue
Block a user