From 9e7bbd1a203c39c74b81624640a5ea8f6e247ba3 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 14 五月 2024 10:08:02 +0800
Subject: [PATCH] 1.外协收料不良数量可填多个

---
 pages/wwgl/wxsl.vue |  326 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 191 insertions(+), 135 deletions(-)

diff --git a/pages/wwgl/wxsl.vue b/pages/wwgl/wxsl.vue
index 06384c1..b3ff920 100644
--- a/pages/wwgl/wxsl.vue
+++ b/pages/wwgl/wxsl.vue
@@ -105,44 +105,6 @@
 						</view>
 					</view>
 
-					<view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
-						<view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鏁伴噺
-						<view style="margin-left: 20rpx;">
-							<view class='inputClass'>
-								<u--input placeholder="璇疯緭鍏�" border="surround" @change='ngqtyChange' type='number'
-									v-model="ngqty">
-								</u--input>
-							</view>
-						</view>
-					</view>
-
-
-					<view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
-						<view style="display: flex;" class="titleFont">
-							<view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鍘熷洜
-						</view>
-						<view style="margin-left: 20rpx;">
-							<view @click='badSheetClick' class="custominputClass">
-								<view v-show='badSheetValue.length===0' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
-								<view v-show='badSheetValue.length!==0' class="ellipsis" style="width: 390rpx;">
-									{{badSheetValue}}
-								</view>
-								<u-icon :name="!badSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
-							</view>
-						</view>
-					</view>
-
-
-					<!-- 	<view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
-						<view style="display: flex;" class="titleFont">
-							<view style="color: #fff;margin-right: 6rpx;">*</view> 鏀舵枡澶囨敞
-						</view>
-						<view style="margin-left: 20rpx;">
-							<view class='inputClass'>
-								<u--textarea v-model="notes" placeholder="璇疯緭鍏�"></u--textarea>
-							</view>
-						</view>
-					</view> -->
 
 
 				</view>
@@ -176,27 +138,68 @@
 
 				</view>
 
+				<u-gap height="10" bgColor="#eff0f1"></u-gap>
+
+
+				<view class="head  marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
+					<view class="head_block">
+						<view class="head_left">
+							<view class="head_bar"></view>
+							<view class="head_title">
+								涓嶈壇缁熻
+							</view>
+						</view>
+
+					</view>
+					<view class="flex_column ">
+
+
+						<u-button type="primary" :plain="true" icon='plus-circle' text="娣诲姞"
+							style="width: 90%;margin: 20rpx auto;" @click="add"></u-button>
+
+
+						<view v-for='(item,index) in ngqtyArr' class="badSheetClass" :key="item.uid">
+
+							<view class="badNumber">{{index+1}}</view>
+							<u-icon name="trash" size="20" class="trash" v-if="ngqtyArr.length!==1"
+								@click="trashDelete(index)" color="rgb(0, 102, 255)"></u-icon>
+
+							<view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
+								<view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鏁伴噺锛�
+								<view class='inputClass'>
+									<u--input placeholder="璇疯緭鍏�" border="surround" :adjustPosition='false' type='number'
+										v-model="item.ngqty"></u--input>
+								</view>
+
+							</view>
+							<view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
+								<view style="display: flex;" class="titleFont">
+									<view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鍘熷洜锛�
+								</view>
+								<view @click='badSheetClick(item)' class="custominputClass">
+									<view v-show='item.badSheetValue.length===0' style="color: rgb(192, 196, 204);">璇烽�夋嫨
+									</view>
+									<view v-show='item.badSheetValue.length!==0' class="ellipsis"
+										style="width: 390rpx;">
+										{{item.badSheetValue}}
+									</view>
+									<u-icon :name="item.arrowDown?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+								</view>
+							</view>
+
+							<u-divider></u-divider>
+
+
+						</view>
+
+					</view>
+				</view>
+
+
+
+
 
 			</view>
-
-
-			<u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
-				:closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSheetShow=false" :show="badSheetShow"
-				@select='badSheetSelect'>
-				<view style="min-height: 100rpx;padding: 20rpx 20rpx 30rpx 20rpx;">
-					<u-checkbox-group @change="checkboxChange" size='20px' v-model="checkBoxValue" iconPlacement="right"
-						placement="column">
-						<view v-for="(item,index) in badSelectArr">
-							<u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
-								:name='item.name' :label="item.name">
-							</u-checkbox>
-							<u-divider :key="item.code"></u-divider>
-						</view>
-					</u-checkbox-group>
-				</view>
-			</u-action-sheet>
-
-
 
 
 			<u-picker v-if="topContent.length!==0" :show="WXSheetShow" :columns="WXColumns" :itemHeight='55'
@@ -209,6 +212,25 @@
 				:closeOnClickOverlay='true' @close='userSheetShow=false' @confirm='userPickerConfirm'
 				@cancel='userSheetShow=false'>
 			</u-picker>
+
+
+			<!-- 涓嶈壇鍘熷洜 -->
+			<u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
+				:closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSelectClose" :show="badSheetShow"
+				@select='badSheetSelect'>
+				<view style="min-height: 100rpx;">
+					<u-checkbox-group @change="checkboxChange" size='20px' v-model="checkBoxValue" iconPlacement="right"
+						placement="column">
+						<view v-for="(item,index) in badSelectArr">
+							<u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
+								:name='item.name' :label="item.name">
+							</u-checkbox>
+						</view>
+					</u-checkbox-group>
+				</view>
+			</u-action-sheet>
+
+
 
 
 		</view>
@@ -303,6 +325,21 @@
 				badSheetValue: '',
 
 
+				ngqtyArr: [{
+						uid: new Date().getTime(),
+						ngqty: '',
+						badSheetValue: '',
+						arrowDown: true //鍚戜笅绠ご
+					},
+					// {
+					// 	ngqty: '',
+					// 	badSheetValue: '',
+					// 	arrowDown: true //鍚戜笅绠ご
+					// },
+				], //涓嶈壇鏁伴噺銆佷笉鑹師鍥犳暟缁�
+
+
+
 				notes: null //澶囨敞
 
 
@@ -317,7 +354,7 @@
 			this.init()
 
 
-			this.getMesOrderStepStart('MO-2023-09-0002_1;106')
+			// this.getMesOrderStepStart('MO-2023-09-0002_1;106')
 
 
 			this.handleSelectAllApi()
@@ -341,11 +378,9 @@
 				this.userColumns = [res.data.map(i => i.username)]
 			},
 
-			async getCustomerPermissions(val) {
-				const data = {
-					orderstepqrcode: val
-				}
-				const res = await CustomerPermissions(this.global.formatData(data))
+			async getCustomerPermissions() {
+
+				const res = await CustomerPermissions()
 				this.WXSheetList = res.data
 				this.WXColumns = [res.data.map(i => i.name)]
 			},
@@ -412,10 +447,13 @@
 
 				});
 			},
-			badSheetClick() {
-				if (!this.ngqty) {
+			badSheetClick(item) {
+				if (!item.ngqty) {
 					return uni.$u.toast('璇峰厛濉啓涓嶈壇鏁伴噺锛�')
 				}
+				item.arrowDown = !item.arrowDown
+
+				this.checkBoxValue = item.badSheetValue.split(',')
 				this.badSheetShow = true
 			},
 
@@ -445,11 +483,35 @@
 				this.userSheetShow = false
 			},
 
-			ngqtyChange(val) {
-				if (!parseFloat(val)) {
-					this.badSheetValue = ''
-					this.checkBoxValue = ''
-				}
+			// 娣诲姞
+			add() {
+
+				// if (this.ngqtyArr.find(i => i.badSheetValue === '')) {
+				// 	return uni.$u.toast('璇峰厛瀹屽杽鍓嶉潰涓嶈壇閫夐」锛�')
+				// }
+
+				this.ngqtyArr.unshift({
+					uid: new Date().getTime(),
+					ngqty: '',
+					badSheetValue: '',
+					arrowDown: true //鍚戜笅绠ご
+				})
+
+			},
+
+			//鍒犻櫎
+			trashDelete(index) {
+				this.ngqtyArr.splice(index, 1)
+			},
+
+			badSelectClose() {
+				let index = this.ngqtyArr.findIndex(i => !i.arrowDown)
+
+				this.ngqtyArr[index].badSheetValue = this.checkBoxValue.join(',')
+				this.ngqtyArr[index].arrowDown = true
+
+				this.checkBoxValue = []
+				this.badSheetShow = false
 			},
 
 
@@ -469,39 +531,39 @@
 
 				let t = this.topContent[0].list.find(i => i.tp === this.WXSheetValue)
 
-				if (!this.ngqty && (parseFloat(this.sqty) > parseFloat(t.fqty) - parseFloat(t.sqty) - parseFloat(t
-						.ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
+				if (!t) {
+					return uni.$u.toast('璇烽�夋嫨鍙敹鏂欑殑渚涘簲鍟嗭紒')
+				}
+
+				if (!this.ngqtyArr[0].ngqty && (parseFloat(this.sqty) > parseFloat(t.fqty) - parseFloat(t.sqty) -
+						parseFloat(t
+							.ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
 					return uni.$u.toast('鏀舵枡鏁伴噺涓嶈兘澶т簬璇ヤ緵搴斿晢鐨勫彲鏀舵敹鏂欙紒')
 				}
-				if (this.ngqty && (parseFloat(this.sqty) + parseFloat(this.ngqty) > parseFloat(t.fqty) - parseFloat(t
+
+				// 涓嶈壇鍘熷洜
+				const defectlist = []
+				//涓嶈壇鏁伴噺
+				let ngqtyNumber = 0
+
+				this.ngqtyArr.forEach(i => {
+					if (i.badSheetValue.toString().length > 0) {
+						let codeArr = []
+						ngqtyNumber += parseFloat(i.ngqty)
+						i.badSheetValue.split(',').forEach(j => {
+							codeArr.push(this.badSelectArr.find(i => i.name === j).code)
+						})
+						defectlist.push({
+							badqty: i.ngqty,
+							defect_code: codeArr.join(',')
+						})
+					}
+				})
+
+				if ((parseFloat(this.sqty) + parseFloat(ngqtyNumber) > parseFloat(t.fqty) - parseFloat(t
 						.sqty) - parseFloat(t.ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
 					return uni.$u.toast('鏀舵枡鏁伴噺+涓嶈壇鏁伴噺涓嶈兘澶т簬璇ヤ緵搴斿晢鐨勫彲鏀舵敹鏂欙紒')
 				}
-
-				if (this.ngqty && !this.badSheetValue) {
-					return uni.$u.toast('涓嶈壇鍘熷洜涓嶈兘涓虹┖锛�')
-				}
-
-				let badcode = []
-
-				if (this.badSheetValue.length > 0) {
-					this.badSelectArr.forEach(i => {
-						if (this.badSheetValue.split(',').includes(i.name)) {
-							badcode.push(i.code)
-						}
-					})
-				}
-
-				// const header = {
-				// 	'Content-Type': 'application/x-www-form-urlencoded',
-				// 	'rediskey': uni.getStorageSync('rediskey'),
-				// 	'admin': uni.getStorageSync('usercode'),
-				// 	'username': encodeURIComponent(uni.getStorageSync('username')),
-				// 	'navTabId': uni.getStorageSync('usercode'),
-				// 	'userid': uni.getStorageSync('userid'),
-				// 	'guid': uni.getStorageSync('guid'),
-				// 	'usertype': 'APP'
-				// }
 
 
 				const D = {
@@ -526,10 +588,7 @@
 					sqty: this.sqty, // 鏀舵枡鏁伴噺
 					// ngqty: !this.ngqty ? 0 : this.ngqty,
 					remarks: this.notes,
-					defectlist: badcode.length > 0 ? [{
-						defect_code: badcode.join(','),
-						badqty: this.ngqty
-					}] : [],
+					defectlist,
 					inbarcode: R[0].labcode, //鍏ュ簱鏉$爜
 				}
 
@@ -553,39 +612,6 @@
 					this.isDisabledSubmitButton = false
 				}
 
-
-
-				// this.isDisabledSubmitButton = true
-				// uni.uploadFile({
-				// 	url: this.$baseUrl + '/AppProductionManagement/SavaMesOrderStepIn',
-				// 	files: [{
-				// 		"uri": "/"
-				// 	}],
-				// 	header: header,
-				// 	formData: data,
-				// 	success: (res) => {
-				// 		console.log(res, 77)
-				// 		uni.$u.toast('鏀舵枡鎴愬姛锛�')
-
-				// 		this.WXSheetValue = ''
-				// 		this.userSheetValue = ''
-				// 		this.checkBoxValue = ''
-				// 		this.badSheetValue = ''
-				// 		this.sqty = null
-				// 		this.ngqty = null
-				// 		this.notes = null
-				// 		this.topContent = []
-
-				// 		this.isDisabledSubmitButton = false
-				// 	},
-				// 	fail(res) {
-				// 		uni.$u.toast('鏀舵枡澶辫触锛�')
-				// 		this.isDisabledSubmitButton = false
-				// 	},
-				// })
-
-
-
 			}
 		}
 	}
@@ -598,6 +624,16 @@
 		display: block;
 	}
 
+	::v-deep .u-action-sheet {
+		max-height: 600rpx !important;
+		overflow: auto !important;
+	}
+
+	::v-deep .u-checkbox-label--right {
+		padding: 30rpx;
+		border-bottom: 1rpx solid #eee;
+	}
+
 	.custominputClass {
 		width: 412rpx;
 		display: flex;
@@ -607,4 +643,24 @@
 		padding: 0 16rpx;
 		line-height: 68rpx;
 	}
+
+
+	.badSheetClass {
+		position: relative;
+	}
+
+	.badNumber {
+		position: absolute;
+		top: 20rpx;
+		left: 20rpx;
+		font-size: 26rpx;
+		color: rgb(0, 102, 255)
+	}
+
+	.trash {
+		position: absolute;
+		top: 20rpx;
+		right: 30rpx;
+		font-size: 26rpx;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3