From c4b9151c96c1275ada3c5f05814a82cd99a1356e Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 25 三月 2026 10:37:50 +0800
Subject: [PATCH] fix: 样品管理接口调整

---
 src/components/view/b1-sample.vue |   92 +++++++++++++++++++++++++++++----------------
 1 files changed, 59 insertions(+), 33 deletions(-)

diff --git a/src/components/view/b1-sample.vue b/src/components/view/b1-sample.vue
index e0f44c6..fa7d07a 100644
--- a/src/components/view/b1-sample.vue
+++ b/src/components/view/b1-sample.vue
@@ -178,7 +178,7 @@
           <div class="search_label">浠撳簱鍚嶇О锛�</div>
           <div class="search_input">
             <el-select v-model="entity.warehouseId" placeholder="閫夋嫨浠撳簱" size="small" @change="warehouseChange">
-              <el-option v-for="item in warehouse" :key="item.id" :label="item.name" :value="item.id">
+              <el-option v-for="item in warehouseAll" :key="item.id" :label="item.name" :value="item.id">
               </el-option>
             </el-select>
           </div>
@@ -323,7 +323,7 @@
       </span>
     </el-dialog>
     <el-dialog title="搴撲綅缁存姢" :visible.sync="keepVisible" width="350px" :append-to-body="true">
-      <el-tree :data="warehouse" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id"
+      <el-tree :data="warehouseAll" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id"
         :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
         @node-collapse="nodeClose" :default-expanded-keys="expandedKeys" v-if="keepVisible"
         empty-text="鏆傛棤鏁版嵁">
@@ -410,6 +410,7 @@
         },
         sampleCodeBtnDisabled:true,
         warehouse: [],
+        warehouseAll: [],
         startTime: null,
         shelf: [],
         storageList:[],
@@ -443,6 +444,7 @@
     watch:{
       storageVisible(newVal){
         if(newVal){
+            this.selectList()
             this.sampleCode = null
             this.entrustCode = null
             // this.$message.success('鎵爜锛氭墦寮�')
@@ -521,43 +523,67 @@
           this.storageList = this.HaveJson(res.data).map(item=>{
             item.warehouseShelfList&&item.warehouseShelfList.length>0&&item.warehouseShelfList.map(m=>{
               let warehouseShelfList = [];
-              for (let i=1;i<m.row+1;i++){
-                let warehouseShelfList0 = []
-                for (let j=1;j<m.col+1;j++){
+              let warehouseShelfList0 = []
+              let warehouseCellList = m.warehouseCellList?m.warehouseCellList:[]
+              warehouseCellList.forEach(a=>{
+                if(warehouseShelfList.find(n=>n.id==a.row)){
                   warehouseShelfList0.push({
-                    name:j+' 鍒�',
-                    id:j,
+                    name:a.col+'鍒�',
+                    id:a.col
+                  })
+                }else if(warehouseShelfList.length==0){
+                  warehouseShelfList.push({
+                    name:a.row+'灞�',
+                    id:a.row
+                  })
+                  warehouseShelfList0.push({
+                    name:a.col+'鍒�',
+                    id:a.col
+                  })
+                }else if(!warehouseShelfList.find(n=>n.id==a.row)){
+                  warehouseShelfList[warehouseShelfList.length-1].warehouseShelfList = JSON.parse(JSON.stringify(warehouseShelfList0))
+                  warehouseShelfList0 = []
+                  warehouseShelfList.push({
+                    name:a.row+'灞�',
+                    id:a.row
+                  })
+                  warehouseShelfList0.push({
+                    name:a.col+'鍒�',
+                    id:a.col
                   })
                 }
-                warehouseShelfList.push({
-                  name:i+' 灞�',
-                  id:i,
-                  warehouseShelfList:warehouseShelfList0
-                })
-              }
+              })
+              warehouseShelfList[warehouseShelfList.length-1].warehouseShelfList = JSON.parse(JSON.stringify(warehouseShelfList0))
               m.warehouseShelfList = warehouseShelfList;
               return m;
             })
             return item;
           })
-          if(!this.entity.warehouseId&&this.warehouse.length>0){
-            this.entity.warehouseId = this.warehouse[0].id
-            this.warehouseChange(this.entity.warehouseId)
-            if(this.shelf.length>0){
-              this.entity.shelfId = this.shelf[0].id
-              this.handleShelf(this.entity.shelfId)
-            }else{
-              this.tableList = []
+          this.selectWarehouseAllList().then(() => {
+            if(!this.entity.warehouseId&&this.warehouseAll.length>0){
+              this.entity.warehouseId = this.warehouseAll[0].id
+              this.warehouseChange(this.entity.warehouseId)
+              if(this.shelf.length>0){
+                this.entity.shelfId = this.shelf[0].id
+                this.handleShelf(this.entity.shelfId)
+              }else{
+                this.tableList = []
+              }
+            }else if(this.warehouseAll.length>0){
+              this.warehouseChange(this.entity.warehouseId)
+              if(this.shelf.length>0){
+                this.entity.shelfId = this.shelf[0].id
+                this.handleShelf(this.entity.shelfId)
+              }else{
+                this.tableList = []
+              }
             }
-          }else if(this.warehouse.length>0){
-            this.warehouseChange(this.entity.warehouseId)
-            if(this.shelf.length>0){
-              this.entity.shelfId = this.shelf[0].id
-              this.handleShelf(this.entity.shelfId)
-            }else{
-              this.tableList = []
-            }
-          }
+          })
+        })
+      },
+      selectWarehouseAllList() {
+        return this.$axios.get('/warehouse/selectWarehouseAll').then(res => {
+          this.warehouseAll = res.data || []
         })
       },
       selectStandardTreeList() {
@@ -810,16 +836,16 @@
       },
       warehouseChange(val) {
         this.tableList = []
-        let map = this.warehouse.find(a => {
+        let map = this.warehouseAll.find(a => {
           return a.id === val ? a : null
         })
-        this.shelf = map.warehouseShelfList;
+        this.shelf = map && map.warehouseShelfList ? map.warehouseShelfList : [];
         this.entity.shelfId = '';
       },
       handleShelf(e,sampleCode=''){
         if(e){
           this.tableLoading = true;
-          this.$axios.get(this.$api.warehouse.getWarehouse+'?shelfId='+e+'&sampleCode='+sampleCode).then(res => {
+          this.$axios.get(this.$api.warehouse.getWarehouse+'?shelfId='+e+'&sampleCode='+(sampleCode?sampleCode:'')).then(res => {
             this.tableLoading = false;
             let data = res.data;
             let set =new Set()

--
Gitblit v1.9.3