209 lines
5.3 KiB
Vue
209 lines
5.3 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="receipt-detail-container">
|
|||
|
|
<!-- <view class="list-title">单据信息</view> -->
|
|||
|
|
<!-- 单据头部信息卡片 -->
|
|||
|
|
<view class="header-card">
|
|||
|
|
<view class="header-item">
|
|||
|
|
<text class="label">单据号:</text>
|
|||
|
|
<text class="value">{{ billForm.billNo }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="header-item">
|
|||
|
|
<text class="label">{{ storageType == 'rkType' ? '入库类型' : '出库类型' }}:</text>
|
|||
|
|
<text class="value">{{ billForm.operationTypeName }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="header-item" v-if="storageType == 'rkType'">
|
|||
|
|
<text class="label">物资类型:</text>
|
|||
|
|
<text class="value">{{ billForm.wlTypeName }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="header-item">
|
|||
|
|
<text class="label">{{ storageType == 'rkType' ? '入库时间' : '出库时间' }}:</text>
|
|||
|
|
<text class="value">{{ billForm.operationTime }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="header-item" v-if="storageType == 'ckType'">
|
|||
|
|
<text class="label">施工队:</text>
|
|||
|
|
<text class="value">{{ billForm.teamName }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="header-item">
|
|||
|
|
<text class="label">理货员:</text>
|
|||
|
|
<text class="value">{{ billForm.operatorName }}</text>
|
|||
|
|
</view>
|
|||
|
|
<!-- <view class="header-item total">
|
|||
|
|
<text class="label">总数量:</text>
|
|||
|
|
<text class="value">2套</text>
|
|||
|
|
</view> -->
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<!-- 物料明细列表 -->
|
|||
|
|
<view class="material-list">
|
|||
|
|
<!-- <view class="list-title">物料明细</view> -->
|
|||
|
|
<view class="material-item" v-for="(item, index) in detailList" :key="index">
|
|||
|
|
<view class="material-header">
|
|||
|
|
<text class="material-code">物料号:{{ item.wlNo }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="info-item">
|
|||
|
|
<text class="info-label">订单号:</text>
|
|||
|
|
<text class="info-value">{{ item.sapNo }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="info-item">
|
|||
|
|
<text class="info-label">物料描述:</text>
|
|||
|
|
<text class="info-value">{{ item.wlMs}}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="info-item">
|
|||
|
|
<text class="info-label">数量:</text>
|
|||
|
|
<text class="info-value">{{ item.realQty }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="info-item">
|
|||
|
|
<text class="info-label">存放位置:</text>
|
|||
|
|
<text class="info-value">{{ item.pcode || '-' }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="info-item">
|
|||
|
|
<text class="info-label">项目号:</text>
|
|||
|
|
<text class="info-value">{{ item.xmNo || '-' }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="info-item">
|
|||
|
|
<text class="info-label">项目描述:</text>
|
|||
|
|
<text class="info-value">{{ item.xmMs || '-' }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="info-item">
|
|||
|
|
<text class="info-label">供应商:</text>
|
|||
|
|
<text class="info-value">{{ item.gysMc || '-' }}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="info-item">
|
|||
|
|
<text class="info-label">备注:</text>
|
|||
|
|
<text class="info-value">{{ item.remark || '-' }}</text>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script setup>
|
|||
|
|
import { onLoad } from '@dcloudio/uni-app'
|
|||
|
|
import { ref, getCurrentInstance } from 'vue'
|
|||
|
|
import { stockDetail } from '@/api/storage'
|
|||
|
|
|
|||
|
|
const storageType = ref("")
|
|||
|
|
|
|||
|
|
const billForm = ref({
|
|||
|
|
billNo: "",
|
|||
|
|
operationTypeName: "",
|
|||
|
|
wlTypeName: "",
|
|||
|
|
operationTime: "",
|
|||
|
|
teamName: "",
|
|||
|
|
operatorName: "",
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
const detailList = ref([])
|
|||
|
|
|
|||
|
|
onLoad((options)=>{
|
|||
|
|
storageType.value = options.type
|
|||
|
|
const instance = getCurrentInstance().proxy
|
|||
|
|
const eventChannel = instance.getOpenerEventChannel();
|
|||
|
|
eventChannel.on('acceptDataFrom', (data) => {
|
|||
|
|
billForm.value = data.data
|
|||
|
|
stockDetail(billForm.value.billNo).then(res => {
|
|||
|
|
detailList.value = res.data
|
|||
|
|
})
|
|||
|
|
});
|
|||
|
|
})
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss" scoped>
|
|||
|
|
.receipt-detail-container {
|
|||
|
|
background-color: #f5f7fa;
|
|||
|
|
min-height: 100vh;
|
|||
|
|
padding: 0 20rpx 20rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/* 头部信息卡片 */
|
|||
|
|
.header-card {
|
|||
|
|
background-color: #fff;
|
|||
|
|
margin: 20rpx 0;
|
|||
|
|
padding: 30rpx;
|
|||
|
|
border-radius: 16rpx;
|
|||
|
|
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);
|
|||
|
|
|
|||
|
|
.header-item {
|
|||
|
|
display: flex;
|
|||
|
|
margin-bottom: 20rpx;
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
|
|||
|
|
&:last-child {
|
|||
|
|
margin-bottom: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.label {
|
|||
|
|
color: #666;
|
|||
|
|
width: 150rpx;
|
|||
|
|
flex-shrink: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.value {
|
|||
|
|
color: #333;
|
|||
|
|
flex: 1;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
&.total {
|
|||
|
|
.label {
|
|||
|
|
font-weight: 500;
|
|||
|
|
color: #333;
|
|||
|
|
}
|
|||
|
|
.value {
|
|||
|
|
font-weight: 500;
|
|||
|
|
color: #1890ff;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.list-title {
|
|||
|
|
font-size: 32rpx;
|
|||
|
|
font-weight: 500;
|
|||
|
|
color: #333;
|
|||
|
|
margin-bottom: 20rpx;
|
|||
|
|
}
|
|||
|
|
/* 物料明细列表 */
|
|||
|
|
.material-list {
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
.material-item {
|
|||
|
|
background-color: #fffbe6;
|
|||
|
|
border: 1rpx solid #ffe58f;
|
|||
|
|
border-radius: 12rpx;
|
|||
|
|
padding: 24rpx;
|
|||
|
|
margin-bottom: 20rpx;
|
|||
|
|
|
|||
|
|
.material-header {
|
|||
|
|
margin-bottom: 16rpx;
|
|||
|
|
.material-code {
|
|||
|
|
font-size: 30rpx;
|
|||
|
|
font-weight: 500;
|
|||
|
|
color: #d48806;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.info-item {
|
|||
|
|
margin-bottom: 12rpx;
|
|||
|
|
font-size: 26rpx;
|
|||
|
|
|
|||
|
|
&:last-child {
|
|||
|
|
margin-bottom: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.info-label {
|
|||
|
|
color: #666;
|
|||
|
|
width: 160rpx;
|
|||
|
|
flex-shrink: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.info-value {
|
|||
|
|
color: #333;
|
|||
|
|
flex: 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|