From f9cfb2169361c046a00f4fa14ea342bd5710f8b4 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期三, 04 三月 2026 16:24:17 +0800
Subject: [PATCH] #

---
 pages/outbound/orderOut/outLocView.vue                     |   14 
 pages/outbound/container_rebinding/container_rebinding.vue |  320 ++++++++++
 locale/zh-Hans.json                                        |   98 +-
 pages.json                                                 |   19 
 pages/outbound/orderOut/orderList.vue                      |  707 ++++++++++++----------
 pages/outbound/orderOut/orderDetlList.vue                  |  627 +++++++++++---------
 6 files changed, 1,132 insertions(+), 653 deletions(-)

diff --git a/locale/zh-Hans.json b/locale/zh-Hans.json
index b4d3ea5..5fd522c 100644
--- a/locale/zh-Hans.json
+++ b/locale/zh-Hans.json
@@ -7,62 +7,64 @@
 	"locale.ja": "鏃ヨ",
 	"index.title": "Hello i18n",
 	"index.home": "涓婚〉",
-	"page.login":"鐧诲綍",
-	"page.index":"棣栭〉",
-	"login":{
+	"page.login": "鐧诲綍",
+	"page.index": "棣栭〉",
+	"login": {
 		"login": "鐧诲綍",
 		"loging": "鐧诲綍涓�",
 		"user": "璐﹀彿",
 		"pwd": "瀵嗙爜",
 		"inputUser": "璇疯緭鍏ヨ处鍙�",
-		"inputPwd":"璇疯緭鍏ュ瘑鐮�",
-		"remPwd":"璁颁綇瀵嗙爜"
+		"inputPwd": "璇疯緭鍏ュ瘑鐮�",
+		"remPwd": "璁颁綇瀵嗙爜"
 	},
-	"index":{
+	"index": {
 		"in": "鍏ュ簱",
 		"out": "鍑哄簱",
-		"GR": "鍗曟嵁鏀惰揣", 
+		"GR": "鍗曟嵁鏀惰揣",
 		"palletizing": "鍗曟嵁缁勬墭",
-		"palletBuilding":"缁勬墭瑙g粦",
-		"inspectionRequest":"鎶ユ",
-		"qualityInspection":"璐ㄦ瑙i攣",
-		"defectiveMarking":"璐ㄦ涓婇攣",
-		"manualPutaway":"浜哄伐涓婃灦",
-		"stationBinding":"绔欑偣缁戝畾",
-		"inboundInitiation":"AGV鍏ュ簱",
-		"stationUnbinding":"绔欑偣瑙g粦",
-		"bindAndInbound":"缁戝畾&鍏ュ簱",
-		"quickPicking":"蹇�熸嫞璐�",
-		"wavePick":"娉㈡鎷h揣",
-		"outLogin":"閫�鍑虹櫥褰�",
-		"language-change-confirm":"纭畾鍒囨崲?",
-		"hello":"鎮ㄥソ锛屾杩庣櫥褰昗MS绯荤粺锛�",
-		"intro":"璁╁埗閫犱笌鐗╂祦鏇撮珮鏁�",
-		"checkOrder":"鐩樼偣",
-		"emptyOutBound":"绌烘墭鍑哄簱",
-		"emptyInBound":"绌烘墭鍏ュ簱",
-		"orderPick":"璁㈠崟鍑哄簱",
-		"orderPickGroup":"鍑哄簱璁㈠崟",
-		"orderTransfer":"璋冩嫧璁㈠崟",
-		"orderIn":"鍏ュ簱璁㈠崟",
-		"orderInItem":"鍏ュ簱璁㈠崟璇︽儏",
-		"matTransfer":"绉诲簱",
-		"buffStore":"鐏屾《鍏ュ簱",
-		"stationInfo":"绔欑偣缁存姢",
-		"locInfo":"搴撲綅缁存姢",
-		"taskInfo":"宸ヤ綔浠诲姟",
-		"productionMatCall":"鐢熶骇鍙枡",
-		"matDirectDelivery":"鐢熶骇鐩撮��",
-		"productDirectDelivery":"鎴愬搧鐩村嚭",
-		"matPreparation":"鐢熶骇澶囨枡",
-		"other":"缁煎悎"
-		
-		
+		"palletBuilding": "缁勬墭瑙g粦",
+		"inspectionRequest": "鎶ユ",
+		"qualityInspection": "璐ㄦ瑙i攣",
+		"defectiveMarking": "璐ㄦ涓婇攣",
+		"manualPutaway": "浜哄伐涓婃灦",
+		"stationBinding": "绔欑偣缁戝畾",
+		"inboundInitiation": "AGV鍏ュ簱",
+		"stationUnbinding": "绔欑偣瑙g粦",
+		"bindAndInbound": "缁戝畾&鍏ュ簱",
+		"quickPicking": "蹇�熸嫞璐�",
+		"wavePick": "娉㈡鎷h揣",
+		"outLogin": "閫�鍑虹櫥褰�",
+		"language-change-confirm": "纭畾鍒囨崲?",
+		"hello": "鎮ㄥソ锛屾杩庣櫥褰昗MS绯荤粺锛�",
+		"intro": "璁╁埗閫犱笌鐗╂祦鏇撮珮鏁�",
+		"checkOrder": "鐩樼偣",
+		"emptyOutBound": "绌烘墭鍑哄簱",
+		"emptyInBound": "绌烘墭鍏ュ簱",
+		"orderPick": "璁㈠崟鍑哄簱",
+		"orderPickGroup": "鍑哄簱璁㈠崟",
+		"orderTransfer": "璋冩嫧璁㈠崟",
+		"orderIn": "鍏ュ簱璁㈠崟",
+		"orderInItem": "鍏ュ簱璁㈠崟璇︽儏",
+		"matTransfer": "绉诲簱",
+		"buffStore": "鐏屾《鍏ュ簱",
+		"stationInfo": "绔欑偣缁存姢",
+		"locInfo": "搴撲綅缁存姢",
+		"taskInfo": "宸ヤ綔浠诲姟",
+		"productionMatCall": "鐢熶骇鍙枡",
+		"matDirectDelivery": "鐢熶骇鐩撮��",
+		"productDirectDelivery": "鎴愬搧鐩村嚭",
+		"matPreparation": "鐢熶骇澶囨枡",
+		"preparation": "澶囪揣鍑哄簱",
+		"containerRebinding": "澶囪揣瀹瑰櫒鎹㈢粦",
+		"other": "缁煎悎"
+
+
 	},
-	"other":{
-		"asnNo":"ASN鍗曞彿"
-		
+	"other": {
+		"asnNo": "ASN鍗曞彿"
+
 	}
-	
-	
-}
+
+
+}
\ No newline at end of file
diff --git a/pages.json b/pages.json
index bdbb5a5..3526515 100644
--- a/pages.json
+++ b/pages.json
@@ -51,6 +51,12 @@
 			}
 		},
 		{
+			"path": "pages/outbound/orderOut/outLocView",
+			"style": {
+				"navigationBarTitleText": "鍑哄簱搴撲綅瑙嗗浘"
+			}
+		},
+		{
 			"path": "pages/outbound/orderOutView/order_out_type",
 			"style": {
 				"navigationBarTitleText": "鍗曟嵁绫诲瀷"
@@ -69,12 +75,7 @@
 				"navigationBarTitleText": "鍗曟嵁鏄庣粏鍒楄〃"
 			}
 		},
-		{
-			"path": "pages/outbound/orderOut/outLocView",
-			"style": {
-				"navigationBarTitleText": "鍑哄簱搴撲綅瑙嗗浘"
-			}
-		},
+
 		{
 			"path": "pages/emptyTray/outBound",
 			"style": {
@@ -392,6 +393,12 @@
 			"style": {
 				"navigationBarTitleText": "缁勬墭瑙g粦"
 			}
+		},
+		{
+			"path": "pages/outbound/container_rebinding/container_rebinding",
+			"style": {
+				"navigationBarTitleText": "澶囪揣瀹瑰櫒鎹㈢粦"
+			}
 		}
 	],
 	"globalStyle": {
diff --git a/pages/outbound/container_rebinding/container_rebinding.vue b/pages/outbound/container_rebinding/container_rebinding.vue
new file mode 100644
index 0000000..e87d1e3
--- /dev/null
+++ b/pages/outbound/container_rebinding/container_rebinding.vue
@@ -0,0 +1,320 @@
+<template>
+	<view class="has-foot">
+		<form>
+			<view class="cu-form-group margin-top">
+				<view class="title">瀹瑰櫒鍙�</view>
+				<input
+					placeholder="璇锋壂瀹瑰櫒鏉$爜"
+					v-model="container"
+				/>
+				<!-- <text class='cuIcon-search text-blue' @click="search"></text> -->
+			</view>
+			<view class="cu-form-group">
+				<view class="title">鏂板鍣ㄥ彿</view>
+				<input
+					placeholder="璇锋壂鎻忔柊瀹瑰櫒鍙�"
+					v-model="newContainer"
+				/>
+			</view>
+		</form>
+
+		<view class="cu-list det menu sm-border padding">
+			<block
+				v-for="(item, index) in list"
+				:key="index"
+			>
+				<view class="cu-bar bg-white solid-bottom margin-top-sm">
+					<view class="action">
+						<view class="index">
+							{{ index + 1 }}
+						</view>
+						<view class="text-blue">
+							{{ `${item.maktx}` }}
+						</view>
+					</view>
+					<!-- 	<view class="action" >
+						<text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
+					</view> -->
+				</view>
+
+				<view class="cu-item">
+					<view class="content">
+						<text class="text-black">ASN:</text>
+					</view>
+					<view class="action">
+						<text class="text-grey">{{ item.asnCode }}</text>
+					</view>
+				</view>
+
+				<view class="cu-item">
+					<view class="content">
+						<text class="text-black">鎵规:</text>
+					</view>
+					<view class="action">
+						<text class="text-grey">{{ item.batch }}</text>
+					</view>
+				</view>
+
+				<view class="cu-item">
+					<view class="content">
+						<text class="text-black">鏀惰揣鏁伴噺:</text>
+					</view>
+					<view class="action">
+						<text class="text-grey">{{ item.anfme }}</text>
+					</view>
+				</view>
+			</block>
+		</view>
+
+		<view class="cu-bar btn-group foot">
+			<button
+				v-if="hasButtonPermission('reset')"
+				class="cu-btn text-blue line-blue shadow"
+				@click="clear"
+			>
+				娓呯┖
+			</button>
+			<button
+				v-if="hasButtonPermission('submit')"
+				class="cu-btn bg-blue shadow-blur"
+				@click="confirm"
+			>
+				鎹㈢粦
+			</button>
+		</view>
+
+		<uni-popup
+			ref="popup"
+			class="cu-popup"
+		>
+			<view class="popup-content">
+				<view class="head">
+					<text>鎺ㄨ崘</text>
+					<text
+						class="cuIcon-close text-red close"
+						@click="close"
+					></text>
+				</view>
+
+				<div class="body">
+					<view class="cu-list grid col-3 no-border">
+						<view
+							class="item"
+							v-for="el in range"
+						>
+							<view
+								class="cu-btn round sm"
+								:class="[
+									el === curCode ? 'bg-blue' : 'line-blue'
+								]"
+								@click="itemChange(el)"
+							>
+								{{ el }}
+							</view>
+						</view>
+					</view>
+				</div>
+
+				<view class="cu-bar btn-group">
+					<button
+						class="cu-btn bg-blue shadow-blur"
+						@click="popupSubmit"
+					>
+						鎻愪氦
+					</button>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+import { request } from '@/common/request.js'
+import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'
+export default {
+	data() {
+		return {
+			barcode: '',
+			areaName: '',
+			locCode: '',
+			container: '',
+			newContainer: '',
+			list: [],
+			range: [],
+			curCode: '',
+			agvStationInput: '', // AGV绔欑偣杈撳叆鍊�
+			agvStationName: '',
+			buttonPermissions: [] // 鎸夐挳鏉冮檺鍒楄〃
+		}
+	},
+	computed: {
+		...mapState('user', ['dynamicFields'])
+	},
+	mounted() {
+		// 鑾峰彇鎸夐挳鏉冮檺
+		this.buttonPermissions = uni.getStorageSync('buttonPermissions') || []
+		console.log('褰撳墠椤甸潰鎸夐挳鏉冮檺:', this.buttonPermissions)
+	},
+	methods: {
+		async checkAgvStation() {
+			const that = this
+			if (this.container === '' || this.container === null) {
+				uni.showToast({
+					title: '瀹瑰櫒鐮佷负绌�',
+					icon: 'none',
+					position: 'top'
+				})
+				return
+			}
+			const { code, data, msg } = await request('/check/agvStation', {
+				transferStationNo: this.agvStationInput
+			})
+			if (code === 200) {
+				this.agvStationName = data.stationName
+			} else {
+				uni.showToast({
+					title: msg,
+					icon: 'none',
+					position: 'top'
+				})
+				setTimeout(function () {
+					that.agvStationName = ''
+					that.agvStationInput = ''
+				}, 200)
+			}
+		},
+		async search() {
+			const { code, data, msg } = await request('/stock/operate/list', {
+				barcode: this.container,
+				sta: this.barcode
+			})
+			if (code === 200) {
+				// const find = this.list.find(el => el.id === data.id);
+				// !find &&
+				this.list = data
+			} else {
+				uni.showToast({
+					title: msg,
+					icon: 'none'
+				})
+			}
+		},
+
+		// 妫�鏌ユ寜閽潈闄�
+		hasButtonPermission(route) {
+			return this.buttonPermissions.includes(route)
+		},
+
+		remove(index) {
+			this.list.splice(index, 1)
+		},
+		clear() {
+			this.list = []
+
+			this.container = ''
+			this.newContainer = ''
+		},
+
+		open() {
+			this.$refs.popup.open()
+		},
+
+		close() {
+			this.$refs.popup.close()
+		},
+
+		popupSubmit() {
+			this.$refs.popup.close()
+		},
+		itemChange(el) {
+			this.curCode = el
+		},
+
+		async confirm() {
+			if (this.container === '' || this.container === null) {
+				uni.showToast({
+					title: '瀹瑰櫒鐮佷笉鑳戒负绌�',
+					icon: 'none'
+				})
+				return
+			}
+			if (this.newContainer === '' || this.newContainer === null) {
+				uni.showToast({
+					title: '鏂板鍣ㄧ爜涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				return
+			}
+			const { code, data, msg } = await request(
+				'/orderOut/containerRebinding',
+				{
+					containerNo: this.container,
+					newContainerNo: this.newContainer
+				}
+			)
+			if (code === 200) {
+				uni.showToast({
+					title: '鎹㈢粦瀹屾垚'
+				})
+				this.clear()
+			} else {
+				uni.showToast({
+					title: msg,
+					icon: 'none'
+				})
+			}
+		}
+	}
+}
+</script>
+
+<style>
+.index {
+	border: 1px solid #e54d42;
+	color: #e54d42;
+	border-radius: 50%;
+	display: block;
+	width: 50rpx;
+	height: 50rpx;
+	line-height: 48rpx;
+	text-align: center;
+	margin-right: 20rpx;
+	font-size: 30rpx;
+}
+
+.text-blue {
+	color: #0081ff !important;
+}
+
+.item {
+	position: relative;
+	display: flex;
+	min-height: 80upx;
+	align-items: center;
+}
+
+.uni-file-picker {
+	width: 100%;
+	margin-bottom: 10px;
+}
+
+.uni-select__selector {
+	z-index: 999;
+}
+
+.tj {
+	height: auto;
+	padding: 6px 8px;
+	display: inline-block;
+	border-radius: 6px;
+}
+
+.item {
+	display: flex;
+	justify-content: center;
+}
+
+.item .cu-btn {
+	font-size: 26upx;
+}
+</style>
diff --git a/pages/outbound/orderOut/orderDetlList.vue b/pages/outbound/orderOut/orderDetlList.vue
index 949dcd1..178fb73 100644
--- a/pages/outbound/orderOut/orderDetlList.vue
+++ b/pages/outbound/orderOut/orderDetlList.vue
@@ -1,91 +1,130 @@
 <template>
 	<view class="page-container">
 		<!-- 璁㈠崟淇℃伅澶撮儴 -->
-		<view class="order-header" v-if="order">
+		<view
+			class="order-header"
+			v-if="order"
+		>
 			<view class="header-content">
 				<view class="header-row">
 					<text class="header-label">鍗曟嵁鍙�</text>
-					<text class="header-value">{{order.code}}</text>
+					<text class="header-value">{{ order.code }}</text>
 				</view>
 				<view class="header-row">
 					<text class="header-label">鍗曟嵁绫诲瀷</text>
-					<text class="header-value">{{order.wkType$ || '-'}}</text>
+					<text class="header-value">{{ order.wkType$ || '-' }}</text>
 				</view>
 			</view>
 		</view>
-		
+
 		<!-- 鎼滅储妗� -->
 		<!-- <view class="search-bar">
 			<uni-search-bar v-model="condition" placeholder=" 鎵爜 / 杈撳叆鐗╂枡" bgColor="#F5F5F5" @confirm="search" @cancel="onCancelSearch" />
 		</view> -->
-		
+
 		<!-- 鏄庣粏鍒楄〃 -->
 		<view class="padding-lr margin-top-sm">
-			<block v-for="(item, index) in filterList" :key="index">
-				<view class="cu-list menu sm-border margin-bottom-sm" @click="chose(item)">
+			<block
+				v-for="(item, index) in filterList"
+				:key="index"
+			>
+				<view
+					class="cu-list menu sm-border margin-bottom-sm"
+					@click="chose(item)"
+				>
 					<view class="cu-bar bg-white solid-bottom">
 						<view class="action">
-							<view class="index">{{index+1}}</view>
+							<view class="index">{{ index + 1 }}</view>
 							<view class="text-blue">
-								缂栫爜: {{item.matnrCode}}
+								缂栫爜: {{ item.matnrCode }}
 							</view>
 						</view>
 						<view class="action">
-							<text :class="getRemaining(item) > 0 ? 'text-blue' : 'text-green'">
-								{{getRemaining(item) > 0 ? '鍓╀綑 ' + getRemaining(item) : '宸插畬鎴�'}}
+							<text
+								:class="
+									getRemaining(item) > 0
+										? 'text-blue'
+										: 'text-green'
+								"
+							>
+								{{
+									getRemaining(item) > 0
+										? '鍓╀綑 ' + getRemaining(item)
+										: '宸插畬鎴�'
+								}}
 							</text>
 						</view>
 					</view>
 					<view class="cu-item">
 						<view class="content">
 							<text class="text-black">鐗╂枡鍚嶇О:</text>
-							<text class="text-grey text-sm margin-left-xs">{{item.maktx || '-'}}</text>
+							<text class="text-grey text-sm margin-left-xs">
+								{{ item.maktx || '-' }}
+							</text>
 						</view>
 					</view>
 					<view class="cu-item">
 						<view class="content">
 							<text class="text-black">瑙勬牸:</text>
-							<text class="text-grey margin-left-xs">{{item.specs || '-'}}</text>
+							<text class="text-grey margin-left-xs">
+								{{ item.specs || '-' }}
+							</text>
 						</view>
 						<view class="action">
 							<text class="text-black">鎵规:</text>
-							<text class="text-grey margin-left-xs">{{item.splrBatch || '-'}}</text>
+							<text class="text-grey margin-left-xs">
+								{{ item.splrBatch || '-' }}
+							</text>
 						</view>
 					</view>
 					<view class="cu-item">
 						<view class="content">
 							<text class="text-black">璁㈠崟鏁伴噺:</text>
-							<text class="text-blue margin-left-xs">{{item.anfme}}</text>
+							<text class="text-blue margin-left-xs">
+								{{ item.anfme }}
+							</text>
 						</view>
 						<view class="action">
 							<text class="text-black">宸插畬鎴�:</text>
-							<text class="text-green margin-left-xs">{{item.qty}}</text>
+							<text class="text-green margin-left-xs">
+								{{ item.qty }}
+							</text>
 						</view>
 					</view>
 				</view>
 			</block>
 		</view>
-		
+
 		<!-- 绌虹姸鎬� -->
-		<view class="empty-state" v-if="filterList.length === 0 && !loading">
-			<uni-icons type="info" size="60" color="#CCCCCC"></uni-icons>
+		<view
+			class="empty-state"
+			v-if="filterList.length === 0 && !loading"
+		>
+			<uni-icons
+				type="info"
+				size="60"
+				color="#CCCCCC"
+			></uni-icons>
 			<text class="empty-text">鏆傛棤鏄庣粏鏁版嵁</text>
 		</view>
-		
+
 		<!-- 缁熻淇℃伅 -->
-		<view class="stats-bar" v-if="menuList.length > 0">
+		<view
+			class="stats-bar"
+			v-if="menuList.length > 0"
+		>
 			<view class="stats-item">
-				<text class="stats-value">{{menuList.length}}</text>
+				<text class="stats-value">{{ menuList.length }}</text>
 				<text class="stats-label">鎬绘槑缁�</text>
 			</view>
 			<view class="stats-divider"></view>
 			<view class="stats-item">
-				<text class="stats-value">{{pendingCount}}</text>
+				<text class="stats-value">{{ pendingCount }}</text>
 				<text class="stats-label">寰呭鐞�</text>
 			</view>
 			<view class="stats-divider"></view>
 			<view class="stats-item">
-				<text class="stats-value">{{completedCount}}</text>
+				<text class="stats-value">{{ completedCount }}</text>
 				<text class="stats-label">宸插畬鎴�</text>
 			</view>
 		</view>
@@ -93,275 +132,309 @@
 </template>
 
 <script>
-	import { request } from '@/common/request.js'
-	export default {
-		data() {
-			return {
-				data: '',
-				condition: '',
-				menuList: [],
-				order: '',
-				loading: false,
+import { request } from '@/common/request.js'
+export default {
+	data() {
+		return {
+			data: '',
+			condition: '',
+			menuList: [],
+			order: '',
+			loading: false
+		}
+	},
+	computed: {
+		// 杩囨护鍚庣殑鍒楄〃锛堜紭鍏堟樉绀烘湁鍓╀綑鏁伴噺鐨勶級
+		filterList() {
+			if (!this.condition.trim()) {
+				// 鎺掑簭锛氭湁鍓╀綑鏁伴噺鐨勬帓鍓嶉潰
+				return [...this.menuList].sort((a, b) => {
+					if (a.ableQty > 0 && b.ableQty <= 0) return -1
+					if (a.ableQty <= 0 && b.ableQty > 0) return 1
+					return 0
+				})
 			}
+			const keyword = this.condition.toLowerCase()
+			return this.menuList.filter((item) => {
+				return (
+					(item.matnr &&
+						item.matnr.toLowerCase().includes(keyword)) ||
+					(item.maktx &&
+						item.maktx.toLowerCase().includes(keyword)) ||
+					(item.batch && item.batch.toLowerCase().includes(keyword))
+				)
+			})
 		},
-		computed: {
-			// 杩囨护鍚庣殑鍒楄〃锛堜紭鍏堟樉绀烘湁鍓╀綑鏁伴噺鐨勶級
-			filterList() {
-				if (!this.condition.trim()) {
-					// 鎺掑簭锛氭湁鍓╀綑鏁伴噺鐨勬帓鍓嶉潰
-					return [...this.menuList].sort((a, b) => {
-						if (a.ableQty > 0 && b.ableQty <= 0) return -1;
-						if (a.ableQty <= 0 && b.ableQty > 0) return 1;
-						return 0;
-					});
-				}
-				const keyword = this.condition.toLowerCase();
-				return this.menuList.filter(item => {
-					return (item.matnr && item.matnr.toLowerCase().includes(keyword)) ||
-						   (item.maktx && item.maktx.toLowerCase().includes(keyword)) ||
-						   (item.batch && item.batch.toLowerCase().includes(keyword));
-				});
-			},
-			// 寰呭鐞嗘暟閲�
-			pendingCount() {
-				return this.menuList.filter(item => item.enableQty > 0).length;
-			},
-			// 宸插畬鎴愭暟閲�
-			completedCount() {
-				return this.menuList.filter(item => item.enableQty <= 0).length;
+		// 寰呭鐞嗘暟閲�
+		pendingCount() {
+			return this.menuList.filter((item) => item.enableQty > 0).length
+		},
+		// 宸插畬鎴愭暟閲�
+		completedCount() {
+			return this.menuList.filter((item) => item.enableQty <= 0).length
+		}
+	},
+	onLoad() {
+		let that = this
+		const eventChannel = this.getOpenerEventChannel()
+		if (eventChannel) {
+			eventChannel.on('data', function (data) {
+				that.order = data.data
+				that.getOrderNoList(that.order)
+			})
+		}
+	},
+	onShow() {
+		if (this.order) {
+			this.getOrderNoList(this.order)
+		}
+	},
+	methods: {
+		// 鑾峰彇鍓╀綑鏁伴噺
+		getRemaining(item) {
+			if (item.ableQty !== undefined && item.ableQty !== null) {
+				return Number(item.ableQty)
 			}
+			// 闄嶇骇閫昏緫锛氳鍗曟暟閲� - 宸插畬鎴愭暟閲�
+			return Number(item.anfme || 0) - Number(item.qty || 0)
 		},
-		onLoad() {
-			let that = this;
-			const eventChannel = this.getOpenerEventChannel();
-			if (eventChannel) {
-				eventChannel.on('data', function(data) {
-					that.order = data.data;
-					that.getOrderNoList(that.order);
-				});
+		// 鎼滅储
+		async search() {
+			if (!this.condition.trim()) {
+				this.getOrderNoList(this.order)
+				return
 			}
-		},
-		onShow() {
-			if (this.order) {
-				this.getOrderNoList(this.order);
-			}
-		},
-		methods: {
-			// 鑾峰彇鍓╀綑鏁伴噺
-			getRemaining(item) {
-				if (item.ableQty !== undefined && item.ableQty !== null) {
-					return Number(item.ableQty);
-				}
-				// 闄嶇骇閫昏緫锛氳鍗曟暟閲� - 宸插畬鎴愭暟閲�
-				return Number(item.anfme || 0) - Number(item.qty || 0);
-			},			
-			// 鎼滅储
-			async search() {
-				if (!this.condition.trim()) {
-					this.getOrderNoList(this.order);
-					return;
-				}
-				this.loading = true;
-				try {
-					const res = await request('/orderDetl/search/pda/auth', {
+			this.loading = true
+			try {
+				const res = await request(
+					'/orderDetl/search/pda/auth',
+					{
 						condition: this.condition,
 						order: this.order.code
-					}, 'POST', true);
-					
-					if (res.code === 200) {
-						let list = res.data || [];
-						list.forEach(item => {
-							if (item.enableQty === undefined || item.enableQty === null) {
-								item.enableQty = Number(item.anfme || 0) - Number(item.qty || 0);
-							}
-						});
-						this.menuList = list;
-					} 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' });
-					}
-				} catch (err) {
-					// request.js 宸茬粡澶勭悊浜嗛敊璇彁绀�
-				} finally {
-					this.loading = false;
-				}
-			},
-			// 鍙栨秷鎼滅储
-			onCancelSearch() {
-				this.condition = '';
-				this.getOrderNoList(this.order);
-			},
-			// 鑾峰彇璁㈠崟鏄庣粏鍒楄〃
-			async getOrderNoList(order) {
-				if (!order || !order.code) return;
-				this.loading = true;
-				try {
-					const res = await request('/orderOut/detlList', {
-						orderNo: order.code
-					}, 'GET', true);
-					
-					if (res.code === 200) {
-						let list = res.data || [];
-						list.forEach(item => {
-							if (item.enableQty === undefined || item.enableQty === null) {
-								item.enableQty = Number(item.anfme || 0) - Number(item.qty || 0);
-							}
-						});
-						this.menuList = list;
-					} else {
-						this.menuList = res.data || [];
-					}
-				} catch (err) {
-					// request.js 宸茬粡澶勭悊浜嗛敊璇彁绀�
-				} finally {
-					this.loading = false;
-				}
-			},
-			// 閫夋嫨鏄庣粏杩涜鍑哄簱
-			chose(item) {
-				if (item.enableQty <= 0) {
-					uni.showToast({ title: '璇ユ槑缁嗗凡瀹屾垚', icon: "none", position: 'top' });
-					return;
-				}
-				let that = this;
-				uni.navigateTo({
-					url: "./outLocView",
-					success: function(res) {
-						res.eventChannel.emit('orderItem', {
-							item: item
-						});
 					},
-					events: {
-						acceptDataFromOpenedPage: function(data) {
-							// 杩斿洖鍚庡埛鏂版暟鎹�
-						},
-					},
-				});
+					'POST',
+					true
+				)
+
+				if (res.code === 200) {
+					let list = res.data || []
+					list.forEach((item) => {
+						if (
+							item.ableQty === undefined ||
+							item.ableQty === null
+						) {
+							item.ableQty =
+								Number(item.anfme || 0) - Number(item.qty || 0)
+						}
+					})
+					this.menuList = list
+				} 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'
+					})
+				}
+			} catch (err) {
+				// request.js 宸茬粡澶勭悊浜嗛敊璇彁绀�
+			} finally {
+				this.loading = false
 			}
+		},
+		// 鍙栨秷鎼滅储
+		onCancelSearch() {
+			this.condition = ''
+			this.getOrderNoList(this.order)
+		},
+		// 鑾峰彇璁㈠崟鏄庣粏鍒楄〃
+		async getOrderNoList(order) {
+			if (!order || !order.code) return
+			this.loading = true
+			try {
+				const res = await request(
+					'/orderOut/detlList',
+					{
+						orderNo: order.code
+					},
+					'GET',
+					true
+				)
+
+				if (res.code === 200) {
+					let list = res.data || []
+					list.forEach((item) => {
+						if (
+							item.enableQty === undefined ||
+							item.enableQty === null
+						) {
+							item.enableQty =
+								Number(item.anfme || 0) - Number(item.qty || 0)
+						}
+					})
+					this.menuList = list
+				} else {
+					this.menuList = res.data || []
+				}
+			} catch (err) {
+				// request.js 宸茬粡澶勭悊浜嗛敊璇彁绀�
+			} finally {
+				this.loading = false
+			}
+		},
+		// 閫夋嫨鏄庣粏杩涜鍑哄簱
+		chose(item) {
+			if (item.ableQty <= 0) {
+				uni.showToast({
+					title: '璇ユ槑缁嗗凡瀹屾垚',
+					icon: 'none',
+					position: 'top'
+				})
+				return
+			}
+			let that = this
+			uni.navigateTo({
+				url: './outLocView',
+				success: function (res) {
+					res.eventChannel.emit('orderItem', {
+						item: item
+					})
+				},
+				events: {
+					acceptDataFromOpenedPage: function (data) {
+						// 杩斿洖鍚庡埛鏂版暟鎹�
+					}
+				}
+			})
 		}
 	}
+}
 </script>
 
 <style>
-	/* 寮曞叆鍏叡鏍峰紡 */
-	@import url('@/static/css/common.scss');
+/* 寮曞叆鍏叡鏍峰紡 */
+@import url('@/static/css/common.scss');
 
-	.page-container {
-		padding-bottom: 120rpx;
-	}
-	
-	/* 璁㈠崟澶撮儴 */
-	.order-header {
-		background: linear-gradient(135deg, #0081ff 0%, #1890ff 100%);
-		padding: 16rpx 20rpx;
-	}
-	
-	.header-content {
-		background: rgba(255, 255, 255, 0.15);
-		border-radius: 10rpx;
-		padding: 12rpx 16rpx;
-	}
-	
-	.header-row {
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		padding: 4rpx 0;
-	}
-	
-	.header-label {
-		font-size: 24rpx;
-		color: rgba(255, 255, 255, 0.7);
-	}
-	
-	.header-value {
-		font-size: 26rpx;
-		color: #ffffff;
-		font-weight: 500;
-	}
-	
-	/* 鎼滅储鏍� */
-	.search-bar {
-		padding: 0rpx 8rpx;
-		background: #ffffff;
-		box-shadow: 0 2rpx 8rpx rgba(0, 129, 255, 0.08);
-	}
+.page-container {
+	padding-bottom: 120rpx;
+}
 
-	/* 鍒楄〃鏍峰紡杩佺Щ from rece/other.vue */
-	.index {
-		border: 1px solid #e54d42;
-		color: #e54d42;
-		border-radius: 50%;
-		display: block;
-		width: 50rpx;
-		height: 50rpx;
-		line-height: 48rpx;
-		text-align: center;
-		margin-right: 20rpx;
-		font-size: 30rpx;
-	}
+/* 璁㈠崟澶撮儴 */
+.order-header {
+	background: linear-gradient(135deg, #0081ff 0%, #1890ff 100%);
+	padding: 16rpx 20rpx;
+}
 
-	.act {
-		border: 1px solid #e54d42;
-	}
+.header-content {
+	background: rgba(255, 255, 255, 0.15);
+	border-radius: 10rpx;
+	padding: 12rpx 16rpx;
+}
 
-	.text-blue {
-		color: #0081ff !important;
-	}
-	
-	.text-green {
-		color: #39b54a !important;
-	}
-	
-	/* 绌虹姸鎬� */
-	.empty-state {
-		padding: 60rpx 0;
-	}
-	
-	.empty-text {
-		margin-top: 20rpx;
-	}
-	
-	/* 缁熻鏍� */
-	.stats-bar {
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		right: 0;
-		display: flex;
-		align-items: center;
-		justify-content: space-around;
-		background: #ffffff;
-		padding: 16rpx 0;
-		box-shadow: 0 -2rpx 12rpx rgba(0, 0, 0, 0.06);
-	}
-	
-	.stats-item {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		flex: 1;
-	}
-	
-	.stats-value {
-		font-size: 32rpx;
-		color: #303133;
-		font-weight: 600;
-	}
-	
-	.stats-label {
-		font-size: 20rpx;
-		color: #909399;
-		margin-top: 4rpx;
-	}
-	
-	.stats-divider {
-		width: 1rpx;
-		height: 50rpx;
-		background: #e8e8e8;
-	}
+.header-row {
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	padding: 4rpx 0;
+}
+
+.header-label {
+	font-size: 24rpx;
+	color: rgba(255, 255, 255, 0.7);
+}
+
+.header-value {
+	font-size: 26rpx;
+	color: #ffffff;
+	font-weight: 500;
+}
+
+/* 鎼滅储鏍� */
+.search-bar {
+	padding: 0rpx 8rpx;
+	background: #ffffff;
+	box-shadow: 0 2rpx 8rpx rgba(0, 129, 255, 0.08);
+}
+
+/* 鍒楄〃鏍峰紡杩佺Щ from rece/other.vue */
+.index {
+	border: 1px solid #e54d42;
+	color: #e54d42;
+	border-radius: 50%;
+	display: block;
+	width: 50rpx;
+	height: 50rpx;
+	line-height: 48rpx;
+	text-align: center;
+	margin-right: 20rpx;
+	font-size: 30rpx;
+}
+
+.act {
+	border: 1px solid #e54d42;
+}
+
+.text-blue {
+	color: #0081ff !important;
+}
+
+.text-green {
+	color: #39b54a !important;
+}
+
+/* 绌虹姸鎬� */
+.empty-state {
+	padding: 60rpx 0;
+}
+
+.empty-text {
+	margin-top: 20rpx;
+}
+
+/* 缁熻鏍� */
+.stats-bar {
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	display: flex;
+	align-items: center;
+	justify-content: space-around;
+	background: #ffffff;
+	padding: 16rpx 0;
+	box-shadow: 0 -2rpx 12rpx rgba(0, 0, 0, 0.06);
+}
+
+.stats-item {
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	flex: 1;
+}
+
+.stats-value {
+	font-size: 32rpx;
+	color: #303133;
+	font-weight: 600;
+}
+
+.stats-label {
+	font-size: 20rpx;
+	color: #909399;
+	margin-top: 4rpx;
+}
+
+.stats-divider {
+	width: 1rpx;
+	height: 50rpx;
+	background: #e8e8e8;
+}
 </style>
diff --git a/pages/outbound/orderOut/orderList.vue b/pages/outbound/orderOut/orderList.vue
index 60aa96b..9b67786 100644
--- a/pages/outbound/orderOut/orderList.vue
+++ b/pages/outbound/orderOut/orderList.vue
@@ -2,29 +2,47 @@
 	<view class="page-container">
 		<!-- 鎼滅储妗� -->
 		<view class="search-bar">
-			<uni-search-bar v-model="condition" placeholder=" 鎵爜 / 杈撳叆" bgColor="#F5F5F5" @confirm="search" @cancel="onCancelSearch" />
+			<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="order-card"
+				v-for="(item, i) in matList"
+				:key="i"
+				@click="toPrint(item)"
+			>
 				<!-- 鍗$墖澶撮儴 -->
 				<view class="card-header">
-					<view class="order-badge" :class="getSettleClass(item.exceStatus)">
-						<text class="badge-text">{{item.exceStatus$ || '鏈煡'}}</text>
+					<view
+						class="order-badge"
+						:class="getSettleClass(item.exceStatus)"
+					>
+						<text class="badge-text">
+							{{ item.exceStatus$ || '鏈煡' }}
+						</text>
 					</view>
 					<view class="order-no">
 						<text class="order-no-label">鍗曟嵁鍙�</text>
-						<text class="order-no-value">{{item.code}}</text>
+						<text class="order-no-value">{{ item.code }}</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.wkType$ || '-'}}</text>
+							<text class="info-value">
+								{{ item.wkType$ || '-' }}
+							</text>
 						</view>
 						<!-- <view class="info-item">
 							<text class="info-label">搴斿嚭鏁伴噺</text>
@@ -34,355 +52,406 @@
 					<view class="info-row">
 						<view class="info-item">
 							<text class="info-label">搴斿嚭鏁伴噺</text>
-							<text class="info-value">{{item.anfme || '-'}}</text>
+							<text class="info-value">
+								{{ item.anfme || '-' }}
+							</text>
 						</view>
 						<view class="info-item">
 							<text class="info-label">瀹屾垚鏁伴噺</text>
-							<text class="info-value">{{item.qty || '-'}}</text>
+							<text class="info-value">
+								{{ item.qty || '-' }}
+							</text>
 						</view>
 					</view>
 				</view>
-				
-				
+
 				<!-- 鍗$墖搴曢儴 -->
 				<view class="card-footer">
 					<text class="view-detail">鏌ョ湅璇︽儏</text>
-					<uni-icons type="right" size="14" color="#999"></uni-icons>
+					<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>
+		<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" />
+		<uni-load-more
+			v-show="matList.length !== 0"
+			:status="status"
+			:icon-size="16"
+			:content-text="contentText"
+		/>
 	</view>
 </template>
 
 <script>
-	import { request } from '@/common/request.js'
-	export default {
-		data() {
-			return {
-				tagList: [],
-				matList: [],
-				condition: '',
-				loading: false,
-				curr: 1,
-				limit:5,
-				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
-					console.log(data)
-				})
-			}
-		},
-		onShow() {
-			// 姣忔杩涘叆椤甸潰閲嶆柊鍔犺浇
-			this.refreshData();
-		},
-		methods: {
-			// 鍒锋柊鏁版嵁
-			refreshData() {
-				this.curr = 1;
-				this.matList = [];
-				this.status = 'more';
-				this.loading = true;
-				this.fetchOrderList(true);
+import { request } from '@/common/request.js'
+export default {
+	data() {
+		return {
+			tagList: [],
+			matList: [],
+			condition: '',
+			loading: false,
+			curr: 1,
+			limit: 5,
+			status: 'more',
+			contentText: {
+				contentdown: '涓婃媺鍔犺浇鏇村',
+				contentrefresh: '鍔犺浇涓�',
+				contentnomore: '娌℃湁鏇村'
 			},
-			// 鍔犺浇鏇村鏁版嵁
-			loadMoreData() {
-				this.fetchOrderList(false);
-			},
-			// 鑾峰彇璁㈠崟鍒楄〃
-			async fetchOrderList(isRefresh) {
-				try {
-					const res = await request('/orderOut/list', {
+			// 褰撳墠tagId
+			tagIdNow: 1,
+			orderTypeId: ''
+		}
+	},
+	// 涓嬫媺鍒锋柊
+	onPullDownRefresh() {
+		if (this.loading) {
+			uni.stopPullDownRefresh()
+			return
+		}
+		this.refreshData()
+	},
+	// 涓婃媺鍔犺浇鏇村
+	onReachBottom() {
+		if (this.status !== 'noMore' && !this.loading) {
+			this.status = 'loading'
+			this.loadMoreData()
+		}
+	},
+	onLoad() {
+		let that = this
+		const eventChannel = this.getOpenerEventChannel()
+		if (eventChannel) {
+			eventChannel.on('orderTypeId', function (data) {
+				that.orderTypeId = data.orderTypeId
+				console.log(data)
+			})
+		}
+	},
+	onShow() {
+		// 姣忔杩涘叆椤甸潰閲嶆柊鍔犺浇
+		this.refreshData()
+	},
+	methods: {
+		refreshData() {
+			if (this.loading) return
+			this.curr = 1
+			this.matList = []
+			this.status = 'more'
+			this.loading = true
+			this.fetchOrderList(true)
+		},
+		// 鍔犺浇鏇村鏁版嵁
+		loadMoreData() {
+			if (this.loading) return
+			this.loading = true
+			this.fetchOrderList(false)
+		},
+		// 鑾峰彇璁㈠崟鍒楄〃
+		async fetchOrderList(isRefresh) {
+			try {
+				const res = await request(
+					'/orderOut/list',
+					{
 						curr: this.curr,
 						limit: this.limit,
 						orderNo: this.condition,
 						orderType: this.orderTypeId
-					}, 'GET', true);
-					
-					if (res.code === 200) {
-						let records = res.data.records || [];
-						if (records.length > 0) {
-							if (isRefresh) {
-								this.matList = records;
-							} else {
-								this.matList = this.matList.concat(records);
-							}
-							this.curr = this.curr + 1;
-							this.status = 'more';
+					},
+					'GET',
+					true
+				)
+
+				if (res.code === 200) {
+					let records = res.data.records || []
+					if (records.length > 0) {
+						if (isRefresh) {
+							this.matList = records
 						} else {
-							this.status = 'noMore';
+							this.matList = this.matList.concat(records)
 						}
-					} else if (res.code === 403) {
-						uni.showToast({ title: res.msg, icon: "none", position: 'top' });
-						setTimeout(() => {
-							uni.reLaunch({ url: '../login/login' });
-						}, 1000);
+						this.curr = this.curr + 1
+						this.status = 'more'
 					} else {
-						uni.showToast({ title: res.msg, icon: "none", position: 'top' });
+						this.status = 'noMore'
 					}
-				} catch (err) {
-					// request.js 宸茬粡澶勭悊浜嗛敊璇彁绀�
-				} finally {
-					this.loading = false;
-					uni.stopPullDownRefresh();
+				} 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'
+					})
 				}
-			},
-			// 鎼滅储
-			async search() {
-				if (!this.condition.trim()) {
-					this.refreshData();
-					return;
-				}
-				this.loading = true;
-				try {
-					const res = await request('/orderOut/list', {
+			} catch (err) {
+				// request.js 宸茬粡澶勭悊浜嗛敊璇彁绀�
+			} finally {
+				this.loading = false
+				uni.stopPullDownRefresh()
+			}
+		},
+		// 鎼滅储
+		async search() {
+			if (!this.condition.trim()) {
+				this.refreshData()
+				return
+			}
+			this.loading = true
+			try {
+				const res = await request(
+					'/orderOut/list',
+					{
 						curr: this.curr,
 						limit: this.limit,
 						orderNo: this.condition
-					}, 'GET', true);
-					
-					if (res.code === 200) {
-						this.matList = res.data || [];
-						this.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' });
-					}
-				} catch (err) {
-					// request.js 宸茬粡澶勭悊浜嗛敊璇彁绀�
-				} finally {
-					this.loading = false;
+					},
+					'GET',
+					true
+				)
+
+				if (res.code === 200) {
+					this.matList = res.data || []
+					this.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'
+					})
 				}
-			},
-			// 鍙栨秷鎼滅储
-			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: "./orderDetlList",
-					success: function(res) {
-						res.eventChannel.emit('data', {
-							data: item
-						});
-					},
-					events: {
-						acceptDataFromOpenedPage: function(data) {
-							that.matnr = data.data;
-							that.findMat(that.matnr);
-						},
-					},
-				});
+			} catch (err) {
+				// request.js 宸茬粡澶勭悊浜嗛敊璇彁绀�
+			} finally {
+				this.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: './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: #f5f7fa;
-		padding-bottom: 20rpx;
-	}
-	
-	.search-bar {
-		padding: 0rpx 8rpx;
-		background: #ffffff;
-		box-shadow: 0 2rpx 12rpx rgba(0, 129, 255, 0.08);
-	}
-	
-	.order-list {
-		padding: 0 24rpx;
-	}
-	
-	.order-card {
-		background: #ffffff;
-		border-radius: 16rpx;
-		margin-top: 20rpx;
-		box-shadow: 0 4rpx 20rpx rgba(0, 129, 255, 0.1);
-		overflow: hidden;
-		transition: transform 0.2s ease, box-shadow 0.2s ease;
-		border: 1rpx solid #e4e7ed;
-	}
-	
-	.order-card:active {
-		transform: scale(0.98);
-		box-shadow: 0 2rpx 10rpx rgba(0, 129, 255, 0.15);
-	}
-	
-	.card-header {
-		display: flex;
-		align-items: center;
-		padding: 24rpx 28rpx;
-		background: linear-gradient(135deg, #0081ff 0%, #1890ff 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
+@import url('@/static/css/wms.css/wms.css');
+
+.page-container {
+	min-height: 100vh;
+	background: #f5f7fa;
+	padding-bottom: 20rpx;
+}
+
+.search-bar {
+	padding: 0rpx 8rpx;
+	background: #ffffff;
+	box-shadow: 0 2rpx 12rpx rgba(0, 129, 255, 0.08);
+}
+
+.order-list {
+	padding: 0 24rpx;
+}
+
+.order-card {
+	background: #ffffff;
+	border-radius: 16rpx;
+	margin-top: 20rpx;
+	box-shadow: 0 4rpx 20rpx rgba(0, 129, 255, 0.1);
+	overflow: hidden;
+	transition: transform 0.2s ease, box-shadow 0.2s ease;
+	border: 1rpx solid #e4e7ed;
+}
+
+.order-card:active {
+	transform: scale(0.98);
+	box-shadow: 0 2rpx 10rpx rgba(0, 129, 255, 0.15);
+}
+
+.card-header {
+	display: flex;
+	align-items: center;
+	padding: 24rpx 28rpx;
+	background: linear-gradient(135deg, #0081ff 0%, #1890ff 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>
diff --git a/pages/outbound/orderOut/outLocView.vue b/pages/outbound/orderOut/outLocView.vue
index 173ae70..a5e5ce4 100644
--- a/pages/outbound/orderOut/outLocView.vue
+++ b/pages/outbound/orderOut/outLocView.vue
@@ -60,6 +60,12 @@
 						</view>						
 					</view>
 
+					<view class="cu-item" v-if="index === locList.length - 1 && (item.anfme === 0 || !item.anfme)">
+						<view class="content">
+							<text class="text-red text-bold">搴撳瓨涓嶈冻</text>
+						</view>						
+					</view>
+
 					<view class="cu-item" v-if="item.anfme">
 						<view class="content">
 							<text class="text-blue">鍑哄簱鏁伴噺:</text>							
@@ -161,7 +167,7 @@
 				}
 				const { code, data, msg } = await request('/check/agvStation', {
 					transferStationNo: item.outStaInput
-				})
+				}, 'POST', false)
 				if (code === 200) {
 					item.agvStationName = data.stationName
 				} else {
@@ -206,7 +212,9 @@
 					}
 					const { code, data, msg } = await request(
 						'/orderOut/getOutLocRun',
-						requestData
+						requestData,
+						'POST',
+						false
 					)
 					if (code === 200) {
 						uni.showToast({
@@ -233,7 +241,7 @@
 				try {
 					const res = await request('/orderOut/getOutLocView', {
 						orderItemId: item.id						
-					}, 'POST', true);
+					}, 'POST', false);
 					
 					if (res.code === 200) {
 						this.locList = res.data || [];

--
Gitblit v1.9.1