linyang 3 tuần trước cách đây
mục cha
commit
5024232e8e

+ 2 - 2
src/api/knowledge-base.ts

@@ -40,8 +40,8 @@ export interface CustomSchemaField {
 
 export interface CreateKnowledgeBaseData {
   name: string
-  collection_name1: string
-  collection_name2?: string
+  collection_name_parent: string
+  collection_name_children?: string
   description?: string
   dimension?: number
   metadata_fields?: MetadataField[]

+ 40 - 16
src/views/documents/KnowledgeBase.vue

@@ -44,10 +44,16 @@
           </template>
         </el-table-column>
 
-        <el-table-column label="知识库表名" min-width="150">
+        <el-table-column label="父集合表名" min-width="150" prop="collection_name_parent" show-overflow-tooltip>
           <template #default="{ row }">
-            <div>{{ row.collection_name1 }}</div>
-            <div v-if="row.collection_name2" class="sub-collection">{{ row.collection_name2 }}</div>
+            <span class="collection-name parent">{{ row.collection_name_parent }}</span>
+          </template>
+        </el-table-column>
+
+        <el-table-column label="子集合表名" min-width="150" prop="collection_name_children" show-overflow-tooltip>
+          <template #default="{ row }">
+            <span v-if="row.collection_name_children" class="collection-name child">{{ row.collection_name_children }}</span>
+            <span v-else class="empty-cell">-</span>
           </template>
         </el-table-column>
         
@@ -150,19 +156,19 @@
                 </el-col>
                 <el-col :span="12">
                     <template v-if="dialogType === 'create'">
-            <el-form-item label="父集合名称" prop="collection_name1">
-                <el-input v-model="formData.collection_name1" placeholder="父集合名(英文)" />
+            <el-form-item label="父集合名称" prop="collection_name_parent">
+                <el-input v-model="formData.collection_name_parent" placeholder="父集合名(英文)" />
             </el-form-item>
-            <el-form-item label="子集合名称" prop="collection_name2">
-                <el-input v-model="formData.collection_name2" placeholder="子集合名(英文)" />
+            <el-form-item label="子集合名称" prop="collection_name_children">
+                <el-input v-model="formData.collection_name_children" placeholder="子集合名(英文)" />
             </el-form-item>
         </template>
         <template v-else>
             <el-form-item label="父集合名称">
-                <el-input v-model="formData.collection_name1" disabled />
+                <el-input v-model="formData.collection_name_parent" disabled />
             </el-form-item>
-            <el-form-item label="子集合名称" v-if="formData.collection_name2">
-                <el-input v-model="formData.collection_name2" disabled />
+            <el-form-item label="子集合名称" v-if="formData.collection_name_children">
+                <el-input v-model="formData.collection_name_children" disabled />
             </el-form-item>
         </template>
                 </el-col>
@@ -277,8 +283,8 @@
     >
       <el-descriptions :column="2" border class="detail-descriptions">
         <el-descriptions-item label="知识库名称" label-class-name="desc-label">{{ viewData.name }}</el-descriptions-item>
-        <el-descriptions-item label="父集合名称" label-class-name="desc-label">{{ viewData.collection_name1 }}</el-descriptions-item>
-        <el-descriptions-item label="子集合名称" label-class-name="desc-label">{{ viewData.collection_name2 || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="父集合名称" label-class-name="desc-label">{{ viewData.collection_name_parent }}</el-descriptions-item>
+        <el-descriptions-item label="子集合名称" label-class-name="desc-label">{{ viewData.collection_name_children || '-' }}</el-descriptions-item>
         <el-descriptions-item label="状态" label-class-name="desc-label">
             <el-tag :type="getStatusType(viewData.status)" effect="plain">
                 {{ getStatusText(viewData.status) }}
@@ -364,8 +370,8 @@ const formRef = ref<FormInstance>()
 const formData = reactive({
   id: '',
   name: '',
-  collection_name1: '',
-  collection_name2: '',
+  collection_name_parent: '',
+  collection_name_children: '',
   description: '',
   dimension: 768,
   status: 'normal',
@@ -621,8 +627,8 @@ const handleSubmit = async () => {
         if (dialogType.value === 'create') {
           await createKnowledgeBase({
             name: formData.name,
-            collection_name1: formData.collection_name1,
-            collection_name2: formData.collection_name2,
+            collection_name_parent: formData.collection_name_parent,
+            collection_name_children: formData.collection_name_children,
             description: formData.description,
             dimension: formData.dimension,
             metadata_fields: formData.metadata_fields.filter(f => f.field_zh_name && f.field_en_name)
@@ -761,6 +767,24 @@ onMounted(() => {
     margin-top: 4px;
 }
 
+.collection-name {
+    font-family: Consolas, Monaco, monospace;
+    font-size: 13px;
+}
+
+.collection-name.parent {
+    color: #409eff;
+    font-weight: 500;
+}
+
+.collection-name.child {
+    color: #67c23a;
+}
+
+.empty-cell {
+    color: #c0c4cc;
+}
+
 .pagination-container {
   display: flex;
   justify-content: space-between;

+ 6 - 6
src/views/documents/KnowledgeSnippet.vue

@@ -563,20 +563,20 @@ const loadKbOptions = async () => {
             res.data.forEach((item: any) => {
                 // 根据需求:只选择知识库名称,且对应的是子表
                 // 如果有子集合,添加选项,显示知识库名称,值为子集合名称
-                if (item.collection_name2) {
+                if (item.collection_name_children) {
                     kbOptions.value.push({
                         label: item.name, // 只显示知识库名称
-                        value: item.collection_name2, // 对应子表
+                        value: item.collection_name_children, // 对应子表
                         id: item.id
                     })
                 }
-                // 如果没有子集合,尝试使用 collection_name1 (兼容旧数据或单表模式)
+                // 如果没有子集合,尝试使用 collection_name_parent (兼容旧数据或单表模式)
                 // 或者是用户意图是“只要有子表就用子表,没有子表是否用父表?”
-                // 假设:如果只有 collection_name1 (父表),也显示出来,否则用户无法操作
-                else if (item.collection_name1) {
+                // 假设:如果只有 collection_name_parent (父表),也显示出来,否则用户无法操作
+                else if (item.collection_name_parent) {
                      kbOptions.value.push({
                         label: item.name,
-                        value: item.collection_name1,
+                        value: item.collection_name_parent,
                         id: item.id
                     })
                 }

+ 2 - 2
src/views/documents/SearchEngine.vue

@@ -331,8 +331,8 @@ const handleKbChange = async () => {
     if (searchForm.kb_id) {
         // Find selected KB object to get ID (kb_id in form is collection_name)
         const selectedKb = kbList.value.find(k => 
-            k.collection_name2 === searchForm.kb_id || 
-            k.collection_name1 === searchForm.kb_id ||
+            k.collection_name_children === searchForm.kb_id || 
+            k.collection_name_parent === searchForm.kb_id ||
             k.collection_name === searchForm.kb_id
         )
         if (selectedKb) {