From 9ae2c0863a9e0a7bed5e00faf008160a2791f16a Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期三, 31 十二月 2025 09:40:05 +0800
Subject: [PATCH] Pda盘点报告盘点页面开发,功能逻辑梳理,逻辑编写,接口测试联调,Pda版本号更改
---
pages/wareHouse/inventory/index.vue | 1180 ++++++++++++++++++++++++++++++++++------------------------
1 files changed, 684 insertions(+), 496 deletions(-)
diff --git a/pages/wareHouse/inventory/index.vue b/pages/wareHouse/inventory/index.vue
index 3f8b34a..08944a5 100644
--- a/pages/wareHouse/inventory/index.vue
+++ b/pages/wareHouse/inventory/index.vue
@@ -1,530 +1,718 @@
<template>
- <view class="page">
- <view class="packing-registration-bg" />
- <u-navbar title="搴撳瓨鐩樼偣" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
- back-icon-color="#000">
- <template #right>
- <text style="font-size:14px;margin-right:14px;font-weight:bold" @click="goSubmit">鎻愪氦</text>
- </template>
- </u-navbar>
- <view class="packing-registration-param">
- <view class="packing-registration-param-view">
- <view class="packing-registration-param-item param-extra">
- <view class="packing-registration-param-item-left">
- <text class="item-one">鐩樼偣鎶ュ憡鍙�</text>
- </view>
- <view class="packing-registration-param-item-right">
- <text class="item-one item-two" @click="seachPersonnelNo()">{{ registerInfo.value1 == '' ?
- "鐐瑰嚮閫夋嫨" : registerInfo.value1 }}</text>
- <u-icon name="arrow-right" color="#687792" size="28" @click="seachPersonnelNo()"
- v-show="registerInfo.value1 == ''"></u-icon>
- </view>
- </view>
- <view class="packing-registration-param-item param-extra">
- <view class="packing-registration-param-item-left">
- <text class="item-one">浠撳簱</text>
- </view>
- <view class="packing-registration-param-item-right">
- <text class="item-one item-two">{{ registerInfo.value2 }}</text>
- </view>
- </view>
- <view class="packing-registration-param-item param-extra">
- <view class="packing-registration-param-item-left">
- <text class="item-one">闆朵欢鍙�</text>
- </view>
- <view class="packing-registration-param-item-right">
- <view class="item-one item-two" @click="openPN()">
- <text>{{ registerInfo.value6 == '' ? "鐐瑰嚮杈撳叆" : registerInfo.value6 }}</text>
- </view>
- <u-icon name="arrow-right" color="#687792" size="28"
- v-show="registerInfo.value6 == ''"></u-icon>
- </view>
- </view>
- <view class="packing-registration-param-item param-extra">
- <view class="packing-registration-param-item-left">
- <text class="item-one">鎵规鍙�</text>
- </view>
- <view class="packing-registration-param-item-right" @click="openBatch()">
- <text
- class="item-one item-two">{{ registerInfo.value3 == '' ? "鐐瑰嚮杈撳叆" : registerInfo.value3 }}</text>
- <u-icon name="arrow-right" color="#687792" size="28"
- v-show="registerInfo.value3 == ''"></u-icon>
- </view>
- </view>
- <view class="packing-registration-param-item param-extra">
- <view class="packing-registration-param-item-left">
- <text class="item-one">搴撲綅鍙�</text>
- </view>
- <view class="packing-registration-param-item-right" @click="openLocation()">
- <view class="item-one item-two">
- <text>{{ registerInfo.value4 == '' ? "鐐瑰嚮杈撳叆" : registerInfo.value4 }}</text>
- </view>
- <u-icon name="arrow-right" color="#687792" size="28"
- v-show="registerInfo.value4 == ''"></u-icon>
- </view>
- </view>
- <view class="packing-registration-param-item param-extra">
- <view class="packing-registration-param-item-left">
- <text class="item-one">鐩樼偣鏁伴噺</text>
- </view>
- <view class="packing-registration-param-item-right" @click="openPhysicalInventory()">
- <view class="item-one item-two">
- <text>{{ registerInfo.value5 == '' ? "鐐瑰嚮杈撳叆" : registerInfo.value5 }}</text>
- </view>
- <u-icon name="arrow-right" color="#687792" size="28"
- v-show="registerInfo.value4 == ''"></u-icon>
- </view>
- </view>
- <view class="packing-registration-param-item param-extra">
- <view class="packing-registration-param-item-left">
- <text class="item-one">鐩樼偣璁板綍锛�</text>
- </view>
- </view>
- </view>
- </view>
- <view class="wrap">
- <scroll-view class="packing-registration-scroll-list" scroll-y="true">
- <u-cell-group class="packing-registration-scroll-list-group" :border="false">
- <!-- <div class="tip" style="text-align: center;" v-if="hasScanSnList.length==0">-璇锋壂鐮�-</div> -->
- <view class="content" v-for="(item, index) in hasScanSnList" :key="index" :index="index">
- <view class="content-header">
- <view class="content-header-title">{{ index + 1 }}</view>
- </view>
- <view class="content-body">
- <view class="row-list">
- <view class="_label">
- <view class="_label-name">闆朵欢鍙凤細</view>
- </view>
- <view class="_content">
- {{ item.value0 }}
- </view>
- </view>
- <view class="row-list">
- <view class="_label">
- <view class="_label-name">鎵规鍙凤細</view>
- </view>
- <view class="_content">
- {{ item.value1 }}
- </view>
- </view>
- <view class="row-list">
- <view class="_label">
- <view class="_label-name">搴撲綅鍙凤細</view>
- </view>
- <view class="_content">
- {{ item.value0 }}
- </view>
- </view>
- <view class="row-list">
- <view class="_label">
- <view class="_label-name">鐩樼偣鏁伴噺锛�</view>
- </view>
- <view class="_content">
- {{ item.value1 }}
- </view>
- </view>
- </view>
- </view>
- </u-cell-group>
- </scroll-view>
- <scan></scan>
- <!-- 闆朵欢鍙� -->
- <modalBg ref="openPN" :confirm="confirmPN">
- <u-field v-model="registerInfo.value6" label="闆朵欢鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false">
- </u-field>
- </modalBg>
- <!-- 鎵规鍙� -->
- <modalBg ref="openBatch" :confirm="confirmBatch">
- <u-field v-model="registerInfo.value3" label="鎵规鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false">
- </u-field>
- </modalBg>
- <!-- 搴撲綅鍙� -->
- <modalBg ref="openLocation" :confirm="confirmLocation">
- <u-field v-model="registerInfo.value4" label="搴撲綅鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false">
- </u-field>
- </modalBg>
- <!-- 鐩樼偣鏁伴噺 -->
- <modalBg ref="openPhysicalInventory" :confirm="confirmPhysicalInventory">
- <u-field v-model="registerInfo.value5" label="鐩樼偣鏁伴噺锛�" label-width="140" placeholder="璇疯緭鍏�"
- :border-bottom="false">
- </u-field>
- </modalBg>
- </view>
- </view>
+ <view class="page">
+ <view class="packing-registration-bg" />
+ <u-navbar
+ title="搴撳瓨鐩樼偣"
+ :background="background"
+ :border-bottom="false"
+ :title-bold="true"
+ title-color="#000"
+ back-icon-color="#000"
+ >
+ <template #right>
+ <text
+ style="font-size: 14px; margin-right: 14px; font-weight: bold"
+ @click="goSubmit"
+ >鎻愪氦</text
+ >
+ </template>
+ </u-navbar>
+ <view class="packing-registration-param">
+ <view class="packing-registration-param-view">
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">鐩樼偣鎶ュ憡鍙�</text>
+ </view>
+ <view class="packing-registration-param-item-right">
+ <text class="item-one item-two" @click="seaRchPersonnelNo()">{{
+ registerInfo.invListNo == "" ? "鐐瑰嚮閫夋嫨" : registerInfo.invListNo
+ }}</text>
+ <u-icon
+ name="arrow-right"
+ color="#687792"
+ size="28"
+ @click="seaRchPersonnelNo()"
+ v-show="registerInfo.invListNo == ''"
+ ></u-icon>
+ </view>
+ </view>
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">浠撳簱</text>
+ </view>
+ <view class="packing-registration-param-item-right">
+ <text class="item-one item-two">{{
+ registerInfo.warehouseId
+ }}</text>
+ </view>
+ </view>
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">闆朵欢鍙�</text>
+ </view>
+ <view class="packing-registration-param-item-right">
+ <view class="item-one item-two" @click="openPN()">
+ <text>{{
+ registerInfo.partNo == "" ? "鐐瑰嚮杈撳叆" : registerInfo.partNo
+ }}</text>
+ </view>
+ <u-icon
+ name="arrow-right"
+ color="#687792"
+ size="28"
+ v-show="registerInfo.partNo == ''"
+ ></u-icon>
+ </view>
+ </view>
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">鎵规鍙�</text>
+ </view>
+ <view
+ class="packing-registration-param-item-right"
+ @click="openBatch()"
+ >
+ <text class="item-one item-two">{{
+ registerInfo.ifsBatchNo == ""
+ ? "鐐瑰嚮杈撳叆"
+ : registerInfo.ifsBatchNo
+ }}</text>
+ <u-icon
+ name="arrow-right"
+ color="#687792"
+ size="28"
+ v-show="registerInfo.ifsBatchNo == ''"
+ ></u-icon>
+ </view>
+ </view>
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">搴撲綅鍙�</text>
+ </view>
+ <view
+ class="packing-registration-param-item-right"
+ @click="openLocation()"
+ >
+ <view class="item-one item-two">
+ <text>{{
+ registerInfo.locationNo == ""
+ ? "鐐瑰嚮杈撳叆"
+ : registerInfo.locationNo
+ }}</text>
+ </view>
+ <u-icon
+ name="arrow-right"
+ color="#687792"
+ size="28"
+ v-show="registerInfo.locationNo == ''"
+ ></u-icon>
+ </view>
+ </view>
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">鐩樼偣鏁伴噺</text>
+ </view>
+ <view
+ class="packing-registration-param-item-right"
+ @click="openPhysicalInventory()"
+ >
+ <view class="item-one item-two">
+ <text>{{
+ registerInfo.qtyAvailable == ""
+ ? "鐐瑰嚮杈撳叆"
+ : registerInfo.qtyAvailable
+ }}</text>
+ </view>
+ <u-icon
+ name="arrow-right"
+ color="#687792"
+ size="28"
+ v-show="registerInfo.qtyAvailable == ''"
+ ></u-icon>
+ </view>
+ </view>
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">鐩樼偣璁板綍锛�</text>
+ </view>
+ </view>
+ </view>
+ </view>
+ <view class="wrap">
+ <scroll-view class="packing-registration-scroll-list" scroll-y="true">
+ <u-cell-group
+ class="packing-registration-scroll-list-group"
+ :border="false"
+ >
+ <!-- <div class="tip" style="text-align: center;" v-if="hasScanSnList.length==0">-璇锋壂鐮�-</div> -->
+ <view
+ class="content"
+ v-for="(item, index) in hasScanSnList"
+ :key="index"
+ :index="index"
+ >
+ <view class="content-header">
+ <view class="content-header-title">{{
+ hasScanSnList.length - index
+ }}</view>
+ </view>
+ <view class="content-body">
+ <view class="row-list">
+ <view class="_label">
+ <view class="_label-name">闆朵欢鍙凤細</view>
+ </view>
+ <view class="_content">
+ {{ item.partNo }}
+ </view>
+ </view>
+ <view class="row-list">
+ <view class="_label">
+ <view class="_label-name">鎵规鍙凤細</view>
+ </view>
+ <view class="_content">
+ {{ item.ifsBatchNo }}
+ </view>
+ </view>
+ <view class="row-list">
+ <view class="_label">
+ <view class="_label-name">搴撲綅鍙凤細</view>
+ </view>
+ <view class="_content">
+ {{ item.locationNo }}
+ </view>
+ </view>
+ <view class="row-list">
+ <view class="_label">
+ <view class="_label-name">鐩樼偣鏁伴噺锛�</view>
+ </view>
+ <view class="_content">
+ {{ item.qtyAvailable }}
+ </view>
+ </view>
+ </view>
+ </view>
+ </u-cell-group>
+ </scroll-view>
+ <scan></scan>
+ <!-- 闆朵欢鍙� -->
+ <modalBg ref="openPN" :confirm="confirmPN">
+ <u-field
+ v-model="registerInfo.partNo"
+ label="闆朵欢鍙凤細"
+ placeholder="璇疯緭鍏�"
+ :border-bottom="false"
+ >
+ </u-field>
+ </modalBg>
+ <!-- 鎵规鍙� -->
+ <modalBg ref="openBatch" :confirm="confirmBatch">
+ <u-field
+ v-model="registerInfo.ifsBatchNo"
+ label="鎵规鍙凤細"
+ placeholder="璇疯緭鍏�"
+ :border-bottom="false"
+ >
+ </u-field>
+ </modalBg>
+ <!-- 搴撲綅鍙� -->
+ <modalBg ref="openLocation" :confirm="confirmLocation">
+ <u-field
+ v-model="registerInfo.locationNo"
+ label="搴撲綅鍙凤細"
+ placeholder="璇疯緭鍏�"
+ :border-bottom="false"
+ >
+ </u-field>
+ </modalBg>
+ <!-- 鐩樼偣鏁伴噺 -->
+ <modalBg ref="openPhysicalInventory" :confirm="confirmPhysicalInventory">
+ <u-field
+ v-model="registerInfo.qtyAvailable"
+ label="鐩樼偣鏁伴噺锛�"
+ label-width="140"
+ placeholder="璇疯緭鍏�"
+ :border-bottom="false"
+ >
+ </u-field>
+ </modalBg>
+ </view>
+ </view>
</template>
<script>
- import modalBg from '@/components/modal/modal-bg.vue'
- import scan from "@/components/scan/scan.vue";
- import content_bg from '@/static/custom/packing/backBg.png'
- export default {
- components: {
- scan,
- modalBg
- },
- data() {
- return {
- background: {
- backgroundImage: `url(${content_bg})`,
- backgroundAttachment: 'fixed',
- backgroundSize: '100% auto',
- backgroundRepeat: 'no-repeat',
- },
- labelStyle: {
- fontSize: '32rpx',
- whiteSpace: 'nowrap'
- },
- registerInfo: {},
- hasScanSnList: [],
- delContent: null,
- staffList: [],
- };
- },
- onLoad(option) {},
- onShow() {
-
- let that = this
-
- uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
- uni.$on('scan', function(data) {
- console.log('onscan');
- //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
- console.log('鎵爜缁撴灉锛�', data.code);
- that.scanHandle(data.code)
- that.$forceUpdate();
-
- })
- },
- onNavigationBarButtonTap() {
- this.goScan()
- },
- onReady() {},
- methods: {
- //闆朵欢鍙�
- openPN() {
- this.$refs.openPN.open();
- },
- // 寮规淇濆瓨
- confirmPN() {
- console.log('淇濆瓨', this.registerInfo.value6);
- // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
- },
- //鎵规鍙�
- openBatch() {
- this.$refs.openBatch.open();
- },
- // 寮规淇濆瓨
- confirmBatch() {
- console.log('淇濆瓨', this.registerInfo.value3);
- // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
- },
- //搴撲綅鍙�
- openLocation() {
- this.$refs.openLocation.open();
- },
- // 寮规淇濆瓨
- confirmLocation() {
- console.log('淇濆瓨', this.registerInfo.value4);
- // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
- },
- //鐩樼偣鏁伴噺
- openPhysicalInventory() {
- this.$refs.openPhysicalInventory.open();
- },
- // 寮规淇濆瓨
- confirmPhysicalInventory() {
- console.log('淇濆瓨', this.registerInfo.value5);
- // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
- },
-
- setNo(val) {
- console.log('11111', val)
- this.registerInfo.value1 = val.value1
- this.registerInfo.value2 = val.value2
-
- },
- //鐩樼偣鎶ュ憡鍙�
- seachPersonnelNo() {
- console.log('11111')
- uni.navigateTo({
- url: '/pages/wareHouse/inventory/orderList'
- })
- },
- goScan() {
- uni.scanCode({
- scanType: ['qrCode'],
- success: res => {
- try {
- console.log('鎵爜缁撴灉锛�', res);
- this.scanHandle(res.result)
- } catch (e) {}
- }
- });
- },
- scanHandle(scanresult) {
- scanresult = scanresult.replace(/[\r\n]/g, "")
- if (scanresult.indexOf('{') > -1) {
- //浜岀淮鐮�
- const result = JSON.parse(scanresult)
- //澧炲姞SN鏍¢獙
- if (result.sn_no && result.sn_no != null && result.sn_no != '') {
- if (this.hasScanSnList.length > 0) {
- let hasScanSnIndex = this.hasScanSnList.indexOf(result.sn_no)
- if (hasScanSnIndex < 0) {
- this.hasScanSnList.push(result.sn_no)
- } else {
- this.$u.toast('璇峰嬁閲嶅鎵弿')
- }
- } else {
- this.hasScanSnList.push(result.sn_no)
- }
- }
-
- } else {
- //澧炲姞SN鏍¢獙
- if (this.hasScanSnList.length > 0) {
- let hasScanSnIndex = this.hasScanSnList.indexOf(scanresult)
- if (hasScanSnIndex < 0) {
- this.hasScanSnList.push(scanresult)
- } else {
- this.$u.toast('璇峰嬁閲嶅鎵弿')
- }
- } else {
- this.hasScanSnList.push(scanresult)
- }
- }
- },
- // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁�
- goSubmit() {
- if (!this.registerInfo.value1) {
- this.$u.toast('璇烽�夋嫨鐩樼偣鎶ュ憡鍙�');
- return;
- }
- if (!this.registerInfo.value5) {
- this.$u.toast('璇疯緭鍏ョ洏鐐规暟閲�');
- return;
- }
- uni.showLoading({
- mask: true,
- title: "鎻愪氦涓�...",
- });
- // 澶勭悊鎻愪氦閫昏緫
- this.$u.api.workReporting
- .operationTask({
- inventoryNo: this.registerInfo.value1,
- warehouse: this.registerInfo.value2,
- partNo: this.registerInfo.value6,
- batchNo: this.registerInfo.value3,
- location: this.registerInfo.value4,
- quantity: this.registerInfo.value5,
- scanList: this.hasScanSnList
- })
- .then((res) => {
- uni.hideLoading();
- if (res.success) {
- this.$u.toast('鎻愪氦鎴愬姛');
- this.registerInfo = {};
- this.hasScanSnList = [];
- } else {
- this.$u.toast(res.message || '鎻愪氦澶辫触');
- }
- })
- .catch(() => {
- uni.hideLoading();
- this.$u.toast('缃戠粶寮傚父锛岃閲嶈瘯');
- });
+import modalBg from "@/components/modal/modal-bg.vue";
+import scan from "@/components/scan/scan.vue";
+import content_bg from "@/static/custom/packing/backBg.png";
+export default {
+ components: {
+ scan,
+ modalBg,
},
- }
- };
+ data() {
+ return {
+ background: {
+ backgroundImage: `url(${content_bg})`,
+ backgroundAttachment: "fixed",
+ backgroundSize: "100% auto",
+ backgroundRepeat: "no-repeat",
+ },
+ labelStyle: {
+ fontSize: "32rpx",
+ whiteSpace: "nowrap",
+ },
+ registerInfo: {
+ invListNo: "",
+ warehouseId: "",
+ partNo: "",
+ ifsBatchNo: "",
+ locationNo: "",
+ qtyAvailable: "",
+ },
+ hasScanSnList: [],
+ delContent: null,
+ staffList: [],
+ submitList: {},
+ scanHandleList: {},
+ };
+ },
+ onLoad(option) {},
+ onShow() {
+ let that = this;
+
+ uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+
+ uni.$on("scan", function (data) {
+ if (that.registerInfo.invListNo == "") {
+ uni.showToast({
+ title: "璇峰厛閫夋嫨鐩樼偣鎶ュ憡鍙�",
+ icon: "none",
+ });
+ return;
+ }
+ console.log("onscan");
+ //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
+ console.log("鎵爜缁撴灉锛�", data.code);
+ if (data.code) {
+ let codeInfo = JSON.parse(data.code);
+ // if (codeInfo.BN) {
+ // 鎵弿鎶ュ伐鍗曚簩缁寸爜
+ that.scanHandleList = codeInfo;
+ that.scanHandle(codeInfo);
+ // that.$forceUpdate();
+ // }
+ }
+ });
+ },
+ // onNavigationBarButtonTap() {
+ // this.goScan();
+ // },
+ onReady() {},
+ methods: {
+ //闆朵欢鍙�
+ openPN() {
+ this.$refs.openPN.open();
+ },
+ // 寮规淇濆瓨
+ confirmPN() {
+ console.log("淇濆瓨", this.registerInfo.partNo);
+ // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+ },
+ //鎵规鍙�
+ openBatch() {
+ this.$refs.openBatch.open();
+ },
+ // 寮规淇濆瓨
+ confirmBatch() {
+ console.log("淇濆瓨", this.registerInfo.ifsBatchNo);
+ // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+ },
+ //搴撲綅鍙�
+ openLocation() {
+ this.$refs.openLocation.open();
+ },
+ // 寮规淇濆瓨
+ confirmLocation() {
+ console.log("淇濆瓨", this.registerInfo.locationNo);
+ // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+ },
+ //鐩樼偣鏁伴噺
+ openPhysicalInventory() {
+ this.$refs.openPhysicalInventory.open();
+ },
+ // 寮规淇濆瓨
+ confirmPhysicalInventory() {
+ console.log("淇濆瓨", this.registerInfo.qtyAvailable);
+ // this.registerInfo.qtyAvailable = Number(this.registerInfo.qtyAvailable);
+ // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+ },
+
+ setNo(val) {
+ console.log("val", val);
+ this.registerInfo.invListNo = val.INV_LIST_NO;
+ this.registerInfo.warehouseId = val.WAREHOUSE_ID;
+ },
+ //鐩樼偣鎶ュ憡鍙�
+ seaRchPersonnelNo() {
+ uni.navigateTo({
+ url: "/pages/wareHouse/inventory/orderList",
+ });
+ },
+ scanHandle(val) {
+ this.submitList = {};
+ const { PN, BN, NW } = val;
+ this.$u.api.shiftingParking
+ .selPartInfoPDA({ outBatchNo: BN })
+ .then((res) => {
+ console.log("res", res);
+ this.submitList = res.data;
+ // 妫�鏌ユ槸鍚﹀凡鐩樼偣
+ if (this.hasScanSnList && this.hasScanSnList.length > 0) {
+ // 鏌ユ壘鏄惁宸插瓨鍦ㄧ浉鍚岀殑 ifsBatchNo
+ const isAlreadyScanned = this.hasScanSnList.some(
+ (item) => item.ifsBatchNo === this.submitList.ifsBatchNo
+ );
+
+ if (isAlreadyScanned) {
+ uni.showModal({
+ title: "鎻愮ず",
+ content: "褰撳墠搴撳瓨宸茬洏鐐癸紝璇峰嬁閲嶅鐩樼偣",
+ showCancel: false,
+ confirmText: "纭畾",
+ });
+ return;
+ }
+ }
+ this.registerInfo = {
+ ...this.registerInfo,
+ partNo: this.submitList.partNo,
+ ifsBatchNo: this.submitList.ifsBatchNo,
+ // locationNo: this.registerInfo.locationNo,
+ qtyAvailable: this.submitList.qtyAvailable,
+ };
+
+ this.goSubmit();
+ })
+ .catch((err) => {
+ console.log("err", err);
+ uni.showModal({
+ title: "鎻愮ず",
+ content: err.message || "缃戠粶寮傚父锛岃閲嶈瘯",
+ showCancel: true,
+ success: function (res) {},
+ });
+ return;
+ });
+ },
+ getDifferentFields(obj1, obj2, mapping) {
+ const differences = {};
+
+ for (const [key1, mapRule] of Object.entries(mapping)) {
+ let value2;
+
+ if (typeof mapRule === "string") {
+ value2 = obj2[mapRule];
+ } else if (
+ mapRule &&
+ typeof mapRule === "object" &&
+ "fixed" in mapRule
+ ) {
+ value2 = mapRule.fixed;
+ } else {
+ continue;
+ }
+
+ if (obj1[key1] !== value2) {
+ differences[key1] = {
+ value1: obj1[key1],
+ value2,
+ };
+ }
+ }
+
+ return differences;
+ },
+ // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁�
+ goSubmit() {
+ if (!this.registerInfo.invListNo) {
+ this.$u.toast("璇烽�夋嫨鐩樼偣鎶ュ憡鍙�");
+ return;
+ }
+ const diff = this.getDifferentFields(
+ this.registerInfo,
+ this.scanHandleList,
+ {
+ partNo: { fixed: this.scanHandleList.PN },
+ // qtyAvailable: { fixed: Number(this.scanHandleList.NW) },
+ ifsBatchNo: { fixed: this.scanHandleList.BN },
+ }
+ );
+ console.log("宸紓瀛楁:", diff);
+ console.log("鏄惁鏈夊樊寮�:", Object.keys(diff).length > 0);
+ if (this.registerInfo.locationNo !== this.submitList.locationNo) {
+ uni.showModal({
+ title: "鎻愮ず",
+ content: "鎵弿搴撲綅鍙蜂笌绯荤粺鏁版嵁涓嶄竴鑷�",
+ showCancel: true,
+ success: function (res) {},
+ });
+ return;
+ }
+ if (Object.keys(diff).length > 0) {
+ if (diff.partNo) {
+ uni.showModal({
+ title: "鎻愮ず",
+ content: "鎵弿闆朵欢鍙蜂笌绯荤粺鏁版嵁涓嶄竴鑷�",
+ showCancel: true,
+ success: function (res) {},
+ });
+ return;
+ }
+ if (diff.ifsBatchNo) {
+ uni.showModal({
+ title: "鎻愮ず",
+ content: "鎵弿鎵规鍙蜂笌绯荤粺鏁版嵁涓嶄竴鑷�",
+ showCancel: true,
+ success: function (res) {},
+ });
+ return;
+ }
+ if (diff.qtyAvailable) {
+ uni.showModal({
+ title: "鎻愮ず",
+ content: "鎵弿鐩樼偣鏁伴噺涓庣郴缁熸暟鎹笉涓�鑷�",
+ showCancel: true,
+ success: function (res) {},
+ });
+ return;
+ }
+ }
+ uni.showLoading({
+ mask: true,
+ title: "鎻愪氦涓�...",
+ });
+ console.log("鎻愪氦鐨勬暟鎹�", this.submitList);
+ // 澶勭悊鎻愪氦閫昏緫
+ this.$u.api.inventoryVerification
+ .erpInventorySubmit({
+ ...this.submitList,
+ invListNo: this.registerInfo.invListNo,
+ })
+ .then((res) => {
+ // uni.hideLoading();
+ this.$u.toast("鎻愪氦鎴愬姛");
+ !this.hasScanSnList.some(
+ (item) => item.ifsBatchNo === this.registerInfo.ifsBatchNo
+ ) && this.hasScanSnList.unshift(this.registerInfo);
+ // this.registerInfo = {};
+ })
+ .catch((err) => {
+ console.log("err", err);
+ // uni.hideLoading();
+ uni.showModal({
+ title: "鎻愮ず",
+ content: err.message || "缃戠粶寮傚父锛岃閲嶈瘯",
+ showCancel: true,
+ success: function (res) {},
+ });
+ });
+ },
+ },
+};
</script>
<style lang="scss" scoped>
.transparent-border {
-border: none;
+ border: none;
}
- .packing-registration-bg {
- background-color: #F6F9FF;
- background-image: url('~@/static/custom/packing/backBg.png');
- padding: 0 20rpx;
- background-attachment: fixed;
- background-size: 100% auto;
- background-repeat: no-repeat;
- position: fixed;
- top: 0;
- bottom: 0;
- width: 100%;
- z-index: -1;
- }
+.packing-registration-bg {
+ background-color: #f6f9ff;
+ background-image: url("~@/static/custom/packing/backBg.png");
+ padding: 0 20rpx;
+ background-attachment: fixed;
+ background-size: 100% auto;
+ background-repeat: no-repeat;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ z-index: -1;
+}
- .packing-registration-param {
- padding: 40rpx 30rpx 10rpx 30rpx;
+.packing-registration-param {
+ padding: 40rpx 30rpx 10rpx 30rpx;
- .packing-registration-param-title {
- display: flex;
- flex-direction: row;
- align-items: center;
- margin-bottom: 30rpx;
+ .packing-registration-param-title {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ margin-bottom: 30rpx;
- .title-label {
- margin-left: 14rpx;
- font-size: 34rpx;
- font-weight: bold;
- color: #283E65;
- }
- }
+ .title-label {
+ margin-left: 14rpx;
+ font-size: 34rpx;
+ font-weight: bold;
+ color: #283e65;
+ }
+ }
- .packing-registration-param-view {
- height: 615rpx;
- background-color: #fff;
- border-radius: 10rpx;
- padding: 0rpx 23rpx;
- margin-bottom: 30rpx;
+ .packing-registration-param-view {
+ height: 615rpx;
+ background-color: #fff;
+ border-radius: 10rpx;
+ padding: 0rpx 23rpx;
+ margin-bottom: 30rpx;
- .packing-registration-param-item {
- height: 90rpx;
- border: 1px solid #ADC8E4;
- line-height: 90rpx;
- display: flex;
- justify-content: space-between;
- border: none;
+ .packing-registration-param-item {
+ height: 90rpx;
+ border: 1px solid #adc8e4;
+ line-height: 90rpx;
+ display: flex;
+ justify-content: space-between;
+ border: none;
- .packing-registration-param-item-left {
- .item-one {
- font-size: 30rpx;
- color: #666666;
- }
- }
+ .packing-registration-param-item-left {
+ .item-one {
+ font-size: 30rpx;
+ color: #666666;
+ }
+ }
- .packing-registration-param-item-right {
- display: flex;
- justify-content: space-between;
+ .packing-registration-param-item-right {
+ display: flex;
+ justify-content: space-between;
- .item-one {
- font-size: 30rpx;
- color: #333333;
- margin-right: 6rpx;
- }
+ .item-one {
+ font-size: 30rpx;
+ color: #333333;
+ margin-right: 6rpx;
+ }
- .item-two {
- font-size: 30rpx;
- color: #A6B4CC;
- margin-right: 6rpx;
- }
+ .item-two {
+ font-size: 30rpx;
+ color: #a6b4cc;
+ margin-right: 6rpx;
+ }
- .item-three {
- font-size: 30rpx;
- color: #214DED;
- margin-right: 6rpx;
- }
- }
- }
+ .item-three {
+ font-size: 30rpx;
+ color: #214ded;
+ margin-right: 6rpx;
+ }
+ }
+ }
- .param-extra {
- border-bottom: 1px solid #EDEDED;
- }
- }
- }
+ .param-extra {
+ border-bottom: 1px solid #ededed;
+ }
+ }
+}
- .wrap .packing-registration-scroll-list {
- height: calc(100vh - var(--window-top) - var(--window-bottom) - 930rpx);
- width: 100%;
- }
+.wrap .packing-registration-scroll-list {
+ height: calc(100vh - var(--window-top) - var(--window-bottom) - 930rpx);
+ width: 100%;
+}
- .packing-registration-scroll-list-group {
- ::v-deep .u-cell-item-box {
- background-color: rgba(250, 252, 255, 0.36) !important;
- padding: 0rpx 30rpx;
- }
+.packing-registration-scroll-list-group {
+ ::v-deep .u-cell-item-box {
+ background-color: rgba(250, 252, 255, 0.36) !important;
+ padding: 0rpx 30rpx;
+ }
- .content {
- font-size: 12px;
- background-color: #ffffff;
- box-sizing: border-box;
- border-radius: 10rpx;
- margin: 0rpx 0rpx 16rpx;
- padding: 20rpx 8rpx;
- box-shadow: none;
- display: flex;
- align-items: center;
+ .content {
+ font-size: 12px;
+ background-color: #ffffff;
+ box-sizing: border-box;
+ border-radius: 10rpx;
+ margin: 0rpx 0rpx 16rpx;
+ padding: 20rpx 8rpx;
+ box-shadow: none;
+ display: flex;
+ align-items: center;
- .content-header {
- width: 40rpx;
- height: 90rpx;
- display: flex;
- align-items: center;
+ .content-header {
+ height: 90rpx;
+ display: flex;
+ align-items: center;
+ max-width: 300rpx;
- .content-header-icon {
- background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
- background-size: 100% auto;
- background-repeat: no-repeat;
- height: 28rpx;
- width: 28rpx;
- }
+ .content-header-icon {
+ background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
+ background-size: 100% auto;
+ background-repeat: no-repeat;
+ height: 28rpx;
+ width: 28rpx;
+ flex-shrink: 0;
+ }
- .content-header-title {
- margin-left: 11rpx;
- font-size: 26rpx;
- font-weight: bold;
- color: #626369;
- }
- }
+ .content-header-title {
+ flex: 1;
+ min-width: 0;
+ white-space: pre-wrap;
+ margin-left: 11rpx;
+ font-size: 20rpx;
+ font-weight: bold;
+ color: #626369;
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+ }
+ }
- .content-body {
- flex: 1;
- background-color: #ffffff;
- border-radius: 10rpx;
- padding: 0rpx 23rpx;
+ .content-body {
+ flex: 1;
+ background-color: #ffffff;
+ border-radius: 10rpx;
+ padding: 0rpx 23rpx;
- .row-list {
- height: 60rpx;
- display: flex;
- flex-direction: row;
- padding: 0px;
- align-items: center;
- }
+ .row-list {
+ height: 60rpx;
+ display: flex;
+ flex-direction: row;
+ padding: 0px;
+ align-items: center;
+ }
- .row-list ._label {
- display: flex;
- flex: 0.8;
- color: #909399;
- align-items: center;
+ .row-list ._label {
+ display: flex;
+ flex: 0.8;
+ color: #909399;
+ align-items: center;
- ._label-name {
- margin-left: 11rpx;
- font-size: 26rpx;
- font-weight: 500;
- color: #666666;
- }
- }
+ ._label-name {
+ margin-left: 11rpx;
+ font-size: 26rpx;
+ font-weight: 500;
+ color: #666666;
+ }
+ }
- .row-list ._content {
- flex: 1.5;
- text-align: right;
- color: #909399;
- font-size: 24rpx;
- }
+ .row-list ._content {
+ flex: 1.5;
+ text-align: right;
+ color: #909399;
+ font-size: 24rpx;
+ }
- .row-list .s1 {
- color: #d35651;
- }
- }
- }
- }
+ .row-list .s1 {
+ color: #d35651;
+ }
+ }
+ }
+}
- .registration-form-footer {
- display: flex;
- margin-top: 10rpx;
- margin-bottom: 10rpx;
- margin-left: 20rpx;
- margin-right: 20rpx;
- padding-bottom: 14rpx;
+.registration-form-footer {
+ display: flex;
+ margin-top: 10rpx;
+ margin-bottom: 10rpx;
+ margin-left: 20rpx;
+ margin-right: 20rpx;
+ padding-bottom: 14rpx;
- .btn {
- flex: 1;
- margin: 10rpx;
- background: #214DED;
- box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4, 49, 212, 0.3);
- font-weight: bold;
- color: #FEFEFE;
- font-family: PingFang SC;
- }
- }
+ .btn {
+ flex: 1;
+ margin: 10rpx;
+ background: #214ded;
+ box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4, 49, 212, 0.3);
+ font-weight: bold;
+ color: #fefefe;
+ font-family: PingFang SC;
+ }
+}
</style>
\ No newline at end of file
--
Gitblit v1.9.3