Mr.Zhang
2023-09-06 c9a0e7808723c7a2534f07de2cfd35d1c9f2758a
minipro_standard/pages/OutOperation/OutOperation.vue
@@ -2,10 +2,10 @@
   <view>
      <InOutInfo :info="info" />
      <uni-collapse @change="change" @close="close" @open="open">
         <uni-collapse-item v-for="(item, index) in wtransferWarehouseList" :key="index">
         <uni-collapse-item v-if="type==7" v-for="(item1, index) in warehouseList" :key="index">
            <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title">
               <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image>
               <view>{{ item.warehouseName }}</view>
               <view>{{ item1.warehouseName }}</view>
            </view>
            <view class="p30">
               <div class="page_dck">
@@ -14,12 +14,12 @@
                     <span>待出库物料</span>
                  </div>
               </div>
               <div class="page_content" v-for="(item, index) in info.woutboundDetailsWait" :key="index"
               <div class="page_content" v-for="(item, index) in item1.wtransferDetailList" :key="index"
                  :name="index">
                  <div class="page_content_title">
                     <div class="page_content_title_top">
                        <span v-if="item.batch">{{ item.materialName + ' | ' + item.materialCode }}</span>
                        <span v-else>{{ item.materialName + ' | ' + item.materialCode }}</span>
                        <span>{{ item.materialName + ' | ' + item.materialCode }}</span>
                        <span>待出{{ item.materialName + ' | ' + item.materialCode }}</span>
                     </div>
                     <div class="page_content_title_bottom">
                        <span class="green" v-if="item.qualityType === 0">合格&nbsp;<span
@@ -37,19 +37,68 @@
                     <div class="page_content_list_item">
                        <div class="page_content_list_item_label">出库货位:</div>
                        <div class="page_content_list_item_nr">
                           {{item.locationName ? item.locationName : '-'}}
                           {{item.outLocationName ? item.outLocationName : '-'}}
                        </div>
                     </div>
                     <div class="page_content_list_items">
                        <div class="page_content_list_item_label">数量:</div>
                        <div class="page_content_list_item_nr">{{item.num ? item.num : '-'}}{{item.unitName}}
                        <div class="page_content_list_item_nr">
                           {{item.outPlannum ? item.outPlannum : '-'}}{{item.unitName}}
                        </div>
                     </div>
                  </div>
               </div>
            </view>
         </uni-collapse-item>
         <uni-collapse-item v-if="type==8">
            <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title">
               <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image>
               <view>{{ info.warehouseName }}</view>
            </view>
            <view class="p30">
               <div class="page_dck">
                  <div class="page_dck_title">
                     <div class="page_dck_title_x"></div>
                     <span>待出库物料</span>
                  </div>
               </div>
               <div class="page_content" v-for="(item, index) in woutboundDetailsWait" :key="index" :name="index">
                  <div class="page_content_title">
                     <div class="page_content_title_top">
                        <span>{{ item.materialName + ' | ' + item.materialCode }}</span>
                        <span>待出 <span>{{ item.num }}</span> {{ item.unitName }}</span>
                     </div>
                     <div class="page_content_title_bottom">
                        <span class="green" v-if="item.qualityType === 0">合格&nbsp;<span
                              class="black">/</span>&nbsp;</span>
                        <span class="warning" v-else-if="item.qualityType === 1">不良&nbsp;<span
                              class="black">/</span>&nbsp;</span>
                        <span class="error" v-else-if="item.qualityType === 2">报废&nbsp;<span
                              class="black">/</span>&nbsp;</span>
                        <span v-else>-&nbsp;/&nbsp;</span>
                        <span>{{item.procedureName ? item.procedureName : '-'}}&nbsp;/&nbsp;</span>
                        <span>{{item.batch ? item.batch : '-'}}</span>
                     </div>
                  </div>
                  <div class="page_content_list" v-for="(items, ind) in item.wstockExtListVOList" :key="ind">
                     <div class="page_content_list_item">
                        <div class="page_content_list_item_label">批次号:</div>
                        <div class="page_content_list_item_nr">{{ items.batch ? items.batch : '-' }}</div>
                     </div>
                     <div class="page_content_list_items">
                        <div class="page_content_list_item_label">数量:</div>
                        <div class="page_content_list_item_nr">{{ items.num }}{{ items.umodel.name }}</div>
                     </div>
                     <div class="page_content_list_item" v-if="items.lmodel">
                        <div class="page_content_list_item_label">出库货位:</div>
                        <div class="page_content_list_item_nr">{{ items.lmodel.unionName }}</div>
                     </div>
                  </div>
               </div>
            </view>
         </uni-collapse-item>
      </uni-collapse>
      <div class="page_h"></div>
      <div class="page_yxwl">
         <div class="page_yxwl_title">
@@ -60,96 +109,45 @@
            
            <div class="right" v-if="isZKD" @click="openxz">
               <image src="../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>手动出库</span>
               <!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""> -->
            </div>
         </div>
         <!--        入库单(单个仓库)        -->
         <template
            v-if="route.query.type == 9 && info.woScanMaterialBeanList && info.woScanMaterialBeanList.length > 0">
            <div class="page_yxwl_list">
               <div class="page_yxwl_list_item" v-for="(item, index) in info.woScanMaterialBeanList" :key="index">
         <div class="page_yxwl_list" v-if="outboundList.length > 0">
            <div class="page_yxwl_list_item" v-for="(item, index) in outboundList" :key="index">
                  <div class="page_yxwl_list_item_top">
                     <!--                            <div class="page_yxwl_list_item_top_left" v-if="item.batch">{{item.materialName}} | {{item.materialCode}}|{{item.batch}}</div>-->
                     <div class="page_yxwl_list_item_top_left">{{item.materialName}} | {{item.materialCode}}
                     </div>
                  </div>
                  <div class="page_yxwl_list_item_sx">
                     <span class="green" v-if="item.qualityType === 0">合格&nbsp;<span>/</span>&nbsp;</span>
                     <span class="warning" v-else-if="item.qualityType === 1">不良&nbsp;<span>/</span>&nbsp;</span>
                     <span class="red" v-else-if="item.qualityType === 2">报废&nbsp;<span>/</span>&nbsp;</span>
                     <span>{{item.procedureName ? item.procedureName : '-'}}&nbsp;<span>/</span>&nbsp;</span>
                     <span>{{item.batch ? item.batch : '-'}}</span>
                  <span class="green" v-if="item.qualityType == 0">合格&nbsp;<span>/</span></span>
                  <span class="yellow" v-else-if="item.qualityType == 1">不良&nbsp;<span>/</span></span>
                  <span class="red" v-else-if="item.qualityType == 2">报废&nbsp;<span>/</span></span>
                  <span v-else>-&nbsp;/&nbsp;</span>
                  <span>&nbsp;{{ item.procedureName ? item.procedureName : '-' }}&nbsp;/&nbsp;</span>
                  <span>&nbsp;{{ item.batch ? item.batch : '-' }}</span>
                  </div>
                  <div class="page_yxwl_list_item_num">
                     <div class="dis">
                        <div class="item">
                           <div class="label">出库货位:</div>
                           <div class="nr">
                              <span>{{item.locationName ? item.locationName : '-'}}</span>
                        <span>{{ item.locationName }}</span>
                           </div>
                        </div>
                        <div class="items">
                  <div class="item">
                           <div class="label">数量:</div>
                           <div class="nr">
                              <input type="text" v-model="item.scanNum" placeholder="请输入" />
                        <!-- @input="changeNum(item)" -->
                        <input type="number" v-model="item.num" placeholder="请输入">
                              <span>{{item.unitName}}</span>
                           </div>
                        </div>
                     </div>
                     <div class="itemy" v-for="(item1, idx) in item.woutboundRedisCodeBeanList" :key="idx">
                        <div class="label">工装{{item1.scanCode}}:</div>
                        <div class="nr">{{item1.num}}{{item1.unitName}}</div>
                        <div class="dele" @click="dele(item1)">
                           <image src="../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image>
                  <div class="dele" @click="dele(index)">
                     <!-- <img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" /> -->
                     <image src="../../static/chuku_ic_delete@2x.png" class="img24" mode=""></image>
                        </div>
                     </div>
                  </div>
               </div>
            </div>
         </template>
         <!--        转库单(多个仓库)        -->
         <template v-else-if="route.query.type == 7 && seleMateriaList.length > 0">
            <!-- <template v-for="(item, index) in info.wtransferWarehouseList" :key="index"> -->
            <div class="page_yxwl_list">
               <div class="page_yxwl_list_item" v-for="(item1, idx) in seleMateriaList" :key="idx">
                  <div class="page_yxwl_list_item_top">
                     <!--                                <div class="page_yxwl_list_item_top_left" v-if="item1.batch">{{item1.materialName}} | {{item1.materialCode}}|{{item1.batch}}</div>-->
                     <div class="page_yxwl_list_item_top_left">{{item1.materialName}} | {{item1.materialCode}}
                     </div>
                  </div>
                  <div class="page_yxwl_list_item_sx">
                     <span class="green" v-if="item1.qualityType === 0">合格&nbsp;<span>/</span>&nbsp;</span>
                     <span class="yellow" v-else-if="item1.qualityType === 1">不良&nbsp;<span>/</span>&nbsp;</span>
                     <span class="red" v-else-if="item1.qualityType === 2">报废&nbsp;<span>/</span>&nbsp;</span>
                     <span>{{item1.procedureName ? item1.procedureName : '-'}}&nbsp;<span>/</span>&nbsp;</span>
                     <span>{{item1.batch ? item1.batch : '-'}}</span>
                  </div>
                  <div class="page_yxwl_list_item_num">
                     <div class="itemy">
                        <div class="itemy_item">
                           <div class="label">入库货位:</div>
                           <div class="nr">
                              <span>{{item1.locationName}}</span>
                           </div>
                        </div>
                        <div class="itemy_item">
                           <div class="label">数量:</div>
                           <div class="nr">
                              <!-- @input="inputNum(item1)"  -->
                              <input type="number" v-model="item1.outActnum" placeholder="请输入" />
                              <span>{{item1.unitName}}</span>
                           </div>
                        </div>
                        <!-- @click="dele()" -->
                        <div class="dele" @click="dele(idx)">
                           <image src="../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image>
                        </div>
                     </div>
                  </div>
               </div>
            </div>
            <!-- </template> -->
         </template>
         <div class="page_yxwl_kong" v-else>暂无数据</div>
      </div>
      <div class="page_zw"></div>
@@ -159,56 +157,124 @@
            <span>确认出库</span>
         </div>
      </div>
      <SelectMultipleMaterial ref="selectMultipleMaterial" />
      <SelectTraMultipleMaterial ref="selectTraMultipleMaterial" />
   </view>
</template>
<script>
   import InOutInfo from '@/components/InOutInfo.vue'
   import SelectMultipleMaterial from '@/components/SelectMultipleMaterial.vue'
   import { QRCodeType } from '@/common/config.js'
   import SelectTraMultipleMaterial from '@/components/SelectTraMultipleMaterial.vue'
   import {
      QRCodeType
   } from '@/common/config.js'
   import {
      outScanAppliances,
      wTransferForInOut,
      wTransferForInOutUpload,
      wOutBoundForInOut,
      wOutBoundForUpload,
      transferToOutNew
   } from '@/util/api/ExWarehouse'
   import {
      getDB
   } from '@/util/api/agencyAPI'
   import {
      logout
   } from '../../util/api'
   export default {
      components: {
         InOutInfo,
         SelectMultipleMaterial
         SelectTraMultipleMaterial
      },
      data() {
         return {
            type: '',
            id: '',
            dbid: '',
            isZKD: false,
            show: false,
            info: {
               outPlandate: '2022/02/14',
               originType: 1,
               wtransferRedisCodeBeanList: [],
               remark: 'Vue是前端开发中广泛使用的一个JavaScript框架,它可以让我们更轻松地管理页面的状态、渲染和交互。但是在编写Vue应用时,有时会遇到“SyntaxError: Unexpected token”报错,这个错误提示意味着代码中存在语法错误,JavaScript引擎无法解析,从而导致程序运行失败。本篇文章将介绍常见引起“SyntaxError: Unexpected token”的原因以及解决方法。'
            },
            warehouseId: '',
            ids: [],
            wtransferWarehouseList: [{
               warehouseName: '测试库'
            }]
            warehouseList: [{
            }],
            woutboundDetailsWait: [],
            outboundList: []
         };
      },
      onLoad(option) {
         this.type = option.type||'ZKD'
         this.type = option.type
         this.id = option.id
         this.isZKD = this.type==QRCodeType.ZKD
         // console.log(this.type, QRCodeType.ZKD, this.type==QRCodeType.ZKD);
         if (option.dbid) {
            this.getDBs(option.dbid)
         } else {
            this.getInfo()
         }
      },
      methods: {
         // 判断是否完成
         getDBs(dbid) {
            getDB(dbid)
               .then(res => {
                  let {
                     data
                  } = res
                  if (data.status == 1) {
                     // 已完成
                  } else {
                     this.getInfo()
                  }
               })
               .catch(err => {})
         },
         getInfo() {
            let infoAction
            let data = {
               id: this.id
            }
            if (this.type == QRCodeType.CKD) {
               infoAction = wOutBoundForInOut
               data.wOutboundType = '0'
            } else if (this.type == QRCodeType.ZKD) {
               infoAction = wTransferForInOut
               data.wTransferType = '0'
            }
            infoAction(data).then(res => {
               // this.warehouseId = this.info.wtransferWarehouseList[0].warehouseId
               console.log(this.type == QRCodeType.ZKD);
               if (this.isZKD) {
                  this.info = res.data.wtransfer
                  this.warehouseList = res.data.wtransferWarehouseList
               } else {
                  this.info = res.data.woutbound
                  this.woutboundDetailsWait = res.data.woutboundDetailsWait
               }
            }).catch(err => {
               uni.$u.toast(err)
               uni.navigateBack()
            })
         },
         change() {},
         close() {},
         open() {},
         openxz() {
           let arr = []
           if (this.info.wtransferRedisCodeBeanList.length !== 0) {
             this.info.wtransferRedisCodeBeanList.forEach(element => {
               arr.push(element.appliancesId)
            // let arr = []
            // if (this.info.wtransferRedisCodeBeanList.length !== 0) {
            //    this.info.wtransferRedisCodeBeanList.forEach(element => {
            //       arr.push(element.appliancesId)
            //    })
            //    this.ids = arr.join(',')
            // } else {
            //    this.ids = ''
            // }
            this.$refs.selectTraMultipleMaterial.open({
               transferId: this.id,
               warehouseId: this.warehouseId
             })
             this.ids = arr.join(',')
           } else {
             this.ids = ''
           }
          this.$refs.selectMultipleMaterial.open({})
         },
      }
   }