From ef96f17f28f7b852b4c4e6bb5084816539b73674 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Sat, 27 Sep 2025 11:42:13 +0800
Subject: [PATCH] feat:算法仓库优化

---
 src/views/algorithmRepository/algorithmRepository.vue |   94 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 70 insertions(+), 24 deletions(-)

diff --git a/src/views/algorithmRepository/algorithmRepository.vue b/src/views/algorithmRepository/algorithmRepository.vue
index f818613..b3300bb 100644
--- a/src/views/algorithmRepository/algorithmRepository.vue
+++ b/src/views/algorithmRepository/algorithmRepository.vue
@@ -42,25 +42,30 @@
                 v-model="taskData"
                 placeholder="请选择日期"
                 @change="changeselect"
+                  clearable
+                 
               />
+                <!-- @clear="handleDateClear" -->
             </div>
             <div class="item">
               <div class="itemchild">机巢查询:</div>
-              <el-select v-model="params.device_name" placeholder="请选择" class="filter-item">
+              <el-select v-model="params.device_name" placeholder="请选择" class="filter-item" @change="handleSearch">
                 <el-option v-for="item in jcoptions" :key="item" :label="item" :value="item" />
               </el-select>
             </div>
           </div>
           <div class="search-btn">
-            <el-button type="primary" icon="el-icon-back" @click="goback">返回</el-button>
+            
             <el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button>
             <el-button icon="el-icon-delete" @click="handleReset">清空</el-button>
+            <el-button type="primary" icon="el-icon-back" @click="goback">返回</el-button>
           </div>
         </div>
 
-        <div
+       <div  v-if="detailData.length > 0" class="pictureBox">
+         <div
           class="pictureitem"
-          v-if="detailData.length > 0"
+         
           v-loading="loading"
           element-loading-text="加载中"
         >
@@ -69,7 +74,7 @@
               ref="imageRef"
               :src="getSmallImg(item.url)"
               show-progress
-              :preview-src-list="detailData.map(i => i.url)"
+              :preview-src-list="[getShowImg(item.url)]"
               fit="cover"
             />
 
@@ -79,6 +84,7 @@
             </div>
           </div>
         </div>
+       </div>
         <el-empty class="custom-empty" v-else>
           <template #description>
             <span class="custom-text">暂无数据</span>
@@ -88,7 +94,7 @@
         <el-pagination
           class="pageStyle"
           background
-          :page-sizes="[10, 20, 30, 50]"
+          :page-sizes="[15, 20, 30, 50]"
           v-model:current-page="params.current"
           v-model:page-size="params.size"
           layout="total, prev, pager, next,sizes, jumper"
@@ -102,13 +108,12 @@
 </template>
 
 <script setup>
-defineOptions({
-  name: 'algorithmRepository',
-});
+import { useStore } from 'vuex';
 import { getDictionaryByCode } from '@/api/system/dictbiz';
 import { getalgorithmList, selectDeviceList } from '@/api/algorithm';
-import { getSmallImg } from '@/utils/util';
+import { getSmallImg,getShowImg } from '@/utils/util';
 import { useRouter } from 'vue-router';
+const store = useStore();
 const router = useRouter();
 const baseUrl = import.meta.env.VITE_APP_PICTURE_URL;
 const showDetail = ref(false);
@@ -117,6 +122,7 @@
 const jcoptions = ref([]);
 const total = ref(0);
 const loading = ref(true);
+const userAreaCode = computed(() => store.getters.userInfo.detail.areaCode);
 const params = ref({
   ai_type_key: '',
   start_date: null,
@@ -124,7 +130,7 @@
   device_name: '',
   name: '',
   current: 1,
-  size: 10,
+  size: 15,
 });
 
 // 请求字典字段
@@ -153,7 +159,15 @@
 };
 // 详情
 const getList = () => {
-  getalgorithmList(params.value).then(res => {
+const detailParams={
+   ai_type_key: params.value.ai_type_key,
+  start_date:params.value.start_date,
+  end_date: params.value.end_date,
+  device_name: params.value.device_name,
+  name:params.value.name,
+}
+  getalgorithmList(detailParams,{  current: params.value.current,
+    size: params.value.size,}).then(res => {
     loading.value = true;
     detailData.value = res.data.data.records;
     total.value = res.data.data.total;
@@ -164,28 +178,52 @@
 };
 // 机巢查询
 const getDeviceList = () => {
+console.log('userAreaCode',userAreaCode.value);
+// { areaCode: userAreaCode.value }
   selectDeviceList().then(res => {
     jcoptions.value = res.data.data;
+
+    
   });
 };
 // 日期选择
 const changeselect = () => {
-  params.value.start_date = taskData.value.length ? `${taskData.value[0]} 00:00:00` : null;
-  params.value.end_date = taskData.value.length ? `${taskData.value[1]} 23:59:59` : null;
+  params.value.start_date = taskData.value?.length ? `${taskData.value[0]} 00:00:00` : null;
+  params.value.end_date = taskData.value?.length ? `${taskData.value[1]} 23:59:59` : null;
+  handleSearch()
 };
-const handleSearch = () => {
+// 处理日期清空
+const handleDateClear = () => {
+  taskData.value = ''; // 清空绑定的日期数据
+  params.value.start_date = null; // 重置开始日期参数
+  params.value.end_date = null; // 重置结束日期参数
   getList();
 };
+const handleSearch = () => {
+
+if(taskData.value === null){
+    params.value.start_date = null; // 重置开始日期参数
+  params.value.end_date = null; // 重置结束日期参数
+}
+
+  getList();
+  
+};
 const handleReset = () => {
+taskData.value =''
   params.value.start_date = null;
   params.value.end_date = null;
   params.value.device_name = '';
   params.value.name = '';
   getList();
+  
 };
 const goback = () => {
   showDetail.value = false;
   activeItem.value = null;
+  params.value.current =1
+  params.value.size=15
+  params.value.name=''
 };
 // 分页大小改变
 const handleSizeChange = val => {
@@ -205,18 +243,19 @@
 
 <style scoped lang="scss">
 .algorithContainer {
-height: 100%;
-overflow: auto;
+height: calc(100vh - 130px); 
 }
 .algorithItem {
-  // padding: 20px;
+  height: 100%;
+  overflow-y: auto;
+  overflow-x: hidden; 
   display: grid;
   grid-template-columns: repeat(5, 1fr);
-  // gap: 13px;
   text-align: center;
   vertical-align: middle;
+ 
   .item {
-    height: 269px;
+    height: 267px;
     display: flex;
     flex-direction: column;
     justify-content: center;
@@ -236,6 +275,7 @@
     &:hover {
       background: url('/src/assets/images/ht-sfbg-hover.png') no-repeat center;
       background-size: 100% 100%;
+      cursor: pointer;
     }
     &.active-bg {
       background: url('/src/assets/images/ht-sfbg-click.png') no-repeat center;
@@ -275,18 +315,24 @@
 }
 .algorithItemDetail {
   padding: 20px;
-
+    
+    .pictureBox {
+    // height: 625px;
+       height: pxToVh(760);
+    overflow: auto;
+    }
   .pictureitem {
+
     display: grid;
     grid-template-columns: repeat(5, 1fr);
-    gap: 24px;
+    gap: 14px;
 
     .imgitem {
       border-radius: 12px 12px 0 0;
       overflow: hidden;
       .el-image {
         width: 100%;
-        height: 200px;
+        height: 170px;
         display: block;
         margin: 0;
         padding: 0;
@@ -295,7 +341,7 @@
         display: flex;
         justify-content: space-between;
         align-items: center;
-        height: 42px;
+        height: 35px;
         border-radius: 0 0 12px 12px;
         overflow: hidden;
         background: linear-gradient(180deg, #ffffff 0%, #e5edff 100%);

--
Gitblit v1.9.3