| | |
| | | <template> |
| | | <page-meta :page-style="ban ?'overflow: hidden;': ''"/> |
| | | <view> |
| | | <InOutInfo :info="info" /> |
| | | <uni-collapse @change="change" @close="close" @open="open"> |
| | | <uni-collapse-item :open="item1.wtransferDetailList.length" v-if="type==7" v-for="(item1, index) in warehouseList" :key="index"> |
| | | <uni-collapse-item :open="item1.wtransferDetailList.length" 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>{{ item1.warehouseName }}</view> |
| | |
| | | <span>待出<span>{{ item.outPlannum }}</span> {{ item.unitName }}</span> |
| | | </div> |
| | | <div class="page_content_title_bottom"> |
| | | <span class="green" v-if="item.qualityType === 0">合格 <span |
| | | class="black">/</span> </span> |
| | | <span class="warning" v-else-if="item.qualityType === 1">不良 <span |
| | | class="black">/</span> </span> |
| | | <span class="error" v-else-if="item.qualityType === 2">报废 <span |
| | | class="black">/</span> </span> |
| | | <span v-else>- / </span> |
| | | <span>{{item.procedureName ? item.procedureName : '-'}} / </span> |
| | | <span class="green" v-if="item.qualityType === 0">合格<text class="c6" decode>{{ split}}</text></span> |
| | | <span class="warning" v-else-if="item.qualityType === 1">不良<text class="c6" decode>{{ split}}</text></span> |
| | | <span class="error" v-else-if="item.qualityType === 2">报废<text class="c6" decode>{{ split}}</text></span> |
| | | <span v-else>-<text class="c6" decode>{{ split}}</text></span> |
| | | <span>{{item.procedureName || '-'}}<text class="c6" decode>{{ split}}</text></span> |
| | | <span>{{item.batch ? item.batch : '-'}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content_list" v-for="(childer, idxs) in item.wstockExtListVOList" v-if="childer.batch == item.batch" :key="idxs"> |
| | | <div class="page_content_list" v-for="(childer, idxs) in item.wstockExtListVOList" :key="idxs"> |
| | | <div class="page_content_list_item"> |
| | | <div class="page_content_list_item_label">出库货位:</div> |
| | | <div class="page_content_list_item_nr">{{ childer.locationName }}</div> |
| | |
| | | <span>待出 <span>{{ item.num }}</span> {{ item.unitName }}</span> |
| | | </div> |
| | | <div class="page_content_title_bottom"> |
| | | <span class="green" v-if="item.qualityType === 0">合格 <span |
| | | class="black">/</span> </span> |
| | | <span class="warning" v-else-if="item.qualityType === 1">不良 <span |
| | | class="black">/</span> </span> |
| | | <span class="error" v-else-if="item.qualityType === 2">报废 <span |
| | | class="black">/</span> </span> |
| | | <span v-else>- / </span> |
| | | <span>{{item.procedureName ? item.procedureName : '-'}} / </span> |
| | | <span class="green" v-if="item.qualityType === 0">合格<text class="c6" decode>{{ split}}</text></span> |
| | | <span class="warning" v-else-if="item.qualityType === 1">不良<text class="c6" decode>{{ split}}</text></span> |
| | | <span class="error" v-else-if="item.qualityType === 2">报废<text class="c6" decode>{{ split}}</text></span> |
| | | <span v-else>-<text class="c6" decode>{{ split}}</text></span> |
| | | <span>{{item.procedureName ? item.procedureName : '-'}}<text class="c6" decode>{{ split}}</text></span> |
| | | <span>{{item.batch ? item.batch : '-'}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content_list" v-for="(items, ind) in item.wstockExtListVOList" v-if="items.batch == item.batch" :key="ind"> |
| | | <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">批次号1:</div> |
| | | <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> |
| | | |
| | | <div class="right" v-if="isZKD" @click="openxz"> |
| | | <image src="../../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>手动出库</span> |
| | | <image src="../../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image> |
| | | <span>手动出库</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_yxwl_list" v-if="outboundList.length > 0"> |
| | |
| | | |
| | | </div> |
| | | <div class="page_yxwl_list_item_sx"> |
| | | <span class="green" v-if="item.qualityType == 0">合格 <span>/</span></span> |
| | | <span class="yellow" v-else-if="item.qualityType == 1">不良 <span>/</span></span> |
| | | <span class="red" v-else-if="item.qualityType == 2">报废 <span>/</span></span> |
| | | <span v-else>- / </span> |
| | | <span> {{ item.procedureName ? item.procedureName : '-' }} / </span> |
| | | <span> {{ item.batch ? item.batch : '-' }}</span> |
| | | <span class="green" v-if="item.qualityType == 0">合格<text class="c6" decode>{{ split}}</text></span> |
| | | <span class="yellow" v-else-if="item.qualityType == 1">不良<text class="c6" decode>{{ split}}</text></span> |
| | | <span class="red" v-else-if="item.qualityType == 2">报废<text class="c6" decode>{{ split}}</text></span> |
| | | <span v-else>-<text class="c6" decode>{{ split}}</text></span> |
| | | <span>{{ item.procedureName ? item.procedureName : '-' }}<text class="c6" decode>{{ split}}</text></span> |
| | | <span>{{ item.batch ? item.batch : '-' }}</span> |
| | | </div> |
| | | <div class="page_yxwl_list_item_num"> |
| | | <div class="item"> |
| | |
| | | <span>{{ item.locationName }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="item f24"> |
| | | <div class="label">数量:</div> |
| | | <div class="nr"> |
| | | <!-- @input="changeNum(item)" --> |
| | |
| | | </div> |
| | | <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> |
| | | <image src="../../../static/chuku_ic_delete@2x.png" class="img48" mode=""></image> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <span>确认出库</span> |
| | | </div> |
| | | </div> |
| | | <SelectTraMultipleMaterial ref="selectTraMultipleMaterial" @selectes="selectMaterail" /> |
| | | <SelectTraMultipleMaterial ref="selectTraMultipleMaterial" @close="ban = false" @selectes="selectMaterail" /> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | SelectTraMultipleMaterial |
| | | }, |
| | | data() { |
| | | |
| | | return { |
| | | ban: false, |
| | | type: '', |
| | | id: '', |
| | | dbid: '', |
| | |
| | | info: { |
| | | |
| | | }, |
| | | split: ' / ', |
| | | mainOrder: '', |
| | | warehouseId: '', |
| | | ids: [], |
| | |
| | | close() {}, |
| | | open() {}, |
| | | openxz() { |
| | | this.ban = true |
| | | this.$refs.selectTraMultipleMaterial.open({ |
| | | transferId: this.id, |
| | | warehouseId: this.warehouseId |
| | | }) |
| | | }, |
| | | selectMaterail(v) { |
| | | this.ban = false |
| | | let tempList = this.warehouseList[0].wtransferDetailList |
| | | let materials = v.materials |
| | | |
| | | materials.forEach(materail => { |
| | | |
| | | tempList.forEach(item => { |
| | | let materials = JSON.parse(JSON.stringify(v.materials)) |
| | | tempList.forEach(item => { |
| | | let isOutList = false |
| | | this.outboundList.forEach(selected => { |
| | | if (selected.newId == item.id) { |
| | | isOutList = true |
| | | return |
| | | } |
| | | }) |
| | | if (!isOutList) { |
| | | item.wstockExtListVOList.forEach(hw => { |
| | | if (materail.materialId == hw.materialId && materail.procedureId == hw |
| | | .procedureId && materail.qualityType == hw.qualityType && materail.batch == |
| | | hw.batch) { |
| | | let isExist = false |
| | | this.outboundList.forEach(selected => { |
| | | if (selected.newId == item.id) { |
| | | isExist = true |
| | | materials.forEach((materail, index) => { |
| | | if (hw.materialId == materail.materialId && |
| | | hw.procedureId == materail.procedureId && |
| | | hw.qualityType == materail.qualityType && |
| | | hw.locationId == materail.locationId && |
| | | hw.batch == materail.batch |
| | | ) { |
| | | this.addToOutList(materail, item) |
| | | materials.splice(index, 1) |
| | | return |
| | | } |
| | | }) |
| | | if (isExist) { |
| | | uni.$u.toast('该物料已存在') |
| | | return |
| | | } |
| | | let obj = JSON.parse(JSON.stringify(materail)) |
| | | obj.newId = item.id |
| | | this.outboundList.push(obj) |
| | | } |
| | | }) |
| | | }) |
| | | |
| | | }) |
| | | |
| | | // if (item.batch) { |
| | | // // 精确匹配 |
| | | // if (materail.materialId == item.materialId && |
| | | // materail.procedureId == item.procedureId && |
| | | // materail.qualityType == item.qualityType && |
| | | // materail.batch == item.batch |
| | | // ) { |
| | | // this.addToOutList(materail, item) |
| | | // materials.splice(index, 1) |
| | | // return |
| | | // } |
| | | // } else { |
| | | // if (materail.materialId == item.materialId && |
| | | // materail.procedureId == item.procedureId && |
| | | // materail.qualityType == item.qualityType |
| | | // ) { |
| | | // this.addToOutList(materail, item) |
| | | // materials.splice(index, 1) |
| | | // return |
| | | // } |
| | | // } |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | addToOutList(materail, item) { |
| | | let isExist = false |
| | | this.outboundList.forEach(selected => { |
| | | if (selected.newId == materail.id) { |
| | | isExist = true |
| | | return |
| | | } |
| | | }) |
| | | if (isExist) { |
| | | uni.$u.toast('该物料已存在') |
| | | } else { |
| | | let obj = JSON.parse(JSON.stringify(materail)) |
| | | obj.newId = item.id |
| | | this.outboundList.push(obj) |
| | | console.log(this.outboundList); |
| | | } |
| | | }, |
| | | dele(index) { |
| | | this.outboundList.splice(index, 1) |
| | | this.outboundList.splice(index, 1) |
| | | }, |
| | | submit() { |
| | | if (this.type == QRCodeType.ZKD) { |
| | |
| | | if (res.code === 200) { |
| | | this.$store.dispatch('getUpcomingNum') |
| | | uni.$u.toast('操作成功') |
| | | uni.$emit('success') |
| | | uni.redirectTo({ |
| | | url: `/pages_adjust/pages/warehousingDetails/warehousingDetails?id=${this.id}&dbid=${this.dbid}` |
| | | }) |
| | |
| | | if (res.code === 200) { |
| | | this.$store.dispatch('getUpcomingNum') |
| | | uni.$u.toast('操作成功') |
| | | uni.$emit('success') |
| | | uni.redirectTo({ |
| | | url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.id}` |
| | | }) |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | margin-top: 15rpx; |
| | | font-size: 24rpx; |
| | | } |
| | | |
| | | .page_yxwl_list_item_num { |
| | | display: flex; |
| | | position: relative; |
| | | margin-top: 36rpx; |
| | | |
| | | &:first-child { |
| | | margin-top: 0; |
| | | } |
| | | |
| | | .dele { |
| | | position: absolute; |
| | | right: -30rpx; |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | |
| | | img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | |
| | | .item { |
| | | width: 50%; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .label { |
| | | flex-shrink: 0; |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .nr { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | input { |
| | | width: 130rpx; |
| | | height: 40rpx; |
| | | border-radius: 8rpx; |
| | | border: 1rpx solid #E5E5E5; |
| | | margin-right: 10rpx; |
| | | } |
| | | |
| | | span { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | display: flex; |
| | | position: relative; |
| | | margin-top: 36rpx; |
| | | |
| | | &:first-child { |
| | | margin-top: 0; |
| | | } |
| | | |
| | | .dele { |
| | | position: absolute; |
| | | right: -30rpx; |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | |
| | | img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | |
| | | .item { |
| | | width: 50%; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .label { |
| | | flex-shrink: 0; |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .nr { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | input { |
| | | width: 130rpx; |
| | | height: 40rpx; |
| | | border-radius: 8rpx; |
| | | border: 1rpx solid #E5E5E5; |
| | | margin-right: 10rpx; |
| | | } |
| | | |
| | | span { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | left: 30rpx; |
| | | padding-bottom: 68rpx; |
| | | z-index: 9999; |
| | | |
| | | .page_footer_qr { |
| | | flex: 1; |
| | | height: 88rpx; |