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