Răsfoiți Sursa

【增加】dataset 列表页面

cherishsince 10 luni în urmă
părinte
comite
f36b01575f
1 a modificat fișierele cu 152 adăugiri și 0 ștergeri
  1. 152 0
      src/views/knowledge/dataset.vue

+ 152 - 0
src/views/knowledge/dataset.vue

@@ -0,0 +1,152 @@
+<template>
+  <div class="knowledge-base-container">
+    <div class="card-container">
+      <el-card class="create-card" shadow="hover">
+        <div class="create-content">
+          <el-icon class="create-icon"><Plus /></el-icon>
+          <span class="create-text">创建知识库</span>
+        </div>
+        <div class="create-footer">
+          导入您自己的文本数据或通过 Webhook 实时写入数据以增强 LLM 的上下文。
+        </div>
+      </el-card>
+
+      <el-card class="document-card" shadow="hover" v-for="index in 4" :key="index">
+        <div class="document-header">
+          <el-icon><Folder /></el-icon>
+          <span>接口鉴权示例代码.md</span>
+        </div>
+        <div class="document-info">
+          <el-tag size="small">1 文档</el-tag>
+          <el-tag size="small" type="info">5 千字符</el-tag>
+          <el-tag size="small" type="warning">0 关联应用</el-tag>
+        </div>
+        <p class="document-description">
+          useful for when you want to answer queries about the 接口鉴权示例代码.md
+        </p>
+      </el-card>
+    </div>
+
+    <div class="pagination-container">
+      <el-pagination
+        v-model:current-page="currentPage"
+        v-model:page-size="pageSize"
+        :page-sizes="[10, 20, 30, 40]"
+        :small="false"
+        :disabled="false"
+        :background="true"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total"
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+      />
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { ref } from 'vue'
+import { Folder, Plus } from '@element-plus/icons-vue'
+
+const currentPage = ref(1)
+const pageSize = ref(10)
+const total = ref(100) // 假设总共有100条数据
+
+const handleSizeChange = (val) => {
+  console.log(`每页 ${val} 条`)
+}
+
+const handleCurrentChange = (val) => {
+  console.log(`当前页: ${val}`)
+}
+</script>
+
+<style scoped>
+.knowledge-base-container {
+  font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
+  position: absolute;
+  padding: 20px;
+  margin: 0 auto;
+  display: flex;
+  flex-direction: column;
+  top: 0;
+  bottom: 40px;
+  width: 100%;
+}
+
+.card-container {
+  display: flex;
+  flex-wrap: wrap; /* Enable wrapping */
+  gap: 20px;
+  margin-bottom: auto; /* Pushes pagination to the bottom */
+}
+
+.create-card, .document-card {
+  flex: 1 1 360px; /* Allow cards to grow and shrink */
+  min-width: 0;
+  max-width: 400px;
+  border-radius: 10px;
+  cursor: pointer;
+}
+
+.create-card {
+  background-color: rgba(168, 168, 168, 0.22);
+}
+.create-card:hover {
+  background-color: #fff;
+}
+
+.create-content {
+  display: flex;
+  align-items: center;
+  gap: 10px;
+  margin-bottom: 15px;
+}
+
+.create-icon {
+  font-size: 24px;
+  color: #409EFF;
+}
+
+.create-text {
+  font-size: 18px;
+  font-weight: bold;
+  color: #303133;
+}
+
+.create-footer {
+  font-size: 14px;
+  color: #909399;
+  line-height: 1.5;
+}
+
+.document-header {
+  display: flex;
+  align-items: center;
+  gap: 10px;
+  font-size: 16px;
+  font-weight: bold;
+  margin-bottom: 15px;
+}
+
+.document-info {
+  display: flex;
+  gap: 10px;
+  margin-bottom: 15px;
+}
+
+.document-description {
+  color: #606266;
+  font-size: 14px;
+  line-height: 1.5;
+}
+
+.pagination-container {
+  position: absolute;
+  width: 100%;
+  bottom: 0;
+  display: flex;
+  justify-content: center;
+  margin-top: 20px;
+}
+</style>