|
|
@@ -0,0 +1,468 @@
|
|
|
+<template>
|
|
|
+ <view>
|
|
|
+ <u-popup :show="show" mode='center' v-if='show' :closeOnClickOverlay='false'>
|
|
|
+
|
|
|
+ <view class="popup_box">
|
|
|
+
|
|
|
+ <view class="title_box rx-bc">
|
|
|
+ <view class="name">周转车 </view>
|
|
|
+ <view>数量: {{sum - count || 0}} </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <u-list @scrolltolower="scrolltolower" class="list_box">
|
|
|
+ <view v-for="(item, index) in newTurnover" :key='index'>
|
|
|
+
|
|
|
+
|
|
|
+ <view class="content_table">
|
|
|
+ <view class="item rx-sc">
|
|
|
+ <view class="rx ww50 ">
|
|
|
+ <view class="lable ww80 rx-cc ">编号</view>
|
|
|
+ <view class="content rx-sc">
|
|
|
+ <view>{{item.code}}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="rx ww50">
|
|
|
+ <view class="lable rx-cc ww80">名称</view>
|
|
|
+ <view class="content rx-sc">
|
|
|
+ <view>{{item.name}}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+
|
|
|
+ <view class="content_table2">
|
|
|
+ <view class="head row rx-sc">
|
|
|
+ <view class="item ww10">货位</view>
|
|
|
+ <view class="item ww30">工单编号</view>
|
|
|
+ <view class="item ww35">产品编码</view>
|
|
|
+ <view class="item ww25">数量</view>
|
|
|
+
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="table">
|
|
|
+ <u-list @scrolltolower="scrolltolower" class="z_list">
|
|
|
+ <view class="tr row rx-sc" v-for="(it, idx) in item.extInfo.positionList"
|
|
|
+ :key='idx'>
|
|
|
+ <view class="item ww10">{{it.code}}</view>
|
|
|
+ <view class="item ww30"
|
|
|
+ :class="{'color157': it.workOrderCode === wordItem.code}">
|
|
|
+ {{ it.workOrderCode }}
|
|
|
+ </view>
|
|
|
+ <view class="item ww35"
|
|
|
+ :class="{'color157': it.categoryCode === wordItem.productCode}">
|
|
|
+ {{it.categoryCode}}
|
|
|
+ </view>
|
|
|
+ <view class="item ww25 content_num">
|
|
|
+ <input class="uni-input" v-if='it.isFull == 0'
|
|
|
+ @input="quantInt(index, idx, it)" v-model="it.quantity"
|
|
|
+ type="digit"></input>
|
|
|
+ <text v-else>{{it.quantity}}</text>
|
|
|
+ </view>
|
|
|
+
|
|
|
+
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </u-list>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ </view>
|
|
|
+
|
|
|
+
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </view>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ </u-list>
|
|
|
+
|
|
|
+ <view class="operate_box rx-sc">
|
|
|
+ <u-button size="small" class="u-reset-button" @click="cancel">取消</u-button>
|
|
|
+ <u-button size="small" class="u-reset-button" type="success" @click="save">确定</u-button>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
+ </view>
|
|
|
+
|
|
|
+
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import {
|
|
|
+ scanLedger,
|
|
|
+ } from '@/api/pda/workOrder.js'
|
|
|
+ export default {
|
|
|
+ props: {
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ show: false,
|
|
|
+ wordInfo: {},
|
|
|
+ wordItem: {},
|
|
|
+ newTurnover: [],
|
|
|
+ idx: null,
|
|
|
+
|
|
|
+ sum: 0,
|
|
|
+ count: 0,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ scrolltolower() {},
|
|
|
+ open(result, wordInfo, newList, wordItem, index) {
|
|
|
+ this.wordInfo = wordInfo
|
|
|
+ this.wordItem = wordItem
|
|
|
+ this.idx = index
|
|
|
+
|
|
|
+
|
|
|
+ this.count = 0
|
|
|
+ this.sum = 0;
|
|
|
+ newList[0].extInfo.positionList.forEach(e => {
|
|
|
+ if (e.check) {
|
|
|
+ this.sum += Number(e.newQuantity);
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ let isFals = newList.some(m => m.code == result && m.isOld == 1)
|
|
|
+ if (isFals) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '周转车已存在',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ scanLedger(result).then(res => {
|
|
|
+ this.newTurnover = res
|
|
|
+ this.show = true
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ quantInt(index, idx, it) {
|
|
|
+ if (it.quantity >= 1) {
|
|
|
+ this.$set(this.newTurnover[index].extInfo.positionList[idx], 'workOrderCode', this.wordInfo
|
|
|
+ .workOrderCode)
|
|
|
+ this.$set(this.newTurnover[index].extInfo.positionList[idx], 'categoryCode', this.wordInfo
|
|
|
+ .categoryCode)
|
|
|
+
|
|
|
+ this.$set(this.newTurnover[index].extInfo.positionList[idx], 'numAdd', true)
|
|
|
+ this.countFn()
|
|
|
+
|
|
|
+ } else {
|
|
|
+ this.$set(this.newTurnover[index].extInfo.positionList[idx], 'workOrderCode', '')
|
|
|
+ this.$set(this.newTurnover[index].extInfo.positionList[idx], 'categoryCode', '')
|
|
|
+ this.$set(this.newTurnover[index].extInfo.positionList[idx], 'quantity', 0)
|
|
|
+ this.$set(this.newTurnover[index].extInfo.positionList[idx], 'numAdd', false)
|
|
|
+ this.countFn()
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ countFn() {
|
|
|
+
|
|
|
+
|
|
|
+ this.count = 0;
|
|
|
+ this.newTurnover[0].extInfo.positionList.forEach(e => {
|
|
|
+ if (e.numAdd) {
|
|
|
+
|
|
|
+ this.count += Number(e.quantity);
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ cancel() {
|
|
|
+ this.show = false
|
|
|
+ },
|
|
|
+
|
|
|
+ save() {
|
|
|
+ if (this.sum - this.count != 0) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '转移数量对应不上',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.$emit('saveTurn', this.idx, this.newTurnover)
|
|
|
+ this.show = false
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .popup_box {
|
|
|
+ width: 98vw;
|
|
|
+ min-height: 60vh;
|
|
|
+ max-height: 80vh;
|
|
|
+ padding: 16rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ overflow: hidden;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title_box {
|
|
|
+ margin-top: 20rpx;
|
|
|
+
|
|
|
+ .name {
|
|
|
+ font-size: 28rpx;
|
|
|
+ font-style: normal;
|
|
|
+ font-weight: 400;
|
|
|
+ color: $theme-color;
|
|
|
+ padding-left: 20rpx;
|
|
|
+
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ &:before {
|
|
|
+ position: absolute;
|
|
|
+ content: '';
|
|
|
+ left: 0rpx;
|
|
|
+ top: 0rpx;
|
|
|
+ bottom: 0rpx;
|
|
|
+ width: 4rpx;
|
|
|
+ height: 28rpx;
|
|
|
+ background: $theme-color;
|
|
|
+ margin: auto;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .left {
|
|
|
+ width: 40rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn_box {
|
|
|
+ padding: 0 18rpx;
|
|
|
+ height: 60rpx;
|
|
|
+ background: $theme-color;
|
|
|
+ font-size: 26rpx;
|
|
|
+ font-style: normal;
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #fff;
|
|
|
+ border-radius: 4rpx;
|
|
|
+
|
|
|
+ .scan {
|
|
|
+ width: 34rpx;
|
|
|
+ height: 34rpx;
|
|
|
+ margin-right: 12rpx;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ .content_table {
|
|
|
+ margin-top: 8rpx;
|
|
|
+ width: 100%;
|
|
|
+ border: 2rpx solid $border-color;
|
|
|
+
|
|
|
+ .item {
|
|
|
+ display: flex;
|
|
|
+ border-bottom: 2rpx solid $border-color;
|
|
|
+
|
|
|
+ .lable {
|
|
|
+ width: 132rpx;
|
|
|
+ text-align: center;
|
|
|
+ background-color: #F7F9FA;
|
|
|
+ font-size: 26rpx;
|
|
|
+ border-right: 2rpx solid $border-color;
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ .ww80 {
|
|
|
+ width: 80rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ww50 {
|
|
|
+ width: 50%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .content {
|
|
|
+ width: 518rpx;
|
|
|
+ min-height: 64rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ line-height: 28rpx;
|
|
|
+ font-style: normal;
|
|
|
+ font-weight: 400;
|
|
|
+ padding: 2rpx 8rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ word-wrap: break-word;
|
|
|
+ flex-grow: 1 !important;
|
|
|
+ font-size: 24rpx;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ .content_table2 {
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+
|
|
|
+ .row {
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+
|
|
|
+ .item {
|
|
|
+
|
|
|
+ color: #404446;
|
|
|
+ font-size: 28rpx;
|
|
|
+ padding-left: 12rpx;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .color157 {
|
|
|
+ color: $theme-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ww20 {
|
|
|
+ width: 20%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ww35 {
|
|
|
+ width: 35%;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .ww15 {
|
|
|
+ width: 15%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ww25 {
|
|
|
+ width: 25%;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ .ww30 {
|
|
|
+ width: 30%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ww15 {
|
|
|
+ width: 15%;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ .ww10 {
|
|
|
+ width: 10%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .head {
|
|
|
+ height: 64rpx;
|
|
|
+ background: #F7F9FA;
|
|
|
+ border-top: 2rpx solid #E3E5E5;
|
|
|
+ border-left: 2rpx solid #E3E5E5;
|
|
|
+
|
|
|
+ .item {
|
|
|
+ height: 64rpx;
|
|
|
+ line-height: 64rpx;
|
|
|
+ border-right: 2rpx solid #E3E5E5;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ .tr {
|
|
|
+ border-top: 2rpx solid #E3E5E5;
|
|
|
+ border-left: 2rpx solid #E3E5E5;
|
|
|
+
|
|
|
+
|
|
|
+ .item {
|
|
|
+ font-size: 24rpx;
|
|
|
+ min-height: 64rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ border-right: 2rpx solid #E3E5E5;
|
|
|
+ box-sizing: border-box;
|
|
|
+ white-space: normal;
|
|
|
+ word-break: break-all;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ border-bottom: 2rpx solid #E3E5E5;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ .content_num {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding: 0 4rpx;
|
|
|
+
|
|
|
+ /deep/ .uni-input-input {
|
|
|
+ border: 2rpx solid #F0F8F2;
|
|
|
+ background: #F0F8F2;
|
|
|
+ color: $theme-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .check {
|
|
|
+ width: 40rpx;
|
|
|
+ height: 40rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .isend {
|
|
|
+ text-decoration: line-through;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ .list_box {
|
|
|
+ flex: 1;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .operate_box {
|
|
|
+ padding: 10rpx 160rpx;
|
|
|
+
|
|
|
+ /deep/ .u-button {
|
|
|
+ width: 160rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .z_list {
|
|
|
+ max-height: 500rpx;
|
|
|
+ }
|
|
|
+</style>
|