From 64a7f738aadbf552bfb1ce24c46b1924767bf526 Mon Sep 17 00:00:00 2001
From: Mr.Zhang <710666463@qq.com>
Date: 星期二, 05 九月 2023 16:00:16 +0800
Subject: [PATCH] 小程序

---
 minipro_standard/components/SelectMultipleMaterial.vue |  314 ++++++++++++++++++++++++----------------------------
 1 files changed, 146 insertions(+), 168 deletions(-)

diff --git a/minipro_standard/components/SelectMultipleMaterial.vue b/minipro_standard/components/SelectMultipleMaterial.vue
index 4939502..b081ce0 100644
--- a/minipro_standard/components/SelectMultipleMaterial.vue
+++ b/minipro_standard/components/SelectMultipleMaterial.vue
@@ -6,61 +6,65 @@
 			</v-Search>
 			<div class="content_total">鍏眥{pages.total}}鏉℃暟鎹�</div>
 			<view class="scroll-content">
-				<u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
-					<u-list-item v-for="(item1, index) in list" :key="index">
-						<view class="flex mb20" @click="selectMaterialAction(index)">
-							<view class="img36 mr20 pt10">
-								<u-checkbox-group style="display: block;" name="" @change="selectMaterialAction(index)">
-									<u-checkbox :checked="item1.isActive"></u-checkbox>
-								</u-checkbox-group>
-							</view>
-							<view class="fx1">
-								<div class="page_content_title_top">
-									<span>{{ item1.materialName + ' | ' + item1.materialCode }}</span>
-								</div>
-								<div class="page_content_title_bottom">
-									<span class="green" v-if="item1.qualityType == 0">
-										鍚堟牸
-										<text class="c1" decode>{{ splite }}</text>
-									</span>
-									<span class="orange" v-else-if="item1.qualityType == 1">
-										涓嶈壇
-										<text class="c1" decode>{{ splite }}</text>
-									</span>
-									<span class="red" v-else-if="item1.qualityType == 2">
-										鎶ュ簾
-										<text class="c1" decode>{{ splite }}</text>
-									</span>
-									<span v-else>
-										-
-										<text class="c1" decode>{{ splite }}</text>
-									</span>
-									<span>
-										{{item1.procedureName ? item1.procedureName : '-'}}
-										<text class="c1" decode>{{ splite }}</text>
-									</span>
-									<span>{{item1.batch ? item1.batch : '-'}}</span>
-								</div>
-								<div class="mt20 plr25 ptb20 bg_f7 f26">
-									<div class="c2 mb10"><span class="c6">璐т綅锛�</span>{{ item1.locationName }}</div>
-									<div class="c2"><span class="c6">鏁伴噺锛�</span>{{ item1.num }}{{ item1.unitName }}</div>
-								</div>
-							</view>
+				<scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="refreshing" @scrolltolower="loadMore"
+					@refresherrefresh="onRefresh">
+					<view v-for="(item1, index) in list" :key="index" class="flex mb20" @click="selectMaterialAction(index)">
+						<view class="img36 mr20 pt10">
+							<u-checkbox-group style="display: block;" name="" @change="selectMaterialAction(index)">
+								<u-checkbox :checked="selectIndex.includes(index)"></u-checkbox>
+							</u-checkbox-group>
 						</view>
-					</u-list-item>
-				</u-list>
-			</view>
-				<view style="height: 98rpx;"></view>
-			<!-- <view class="">
-				<u-safe-bottom></u-safe-bottom>
-			</view> -->
-			<view class="fixedBottom bottom cY">
-				<view class="fx1 bbox plr30">
-					<u-checkbox-group style="display: block;" name="" @change="selectAll()">
-						<u-checkbox :checked="isAll" label="鍏ㄩ��"></u-checkbox>
-					</u-checkbox-group>
-				</view>
-				<view class="submit sbtn_green bbox tc">鎻愪氦()</view>
+						<view class="fx1">
+							<div class="page_content_title_top">
+								<span>{{ item1.materialName + ' | ' + item1.materialCode }}</span>
+							</div>
+							<div class="page_content_title_bottom">
+								<span class="green" v-if="item1.qualityType == 0">
+									鍚堟牸
+									<text class="c1" decode>{{ splite }}</text>
+								</span>
+								<span class="orange" v-else-if="item1.qualityType == 1">
+									涓嶈壇
+									<text class="c1" decode>{{ splite }}</text>
+								</span>
+								<span class="red" v-else-if="item1.qualityType == 2">
+									鎶ュ簾
+									<text class="c1" decode>{{ splite }}</text>
+								</span>
+								<span v-else>
+									-
+									<text class="c1" decode>{{ splite }}</text>
+								</span>
+								<span>
+									{{item1.procedureName ? item1.procedureName : '-'}}
+									<text class="c1" decode>{{ splite }}</text>
+								</span>
+								<span>{{item1.batch ? item1.batch : '-'}}</span>
+							</div>
+							<div class="mt20 plr25 ptb20 bg_f7 f26">
+								<div class="c2 mb10"><span class="c6">璐т綅锛�</span>{{ item1.locationName }}</div>
+								<div class="c2"><span class="c6">鏁伴噺锛�</span>{{ item1.num }}{{ item1.unitName }}</div>
+							</div>
+						</view>
+					</view>
+				</scroll-view>
+				<!-- <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
+					<u-list-item v-for="(item1, index) in list" :key="index">
+						
+					</u-list-item>
+				</u-list> -->
+			</view>
+			<view style="height: 98rpx;"></view>
+			<!-- <view class="">
+				<u-safe-bottom></u-safe-bottom>
+			</view> -->
+			<view class="fixedBottom bottom cY">
+				<view class="fx1 bbox plr30">
+					<u-checkbox-group style="display: block;" name="" @change="selectAll()">
+						<u-checkbox :checked="isAll" label="鍏ㄩ��"></u-checkbox>
+					</u-checkbox-group>
+				</view>
+				<view class="submit sbtn_green bbox tc" @click="submitAction">{{ `鎻愪氦(${selectIndex.length})`}}</view>
 			</view>
 		</view>
 	</u-popup>
@@ -68,6 +72,10 @@
 
 <script>
 	import vSearch from '@/components/Search.vue'
+	import {
+		choiceStockListPage,
+		choiceStockPageForStandard
+	} from '@/util/api/agencyAPI'
 	export default {
 		name: "selectMaterial",
 		components: {
@@ -75,141 +83,109 @@
 		},
 		data() {
 			return {
-				show: false,
-				splite:'&nbsp;|&nbsp;',
+				show: false,
+				splite: '&nbsp;|&nbsp;',
 				isAll: false,
+				refreshing: false,
 				pages: {
-					size: 10,
-					index: 1,
+					capacity: 10,
+					page: 1,
 					total: 0
 				},
-				list: []
+				list: [],
+				selectIndex: []
 			};
 		},
 		methods: {
 			open(target) {
-				this.show = true
+				this.show = true
+				this.refreshing = false
 				this.workorderId = target.workorderId
 				this.deviceId = target.deviceId
-				this.list = []
+				this.list = []
+				this.selectIndex = []
+				
+				// console.log(this.selectIndex);
 				this.pages = {
-					size: 10,
-					index: 1,
+					capacity: 10,
+					page: 1,
 					total: 0
 				}
 				this.loadData()
 			},
 			loadData() {
-				this.list = [{
-					batch: '1',
-					materialName: 'dsadas',
-					materialCode: '1m0001',
-					locationName: 'a浠�2鍙蜂綅',
-					num: '1',
-					unitName: '鍧�',
-					qualityType: 0,
-					procedureName: '鍘嬪埗',
-					isActive: false
-				},
-				{
-					batch: '1',
-					materialName: 'dsadas',
-					materialCode: '1m0001',
-					locationName: 'a浠�2鍙蜂綅',
-					num: '1',
-					unitName: '鍧�',
-					qualityType: 0,
-					procedureName: '鍘嬪埗',
-					isActive: false
-				},
-				{
-					batch: '1',
-					materialName: 'dsadas',
-					materialCode: '1m0001',
-					locationName: 'a浠�2鍙蜂綅',
-					num: '1',
-					unitName: '鍧�',
-					qualityType: 0,
-					procedureName: '鍘嬪埗',
-					isActive: false
-				},
-				{
-					batch: '1',
-					materialName: 'dsadas',
-					materialCode: '1m0001',
-					locationName: 'a浠�2鍙蜂綅',
-					num: '1',
-					unitName: '鍧�',
-					qualityType: 0,
-					procedureName: '鍘嬪埗',
-					isActive: false
-				},
-				{
-					batch: '1',
-					materialName: 'dsadas',
-					materialCode: '1m0001',
-					locationName: 'a浠�2鍙蜂綅',
-					num: '1',
-					unitName: '鍧�',
-					qualityType: 0,
-					procedureName: '鍘嬪埗',
-					isActive: false
-				},
-				{
-					batch: '1',
-					materialName: 'dsadas',
-					materialCode: '1m0001',
-					locationName: 'a浠�2鍙蜂綅',
-					num: '1',
-					unitName: '鍧�',
-					qualityType: 0,
-					procedureName: '鍘嬪埗',
-					isActive: false
-				},
-				{
-					batch: '1',
-					materialName: 'dsadas',
-					materialCode: '1m0001',
-					locationName: 'a浠�2鍙蜂綅',
-					num: '1',
-					unitName: '鍧�',
-					qualityType: 0,
-					procedureName: '鍘嬪埗',
-					isActive: false
-				}
-				]
+				choiceStockPageForStandard({
+					...this.pages,
+					model: {
+						workorderId: this.workorderId,
+						deviceId: this.deviceId
+					}
+				}).then(res => {
+					let {data} = res
+					if (data.page == 1) {
+						this.list = [];
+					}
+					this.pages.page = data.page
+					this.pages.total = data.total
+					this.list.push(...data.records)
+				}).catch((err) => {
+					
+				})
+				.finally(() => {
+					this.refreshing = false;
+				})
 			},
-			scrolltoupper() {
+			loadMore() {
+				this.pages.page += 1
 				this.loadData()
 			},
-			scrolltolower() {
+			onRefresh() {
+				if (this.refreshing) return
+				this.refreshing = true;
+				this.pages.page = 1
 				this.loadData()
 			},
 			selectMaterialAction(index) {
-				// console.log('12');
-				this.list[index].isActive = !this.list[index].isActive
+				let i = this.selectIndex.findIndex(item => item==index)
+				if (i == -1 ) {
+					this.selectIndex.push(index)
+				} else {
+					this.selectIndex.splice(i)
+				}
+			},
+			selectAll() {
+				this.selectIndex = []
+				this.selectIndex = [...new Array(this.list.length).keys()]
 			},
-			selectAll() {}
+			submitAction () {
+				this.show = false
+				let selectValue = []
+				this.selectIndex.forEach(item => {
+					selectValue.push(this.list[item])
+				})
+				this.$emit('selectes', { materials: selectValue })
+			}
 		}
-	}
-	/* 
-	*/
+	}
+	/* 
+	 */
 </script>
 
 <style lang="scss" scoped>
-	.material-content {
-		display: flex;
-		flex-direction: column;
-		height: 1200rpx;
-		box-sizing: border-box;
-		.scroll-content {
-			height: calc(1100rpx - env(safe-area-inset-bottom));
-			overflow: scroll;
+	.material-content {
+		display: flex;
+		flex-direction: column;
+		height: 1200rpx;
+		box-sizing: border-box;
+
+		.scroll-content {
+			height: calc(1100rpx - env(safe-area-inset-bottom));
+			overflow: scroll;
 		}
 	}
 
-	.content_total {
-		margin-top: 20rpx;
+	.content_total {
+		margin-top: 20rpx;
 		margin-bottom: 20rpx;
 		// padding: 24rpx 30rpx;
 		// background: #F7F7F7;
@@ -258,17 +234,19 @@
 		display: flex;
 		flex-direction: column;
 		margin-bottom: 10rpx;
-		
 
 
 
-	}
-	.bottom {
-		height: 98rpx;
-		.submit {
-			width: 272rpx;
-			height: 98rpx;
-			line-height: 98rpx;
-		}
+
+	}
+
+	.bottom {
+		height: 98rpx;
+
+		.submit {
+			width: 272rpx;
+			height: 98rpx;
+			line-height: 98rpx;
+		}
 	}
 </style>

--
Gitblit v1.9.3