From 22fd33c839969a5c14de0d994701876407385d7f Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期二, 06 一月 2026 14:00:00 +0800
Subject: [PATCH] 1.页面优化

---
 pages/scgl/scbg.vue |  284 +++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 178 insertions(+), 106 deletions(-)

diff --git a/pages/scgl/scbg.vue b/pages/scgl/scbg.vue
index ecb87a3..68cf44d 100644
--- a/pages/scgl/scbg.vue
+++ b/pages/scgl/scbg.vue
@@ -34,33 +34,38 @@
 		</view>
 
 
-		<u-alert :title="alertTitle" type="info"></u-alert>
+		<u-alert :title="'宸ュ崟鏁伴噺锛�'+total+'锛�'" type="info"></u-alert>
 
 
 		<!-- 鎶樺彔闈㈡澘 -->
 		<!-- <u-collapse @change="change" @close="close" @open="open"> -->
 		<!-- @change="collapseChange" -->
-		<u-collapse style="max-height: 590px;overflow: auto;">
+
+
+		<u-collapse style="max-height: 62vh;overflow: auto;">
 			<!-- :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)' -->
-			<u-collapse-item style="position: relative;" :title="item.ordercode" :name='item.ordercode'
-				v-if='item.children.length!==0' :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)'
-				:label="item.children.length===0?'鏈淳鍙�':''" :disabled='item.children.length===0'
-				v-for="item in collapseArr" :key="item.ordercode">
+			<scroll-view scroll-y :style="{height: 590 + 'px'}" @scrolltolower="loadMore">
+				<u-collapse-item style="position: relative;" :title="item.ordercode" :name='item.ordercode'
+					v-if='item.children.length!==0'
+					:value='parseFloat(item.ordergoodqty)+parseFloat(item.orderngqty)+parseFloat(item.orderlaborbadqty)+parseFloat(item.ordermaterielbadqty)+"/"+parseFloat(item.orderqty)'
+					:label="item.children.length===0?'鏈淳鍙�':''" :disabled='item.children.length===0'
+					v-for="(item,index) in collapseArr" :key="item.ordercode+index">
 
 
-				<view style="position: absolute;left: 30rpx;top:34px;font-size: 24rpx;color: #999;">
-					{{item.partname}} {{item.partspec}}
-				</view>
+					<view style="position: absolute;left: 30rpx;top:34px;font-size: 24rpx;color: #999;">
+						{{item.partname}} {{item.partspec}}
+					</view>
 
-				<!-- <view style="position: absolute;width: 26%;left: 44%;top:16px;"> -->
-				<view style="position: absolute;width: 120px;left: 44%;top:16px;color:#0659ff"
-					@click="progressClick(item.ordercode)">
-					<!-- {{item.partname}}{{item.partspec}} -->
-					<u-line-progress :percentage="parseFloat((item.ordergoodqty*100/item.orderqty).toFixed(2))"
-						inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
-				</view>
+					<!-- <view style="position: absolute;width: 26%;left: 44%;top:16px;"> -->
+					<view style="position: absolute;width: 120px;left: 44%;top:16px;color:#0659ff">
+						<!-- @click="progressClick(item.ordercode)" -->
+						<!-- {{item.partname}}{{item.partspec}} -->
+						<u-line-progress
+							:percentage="parseFloat(((parseFloat(item.ordergoodqty)+parseFloat(item.orderngqty)+parseFloat(item.orderlaborbadqty)+parseFloat(item.ordermaterielbadqty))*100/item.orderqty).toFixed(2))"
+							inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
+					</view>
 
-				<!-- 			<view style="position: absolute;width: 100px;right: 33px;  top:13px; ">
+					<!-- 			<view style="position: absolute;width: 100px;right: 33px;  top:13px; ">
 					<view class="" style="display: flex;justify-content: flex-end;">
 						<view style="color: #0659ff;">
 							{{parseFloat(item.ordergoodqty)}}
@@ -73,56 +78,68 @@
  -->
 
 
-				<view v-if="radiovalue==='鐢熶骇宸ュ崟'" style="margin:0 0  5px">
-					<view class="flex_column">
-						<view style="display:flex">
-							<view class="titleFont" style="font-size: 14px;">浜у搧缂栫爜锛�</view>
-							<view class="contentFont" style="font-size: 14px;">{{item.partcode}}</view>
-						</view>
-						<view style="display:flex">
-							<view class="titleFont" style="font-size: 14px;">浜у搧鍚嶇О锛�</view>
-							<view class="contentFont" style="font-size: 14px;">{{item.partname}}</view>
-						</view>
-						<view style="display:flex">
-							<view class="titleFont" style="font-size: 14px;">浜у搧瑙勬牸锛�</view>
-							<view class="contentFont" style="font-size: 14px;">{{item.partspec?item.partspec:'/'}}
+					<view v-if="radiovalue==='鐢熶骇宸ュ崟'" style="margin:0 0  5px">
+						<view class="flex_column">
+							<view style="display:flex">
+								<view class="titleFont" style="font-size: 14px;">浜у搧缂栫爜锛�</view>
+								<view class="contentFont" style="font-size: 14px;">{{item.partcode}}</view>
 							</view>
-						</view>
-					</view>
-				</view>
-
-
-				<!-- {{item.children}} -->
-				<!-- <u--text class="u-collapse-content"> -->
-				<u-steps :current="-1" inactiveColor='#0659FF' direction="column">
-					<view v-for="(it,ind) in item.children" :key="item.ordercode+it.name+ind"
-						@click="gotoPage(item.ordercode,it.code)" style="display: flex;align-items: center;">
-
-						<!-- <u-steps-item :title="it.code+'/'+it.name+it.spec"></u-steps-item> -->
-						<u-steps-item :title="it.code+'/'+it.name"></u-steps-item>
-						<view class="" style="width: 100px;">
-							<u-line-progress :percentage="parseFloat((it.goodqty*100/it.planqty).toFixed(2))"
-								inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
-						</view>
-						<view style="width: 30%;text-align: right;">
-							<view class="" style="display: flex;justify-content: flex-end;">
-								<view style="color: #0659ff;">
-									{{parseFloat(it.goodqty)}}
-								</view>
-								<view>
-									/{{ parseFloat(it.planqty)}}
+							<view style="display:flex">
+								<view class="titleFont" style="font-size: 14px;">浜у搧鍚嶇О锛�</view>
+								<view class="contentFont" style="font-size: 14px;">{{item.partname}}</view>
+							</view>
+							<view style="display:flex">
+								<view class="titleFont" style="font-size: 14px;">浜у搧瑙勬牸锛�</view>
+								<view class="contentFont" style="font-size: 14px;">{{item.partspec?item.partspec:'/'}}
 								</view>
 							</view>
 						</view>
 					</view>
 
-				</u-steps>
-				<!-- </u--text> -->
+
+					<!-- {{item.children}} -->
+					<!-- <u--text class="u-collapse-content"> -->
+					<u-steps :current="-1" inactiveColor='#0659FF' direction="column">
+						<view v-for="(it,ind) in item.children" :key="item.ordercode+it.name+ind"
+							@click="gotoPage(item.ordercode,it.code,it)" style="display: flex;align-items: center;">
+
+							<!-- <u-steps-item :title="it.code+'/'+it.name+it.spec"></u-steps-item> -->
+							<u-steps-item :title="it.code+'/'+it.name"></u-steps-item>
+							<view class="" style="width: 100px;">
+								<u-line-progress
+									:percentage="parseFloat(((parseFloat(it.goodqty)+parseFloat(it.ngqty)+parseFloat(it.laborbadqty)+parseFloat(it.materielbadqty))*100/it.planqty).toFixed(2))"
+									inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
+							</view>
+							<view style="width: 30%;text-align: right;">
+								<view class="" style="display: flex;justify-content: flex-end;">
+									<view style="color: #0659ff;">
+										{{parseFloat(it.goodqty)}}
+									</view>
+									<view style="color: #ff0000;">
+										+{{parseFloat(it.ngqty)+parseFloat(it.laborbadqty)+parseFloat(it.materielbadqty)}}
+									</view>
+									<view>
+										/{{ parseFloat(it.planqty)}}
+									</view>
+								</view>
+							</view>
+						</view>
+
+					</u-steps>
+					<!-- </u--text> -->
 
 
-			</u-collapse-item>
-
+				</u-collapse-item>
+			</scroll-view>
 		</u-collapse>
+
+
+
+
+		<view class="uni-pagination-box">
+			<uni-pagination show-icon :page-size="pageSize" :current="currentpage" :total="total"
+				@change="pageChange" />
+		</view>
 
 
 		<!-- 寮瑰嚭灞� -->
@@ -144,6 +161,10 @@
 					</u-radio-group>
 				</view>
 
+				<u--input :placeholder="'璇疯緭鍏�'+placeholder2" style="border: 1rpx solid #eee;" :clearable='true'
+					v-model="order"></u--input>
+
+
 				<view style="margin-top: 20px;display: flex;align-items: center;">
 
 					<view class="">
@@ -156,6 +177,7 @@
 
 				</view>
 
+
 				<view style="display: flex;flex-wrap: wrap;">
 					<u-tag style="width:220rpx;" :text="item.name" v-for="item in tagArr" :key="item.code"
 						:closable="true" :show="item.close" @close="tagClose(item)"></u-tag>
@@ -163,7 +185,7 @@
 
 
 
-				<view class="head" style="margin-top: 10px;">
+				<!-- 		<view class="head" style="margin-top: 10px;">
 					<view class="head_block" style="height: 80rpx; display: flex;justify-content: space-around;">
 						<u-button :plain='today' style="width: 70px;height: 25px;" @click="dateChange('today')"
 							type="primary" shape="circle" text="浠婃棩">
@@ -174,9 +196,9 @@
 						<u-button :plain='custom' style="width: 70px;height: 25px;" @click="dateChange('custom')"
 							type="primary" shape="circle" text="鑷畾涔�"></u-button>
 					</view>
-				</view>
+				</view> -->
 
-				<view v-if="!custom" class="flex_column"
+				<!-- 				<view v-if="!custom" class="flex_column"
 					style="display: flex;justify-content: space-around;width: 100%;">
 					<view class="" style="display: flex;justify-content: space-evenly;width: 100%;">
 						<view class="titleFont">寮�濮嬫棩鏈�</view>
@@ -189,7 +211,7 @@
 					</u-button>
 				</view>
 
-				<uni-calendar ref="calendar" :range='true' :insert="false" @confirm="calendarConfirm" />
+				<uni-calendar ref="calendar" :range='true' :insert="false" @confirm="calendarConfirm" /> -->
 
 			</view>
 		</u-popup>
@@ -199,18 +221,27 @@
 
 
 		<!-- 鎮诞鐞� -->
-		<view @click="scan2">
+		<!-- 	<view @click="scan2">
 			<drag-ball :x='300' :y="600"></drag-ball>
-		</view>
+		</view> -->
+
+
+		<scan-code></scan-code>
+
 	</view>
 </template>
 
 
 <script>
 	import {
-		ProductionScheduleKanban
+		ProductOrderSearch
 	} from '../../config/api.js';
+	import scanCode from '@/components/scan-code/scan-code.vue'
+
 	export default {
+		components: {
+			scanCode
+		},
 		onLoad(option) {
 			const _this = this
 			uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
@@ -218,9 +249,6 @@
 				console.log("鎵弿鍒扮殑鍐呭涓�:", content)
 				_this.getCheckScanDeviceQrCodeData(content)
 			})
-
-
-			console.log(option, 8)
 		},
 
 		onPullDownRefresh() {
@@ -288,7 +316,11 @@
 					// 	code: '1006'
 					// },
 				], //宸查�変腑鐨勪骇鍝佹爣绛�
-
+				order: '', //鍗曞彿
+				placeholder2: '鐢熶骇璁㈠崟',
+				total: 0,
+				currentpage: 1, //绗嚑椤�
+				pageSize: 10, //姣忛〉鏄剧ず澶氬皯鏉�
 
 			}
 		},
@@ -297,7 +329,7 @@
 			let that = this
 			uni.startPullDownRefresh({
 				success() {
-					that.getProductionScheduleKanban()
+					that.getProductOrderSearch(that.currentpage)
 					uni.showToast({
 						title: "涓嬫媺鍒锋柊",
 						icon: 'none'
@@ -314,13 +346,19 @@
 		mounted() {
 			this.init()
 
-			this.getProductionScheduleKanban()
+			this.getProductOrderSearch(1)
 		},
 		methods: {
 			init() {
 				uni.stopPullDownRefresh();
 			},
-			gotoPage(p1, p2) {
+			gotoPage(p1, p2, it) {
+
+				if (parseFloat(it.goodqty) + parseFloat(it.ngqty) + parseFloat(it.laborbadqty) + parseFloat(it
+						.materielbadqty) === parseFloat(it.planqty)) {
+					return uni.$u.toast('褰撳墠宸ュ簭鏃犲彲鎶ユ暟閲忥紒')
+				}
+
 				let orderstep = null
 
 				if (p1) {
@@ -331,7 +369,7 @@
 
 
 				uni.navigateTo({
-					url: './scbg2?orderstep=' + orderstep
+					url: './scbg2?orderstep=' + orderstep + '&currentpage=' + this.currentpage
 				})
 			},
 
@@ -346,23 +384,31 @@
 				})
 			},
 
+			// 椤垫暟鏀瑰彉鏃�  鍒嗛〉瑙﹀彂
+			pageChange(e) {
+				this.currentpage = e.current
+				this.getProductOrderSearch(e.current)
+			},
+
 			// 鎺ュ彛鑾峰彇
-			async getProductionScheduleKanban() {
+			async getProductOrderSearch(current) {
 				let ordertype = '' // SO锛氶攢鍞鍗�  MO锛氱敓浜ц鍗�  PO锛氱敓浜у伐鍗�
 				switch (this.radiovalue) {
 					case '鐢熶骇宸ュ崟':
-						this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
-						this.placeholder = '璇疯緭鍏ュ伐鍗曚俊鎭�'
+						// this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
+						// this.placeholder = '璇疯緭鍏ュ伐鍗曚俊鎭�'
 						ordertype = 'PO'
 						break
 					case '鐢熶骇璁㈠崟':
-						this.alertTitle = '鐢熶骇璁㈠崟鏁伴噺锛堝叡/涓級'
-						this.placeholder = '璇疯緭鍏ョ敓浜ц鍗曚俊鎭�'
+						// this.alertTitle = '鐢熶骇璁㈠崟鏁伴噺锛堝叡/涓級'
+						// this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
+						// this.placeholder = '璇疯緭鍏ョ敓浜ц鍗曚俊鎭�'
 						ordertype = 'MO'
 						break
 					case '閿�鍞鍗�':
-						this.alertTitle = '閿�鍞鍗曟暟閲忥紙鍏�/涓級'
-						this.placeholder = '璇疯緭鍏ラ攢鍞鍗曚俊鎭�'
+						// this.alertTitle = '閿�鍞鍗曟暟閲忥紙鍏�/涓級'
+						// this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
+						// this.placeholder = '璇疯緭鍏ラ攢鍞鍗曚俊鎭�'
 						ordertype = 'SO'
 						break
 				}
@@ -371,41 +417,56 @@
 				const data = {
 					ordertype,
 					partcode: this.tagArr.map(i => i.code).join(','),
-					Ratetime: this.calendarRange,
+					ordercode: this.order,
+					Ratetime: '',
+					// Ratetime: this.calendarRange,
+
+					page: current,
+					rows: this.pageSize,
+					prop: 'lm_date',
+					sortorder: 'desc'
 
 				}
-				const {
-					data: res
-				} = await ProductionScheduleKanban(data)
+				const res = await ProductOrderSearch(data)
 
-				this.collapseArr = res
-				this.collapseArrAll = res
-				this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[
-					1]
+				this.total = res.count
+
+				this.collapseArr = res.data
+				this.collapseArrAll = res.data
+				// this.alertTitle = this.alertTitle.split('/')[0] + this.total + this.alertTitle.split('/')[
+				// 	1]
+
+			},
+			loadMore() {
 
 			},
 
-
 			//杈撳叆妗嗗洖杞︾‘璁や簨浠�
 			confirmInputBoxValue(val) {
-				this.collapseArr = this.collapseArrAll.filter((p) => {
-					return p.ordercode.indexOf(val) !== -1
-				})
+				this.order = val
+				this.currentpage = 1
+				this.getProductOrderSearch(1)
+				// this.collapseArr = this.collapseArrAll.filter((p) => {
+				// 	return p.ordercode.indexOf(val) !== -1
+				// })
 
 
-				switch (this.radiovalue) {
-					case '鐢熶骇宸ュ崟':
-						this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
-						break
-					case '鐢熶骇璁㈠崟':
-						this.alertTitle = '鐢熶骇璁㈠崟鏁伴噺锛堝叡/涓級'
-						break
-					case '閿�鍞鍗�':
-						this.alertTitle = '閿�鍞鍗曟暟閲忥紙鍏�/涓級'
-						break
-				}
-				this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[
-					1]
+				// switch (this.radiovalue) {
+				// 	case '鐢熶骇宸ュ崟':
+				// 		this.alertTitle = '宸ュ崟鏁伴噺锛堝叡' + this.total + '涓級'
+				// 		break
+				// 	case '鐢熶骇璁㈠崟':
+				// 		this.alertTitle = '宸ュ崟鏁伴噺锛堝叡' + this.total + '涓級'
+				// 		break
+				// 	case '閿�鍞鍗�':
+				// 		this.alertTitle = '宸ュ崟鏁伴噺锛堝叡' + this.total + '涓級'
+				// 		break
+				// }
+
+
+
+				// this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[
+				// 	1]
 
 			},
 
@@ -476,7 +537,7 @@
 
 			// 寮瑰嚭灞傛敹璧�
 			popupClose() {
-				this.getProductionScheduleKanban()
+				this.getProductOrderSearch(1)
 				this.popupShow = false
 			},
 
@@ -561,6 +622,7 @@
 			// 鍗曢�夋寜閽垏鎹�
 			groupChange(val) {
 				console.log(val)
+				this.placeholder2 = val
 			},
 
 
@@ -653,4 +715,14 @@
 	::v-deep .u-cell__body {
 		padding-bottom: 40rpx;
 	}
+
+	.uni-pagination-box {
+		height: 4vh;
+		margin: 1vh 0;
+
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		// background-color: #fff;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3