| | |
| | | <view class="platform_list">
|
| | | <view class="item" :class="{ active: item.id === activePlatform.id }"
|
| | | v-for="(item, index) in activePlatformGroup.platformList" :key="index" @click="platformClick(item)">
|
| | | {{ item.name }}</view>
|
| | | {{ item.name }}
|
| | | </view>
|
| | | </view>
|
| | | <view class="status_wrap">
|
| | | <view class="status">作业:<text>{{ platformTaskInfo.workNum }}</text></view>
|
| | |
| | | <text>{{ item.carCodeFront.slice(2) }}</text>
|
| | | </view>
|
| | | <view class="status" v-if="item.status != 4 && item.status != 5" :class="{ red: item.status == 8 }">
|
| | | {{ statusMap[item.status] }}</view>
|
| | | {{ statusMap[item.status] }}
|
| | | </view>
|
| | | <view class="status" v-if="item.status == 4">叫号中 {{ item.callDateTemp }}</view>
|
| | | <view class="status scs" v-if="item.status == 5">已作业 {{ item.startDateTemp }}</view>
|
| | | </view>
|
| | | <view class="line" v-if="item.type == 4">
|
| | | <text class="label">合同单号</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <view class="line" v-if="item.code">
|
| | | <text class="label">运输单号</text>
|
| | | <text class="value">{{ item.code }}</text>
|
| | | <text class="primaryColor" @click="handleDetail()">运单详情</text>
|
| | | <text class="primaryColor" @click="handleDetail(item)">运单详情</text>
|
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <text class="label">合同单号</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">驾驶员</text>
|
| | |
| | | statusMap[item.status]
|
| | | }}</view>
|
| | | </view>
|
| | | <view class="line" v-if="item.type == 4">
|
| | | <text class="label">合同单号</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | <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.code }}</text>
|
| | | <text class="primaryColor" @click="handleDetail()">运单详情</text>
|
| | | <text class="label">合同单号</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">驾驶员</text>
|
| | |
| | | </view>
|
| | | </u-popup>
|
| | | <!-- 运单详情 -->
|
| | | <u-popup :show="showDetail" closeable safeAreaInsetTop round="10" @close="showDetail = false">
|
| | | <view class="PlatformCallModal" :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }">
|
| | | <view class="title">运单详情</view>
|
| | | <view class="platform_ing" style="padding: 0">
|
| | | <view class="head">
|
| | | <view class="code">
|
| | | <text>皖</text>
|
| | | <text>AD1212</text>
|
| | | </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">
|
| | | <text class="label">运输单号</text>
|
| | | <text class="value">11111</text>
|
| | | <view class="label">驾驶员</view>
|
| | | <view class="value">{{ wmsInfo.driverName }} {{ wmsInfo.driverPhone }}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">驾驶员</text>
|
| | | <text class="value">11111</text>
|
| | | <view class="label">总运输量</view>
|
| | | <view class="value">{{ wmsInfo.ioQty }}万支</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">总运输量</text>
|
| | | <text class="value">11111</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">运输公司</text>
|
| | | <text class="value">11111</text>
|
| | | <view class="label">运输公司</view>
|
| | | <view class="value">{{ wmsInfo.carrierName }}</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="detail_list">
|
| | | <view class="item">
|
| | | <view class="orderId">合同编号:{{ 111 }}</view>
|
| | | <view class="addr">收货地:{{ 111 }}</view>
|
| | | <view class="content">
|
| | | <view class="line">
|
| | | <view class="label">物料:</view>
|
| | | <view class="value">黄山</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">数量:</view>
|
| | | <view class="value">黄山</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">物料:</view>
|
| | | <view class="value">黄山</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">数量:</view>
|
| | | <view class="value">黄山</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>
|
| | |
| | | finishWork,
|
| | | platformMove,
|
| | | platformErr,
|
| | | platformOverNumber
|
| | | platformOverNumber,
|
| | | wmsJobDetail
|
| | | } from '@/api'
|
| | | import {
|
| | | statusMap
|
| | |
| | | data() {
|
| | | return {
|
| | | statusMap,
|
| | | windowTop: 44,
|
| | | windowTop: 24,
|
| | | showPlatformCall: false, // 月台叫号
|
| | | showDetail: false,
|
| | | showTransform: false, // 转移
|
| | |
| | |
|
| | | transformPlatId: '', // 转移记录月台id
|
| | | transformId: '', // 转移记录任务id
|
| | | wmsInfo: {}
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | | this.getPlatformGroup()
|
| | | const res = uni.getWindowInfo()
|
| | | this.windowTop = res.windowTop
|
| | | setInterval(() => {
|
| | | this.getPlatformGroup()
|
| | | }, 1000 * 30)
|
| | | },
|
| | | methods: {
|
| | | getPlatformGroup() {
|
| | |
| | | .length > 0) {
|
| | | let time = new Date()
|
| | | this.platformTaskInfo.platformJobList.forEach(item => {
|
| | | if (item.callDate) {
|
| | | let timeNum = time.getTime() - new Date(item.callDate).getTime()
|
| | | if (item.newCallDate) {
|
| | | let timeNum = time.getTime() - new Date(item.newCallDate).getTime()
|
| | | if (timeNum > 3600000) {
|
| | | item.callDateTemp = dayjs.duration(timeNum).format('H小时m分s秒')
|
| | | } else {
|
| | | item.callDateTemp = dayjs.duration(timeNum).format('m分s秒')
|
| | | }
|
| | | }
|
| | | if (item.startDate) {
|
| | | let timeNum = time.getTime() - new Date(item.startDate).getTime()
|
| | | if (item.newStartDate) {
|
| | | let timeNum = time.getTime() - new Date(item.newStartDate).getTime()
|
| | | if (timeNum > 3600000) {
|
| | | item.startDateTemp = dayjs.duration(timeNum).format('H小时m分ss秒')
|
| | | } else {
|
| | |
| | | this.activePlatform = item
|
| | | this.getPlatformTask()
|
| | | },
|
| | | handleDetail() {
|
| | | this.showDetail = true
|
| | | handleDetail(param) {
|
| | | wmsJobDetail({
|
| | | id: param.id
|
| | | }).then(res => {
|
| | | this.wmsInfo = res.data
|
| | | this.showDetail = true
|
| | | })
|
| | | },
|
| | | handleFinish(item) {
|
| | | finishWork({
|
| | |
| | | this.platformCallPage = 1
|
| | | if (callType == 1) { // 入园叫号
|
| | | platformInPark({
|
| | | jobId: item.id
|
| | | jobId: item.id,
|
| | | platformId: activePlatform.id
|
| | | }).then(res => {
|
| | | this.showToast('叫号成功')
|
| | | this.getPlatformCallList()
|
| | |
| | | .item {
|
| | | width: 210rpx;
|
| | | height: 80rpx;
|
| | | line-height: 80rpx;
|
| | | text-align: center;
|
| | | display: flex;
|
| | | justify-content: center;
|
| | | align-items: center;
|
| | | background: #ffffff;
|
| | | border-radius: 8rpx;
|
| | | border: 1rpx solid #999999;
|
| | |
| | | margin-bottom: 30rpx;
|
| | |
|
| | | .code {
|
| | | display: flex;
|
| | | font-weight: 600;
|
| | | height: 60rpx;
|
| | | line-height: 60rpx;
|
| | | 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;
|
| | |
| | | .btn {
|
| | | width: 224rpx;
|
| | | height: 88rpx;
|
| | | line-height: 88rpx;
|
| | | text-align: center;
|
| | | display: flex;
|
| | | justify-content: center;
|
| | | align-items: center;
|
| | | background: #ffffff;
|
| | | border-radius: 44rpx;
|
| | | color: $uni-color-primary;
|
| | |
| | | .PlatformCallModal {
|
| | | height: calc(100vh - 44px);
|
| | | padding: 30rpx;
|
| | |
|
| | | |
| | | .title {
|
| | | text-align: center;
|
| | | margin: 0 0 30rpx;
|
| | |
| | | }
|
| | |
|
| | | .order_list {
|
| | | height: calc(100% - 140rpx);
|
| | |
|
| | | height: calc(100% - 160rpx);
|
| | | margin-top: 20rpx;
|
| | | .scroll_view {
|
| | | height: 100%;
|
| | | }
|
| | |
| | | .platform_ing {
|
| | | border-radius: 8rpx;
|
| | | border: 1rpx solid #dfe2e8;
|
| | | &:nth-of-type(1){
|
| | | margin-top: 0;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .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;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |