From 8d3ebc610d048289f8ca4d8bc86ac11208a60fef Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 29 一月 2026 19:47:27 +0800
Subject: [PATCH] #

---
 pages/inspect/check.vue |  466 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 251 insertions(+), 215 deletions(-)

diff --git a/pages/inspect/check.vue b/pages/inspect/check.vue
index a8ebbce..c64ce93 100644
--- a/pages/inspect/check.vue
+++ b/pages/inspect/check.vue
@@ -2,258 +2,294 @@
 	<view class="has-foot">
 		<form>
 			<view class="cu-form-group margin-top">
-				<view class="title">瀹瑰櫒鍙�</view>
-				<input placeholder="璇锋壂鎻忓鍣ㄧ紪鐮�" v-model="isptCode" focus></input>
-				<text class='cuIcon-search text-blue' @click="search"></text>
+				<view class="title">鎵樼洏鐮�</view>
+				<input
+					placeholder="璇锋壂鎻忔墭鐩樼爜"
+					v-model="container"
+					focus
+				/>
 			</view>
 
-			<view class="cu-form-group ">
-				<view class="title">鐗╂枡鍙�</view>
-				<input placeholder="璇锋壂鎻忕墿鏂欑紪鐮�" v-model="barcode"></input>
-				<text class='cuIcon-search text-blue' @click="scrollTo"></text>
+			<view class="cu-form-group">
+				<view class="title">鐗╂枡鏍囩</view>
+				<input
+					placeholder="璇锋壂鎻忕墿鏂欐爣绛�"
+					v-model="barcode"
+				/>
+				<text
+					class="cuIcon-search text-blue"
+					@click="search"
+				></text>
 			</view>
 		</form>
+		<view class="flex solid-bottom padding-sm justify-between">
+			<view class="text-blue">鐗╂枡绉嶇被:{{ list.length }}</view>
+			<view class="text-red">閿佸畾鏁伴噺:{{ allCount }}</view>
+		</view>
+		<view
+			class="flex solid-bottom padding-sm justify-between"
+			v-if="list.length"
+		>
+			<view class="text-blue">搴撲綅鍙�:{{ list[0].locCode }}</view>
+		</view>
 
-		<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.matnrCode===barcode&&'act']"
-					:ref="item.matnrCode+'ref'">
-
-					<view class="cu-bar bg-white solid-bottom ">
-						<view class="action">
-							<view class="index">
-								{{index+1}}
-							</view>
-							<view class="text-blue">
-								{{`${item.maktx}`}}
-							</view>
-						</view>
-						<view class="action">
-							<text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
+		<view
+			class="cu-list det menu sm-border padding"
+			style="padding-bottom: 60px"
+		>
+			<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="cu-item">
-						<view class="content">
-							<text class="text-black">ASN:</text>
-						</view>
-						<view class="action">
-							<text class="text-grey ">{{item.asnCode}}</text>
+					<!-- <view class="action">
+						<view class="cu-tag radius bg-red">涓嶅悎鏍�</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>
+					</view>
+					<view class="action">
+						<text class="text-grey">{{ item.matnrCode }}</text>
+					</view>
+				</view>
+				<view class="cu-item">
+					<view class="content">
+						<text class="text-black">璁″垝璺熻釜鍙�:</text>
+					</view>
+					<view class="action">
+						<text class="text-grey">{{ item.platWorkCode }}</text>
+					</view>
+				</view>
+
+				<view class="cu-item">
+					<view class="content">
+						<text class="text-black">鍗曞彿:</text>
+					</view>
+					<view class="action">
+						<text class="text-grey">{{ item.asnCode }}</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>
+					</view>
+					<view class="action">
+						<text class="text-grey">{{ item.stockUnit }}</text>
+					</view>
+				</view>
+
+				<!-- <view class="cu-item">
+					<view class="content">
+						<view class="cu-form-group padding-lr-0">
+							<view class="title text-blue">鏁伴噺:</view>
+							<input
+								class="text-right"
+								type="number"
+								placeholder="璇疯緭鍏ユ暟閲�"
+								v-model="item.receiptQty"
+								focus
+							/>
 						</view>
 					</view>
-
-					<view class="cu-item">
-						<view class="content">
-							<text class="text-black">渚涘簲鍟�:</text>
-						</view>
-						<view class="action">
-							<text class="text-grey ">{{item.splrName}}</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.rcptQty}}</text></text>
-						</view>
-
-						<view class="content">
-							<text class="text-black">閫佽揣鏁伴噺: <text class="text-grey ">{{item.dlyQty}}</text></text>
-						</view>
-					</view>
-
-					<view class="cu-item">
-						<view class="content">
-							<view class="cu-form-group padding-lr-0">
-								<view class="title text-blue">鍚堟牸鏁伴噺:</view>
-								<input type="number" placeholder="璇疯緭鍏ュ悎鏍兼暟閲�" v-model="item.safeQty"></input>
-							</view>
-						</view>
-					</view>
-
-					<view class="cu-item">
-						<view class="content">
-							<view class="cu-form-group padding-lr-0">
-								<view class="title text-blue">涓嶅悎鏍兼暟閲�:</view>
-								<input type="number" placeholder="璇疯緭鍏ヤ笉鍚堟牸鏁伴噺" v-model="item.disQty"></input>
-							</view>
-						</view>
-					</view>
-
-					<view class="cu-item">
-						<view class="content">
-							<view class="cu-form-group padding-lr-0">
-								<view class="title text-blue">璐ㄦ缁撹:</view>
-
-								<uni-data-select placement='top' v-model="item.isptResult" :localdata="range"
-									placeholder="璇疯緭鍏ヨ川妫�缁撹"></uni-data-select>
-							</view>
-						</view>
-					</view>
-
-					<view class="cu-form-group align-start">
-						<view class="title text-blue">澶囨敞</view>
-						<textarea v-model="item.memo" placeholder="璇疯緭鍏ュ娉�"></textarea>
-					</view>
-
-					<!-- 	<view class="cu-form-group">
-					<uni-file-picker limit="9" title="鐓х墖"></uni-file-picker>
 				</view> -->
 
-
+				<view class="margin-top-sm flex">
+					<uni-data-checkbox
+						mode="tag"
+						v-model="item.status"
+						:localdata="types"
+					></uni-data-checkbox>
 				</view>
 			</block>
 		</view>
+
 		<view class="cu-bar btn-group foot">
-			<button class="cu-btn text-blue line-blue shadow" @click="clear">娓呯┖</button>
-			<button class="cu-btn bg-blue shadow-blur" @click="confirm">瑙i攣</button>
+			<button
+				v-if="hasButtonPermission('reset')"
+				class="cu-btn text-blue line-blue shadow"
+				@click="clear"
+			>
+				娓呯┖
+			</button>
+			<button
+				v-if="hasButtonPermission('submit')"
+				class="cu-btn bg-blue shadow-blur"
+				@click="confirm"
+			>
+				瑙i攣
+			</button>
 		</view>
 
+		<ConfirmModal
+			:visible="showModal"
+			@update:visible="showModal = $event"
+			icon="check"
+			title="瑙i攣纭"
+			message="鏄惁纭畾瑙i攣锛�"
+			cancelText="涓嶉渶瑕�"
+			confirmText="纭畾"
+			:isconfirm="isconfirm"
+			@cancel="handleNo"
+			@confirm="handleYes"
+		></ConfirmModal>
 	</view>
 </template>
 
 <script>
-	import {
-		request
-	} from '../../common/request.js'
-	import {
-		mapState,
-		mapMutations,
-		mapActions,
-		mapGetters
-	} from 'vuex';
-	export default {
-		data() {
-			return {
-				barcode: '',
-				isptCode: '',
-				list: [],
-				range: [{
-					value: '1',
-					text: '鍚堟牸'
-				}, {
-					value: '2',
-					text: '涓嶅悎鏍�'
-				}, {
-					value: '3',
-					text: '寰呭畾'
-				}, {
-					value: '4',
-					text: '閮ㄥ垎鍚堟牸'
-				}],
-			}
-		},
-		computed: {
-			...mapState('user', ['dynamicFields']),
-		},
-		mounted() {},
-		methods: {
-			async search() {
-				const {
-					code,
-					data,
-					msg
-				} = await request('/inspect/query', {
-					isptCode: this.isptCode,
-				})
-				if (code === 200) {
-					this.list = data
-				} else {
-					uni.showToast({
-						title: msg,
-						icon: "none",
-						position: 'top'
-					})
+import { request } from '../../common/request.js'
+import ConfirmModal from '../../components/confirm-modal/confirm-modal.vue'
+
+export default {
+	components: {
+		ConfirmModal
+	},
+	data() {
+		return {
+			barcode: '',
+			container: '',
+			list: [],
+			range: [],
+			isconfirm: false,
+			types: [
+				{
+					text: '姝e父',
+					value: 1
+				},
+				{
+					text: '閿佸畾',
+					value: 0
 				}
-
-
-			},
-			remove(index) {
-				this.list.splice(index, 1);
-			},
-			clear() {
-				this.list = []
-				this.barcode = ''
-			},
-			scrollTo() {
-				const ref = this.$refs[`${this.barcode}ref`][0];
-				uni.pageScrollTo({
-					scrollTop: ref.$el.offsetTop,
-					duration: 300
-				})
-			},
-			async confirm() {
-				const {
-					code,
-					data,
-					msg
-				} = await request('/inspect/check/update', this.list)
+			],
+			showModal: false,
+			buttonPermissions: [] // 鎸夐挳鏉冮檺鍒楄〃
+		}
+	},
+	computed: {
+		allCount() {
+			return this.list.reduce(
+				(acc, row) => (row.status == 0 ? acc + 1 : acc),
+				0
+			)
+		}
+	},
+	mounted() {
+		this.buttonPermissions = uni.getStorageSync('buttonPermissions') || []
+	},
+	methods: {
+		// 妫�鏌ユ寜閽潈闄�
+		hasButtonPermission(route) {
+			return this.buttonPermissions.includes(route)
+		},
+		handleNo() {
+			this.showModal = false
+		},
+		async handleYes() {
+			this.isconfirm = true
+			try {
+				const { code, data, msg } = await request(
+					'/other/inspectConfirm2',
+					{
+						matnrList: this.list
+					},
+					'post'
+				)
 				if (code === 200) {
 					uni.showToast({
-						title: '璐ㄦ鎴愬姛'
+						title: '鎻愪氦鎴愬姛'
 					})
 					this.list = []
 					this.barcode = ''
+					this.container = ''
 				} else {
 					uni.showToast({
 						title: msg,
-						icon: "none",
+						icon: 'none',
+						position: 'top'
 					})
 				}
-
-
-
-			},
-
+			} finally {
+				this.showModal = false
+				this.isconfirm = false
+			}
+		},
+		// 鍏抽棴AGV纭寮圭獥
+		closeModal() {
+			this.showModal = false
+		},
+		async search() {
+			const { code, data, msg } = await request(
+				'/other/inspectList',
+				{
+					containerNo: this.container,
+					matnrCode: this.barcode
+				},
+				'post'
+			)
+			if (code === 200) {
+				this.list = data
+			} else {
+				uni.showToast({
+					title: msg,
+					icon: 'none',
+					position: 'top'
+				})
+			}
+		},
+		async confirm() {
+			this.showModal = true
 		}
 	}
+}
 </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;
-	}
+.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;
+.text-blue {
+	color: #0081ff !important;
+}
 
-	}
-
-	.act {
-		border: 1px solid #e54d42;
-	}
-
-	.item {
-		position: relative;
-		display: flex;
-		min-height: 80upx;
-		align-items: center;
-	}
-
-	.uni-file-picker {
-		width: 100%;
-		margin-bottom: 10px;
-	}
-
-	.uni-select__selector {
-		z-index: 999;
-	}
-</style>
\ No newline at end of file
+.item {
+	position: relative;
+	display: flex;
+	min-height: 80upx;
+	align-items: center;
+}
+</style>

--
Gitblit v1.9.1