Ver código fonte

解决默认仓库下没有默认仓位导致死循环问题

chenrui 4 anos atrás
pai
commit
2bd67231d7

+ 13 - 5
src/views/bulkManagement/bulkWarehousingOrder/edit.vue

@@ -218,7 +218,13 @@
     </a-card>
     <a-affix :offset-bottom="0">
       <div style="text-align: center;width: 100%;background-color: #fff;padding: 12px 0;box-shadow: 0 0 20px #dcdee2;">
-        <a-button type="primary" id="bulkWarehousingOrderEdit-submit" size="large" class="button-primary" @click="handleSubmit" style="padding: 0 60px;">提交</a-button>
+        <a-button
+          type="primary"
+          id="bulkWarehousingOrderEdit-submit"
+          size="large"
+          class="button-primary"
+          @click="handleSubmit"
+          style="padding: 0 60px;">提交</a-button>
       </div>
     </a-affix>
     <!-- 选择基本信息弹框 -->
@@ -461,7 +467,7 @@ export default {
         if (res.status == 200) {
           if (type == 'dealerProduct') { //  全部产品
             this.warehouseList = res.data
-            const defaultFlagInd = this.warehouseList.findIndex(item => item.defaultFlag == 1)
+            const defaultFlagInd = this.warehouseList.findIndex(item => (item.defaultFlag == 1 && item.wasteFlag == 0))
             this.loadData.map((item, index) => {
               // 全部产品中,仓库默认值为默认仓库,则仓位必然也为默认仓位,因此可批量设置默认仓位的值 all
               // 解决更改后不实时渲染问题
@@ -518,7 +524,7 @@ export default {
         loadData = this.chooseLoadData
       }
       this.$set(warehouseLocList, ind, data)
-      const defaultFlagInd = warehouseLocList[ind].findIndex(item => item.defaultFlag == 1)
+      const defaultFlagInd = warehouseLocList[ind].findIndex(item => (item.defaultFlag == 1 && item.wasteFlag == 0))
       //  有默认仓位则默认选择默认仓位,无默认仓位则默认选择第一个仓位
       if (defaultFlagInd > -1) { //  有默认仓位
         if (isAll == 'all') { //  批量设置默认仓位的值为默认仓位
@@ -535,8 +541,10 @@ export default {
           loadData[ind].nowWarehouseSn = loadData[ind].warehouseSn
         } else {
           this.$message.warning('当前仓库无仓位,请选择其他仓库')
-          loadData[ind].warehouseSn = loadData[ind].nowWarehouseSn
-          this.getWarehouseLocList(loadData[ind].warehouseSn, ind, type)
+          if (loadData[ind].warehouseSn != loadData[ind].nowWarehouseSn) { //  避免默认仓库下没有默认仓位导致死循环问题
+            loadData[ind].warehouseSn = loadData[ind].nowWarehouseSn
+            this.getWarehouseLocList(loadData[ind].warehouseSn, ind, type)
+          }
         }
       }
       //  仓库更改时,应与仓位一齐变更