浏览代码

放开原始数据页面及完善标签管理页面

yangg 8 月之前
父节点
当前提交
fa8e7f267c
共有 40 个文件被更改,包括 280 次插入96 次删除
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/app.04af00dd.css
  3. 1 1
      dist/static/css/chunk-0a1f2758.51d9e0d7.css
  4. 0 1
      dist/static/css/chunk-13d43070.7e10a489.css
  5. 1 0
      dist/static/css/chunk-276e7119.906b5901.css
  6. 0 0
      dist/static/css/chunk-279c9a9f.641e9b71.css
  7. 1 0
      dist/static/css/chunk-494a0c21.78080182.css
  8. 0 1
      dist/static/css/chunk-95652282.f294aae4.css
  9. 0 0
      dist/static/css/chunk-d2ba16aa.34be7dbb.css
  10. 0 0
      dist/static/js/app.48b6bca8.js
  11. 0 0
      dist/static/js/app.c35fb584.js
  12. 0 0
      dist/static/js/chunk-0a1f2758.8bf204a0.js
  13. 0 0
      dist/static/js/chunk-126245aa.df34deaa.js
  14. 0 0
      dist/static/js/chunk-13d43070.65029c7a.js
  15. 0 0
      dist/static/js/chunk-276e7119.2a5c0382.js
  16. 0 0
      dist/static/js/chunk-279c9a9f.fffdcc7a.js
  17. 0 0
      dist/static/js/chunk-29d91702.c33e6c76.js
  18. 0 0
      dist/static/js/chunk-386d37cb.c08e88d6.js
  19. 0 0
      dist/static/js/chunk-43013872.a162a32c.js
  20. 0 0
      dist/static/js/chunk-4552e990.80bb6b99.js
  21. 0 0
      dist/static/js/chunk-494a0c21.ec505796.js
  22. 0 0
      dist/static/js/chunk-5d225980.bca274ef.js
  23. 0 0
      dist/static/js/chunk-708604c0.ad439bd1.js
  24. 0 0
      dist/static/js/chunk-7a449bba.bd924dfa.js
  25. 0 0
      dist/static/js/chunk-95652282.07f4ade0.js
  26. 0 0
      dist/static/js/chunk-d2ba16aa.ce2fc027.js
  27. 0 0
      dist/static/js/chunk-ec55d346.8f186bf1.js
  28. 10 0
      src/api/knowledge.js
  29. 1 1
      src/layout/components/Sidebar/Logo.vue
  30. 1 1
      src/layout/index.vue
  31. 28 30
      src/router/index.js
  32. 2 0
      src/styles/sidebar.scss
  33. 1 1
      src/views/dashboard/admin/index.vue
  34. 4 5
      src/views/dataCenter/category/components/dataInfo.vue
  35. 52 4
      src/views/dataCenter/category/components/dataList.vue
  36. 6 6
      src/views/dataCenter/components/dataInfo.vue
  37. 4 4
      src/views/dataCenter/components/dataList.vue
  38. 1 1
      src/views/dataCenter/components/dataSearch.vue
  39. 70 28
      src/views/middPage/list.vue
  40. 97 12
      src/views/tags/index.vue

文件差异内容过多而无法显示
+ 0 - 0
dist/index.html


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.04af00dd.css


+ 1 - 1
dist/static/css/chunk-29d91702.6712b828.css → dist/static/css/chunk-0a1f2758.51d9e0d7.css

@@ -1 +1 @@
-.sub-imgs[data-v-2c6b7984]{padding:0;margin:0}.sub-imgs li[data-v-2c6b7984]{float:left;margin-right:10px;width:100px;height:100px;list-style:none}.data-search[data-v-01f60281]{padding:20px 10px 0 10px}.el-dialog__body[data-v-01f60281]{padding:10px}.data-list .btns,.data-list .page-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.data-list .page-info{margin-top:10px}.data-list .page-info .opt{width:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.data-list .page-info .opt .pick{width:100px}.data-list .page-info .opt .section{margin-left:10px}.data-list .page-info .page-data{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}.data-list .page-info .page-data .page-item{width:100%}.data-list .page-info .page-data .page-opt{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.project-search{padding:30px;font-size:12px}
+.sub-imgs[data-v-4b8e6e28]{padding:0;margin:0}.sub-imgs li[data-v-4b8e6e28]{float:left;margin-right:10px;width:100px;height:100px;list-style:none}.data-search[data-v-01f60281]{padding:20px 10px 0 10px}.el-dialog__body[data-v-01f60281]{padding:10px}.data-list .btns,.data-list .page-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.data-list .page-info{margin-top:10px}.data-list .page-info .opt{width:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.data-list .page-info .opt .pick{width:100px}.data-list .page-info .opt .section{margin-left:10px}.data-list .page-info .page-data{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}.data-list .page-info .page-data .page-item{width:100%}.data-list .page-info .page-data .page-opt{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.project-search{padding:30px;font-size:12px}

+ 0 - 1
dist/static/css/chunk-13d43070.7e10a489.css

@@ -1 +0,0 @@
-.tag-container[data-v-30ead251]{padding:20px}.search-bar[data-v-30ead251]{margin-bottom:20px}.pagination-container[data-v-30ead251]{margin-top:20px;text-align:right}

+ 1 - 0
dist/static/css/chunk-276e7119.906b5901.css

@@ -0,0 +1 @@
+.button-group[data-v-15177f25]{margin-bottom:20px}.tag-container[data-v-15177f25]{padding:20px}.search-bar[data-v-15177f25]{margin-bottom:20px}.pagination-container[data-v-15177f25]{margin-top:20px;text-align:right}

+ 0 - 0
dist/static/css/chunk-126245aa.641e9b71.css → dist/static/css/chunk-279c9a9f.641e9b71.css


+ 1 - 0
dist/static/css/chunk-494a0c21.78080182.css

@@ -0,0 +1 @@
+.gpu-list[data-v-b3bed7a4]{padding:20px}.filter-section[data-v-b3bed7a4]{margin-bottom:20px}.ml-15[data-v-b3bed7a4]{margin-left:15px}.pagination[data-v-b3bed7a4]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-top:15px}

+ 0 - 1
dist/static/css/chunk-95652282.f294aae4.css

@@ -1 +0,0 @@
-.gpu-list[data-v-86814e26]{padding:20px}.filter-section[data-v-86814e26]{margin-bottom:20px}.ml-15[data-v-86814e26]{margin-left:15px}.pagination[data-v-86814e26]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-top:15px}

文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/chunk-d2ba16aa.34be7dbb.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.48b6bca8.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.c35fb584.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-0a1f2758.8bf204a0.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-126245aa.df34deaa.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-13d43070.65029c7a.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-276e7119.2a5c0382.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-279c9a9f.fffdcc7a.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-29d91702.c33e6c76.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-386d37cb.c08e88d6.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-43013872.a162a32c.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-4552e990.80bb6b99.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-494a0c21.ec505796.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-5d225980.bca274ef.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-708604c0.ad439bd1.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-7a449bba.bd924dfa.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-95652282.07f4ade0.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-d2ba16aa.ce2fc027.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/chunk-ec55d346.8f186bf1.js


+ 10 - 0
src/api/knowledge.js

@@ -413,4 +413,14 @@ export function configDelete(data) {
       method: 'post',
       method: 'post',
       data
       data
     })
     })
+  } 
+
+  /* 文献搜索 */
+
+  export function search(data) {
+    return request({
+      url: '/literature-data/search/',
+      method: 'post',
+      data
+    })
   } 
   } 

+ 1 - 1
src/layout/components/Sidebar/Logo.vue

@@ -77,7 +77,7 @@ export default {
 
 
   &.collapse {
   &.collapse {
     .sidebar-logo {
     .sidebar-logo {
-      margin-right: 0px;
+      margin-left: 10px;
     }
     }
   }
   }
 }
 }

+ 1 - 1
src/layout/index.vue

@@ -104,7 +104,7 @@ export default {
   }
   }
   .chat-icon {
   .chat-icon {
     position: fixed;
     position: fixed;
-    bottom: 20px;
+    bottom: 70px;
     right: 20px;
     right: 20px;
     z-index: 1000;
     z-index: 1000;
   }
   }

+ 28 - 30
src/router/index.js

@@ -284,36 +284,6 @@ export const asyncRoutes = [
         name: 'template',
         name: 'template',
         meta: { title: '模块列表',  noCache: true ,roles: ['admin']}
         meta: { title: '模块列表',  noCache: true ,roles: ['admin']}
       },
       },
-
-
-
-       {
-        path: 'dataCenter/index',
-        component: () => import('@/views/dataCenter/search'),
-        name: 'dataCenter',
-        meta: { title: '原始数据', noCache: true,roles: ['admin'] }
-      },
-
-      {
-        path: 'dataCenter/create',
-        component: () => import('@/views/dataCenter/create'),
-        name: 'dataCreate',
-        hidden:true,
-        meta: { title: '创建原始数据', noCache: true,roles: ['admin'] }
-      },
-      {
-        path: 'dataCenter/info',
-        component: () => import('@/views/dataCenter/dataView'),
-        name: 'dataView',
-        hidden:true,
-        meta: { title: '预览数据', noCache: true,roles: ['admin'] }
-      },
-      {
-        path: 'dataCenter/category/index',
-        component: () => import('@/views/dataCenter/category/search'),
-        name: 'dataCenterCategorySearch',
-        meta: { title: '原始数据分类', noCache: true,roles: ['admin'] }
-      },
     ]
     ]
   },
   },
  
  
@@ -375,6 +345,34 @@ export const asyncRoutes = [
         name: 'literature_tag',
         name: 'literature_tag',
         meta: { title: '标签管理',  noCache: true ,roles: ['admin']}
         meta: { title: '标签管理',  noCache: true ,roles: ['admin']}
       },
       },
+      
+      {
+        path: 'dataCenter/index',
+        component: () => import('@/views/dataCenter/search'),
+        name: 'dataCenter',
+        meta: { title: '原始数据', noCache: true,roles: ['admin'] }
+      },
+
+      {
+        path: 'dataCenter/create',
+        component: () => import('@/views/dataCenter/create'),
+        name: 'dataCreate',
+        hidden:true,
+        meta: { title: '创建原始数据', noCache: true,roles: ['admin'] }
+      },
+      {
+        path: 'dataCenter/info',
+        component: () => import('@/views/dataCenter/dataView'),
+        name: 'dataView',
+        hidden:true,
+        meta: { title: '预览数据', noCache: true,roles: ['admin'] }
+      },
+      {
+        path: 'dataCenter/category/index',
+        component: () => import('@/views/dataCenter/category/search'),
+        name: 'dataCenterCategorySearch',
+        meta: { title: '原始数据分类', noCache: true,roles: ['admin'] }
+      },
     ]
     ]
   },
   },
     {
     {

+ 2 - 0
src/styles/sidebar.scss

@@ -54,6 +54,8 @@
     }
     }
 
 
     .svg-icon {
     .svg-icon {
+      width: 18px;
+      height: 18px;
       margin-right: 16px;
       margin-right: 16px;
     }
     }
 
 

+ 1 - 1
src/views/dashboard/admin/index.vue

@@ -4,7 +4,7 @@
 
 
     <!--  <panel-group @handleSetLineChartData="handleSetLineChartData" />-->
     <!--  <panel-group @handleSetLineChartData="handleSetLineChartData" />-->
     <el-row :gutter="20">
     <el-row :gutter="20">
-      <!-- <el-col :span="8">
+    <!--   <el-col :span="8">
         <el-card class="box-card">
         <el-card class="box-card">
           <div slot="header" class="clearfixs">
           <div slot="header" class="clearfixs">
             <span></span>
             <span></span>

+ 4 - 5
src/views/dataCenter/category/components/dataInfo.vue

@@ -4,9 +4,9 @@
       <el-form :model="dataForm" label-width="120px">
       <el-form :model="dataForm" label-width="120px">
 
 
         <el-form-item label="分类名称:">
         <el-form-item label="分类名称:">
-          <el-input v-model="dataForm.name"></el-input>
+          <el-input v-model="dataForm.name" style="width: 300px;" placeholder="请输入分类名称"></el-input>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="分类状态:">
+       <!--  <el-form-item label="分类状态:">
           <el-select v-model="dataForm.status"  placeholder="请选择分类状态" size="large" @change="onChangeStatus" style="width:100%;">
           <el-select v-model="dataForm.status"  placeholder="请选择分类状态" size="large" @change="onChangeStatus" style="width:100%;">
               <el-option
               <el-option
                 v-for="item in statusOptions"
                 v-for="item in statusOptions"
@@ -15,7 +15,7 @@
                 :value="item.value"
                 :value="item.value"
               />
               />
             </el-select>
             </el-select>
-        </el-form-item>
+        </el-form-item> -->
 
 
       </el-form>
       </el-form>
     </el-card>
     </el-card>
@@ -62,7 +62,6 @@
           code:"",
           code:"",
           name:'',
           name:'',
           intro:'',
           intro:'',
-          status:5,
           id:0,
           id:0,
         }
         }
       }
       }
@@ -85,7 +84,7 @@
           }else{
           }else{
             createSourceDataCategory(_this.dataForm).then(res=>{
             createSourceDataCategory(_this.dataForm).then(res=>{
               if(res.status!=200)return;
               if(res.status!=200)return;
-              _this.$alert("分类信息发布成功")
+              _this.$alert("分类信息创建成功")
               _this.$emit("onClose")
               _this.$emit("onClose")
             })
             })
           }
           }

+ 52 - 4
src/views/dataCenter/category/components/dataList.vue

@@ -19,7 +19,7 @@
         align="center"
         align="center"
         min-width="180"
         min-width="180"
       />
       />
-      <el-table-column
+     <!--  <el-table-column
         prop="status"
         prop="status"
         label="分类状态"
         label="分类状态"
         align="center"
         align="center"
@@ -31,7 +31,7 @@
             {{ scope.row.status == 6 ? "停用" : "" }}
             {{ scope.row.status == 6 ? "停用" : "" }}
           </div>
           </div>
         </template>
         </template>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column
       <el-table-column
         label="操作"
         label="操作"
         fixed="right"
         fixed="right"
@@ -61,7 +61,7 @@
 
 
     <div class="page-info">
     <div class="page-info">
       <el-pagination
       <el-pagination
-        v-model:currentPage="queryForm.page"
+        :currentPage="queryForm.page"
         :page-size="queryForm.pageSize"
         :page-size="queryForm.pageSize"
         :total="recordCount"
         :total="recordCount"
         :page-count="pageTotal"
         :page-count="pageTotal"
@@ -80,7 +80,22 @@
       custom-class="prod-verify"
       custom-class="prod-verify"
       title="修改原始数据分类 "
       title="修改原始数据分类 "
     >
     >
-      <dataInfo :id="currentDataId" @onClose="onClose"></dataInfo>
+      <!--  <dataInfo :id="currentDataId" @onClose="onClose"></dataInfo> -->
+      <!-- 替换原有的 dataInfo 组件 -->
+      <el-card>
+        <el-form :model="dataForm" label-width="120px">
+          <el-form-item label="分类名称:">
+            <el-input
+              v-model="dataForm.name"
+              style="width: 300px"
+              placeholder="请输入分类名称"
+            ></el-input>
+          </el-form-item>
+        </el-form>
+      </el-card>
+      <div style="text-align: right; margin-top: 20px; margin-bottom: 20px">
+        <el-button type="warning" @click="btnSave">确认保存</el-button>
+      </div>
     </el-dialog>
     </el-dialog>
   </div>
   </div>
 </template>
 </template>
@@ -89,6 +104,9 @@
 import {
 import {
   searchSourceDataCategory,
   searchSourceDataCategory,
   deleteSourceDataCategory,
   deleteSourceDataCategory,
+  getSourceDataCategoryInfo,
+  createSourceDataCategory,
+  updateSourceDataCategory,
 } from "@/api/sourceData";
 } from "@/api/sourceData";
 import {
 import {
   createAdminRole,
   createAdminRole,
@@ -133,12 +151,41 @@ export default {
       dataList: [],
       dataList: [],
       currentData: {},
       currentData: {},
       authorityList: [],
       authorityList: [],
+      dataForm: {
+        // 新增
+        name: "",
+      },
     };
     };
   },
   },
   mounted() {
   mounted() {
     this.search();
     this.search();
   },
   },
   methods: {
   methods: {
+    /* 保存新增 */
+    // 新增保存方法
+    btnSave() {
+      let _this = this;
+      if (_this.currentDataId) {
+        updateSourceDataCategory({
+          id: _this.currentDataId,
+          ...this.dataForm,
+        }).then(() => {
+          if (res.status != 200) return;
+          _this.dialogVisible = false;
+          _this.$message.success("分类信息更新成功");
+          _this.dataForm = {};
+          _this.search();
+        });
+      } else {
+        createSourceDataCategory(this.dataForm).then(() => {
+          if (res.status != 200) return;
+          _this.dialogVisible = false;
+          _this.$message.success("分类信息创建成功");
+          _this.dataForm = {};
+          _this.search();
+        });
+      }
+    },
     authority() {
     authority() {
       getAdminRoleInfo({ id: this.$store.state.user.roleInfo.id }).then(
       getAdminRoleInfo({ id: this.$store.state.user.roleInfo.id }).then(
         (res) => {
         (res) => {
@@ -188,6 +235,7 @@ export default {
     //编辑
     //编辑
     btnEdit(e) {
     btnEdit(e) {
       let _this = this;
       let _this = this;
+      _this.dataForm.name=e.name
       _this.currentDataId = e.id;
       _this.currentDataId = e.id;
       _this.dialogVisible = true;
       _this.dialogVisible = true;
     },
     },

+ 6 - 6
src/views/dataCenter/components/dataInfo.vue

@@ -3,7 +3,7 @@
     <el-card>
     <el-card>
       <el-form :model="dataForm" label-width="120px">
       <el-form :model="dataForm" label-width="120px">
         <el-form-item label="数据表编码:">
         <el-form-item label="数据表编码:">
-          <el-input v-model="dataForm.code"></el-input>
+          <el-input v-model="dataForm.code"  style="width: 30%;"  placeholder="请输入数据表编码"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="所属分类:">
         <el-form-item label="所属分类:">
           <el-select
           <el-select
@@ -11,7 +11,7 @@
             clearable
             clearable
             placeholder="请选择所属分类"
             placeholder="请选择所属分类"
             size="large"
             size="large"
-            style="width: 100%"
+            style="width: 30%"
           >
           >
             <el-option
             <el-option
               v-for="item in categoryList"
               v-for="item in categoryList"
@@ -22,11 +22,11 @@
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
         <el-form-item label="数据表名称:">
         <el-form-item label="数据表名称:">
-          <el-input v-model="dataForm.name"></el-input>
+          <el-input v-model="dataForm.name" style="width: 30%;" placeholder="请输入数据表名称"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="选择文件:">
         <el-form-item label="选择文件:">
           <el-upload
           <el-upload
-            v-model:file-list="fileList"
+            l:file-list="fileList"
             :limit="1"
             :limit="1"
             action=""
             action=""
             :multiple="false"
             :multiple="false"
@@ -56,7 +56,7 @@
             v-model="dataForm.status"
             v-model="dataForm.status"
             placeholder="请选择状态"
             placeholder="请选择状态"
             size="large"
             size="large"
-            style="width: 100%"
+            style="width: 30%"
           >
           >
             <el-option
             <el-option
               v-for="item in statusOptions"
               v-for="item in statusOptions"
@@ -141,7 +141,7 @@ export default {
   methods: {
   methods: {
     initCategory() {
     initCategory() {
       let _this = this;
       let _this = this;
-      searchSourceDataCategory({ page: 1, pageSize: 9999, status: 5 }).then(
+      searchSourceDataCategory({ page: 1, pageSize: 9999 }).then(
         (res) => {
         (res) => {
           if (res.status != 200) return;
           if (res.status != 200) return;
           _this.categoryList = res.data.sourcecategories.map((res) => {
           _this.categoryList = res.data.sourcecategories.map((res) => {

+ 4 - 4
src/views/dataCenter/components/dataList.vue

@@ -33,7 +33,7 @@
 
 
       <div class="page-info">
       <div class="page-info">
       	<el-pagination
       	<el-pagination
-      	v-model:currentPage="queryForm.page"
+      	:currentPage="queryForm.page"
       	:page-size="queryForm.pageSize"
       	:page-size="queryForm.pageSize"
       	:total="recordCount"
       	:total="recordCount"
       	:page-count="pageTotal"
       	:page-count="pageTotal"
@@ -136,7 +136,7 @@
       },
       },
       initCategory() {
       initCategory() {
       let _this = this;
       let _this = this;
-      searchSourceDataCategory({ page: 1, pageSize: 9999, status: 5 }).then(
+      searchSourceDataCategory({ page: 1, pageSize: 9999 }).then(
         (res) => {
         (res) => {
           if (res.status != 200) return;
           if (res.status != 200) return;
           _this.categoryList = res.data.sourcecategories.map((res) => {
           _this.categoryList = res.data.sourcecategories.map((res) => {
@@ -190,7 +190,7 @@
 
 
       btnView(e){
       btnView(e){
         let _this=this;
         let _this=this;
-        _this.$router.push({path:'/document/dataCenter/info',query:{id:e}})
+        _this.$router.push({path:'/knowledge/dataCenter/info',query:{id:e}})
       },
       },
       btnCloseView(e){
       btnCloseView(e){
         this.currentDataId=0;
         this.currentDataId=0;
@@ -200,7 +200,7 @@
       //编辑
       //编辑
       btnEdit(e){
       btnEdit(e){
         let _this=this;
         let _this=this;
-        _this.$router.push({path:'/document/dataCenter/create',query:{id:e}})
+        _this.$router.push({path:'/knowledge/dataCenter/create',query:{id:e}})
       },
       },
 
 
       onClose(){
       onClose(){

+ 1 - 1
src/views/dataCenter/components/dataSearch.vue

@@ -88,7 +88,7 @@ export default{
 
 
     onCreate(e){
     onCreate(e){
       // this.dialogVisible=true;
       // this.dialogVisible=true;
-      this.$router.push({path:'/document/dataCenter/create'})
+      this.$router.push({path:'/knowledge/dataCenter/create'})
     },
     },
     onClose(e){
     onClose(e){
       this.dialogVisible=false;
       this.dialogVisible=false;

+ 70 - 28
src/views/middPage/list.vue

@@ -49,7 +49,13 @@
             :model="searchForm"
             :model="searchForm"
             class="demo-form-inline"
             class="demo-form-inline"
             label-width="100px"
             label-width="100px"
-          >
+            ><el-form-item label="名称:">
+              <el-input
+                v-model="searchForm.name"
+                clearable
+                placeholder="请输入文献名称"
+              ></el-input>
+            </el-form-item>
             <el-form-item label="创建时间:">
             <el-form-item label="创建时间:">
               <el-date-picker
               <el-date-picker
                 v-model="searchForm.createTimeRange"
                 v-model="searchForm.createTimeRange"
@@ -57,22 +63,23 @@
                 range-separator="至"
                 range-separator="至"
                 start-placeholder="开始日期"
                 start-placeholder="开始日期"
                 end-placeholder="结束日期"
                 end-placeholder="结束日期"
-                value-format="YYYY-MM-DD"
+                value-format="yyyy-MM-dd"
               />
               />
             </el-form-item>
             </el-form-item>
-            <el-form-item label="文本时间:">
+            <!-- <el-form-item label="文本时间:">
               <el-date-picker
               <el-date-picker
                 v-model="searchForm.textTimeRange"
                 v-model="searchForm.textTimeRange"
                 type="daterange"
                 type="daterange"
                 range-separator="至"
                 range-separator="至"
                 start-placeholder="开始日期"
                 start-placeholder="开始日期"
                 end-placeholder="结束日期"
                 end-placeholder="结束日期"
-                value-format="YYYY-MM-DD"
+                value-format="yyyy-MM-dd"
               />
               />
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item label="标签:">
             <el-form-item label="标签:">
               <el-select
               <el-select
-                v-model="searchForm.tag"
+                v-model="searchForm.id"
+                multiple
                 filterable
                 filterable
                 remote
                 remote
                 reserve-keyword
                 reserve-keyword
@@ -85,7 +92,7 @@
                   v-for="tag in searchTagOptions"
                   v-for="tag in searchTagOptions"
                   :key="tag.id"
                   :key="tag.id"
                   :label="tag.name"
                   :label="tag.name"
-                  :value="tag.id"
+                  :value="tag.name"
                 />
                 />
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
@@ -111,13 +118,26 @@
           @selection-change="handleSelectionChange"
           @selection-change="handleSelectionChange"
         >
         >
           <el-table-column type="selection" width="55" />
           <el-table-column type="selection" width="55" />
-          <el-table-column prop="id" label="ID" />
+          <el-table-column prop="id" label="ID" width="80" />
           <el-table-column prop="name" label="名称">
           <el-table-column prop="name" label="名称">
             <template #default="{ row }">
             <template #default="{ row }">
               <el-link @click="handleNameClick(row)">{{ row.name }}</el-link>
               <el-link @click="handleNameClick(row)">{{ row.name }}</el-link>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-          <el-table-column prop="type" label="文档类型" />
+          <el-table-column prop="create_time" label="创建时间" />
+          <el-table-column prop="type" label="文档类型" width="100" />
+          <el-table-column prop="tags" label="已绑定标签">
+            <template #default="{ row }">
+              <el-tag
+                v-for="(item, index) in row.tags"
+                :key="index"
+                type=""
+                :style="index !== 0 ? 'margin-left: 5px;' : ''"
+              >
+                {{ item }}
+              </el-tag>
+            </template>
+          </el-table-column>
           <el-table-column prop="status" label="处理状态">
           <el-table-column prop="status" label="处理状态">
             <template #default="{ row }">
             <template #default="{ row }">
               <el-tag :type="getStatusType(row.status)">
               <el-tag :type="getStatusType(row.status)">
@@ -167,11 +187,12 @@
     <el-dialog
     <el-dialog
       title="批量绑定标签"
       title="批量绑定标签"
       :visible.sync="tagDialogVisible"
       :visible.sync="tagDialogVisible"
-      width="500px"
+      width="800px"
     >
     >
-      <el-form :model="tagForm">
-        <el-form-item label="标签">
+      <el-form :model="tagForm" label-width="150px">
+        <el-form-item label="标签:">
           <el-select
           <el-select
+            style="width: 350px"
             v-model="tagForm.tags"
             v-model="tagForm.tags"
             multiple
             multiple
             filterable
             filterable
@@ -210,6 +231,7 @@ import {
   getDetail,
   getDetail,
   search_tags,
   search_tags,
   edit_tags,
   edit_tags,
+  search,
 } from "@/api/knowledge";
 } from "@/api/knowledge";
 import axios from "axios";
 import axios from "axios";
 // 状态映射表
 // 状态映射表
@@ -240,9 +262,10 @@ export default {
       sotaDetailsList: [], // SOTA详情列表数据
       sotaDetailsList: [], // SOTA详情列表数据
       sotaSummaryList: [], // SOTA汇总表数据
       sotaSummaryList: [], // SOTA汇总表数据
       searchForm: {
       searchForm: {
+        name: "",
         createTimeRange: [],
         createTimeRange: [],
         textTimeRange: [],
         textTimeRange: [],
-        tag: "",
+        id: [],
       },
       },
       selectedRows: [], // 选中的行
       selectedRows: [], // 选中的行
       tagDialogVisible: false, // 标签对话框显示状态
       tagDialogVisible: false, // 标签对话框显示状态
@@ -324,7 +347,7 @@ export default {
           ids,
           ids,
           tagIds: this.tagForm.tags, // 现在传递的是标签ID数组
           tagIds: this.tagForm.tags, // 现在传递的是标签ID数组
         }); */
         }); */
-        const idObject={literature_ids:ids,tag_ids:this.tagForm.tags}
+        const idObject = { literature_ids: ids, tag_ids: this.tagForm.tags };
         const response = await axios.post(
         const response = await axios.post(
           `${process.env.VUE_APP_BASE_API}/literature-tags/relation_tags/`,
           `${process.env.VUE_APP_BASE_API}/literature-tags/relation_tags/`,
           idObject,
           idObject,
@@ -334,7 +357,7 @@ export default {
             },
             },
           }
           }
         );
         );
-        if(response.status!==200) return
+        if (response.status !== 200) return;
         console.log(this.tagForm.tags);
         console.log(this.tagForm.tags);
         this.$message.success("标签更新成功");
         this.$message.success("标签更新成功");
         this.tagDialogVisible = false;
         this.tagDialogVisible = false;
@@ -352,9 +375,10 @@ export default {
     // 重置搜索
     // 重置搜索
     resetSearch() {
     resetSearch() {
       this.searchForm = {
       this.searchForm = {
+        name: "",
         createTimeRange: [],
         createTimeRange: [],
         textTimeRange: [],
         textTimeRange: [],
-        tag: "",
+        id: [],
       };
       };
       this.handleSearch();
       this.handleSearch();
     },
     },
@@ -430,20 +454,37 @@ export default {
     async fetchGpuList() {
     async fetchGpuList() {
       this.isLoading = true;
       this.isLoading = true;
       try {
       try {
+        // 构建基础参数
         const params = {
         const params = {
           page: this.currentPage,
           page: this.currentPage,
           page_size: this.pageSize,
           page_size: this.pageSize,
           doc_type_id: this.selectedType || 36,
           doc_type_id: this.selectedType || 36,
-          // 添加搜索参数
-          create_time_start: this.searchForm.createTimeRange[0],
-          create_time_end: this.searchForm.createTimeRange[1],
-          text_time_start: this.searchForm.textTimeRange[0],
-          text_time_end: this.searchForm.textTimeRange[1],
-          tag: this.searchForm.tag,
+          keyword: this.searchForm.name,
+          tag_names: this.searchForm.id,
         };
         };
 
 
-        const { data } = await GET_list(params);
-        this.gpuList = data.list.map((item) => {
+        // 只有当日期范围存在且有效时才添加日期参数
+        if (
+          this.searchForm.createTimeRange &&
+          this.searchForm.createTimeRange.length === 2
+        ) {
+          params.create_time_start = this.searchForm.createTimeRange[0];
+          params.create_time_end = this.searchForm.createTimeRange[1];
+        }
+
+        const response = await axios.post(
+          `${process.env.VUE_APP_BASE_API}/literature-data/search/`,
+          params,
+          {
+            headers: {
+              "Content-Type": "application/json",
+            },
+          }
+        );
+
+        if (response.status !== 200) return;
+
+        this.gpuList = response.data.data.list.map((item) => {
           const nameParts = item.name.split(".");
           const nameParts = item.name.split(".");
           return {
           return {
             ...item,
             ...item,
@@ -451,11 +492,12 @@ export default {
             type: nameParts.length > 1 ? nameParts.pop() : "未知",
             type: nameParts.length > 1 ? nameParts.pop() : "未知",
           };
           };
         });
         });
-        console.log(this.gpuList);
-        this.total = data.total;
-        this.currentPage = data.current_page;
-        this.pageSize = data.page_size;
+
+        this.total = response.data.data.total;
+        this.currentPage = response.data.data.current_page;
+        this.pageSize = response.data.data.page_size;
       } catch (error) {
       } catch (error) {
+        console.error("获取列表数据失败:", error); // 添加错误日志输出
         this.$message.error("获取列表数据失败");
         this.$message.error("获取列表数据失败");
       } finally {
       } finally {
         this.isLoading = false;
         this.isLoading = false;

+ 97 - 12
src/views/tags/index.vue

@@ -17,11 +17,44 @@
       </el-form>
       </el-form>
     </div>
     </div>
     <el-button type="primary" @click="handleAdd">新增</el-button>
     <el-button type="primary" @click="handleAdd">新增</el-button>
+    <el-button
+      type="danger"
+      :disabled="selectedTags.length === 0"
+      @click="handleBatchDelete"
+      >批量删除</el-button
+    >
     <!-- 数据表格 -->
     <!-- 数据表格 -->
-    <el-table :data="tagList" style="width: 100%">
+    <el-table
+      :data="tagList"
+      style="width: 100%"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="55"></el-table-column>
       <el-table-column prop="id" label="ID" width="80"></el-table-column>
       <el-table-column prop="id" label="ID" width="80"></el-table-column>
       <el-table-column prop="name" label="标签名称"></el-table-column>
       <el-table-column prop="name" label="标签名称"></el-table-column>
-      <el-table-column prop="create_time" label="创建时间"></el-table-column>
+      <el-table-column prop="" label="已绑定文献数量"
+        ><template slot-scope="scope">
+          {{ JSON.parse(scope.row.literature_id).length }}</template
+        ></el-table-column
+      >
+      <el-table-column prop="create_time" label="创建时间">
+        <template slot-scope="scope">
+          {{
+            new Date(scope.row.create_time)
+              .toLocaleString("zh-CN", {
+                year: "numeric",
+                month: "2-digit",
+                day: "2-digit",
+                hour: "2-digit",
+                minute: "2-digit",
+                second: "2-digit",
+                hour12: false,
+                formatMatcher: "basic",
+              })
+              .replace(/\//g, "-")
+          }}
+        </template>
+      </el-table-column>
       <el-table-column label="操作" width="180">
       <el-table-column label="操作" width="180">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <el-button size="mini" type="primary" @click="handleEdit(scope.row)"
           <el-button size="mini" type="primary" @click="handleEdit(scope.row)"
@@ -112,12 +145,61 @@ export default {
       },
       },
       // 加载状态
       // 加载状态
       loading: false,
       loading: false,
+      selectedTags: [], // 新增:选中的标签数组
     };
     };
   },
   },
   created() {
   created() {
     this.getList();
     this.getList();
   },
   },
   methods: {
   methods: {
+    // 新增:表格多选事件处理
+    handleSelectionChange(selection) {
+      this.selectedTags = selection;
+    },
+
+    // 新增:批量删除方法
+    handleBatchDelete() {
+      if (this.selectedTags.length === 0) {
+        this.$message.warning("请选择要删除的标签");
+        return;
+      }
+
+      this.$confirm(
+        `确认删除选中的 ${this.selectedTags.length} 个标签吗?`,
+        "提示",
+        {
+          type: "warning",
+        }
+      )
+        .then(async () => {
+          try {
+            const idObject = {
+              tag_ids: this.selectedTags.map((tag) => tag.id),
+            };
+            const response = await axios.post(
+              `${process.env.VUE_APP_BASE_API}/literature-tags/remove_tags/`,
+              idObject,
+              {
+                headers: {
+                  "Content-Type": "application/json",
+                },
+              }
+            );
+            if (response.status === 200) {
+              this.$message.success("批量删除成功");
+              this.getList();
+            } else {
+              this.$message.error(response.msg || "批量删除失败");
+            }
+          } catch (error) {
+            console.error("批量删除标签出错:", error);
+            this.$message.error("批量删除失败");
+          }
+        })
+        .catch(() => {
+          // 取消删除操作
+        });
+    },
     // 获取列表数据
     // 获取列表数据
     async getList() {
     async getList() {
       try {
       try {
@@ -153,16 +235,16 @@ export default {
       })
       })
         .then(async () => {
         .then(async () => {
           try {
           try {
-            const idObject = {tag_ids:[row.id]} 
-              const response = await axios.post(
-                `${process.env.VUE_APP_BASE_API}/literature-tags/remove_tags/`,
-                idObject,
-                {
-                  headers: {
-                    "Content-Type": "application/json",
-                  },
-                }
-              );
+            const idObject = { tag_ids: [row.id] };
+            const response = await axios.post(
+              `${process.env.VUE_APP_BASE_API}/literature-tags/remove_tags/`,
+              idObject,
+              {
+                headers: {
+                  "Content-Type": "application/json",
+                },
+              }
+            );
             if (response.status === 200) {
             if (response.status === 200) {
               this.$message.success("删除成功");
               this.$message.success("删除成功");
               this.getList();
               this.getList();
@@ -267,6 +349,9 @@ export default {
 </script>
 </script>
   
   
   <style scoped>
   <style scoped>
+.button-group {
+  margin-bottom: 20px;
+}
 .tag-container {
 .tag-container {
   padding: 20px;
   padding: 20px;
 }
 }

部分文件因为文件数量过多而无法显示