| | |
| | | <template>
|
| | | <view class="has-foot">
|
| | | <form>
|
| | | <view class="cu-form-group margin-top" v-show="!isconfirm">
|
| | | <view class="title">ASN单号</view>
|
| | | <input placeholder="请扫描ASN单号" v-model="asncode" focus></input>
|
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="asncode!==''" @click="clearCode"></text>
|
| | | <!-- <text class='cuIcon-search text-blue' @click="search"></text> -->
|
| | | </view>
|
| | | <view class="cu-form-group" v-show="!isconfirm">
|
| | | <view class="title">物料编码</view>
|
| | | <input placeholder="请扫描物料编码" v-model="barcode"></input>
|
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearBarcode"></text>
|
| | | <text class='cuIcon-search text-blue' @click="search"></text>
|
| | | </view>
|
| | | </form>
|
| | | <view class="padding-lr margin-top-sm">
|
| | | <block v-for="(item, index) in list" :key="index">
|
| | | <view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.barcode===barcode&&'act']"
|
| | | :ref="item.barcode+'ref'">
|
| | | <view class="cu-bar bg-white solid-bottom ">
|
| | | <view class="action">
|
| | | <view class="index">
|
| | | {{index+1}}
|
| | | </view>
|
| | | <view class="text-blue">
|
| | | 编码:
|
| | | {{`${item.matnr}`}}
|
| | | </view>
|
| | | </view>
|
| | | <view class="action" v-if="!isconfirm">
|
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">ASN:</text>
|
| | | <text class="text-grey ">{{item.asnCode}}</text>
|
| | | </view>
|
| | | <view class="action">
|
| | |
|
| | | </view>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">物料名称:</text>
|
| | | <text class="text-grey ">{{item.maktx}}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <!-- <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">供应商批次:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.splrBatch}}</text>
|
| | | </view>
|
| | | </view> -->
|
| | |
|
| | | <!-- <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">最大库存: <text class="text-grey ">{{item.maxQty}}</text></text>
|
| | | </view>
|
| | | <view class="content">
|
| | | <text class="text-black">实时库存: <text class="text-grey ">{{item.stockQty}}</text></text>
|
| | | </view>
|
| | | </view> -->
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">行号: <text class="text-grey ">{{item.platItemId}}</text></text>
|
| | | </view>
|
| | | <view class="content">
|
| | | <text class="text-black">质检结果: <text class="text-grey ">{{item.inspect}}</text></text>
|
| | | </view>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">采购单位:<text class="text-grey ">{{item.purUnit}}</text></text>
|
| | | </view>
|
| | | <!-- <view class="content">
|
| | | <text class="text-black">库存单位: <text class="text-grey ">{{item.stockUnit}}</text></text>
|
| | | </view> -->
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="black">计划收货数量:<text class="text-grey ">{{item.anfme}}</text></text>
|
| | | </view>
|
| | |
|
| | | <view class="content">
|
| | | <text class="black">已收货数量:<text class="text-grey ">{{item.qty}}</text></text>
|
| | | </view>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <view class="content" v-if="!isconfirm">
|
| | | <view class="cu-form-group padding-lr-0">
|
| | | <view class="title text-blue"><text
|
| | | class="text-red text-xl vertical-middle">*</text>收货数量:</view>
|
| | | <uni-number-box style="width: 70%;" :max="max" v-model="item.receiptQty"
|
| | | :step='1'></uni-number-box>
|
| | | </view>
|
| | | </view>
|
| | | <view class="content" v-else>
|
| | | <text class="text-black">收货数量:<text class="text-grey ">{{item.receiptQty}}</text></text>
|
| | | </view>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | |
|
| | | <view class="content">
|
| | | <text class="text-black">批次:<text class="text-grey ">{{item.splrBatch}}</text></text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content" v-if="!isconfirm">
|
| | | <view class="cu-form-group padding-lr-0">
|
| | | <view class="title text-blue">生产日期:</view>
|
| | | <picker mode="date" v-model="item.prodTime" @change="DateChange($event,item)"
|
| | | placeholder="请输入生产日期">
|
| | | <view class="picker text-left">
|
| | | {{item.prodTime|| '请选择日期'}}
|
| | | </view>
|
| | | </picker>
|
| | | </view>
|
| | | </view>
|
| | | <view class="content" v-else>
|
| | | <text class="text-black">生产日期:<text class="text-grey ">{{item.prodTime}}</text></text>
|
| | | </view>
|
| | | </view>
|
| | | <!-- <view class="cu-item grid col-1" v-if="!isconfirm">
|
| | | <view v-for="el in dynamicFields" :key="el.id">
|
| | | <view class="cu-form-group padding-lr-0">
|
| | | <view class="title text-blue">{{el.fieldsAlise}}:</view>
|
| | | <input :placeholder='`请输入${el.fieldsAlise}`' v-model="item[el.fields]"></input>
|
| | | </view>
|
| | | </view>
|
| | | </view> -->
|
| | | <view class="cu-item grid col-2" v-if="item.extendFields">
|
| | | <view class="item" v-for="el in dynamicFields" :key="el.id">
|
| | | <text class="text-black">{{el.fieldsAlise}}:
|
| | | <text class="text-grey ">{{item.extendFields[el.fields]}}</text></text>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </block>
|
| | | </view>
|
| | |
|
| | | <view class="text-blue text-right padding-lr " v-show="isconfirm">
|
| | | 本次收货总数量:{{allCount}}
|
| | | </view>
|
| | |
|
| | | <view class="cu-form-group margin-bottom">
|
| | | <view class="title">收货区</view>
|
| | | <view style="width: 80%;">
|
| | | <uni-data-select style="min-width: 90%; max-width: 90%;" v-model="whAreaId" :localdata="range"
|
| | | placement="top" @change="selChange"></uni-data-select>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-bar btn-group foot" v-show="!isconfirm">
|
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button>
|
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">下一步</button>
|
| | | </view>
|
| | |
|
| | | <view class="cu-bar btn-group foot" v-show="isconfirm">
|
| | | <button class="cu-btn text-blue line-blue shadow" @click="prev">上一步</button>
|
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm(false)">收货</button>
|
| | | </view>
|
| | |
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | request
|
| | | } from '../../common/request.js'
|
| | | import {
|
| | | mapState,
|
| | | mapMutations,
|
| | | mapActions,
|
| | | mapGetters
|
| | | } from 'vuex';
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | asncode: '',
|
| | | barcode: '',
|
| | | whAreaId: '',
|
| | | list: [],
|
| | | range: [],
|
| | | repeatClick: false,
|
| | | isconfirm: false,
|
| | | max: 99999999,
|
| | | }
|
| | | },
|
| | | computed: {
|
| | | ...mapState('user', ['dynamicFields']),
|
| | | ...mapState('user', {
|
| | | dynFields: state => state.dynamicFields
|
| | | }),
|
| | | allCount() {
|
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0)
|
| | | }
|
| | |
|
| | | },
|
| | | mounted() {
|
| | | this.getRece()
|
| | | this.whAreaId = uni.getStorageSync('whAreaId')
|
| | | },
|
| | | methods: {
|
| | | async search() {
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/orders/other', {
|
| | | asnCode: this.asncode,
|
| | | matnrCode: this.barcode
|
| | | })
|
| | | if (code === 200) {
|
| | | this.list = data
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | position: 'top'
|
| | | })
|
| | | }
|
| | | },
|
| | |
|
| | | clearCode() {
|
| | | this.asncode = ''
|
| | | },
|
| | | clearBarcode() {
|
| | | this.barcode = ''
|
| | | },
|
| | | scrollTo() {
|
| | |
|
| | | // const ref = this.$refs[`${this.barcode}ref`][0];
|
| | | // uni.pageScrollTo({
|
| | | // scrollTop: ref.$el.offsetTop,
|
| | | // duration: 300
|
| | | // })
|
| | | },
|
| | | remove(index) {
|
| | | this.list.splice(index, 1);
|
| | | },
|
| | | clear() {
|
| | | this.list = []
|
| | | this.barcode = ''
|
| | | this.asncode = ''
|
| | | this.whAreaId = ''
|
| | | this.range = []
|
| | | },
|
| | | next() {
|
| | | if (this.list.length) {
|
| | | this.isconfirm = true
|
| | | } else {
|
| | | uni.showToast({
|
| | | icon: "none",
|
| | | title: '未选物料标签'
|
| | | })
|
| | | }
|
| | | },
|
| | | prev() {
|
| | | this.isconfirm = false
|
| | | },
|
| | | selChange(val) {
|
| | | uni.setStorageSync('whAreaId', val)
|
| | | },
|
| | | async complete(id) {
|
| | | this.repeatClick = true
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/complete/' + id)
|
| | | if (code === 200) {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | })
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | })
|
| | | }
|
| | | this.repeatClick = false
|
| | | },
|
| | | async confirm(isCom) {
|
| | | if (this.whAreaId === '') {
|
| | | uni.showToast({
|
| | | icon: "none",
|
| | | title: '请选择收货区'
|
| | | })
|
| | | } else {
|
| | | console.log(this.dynFields)
|
| | | const newArr = this.list.map(item => {
|
| | | return {
|
| | | ...item,
|
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty,
|
| | | // extendFields: this.dynFields.filter(el => el.unique == 1).map(exf => {
|
| | | // return {
|
| | | // [`${exf.fields}`]: item[exf.fields]
|
| | | // }
|
| | | // }).filter(field => Object.values(field)[0] != undefined)
|
| | | };
|
| | | }).filter(el => el.receiptQty !== 0);
|
| | |
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/orders/confirm', {
|
| | | receipts: newArr,
|
| | | whAreaId: this.whAreaId
|
| | | })
|
| | | if (code === 200) {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | })
|
| | | this.list = []
|
| | | this.barcode = ''
|
| | | this.isconfirm = false
|
| | | isCom && this.complete(data.id)
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | })
|
| | | }
|
| | | }
|
| | | },
|
| | | async getRece() { |
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/areas/receipt', {}, 'get')
|
| | | if (code === 200) {
|
| | | this.range = data.map(item => ({
|
| | | value: item.id,
|
| | | text: item.warehouseId$ + "-- " + item.name
|
| | | }));
|
| | | }
|
| | | },
|
| | | DateChange(e, item) {
|
| | | item.prodTime = e.detail.value
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style>
|
| | | .index {
|
| | | border: 1px solid #e54d42;
|
| | | color: #e54d42;
|
| | | border-radius: 50%;
|
| | | display: block;
|
| | | width: 50rpx;
|
| | | height: 50rpx;
|
| | | line-height: 48rpx;
|
| | | text-align: center;
|
| | | margin-right: 20rpx;
|
| | | font-size: 30rpx;
|
| | | }
|
| | |
|
| | | .act {
|
| | | border: 1px solid #e54d42;
|
| | | }
|
| | |
|
| | | .text-blue {
|
| | | color: #0081ff !important;
|
| | |
|
| | | }
|
| | |
|
| | | .item {
|
| | | position: relative;
|
| | | display: flex;
|
| | | min-height: 80upx;
|
| | | align-items: center;
|
| | | }
|
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="cu-form-group margin-top" v-show="!isconfirm"> |
| | | <view class="title">WMS单号</view> |
| | | <input placeholder="请扫描WMS单号" v-model="asncode" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="asncode!==''" @click="clearCode"></text> |
| | | <!-- <text class='cuIcon-search text-blue' @click="search"></text> --> |
| | | </view> |
| | | <view class="cu-form-group" v-show="!isconfirm"> |
| | | <view class="title">物料编码</view> |
| | | <input placeholder="请扫描物料编码" v-model="barcode"></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearBarcode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | <view class="padding-lr margin-top-sm"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.barcode===barcode&&'act']" |
| | | :ref="item.barcode+'ref'"> |
| | | <view class="cu-bar bg-white solid-bottom "> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | <view class="text-blue"> |
| | | 编码: |
| | | {{`${item.matnr}`}} |
| | | </view> |
| | | </view> |
| | | <view class="action" v-if="!isconfirm"> |
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">ASN:</text> |
| | | <text class="text-grey ">{{item.asnCode}}</text> |
| | | </view> |
| | | <view class="action"> |
| | | |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">物料名称:</text> |
| | | <text class="text-grey ">{{item.maktx}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">供应商批次:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.splrBatch}}</text> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">最大库存: <text class="text-grey ">{{item.maxQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-black">实时库存: <text class="text-grey ">{{item.stockQty}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">行号: <text class="text-grey ">{{item.platItemId}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-black">质检结果: <text class="text-grey ">{{item.inspect}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">采购单位:<text class="text-grey ">{{item.purUnit}}</text></text> |
| | | </view> |
| | | <!-- <view class="content"> |
| | | <text class="text-black">库存单位: <text class="text-grey ">{{item.stockUnit}}</text></text> |
| | | </view> --> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="black">计划收货数量:<text class="text-grey ">{{item.anfme}}</text></text> |
| | | </view> |
| | | |
| | | <view class="content"> |
| | | <text class="black">已收货数量:<text class="text-grey ">{{item.qty}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content" v-if="!isconfirm"> |
| | | <view class="cu-form-group padding-lr-0"> |
| | | <view class="title text-blue"><text |
| | | class="text-red text-xl vertical-middle">*</text>收货数量:</view> |
| | | <uni-number-box style="width: 70%;" :max="max" v-model="item.receiptQty" |
| | | :step='1'></uni-number-box> |
| | | </view> |
| | | </view> |
| | | <view class="content" v-else> |
| | | <text class="text-black">收货数量:<text class="text-grey ">{{item.receiptQty}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | |
| | | <view class="content"> |
| | | <text class="text-black">批次:<text class="text-grey ">{{item.splrBatch}}</text></text> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content" v-if="!isconfirm"> |
| | | <view class="cu-form-group padding-lr-0"> |
| | | <view class="title text-blue">生产日期:</view> |
| | | <picker mode="date" v-model="item.prodTime" @change="DateChange($event,item)" |
| | | placeholder="请输入生产日期"> |
| | | <view class="picker text-left"> |
| | | {{item.prodTime|| '请选择日期'}} |
| | | </view> |
| | | </picker> |
| | | </view> |
| | | </view> |
| | | <view class="content" v-else> |
| | | <text class="text-black">生产日期:<text class="text-grey ">{{item.prodTime}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item grid col-1" v-if="!isconfirm"> |
| | | <view v-for="el in dynamicFields" :key="el.id"> |
| | | <view class="cu-form-group padding-lr-0"> |
| | | <view class="title text-blue">{{el.fieldsAlise}}:</view> |
| | | <input :placeholder='`请输入${el.fieldsAlise}`' v-model="item[el.fields]"></input> |
| | | </view> |
| | | </view> |
| | | </view> --> |
| | | <view class="cu-item grid col-2" v-if="item.extendFields"> |
| | | <view class="item" v-for="el in dynamicFields" :key="el.id"> |
| | | <text class="text-black">{{el.fieldsAlise}}: |
| | | <text class="text-grey ">{{item.extendFields[el.fields]}}</text></text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | <view class="text-blue text-right padding-lr " v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group margin-bottom"> |
| | | <view class="title">收货区</view> |
| | | <view style="width: 80%;"> |
| | | <uni-data-select style="min-width: 90%; max-width: 90%;" v-model="whAreaId" :localdata="range" |
| | | placement="top" @change="selChange"></uni-data-select> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">下一步</button> |
| | | </view> |
| | | |
| | | <view class="cu-bar btn-group foot" v-show="isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="prev">上一步</button> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm(false)">收货</button> |
| | | </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | asncode: '', |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | repeatClick: false, |
| | | isconfirm: false, |
| | | max: 99999999, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | ...mapState('user', { |
| | | dynFields: state => state.dynamicFields |
| | | }), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | |
| | | }, |
| | | mounted() { |
| | | this.getRece() |
| | | this.whAreaId = uni.getStorageSync('whAreaId') |
| | | }, |
| | | methods: { |
| | | async search() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/other', { |
| | | asnCode: this.asncode, |
| | | matnrCode: this.barcode |
| | | }) |
| | | if (code === 200) { |
| | | this.list = data |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | clearCode() { |
| | | this.asncode = '' |
| | | }, |
| | | clearBarcode() { |
| | | this.barcode = '' |
| | | }, |
| | | scrollTo() { |
| | | |
| | | // const ref = this.$refs[`${this.barcode}ref`][0]; |
| | | // uni.pageScrollTo({ |
| | | // scrollTop: ref.$el.offsetTop, |
| | | // duration: 300 |
| | | // }) |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.asncode = '' |
| | | this.whAreaId = '' |
| | | this.range = [] |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async complete(id) { |
| | | this.repeatClick = true |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/complete/' + id) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | this.repeatClick = false |
| | | }, |
| | | async confirm(isCom) { |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | console.log(this.dynFields) |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty, |
| | | // extendFields: this.dynFields.filter(el => el.unique == 1).map(exf => { |
| | | // return { |
| | | // [`${exf.fields}`]: item[exf.fields] |
| | | // } |
| | | // }).filter(field => Object.values(field)[0] != undefined) |
| | | }; |
| | | }).filter(el => el.receiptQty !== 0); |
| | | |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | isCom && this.complete(data.id) |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | async getRece() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/areas/receipt', {}, 'get') |
| | | if (code === 200) { |
| | | this.range = data.map(item => ({ |
| | | value: item.id, |
| | | text: item.warehouseId$ + "-- " + item.name |
| | | })); |
| | | } |
| | | }, |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .act { |
| | | border: 1px solid #e54d42; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | </style> |