From 8081e115c0d8ffd0dd572e02a4dfa28818ad2d5a Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期一, 12 五月 2025 17:09:40 +0800
Subject: [PATCH] 1.采购入库实现35%

---
 config/api.js             |   16 
 pages/wlgl/cgrk3.vue      |  483 ++++++++++++++++
 pages/login/index.vue     |    6 
 pages/wlgl/cgrk2.vue      |  163 +++++
 pages/wlgl/cgrk4.vue      |  460 +++++++++++++++
 pages.json                |    7 
 pages/zlgl/rcjy.vue       |    4 
 .hbuilderx/launch.json    |    2 
 pages/wlgl/cgrk.vue       |   89 +++
 pages/wlgl/cgrk4_back.vue |  460 +++++++++++++++
 10 files changed, 1,683 insertions(+), 7 deletions(-)

diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
index f2d09b0..39bb1f7 100644
--- a/.hbuilderx/launch.json
+++ b/.hbuilderx/launch.json
@@ -2,7 +2,7 @@
     "version" : "1.0",
     "configurations" : [
         {
-            "playground" : "standard",
+            "playground" : "custom",
             "type" : "uni-app:app-android"
         },
         {
diff --git a/config/api.js b/config/api.js
index 1a7486c..c65879d 100644
--- a/config/api.js
+++ b/config/api.js
@@ -383,4 +383,18 @@
 //鍏ュ巶妫�楠�,鏍规嵁閫夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
 export const InFactoryCheckItem = (data, config = {}) => http.get(
 	'/AppQualityManagement/InFactoryCheckItem' +
-	data, config)
\ No newline at end of file
+	data, config)
+
+
+//浠撲綅鏌ヨ浠撳簱
+export const WarehouseLocationSearchStoreHouse = (data, config = {}) => http.get(
+	'/GeneralBasicData/WarehouseLocationSearchStoreHouse', {
+		params: data
+	})
+
+
+
+
+//閲囪喘鍏ュ簱鎻愪氦
+export const MesAppPurchInStorSave = (data1, data2, config = {}) => http.post(
+	'/AppPurchManagement/MesAppPurchInStorSave' + data1, data2, config)
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 0dd6ebc..511f117 100644
--- a/pages.json
+++ b/pages.json
@@ -404,6 +404,13 @@
 				"navigationStyle": "custom",
 				"enablePullDownRefresh": false
 			}
+		}, {
+			"path": "pages/wlgl/cgrk4",
+			"style": {
+				"navigationBarTitleText": "閲囪喘鍏ュ簱",
+				"navigationStyle": "custom",
+				"enablePullDownRefresh": false
+			}
 		},
 		{
 			"path": "pages/wlgl/cgdh",
diff --git a/pages/login/index.vue b/pages/login/index.vue
index 65e4952..ccca08a 100644
--- a/pages/login/index.vue
+++ b/pages/login/index.vue
@@ -74,14 +74,14 @@
 		data() {
 			return {
 				// #ifdef H5
-				usercode: '',
+				usercode: '001',
 				// #endif
 
 				// #ifdef APP-PLUS
-				usercode: '',
+				usercode: '999',
 				// #endif
 
-				userpassword: '',
+				userpassword: '123',
 				isView: false, //瀵嗙爜鏄惁鍙
 
 				isDisabledSubmitButton: false, //鎻愪氦鎸夐挳鏄惁澶勪簬鍔犺浇涓�
diff --git a/pages/wlgl/cgrk.vue b/pages/wlgl/cgrk.vue
index e69de29..f083e65 100644
--- a/pages/wlgl/cgrk.vue
+++ b/pages/wlgl/cgrk.vue
@@ -0,0 +1,89 @@
+<template>
+	<view>
+		<page-nav title="閲囪喘鍏ュ簱1"></page-nav>
+		<view class="body" style="flex-direction: column;">
+			<u-button type="primary" icon='plus-circle' size='large' style="width: 96%;margin-left: 2%;margin-top: 70%;"
+				:plain="true" :hairline="true" @click="navigateTo" text="閫夋嫨閲囪喘璁㈠崟"></u-button>
+
+			<u-button type="primary" icon='scan' size='large' style="width: 96%;margin-left: 2%;margin-top: 4%;"
+				:plain="true" :hairline="true" @click="navigateTo2" text="鎵弿鍒拌揣鏍囩"></u-button>
+		</view>
+	</view>
+</template>
+
+
+<script>
+	// import {
+
+
+	// } from '../../config/api.js';
+	const App = getApp()
+	export default {
+		onLoad(option) {
+
+		},
+
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+
+		data() {
+			return {
+
+
+
+			}
+		},
+		created() {
+
+		},
+		mounted() {
+			this.init()
+
+		},
+		methods: {
+			navigateTo() {
+				uni.navigateTo({
+					url: './cgrk2' //閫夋嫨閲囪喘璁㈠崟
+				});
+			},
+			navigateTo2() {
+				uni.navigateTo({
+					url: './cgrk3' //鎵弿鍒拌揣鏍囩
+				});
+			},
+			init() {
+				uni.stopPullDownRefresh();
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+
+	.body {
+		background-color: #f6f7fb !important;
+		width: 100%;
+		height: 1400rpx;
+		display: flex;
+		align-items: center;
+	}
+
+
+	.u-button--large {
+		position: relative;
+	}
+
+	::v-deep .uicon-plus-circle {
+		font-size: 32rpx !important;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/wlgl/cgrk2.vue b/pages/wlgl/cgrk2.vue
index e69de29..63e059a 100644
--- a/pages/wlgl/cgrk2.vue
+++ b/pages/wlgl/cgrk2.vue
@@ -0,0 +1,163 @@
+<template>
+	<view>
+		<page-nav title="閲囪喘鍏ュ簱2"></page-nav>
+
+
+		<view v-if="purchorderArrAll.length===0">
+			<div class="sacnBody">
+				<div class="boxImg"></div>
+				<div class="scanText">鏆傛棤閲囪喘鍒拌揣</div>
+			</div>
+		</view>
+
+
+		<view v-if="purchorderArrAll.length>0">
+			<!-- <view class="mainContent" :style="{maxHeight: '1340rpx',overflow: 'scroll',padding:0}"> -->
+			<u--input prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" placeholder="杈撳叆閲囪喘璁㈠崟鍙�"
+				clearable border="surround" @clear='inputBoxValueClear' v-model="inputBoxValue"
+				@change="changeInputBoxValue"></u--input>
+
+			<u-alert :title="'閲囪喘璁㈠崟鏁帮紙鍏�'+title+'涓級'" type="primary"></u-alert>
+
+			<u-radio-group v-model="radioValue" iconPlacement="right" @change="radioValueClick" class="radioGroupClass">
+				<view v-for="(item,index) in purchorderArr" :key="item.ordercode">
+					<!-- @click="radioValueClick(item.code)" -->
+					<view>
+						<u-radio activeColor="red" size="18" labelSize='18' :name='item.ordercode'
+							:label="item.ordercode"></u-radio>
+					</view>
+					<u-line v-if="index!==purchorderArr.length-1" color="#2979ff"></u-line>
+				</view>
+			</u-radio-group>
+
+			<view class="footer" style="min-height:62rpx;">
+				<u-button type="primary" size='large' :hairline="true" @click="navigateTo" text="涓嬩竴姝�"></u-button>
+			</view>
+			<!-- </view> -->
+		</view>
+
+
+		<view v-if="purchorderArrAll.length===0">
+			<div class="sacnBody">
+				<div class="boxImg"></div>
+				<div class="scanText">鏆傛棤閲囪喘鍒拌揣</div>
+			</div>
+		</view>
+
+	</view>
+</template>
+
+
+<script>
+	import {
+		MesAppPurchInStorSelectCGOrder
+	} from '../../config/api.js';
+	const App = getApp()
+	export default {
+		onLoad(option) {},
+
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+
+		data() {
+			return {
+
+				inputBoxValue: '', //杈撳叆妗嗗��
+
+				title: 0,
+
+
+				radioValue: '',
+
+				purchorderArr: [],
+
+				purchorderArrAll: []
+			}
+		},
+		created() {
+
+		},
+		mounted() {
+			this.init()
+
+			this.getMesAppPurchOrderSearch()
+		},
+		methods: {
+			init() {
+				uni.stopPullDownRefresh();
+			},
+			changeInputBoxValue(val) {
+				this.purchorderArr = this.purchorderArrAll.filter((p) => {
+					return p.ordercode.indexOf(val) !== -1
+				})
+			},
+			inputBoxValueClear() {
+				this.inputBoxValue = ''
+			},
+			radioValueClick(val) {
+				console.log(val)
+				this.radioValue = val
+			},
+			navigateTo() {
+				uni.navigateTo({
+					url: './cgrk4?ordercode=' + this.radioValue
+				});
+			},
+			async getMesAppPurchOrderSearch() {
+				const res = await MesAppPurchInStorSelectCGOrder()
+
+				this.purchorderArrAll = res.data
+
+				this.purchorderArr = res.data
+
+				this.title = res.data.length
+
+				this.radioValue = res.data[0].ordercode
+
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+
+	.u-input--square {
+		margin: 20rpx 10rpx;
+		border-radius: 40rpx;
+		background-color: #fff;
+		border: 1px solid #c8c8c8;
+	}
+
+	::v-deep .u-alert__text--primary--light {
+		margin-bottom: 0;
+		font-size: 32rpx !important;
+	}
+
+	.radioGroupClass {
+		display: flex;
+		flex-direction: column;
+		background-color: #fff;
+
+		overflow-y: auto;
+		max-height: 1140rpx;
+		margin-top: 20rpx;
+	}
+
+	::v-deep .u-radio-label--right {
+		height: 90rpx;
+		line-height: 90rpx;
+		width: 92%;
+		margin-left: 4%;
+		// padding: 0 50rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/wlgl/cgrk3.vue b/pages/wlgl/cgrk3.vue
index e69de29..eb6da76 100644
--- a/pages/wlgl/cgrk3.vue
+++ b/pages/wlgl/cgrk3.vue
@@ -0,0 +1,483 @@
+<template>
+	<view>
+		<page-nav title="閲囪喘鍏ュ簱3"></page-nav>
+
+
+
+		<view v-if="purchorderArr.length===0">
+			<div class="sacnBody">
+				<div class="scanImg" @click="topScanClick"></div>
+				<div class="scanText">鎵弿鐗╂枡鏍囩</div>
+			</div>
+		</view>
+
+		<view v-if='purchorderArr.length!==0' class="mainContent" style="">
+			<view>
+				<u-gap height="10" bgColor="#eff0f1"></u-gap>
+				<view class="head">
+
+					<view style="max-height: 940rpx;overflow: auto;">
+
+						<view class="head" style="position: relative;">
+
+							<u-radio-group v-model="radioValue" class="flex_column">
+								<view class=" flex_column" style="width: 100%;" @click="radioValueClick(item.hbarcode)"
+									v-for="(item,index) in purchorderDetailArr" :key="item.hbarcode">
+
+
+									<view class="head_block" style="position: absolute;margin: 38rpx 0 0 0;">
+										<view class="head_left">
+											<view class="head_bar"></view>
+											<view class="head_title" style="font-weight: bold;">
+												鏍囩淇℃伅
+											</view>
+										</view>
+									</view>
+
+
+									<view class="orderNumber" :key="item.hbarcode">
+										{{(index+1).toString().padStart(2,0)}}
+									</view>
+
+									<view class="trash" v-show="purchorderDetailArr.length>1"
+										@click="trashClick(index)">
+										<u-icon name="trash" size='20'></u-icon>
+									</view>
+
+									<view v-show="purchorderDetailArr.length===1" style="width: 48rpx;height: 48rpx;">
+									</view>
+
+
+
+									<view class="flex_between marginBottom20 marginLeft20 marginTop20">
+										<view style="display: flex;">
+											<view class="flex_column titleFont">
+												<view>鐗╂枡鏍囩锛�</view>
+												<view>鏍囩鏁伴噺锛�</view>
+												<view>渚涙柟淇℃伅锛�</view>
+												<view>閲囪喘鎵规锛�</view>
+												<view>璐ㄩ噺鐘舵�侊細</view>
+											</view>
+											<view class="flex_column contentFont">
+												<view>{{item.hbarcode}}</view>
+												<view>{{item.hqty}}</view>
+												<view class="ellipsis" style="width: 460rpx;">{{item.hcustomername}}
+												</view>
+												<view>{{item.hbatchno}}</view>
+												<!-- <view>{{item.qualitystatus?item.qualitystatus:'/'}}</view> -->
+												<view v-if="item.qualitystatus===null">/</view>
+												<view v-else style="display: flex;align-items: center;">
+													<!-- 	<u-icon
+														:name="item.qualitystatus==='OK'?'checkmark-circle-fill':'close-circle-fill'"
+														:color="item.qualitystatus==='OK'?'#55ff00':'#FF0000'"
+														size="40"></u-icon>
+													<view style="margin-left: 10rpx;">
+														{{item.qualitystatus==='OK'?'鍚堟牸':'涓嶅悎鏍�'}}
+													</view> -->
+
+													<u-icon name="more-circle-fill" color="#55aaff" size="20"></u-icon>
+													<view style="margin-left: 10rpx;">
+														寰呮
+													</view>
+
+												</view>
+											</view>
+										</view>
+										<u-radio size='20' class="marginRight20" :key="item.hbarcode"
+											:name="item.hbarcode" activeColor="red"></u-radio>
+									</view>
+
+									<u-gap height="10" v-if="index!==purchorderDetailArr.length-1"
+										bgColor="#eff0f1"></u-gap>
+
+								</view>
+							</u-radio-group>
+						</view>
+
+					</view>
+
+				</view>
+			</view>
+		</view>
+
+		<!-- 		<view v-if='purchorderArr.length!==0' class="footer">
+			<view class="head_block" style="align-items: center;padding: 0 23rpx;">
+				<view class="head_left">
+					<view class="head_bar"></view>
+					<view class="head_title" style="font-weight: bold;">
+						閫夋嫨璐ㄦ鏂规
+					</view>
+				</view>
+
+				<view class="flex_center" style="margin-right: 20rpx;">
+					<view @click='sheetClick' class="custominputClass">
+
+						<view v-show='sheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+						<view v-show='sheetValue!==""' class="ellipsis" style="width: 390rpx;">
+							{{sheetValue}}
+						</view>
+
+						<u-icon :name="!sheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+					</view>
+				</view>
+
+			</view>
+		</view> -->
+
+		<u-picker :show="sheetShow" :columns="columns" :itemHeight='55' :closeOnClickOverlay='true'
+			@close='sheetShow=false' @confirm='pickerConfirm' @cancel='sheetShow=false'></u-picker>
+
+
+		<view class="footer">
+
+			<u-button :disabled="!sheetValue" v-if='purchorderArr.length!==0' type="primary" size='large'
+				:hairline="true" @click="navigateTo" text="涓嬩竴姝�"></u-button>
+		</view>
+
+
+		<!-- 		<scan-code></scan-code> -->
+
+		<!-- 鎮诞鐞� -->
+		<!-- <view v-show="purchorderArr.length!==0&&!sheetShow" @click="topScanClick">
+			<drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
+		</view> -->
+
+
+
+		<!-- <navigator :url="'./rcjy2?item='+ encodeURIComponent(JSON.stringify(item))"> -->
+		<!-- 	<navigator :url="'./rcjy2?item='+encodeURIComponent(1)">
+		</navigator>
+ -->
+	</view>
+</template>
+
+
+<script>
+	import {
+		MesAppPurchInStorScanLabCode
+	} from '../../config/api.js';
+	// import scanCode from '@/components/scan-code/scan-code.vue'
+	const App = getApp()
+	export default {
+		// components: {
+		// 	scanCode
+		// },
+		onLoad(option) {
+
+			// if (option.length !== undefined) {
+			// 	let t1 = JSON.parse(uni.getStorageSync('purchorderArr'))
+			// 	let t2 = JSON.parse(uni.getStorageSync('purchorderDetailArr'))
+			// 	// 鏄惁鍚屾鎵规
+			// 	if (option.issyncbatch === 'true') { //鏄�
+			// 		console.log('鎵ц1')
+			// 		this.purchorderArr = t1.filter(i => {
+			// 			return !(i.hbillno === option.hbillno && i.partcode === option.partcode && i.hbatchno ===
+			// 				option.hbatchno)
+			// 		})
+			// 		this.purchorderDetailArr = t2.filter(i => {
+			// 			console.log(!(i.hbillno === option.hbillno && i.partcode === option.partcode && i
+			// 				.hbatchno ===
+			// 				option.hbatchno))
+			// 			return !(i.hbillno === option.hbillno && i.partcode === option.partcode && i.hbatchno ===
+			// 				option.hbatchno)
+			// 		})
+
+			// 	} else if (option.issyncbatch === 'false') { //鍚�
+			// 		console.log('鎵ц2')
+			// 		this.purchorderDetailArr = t2.filter(i => i.hbarcode !== option.labcode)
+			// 		this.purchorderArr = t1.filter(i => i.hbarcode !== option.labcode)
+			// 	}
+			// 	console.log('鎵ц3')
+			// 	this.radioValue = this.purchorderDetailArr[0].hbarcode
+			// 	const t = this.purchorderDetailArr.find(i => i.hbarcode === this.radioValue).hbillno
+			// 	this.purchorderObj = this.purchorderArr.find(i => i.hbillno === t)
+			// 	this.$forceUpdate()
+			// }
+
+
+
+		},
+
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+
+		data() {
+			return {
+
+
+				// "hbillno": "DH2303311361", //鍗曟嵁缂栧彿
+				// "partcode": "102", //浜у搧缂栫爜
+				// "partname": "鍐呭瓨", //浜у搧鍚嶇О
+				// "partspec": "", //浜у搧瑙勬牸
+				// "hbarcode": "DH2303311360", //鐗╂枡鏍囩
+				// "stocktype_code": "1", //瀛樿揣绫诲瀷缂栫爜
+				// "hqty": 300.00, //鏍囩鏁伴噺
+				// "hcustomercode": "0010002", //渚涘簲鍟嗙紪鐮�
+				// "hcustomername": "钂傛.鍏嬭檹浼彂鍔ㄦ満绯荤粺锛堝父宸烇級鏈夐檺鍏徃", //渚涘簲鍟嗗悕绉�
+				// "hbatchno": "2", //閲囪喘鎵规
+				// "qualitystatus": null //璐ㄩ噺鐘舵��
+
+				purchorderObj: {},
+				purchorderArr: [
+					// {
+					// 	hbillno: 'DH2304041465',
+					// 	partcode: 'ZG-Y-001',
+					// 	partname: 'ZG鍘熸潗鏂�001',
+					// 	partspec: '#001'
+					// },
+					// {
+					// 	hbillno: 'DH2304041463',
+					// 	partcode: 'ZG-Y-002',
+					// 	partname: 'ZG鍘熸潗鏂�002',
+					// 	partspec: '#002'
+					// }
+				],
+				purchorderDetailArr: [
+					// {
+					// 	hbillno: 'DH2304041465',
+					// 	hbarcode: 'DH2304041464',
+					// 	hqty: 100,
+					// 	hcustomername: 'ZG澶栬喘渚涘簲鍟�',
+					// 	hbatchno: '#101',
+					// 	qualitystatus: 'NG'
+					// },
+					// {
+					// 	hbillno: 'DH2304041463',
+					// 	hbarcode: 'DH2304041462',
+					// 	hqty: 400,
+					// 	hcustomername: 'ZG澶栬喘渚涘簲鍟�',
+					// 	hbatchno: '#101',
+					// 	qualitystatus: 'OK'
+					// },
+					// {
+					// 	hbillno: 'DH2304041463',
+					// 	hbarcode: 'DH2304041461',
+					// 	hqty: 300,
+					// 	hcustomername: 'ZG澶栬喘渚涘簲鍟�',
+					// 	hbatchno: '#101',
+					// 	qualitystatus: 'NG'
+					// }, {
+					// 	hbillno: 'DH2304041463',
+					// 	hbarcode: 'DH2304041460',
+					// 	hqty: 200,
+					// 	hcustomername: 'ZG澶栬喘渚涘簲鍟�',
+					// 	hbatchno: '#101',
+					// 	qualitystatus: 'OK'
+					// },
+				],
+				radioValue: '',
+
+				sheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+				sheetValue: '',
+				sheetList: [],
+				columns: []
+			}
+		},
+		created() {
+
+		},
+		mounted() {
+			this.init()
+
+
+
+			this.getMesAppPurchInStorScanLabCode('DH25050900016')
+		},
+		methods: {
+			init() {
+				uni.stopPullDownRefresh();
+			},
+			//鏉ヨ嚜浜庨〉闈�3鐨勫��  杩涜鏁版嵁澶勭悊
+			fromSubmitData(option) {
+
+				let t1 = JSON.parse(uni.getStorageSync('purchorderArr'))
+				let t2 = JSON.parse(uni.getStorageSync('purchorderDetailArr'))
+				// 鏄惁鍚屾鎵规
+				if (option.issyncbatch === 'Y') { //鏄�
+					console.log('鎵ц1')
+					this.purchorderArr = t1.filter(i => {
+						return !(i.hbillno === option.hbillno && i.partcode === option.partcode && i.hbatchno ===
+							option.hbatchno)
+					})
+					this.purchorderDetailArr = t2.filter(i => {
+						return !(i.hbillno === option.hbillno && i.partcode === option.partcode && i.hbatchno ===
+							option.hbatchno)
+					})
+
+				} else if (option.issyncbatch === 'N') { //鍚�
+					console.log('鎵ц2')
+					this.purchorderDetailArr = t2.filter(i => i.hbarcode !== option.labcode)
+					this.purchorderArr = t1.filter(i => i.hbarcode !== option.labcode)
+				}
+				console.log('鎵ц3')
+				if (this.purchorderDetailArr.length > 0) {
+					this.radioValue = this.purchorderDetailArr[0].hbarcode
+					const t = this.purchorderDetailArr.find(i => i.hbarcode === this.radioValue).hbillno
+					this.purchorderObj = this.purchorderArr.find(i => i.hbillno === t)
+				}
+
+				this.$forceUpdate()
+
+			},
+			// 鎵弿
+			topScanClick() {
+				let that = this;
+
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						that.scanContent = res.result;
+						let flag = false
+						that.purchorderDetailArr.forEach(item => {
+							if (item.hbarcode === res.result) {
+								flag = true
+							}
+						})
+						if (flag) {
+							that.$u.toast('姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�')
+						} else {
+							//澶勭悊鎵爜浜嬩欢
+							that.getMesAppPurchInStorScanLabCode(that.scanContent);
+						}
+					},
+					complete: function(res) {
+
+					},
+					fail: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+					}
+
+				});
+			},
+			// 鑾峰彇鏍囩淇℃伅
+			async getMesAppPurchInStorScanLabCode(labcode) {
+				const data = {
+					labcode
+				}
+				const res = await MesAppPurchInStorScanLabCode(this.global.formatData(data))
+
+				if (res.code === '200') {
+					console.log(res)
+					this.purchorderArr.unshift({
+						hbillno: res.data[0].hbillno,
+						partcode: res.data[0].partcode,
+						partname: res.data[0].partname,
+						partspec: res.data[0].partspec,
+						hbarcode: res.data[0].hbarcode,
+						hbatchno: res.data[0].hbatchno ? res.data[0].hbatchno : '/',
+					})
+
+					this.purchorderDetailArr.unshift({
+						hbillno: res.data[0].hbillno,
+						partcode: res.data[0].partcode,
+						hbarcode: res.data[0].hbarcode,
+						hqty: res.data[0].hqty,
+						hcustomername: res.data[0].hcustomername,
+						hcustomercode: res.data[0].hcustomercode,
+						hbatchno: res.data[0].hbatchno ? res.data[0].hbatchno : '/',
+						qualitystatus: res.data[0].qualitystatus,
+					})
+
+					this.purchorderObj = this.purchorderArr[0]
+
+					this.radioValue = res.data.labcont[0].hbarcode
+
+				}
+			},
+			// picker纭鎸夐挳
+			pickerConfirm(val) {
+				this.sheetValue = val.value[0]
+				this.sheetShow = false
+			},
+			// 閫夋嫨璐ㄦ鏂规
+			sheetClick(val) {
+				this.sheetShow = true
+			},
+			// 椤甸潰璺宠浆
+			navigateTo() {
+
+
+				uni.setStorageSync('purchorderArr', JSON.stringify(this.purchorderArr))
+				uni.setStorageSync('purchorderDetailArr', JSON.stringify(this.purchorderDetailArr))
+
+				// uni.navigateTo({
+				//  url:'./rcjy2?purchorderObj=' + JSON.stringify(this.purchorderObj)+
+				// })
+
+
+
+				uni.navigateTo({
+					url: './rcjy2?checkstandcode=' + this.sheetList.find(i => i.name === this.sheetValue).code +
+						'&checkstandname=' + this.sheetValue + '&sampmethod=' + this.sheetList.find(i => i.name ===
+							this.sheetValue).sampmethod + '&sampscare=' + this.sheetList.find(i => i.name === this
+							.sheetValue).sampscare + '&purchorderObj=' + JSON.stringify(this
+							.purchorderObj) + '&radioSelectValue=' + JSON.stringify(this.purchorderDetailArr.find(
+							i => i.hbarcode === this.radioValue))
+
+
+				});
+			},
+			// 鍗曢�夋寜閽偣鍑讳簨浠�
+			radioValueClick(val) {
+				this.radioValue = val
+				const t = this.purchorderDetailArr.find(i => i.hbarcode === val).hbillno
+				this.purchorderObj = this.purchorderArr.find(i => i.hbillno === t)
+			},
+			// 鍒犻櫎浜嬩欢鐐瑰嚮
+			trashClick(val) {
+				this.purchorderDetailArr.splice(val, 1)
+			},
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+
+
+
+	.orderNumber {
+		width: 60rpx;
+		height: 40rpx;
+		// margin: -22rpx 0 0 -30rpx;
+		background-color: #d3daf9;
+		color: #2979FF;
+		font-size: 26rpx;
+		padding: 4rpx 0 0 10rpx;
+		border-radius: 0 0 90% 0;
+	}
+
+	.trash {
+		width: 48rpx;
+		height: 48rpx;
+		margin: -26rpx 0 0 646rpx;
+		background-color: #d3daf9;
+		font-size: 26rpx;
+		padding: 6rpx 0 0 10rpx;
+		border-radius: 100%;
+	}
+
+	.custominputClass {
+		width: 424rpx;
+		display: flex;
+		justify-content: space-between;
+		border: 3rpx #eff0f1 solid;
+		border-radius: 10rpx;
+		padding: 0 10rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/wlgl/cgrk4.vue b/pages/wlgl/cgrk4.vue
new file mode 100644
index 0000000..a7f2664
--- /dev/null
+++ b/pages/wlgl/cgrk4.vue
@@ -0,0 +1,460 @@
+<template>
+	<view>
+		<page-nav title="閲囪喘鍏ュ簱4"></page-nav>
+
+		<view v-if='purchorderArr.length!==0' class="mainContent" style="">
+			<view>
+				<u-gap height="10" bgColor="#eff0f1"></u-gap>
+				<view class="head">
+					<!-- max-height: 1340rpx;overflow: auto; -->
+					<view style="">
+
+						<view class="head" style="position: relative;">
+
+							<u-radio-group v-model="radioValue" class="flex_column">
+								<view class=" flex_column" style="width: 100%;" @click="radioValueClick(item.sbid)"
+									v-for="(item,index) in purchorderArr" :key="item.sbid">
+
+									<view class="head_block" style="position: absolute;margin: 38rpx 0 0 0;">
+										<view class="head_left">
+											<view class="head_bar"></view>
+											<view class="head_title" style="font-weight: bold;">
+												鐗╂枡淇℃伅
+											</view>
+										</view>
+									</view>
+
+
+									<view class="orderNumber" :key="item.sbid">
+										{{(index+1).toString().padStart(2,0)}}
+									</view>
+
+									<view class="trash" v-show="purchorderArr.length>1" @click="trashClick(index)">
+										<u-icon name="trash" size='20'></u-icon>
+									</view>
+
+									<view v-show="purchorderArr.length===1" style="width: 48rpx;height: 48rpx;">
+									</view>
+
+
+
+									<view class="flex_between marginBottom20 marginLeft20 marginTop20">
+										<view style="display: flex;">
+											<view class="flex_column titleFont">
+												<view>鐗╂枡缂栫爜锛�</view>
+												<view>鐗╂枡鍚嶇О锛�</view>
+												<view>鐗╂枡瑙勬牸锛�</view>
+												<view>閲囪喘璁㈠崟锛�</view>
+												<view>鍒拌揣杩涘害锛�</view>
+												<!-- <view>鐗╂枡鏍囩锛�</view> -->
+												<view v-show="!item.arrowType">鐗╂枡鏁伴噺锛�</view>
+												<view v-show="!item.arrowType">渚涙柟淇℃伅锛�</view>
+												<view v-show="!item.arrowType">閲囪喘鎵规锛�</view>
+												<view v-show="!item.arrowType">璐ㄩ噺鐘舵�侊細</view>
+											</view>
+											<view class="flex_column contentFont">
+												<view>{{item.partcode}}</view>
+												<view>{{item.partname}}</view>
+												<view class="ellipsis" style="width: 460rpx;">
+													{{item.partspec?item.partspec:'/'}}
+												</view>
+												<view>{{item.ordercode}}</view>
+												<view style="height: 50rpx;display: flex;align-items: center;">
+													<u-line-progress :percentage="(item.hqty/item.hplanqty)*100"
+														height="12" :showText='false'></u-line-progress>
+													<view style="margin-left: 6rpx; color:#2979FF">
+														{{item.hqty}}
+													</view>
+													<view>
+														/
+													</view>
+													<view>
+														{{item.hplanqty}} PCS
+													</view>
+												</view>
+												<!-- <view>杩樺儚杩樻病杩斿洖</view> -->
+												<view v-show="!item.arrowType">{{item.hqty}}</view>
+												<view v-show="!item.arrowType">{{item.customername}}</view>
+												<view v-show="!item.arrowType">/</view>
+												<view v-show="!item.arrowType">
+													<view v-if="!item.qualitystatus">/</view>
+													<view v-else style="display: flex;align-items: center;">
+
+														<u-icon name="tags-fill" color="green" size="20"
+															v-if="item.qualitystatus==='CS'"></u-icon>
+														<view style="margin-left: 10rpx;"
+															v-if="item.qualitystatus==='CS'">鍏嶆</view>
+
+														<u-icon name="checkmark-circle-fill" color="#55ff00" size="20"
+															v-if="item.qualitystatus==='OK'"></u-icon>
+														<view style="margin-left: 10rpx;"
+															v-if="item.qualitystatus==='OK'">鍚堟牸</view>
+
+														<u-icon name="close-circle-fill" color="#FF0000" size="20"
+															v-if="item.qualitystatus==='NG'"></u-icon>
+														<view style="margin-left: 10rpx;"
+															v-if="item.qualitystatus==='NG'">涓嶅悎鏍�</view>
+
+														<u-icon name="more-circle-fill" color="#55aaff" size="20"
+															v-if="item.qualitystatus==='TS'"></u-icon>
+														<view style="margin-left: 10rpx;"
+															v-if="item.qualitystatus==='TS'">寰呮</view>
+
+													</view>
+												</view>
+
+											</view>
+										</view>
+										<u-radio size='20' class="marginRight20" :key="item.sbid" :name="item.sbid"
+											activeColor="red"></u-radio>
+									</view>
+
+
+									<view class="head_block" v-show="!item.arrowType">
+										<view class="head_left">
+											<view class="head_bar"></view>
+											<view class="head_title" style="font-weight: bold;">
+												鎵弿搴撲綅
+											</view>
+										</view>
+
+										<view class="marginRight20">
+											<u-icon name="scan" @click="topScanClick" color="red" size="28"></u-icon>
+										</view>
+									</view>
+
+									<view class="flex_between marginBottom20 marginLeft20 marginTop20"
+										v-show="!item.arrowType">
+										<view style="display: flex;">
+											<view class="flex_column titleFont">
+												<view>搴撲綅淇℃伅锛�</view>
+												<view>鎵�灞炰粨搴擄細</view>
+											</view>
+
+											<view class="flex_column contentFont" @click="sheetShow=true">
+												<view v-if="item.lcationcode">{{item.lcationcode}}</view>
+												<view v-else style="color: #ccc;">鐐瑰嚮閫夋嫨鎴栨壂搴撲綅鐮�</view>
+												<view v-if="item.stockcode">{{item.stockcode}}</view>
+												<view v-else style="color: #ccc;">鐐瑰嚮閫夋嫨鎴栨壂搴撲綅鐮�</view>
+											</view>
+										</view>
+									</view>
+
+
+									<view style="display: flex;justify-content: center;margin : 10rpx; 0">
+										<view class="arrowClass"
+											@click="item.arrowType?arrowDownClick(item):arrowUpClick(item)">
+											<u-icon :name="item.arrowType?'arrow-down':'arrow-up'" color="#c8c8c8"
+												size="25"></u-icon>
+										</view>
+									</view>
+
+									<u-gap height="10" v-if="index!==purchorderArr.length-1" bgColor="#eff0f1"></u-gap>
+
+
+								</view>
+							</u-radio-group>
+						</view>
+
+					</view>
+
+				</view>
+
+
+
+			</view>
+
+		</view>
+
+
+		<view class="footer">
+			<u-button size="large" :loading="isDisabledSubmitButton" :disabled="isDisabledSubmitButton"
+				loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary" @click="submit" text="纭鎻愪氦">
+			</u-button>
+		</view>
+
+
+		<u-picker :show="sheetShow" :columns="columns" :itemHeight='55' :closeOnClickOverlay='true'
+			@close='sheetShow=false' @change="changeHandler" @confirm='pickerConfirm'
+			@cancel='sheetShow=false'></u-picker>
+
+
+	</view>
+</template>
+
+
+<script>
+	import {
+		MesAppPurchInStorSelectCGOrderPart,
+		WarehouseLocationSearchStoreHouse,
+		MesAppPurchInStorSave,
+		WareHouseLocation
+	} from '../../config/api.js';
+
+	const App = getApp()
+	export default {
+
+		onLoad(option) {
+			this.getMesAppPurchInStorSelectCGOrderPart(option.ordercode)
+		},
+
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+
+		data() {
+			return {
+				purchorderObj: {},
+				purchorderArr: [],
+				radioValue: '',
+				sheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+				sheetList: [],
+				columns: [],
+				columnsData: [],
+				wareHouseLocationArr: [], //浠撳簱搴撲綅鏁扮粍
+				isDisabledSubmitButton: false
+			}
+		},
+		created() {
+
+		},
+		mounted() {
+			this.init()
+			this.getWareHouseLocation()
+
+
+			// this.getMesAppPurchInStorSelectCGOrderPart('PO-2025-01-0002')
+			// this.getWarehouseLocationSearchStoreHouse('0011')
+		},
+		methods: {
+			async getWareHouseLocation() {
+				const {
+					data: res
+				} = await WareHouseLocation()
+				this.wareHouseLocationArr = res.filter(i => i.children.length > 0)
+				this.columns = [
+					this.wareHouseLocationArr.map(i => i.text),
+					this.wareHouseLocationArr[0].children.map(i => i.text)
+				]
+				this.wareHouseLocationArr.forEach(i => {
+					this.columnsData.push(i.children.map(j => j.text))
+				})
+
+			},
+			changeHandler(e) {
+				const {
+					columnIndex,
+					value,
+					values, // values涓哄綋鍓嶅彉鍖栧垪鐨勬暟缁勫唴瀹�
+					index,
+					// 寰俊灏忕▼搴忔棤娉曞皢picker瀹炰緥浼犲嚭鏉ワ紝鍙兘閫氳繃ref鎿嶄綔
+					picker = this.$refs.uPicker
+				} = e
+				// 褰撶涓�鍒楀�煎彂鐢熷彉鍖栨椂锛屽彉鍖栫浜屽垪(鍚庝竴鍒�)瀵瑰簲鐨勯�夐」
+				if (columnIndex === 0) {
+					// picker涓洪�夋嫨鍣╰his瀹炰緥锛屽彉鍖栫浜屽垪瀵瑰簲鐨勯�夐」
+					picker.setColumnValues(1, this.columnsData[index])
+				}
+			},
+			init() {
+				uni.stopPullDownRefresh();
+			},
+			// 鎵弿
+			topScanClick() {
+				let that = this;
+
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						that.scanContent = res.result;
+						that.getWarehouseLocationSearchStoreHouse(that.scanContent)
+					},
+					complete: function(res) {
+
+					},
+					fail: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+					}
+
+				});
+			},
+
+			async getWarehouseLocationSearchStoreHouse(locationcode) {
+				const data = {
+					locationcode
+				}
+				const res = await WarehouseLocationSearchStoreHouse(data)
+				if (res.code === '200') {
+					this.purchorderObj.lcationcode = res.data[0].locationname
+					this.purchorderObj.stockcode = res.data[0].warehousename
+
+					this.purchorderObj.lcationname2 = res.data[0].locationcode
+					this.purchorderObj.stockname2 = res.data[0].warehousecode
+				} else {
+					this.$u.toast(res.message)
+				}
+			},
+			// 鑾峰彇鏍囩淇℃伅
+			async getMesAppPurchInStorSelectCGOrderPart(ordercode) {
+				const data = {
+					ordercode
+				}
+				const res = await MesAppPurchInStorSelectCGOrderPart(this.global.formatData(data))
+				if (res.code === '200') {
+					res.data.forEach((i, ind) => {
+						i.arrowType = ind !== 0
+						i.lcationcode = '' //搴撲綅
+						i.stockcode = '' //浠撳簱
+					})
+					this.purchorderArr = res.data
+					this.purchorderObj = this.purchorderArr[0]
+					this.radioValue = this.purchorderObj.sbid
+				}
+			},
+			// picker纭鎸夐挳
+			pickerConfirm(val) {
+
+				this.purchorderObj.lcationcode = val.value[1]
+				this.purchorderObj.stockcode = val.value[0]
+
+				this.purchorderObj.stockname2 = this.wareHouseLocationArr.find(i => i.text === this.purchorderObj
+					.stockcode).value
+
+				this.purchorderObj.lcationname2 = this.wareHouseLocationArr.find(i => i.value === this.purchorderObj
+					.stockname2).children.find(i => i.text === this.purchorderObj
+					.lcationcode).value
+
+
+				this.sheetShow = false
+			},
+			// 鍗曢�夋寜閽偣鍑讳簨浠�
+			radioValueClick(val) {
+				this.radioValue = val
+				this.purchorderObj = this.purchorderArr.find(i => i.sbid === val)
+			},
+			// 鍒犻櫎浜嬩欢鐐瑰嚮
+			trashClick(val) {
+				this.purchorderArr.splice(val, 1)
+				this.purchorderObj = this.purchorderArr[0]
+				this.radioValue = this.purchorderObj.sbid
+			},
+			// 绠ご鐢卞悜涓嬪彉涓哄悜涓婃椂瑙﹀彂
+			arrowDownClick(val) {
+				this.purchorderArr.forEach(i => {
+					i.arrowType = i.sbid !== val.sbid
+				})
+				this.$forceUpdate()
+			},
+			// 绠ご鐢卞悜涓婂彉涓哄悜涓嬫椂瑙﹀彂
+			arrowUpClick(val) {
+				val.arrowType = true
+				this.$forceUpdate()
+			},
+			async submit() {
+				const data1 = {
+					username: uni.getStorageSync("username")
+				}
+				let data2 = []
+
+				let ind = this.purchorderArr.findIndex(i => i.lcationcode === '')
+				if (ind > -1) { //璇存槑鏈夋湭濉啓鐨勫簱浣嶄俊鎭�
+					return this.$u.toast('绗�' + (ind + 1) + '涓殑搴撲綅淇℃伅鏈~鍐�')
+				}
+				console.log(this.wareHouseLocationArr.flat())
+
+				this.purchorderArr.forEach(i => {
+					data2.push({
+						"hbarcode": "",
+						"hbillno": "",
+						"hqty": i.hqty,
+						"hcustomercode": i.customercode,
+						"hdeptcode": i.departmentcode,
+						"partcode": i.partcode,
+						"unitcode": i.unitcode,
+						"hsourceid": i.orderid,
+						"hsourcebillno": i.ordercode,
+
+						"stockcode": this.purchorderObj.stockname2,
+						"lcationcode": this.purchorderObj.lcationname2
+					})
+				})
+
+				// console.log(JSON.stringify(data2))
+
+				const res = await MesAppPurchInStorSave(this.global.formatData(
+					data1), data2)
+
+				if (res.code === '200') {
+					let prevPage = getCurrentPages()[getCurrentPages()
+						.length -
+						2]; // 涓婁竴椤甸潰瀹炰緥
+					prevPage.$vm
+						.getMesAppPurchOrderSearch() // 璋冪敤涓婁竴椤� 瀹氫箟鐨勬柟娉�
+					uni.navigateBack({
+						delta: 1, //杩斿洖灞傛暟锛�2鍒欎笂涓婇〉
+					})
+				} else {
+					this.$u.toast(res.message)
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+
+
+
+	.orderNumber {
+		width: 60rpx;
+		height: 40rpx;
+		// margin: -22rpx 0 0 -30rpx;
+		background-color: #d3daf9;
+		color: #2979FF;
+		font-size: 26rpx;
+		padding: 4rpx 0 0 10rpx;
+		border-radius: 0 0 90% 0;
+	}
+
+	.trash {
+		width: 48rpx;
+		height: 48rpx;
+		margin: -26rpx 0 0 646rpx;
+		background-color: #d3daf9;
+		font-size: 26rpx;
+		padding: 6rpx 0 0 10rpx;
+		border-radius: 100%;
+	}
+
+	.custominputClass {
+		width: 424rpx;
+		display: flex;
+		justify-content: space-between;
+		border: 3rpx #eff0f1 solid;
+		border-radius: 10rpx;
+		padding: 0 10rpx;
+	}
+
+	.arrowClass {
+		display: flex;
+		justify-content: center;
+		// background-color: #efefef;
+		width: 100rpx;
+		// border-radius: 10rpx;
+		height: 56rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/wlgl/cgrk4_back.vue b/pages/wlgl/cgrk4_back.vue
new file mode 100644
index 0000000..a7f2664
--- /dev/null
+++ b/pages/wlgl/cgrk4_back.vue
@@ -0,0 +1,460 @@
+<template>
+	<view>
+		<page-nav title="閲囪喘鍏ュ簱4"></page-nav>
+
+		<view v-if='purchorderArr.length!==0' class="mainContent" style="">
+			<view>
+				<u-gap height="10" bgColor="#eff0f1"></u-gap>
+				<view class="head">
+					<!-- max-height: 1340rpx;overflow: auto; -->
+					<view style="">
+
+						<view class="head" style="position: relative;">
+
+							<u-radio-group v-model="radioValue" class="flex_column">
+								<view class=" flex_column" style="width: 100%;" @click="radioValueClick(item.sbid)"
+									v-for="(item,index) in purchorderArr" :key="item.sbid">
+
+									<view class="head_block" style="position: absolute;margin: 38rpx 0 0 0;">
+										<view class="head_left">
+											<view class="head_bar"></view>
+											<view class="head_title" style="font-weight: bold;">
+												鐗╂枡淇℃伅
+											</view>
+										</view>
+									</view>
+
+
+									<view class="orderNumber" :key="item.sbid">
+										{{(index+1).toString().padStart(2,0)}}
+									</view>
+
+									<view class="trash" v-show="purchorderArr.length>1" @click="trashClick(index)">
+										<u-icon name="trash" size='20'></u-icon>
+									</view>
+
+									<view v-show="purchorderArr.length===1" style="width: 48rpx;height: 48rpx;">
+									</view>
+
+
+
+									<view class="flex_between marginBottom20 marginLeft20 marginTop20">
+										<view style="display: flex;">
+											<view class="flex_column titleFont">
+												<view>鐗╂枡缂栫爜锛�</view>
+												<view>鐗╂枡鍚嶇О锛�</view>
+												<view>鐗╂枡瑙勬牸锛�</view>
+												<view>閲囪喘璁㈠崟锛�</view>
+												<view>鍒拌揣杩涘害锛�</view>
+												<!-- <view>鐗╂枡鏍囩锛�</view> -->
+												<view v-show="!item.arrowType">鐗╂枡鏁伴噺锛�</view>
+												<view v-show="!item.arrowType">渚涙柟淇℃伅锛�</view>
+												<view v-show="!item.arrowType">閲囪喘鎵规锛�</view>
+												<view v-show="!item.arrowType">璐ㄩ噺鐘舵�侊細</view>
+											</view>
+											<view class="flex_column contentFont">
+												<view>{{item.partcode}}</view>
+												<view>{{item.partname}}</view>
+												<view class="ellipsis" style="width: 460rpx;">
+													{{item.partspec?item.partspec:'/'}}
+												</view>
+												<view>{{item.ordercode}}</view>
+												<view style="height: 50rpx;display: flex;align-items: center;">
+													<u-line-progress :percentage="(item.hqty/item.hplanqty)*100"
+														height="12" :showText='false'></u-line-progress>
+													<view style="margin-left: 6rpx; color:#2979FF">
+														{{item.hqty}}
+													</view>
+													<view>
+														/
+													</view>
+													<view>
+														{{item.hplanqty}} PCS
+													</view>
+												</view>
+												<!-- <view>杩樺儚杩樻病杩斿洖</view> -->
+												<view v-show="!item.arrowType">{{item.hqty}}</view>
+												<view v-show="!item.arrowType">{{item.customername}}</view>
+												<view v-show="!item.arrowType">/</view>
+												<view v-show="!item.arrowType">
+													<view v-if="!item.qualitystatus">/</view>
+													<view v-else style="display: flex;align-items: center;">
+
+														<u-icon name="tags-fill" color="green" size="20"
+															v-if="item.qualitystatus==='CS'"></u-icon>
+														<view style="margin-left: 10rpx;"
+															v-if="item.qualitystatus==='CS'">鍏嶆</view>
+
+														<u-icon name="checkmark-circle-fill" color="#55ff00" size="20"
+															v-if="item.qualitystatus==='OK'"></u-icon>
+														<view style="margin-left: 10rpx;"
+															v-if="item.qualitystatus==='OK'">鍚堟牸</view>
+
+														<u-icon name="close-circle-fill" color="#FF0000" size="20"
+															v-if="item.qualitystatus==='NG'"></u-icon>
+														<view style="margin-left: 10rpx;"
+															v-if="item.qualitystatus==='NG'">涓嶅悎鏍�</view>
+
+														<u-icon name="more-circle-fill" color="#55aaff" size="20"
+															v-if="item.qualitystatus==='TS'"></u-icon>
+														<view style="margin-left: 10rpx;"
+															v-if="item.qualitystatus==='TS'">寰呮</view>
+
+													</view>
+												</view>
+
+											</view>
+										</view>
+										<u-radio size='20' class="marginRight20" :key="item.sbid" :name="item.sbid"
+											activeColor="red"></u-radio>
+									</view>
+
+
+									<view class="head_block" v-show="!item.arrowType">
+										<view class="head_left">
+											<view class="head_bar"></view>
+											<view class="head_title" style="font-weight: bold;">
+												鎵弿搴撲綅
+											</view>
+										</view>
+
+										<view class="marginRight20">
+											<u-icon name="scan" @click="topScanClick" color="red" size="28"></u-icon>
+										</view>
+									</view>
+
+									<view class="flex_between marginBottom20 marginLeft20 marginTop20"
+										v-show="!item.arrowType">
+										<view style="display: flex;">
+											<view class="flex_column titleFont">
+												<view>搴撲綅淇℃伅锛�</view>
+												<view>鎵�灞炰粨搴擄細</view>
+											</view>
+
+											<view class="flex_column contentFont" @click="sheetShow=true">
+												<view v-if="item.lcationcode">{{item.lcationcode}}</view>
+												<view v-else style="color: #ccc;">鐐瑰嚮閫夋嫨鎴栨壂搴撲綅鐮�</view>
+												<view v-if="item.stockcode">{{item.stockcode}}</view>
+												<view v-else style="color: #ccc;">鐐瑰嚮閫夋嫨鎴栨壂搴撲綅鐮�</view>
+											</view>
+										</view>
+									</view>
+
+
+									<view style="display: flex;justify-content: center;margin : 10rpx; 0">
+										<view class="arrowClass"
+											@click="item.arrowType?arrowDownClick(item):arrowUpClick(item)">
+											<u-icon :name="item.arrowType?'arrow-down':'arrow-up'" color="#c8c8c8"
+												size="25"></u-icon>
+										</view>
+									</view>
+
+									<u-gap height="10" v-if="index!==purchorderArr.length-1" bgColor="#eff0f1"></u-gap>
+
+
+								</view>
+							</u-radio-group>
+						</view>
+
+					</view>
+
+				</view>
+
+
+
+			</view>
+
+		</view>
+
+
+		<view class="footer">
+			<u-button size="large" :loading="isDisabledSubmitButton" :disabled="isDisabledSubmitButton"
+				loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary" @click="submit" text="纭鎻愪氦">
+			</u-button>
+		</view>
+
+
+		<u-picker :show="sheetShow" :columns="columns" :itemHeight='55' :closeOnClickOverlay='true'
+			@close='sheetShow=false' @change="changeHandler" @confirm='pickerConfirm'
+			@cancel='sheetShow=false'></u-picker>
+
+
+	</view>
+</template>
+
+
+<script>
+	import {
+		MesAppPurchInStorSelectCGOrderPart,
+		WarehouseLocationSearchStoreHouse,
+		MesAppPurchInStorSave,
+		WareHouseLocation
+	} from '../../config/api.js';
+
+	const App = getApp()
+	export default {
+
+		onLoad(option) {
+			this.getMesAppPurchInStorSelectCGOrderPart(option.ordercode)
+		},
+
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+
+		data() {
+			return {
+				purchorderObj: {},
+				purchorderArr: [],
+				radioValue: '',
+				sheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+				sheetList: [],
+				columns: [],
+				columnsData: [],
+				wareHouseLocationArr: [], //浠撳簱搴撲綅鏁扮粍
+				isDisabledSubmitButton: false
+			}
+		},
+		created() {
+
+		},
+		mounted() {
+			this.init()
+			this.getWareHouseLocation()
+
+
+			// this.getMesAppPurchInStorSelectCGOrderPart('PO-2025-01-0002')
+			// this.getWarehouseLocationSearchStoreHouse('0011')
+		},
+		methods: {
+			async getWareHouseLocation() {
+				const {
+					data: res
+				} = await WareHouseLocation()
+				this.wareHouseLocationArr = res.filter(i => i.children.length > 0)
+				this.columns = [
+					this.wareHouseLocationArr.map(i => i.text),
+					this.wareHouseLocationArr[0].children.map(i => i.text)
+				]
+				this.wareHouseLocationArr.forEach(i => {
+					this.columnsData.push(i.children.map(j => j.text))
+				})
+
+			},
+			changeHandler(e) {
+				const {
+					columnIndex,
+					value,
+					values, // values涓哄綋鍓嶅彉鍖栧垪鐨勬暟缁勫唴瀹�
+					index,
+					// 寰俊灏忕▼搴忔棤娉曞皢picker瀹炰緥浼犲嚭鏉ワ紝鍙兘閫氳繃ref鎿嶄綔
+					picker = this.$refs.uPicker
+				} = e
+				// 褰撶涓�鍒楀�煎彂鐢熷彉鍖栨椂锛屽彉鍖栫浜屽垪(鍚庝竴鍒�)瀵瑰簲鐨勯�夐」
+				if (columnIndex === 0) {
+					// picker涓洪�夋嫨鍣╰his瀹炰緥锛屽彉鍖栫浜屽垪瀵瑰簲鐨勯�夐」
+					picker.setColumnValues(1, this.columnsData[index])
+				}
+			},
+			init() {
+				uni.stopPullDownRefresh();
+			},
+			// 鎵弿
+			topScanClick() {
+				let that = this;
+
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						that.scanContent = res.result;
+						that.getWarehouseLocationSearchStoreHouse(that.scanContent)
+					},
+					complete: function(res) {
+
+					},
+					fail: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+					}
+
+				});
+			},
+
+			async getWarehouseLocationSearchStoreHouse(locationcode) {
+				const data = {
+					locationcode
+				}
+				const res = await WarehouseLocationSearchStoreHouse(data)
+				if (res.code === '200') {
+					this.purchorderObj.lcationcode = res.data[0].locationname
+					this.purchorderObj.stockcode = res.data[0].warehousename
+
+					this.purchorderObj.lcationname2 = res.data[0].locationcode
+					this.purchorderObj.stockname2 = res.data[0].warehousecode
+				} else {
+					this.$u.toast(res.message)
+				}
+			},
+			// 鑾峰彇鏍囩淇℃伅
+			async getMesAppPurchInStorSelectCGOrderPart(ordercode) {
+				const data = {
+					ordercode
+				}
+				const res = await MesAppPurchInStorSelectCGOrderPart(this.global.formatData(data))
+				if (res.code === '200') {
+					res.data.forEach((i, ind) => {
+						i.arrowType = ind !== 0
+						i.lcationcode = '' //搴撲綅
+						i.stockcode = '' //浠撳簱
+					})
+					this.purchorderArr = res.data
+					this.purchorderObj = this.purchorderArr[0]
+					this.radioValue = this.purchorderObj.sbid
+				}
+			},
+			// picker纭鎸夐挳
+			pickerConfirm(val) {
+
+				this.purchorderObj.lcationcode = val.value[1]
+				this.purchorderObj.stockcode = val.value[0]
+
+				this.purchorderObj.stockname2 = this.wareHouseLocationArr.find(i => i.text === this.purchorderObj
+					.stockcode).value
+
+				this.purchorderObj.lcationname2 = this.wareHouseLocationArr.find(i => i.value === this.purchorderObj
+					.stockname2).children.find(i => i.text === this.purchorderObj
+					.lcationcode).value
+
+
+				this.sheetShow = false
+			},
+			// 鍗曢�夋寜閽偣鍑讳簨浠�
+			radioValueClick(val) {
+				this.radioValue = val
+				this.purchorderObj = this.purchorderArr.find(i => i.sbid === val)
+			},
+			// 鍒犻櫎浜嬩欢鐐瑰嚮
+			trashClick(val) {
+				this.purchorderArr.splice(val, 1)
+				this.purchorderObj = this.purchorderArr[0]
+				this.radioValue = this.purchorderObj.sbid
+			},
+			// 绠ご鐢卞悜涓嬪彉涓哄悜涓婃椂瑙﹀彂
+			arrowDownClick(val) {
+				this.purchorderArr.forEach(i => {
+					i.arrowType = i.sbid !== val.sbid
+				})
+				this.$forceUpdate()
+			},
+			// 绠ご鐢卞悜涓婂彉涓哄悜涓嬫椂瑙﹀彂
+			arrowUpClick(val) {
+				val.arrowType = true
+				this.$forceUpdate()
+			},
+			async submit() {
+				const data1 = {
+					username: uni.getStorageSync("username")
+				}
+				let data2 = []
+
+				let ind = this.purchorderArr.findIndex(i => i.lcationcode === '')
+				if (ind > -1) { //璇存槑鏈夋湭濉啓鐨勫簱浣嶄俊鎭�
+					return this.$u.toast('绗�' + (ind + 1) + '涓殑搴撲綅淇℃伅鏈~鍐�')
+				}
+				console.log(this.wareHouseLocationArr.flat())
+
+				this.purchorderArr.forEach(i => {
+					data2.push({
+						"hbarcode": "",
+						"hbillno": "",
+						"hqty": i.hqty,
+						"hcustomercode": i.customercode,
+						"hdeptcode": i.departmentcode,
+						"partcode": i.partcode,
+						"unitcode": i.unitcode,
+						"hsourceid": i.orderid,
+						"hsourcebillno": i.ordercode,
+
+						"stockcode": this.purchorderObj.stockname2,
+						"lcationcode": this.purchorderObj.lcationname2
+					})
+				})
+
+				// console.log(JSON.stringify(data2))
+
+				const res = await MesAppPurchInStorSave(this.global.formatData(
+					data1), data2)
+
+				if (res.code === '200') {
+					let prevPage = getCurrentPages()[getCurrentPages()
+						.length -
+						2]; // 涓婁竴椤甸潰瀹炰緥
+					prevPage.$vm
+						.getMesAppPurchOrderSearch() // 璋冪敤涓婁竴椤� 瀹氫箟鐨勬柟娉�
+					uni.navigateBack({
+						delta: 1, //杩斿洖灞傛暟锛�2鍒欎笂涓婇〉
+					})
+				} else {
+					this.$u.toast(res.message)
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+
+
+
+	.orderNumber {
+		width: 60rpx;
+		height: 40rpx;
+		// margin: -22rpx 0 0 -30rpx;
+		background-color: #d3daf9;
+		color: #2979FF;
+		font-size: 26rpx;
+		padding: 4rpx 0 0 10rpx;
+		border-radius: 0 0 90% 0;
+	}
+
+	.trash {
+		width: 48rpx;
+		height: 48rpx;
+		margin: -26rpx 0 0 646rpx;
+		background-color: #d3daf9;
+		font-size: 26rpx;
+		padding: 6rpx 0 0 10rpx;
+		border-radius: 100%;
+	}
+
+	.custominputClass {
+		width: 424rpx;
+		display: flex;
+		justify-content: space-between;
+		border: 3rpx #eff0f1 solid;
+		border-radius: 10rpx;
+		padding: 0 10rpx;
+	}
+
+	.arrowClass {
+		display: flex;
+		justify-content: center;
+		// background-color: #efefef;
+		width: 100rpx;
+		// border-radius: 10rpx;
+		height: 56rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/zlgl/rcjy.vue b/pages/zlgl/rcjy.vue
index 56383e1..3e6240e 100644
--- a/pages/zlgl/rcjy.vue
+++ b/pages/zlgl/rcjy.vue
@@ -161,9 +161,9 @@
 		<!-- 		<scan-code></scan-code> -->
 
 		<!-- 鎮诞鐞� -->
-		<view v-show="purchorderArr.length!==0&&!sheetShow" @click="topScanClick">
+		<!-- <view v-show="purchorderArr.length!==0&&!sheetShow" @click="topScanClick">
 			<drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
-		</view>
+		</view> -->
 
 
 

--
Gitblit v1.9.3