From 477d7cdf4379047fd7f4cc66b0bef12830b7beb7 Mon Sep 17 00:00:00 2001
From: wtt <1985833171@qq.com>
Date: 星期三, 31 十二月 2025 14:13:34 +0800
Subject: [PATCH] Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev

---
 pages/simaheyi/BarCodeCheck_SN.vue |  874 ++++++++++++++++++++++++++++++++++++++
 pages.json                         |    6 
 pages/simaheyi/table.vue           |  487 +++++++++++++++++++++
 pages/index/index.vue              |    8 
 4 files changed, 1,374 insertions(+), 1 deletions(-)

diff --git a/pages.json b/pages.json
index 22f041a..114813e 100644
--- a/pages.json
+++ b/pages.json
@@ -1284,6 +1284,12 @@
                 "navigationBarTitleText": "涓夌爜鍚堜竴"
             }
         },
+		{
+		    "path": "pages/simaheyi/BarCodeCheck_SN",
+		    "style": {
+		        "navigationBarTitleText": "鍥涚爜鍚堜竴"
+		    }
+		},
         {
             "path": "pages/ZLGL/shengchanrukujiaoyan/QC_LastPieceCheckBill_v2",
             "style": {
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 8f37c02..59b9ab9 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -307,7 +307,13 @@
 						id: 35,
 						hidden: false,
 					},
-					
+					{
+						img: '../../static/icon/icon8.png',
+						text: '鍥涚爜鍚堜竴',
+						url: `/pages/simaheyi/BarCodeCheck_SN`,
+						id: 36,
+						hidden: false,
+					},
 					{
 						img: '../../static/icon/icon8.png',
 						text: '涓婃ā鍗�',
diff --git a/pages/simaheyi/BarCodeCheck_SN.vue b/pages/simaheyi/BarCodeCheck_SN.vue
new file mode 100644
index 0000000..baa67c8
--- /dev/null
+++ b/pages/simaheyi/BarCodeCheck_SN.vue
@@ -0,0 +1,874 @@
+<template>
+	<view class="form">
+		<view class="form-base-info">
+			<view class="form-item">
+				<view class="title">鏍堟澘鐮�</view>
+				<!-- 鎸夌収婧愬崟鐗╂枡鏍峰紡娣诲姞disabled绫诲拰绂佺敤灞炴�� -->
+				<view class="right" :class="disableBarCodePallet ? 'disabled' : ''">
+					<input type="text" :focus="HBarCodePalletFocus" v-model="HBarCode_Pallet"
+						@confirm="CheckBarcode(HBarCode_Pallet,1)" :disabled="disableBarCodePallet" />
+				</view>
+				<view class="right-icon">
+					<uni-icons class="right-icon" :class="disableBarCodePallet ? 'disabled':''" type="scan"
+						style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+						@click="toScanCode" :disabled="disableBarCodePallet"></uni-icons>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐩殑浠撶爜</view>
+				<!-- 鎸夌収婧愬崟鐗╂枡鏍峰紡娣诲姞disabled绫诲拰绂佺敤灞炴�� -->
+				<view class="right" :class="disableBarCodeDest ? 'disabled' : ''">
+					<input type="text" :focus="HBarCodeDestFocus" v-model="HBarCode_Destination"
+						@confirm="CheckBarcode(HBarCode_Destination,2)" :disabled="disableBarCodeDest" />
+				</view>
+				<view class="right-icon">
+					<uni-icons class="right-icon" :class="disableBarCodeDest ? 'disabled':''" type="scan"
+						style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+						@click="toScanCode" :disabled="disableBarCodeDest"></uni-icons>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">涓鐮�</view>
+				<!-- 鎸夌収婧愬崟鐗╂枡鏍峰紡娣诲姞disabled绫诲拰绂佺敤灞炴�� -->
+				<view class="right" :class="disableBarCodeMiddle ? 'disabled' : ''">
+					<input type="text" :focus="HBarCodeMiddleFocus" v-model="HBarCode_MiddleBox "
+						@confirm="CheckBarcode(HBarCode_MiddleBox,3)" :disabled="disableBarCodeMiddle" />
+				</view>
+				<view class="right-icon">
+					<uni-icons class="right-icon" :class="disableBarCodeMiddle ? 'disabled':''" type="scan"
+						style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+						@click="toScanCode" :disabled="disableBarCodeMiddle"></uni-icons>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">浜у搧鐮�</view>
+				<!-- 鎸夌収婧愬崟鐗╂枡鏍峰紡娣诲姞disabled绫诲拰绂佺敤灞炴�� -->
+				<view class="right" :class="disableBarCodeSN ? 'disabled' : ''">
+					<input type="text" :focus="HBarCodeSNFocus" v-model="HBarCode_SN"
+						@confirm="CheckBarcode(HBarCode_SN,4)" :disabled="disableBarCodeSN" />
+				</view>
+				<view class="right-icon">
+					<uni-icons class="right-icon" :class="[disableBarCodeSN ? 'disabled':'']" type="scan"
+						style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+						@click="toScanCode" :disabled="disableBarCodeSN"></uni-icons>
+				</view>
+			</view>
+		</view>
+		<view class="tabs">
+			<view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">澶嶆牳淇℃伅</view>
+			<view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">鍗曟嵁淇℃伅</view>
+		</view>
+		<!-- 澶嶆牳淇℃伅 -->
+		<view v-if="tabs == 0">
+			<zb-table id="list-table" :checked-highlight="true" :fit="true" :style="{height: `${listTableHeight}px`}"
+				:columns="columns" :data="listData" :show-header="true" :border="true" :row-key="row => row.index"
+				@toggleRowSelection="handleSelect" @toggleAllSelection="handleSelectAll"
+				@rowClick="onTableRowClickHandler" />
+		</view>
+		<!-- 鍗曟嵁淇℃伅 -->
+		<view v-if="tabs == 1">
+
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">鍗曟嵁鏃ユ湡</view>
+					<view class="right">
+						<uni-datetime-picker type="date" v-model="hform.HDate">
+							<input type="text" v-model="hform.HDate" />
+						</uni-datetime-picker>
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">鍒跺崟浜�</view>
+					<view class="right disabled">
+						<input type="text" disabled :value="hform.HMaker" />
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">鍗曟嵁鍙�</view>
+					<view class="right disabled">
+						<input type="text" disabled :value="hform.HBillNo" />
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">鍗曟嵁ID</view>
+					<view class="right disabled">
+						<input type="text" disabled :value="hform.HInterID" />
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">缁勭粐</view>
+					<view class="right disabled">
+						<input type="text" disabled :value="hform.HStockOrgName" />
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="bottom-btn" id="bottom-btn">
+			<button :class="EnableSubmit?'btn-a':'btn-c'" :disabled="!EnableSubmit" size="mini"
+				@tap="cmdSubmit">鎻愪氦</button>
+			<view style="flex: 1;"></view>
+			<button class="btn-d" size="mini" @tap="cmdDelete">鍒犻櫎</button>
+			<button class="btn-c" size="mini" @tap="cmdExit">閫�鍑�</button>
+		</view>
+	</view>
+</template>
+<script>
+	import dayjs from 'dayjs'
+	import {
+		getUserInfo
+	} from "../../utils/auth";
+	import {
+		CommonUtils
+	} from "@/utils/common.js"
+	import {
+		MpaasScan
+	} from "@/utils/mpaasScan.js"
+
+	export default {
+		data() {
+			return {
+				// ==================== 甯冨眬璁$畻鐩稿叧 ====================
+				// 璁$畻鍒楄〃楂樺害
+				bottomBtnTop: 0,
+				listTableTop: 0,
+
+				// ==================== 鐣岄潰鐘舵�佹帶鍒� ====================
+				EnableSubmit: true, // 鏄惁鍏佽鎻愪氦
+				disableBarCodePallet: false, // 鏍堟澘鐮佺鐢ㄧ姸鎬�
+				disableBarCodeDest: false, // 鐩殑浠撶爜绂佺敤鐘舵��
+				disableBarCodeMiddle: false, // 涓鐮佺鐢ㄧ姸鎬�
+				disableBarCodeSN: false, // 浜у搧鐮佺鐢ㄧ姸鎬�
+				HBarCodePalletFocus: false, // 鏍堟澘鐮佽緭鍏ユ鑱氱劍鐘舵��
+				HBarCodeDestFocus: false, // 鐩殑浠撶爜杈撳叆妗嗚仛鐒︾姸鎬�
+				HBarCodeMiddleFocus: false, // 涓鐮佽緭鍏ユ鑱氱劍鐘舵��
+				HBarCodeSNFocus: false, // 浜у搧鐮佽緭鍏ユ鑱氱劍鐘舵��
+				tabs: 0, // 褰撳墠閫夐」鍗�(0:鍗曟嵁淇℃伅,1:瑁呯淇℃伅)
+
+
+				// ==================== 涓氬姟鏁版嵁 ====================
+				HBarCode_Pallet: '', // 鏍堟澘鐮�
+				HBarCode_Destination: '', //鐩殑浠撶爜
+				HBarCode_MiddleBox: '', //涓鐮�
+				HBarCode_SN: '', // 浜у搧鐮�
+				HBillType: '1283', // 鍗曟嵁绫诲瀷
+				HBillSubType: '1', // 瀛愮被鍨嬶紙1瑁呯銆�2缁勬墭锛�
+				OperationType: 1, // 鎿嶄綔绫诲瀷锛�1鏂板銆�2浠庣紦瀛樺垪琛ㄤ腑杩斿洖锛�
+				HMaterNumber_Pack: "", // 鎵樻潯鐮佸搴旂墿鏂欎唬鐮�
+				HBarCode_Pallet_Temp: "", // 浠庣紦瀛樺垪琛ㄤ腑杩斿洖鏍堟澘鐮�
+				BarCodeType: 1, // 鏉$爜绫诲瀷(1:瑁呯,2:缁勬墭)
+
+
+				// ==================== 鍒楄〃鏁版嵁 ====================
+				listOption: [], // 鍒楄〃閫夐」
+				listData: [], // 琛ㄦ牸鏁版嵁
+				selectedRows: [], // 琛ㄦ牸閫変腑鐨勬暟鎹�
+				columns: [ // 琛ㄦ牸鍒楅厤缃�
+					{
+						type: 'selection',
+						fixed: true,
+						width: 50
+					},
+					{
+						name: 'index',
+						label: '搴忓彿',
+						width: 60,
+						hidden: true
+					},
+					{
+						name: '鏍堟澘鐮�',
+						label: '鏍堟澘鐮�',
+						width: 200
+					},
+					{
+						name: '鐩殑浠撶爜',
+						label: '鐩殑浠撶爜',
+						width: 200
+					},
+					{
+						name: '涓鐮�',
+						label: '涓鐮�',
+						width: 200
+					},
+					{
+						name: 'SN鐮�',
+						label: 'SN鐮�',
+						width: 200
+					}
+				],
+
+				// ==================== 涓昏〃鍗曟暟鎹� ====================
+				hform: {
+					HDate: dayjs(new Date()).format('YYYY-MM-DD'), // 鍗曟嵁鏃ユ湡
+					HMaker: getUserInfo()['Czymc'], // 鍒跺崟浜�
+					HBillNo: '', // 鍗曟嵁鍙�
+					HInterID: '', // 鍗曟嵁ID
+					HStockOrgName: uni.getStorageSync("Organization"), // 缁勭粐鍚嶇О
+					HStockOrgID: uni.getStorageSync("OrganizationID"), // 缁勭粐ID
+				},
+
+				// ==================== 绯荤粺閰嶇疆 ====================
+				HModName: "Sc_PackUnionBill_Packing_PDA", // 妯″潡鍚嶇О
+				ModRightName: "CE_PackUnionBill_Packing", // 妯″潡鏉冮檺鍙傛暟
+				titleData: [] // 涓嶉渶瑕佹樉绀虹殑瀛楁
+			}
+		},
+		components: {
+			
+		},
+		// ==================== 璁$畻灞炴�� ====================
+		computed: {
+			// 璁$畻琛ㄦ牸楂樺害
+			listTableHeight: {
+				get() {
+					return this.bottomBtnTop - this.listTableTop - 10
+				}
+			}
+		},
+
+		// ==================== 鏂规硶 ====================
+		methods: {
+			// 澶嶉�夋鍙樺寲澶勭悊
+			checkboxGroupChangeHandler(e) {
+				let checkBoxValues = Array.from(e.detail.value)
+				this.hform.HQualityApproval = checkBoxValues.includes('qualityApproval')
+			},
+
+			// 琛ㄦ牸琛岀偣鍑诲鐞�
+			onTableRowClickHandler(row, index) {
+				if (!this.listData[index].checked) {
+					this.$set(this.listData[index], 'checked', true)
+				} else {
+					this.listData[index].checked = !this.listData[index].checked
+				}
+			},
+
+			// 鍒锋柊SN鐮佽緭鍏ユ鐒︾偣
+			async HBarCodeSNFocusRefresh() {
+				this.HBarCode_SN = ''
+				this.HBarCodeSNFocus = false
+				await this.$nextTick()
+				this.HBarCodeSNFocus = true
+			},
+
+			// 鍒锋柊鏍堟澘鐮佽緭鍏ユ鐒︾偣
+			async HBarCodePalletFocusRefresh() {
+				this.HBarCode_Pallet = ''
+				this.HBarCodePalletFocus = false
+				await this.$nextTick()
+				this.HBarCodePalletFocus = true
+			},
+
+			// 鍒锋柊鐩殑浠撶爜杈撳叆妗嗙劍鐐�
+			async HBarCodeDestFocusRefresh() {
+				this.HBarCode_Destination = ''
+				this.HBarCodeDestFocus = false
+				await this.$nextTick()
+				this.HBarCodeDestFocus = true
+			},
+
+			// 鍒锋柊涓鐮佽緭鍏ユ鐒︾偣
+			async HBarCodeMiddleFocusRefresh() {
+				this.HBarCode_MiddleBox = ''
+				this.HBarCodeMiddleFocus = false
+				await this.$nextTick()
+				this.HBarCodeMiddleFocus = true
+			},
+
+			// 鎵弿鏍堟澘鐮�
+			toScanCode() {
+				MpaasScan.scanCode((scanCode) => {
+					this.HBarCode_Pallet = scanCode
+					this.CheckBarcode(this.HBarCode_Pallet, 1)
+				})
+			},
+
+			// 鎵弿鐩殑浠撶爜
+			toScanCode() {
+				MpaasScan.scanCode((scanCode) => {
+					this.HBarCode_Destination = scanCode
+					this.CheckBarcode(this.HBarCode_Destination, 2)
+				})
+			},
+
+			// 鎵弿涓鐮�
+			toScanCode() {
+				MpaasScan.scanCode((scanCode) => {
+					this.HBarCode_MiddleBox = scanCode
+					this.CheckBarcode(this.HBarCode_MiddleBox, 3)
+				})
+			},
+			
+			// 鎵弿浜у搧SN鐮�
+			toScanCode() {
+				MpaasScan.scanCode((scanCode) => {
+					this.HBarCode_SN = scanCode
+					this.CheckBarcode(this.HBarCode_SN, 4)
+				})
+			},
+
+			// 鎵潯鐮佹牳瀵规牎楠屼俊鎭�
+			CheckBarcode(HBarCode, HBarCodeType) {
+				CommonUtils.doRequest2({
+					url: '/CheckBarcodeController/Get_BarCode_BarcodeCheck',
+					data: {
+						HBarCode_Pallet: this.HBarCode_Pallet,
+						HBarCode_Destination: this.HBarCode_Destination,
+						HBarCode_MiddleBox: this.HBarCode_MiddleBox,
+						HBarCode_SN: this.HBarCode_SN,
+						HBarCodeType: HBarCodeType,
+						HInterID: this.hform.HInterID,
+						HBillNo: this.hform.HBillNo,
+						HMaker: this.hform.HMaker
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message,
+							list
+						} = res.data
+						if (count == 1) {
+							CommonUtils.playSound(1)
+							
+							if(HBarCodeType == 1){
+								//澶勭悊鎴愬姛鍚庤仛鐒﹀埌鐩殑浠撶爜杈撳叆妗�
+								this.HBarCodeDestFocusRefresh()
+							}else if(HBarCodeType == 2){
+								//澶勭悊鎴愬姛鍚庤仛鐒﹀埌涓鐮佽緭鍏ユ
+								this.HBarCodeMiddleFocusRefresh()
+							}else if(HBarCodeType == 3){
+								//澶勭悊鎴愬姛鍚庤仛鐒﹀埌SN鐮佽緭鍏ユ
+								this.HBarCodeSNFocusRefresh()
+							}else if(HBarCodeType == 4){
+								//澶勭悊鎴愬姛鍚庤仛鐒﹀埌SN鐮佽緭鍏ユ
+								this.HBarCodeSNFocusRefresh()
+							}
+														
+							//this.DisBillEntryList();
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+							
+							this.listData = [];							
+							for (let i = 0; i < data.length; i++) {
+								this.listData.push(Object.assign(data[i], {
+									index: i
+								}))
+							}
+						} else {
+							CommonUtils.playSound(0)
+							this.HBarCodePalletFocusRefresh()
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},			
+
+			// 鏍规嵁浜у搧鐮佽幏鍙栦俊鎭�
+			GetMeesageByBarCode(HBarCode) {
+				let HBarCode_Pallet = this.HBarCode_Pallet
+				let sOldBarCode = this.HBarCode_SN
+				let HDeleteFlag = sOldBarCode.substring(0, 1)
+				let sBarCode = sOldBarCode.slice(1)
+
+				if (!HBarCode_Pallet) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鏍堟澘鐮佷笉鑳戒负绌猴紝璇峰厛鎵弿鎵樻潯鐮侊紒'
+					})
+				}
+				if (HDeleteFlag == '*') {
+					// 鍒犻櫎鏉$爜閫昏緫
+					if (!sBarCode) {
+						return uni.showToast({
+							icon: 'none',
+							title: '璇锋壂鎻忚鍒犻櫎鐨勬潯鐮�'
+						})
+					} else {
+						this.HBarCodeSNFocusRefresh()
+					}
+					CommonUtils.doRequest2({
+						url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
+						data: {
+							"HInterID": this.hform.HInterID,
+							"HBarCode": sBarCode,
+							"HBillType": this.HBillType
+						},
+						resFunction: (res) => {
+							let {
+								data,
+								count,
+								Message
+							} = res.data
+							if (count == 1) {
+								CommonUtils.playSound(1)
+								this.tabs = 1
+								this.DisBillEntryList()
+							} else {
+								CommonUtils.playSound(0)
+								uni.showToast({
+									icon: 'none',
+									title: Message
+								})
+							}
+						}
+					})
+				} else {
+					// 鏂板鏉$爜閫昏緫
+					let sBarCode = this.HBarCode_SN
+					if (!sBarCode) {
+						return uni.showToast({
+							icon: 'none',
+							title: '鏉$爜涓嶈兘涓虹┖锛岃鎵弿鏉$爜锛�'
+						})
+					}
+					CommonUtils.doRequest2({
+						url: '/WEBSController/Get_BarCode_PackUnionBill_New_Json_Cus',
+						data: {
+							"HBarCode": sBarCode,
+							"HInterID": this.hform.HInterID,
+							"HBillNo": this.hform.HBillNo,
+							"HBillType": this.HBillType,
+							"HBillSubType": this.HBillSubType,
+							"HBarCode_Pallet": this.HBarCode_Pallet,
+							"HMaterNumber_Pack": this.HMaterNumber_Pack,
+							"HMaker": this.hform.HMaker,
+							"HStockOrgID": this.hform.HStockOrgID
+						},
+						resFunction: (res) => {
+							let {
+								data,
+								count,
+								Message
+							} = res.data
+							if (count == 1) {
+								CommonUtils.playSound(1)
+								this.tabs = 1
+								this.HBarCodeSNFocusRefresh()
+								this.DisBillEntryList()
+							} else {
+								CommonUtils.playSound(0)
+								this.HBarCodeSNFocusRefresh()
+								uni.showToast({
+									icon: 'none',
+									title: Message
+								})
+							}
+						}
+					})
+				}
+			},
+			// 鏄剧ず鍗曟嵁鏄庣粏鍒楄〃
+			DisBillEntryList() {
+				CommonUtils.doRequest2({
+					url: '/WEBSController/GetBillEntry_Tmp_Pack_Json',
+					data: {
+						"HInterID": this.hform.HInterID,
+						"HBillNo": this.hform.HBillNo,
+						"HBillType": this.HBillType
+					},
+					resFunction: (res) => {
+						let {
+							count,
+							data,
+							Message
+						} = res.data
+						this.listData = []
+						if (count == 1) {
+							for (let i = 0; i < data.length; i++) {
+								this.listData.push(Object.assign(data[i], {
+									index: i
+								}))
+							}
+
+
+						} else {
+
+						}
+					}
+				})
+			},
+
+			// 琛ㄦ牸閫夋嫨澶勭悊
+			handleSelect(selected, array) {
+				this.selectedRows = array
+			},
+
+			// 琛ㄦ牸鍏ㄩ�夊鐞�
+			handleSelectAll(selected, array) {
+				this.selectedRows = array
+			},
+			// 鎾斁鎻愮ず闊�
+			playSound(type) {
+				const innerAudioContext = uni.createInnerAudioContext();
+				innerAudioContext.src = type == 1 ? '/static/success.wav' : '/static/jingbao.wav';
+				innerAudioContext.play();
+			},
+
+
+			// 鑾峰彇鏈�澶у崟鎹彿
+			getMaxNo() {
+				CommonUtils.doRequest2({
+					url: "/WEBSController/GetMaxBillNoAndID_Json",
+					data: {
+						"HBillType": this.HBillType
+					},
+					resFunction: (d) => {
+						let {
+							count,
+							data,
+							Message
+						} = d.data
+						if (count == 1) {
+							this.hform.HInterID = data[0].HInterID;
+							this.hform.HBillNo = data[0].HBillNo
+						} else {
+							uni.showModal({
+								title: "娓╅Θ鎻愮ず",
+								showCancel: false,
+								content: Message
+							})
+						}
+					}
+				})
+			},
+
+			// 鎻愪氦鍓嶆鏌�
+			submitPreCheck() {
+				if (CommonUtils.isEmpty(this.hform.HInterID)) {
+					uni.showToast({
+						icon: 'none',
+						title: '鍗曟嵁鍐呯爜鑾峰彇澶辫触锛岄敊璇殑鍗曟嵁鍐呯爜锛�'
+					})
+					return false
+				}
+				if (CommonUtils.isEmpty(this.hform.HBillNo)) {
+					uni.showToast({
+						icon: 'none',
+						title: '鍗曟嵁鍙疯幏鍙栧け璐ワ紝閿欒鐨勫崟鎹彿锛�'
+					})
+					return false
+				}
+				if (this.listData.length < 1) {
+					uni.showToast({
+						icon: 'none',
+						title: '娌℃湁鎵爜淇℃伅锛岃鍏堟壂鎻忔潯鐮侊紝纭鏃犺鍚庡啀鎻愪氦锛�'
+					})
+					return false
+				}
+				return true
+			},
+
+			// 鍒犻櫎閫変腑琛�
+			cmdDelete() {
+				if (this.selectedRows.length != 1) {
+					return uni.showToast({
+						icon: 'none',
+						title: '璇烽�夋嫨涓�琛岃褰曪紝杩涜鍒犻櫎锛�'
+					})
+				}
+				uni.showModal({
+					title: '鍒犻櫎纭',
+					content: '纭瑕佸垹闄ら�変腑琛屾墍鏈夋壂鐮佽褰曪紵鍒犻櫎鍚庡皢涓嶅彲鎭㈠!',
+					success: ({
+						confirm
+					}) => {
+						if (confirm) {
+							CommonUtils.doRequest2({
+								url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
+								data: {
+									HInterID: this.hform.HInterID,
+									HBillType: this.HBillType,
+									HBarCode: this.selectedRows[0].HBarCode_SN
+								},
+								resFunction: (res) => {
+									let {
+										data,
+										count,
+										Message
+									} = res.data
+									if (count == 1) {
+										CommonUtils.playSound(1)
+										uni.showToast({
+											icon: 'none',
+											title: Message
+										})
+										this.DisBillEntryList()
+									} else {
+										CommonUtils.playSound(0)
+										uni.showToast({
+											icon: 'none',
+											title: Message
+										})
+									}
+								}
+							})
+						}
+					}
+				})
+			},
+
+			// 鎻愪氦鍗曟嵁
+			cmdSubmit() {
+				let checkRes = this.submitPreCheck()
+				if (!checkRes) return
+
+				this.EnableSubmit = false
+				CommonUtils.doRequest2({
+					url: '/CheckBarcodeController/Save_BarCode_BarcodeCheck',
+					data: {
+						"HInterID": this.hform.HInterID,
+						"HBillNo": this.hform.HBillNo
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							uni.showModal({
+								title: '娓╅Θ鎻愮ず',
+								content: Message,
+								confirmText: "鏂板",
+								cancelText: '鍏抽棴',
+								success: ({
+									confirm,
+									cancel
+								}) => {
+									if (confirm) {
+										uni.redirectTo({
+											url: "/pages/sanmaheyi/BarCodeCheck"
+										})
+									}
+									if (cancel) {
+										uni.navigateBack()
+									}
+								}
+							})
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+
+			// 閫�鍑洪〉闈�
+			cmdExit() {
+				uni.navigateBack()
+			}
+		},
+
+		// ==================== 鐢熷懡鍛ㄦ湡 ====================
+		async onReady() {
+			// 璁$畻琛ㄦ牸楂樺害
+			// #ifndef MP-WEIXIN
+			let query = uni.createSelectorQuery().in(this)
+			query.select("#bottom-btn").boundingClientRect((data) => {
+				if (data) this.bottomBtnTop = data.top
+			}).exec();
+			query.select("#list-table").boundingClientRect((data) => {
+				if (data) this.listTableTop = data.top
+			}).exec();
+			// #endif
+		},
+
+		onLoad(e) {
+			// 鍒濆鍖栧弬鏁�
+			this.BarCodeType = e.BarCodeType || 1
+			this.OperationType = e.OperationType || 1
+			this.HBarCode_Pallet = e.HBarCode_Pallet_Temp || ""
+			this.hform.HSourceBillNo = e.HSourceBillNo || ""
+			this.HBarCode_Destination = e.HBarCode_Destination || ""
+			this.HBarCode_MiddleBox = e.HBarCode_MiddleBox || ""
+
+			// 鏍规嵁鎿嶄綔绫诲瀷鍒濆鍖栨暟鎹�
+			if (this.OperationType == 1) {
+				this.getMaxNo() // 鏂板妯″紡锛氳幏鍙栨柊鍗曟嵁鍙�
+				// 鍒濆鍖栨椂鑱氱劍鍒版簮鍗曞崟鍙�
+				this.HSourcebillNoFocus = true
+			} else if (this.OperationType == 2) {
+				this.disableBarCodePallet = false
+				this.disableBarCodeDest = false
+				this.disableBarCodeMiddle = false
+				this.disableBarCodeSN = false
+				this.CheckBarcode(this.HBarCode_Pallet, 1) // 缂撳瓨妯″紡锛氬姞杞藉凡鏈夋暟鎹�
+				this.DisBillEntryList()
+				this.tabs = 0
+			}
+
+			// 榛樿鑱氱劍鍒版爤鏉跨爜杈撳叆妗�
+			this.HBarCodePalletFocusRefresh()			
+		},
+		onUnload() {
+			uni.$off('BillSelectComplete')
+		}
+	}
+</script>
+
+<style lang="scss">
+	input {
+		width: inherit;
+		padding: 8rpx 20rpx;
+		font-size: 30rpx;
+	}
+
+	.form {
+		display: flex;
+		flex-direction: column;
+		gap: 20rpx;
+
+		.form-base-info {
+			display: flex;
+			flex-direction: column;
+			gap: 10rpx;
+			box-sizing: border-box;
+			padding: 30rpx;
+		}
+
+		.bill-info {
+			display: flex;
+			flex-direction: column;
+			gap: 10rpx;
+			box-sizing: border-box;
+			padding: 16rpx 30rpx;
+		}
+
+		.form-item {
+			display: flex;
+			flex-direction: row;
+			gap: 10rpx;
+
+			.title {
+				width: 5rem;
+				flex-shrink: 0;
+			}
+
+			.right {
+				flex: 1;
+				border-radius: 22rpx;
+				border: 1px solid #acacac;
+			}
+
+			.disabled {
+				border: 1px solid #e4e4e4;
+				background-color: #e4e4e4;
+			}
+
+			.right-icon {
+				flex-shrink: 0;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.icon-wrapper {
+				background-color: #3A78FF;
+				border-radius: 100%;
+				width: 52rpx;
+				height: 52rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				flex-shrink: 0;
+
+				.uni-icons {
+					color: #fff !important;
+				}
+			}
+
+			.icon-wrapper[disabled] {
+				background-color: rgba(228, 228, 228, 1);
+				pointer-events: none;
+				touch-action: none;
+			}
+		}
+	}
+
+	.tabs {
+		width: 100%;
+		display: flex;
+		border-bottom: 1px solid #ddd;
+		margin: 20rpx 0;
+
+		view {
+			width: 25%;
+			font-size: 30rpx;
+			color: #555;
+			text-align: center;
+			padding: 16rpx 0;
+		}
+
+		.on {
+			color: #3a78ff;
+			font-weight: bold;
+			border-bottom: 3px solid #3a78ff;
+		}
+	}
+
+	.bottom-btn {
+		width: 100%;
+		box-sizing: border-box;
+		// height: 120rpx;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		background-color: #fff;
+		box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
+		padding: 30rpx 40rpx 40rpx 40rpx;
+		display: flex;
+		flex-direction: row;
+		gap: 10rpx;
+
+		button {
+			border-radius: 50rpx;
+			width: 180rpx;
+			height: 66rpx;
+			line-height: 66rpx;
+			font-size: 28rpx;
+		}
+
+		.btn-a {
+			background-color: #3A78FF;
+			color: #fff;
+		}
+
+		.btn-b {
+			background-color: #41a863;
+			color: #fff;
+		}
+
+		.btn-c {
+			background-color: #acacac;
+			color: #fff;
+			// position: absolute;
+			// right: 120rpx;
+		}
+
+		.btn-d {
+			background-color: #ff8901;
+			color: #fff;
+		}
+	}
+
+	.right-icon.disabled {
+		background-color: #ccc !important;
+		color: #666 !important;
+		cursor: not-allowed;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/simaheyi/table.vue b/pages/simaheyi/table.vue
new file mode 100644
index 0000000..b08c7ea
--- /dev/null
+++ b/pages/simaheyi/table.vue
@@ -0,0 +1,487 @@
+<template>
+	<view class="content">
+		<view class="tabs">
+			<view :class="tabs == 0 ? 'on':''" @tap="changeTab(0)">缂撳瓨鍒楄〃</view>
+		</view>
+
+		<view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
+
+		<view class="form" v-if="tabs == 0">
+			<view class="buttons" @tap="add">
+				<uni-icons type="plus" style="margin-right: 10rpx;" size="22"></uni-icons>鏂板
+			</view>
+		</view>
+
+		<view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
+
+		<view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==0">
+			<uni-card :title="item.鍒跺崟鏃ユ湡.substr(0,10)" :extra="item.鍗曟嵁鍙�" style="margin: 10px;"
+				@tap="showDetail = showDetail==index?-1:index">
+				<view class="card-detail">
+					<view class="detail" v-if="item.鎵樻潯鐮�">
+						<text>鎵樻潯鐮侊細</text>{{item.鎵樻潯鐮亇}
+					</view>
+					<view class="detail" v-if="item.HSourceBillNo">
+						<text>婧愬崟鍙凤細</text>{{item.HSourceBillNo}}
+					</view>
+					<view class="detail" v-if="item.鍒跺崟浜�">
+						<text>鍒跺崟浜猴細</text>{{item.鍒跺崟浜簘}
+					</view>
+					<view class="detail" v-if="item.鍒跺崟鏃ユ湡">
+						<text>鍒跺崟鏃ユ湡锛�</text>{{ item.鍒跺崟鏃ユ湡.split('T')[0] }}
+					</view>
+					<view class="detail" v-if="item.缁勭粐">
+						<text>缁勭粐锛�</text>{{item.缁勭粐}}
+					</view>
+				</view>
+
+				<view class="more">
+					<view class="part" style="border-right: 1px solid #eee;color: #3a78ff;" @tap.stop="edit(item)">
+						<uni-icons type="compose" style="color: #3a78ff;margin-right: 10rpx;" size="18"></uni-icons>缂栬緫
+					</view>
+					<view class="part" style="color: #da0000;" @tap.stop="del(item)">
+						<uni-icons type="trash" style="color: #da0000;margin-right: 10rpx;" size="18"></uni-icons>鍒犻櫎
+					</view>
+				</view>
+			</uni-card>
+		</view>
+		<view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==1">
+			<uni-card :title="item.鏃ユ湡" :extra="item.鍗曟嵁鍙�" style="margin: 10px;"
+				@tap="showDetail = showDetail==index?-1:index">
+				<view class="card-detail">
+					<view class="detail" v-if="item.鐘舵��">
+						<text>鐘舵�侊細</text>{{item.鐘舵�亇}
+					</view>
+					<view class="detail" v-if="item.鍒跺崟浜�">
+						<text>鍒跺崟浜猴細</text>{{item.鍒跺崟浜簘}
+					</view>
+					<view class="detail" v-if="item.鏁伴噺">
+						<text>鏁伴噺锛�</text>{{item.鏁伴噺}}
+					</view>
+					<view class="detail" v-if="item.婧愬崟鍗曞彿">
+						<text>婧愬崟鍗曞彿锛�</text>{{item.婧愬崟鍗曞彿}}
+					</view>
+					<view class="detail" v-if="item.鐗╂枡浠g爜">
+						<text>鐗╂枡浠g爜锛�</text>{{item.鐗╂枡浠g爜}}
+					</view>
+					<view class="detail" v-if="item.鐗╂枡鍚嶇О">
+						<text>鐗╂枡鍚嶇О锛�</text>{{item.鐗╂枡鍚嶇О}}
+					</view>
+					<view class="detail" v-if="item.瑙勬牸鍨嬪彿">
+						<text>瑙勬牸鍨嬪彿锛�</text>{{item.瑙勬牸鍨嬪彿}}
+					</view>
+					<view class="detail" v-if="item.缁勭粐">
+						<text>缁勭粐锛�</text>{{item.缁勭粐}}
+					</view>
+				</view>
+
+				<view class="more">
+					<view class="part" style="color: #3a78ff;width: 100%;" @tap.stop="qrCodeDisplay(item)">
+						<uni-icons type="scan" style="color: #3a78ff;margin-right: 10rpx;" size="18"></uni-icons>鏄剧ず浜岀淮鐮�
+					</view>
+					<view class="part" style="color: #d98d00;width: 100%;" @tap.stop="revoke(item)">
+						<uni-icons type="undo" style="color: #d98d00;margin-right: 10rpx;" size="18"></uni-icons>鎾ら攢
+					</view>
+				</view>
+			</uni-card>
+		</view>
+
+		<view class="over" v-if="!listData || listData.length == 0">鏆傛棤鏁版嵁</view>
+		<view class="over" v-if="listData.length != 0 && listData.length != showList.length">鍔犺浇涓�...</view>
+		<view class="over" v-if="listData.length != 0 && listData.length == showList.length">宸插埌搴�</view>
+		<BarCodePopupVue ref="barcodePopup"></BarCodePopupVue>
+	</view>
+</template>
+
+<script>
+	import dayjs from "dayjs";
+	import {
+		getUserInfo
+	} from "@/utils/auth.js";
+	import BarCodePopupVue from "../../components/BarCodePopup/BarCodePopup.vue";
+	export default {
+		data() {
+			return {
+				userInfo: getUserInfo(),
+				serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
+				tabs: 0,
+				urls: '/WEBSController/GetSc_PackUnionBill_TempList_Json',
+				MvarReportTitle: '瑁呯鍗曠紦瀛樺垪琛�',
+				hform: {
+					// HBillNo: '',
+					// HSourceBillNo: '',
+					HBillType: 3783,
+					HMaker: uni.getStorageSync('HUserName'),
+					HStockOrgID: uni.getStorageSync('OrganizationID'),
+				},
+				sWhere: '',
+				listData: [],
+				showList: [],
+				showDetail: -1,
+
+				page: 1,
+			}
+		},
+		components: {
+			BarCodePopupVue
+		},
+		onShow() {
+			//鐢ㄦ埛妯″潡鏉冮檺鍒ゆ柇
+			this.CheckModRight()
+			this.changeTab(0)
+			console.log(this.userInfo, uni.getStorageSync('HUserName'))
+		},
+		onReachBottom: function() {
+			this.page++
+			setTimeout(() => {
+				this.showList = this.showList.concat(this.getPage(this.page, this.listData))
+			}, 100)
+		},
+		onPullDownRefresh: function() {
+			this.clear()
+			setTimeout(() => {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		methods: {
+			async qrCodeDisplay(item) {
+				this.$refs.barcodePopup.setCodeInfo(item.HBillNo)
+				await this.$nextTick()
+				this.$refs.barcodePopup.open()
+			},
+			CheckModRight() {
+				uni.request({
+					url: this.serverUrl + '/WEBSController/CheckModRight_Json',
+					data: {
+						ModRightName: 'CE_PackUnion',
+						HUserName: uni.getStorageSync('HUserName')
+					},
+					success: (res) => {
+						if (res.data.count == 1) {} else {
+							uni.showToast({
+								title: res.data.Message,
+								icon: 'none'
+							})
+						}
+					},
+					fail: (res) => {
+						console.log(res);
+						uni.showToast({
+							title: '鎺ュ彛璇锋眰澶辫触',
+							icon: 'none'
+						})
+					},
+				});
+			},
+			getPage(page, list) {
+				let sindex = (parseInt(page) - 1) * 20
+				let eindex = parseInt(page) * 20
+				let newList = list.slice(sindex, eindex)
+				return newList
+			},
+			changeTab(e) {
+				this.tabs = e
+				this.page = 1
+				this.showList = []
+
+				if (this.tabs == 0) {
+					this.urls = '/WEBSController/GetSc_PackUnionBill_TempList_Json'
+				}
+				// if(this.tabs == 1){
+				// 	this.urls = '/WEBSController/GetKf_ICStockBillQueryList_User_Json'
+				// }
+				this.getList()
+			},
+			getList() {
+				uni.showLoading({
+					title: '鍔犺浇涓�...'
+				})
+				uni.request({
+					url: this.serverUrl + this.urls,
+					data: this.hform,
+					success: (res) => {
+						console.log(1, res);
+						if (res.data.count == 1) {
+							this.listData = res.data.data
+							this.showList = this.getPage(this.page, this.listData)
+							setTimeout(() => {
+								uni.hideLoading()
+							}, 1000)
+						} else {
+							uni.hideLoading()
+							this.listData = []
+							uni.showToast({
+								title: res.data.Message,
+								icon: 'none'
+							})
+						}
+					},
+					fail: (res) => {
+						console.log(res);
+						uni.hideLoading()
+						uni.showToast({
+							title: '鎺ュ彛璇锋眰澶辫触',
+							icon: 'none'
+						})
+					},
+				});
+			},
+			search() {
+				this.sWhere = ''
+				this.listData = []
+				this.page = 1
+				this.showList = []
+
+				console.log(this.hform)
+				this.getList()
+			},
+			clear() {
+				this.listData = []
+				this.page = 1
+				this.showList = []
+
+				this.sWhere = ''
+				this.hform = {
+					HBillNo: '',
+					HSourceBillNo: '',
+					HBillType: 3783,
+					HMaker: uni.getStorageSync('HUserName'),
+					HStockOrgID: uni.getStorageSync('OrganizationID'),
+				}
+				this.getList()
+			},
+			add() {
+				uni.navigateTo({
+					url: './form?OperationType=1'
+				})
+			},
+			//缂栬緫
+			edit(item) {
+				console.log(item)
+				uni.navigateTo({
+					url: './form?OperationType=2&HBarCode_Pack_Temp=' + item["HBarCode_Pack"] + '&HSourceBillNo=' +item["HSourceBillNo"],
+				})
+			},
+			//鍒犻櫎
+			del(item) {
+				// console.log(item.hmainid,uni.getStorageSync('HUserName'))
+				uni.showModal({
+					title: '鎻愮ず',
+					content: '纭瑕佸垹闄よ褰曪紵鍒犻櫎鍚庝笉鑳芥仮澶�',
+					success: (res) => {
+						if (res.confirm) {
+							console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+							uni.request({
+								url: this.serverUrl +
+									'/WEBSController/DeleteTemp_PackUnionBill_Json',
+								data: {
+									HInterID: item.HInterID,
+								},
+								success: (res) => {
+									console.log(1, res);
+									if (res.data.count == 1) {
+										this.clear()
+									}
+									uni.showToast({
+										title: res.data.Message,
+										icon: 'none'
+									})
+								},
+								fail: (res) => {
+									console.log(res);
+									uni.hideLoading()
+									uni.showToast({
+										title: '鎺ュ彛璇锋眰澶辫触',
+										icon: 'none'
+									})
+								},
+							});
+						} else if (res.cancel) {
+							console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+						}
+					}
+				});
+			},
+			//鎾ら攢
+			revoke(item) {
+				// console.log(item.hmainid,uni.getStorageSync('HUserName'))
+				uni.showModal({
+					title: '鎻愮ず',
+					content: '鏄惁纭鎾ら攢',
+					success: (res) => {
+						if (res.confirm) {
+							console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+							uni.request({
+								url: this.serverUrl +
+									'/WEBSController/set_DeleteICStockBillAndWMS_Json',
+								data: {
+									HInterID: item.HInterID,
+									HBillNo: item.鍗曟嵁鍙�,
+									HBillType: this.hform.HBillType,
+									HMaker: uni.getStorageSync('HUserName'),
+									MvarReportTitle: this.MvarReportTitle,
+								},
+								success: (res) => {
+									console.log(1, res);
+									if (res.data.count == 1) {
+										this.clear()
+									}
+									uni.showToast({
+										title: res.data.Message,
+										icon: 'none'
+									})
+								},
+								fail: (res) => {
+									console.log(res);
+									uni.hideLoading()
+									uni.showToast({
+										title: '鎺ュ彛璇锋眰澶辫触',
+										icon: 'none'
+									})
+								},
+							});
+						} else if (res.cancel) {
+							console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+						}
+					}
+				});
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.form {
+		width: 640rpx;
+		margin: 20rpx auto;
+		margin-top: 90rpx;
+	}
+
+	.tabs {
+		width: 100%;
+		position: fixed;
+		left: 0;
+		z-index: 9;
+		display: flex;
+		background-color: #e5e5e5;
+
+		view {
+			width: 50%;
+			font-size: 30rpx;
+			color: #333;
+			text-align: center;
+			padding: 16rpx 0;
+		}
+
+		.on {
+			color: #3a78ff;
+			font-weight: bold;
+			border-bottom: 3px solid #3a78ff;
+		}
+	}
+
+	.buttons {
+		width: 100%;
+		display: flex;
+		justify-content: center;
+		margin-top: 20rpx;
+
+		button {
+			border-radius: 50rpx;
+			width: 180rpx;
+			height: 66rpx;
+			line-height: 66rpx;
+			font-size: 28rpx;
+		}
+
+		.btn-a {
+			background-color: #acacac;
+			color: #fff;
+		}
+
+		.btn-b {
+			background-color: #41a863;
+			color: #fff;
+		}
+
+		.btn-c {
+			background-color: #3a78ff;
+			color: #fff;
+		}
+	}
+
+	.form-item {
+		display: flex;
+		align-items: center;
+		font-size: 28rpx;
+		padding: 6rpx 0;
+
+		.title {
+			width: 180rpx;
+
+			text {
+				color: red;
+				font-weight: bold;
+			}
+		}
+
+		.right {
+			width: 450rpx;
+			border-radius: 22rpx;
+			border: 1px solid #acacac;
+		}
+
+		.righton {
+			width: 450rpx;
+			border-radius: 22rpx;
+			border: 1px solid #e4e4e4;
+			background-color: #e4e4e4;
+		}
+
+		input {
+			width: 100%;
+			padding: 8rpx 20rpx;
+			font-size: 30rpx;
+		}
+	}
+
+	.list {
+		width: 100%;
+
+		.card-detail {
+			width: 100%;
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+			line-height: 120%;
+
+			.detail {
+				// width: 50%;
+				font-size: 26rpx;
+				margin-bottom: 12rpx;
+				color: #555;
+				margin-right: 20rpx;
+
+				text {
+					color: #999;
+					font-size: 26rpx;
+				}
+			}
+		}
+
+		.more {
+			color: #888;
+			font-size: 26rpx;
+			display: flex;
+			border-top: 1px solid #eee;
+			padding-top: 20rpx;
+
+			.part {
+				width: 50%;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			}
+		}
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.1