From f26f29d84e0a68831a6af14dab3eec5500496d2e Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 28 五月 2025 16:48:52 +0800
Subject: [PATCH] 初始化项目

---
 pages/wareHouse/outsource/check.vue |  209 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 209 insertions(+), 0 deletions(-)

diff --git a/pages/wareHouse/outsource/check.vue b/pages/wareHouse/outsource/check.vue
new file mode 100644
index 0000000..514bcf1
--- /dev/null
+++ b/pages/wareHouse/outsource/check.vue
@@ -0,0 +1,209 @@
+<template>
+	<layout title="妫�娴�" @scanHandle="addScanCode">
+		<view style="padding-top: 100rpx;" v-if="list.length == 0">
+			<u-empty text="璇锋壂鐮�" mode="list" icon-color="black" color="black"></u-empty>
+		</view>
+		<view class="formWrap">
+			<view class="formBox" v-for="(item, index) in list" :key="item.certificateNumber" :index="index">
+				<u-form class="form" :model="item" :rules="rules" :ref="item.certificateNumber" label-position="left">
+					<u-form-item label="鎶ユ娴佹按鍙�" prop="inspectionSerialNo" label-width="180" >
+						<text>{{item.inspectionSerialNo}}</text>
+					</u-form-item>
+					<u-form-item label="鍚堟牸璇佸彿" prop="certificateNumber" label-width="180" >
+						<text>{{item.certificateNumber}}</text>
+					</u-form-item>
+					<u-form-item label="闀垮害(km)" prop="inspectionQuantity" label-width="180" >
+						<text>{{item.inspectionQuantity}}</text>
+					</u-form-item>
+					<u-form-item label="鎶ユ鐘舵��" prop="samplingState" label-width="180" >
+						<text>{{defaultState}}</text>
+					</u-form-item>
+					<u-form-item label="妫�娴嬬粨鏋�" prop="result" label-width="180" >
+						<view @click="showSelect(item, index)">{{formatResult(item.inspState) || '璇烽�夋嫨'}}<u-icon name="arrow-down-fill"></u-icon></view>
+						<u-select v-model="item.selectShow" :list="results" @confirm="selectResult"></u-select>
+					</u-form-item>
+					<u-form-item label="妫�娴嬫椂闂�" prop="createTime" label-width="180" >
+						<text>{{nowTime}}</text>
+					</u-form-item>
+					
+				</u-form>
+				<view class="delBtnWrap">
+					<u-button class="delBtn" type="primary" size="mini"  @click="deleteItem(item)">
+						<u-icon size="30" name="trash" class="icon"/>鍒犻櫎
+					</u-button>
+				</view>	
+			</view>
+			
+		</view>
+		<view class="form-footer" v-if="list.length > 0">
+			<u-button class="btn" type="primary" @click="submit">妫�娴�</u-button>
+		</view>
+		<scan></scan>
+	</layout>
+</template>
+
+<script>
+	import scan from "@/components/scan/scan.vue";
+	import util from "@/util/ble/util.js";
+	import layout from "./layout";
+	export default {
+		components: {
+			scan,layout
+		},
+		data() {
+			return {
+				defaultState:'宸叉姤妫�',
+				type: 'declaration',//inspDeclaration锛氭姤妫�  sampling锛氭娊妫�  declaration锛氭娴�  packaging锛氬寘瑁�  stock锛氬叆搴�
+				list: [
+					// {
+					// id: 0,
+					// no: 'BJ00001',
+					// certificateNo:'00001',
+					// len:0.2,
+					// state:defaultState,
+					// result:'r0',
+					// selectShow:false,
+					// createTime:util.formatTime(new Date())
+					// },
+				],
+				selectIndex:0,
+				results:[{
+					value: 'inspPass',
+					label: '鍚堟牸'
+				},
+				{
+					value: 'insp_release',
+					label: '璁╂鏀捐'
+				},{
+					value: 'insp_reverse',
+					label: '閫�鍥�'
+				}],
+				rules: {
+					// len: [{
+					// 	required: true,
+					// 	message: '闀垮害涓嶈兘涓虹┖',
+					// 	trigger: 'blur'
+					// }],
+				},
+				nowTime:util.formatTime(new Date())
+			}
+		},
+		onShow() {
+		
+			let that = this
+		
+			uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+			uni.$on('scan', function(data) {
+				console.log('onscan');
+				//鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
+				console.log('鎵爜缁撴灉锛�', data.code);
+				that.addScanCode(data.code)
+				that.$forceUpdate();
+		
+			})
+		},
+		onNavigationBarButtonTap(e) {
+			uni.scanCode({
+				success: res => {
+					try {
+						// uni.showToast({
+						// 	title:res.result
+						// })
+						// const result = JSON.parse(res.result)
+						// console.log('鎵爜缁撴灉锛�', result);
+						this.addScanCode(res.result)
+					} catch (e) {}
+				}
+			});
+		},
+		onLoad(){
+			// this.addScanCode('00004')
+			// this.addScanCode('00001')
+		},
+		methods: {
+			showSelect(item, index) {
+				this.$set(item, 'selectShow', true)
+				this.selectIndex = index
+			},
+			selectResult(e){
+				console.log(e);
+				this.list[this.selectIndex].inspState = e[0].value
+			},
+			formatResult(value){
+				let res = ''
+				for (var i = 0; i < this.results.length; i++) {
+					if(this.results[i].value == value) {
+						res = this.results[i].label
+						break
+					}
+				}
+				return res
+			},
+			//鑾峰彇鎵竴鎵暟鎹�
+			addScanCode(code){
+				//妫�娴嬫槸鍚﹀凡鎵繃
+				let result = this.list.find(item => item.certificateNumber==code)
+				if (result) {
+					this.$u.toast('宸插瓨鍦ㄥ垪琛ㄤ腑')
+				} else {
+					//娣诲姞涓�鏉℃暟鎹�
+					let param = {
+						current: 1,
+						size: 100,
+						certificateNumber:code
+					}
+					this.$u.api.outsource.queryData(param).then(res => {
+						if (res.code === 0) {
+							let data = res.data.records
+							console.log(data);
+							let exist = false
+							if (data.length > 0) {
+								for (var i = 0; i < data.length; i++) {
+									if (data[i].state == 'unInsp') {
+										//鍙栧凡鎶芥銆佸緟妫�娴嬬殑,妫�娴嬬粨鏋滈粯璁ゅ悎鏍�
+										data[i].inspState = 'inspPass'
+										this.list.push(data[i])
+										exist = true
+									}
+								}
+							} 
+							if (!exist){
+								this.$u.toast('娌℃湁鍙娴嬬殑鏁版嵁')
+							}
+							
+						}
+						
+					});
+				}
+				
+			},
+			//鎻愪氦
+			submit(){
+				this.$u.api.outsource.submitReport(this.list, this.type).then(res => {
+					if (res.code == 0) { 
+						this.$u.toast('鎻愪氦鎴愬姛')
+						this.list = []
+					} else {
+						this.$u.toast('鎻愪氦澶辫触')
+					}
+				});
+			},
+			deleteItem(model) {
+				uni.showModal({
+					title: '鎻愮ず',
+					content: '鏄惁纭畾鍒犻櫎?',
+					success: res => {
+						if (res.confirm) {
+							this.list = this.list.filter(item => item.certificateNo!=model.certificateNo)
+						}
+					}
+				});
+				
+			}
+		}
+	}
+</script>
+
+<style>
+
+</style>

--
Gitblit v1.9.3