From 69a1b3bf45738f048361ee4ccb6bdc64fce35720 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 12 三月 2025 11:31:46 +0800
Subject: [PATCH] 更新

---
 pda/pages/index/queueup.vue |  483 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 483 insertions(+), 0 deletions(-)

diff --git a/pda/pages/index/queueup.vue b/pda/pages/index/queueup.vue
new file mode 100644
index 0000000..7cb8ab1
--- /dev/null
+++ b/pda/pages/index/queueup.vue
@@ -0,0 +1,483 @@
+<template>
+  <view class="main_app">
+    <view class="main_content">
+      <view class="title" @click="showPlatformgroup = true"
+        >{{ platformGroup.name
+        }}<u-icon
+          name="arrow-down"
+          size="20"
+          class="ml12"
+          color="#999999"
+        ></u-icon
+      ></view>
+      <view class="input_wrap">
+        <u-icon name="search" class="mr12" size="19" color="#999999" />
+        <input
+          v-model="carCodeFront"
+          type="text"
+          placeholder="鎼滅储杞﹁締鐗岀収"
+          placeholder-class="placeholder9"
+					confirm-type="search"
+          @confirm="handleQuery"
+        />
+      </view>
+      <view class="count"
+        >鎬绘帓闃熻溅杈嗭細<text>{{ total }}</text></view
+      >
+    </view>
+    <!--  -->
+    <view class="dataList">
+      <view class="item" v-for="item,i in platformLineUpList" :key="i">
+        <view class="head">
+          <view v-if="item.carCodeFront" class="code">
+            <text>{{ item.carCodeFront.slice(0, 1) }}</text>
+            <text>{{ item.carCodeFront.slice(1, 2) }}</text>
+            <text>路</text>
+            <text>{{ item.carCodeFront.slice(2) }}</text>
+          </view>
+          <!-- <view class="status green" v-if="item.status == 2">鏈堝彴绛夊緟</view > -->
+          <view class="status green" v-if="item.status == 2">绛夊緟鍙彿</view >
+          <view class="status" v-if="item.status == 3">鍏ュ洯绛夊緟</view >
+          <view class="status" v-if="item.status == 7">杞Щ涓�</view >
+        </view>
+        <view class="line" v-if="item.billCode">
+          <text class="label">杩愯緭鍗曞彿</text>
+          <text class="value">{{ item.billCode }}</text>
+          <text class="primaryColor" @click="handleDetail(item)">杩愬崟璇︽儏</text>
+        </view>
+        <view class="line" v-else>
+          <text class="label">鍚堝悓鍗曞彿</text>
+          <text class="value">{{ item.contractNum }}</text>
+					<text class="primaryColor" @click="subDetail(item)">棰勭害璇︽儏</text>
+        </view>
+				<view class="line line2" v-if="item.billCode && item.wmsContractNum">
+					<text class="label">鍚堝悓鍗曞彿</text>
+					<text class="value">{{ item.wmsContractNum }}</text>
+				</view>
+        <view class="line">
+          <text class="label">椹鹃┒鍛�</text>
+          <text class="value"
+            >{{ item.driverName }} {{ item.drivierPhone }}</text
+          >
+        </view>
+        <view class="line">
+          <text class="label">鎬昏繍杈撻噺</text>
+          <text class="value">{{ item.totalNum || item.ioQty }}涓囨敮</text>
+        </view>
+        <view class="line" v-if="item.carrierName">
+          <text class="label">杩愯緭鍏徃</text>
+          <text class="value">{{ item.carrierName }}</text>
+        </view>
+				<view class="line">
+				  <text class="label primaryColor">绛惧埌鏃堕棿</text>
+				  <text class="value primaryColor" v-if="item.signDate">{{ item.signDate.slice(5, 16) }}</text>
+				</view>
+        <!-- <view class="btns">
+          <view class="btn active">鍏ュ洯</view>
+        </view> -->
+      </view>
+      <view v-if="platformLineUpList.length == 0" class="empty_wrap">
+        <image src="@/static/default_nodata@2x.png" />
+        <text>鏆傛棤浣滀笟杞﹁締</text>
+      </view>
+    </view>
+		<u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true"
+			mode="bottom" @close="showDetail = false">
+			<view class="detail_modal">
+				<view class="modal_title">杩愬崟璇︽儏</view>
+				<view v-if="wmsInfo.plateNumber" class="id_card">
+					<text>{{ wmsInfo.plateNumber.slice(0, 1) }}</text>
+					<text>{{ wmsInfo.plateNumber.slice(1, 2) }}</text>
+					<text>路</text>
+					<text>{{ wmsInfo.plateNumber.slice(2) }}</text>
+				</view>
+				<!--  -->
+				<view class="info">
+					<view class="line">
+						<view class="label">杩愯緭鍗曞彿</view>
+						<view class="value">{{ wmsInfo.carryBillCode }}</view>
+					</view>
+					<view class="line">
+						<view class="label">椹鹃┒鍛�</view>
+						<view class="value">{{ wmsInfo.driverName }} {{ wmsInfo.driverPhone }}</view>
+					</view>
+					<view class="line">
+						<view class="label">鎬昏繍杈撻噺</view>
+						<view class="value">{{ wmsInfo.ioQty }}涓囨敮</view>
+					</view>
+					<view class="line">
+						<view class="label">杩愯緭鍏徃</view>
+						<view class="value">{{ wmsInfo.carrierName }}</view>
+					</view>
+				</view>
+				<!-- <view class="separate"></view> -->
+				<view class="contract_wrap">
+					<view class="contract_list" v-for="item in wmsInfo.wmsJobContractVOList">
+						<view class="title">鍚堝悓鍙凤細{{ item.contractCode }}</view>
+						<view class="address">鏀惰揣鍦帮細{{ item.address }}</view>
+						<view class="list">
+							<view class="item" v-for="line in item.platformWmsDetailList">
+								<view class="line">
+									<view class="label">鐗╂枡锛�</view>
+									<view class="value">{{ line.materialName }}</view>
+								</view>
+								<view class="line">
+									<view class="label">鏁伴噺锛�</view>
+									<view class="value">{{ line.ioQty }}涓囨敮</view>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</u-popup>
+		<u-picker
+      :show="showPlatformgroup"
+      keyName="name"
+      :columns="[platformGroupList]"
+      @cancel="showPlatformgroup = false"
+      @confirm="platConfirm"
+    ></u-picker>
+  </view>
+</template>
+
+<script>
+import { platformLineUpPage, getPlatformGroupList, wmsJobDetail } from '@/api'
+export default {
+  data() {
+    return {
+			windowTop: 24,
+      showDetail: false,
+      showPlatformgroup: false,
+      capacity: 10,
+      page: 1,
+      total: 0,
+      carCodeFront: '',
+      platformGroup: {},
+      wmsInfo: {},
+      platformGroupList: [],
+      platformLineUpList: []
+    }
+  },
+  onLoad() {
+    this.getPlatformGroup()
+  },
+	onReachBottom() {
+		if(this.total > this.platformLineUpList.length){
+			this.page ++
+			this.getList()
+		}else{
+			uni.showToast({
+				title:'鏆傛棤鏇村鏁版嵁',
+				icon: 'none'
+			})
+		}
+	},
+  methods: {
+    handleDetail(param) {
+      wmsJobDetail({ id: param.id }).then(res => {
+      	this.wmsInfo = res.data
+      	this.showDetail = true
+      })
+    },
+		subDetail(item) {
+			uni.navigateTo({
+			  url: `/pages/index/SubDetail?id=${item.bookId}`
+			})
+		},
+    getPlatformGroup() {
+      getPlatformGroupList({
+        queryData: 1,
+        queryType: 0
+      }).then(res => {
+        this.platformGroupList = res.data || []
+        if (this.platformGroupList && this.platformGroupList.length > 0) {
+          this.platformGroup = this.platformGroupList[0]
+          this.getList()
+        }
+      })
+    },
+    getList() {
+      const { page, capacity, platformGroup, carCodeFront } = this
+      platformLineUpPage({
+        capacity, page, model: { platformGroupId: platformGroup.id, callType: 3, carCodeFront }
+      }).then(res => {
+        if (res.data) {
+          this.platformLineUpList = [...this.platformLineUpList, ...res.data.records || []]
+					this.platformLineUpList.forEach(item => {
+						if(item.wmsContractNum){
+							item.wmsContractNum = item.wmsContractNum.split(',').join('锛�')
+						}
+					})
+          this.total = res.data.total || 0
+        }
+      })
+    },
+    handleQuery() {
+      this.page = 1
+      this.platformLineUpList = []
+      this.getList()
+    },
+    platConfirm(e) {
+      const index = e.indexs[0]
+      this.platformGroup = this.platformGroupList[index]
+			this.platformLineUpList = []
+      this.getList()
+      this.showPlatformgroup = false
+    },
+  }
+}
+</script>
+<style lang="scss">
+	page{
+		background: #f7f7f7;
+	}
+.main_app {
+  padding: 30rpx 0 0rpx;
+  .main_content {
+    background-color: #fff;
+    padding: 30rpx 30rpx 0;
+    .title {
+      font-weight: 500;
+      font-size: 32rpx;
+      color: #111111;
+      line-height: 44rpx;
+      margin-bottom: 30rpx;
+      display: flex;
+      justify-content: center;
+    }
+    .input_wrap {
+      display: flex;
+      align-items: center;
+      width: 690rpx;
+      height: 76rpx;
+      background: #f7f7f7;
+      border-radius: 38rpx;
+      padding: 0 30rpx;
+    }
+    .count {
+      width: 750rpx;
+      margin: 0 -30rpx;
+      height: 80rpx;
+      display: flex;
+      align-items: center;
+      background-color: #f5f9f8;
+      font-size: 28rpx;
+      margin-top: 20rpx;
+      padding: 0 30rpx;
+      text {
+        color: #111111;
+        font-weight: 600;
+      }
+    }
+  }
+  .dataList {
+    .item {
+      margin-bottom: 20rpx;
+      padding: 30rpx;
+      background-color: #fff;
+      .head {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-bottom: 30rpx;
+        .code {
+          font-weight: 600;
+          height: 60rpx;
+					height: 100%;
+          display: flex;
+          justify-content: center;
+          align-items: center;
+          font-size: 32rpx;
+          color: #111111;
+          border-radius: 8rpx;
+          border: 1rpx solid #dfdede;
+          text {
+						display: flex;
+						justify-content: center;
+						align-items: center;
+						height: 100%;
+            &:nth-of-type(1) {
+              background: #e9f5f6;
+              padding: 0 12rpx;
+            }
+            &:nth-of-type(2) {
+              padding-left: 4rpx;
+            }
+            &:nth-of-type(4) {
+              padding-right: 6rpx;
+            }
+          }
+        }
+        .status {
+          font-size: 30rpx;
+          color: $uni-color-primary;
+        }
+				.green{
+					color: #00BA67;
+				}
+      }
+      .line {
+        display: flex;
+        margin-bottom: 20rpx;
+        .label {
+          width: 144rpx;
+					flex-shrink: 0;
+          color: #666666;
+        }
+        .value {
+          flex: 1;
+        }
+      }
+      .btns {
+        display: flex;
+        justify-content: flex-end;
+        .btn {
+          width: 136rpx;
+          height: 64rpx;
+          display: flex;
+					justify-content: center;
+					align-items: center;
+          background: #ffffff;
+          border-radius: 40rpx;
+          border: 1rpx solid #999999;
+          margin-left: 20rpx;
+        }
+        .active {
+          background-color: $uni-color-primary;
+          color: #fff;
+          border-color: $uni-color-primary;
+        }
+      }
+    }
+  }
+}
+.detail_modal {
+		height: 100vh;
+		padding: 36rpx 30rpx;
+		border-radius: 12rpx;
+		box-shadow: 0 0 6rpx rgba(0, 0, 0, 0.5);
+		.modal_title {
+			font-weight: 600;
+			font-size: 32rpx;
+			color: #222222;
+			line-height: 44rpx;
+			text-align: center;
+			margin-bottom: 36rpx;
+		}
+		.contract_wrap{
+			height: calc( 100% - 400rpx );
+			overflow-y: auto;
+		}
+		.contract_list {
+			border-top: 1rpx solid #E5E5E5;
+			margin-bottom: 30rpx;
+			padding-top: 30rpx;
+			&:nth-last-child(1){
+				margin-bottom: 0;
+			}
+			.list {
+				background: #f7f7f7;
+				border-radius: 8rpx;
+				padding: 20rpx;
+				.item{
+					border-bottom: 1rpx solid #e5e5e5;
+					padding-bottom: 20rpx;
+					margin-bottom: 20rpx;
+					&:nth-last-child(1){
+						border: none;
+						padding-bottom: 0;
+						margin-bottom: 0;
+					}
+				}
+				.line {
+					display: flex;
+					margin-bottom: 20rpx;
+					&:nth-last-child(1){
+						margin-bottom: 0rpx;
+					}
+					.label {
+						color: #666666;
+						width: 92rpx;
+					}
+
+					.value {
+						flex: 1;
+						color: #222222;
+					}
+				}
+			}
+
+			.title {
+				font-weight: 600;
+				font-size: 30rpx;
+				color: $uni-color-primary;
+				margin-bottom: 12rpx;
+			}
+
+			.address {
+				font-size: 26rpx;
+				color: #666666;
+				margin-bottom: 20rpx;
+			}
+		}
+
+		.info {
+			.line {
+				display: flex;
+				margin-bottom: 20rpx;
+
+				.label {
+					font-size: 30rpx;
+					color: #666666;
+					width: 150rpx;
+				}
+
+				.value {
+					flex: 1;
+					font-size: 30rpx;
+					color: #222222;
+				}
+			}
+		}
+
+		.separate {
+			width: 750rpx;
+			height: 2rpx;
+			margin: 30rpx -30rpx;
+			border: 1rpx solid #e5e5e5;
+		}
+
+		.id_card {
+			display: flex;
+			font-weight: 600;
+			height: 60rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			color: #111111;
+			border-radius: 8rpx;
+			border: 1rpx solid #dfdede;
+			width: 220rpx;
+			margin-bottom: 15rpx;
+
+			text {
+				&:nth-of-type(1) {
+					background: #e9f5f6;
+					padding: 0 12rpx;
+				}
+
+				&:nth-of-type(2) {
+					padding-left: 10rpx;
+				}
+
+				&:nth-of-type(4) {
+					padding-right: 6rpx;
+				}
+			}
+		}
+	}
+	.line2{
+		margin-right: -30rpx;
+		padding-right: 0;
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3