From 3e4321e342c1b009dbeea6b186d148148529756a Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 03 三月 2026 08:27:26 +0800
Subject: [PATCH] 单号调整
---
pages/listing/matnrPalletising.vue | 18
locale/zh-Hans.json | 2
pages/inspect/report.vue | 356 ++++++++--------
checkOrder.vue | 2
pages/rece/other.vue | 768 +++++++++++++++++++-------------------
5 files changed, 573 insertions(+), 573 deletions(-)
diff --git a/checkOrder.vue b/checkOrder.vue
index b3c71d4..f6f093b 100644
--- a/checkOrder.vue
+++ b/checkOrder.vue
@@ -148,7 +148,7 @@
if (code === 200) {
if (Object.keys(data).length === 0){
uni.showToast({
- title: "鏈煡璇㈠埌娉㈡鏁版嵁",
+ title: "鏈煡璇㈠埌鏁版嵁",
icon: "none",
position: 'top'
})
diff --git a/locale/zh-Hans.json b/locale/zh-Hans.json
index 5907f10..1efd4ce 100644
--- a/locale/zh-Hans.json
+++ b/locale/zh-Hans.json
@@ -41,7 +41,7 @@
"modifyBind": "浠诲姟鏄庣粏鎹㈢粦"
},
"other":{
- "asnNo":"ASN鍗曞彿"
+ "asnNo":"WMS鍗曞彿"
}
diff --git a/pages/inspect/report.vue b/pages/inspect/report.vue
index 96dc40b..9b144b1 100644
--- a/pages/inspect/report.vue
+++ b/pages/inspect/report.vue
@@ -1,179 +1,179 @@
-<template>
- <view class="has-foot">
- <form>
- <view class="cu-form-group ">
- <view class="title">ASN鍗曞彿</view>
- <input placeholder="閫夋嫨ASN鍗曞彿" v-model="asnCode"></input>
- <text class='cuIcon-search text-blue' @click="search"></text>
- </view>
- </form>
-
- <view class="flex solid-bottom padding-sm justify-between">
- <view class="text-blue">SKU鏁伴噺:{{list.length}}</view>
- </view>
-
- <view class="cu-list det menu sm-border padding">
- <block v-for="(item, index) in list" :key="index">
- <view class="cu-bar bg-white solid-bottom margin-top-sm">
- <view class="action">
- <view class="index">
- {{index+1}}
- </view>
- <view class="text-blue">
- {{`${item.maktx}`}}
- </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">閲囪喘鍗曚綅: <text class="text-grey ">{{item.purUnit}}</text></text>
- </view>
- <view class="content">
- <text class="text-black">閲囪喘鏁伴噺: <text class="text-grey ">{{item.purQty}}</text></text>
- </view>
- </view>
-
- <view class="cu-item ">
- <view class="content">
- <text class="text-black">渚涘簲鍟�: <text class="text-grey ">{{item.suplierName}}</text></text>
- </view>
- <view class="content">
- <text class="text-black">渚涘簲鍟嗙紪鐮�: <text class="text-grey ">{{item.suplierCode}}</text></text>
- </view>
- </view>
-
- </block>
- </view>
-
- <block v-if="list.length">
- <view class="cu-bar bg-white solid-bottom ">
- <view class="action">
- <text class="cuIcon-title text-orange "></text> 鎶ユ璁板綍
- </view>
- </view>
-
-
- <view class="cu-timeline margin-bottom">
- <view class="cu-item padding-tb-sm" v-for="el in histories" :key="el.name">
- <view class="content flex justify-between padding-tb-sm">
- <text>{{el.name}}</text> <text>{{el.date}}</text>
- </view>
- </view>
- </view>
- </block>
-
- <view class="cu-bar btn-group foot">
- <button class="cu-btn bg-blue shadow-blur" @click="confirm">鎻愪氦鎶ユ</button>
- </view>
-
- </view>
-</template>
-
-<script>
- import {
- request
- } from '../../common/request.js'
- import {
- mapState,
- mapMutations,
- mapActions,
- mapGetters
- } from 'vuex';
- export default {
- data() {
- return {
- asnCode: '',
- asnId: '',
- container: '',
- list: [],
- histories: [],
- }
- },
- computed: {
- ...mapState('user', ['dynamicFields']),
- allCount() {
- return this.list.reduce((acc, row) => +row.qty + acc, 0) || 0
- }
- },
- mounted() {
-
- },
- methods: {
- async search() {
- const {
- code,
- data,
- msg
- } = await request('/asnOrder/inspect/' + this.asnCode, {}, "get")
- if (code === 200) {
- this.list = data.items;
- this.asnId = data.id;
- // this.histories = data.histories;
-
- } else {
- uni.showToast({
- title: msg,
- icon: "none",
- position: 'top'
- })
- }
-
- },
- async confirm() {
- const {
- code,
- data,
- msg
- } = await request('/inspect/confirm/' + this.asnId, {}, "get")
- if (code === 200) {
- uni.showToast({
- title: '鎶ユ鎴愬姛'
- })
- this.list = []
- this.asnCode = ''
- this.asnId = ''
- } else {
- uni.showToast({
- title: msg,
- icon: "none",
- position: 'top'
- })
- }
-
-
- },
-
- }
- }
-</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;
- }
-
- .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 ">
+ <view class="title">WMS鍗曞彿</view>
+ <input placeholder="閫夋嫨WMS鍗曞彿" v-model="asnCode"></input>
+ <text class='cuIcon-search text-blue' @click="search"></text>
+ </view>
+ </form>
+
+ <view class="flex solid-bottom padding-sm justify-between">
+ <view class="text-blue">SKU鏁伴噺:{{list.length}}</view>
+ </view>
+
+ <view class="cu-list det menu sm-border padding">
+ <block v-for="(item, index) in list" :key="index">
+ <view class="cu-bar bg-white solid-bottom margin-top-sm">
+ <view class="action">
+ <view class="index">
+ {{index+1}}
+ </view>
+ <view class="text-blue">
+ {{`${item.maktx}`}}
+ </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">閲囪喘鍗曚綅: <text class="text-grey ">{{item.purUnit}}</text></text>
+ </view>
+ <view class="content">
+ <text class="text-black">閲囪喘鏁伴噺: <text class="text-grey ">{{item.purQty}}</text></text>
+ </view>
+ </view>
+
+ <view class="cu-item ">
+ <view class="content">
+ <text class="text-black">渚涘簲鍟�: <text class="text-grey ">{{item.suplierName}}</text></text>
+ </view>
+ <view class="content">
+ <text class="text-black">渚涘簲鍟嗙紪鐮�: <text class="text-grey ">{{item.suplierCode}}</text></text>
+ </view>
+ </view>
+
+ </block>
+ </view>
+
+ <block v-if="list.length">
+ <view class="cu-bar bg-white solid-bottom ">
+ <view class="action">
+ <text class="cuIcon-title text-orange "></text> 鎶ユ璁板綍
+ </view>
+ </view>
+
+
+ <view class="cu-timeline margin-bottom">
+ <view class="cu-item padding-tb-sm" v-for="el in histories" :key="el.name">
+ <view class="content flex justify-between padding-tb-sm">
+ <text>{{el.name}}</text> <text>{{el.date}}</text>
+ </view>
+ </view>
+ </view>
+ </block>
+
+ <view class="cu-bar btn-group foot">
+ <button class="cu-btn bg-blue shadow-blur" @click="confirm">鎻愪氦鎶ユ</button>
+ </view>
+
+ </view>
+</template>
+
+<script>
+ import {
+ request
+ } from '../../common/request.js'
+ import {
+ mapState,
+ mapMutations,
+ mapActions,
+ mapGetters
+ } from 'vuex';
+ export default {
+ data() {
+ return {
+ asnCode: '',
+ asnId: '',
+ container: '',
+ list: [],
+ histories: [],
+ }
+ },
+ computed: {
+ ...mapState('user', ['dynamicFields']),
+ allCount() {
+ return this.list.reduce((acc, row) => +row.qty + acc, 0) || 0
+ }
+ },
+ mounted() {
+
+ },
+ methods: {
+ async search() {
+ const {
+ code,
+ data,
+ msg
+ } = await request('/asnOrder/inspect/' + this.asnCode, {}, "get")
+ if (code === 200) {
+ this.list = data.items;
+ this.asnId = data.id;
+ // this.histories = data.histories;
+
+ } else {
+ uni.showToast({
+ title: msg,
+ icon: "none",
+ position: 'top'
+ })
+ }
+
+ },
+ async confirm() {
+ const {
+ code,
+ data,
+ msg
+ } = await request('/inspect/confirm/' + this.asnId, {}, "get")
+ if (code === 200) {
+ uni.showToast({
+ title: '鎶ユ鎴愬姛'
+ })
+ this.list = []
+ this.asnCode = ''
+ this.asnId = ''
+ } else {
+ uni.showToast({
+ title: msg,
+ icon: "none",
+ position: 'top'
+ })
+ }
+
+
+ },
+
+ }
+ }
+</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;
+ }
+
+ .text-blue {
+ color: #0081ff !important;
+
+ }
+
+ .item {
+ position: relative;
+ display: flex;
+ min-height: 80upx;
+ align-items: center;
+ }
</style>
\ No newline at end of file
diff --git a/pages/listing/matnrPalletising.vue b/pages/listing/matnrPalletising.vue
index 7dd5f0c..b73cfda 100644
--- a/pages/listing/matnrPalletising.vue
+++ b/pages/listing/matnrPalletising.vue
@@ -20,8 +20,8 @@
<!-- <!– <text class='cuIcon-search text-blue' @click="search"></text> –>-->
<!-- </view>-->
<view class="cu-form-group">
- <view class="title">ASN鍗曞彿</view>
- <input placeholder="璇疯緭鍏SN鍗曞彿" v-model="asnCode" @input="onAsnCodeInput" @confirm="onAsnCodeConfirm"></input>
+ <view class="title">WMS鍗曞彿</view>
+ <input placeholder="璇疯緭鍏MS鍗曞彿" v-model="asnCode" @input="onAsnCodeInput" @confirm="onAsnCodeConfirm"></input>
</view>
</form>
<view class="flex solid-bottom padding-sm justify-between">
@@ -174,7 +174,7 @@
}
},
onAsnCodeInput(e) {
- // 鎵弿ASN鍗曞彿鏃惰嚜鍔ㄨЕ鍙戞煡璇�
+ // 鎵弿WMS鍗曞彿鏃惰嚜鍔ㄨЕ鍙戞煡璇�
if (e.detail && e.detail.value && e.detail.value.trim() !== '') {
this.asnCode = e.detail.value;
// 寤惰繜涓�涓嬪啀鏌ヨ锛岄伩鍏嶉绻佽姹�
@@ -182,13 +182,13 @@
clearTimeout(this.asnCodeTimer);
}
this.asnCodeTimer = setTimeout(() => {
- // 鎵弿ASN鍗曞彿鏃讹紝鑷姩鍔犺浇璇ヨ鍗曠殑鐗╂枡淇℃伅
+ // 鎵弿WMS鍗曞彿鏃讹紝鑷姩鍔犺浇璇ヨ鍗曠殑鐗╂枡淇℃伅
this.getDet();
}, 500);
}
},
onAsnCodeConfirm() {
- // 纭杈撳叆ASN鍗曞彿鏃讹紝绔嬪嵆瑙﹀彂鏌ヨ
+ // 纭杈撳叆WMS鍗曞彿鏃讹紝绔嬪嵆瑙﹀彂鏌ヨ
if (this.asnCode && this.asnCode.trim() !== '') {
this.getDet();
}
@@ -215,7 +215,7 @@
if ((!that.matnrCode || that.matnrCode.trim() === '') &&
(!that.asnCode || that.asnCode.trim() === '')) {
uni.showToast({
- title: "璇疯緭鍏ョ墿鏂欑紪鐮佹垨ASN鍗曞彿",
+ title: "璇疯緭鍏ョ墿鏂欑紪鐮佹垨WMS鍗曞彿",
icon: "none",
position: 'top'
})
@@ -352,12 +352,12 @@
// 閮芥湁璺熻釜鐮侊紝璺熻釜鐮佺浉鍚屽垯璁や负鏄悓涓�鐗╂枡
return existingItem.trackCode === item.trackCode;
}
- // 鐗╂枡缂栫爜鐩稿悓锛屾鏌SN鍗曞彿锛堝鏋滄湁ASN鍗曞彿锛孉SN鍗曞彿涓嶅悓鍒欏厑璁告坊鍔狅級
+ // 鐗╂枡缂栫爜鐩稿悓锛屾鏌MS鍗曞彿锛堝鏋滄湁鍗曞彿锛屽崟鍙蜂笉鍚屽垯鍏佽娣诲姞锛�
if (existingItem.asnCode && item.asnCode) {
- // 閮芥湁ASN鍗曞彿锛孉SN鍗曞彿鐩稿悓鍒欒涓烘槸鍚屼竴鐗╂枡
+ // 閮芥湁WMS鍗曞彿锛屽崟鍙风浉鍚屽垯璁や负鏄悓涓�鐗╂枡
return existingItem.asnCode === item.asnCode;
}
- // 鐗╂枡缂栫爜鐩稿悓锛屼絾閮芥病鏈夎窡韪爜鍜孉SN鍗曞彿锛堥兘鏄粠鐗╂枡淇℃伅琛ㄨ幏鍙栫殑锛夛紝璁や负鏄悓涓�鐗╂枡
+ // 鐗╂枡缂栫爜鐩稿悓锛屼絾閮芥病鏈夎窡韪爜鍜學MS鍗曞彿锛堥兘鏄粠鐗╂枡淇℃伅琛ㄨ幏鍙栫殑锛夛紝璁や负鏄悓涓�鐗╂枡
if (existingItem.matnrCode === item.matnrCode &&
!existingItem.trackCode && !item.trackCode &&
!existingItem.asnCode && !item.asnCode) {
diff --git a/pages/rece/other.vue b/pages/rece/other.vue
index d1506bf..ea7e8cd 100644
--- a/pages/rece/other.vue
+++ b/pages/rece/other.vue
@@ -1,385 +1,385 @@
-<template>
- <view class="has-foot">
- <form>
- <view class="cu-form-group margin-top" v-show="!isconfirm">
- <view class="title">ASN鍗曞彿</view>
- <input placeholder="璇锋壂鎻廇SN鍗曞彿" 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="璇锋壂鎻廤MS鍗曞彿" 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>
\ No newline at end of file
--
Gitblit v1.9.1