fetch: 页面移植

知识库接口对接
This commit is contained in:
杨谢雨 2025-02-28 18:32:18 +08:00
parent 05609d63c2
commit a49de52587
1 changed files with 39 additions and 15 deletions

View File

@ -10,20 +10,42 @@
导入您自己的文本数据或通过 Webhook 实时写入数据以增强 LLM 的上下文 导入您自己的文本数据或通过 Webhook 实时写入数据以增强 LLM 的上下文
</div> </div>
</el-card> </el-card>
<el-card class="document-card" v-if="loading">
<el-card
v-for="item in tableData" :key="item.id" class="document-card" shadow="hover"
@click="toDataset(item.id)">
<div class="document-header"> <div class="document-header">
<el-icon> <el-icon>
<Folder/> <Folder />
</el-icon>
<el-skeleton animated :rows="1" />
</div>
<div class="document-info">
<el-skeleton animated :rows="1" />
</div>
<p class="document-description">
<el-skeleton animated :rows="3" />
</p>
</el-card>
<el-card
v-for="item in tableData"
:key="item.id"
class="document-card"
shadow="hover"
@click="toDataset(item.id)"
>
<div class="document-header">
<el-icon>
<Folder />
</el-icon> </el-icon>
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
</div> </div>
<div class="document-info"> <div class="document-info">
<el-tag size="small">{{ item.docsNum || 0 }} 文档</el-tag> <el-tag size="small">{{ item.docsNum || 0 }} 文档</el-tag>
<el-tag size="small" type="info">{{ (Number(item.totalSize) / 1000000).toFixed(2) }} MB</el-tag> <el-tag size="small" type="info"
<el-tag size="small" type="warning" v-if="item.embedStore"> {{ item.embedStore.name }}</el-tag> >{{ (Number(item.totalSize) / 1000000).toFixed(2) }} MB</el-tag
>
<el-tag size="small" type="warning" v-if="item.embedStore">
{{ item.embedStore.name }}</el-tag
>
</div> </div>
<p class="document-description"> <p class="document-description">
{{ item.des || '暂无描述' }} {{ item.des || '暂无描述' }}
@ -45,15 +67,15 @@ v-for="item in tableData" :key="item.id" class="document-card" shadow="hover"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
/> />
</div> </div>
<create ref="createRef" @reload="loadData"/> <create ref="createRef" @reload="loadData" />
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {ref, onMounted} from 'vue' import { ref, onMounted } from 'vue'
import {Plus, Folder} from '@element-plus/icons-vue' import { Plus, Folder } from '@element-plus/icons-vue'
import {useRouter} from 'vue-router' import { useRouter } from 'vue-router'
import {KnowledgeApi} from '@/api/new-ai/knowledge' import { KnowledgeApi } from '@/api/new-ai/knowledge'
import Create from './components/create.vue' import Create from './components/create.vue'
const router = useRouter() const router = useRouter()
const currentPage = ref(1) const currentPage = ref(1)
@ -61,12 +83,14 @@ const pageSize = ref(10)
const total = ref(0) const total = ref(0)
const tableData = ref([]) const tableData = ref([])
const createRef = ref() const createRef = ref()
const loading = ref(false)
const loadData = async () => { const loadData = async () => {
try { try {
loading.value = true
const res = await KnowledgeApi.getKnowledgePage({ const res = await KnowledgeApi.getKnowledgePage({
pageNo: currentPage.value, pageNo: currentPage.value,
pageSize: pageSize.value pageSize: pageSize.value
}) }).finally(() => loading.value = false)
tableData.value = res.list || [] tableData.value = res.list || []
total.value = res.total || 0 total.value = res.total || 0
} catch (error) { } catch (error) {
@ -88,7 +112,6 @@ const toDataset = (id: string) => {
router.push(`/ai/console/knowledge/${id}`) router.push(`/ai/console/knowledge/${id}`)
} }
const handleCreate = () => { const handleCreate = () => {
createRef.value.open() createRef.value.open()
} }
@ -99,7 +122,8 @@ onMounted(() => {
<style scoped> <style scoped>
.knowledge-base-container { .knowledge-base-container {
font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif; font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei',
'微软雅黑', Arial, sans-serif;
padding: 20px; padding: 20px;
} }