From 4e4414bc9d1604fd2a3ed443cb9484143eab7e2c Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 15 一月 2026 13:52:19 +0800
Subject: [PATCH] #

---
 pages/listing/itemSelect.vue               |  179 ++++++++-
 pages/listing/matnrPalletising.vue         |   32 +
 pages.json                                 |  114 +++--
 pages/outbound/orderOut/orderList.vue      |  394 +++++++++++++++++++++
 pages/outbound/orderOut/order_out_type.vue |  248 +++++++++++++
 static/css/wms.css/wms.css                 |   67 ---
 6 files changed, 877 insertions(+), 157 deletions(-)

diff --git a/pages.json b/pages.json
index bf22534..93502c0 100644
--- a/pages.json
+++ b/pages.json
@@ -13,6 +13,18 @@
 			}
 		},
 		{
+			"path": "pages/outbound/orderOut/order_out_type",
+			"style": {
+				"navigationBarTitleText": "鍗曟嵁绫诲瀷"
+			}
+		},
+		{
+			"path": "pages/outbound/orderOut/orderList",
+			"style": {
+				"navigationBarTitleText": "鍗曟嵁鍒楄〃"
+			}
+		},
+		{
 			"path": "pages/emptyTray/outBound",
 			"style": {
 				"navigationBarTitleText": "绌烘墭鍑哄簱"
@@ -220,7 +232,7 @@
 			"path": "pages/listing/itemSelect",
 			"style": {
 				"navigationBarTitleText": "閫夋嫨鐗╂枡",
-				"enablePullDownRefresh": false
+				"enablePullDownRefresh": true
 			}
 		},
 		{
@@ -400,35 +412,34 @@
 				"navigationBarTitleText": "鍑哄簱棰勮",
 				"enablePullDownRefresh": false
 			}
-		}
-		, {
+		},
+		{
 			"path": "pages/phyz/AGV/emptyOut",
 			"style": {
 				"navigationBarTitleText": "鍛煎彨绌鸿揣鏋�",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/wrkMast/wrkMastLog",
 			"style": {
 				"navigationBarTitleText": "宸ヤ綔鍘嗗彶妗�",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/wrkMast/waitPakinLog",
 			"style": {
 				"navigationBarTitleText": "鍏ュ簱閫氱煡鍘嗗彶妗�",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/order/orderList2",
 			"style": {
 				"navigationBarTitleText": "璁㈠崟鍒楄〃",
 				"enablePullDownRefresh": false
 			}
-
 		},
 		{
 			"path": "pages/phyz/stationManage/stationDetl",
@@ -436,20 +447,20 @@
 				"navigationBarTitleText": "绔欑偣璇︽儏",
 				"enablePullDownRefresh": false
 			}
-		}, {
+		},
+		{
 			"path": "pages/phyz/order/pakinOrderSelect",
 			"style": {
 				"navigationBarTitleText": "鍏ュ簱璁㈠崟",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/order/pakinOrderSelectV2",
 			"style": {
 				"navigationBarTitleText": "鍏ュ簱璁㈠崟",
 				"enablePullDownRefresh": false
 			}
-
 		},
 		{
 			"path": "pages/phyz/order/orderCar",
@@ -457,27 +468,27 @@
 				"navigationBarTitleText": "寰呯粍鎵樺垪琛�",
 				"enablePullDownRefresh": false
 			}
-		}, {
+		},
+		{
 			"path": "pages/phyz/orderOut/orderOutSelect",
 			"style": {
 				"navigationBarTitleText": "鍑哄簱璁㈠崟",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/orderOut/orderOutSelectV2",
 			"style": {
 				"navigationBarTitleText": "鍑哄簱璁㈠崟",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/orderOut/orderList",
 			"style": {
 				"navigationBarTitleText": "寰呭嚭鍒楄〃",
 				"enablePullDownRefresh": false
 			}
-
 		},
 		{
 			"path": "pages/phyz/orderOut/orderCheck",
@@ -492,20 +503,20 @@
 				"navigationBarTitleText": "鍑哄簱纭",
 				"enablePullDownRefresh": false
 			}
-		}, {
+		},
+		{
 			"path": "pages/phyz/checkLocDetl/checkLocDetl",
 			"style": {
 				"navigationBarTitleText": "鐩樼偣",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/checkLocDetl/locDetl",
 			"style": {
 				"navigationBarTitleText": "搴撳瓨鏄庣粏",
 				"enablePullDownRefresh": false
 			}
-
 		},
 		{
 			"path": "pages/phyz/checkLocDetl/locDetlList",
@@ -541,27 +552,29 @@
 				"navigationBarTitleText": "鍐嶆鎷f枡鏄庣粏",
 				"enablePullDownRefresh": false
 			}
-		}, {
+		},
+		{
 			"path": "pages/phyz/bcp/bcpOrder",
 			"style": {
 				"navigationBarTitleText": "鍗婂叆搴撳崟",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/bcp/bcpOrder_xs",
 			"style": {
 				"navigationBarTitleText": "鍗婃垚鍝佸叆搴撳崟_鍚稿",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/bcp/bcpDbOrder",
 			"style": {
 				"navigationBarTitleText": "鍗婃垚鍝佽皟鎷ㄥ崟",
 				"enablePullDownRefresh": false
 			}
-		}, {
+		},
+		{
 			"path": "pages/phyz/bcp/bcpDbOrderV2",
 			"style": {
 				"navigationBarTitleText": "鍗婃垚鍝佽皟鎷ㄥ崟",
@@ -595,30 +608,29 @@
 				"navigationBarTitleText": "搴撲綅杞Щ",
 				"enablePullDownRefresh": false
 			}
-		}, {
+		},
+		{
 			"path": "pages/phyz/bcp/bcpDbList",
 			"style": {
 				"navigationBarTitleText": "璋冩嫧搴撲綅",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/orderOut/bcpOrderOutSelect",
 			"style": {
 				"navigationBarTitleText": "鍗婃垚鍝佸嚭搴撳崟",
 				"enablePullDownRefresh": false
 			}
-
-		}
-
-		, {
+		},
+		{
 			"path": "pages/phyz/orderOut/bcpOrderOutSelect_2",
 			"style": {
 				"navigationBarTitleText": "鍗婃垚鍝佸嚭搴撳崟_浜屽巶",
 				"enablePullDownRefresh": false
 			}
-
-		}, {
+		},
+		{
 			"path": "pages/phyz/wrkMast/locMoveMast",
 			"style": {
 				"navigationBarTitleText": "璋冩嫧浠诲姟绠$悊",
@@ -722,22 +734,18 @@
 			}
 		},
 		{
-			"path" : "pages/phyz/inStock/inStock",
-			"style" : 
-			{
-				"navigationBarTitleText" : "鍏ュ簱涓婃灦"
+			"path": "pages/phyz/inStock/inStock",
+			"style": {
+				"navigationBarTitleText": "鍏ュ簱涓婃灦"
+			}
+		},
+		{
+			"path": "pages/listing/unPakin",
+			"style": {
+				"navigationBarTitleText": "缁勬墭瑙g粦"
 			}
 		}
-
-	    ,{
-            "path" : "pages/listing/unPakin",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "缁勬墭瑙g粦"
-            }
-            
-        }
-    ],
+	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "uni-app",
diff --git a/pages/listing/itemSelect.vue b/pages/listing/itemSelect.vue
index 99eb754..8f1299b 100644
--- a/pages/listing/itemSelect.vue
+++ b/pages/listing/itemSelect.vue
@@ -7,7 +7,7 @@
 		
 		 
 		<view>
-			<view class="padding-lr margin-top-sm">
+			<view class="padding-lr margin-top-sm" style="padding-bottom: 120upx;">
 				<block v-for="(item, index) in matList" :key="index">
 					<view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.selected === true &&'act']" @click="selectedItem(index)">
 						<view class="cu-bar bg-white solid-bottom " >
@@ -71,12 +71,21 @@
 						
 					</view>
 				</block>
+				
+				<!-- 绌虹姸鎬� -->
+				<view class="empty-state" v-if="matList.length === 0 && !loading">
+					<uni-icons type="search" size="60" color="#CCCCCC"></uni-icons>
+					<text class="empty-text">鏆傛棤鏁版嵁</text>
+					<text class="empty-hint">涓嬫媺鍒锋柊璇曡瘯</text>
+				</view>
+				
+				<!-- 鍔犺浇鏇村 -->
+				<uni-load-more v-show="matList.length !== 0" :status="status" :icon-size="16" :content-text="contentText" />
 			</view>
 		</view>
 		<view class="cu-bar btn-group foot">			
 			<button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="back">纭畾</button>
 		</view>
-		<!-- <uni-load-more v-show="matList.length != 0" :status="status" :icon-size="16" :content-text="contentText" /> -->
 	</view>
 </template>
 
@@ -97,14 +106,32 @@
 				selectedList:[],
 				repeatClick: false,
 				matnrCode:'',
-				asnCode:'',				
-				
+				asnCode:'',
+				// 鍒嗛〉鐩稿叧
+				curr: 1,
+				pageSize: 5,
+				loading: false,
+				status: 'more',
+				contentText: {
+					contentdown: '涓婃媺鍔犺浇鏇村',
+					contentrefresh: '鍔犺浇涓�',
+					contentnomore: '娌℃湁鏇村'
+				},
+				// 淇濆瓨鏌ヨ鍙傛暟
+				lastReq: null
 			}
 		},
-		// onReachBottom() {
-		// 	this.status = 'more';
-		// 	this.showMat(this.tagIdNow);
-		// },
+		// 涓嬫媺鍒锋柊
+		onPullDownRefresh() {
+			this.refreshData();
+		},
+		// 涓婃媺鍔犺浇鏇村
+		onReachBottom() {
+			if (this.status !== 'noMore' && !this.loading) {
+				this.status = 'loading';
+				this.loadMoreData();
+			}
+		},
 		onLoad() {
 			// 娌″暐鐢ㄤ簡
 			let that = this
@@ -122,6 +149,22 @@
 			
 		},
 		methods: {
+			// 鍒锋柊鏁版嵁
+			refreshData() {
+				this.curr = 1;
+				this.matList = [];
+				this.status = 'more';
+				if (this.lastReq) {
+					this.getDet(this.lastReq, true);
+				}
+				uni.stopPullDownRefresh();
+			},
+			// 鍔犺浇鏇村鏁版嵁
+			loadMoreData() {
+				if (this.lastReq) {
+					this.getDet(this.lastReq, false);
+				}
+			},
 			search(){
 				let req = {
 					matnrCode: this.condition,
@@ -129,7 +172,11 @@
 					code: this.condition,
 					batch: this.condition
 				}
-				this.getDet(req);
+				// 鎼滅储鏃堕噸缃垎椤�
+				this.curr = 1;
+				this.matList = [];
+				this.status = 'more';
+				this.getDet(req, true);
 			},
 			back() {
 				for (var i = 0; i < this.matList.length; i++) {
@@ -150,35 +197,80 @@
 					this.matList[index].selected = !this.matList[index].selected
 				}				
 			},
-			async getDet(req) {
+			async getDet(req, isRefresh = true) {
 				let that = this;
-				uni.showLoading({
-					title:'鍔犺浇涓�...'
-				})
-				const {
-					code,
-					data,
-					msg
-				} = await request('/asnOrderItem/trackCode', {
-					matnrCode: req.matnrCode,
-					asnCode: req.asnCode,
-					code: req.code,
-					batch: req.batch
-				}, "post")
-				if (code === 200) {
-					for (var i = 0; i < data.length; i++) {
-						data[i].receiptQty =0;
-						data[i].selected = false;							
-					}	
-					this.matList = data
-				} else {
+				// 淇濆瓨鏌ヨ鍙傛暟渚涘埛鏂板拰鍔犺浇鏇村浣跨敤
+				this.lastReq = req;
+				this.loading = true;
+				
+				if (isRefresh) {
+					uni.showLoading({
+						title:'鍔犺浇涓�...'
+					})
+				}
+				
+				try {
+					const {
+						code,
+						data,
+						msg
+					} = await request('/asnOrderItem/trackCode', {
+						matnrCode: req.matnrCode,
+						asnCode: req.asnCode,
+						code: req.code,
+						batch: req.batch,
+						curr: this.curr,
+						pageSize: this.pageSize
+					}, "post")
+					
+					if (code === 200) {
+						let records = data.records || [];
+						let currentPage = data.current || 1;
+						let totalPages = data.pages || 1;
+						
+						// 澶勭悊鏁版嵁
+						for (var i = 0; i < records.length; i++) {
+							records[i].receiptQty = 0;
+							records[i].selected = false;							
+						}
+						
+						if (records.length > 0) {
+							if (isRefresh) {
+								this.matList = records;
+							} else {
+								this.matList = this.matList.concat(records);
+							}
+							this.curr = this.curr + 1;
+							// 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁
+							if (this.curr > totalPages) {
+								this.status = 'noMore';
+							} else {
+								this.status = 'more';
+							}
+						} else {
+							if (isRefresh) {
+								this.matList = [];
+							}
+							this.status = 'noMore';
+						}
+					} else {
+						uni.showToast({
+							title: msg,
+							icon: "none",
+							position: 'top'
+						})
+					}
+				} catch (err) {
 					uni.showToast({
-						title: msg,
+						title: '缃戠粶璇锋眰澶辫触',
 						icon: "none",
 						position: 'top'
 					})
+				} finally {
+					this.loading = false;
+					uni.hideLoading();
+					uni.stopPullDownRefresh();
 				}
-				uni.hideLoading();
 			},
 			
 		}
@@ -214,5 +306,26 @@
 		display: flex;
 		min-height: 80upx;
 		align-items: center;
-	}	
+	}
+	
+	/* 绌虹姸鎬� */
+	.empty-state {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		padding: 120rpx 0;
+	}
+	
+	.empty-text {
+		font-size: 30rpx;
+		color: #909399;
+		margin-top: 30rpx;
+	}
+	
+	.empty-hint {
+		font-size: 24rpx;
+		color: #c0c4cc;
+		margin-top: 12rpx;
+	}
 </style>
\ No newline at end of file
diff --git a/pages/listing/matnrPalletising.vue b/pages/listing/matnrPalletising.vue
index a2b82ab..b362b9e 100644
--- a/pages/listing/matnrPalletising.vue
+++ b/pages/listing/matnrPalletising.vue
@@ -6,12 +6,12 @@
 			<view class="cu-form-group margin-top">
 				<view class="title">璁㈠崟鍙�</view>
 				<input placeholder="璇疯緭鍏ヨ鍗曞彿" v-model="asnCode"></input>
-				<text class='cuIcon-search text-blue' @click="search"></text>
+				<!-- <text class='cuIcon-search text-blue' @click="search"></text> -->
 			</view>
 			<view class="cu-form-group">
 				<view class="title">瀹瑰櫒鍙�</view>
-				<input placeholder="璇锋壂鎻忓鍣ㄧ紪鐮�" v-model="container" focus></input>
-				<text class='cuIcon-search text-blue' @click="getList"></text>
+				<input placeholder="璇锋壂鎻忓鍣ㄧ紪鐮�" v-model="container" @input="getList" focus></input>
+				<!-- <text class='cuIcon-search text-blue' @click="getList"></text> -->
 			</view>			
 			<view class="cu-form-group">
 				<view class="title">鐗╂枡鍙�</view>
@@ -27,7 +27,7 @@
 		
 		</view>
 
-		<view class="padding-lr margin-top-sm">
+		<view class="padding-lr margin-top-sm" style="padding-bottom: 120upx;">
 			<block v-for="(item, index) in list" :key="index">
 				<view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.trackCode===barcode&&'act']"
 					:ref="item.trackCode+'ref'">
@@ -154,7 +154,7 @@
 					<view class="form-item">
 						<text class="form-label">鐩爣搴撳尯</text>
 						<view class="input-wrapper picker-wrapper">
-							<picker mode="selector" :range="rangeText" @change="pickerChange">
+							<picker class="picker" mode="selector" :range="rangeText" @change="pickerChange">
 								<view class="picker-view">
 									<text>{{ whAreaId ? selectedText : '璇烽�夋嫨搴撳尯' }}</text>
 									<text class="cuIcon-right picker-arrow"></text>
@@ -205,7 +205,7 @@
 		computed: {
 			...mapState('user', ['dynamicFields']),
 			allCount() {
-				return this.list.reduce((acc, row) => +row.anfme + acc, 0) || 0
+				return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) || 0
 			},
 			rangeText() {
 				return this.range.map(item => item.text)
@@ -216,7 +216,7 @@
 			}
 		},
 		mounted() {
-			this.getRece()
+			// this.getRece()
 			// 鑾峰彇鎸夐挳鏉冮檺
 			this.buttonPermissions = uni.getStorageSync('buttonPermissions') || [];
 			console.log('褰撳墠椤甸潰鎸夐挳鏉冮檺:', this.buttonPermissions);
@@ -323,11 +323,12 @@
 					barcode: this.container
 				})
 				if (code === 200) {
-					uni.showToast({
-						title: msg,
-						icon: "success",
-						position: 'top'
-					})
+					this.range = data.map(item => ({
+						value: item.id,
+						text:  item.name
+					}));
+					
+					this.whAreaId = this.range[0].value					
 				} else {
 					uni.showToast({
 						title: msg,
@@ -534,7 +535,7 @@
 			if (code === 200) {
 				this.range = data.map(item => ({
 					value: item.id,
-					text: item.warehouseId$ + "-- " + item.name
+					text:  item.name
 				}));
 			}
 		},
@@ -664,6 +665,9 @@
 		color: #333;
 		background-color: transparent;
 	}
+	.picker{
+		width: 100%;
+	}
 	
 	.picker-view {
 		width: 100%;
@@ -672,7 +676,7 @@
 		font-size: 30rpx;
 		color: #333;
 		display: flex;
-		justify-content: space-between;
+		justify-content:space-between;
 		align-items: center;
 	}
 	
diff --git a/pages/outbound/orderOut/orderList.vue b/pages/outbound/orderOut/orderList.vue
new file mode 100644
index 0000000..2742bd6
--- /dev/null
+++ b/pages/outbound/orderOut/orderList.vue
@@ -0,0 +1,394 @@
+<template>
+	<view class="page-container">
+		<!-- 鎼滅储妗� -->
+		<view class="search-bar">
+			<uni-search-bar v-model="condition" placeholder=" 鎵爜 / 杈撳叆" bgColor="#F5F5F5" @confirm="search" @cancel="onCancelSearch" />
+		</view>
+		
+		<!-- 璁㈠崟鍒楄〃 -->
+		<view class="order-list">
+			<view class="order-card" v-for="(item,i) in matList" :key="i" @click="toPrint(item)">
+				<!-- 鍗$墖澶撮儴 -->
+				<view class="card-header">
+					<view class="order-badge" :class="getSettleClass(item.settle)">
+						<text class="badge-text">{{item.settle$ || '鏈煡'}}</text>
+					</view>
+					<view class="order-no">
+						<text class="order-no-label">鍗曟嵁鍙�</text>
+						<text class="order-no-value">{{item.orderNo}}</text>
+					</view>
+				</view>
+				
+				<!-- 鍗$墖鍐呭 -->
+				<view class="card-body">
+					<view class="info-row">
+						<view class="info-item">
+							<text class="info-label">鍗曟嵁绫诲瀷</text>
+							<text class="info-value">{{item.docType$ || '-'}}</text>
+						</view>
+						<view class="info-item">
+							<text class="info-label">浠撳簱</text>
+							<text class="info-value">{{item.itemName || '-'}}</text>
+						</view>
+					</view>
+				</view>
+				
+				<!-- 鍗$墖搴曢儴 -->
+				<view class="card-footer">
+					<text class="view-detail">鏌ョ湅璇︽儏</text>
+					<uni-icons type="right" size="14" color="#999"></uni-icons>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 绌虹姸鎬� -->
+		<view class="empty-state" v-if="matList.length === 0 && !loading">
+			<uni-icons type="search" size="60" color="#CCCCCC"></uni-icons>
+			<text class="empty-text">鏆傛棤璁㈠崟鏁版嵁</text>
+			<text class="empty-hint">涓嬫媺鍒锋柊璇曡瘯</text>
+		</view>
+		
+		<!-- 鍔犺浇鏇村 -->
+		<uni-load-more v-show="matList.length !== 0" :status="status" :icon-size="16" :content-text="contentText" />
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				tagList: [],
+				matList: [],
+				condition: '',
+				loading: false,
+				curr: 1,
+				baseUrl: '',
+				token: '',
+				status: 'more',
+				contentText: {
+					contentdown: '涓婃媺鍔犺浇鏇村',
+					contentrefresh: '鍔犺浇涓�',
+					contentnomore: '娌℃湁鏇村'
+				},
+				// 褰撳墠tagId
+				tagIdNow: 1,
+				orderTypeId:''
+			}
+		},
+		// 涓嬫媺鍒锋柊
+		onPullDownRefresh() {
+			this.refreshData();
+		},
+		// 涓婃媺鍔犺浇鏇村
+		onReachBottom() {
+			if (this.status !== 'noMore') {
+				this.status = 'loading';
+				this.loadMoreData();
+			}
+		},
+		onLoad() {
+			let that = this
+			const eventChannel = this.getOpenerEventChannel();
+			if (eventChannel) {
+				eventChannel.on('orderTypeId', function(data) {
+					that.orderTypeId = data.orderTypeId
+				})
+			}
+		},
+		onShow() {
+			this.baseUrl = uni.getStorageSync('baseUrl');
+			this.token = uni.getStorageSync('token');
+			// 姣忔杩涘叆椤甸潰閲嶆柊鍔犺浇
+			this.refreshData();
+		},
+		methods: {
+			// 鍒锋柊鏁版嵁
+			refreshData() {
+				this.curr = 1;
+				this.matList = [];
+				this.status = 'more';
+				this.loading = true;
+				this.fetchOrderList(true);
+			},
+			// 鍔犺浇鏇村鏁版嵁
+			loadMoreData() {
+				this.fetchOrderList(false);
+			},
+			// 鑾峰彇璁㈠崟鍒楄〃
+			fetchOrderList(isRefresh) {
+				let that = this;
+				uni.request({
+					url: that.baseUrl + '/order/pakin/order/list/pda/page/auth',
+					data: {
+						curr: that.curr,
+						limit: 20,
+						tagId: that.tagIdNow
+					},
+					method: "GET",
+					header: {
+						'token': uni.getStorageSync('token'),
+					},
+					success(result) {
+						var res = result.data;
+						if (res.code === 200) {
+							let records = res.data.records || [];
+							if (records.length > 0) {
+								if (isRefresh) {
+									that.matList = records;
+								} else {
+									that.matList = that.matList.concat(records);
+								}
+								that.curr = that.curr + 1;
+								that.status = 'more';
+							} else {
+								that.status = 'noMore';
+							}
+						} else if (res.code === 403) {
+							uni.showToast({ title: res.msg, icon: "none", position: 'top' });
+							setTimeout(() => {
+								uni.reLaunch({ url: '../login/login' });
+							}, 1000);
+						} else {
+							uni.showToast({ title: res.msg, icon: "none", position: 'top' });
+						}
+					},
+					fail(err) {
+						uni.showToast({ title: '缃戠粶璇锋眰澶辫触', icon: "none", position: 'top' });
+					},
+					complete() {
+						that.loading = false;
+						uni.stopPullDownRefresh();
+					}
+				});
+			},
+			// 鎼滅储
+			search() {
+				if (!this.condition.trim()) {
+					this.refreshData();
+					return;
+				}
+				let that = this;
+				that.loading = true;
+				uni.request({
+					url: that.baseUrl + '/order/search/pda/auth',
+					data: {
+						condition: that.condition
+					},
+					method: "GET",
+					header: {
+						'token': uni.getStorageSync('token'),
+					},
+					success(result) {
+						var res = result.data;
+						if (res.code === 200) {
+							that.matList = res.data || [];
+							that.status = 'noMore';
+						} else if (res.code === 403) {
+							uni.showToast({ title: res.msg, icon: "none", position: 'top' });
+							setTimeout(() => {
+								uni.reLaunch({ url: '../login/login' });
+							}, 1000);
+						} else {
+							uni.showToast({ title: res.msg, icon: "none", position: 'top' });
+						}
+					},
+					fail() {
+						uni.showToast({ title: '鎼滅储璇锋眰澶辫触', icon: "none", position: 'top' });
+					},
+					complete() {
+						that.loading = false;
+					}
+				});
+			},
+			// 鍙栨秷鎼滅储
+			onCancelSearch() {
+				this.condition = '';
+				this.refreshData();
+			},
+			// 鏍规嵁鐘舵�佽繑鍥炴牱寮忕被鍚�
+			getSettleClass(settle) {
+				// settle: 1-寰呭鐞�, 2-澶勭悊涓�, 3-宸插畬鎴�, 4-宸插彇娑� (鏍规嵁瀹為檯鎯呭喌璋冩暣)
+				const classMap = {
+					1: 'badge-pending',
+					2: 'badge-processing',
+					3: 'badge-completed',
+					4: 'badge-cancelled'
+				};
+				return classMap[settle] || 'badge-default';
+			},
+			// 璺宠浆鍒拌鍗曡鎯�
+			toPrint(item) {
+				let that = this;
+				uni.navigateTo({
+					url: "../order/orderDetlList",
+					success: function(res) {
+						res.eventChannel.emit('data', {
+							data: item
+						});
+					},
+					events: {
+						acceptDataFromOpenedPage: function(data) {
+							that.matnr = data.data;
+							that.findMat(that.matnr);
+						},
+					},
+				});
+			}
+		}
+	}
+</script>
+
+<style>
+	@import url('@/static/css/wms.css/wms.css');
+	
+	.page-container {
+		min-height: 100vh;
+		background: linear-gradient(135deg, #f5f7fa 0%, #e4e8eb 100%);
+		padding-bottom: 20rpx;
+	}
+	
+	.search-bar {
+		padding: 0rpx 14rpx;
+		background: #ffffff;
+		box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);
+	}
+	
+	.order-list {
+		padding: 0 24rpx;
+	}
+	
+	.order-card {
+		background: #ffffff;
+		border-radius: 16rpx;
+		margin-top: 20rpx;
+		box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.08);
+		overflow: hidden;
+		transition: transform 0.2s ease, box-shadow 0.2s ease;
+	}
+	
+	.order-card:active {
+		transform: scale(0.98);
+		box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.12);
+	}
+	
+	.card-header {
+		display: flex;
+		align-items: center;
+		padding: 24rpx 28rpx;
+		background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+	}
+	
+	.order-badge {
+		padding: 6rpx 16rpx;
+		border-radius: 20rpx;
+		margin-right: 20rpx;
+	}
+	
+	.badge-text {
+		font-size: 22rpx;
+		font-weight: 500;
+		color: #ffffff;
+	}
+	
+	/* 鐘舵�佸窘绔犻鑹� */
+	.badge-pending {
+		background: rgba(255, 255, 255, 0.3);
+	}
+	
+	.badge-processing {
+		background: #ffc107;
+	}
+	
+	.badge-completed {
+		background: #28a745;
+	}
+	
+	.badge-cancelled {
+		background: #dc3545;
+	}
+	
+	.badge-default {
+		background: rgba(255, 255, 255, 0.25);
+	}
+	
+	.order-no {
+		flex: 1;
+	}
+	
+	.order-no-label {
+		font-size: 22rpx;
+		color: rgba(255, 255, 255, 0.7);
+		display: block;
+	}
+	
+	.order-no-value {
+		font-size: 28rpx;
+		color: #ffffff;
+		font-weight: 600;
+		display: block;
+		margin-top: 4rpx;
+	}
+	
+	.card-body {
+		padding: 24rpx 28rpx;
+	}
+	
+	.info-row {
+		display: flex;
+		flex-wrap: wrap;
+	}
+	
+	.info-item {
+		width: 50%;
+		margin-bottom: 16rpx;
+	}
+	
+	.info-label {
+		font-size: 24rpx;
+		color: #909399;
+		display: block;
+	}
+	
+	.info-value {
+		font-size: 28rpx;
+		color: #303133;
+		font-weight: 500;
+		display: block;
+		margin-top: 6rpx;
+	}
+	
+	.card-footer {
+		display: flex;
+		align-items: center;
+		justify-content: flex-end;
+		padding: 20rpx 28rpx;
+		border-top: 1rpx solid #f0f0f0;
+	}
+	
+	.view-detail {
+		font-size: 26rpx;
+		color: #909399;
+		margin-right: 8rpx;
+	}
+	
+	/* 绌虹姸鎬� */
+	.empty-state {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		padding: 120rpx 0;
+	}
+	
+	.empty-text {
+		font-size: 30rpx;
+		color: #909399;
+		margin-top: 30rpx;
+	}
+	
+	.empty-hint {
+		font-size: 24rpx;
+		color: #c0c4cc;
+		margin-top: 12rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/outbound/orderOut/order_out_type.vue b/pages/outbound/orderOut/order_out_type.vue
new file mode 100644
index 0000000..578ee8e
--- /dev/null
+++ b/pages/outbound/orderOut/order_out_type.vue
@@ -0,0 +1,248 @@
+<template>
+	<view>
+		<scroll-view
+			scroll-y
+			class="page"
+		>
+			<view class="list-container">
+				<view
+					class="list-item"
+					@click="toPage(item)"
+					:class="'bg-' + item.color"
+					:style="[
+						{ animation: 'show ' + ((index + 1) * 0.2 + 1) + 's 1' }
+					]"
+					v-for="(item, index) in elements"
+					:key="index"
+				>
+					<view class="item-icon">
+						<text :class="'cuIcon-' + item.cuIcon"></text>
+					</view>
+					<view class="item-content">
+						<view class="item-title">{{ item.title }}</view>
+						<view class="item-desc">{{ item.name }}</view>
+					</view>
+					<view class="item-arrow">
+						<text class="cuIcon-right"></text>
+					</view>
+				</view>
+			</view>
+			<view class="cu-tabbar-height"></view>
+		</scroll-view>
+	</view>
+</template>
+
+<script>
+import { request } from '@/common/request.js'
+export default {
+	data() {
+		return {
+			buttonPermissions: [],
+			elements: [
+				
+			],
+			colorList: [
+				'cyan',
+				'blue',
+				'purple',
+				'mauve',
+				'pink',
+				'brown',
+				'red',
+				'orange',
+				'yellow',
+				'olive'
+			]
+		}
+	},
+	onLoad(option) {
+		this.backGroundRepeat()
+	},
+	mounted() {
+		// 鑾峰彇鎸夐挳鏉冮檺
+		this.buttonPermissions = uni.getStorageSync('buttonPermissions') || []
+		console.log('褰撳墠椤甸潰鎸夐挳鏉冮檺:', this.buttonPermissions)
+		this.getType(this.buttonPermissions)
+	},
+	methods: {
+		async getType(type) {
+			const { code, data, msg } = await request(
+				'/orderOut/getType',
+				{
+					type
+				},
+				'post'
+			)
+			if (code === 200) {
+				data.map((item,index) => {
+					console.log(item,index)
+					this.elements.unshift({
+						title: item.label,
+						name: '',
+						color: this.colorList[index],
+						cuIcon: 'round',
+						url: `/outbound/orderOut/orderList`
+					})
+				})				
+			} else {
+				uni.showToast({
+					title: msg,
+					icon: 'none',
+					position: 'top'
+				})
+			}
+		},
+		backGroundRepeat() {
+			let len = this.colorList.length
+			let i = 0
+			for (let k in this.elements) {
+				if (i == len) {
+					i = 0
+				}
+				this.elements[k].color = this.colorList[i]
+				i++
+			}
+		},
+		toPage(item) {
+			uni.navigateTo({
+				url: `/pages${item.url}`,
+				success(res) {
+					res.eventChannel.emit('orderTypeId', {
+						orderTypeId: item.id
+					})
+				}
+			})
+		}
+	}
+}
+</script>
+
+<style>
+.page {
+	height: 100vh;
+	background-color: #f5f5f5;
+}
+
+.list-container {
+	padding: 20rpx 30rpx;
+}
+
+.list-item {
+	display: flex;
+	align-items: center;
+	padding: 30rpx;
+	margin-bottom: 20rpx;
+	border-radius: 16rpx;
+	box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
+}
+
+.item-icon {
+	width: 80rpx;
+	height: 80rpx;
+	border-radius: 50%;
+	background-color: rgba(255, 255, 255, 0.3);
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	margin-right: 24rpx;
+}
+
+.item-icon text {
+	font-size: 40rpx;
+}
+
+.item-content {
+	flex: 1;
+}
+
+.item-title {
+	font-size: 32rpx;
+	font-weight: bold;
+	margin-bottom: 8rpx;
+}
+
+.item-desc {
+	font-size: 24rpx;
+	opacity: 0.8;
+}
+
+.item-arrow {
+	font-size: 32rpx;
+	opacity: 0.6;
+}
+
+.bg-red {
+	background-color: #e54d42;
+	color: #ffffff;
+}
+
+.bg-orange {
+	background-color: #f37b1d;
+	color: #ffffff;
+}
+
+.bg-yellow {
+	background-color: #fbbd08;
+	color: #333333;
+}
+
+.bg-olive {
+	background-color: #8dc63f;
+	color: #ffffff;
+}
+
+.bg-green {
+	background-color: #39b54a;
+	color: #ffffff;
+}
+
+.bg-cyan {
+	background-color: #1cbbb4;
+	color: #ffffff;
+}
+
+.bg-blue {
+	background-color: #0081ff;
+	color: #ffffff;
+}
+
+.bg-purple {
+	background-color: #6739b6;
+	color: #ffffff;
+}
+
+.bg-mauve {
+	background-color: #9c26b0;
+	color: #ffffff;
+}
+
+.bg-pink {
+	background-color: #e03997;
+	color: #ffffff;
+}
+
+.bg-brown {
+	background-color: #a5673f;
+	color: #ffffff;
+}
+
+.bg-grey {
+	background-color: #8799a3;
+	color: #ffffff;
+}
+
+.bg-gray {
+	background-color: #f0f0f0;
+	color: #333333;
+}
+
+.bg-black {
+	background-color: #333333;
+	color: #ffffff;
+}
+
+.bg-white {
+	background-color: #ffffff;
+	color: #666666;
+}
+</style>
diff --git a/static/css/wms.css/wms.css b/static/css/wms.css/wms.css
index 005f708..859ea95 100644
--- a/static/css/wms.css/wms.css
+++ b/static/css/wms.css/wms.css
@@ -3,56 +3,46 @@
 	min-height: 80rpx;
 	background-color: #FFF;
 	margin: 20rpx 20rpx;
-	padding: 20rpx;
 	border-radius: 20rpx;
-	box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.2);
+	box-shadow: 0px 0px 30px 0px rgba(0,0,0,0.2);
 }
-
 .list:first-child {
-	margin-top: 340rpx;
+	margin-top: 320rpx;
 }
-
 .list:last-child {
 	margin-bottom: 120rpx;
 }
-
 .list-left {
 	display: flex;
 	flex-direction: column;
+	margin-left: 20rpx;
 	width: 80vw;
 }
-
 .list-left-item {
 	min-height: 40rpx;
 	line-height: 40rpx;
 	display: flex;
-	padding: 2rpx;
 }
-
 .desc {
 	min-height: 40rpx;
 	display: flex;
 	align-items: center;
+	width: 25%;
 }
-
 .left-item {
 	display: flex;
 	flex-wrap: wrap;
+	width: 75%;
+	margin: 1px 1px 1px 1px;
 	/* color: #409EFF; */
 }
-
-.left-item input {
-	border-bottom: 1px solid #cecece;
-}
-
 .list-right {
 	display: flex;
-	/* width: 20vw; */
+	width: 20vw;
 	justify-content: space-between;
 	align-items: center;
-	/* margin-right: 20rpx; */
+	margin-right: 20rpx;
 }
-
 .buttom {
 	width: 100%;
 	position: fixed;
@@ -63,16 +53,14 @@
 	justify-content: space-between;
 	height: 100rpx;
 	background-color: #FFF;
-	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
+	box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.2) ;
 }
-
 .popup {
 	width: 80vw;
 	min-height: 100rpx;
 	background-color: #FFF;
 	border-radius: 25rpx;
 }
-
 .title {
 	height: 100rpx;
 	line-height: 100rpx;
@@ -81,7 +69,6 @@
 	text-align: center;
 	font-size: 16px;
 }
-
 .popup-item {
 	height: 80rpx;
 	line-height: 80rpx;
@@ -89,14 +76,12 @@
 	align-items: center;
 	font-size: 14px;
 }
-
 .popup-item-left {
 	width: 16vw;
 	padding-right: 20rpx;
 	text-align: right;
 	color: #606266;
 }
-
 .popup-item-right {
 	display: flex;
 	align-items: center;
@@ -106,11 +91,9 @@
 	border: 1px solid #E4E7ED;
 	border-radius: 5rpx;
 }
-
-.popup-item-right input {
+.popup-item-right input{
 	color: #606266;
 }
-
 .btn {
 	display: flex;
 	height: 90rpx;
@@ -119,7 +102,6 @@
 	justify-content: center;
 	align-items: center;
 }
-
 .btn-left {
 	display: flex;
 	flex: 1;
@@ -129,7 +111,6 @@
 	color: #606266;
 	border-right: 1px solid #DCDFE6;
 }
-
 .btn-right {
 	display: flex;
 	flex: 1;
@@ -137,35 +118,7 @@
 	align-items: center;
 	color: #409EFF;
 }
-
 /* 鎼滅储妗� */
 .search-bar {
 	background-color: #f8f8f8;
 }
-
-
-.keyboard {
-	width: 40px;
-	height: 40px;
-	background-size: 100%;
-	position: absolute;
-	z-index: 99;
-	top: 5px;
-	right: 5px;
-	border-radius: 50%;
-	display: flex;
-	align-items: center;
-	justify-content: center;
-}
-
-.kb-bgtr {
-	background-color: #55557f;
-}
-
-.kb-bgfa {
-	background-color: #00aeec;
-}
-
-.has-foot {
-	padding-bottom: 100rpx;
-}
\ No newline at end of file

--
Gitblit v1.9.1