You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
3.6 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="detail-container">
<view class="detail-card">
<text class="detail-title">任务详情</text>
<view class="detail-item">
<text class="detail-label">任务号</text>
<text class="detail-value">{{ taskData.taskId }}</text>
</view>
<view class="detail-item">
<text class="detail-label">盘点状态</text>
<text class="detail-value">{{ taskData.statusName }}</text>
</view>
<view class="detail-item">
<text class="detail-label">上位缺件</text>
<text class="detail-value">{{ taskData.wmsCountNumber }}</text>
</view>
<view class="detail-item">
<text class="detail-label">缺件</text>
<text class="detail-value">{{ taskData.countNumber }}</text>
</view>
<view class="detail-item">
<text class="detail-label">上位托盘</text>
<text class="detail-value">{{ taskData.wmsPltCode }}</text>
</view>
<view class="detail-item">
<text class="detail-label">托盘码</text>
<text class="detail-value">{{ taskData.pltCode }}</text>
</view>
<view class="detail-item">
<text class="detail-label">地址</text>
<text class="detail-value">{{ position(taskData) }}</text>
</view>
<view class="detail-item">
<text class="detail-label">时间</text>
<text class="detail-value">{{ formatTime(taskData.createTime) }}</text>
</view>
<!-- 图片显示 -->
<view class="pics-container" v-if="taskData.urlResources">
<u-image
v-for="(pic, picIndex) in taskData.urlResources"
:key="picIndex"
:title="pic.url"
:src="pic.url" width="80px" height="80px"
class="detail-pic"
mode="aspectFill"
/>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
taskData: {} // 任务数据
}
},
onLoad(options) {
// 解析 URL 参数
if (options.data) {
this.taskData = JSON.parse(decodeURIComponent(options.data));
console.log('任务详情数据:', this.taskData);
}
},
methods: {
formatTime(timestamp) {
const date = new Date(timestamp);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
},
position(row) {
const from = row.fromSide == 2 ? "库外" : row.streetName + "-" + (row.direction ? "左侧-" : "右侧-") + row.row + '层-' + row.column + '列' + (row.side == 2 ? "深货位" : "");
return from;
}
}
}
</script>
<style scoped>
.detail-container {
padding: 20rpx;
background-color: #f7f7f7;
height: 100vh;
}
.detail-card {
padding: 20rpx;
background: #fff;
border-radius: 10rpx;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
}
.detail-title {
display: block;
font-size: 30rpx;
font-weight: bold;
margin-bottom: 30rpx;
text-align: center;
}
.detail-item {
display: flex;
margin-bottom: 15rpx;
}
.detail-label {
font-weight: bold;
width: 170rpx;
}
.detail-value {
flex: 1;
}
/* 图片样式 - 横向排列 */
.pics-container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
margin-top: 20rpx;
gap: 10rpx;
}
.detail-pic {
width: 80px;
height: 80px;
border-radius: 8rpx;
}
</style>