<template>
|
<div class="page">
|
<div class="page_title">当前:<template v-if="info.wmodel">{{info.wmodel.name}}</template> / {{info.unionName}}</div>
|
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
|
<van-list
|
v-model:loading="loading"
|
:finished="finished"
|
finished-text="没有更多了~"
|
@load="getList"
|
>
|
<div class="page_info" v-for="(item, index) in list" :key="index">
|
<div class="page_info_nr">
|
<div class="item">
|
<div class="item_label">{{item.materialName}} | {{item.materialCode}}</div>
|
<div class="item_label1">
|
<span class="green" v-if="item.qualityType === '0'">合格</span>
|
<span class="yellow" v-if="item.qualityType === '1'">不良</span>
|
<span class="red" v-if="item.qualityType === '2'">报废</span>
|
| {{item.procedureName ? item.procedureName : '-'}} | {{item.batch ? item.batch : '-'}}
|
</div>
|
<div class="item_label2">数量:{{item.num}}{{item.unitName}}</div>
|
</div>
|
</div>
|
</div>
|
</van-list>
|
</van-pull-refresh>
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
import { ref, onMounted, reactive } from 'vue'
|
import { useRoute } from "vue-router"
|
import { pageForH5, pageHW } from '@/apis/WorkOrderAPI'
|
import { getLocationInfo } from '@/apis/ExWarehouse'
|
|
const route = useRoute()
|
|
const form = reactive({
|
capacity: 10,
|
page: 0
|
})
|
|
// 列表数据
|
const list: any = ref([]);
|
const loading = ref(false);
|
const finished = ref(false);
|
const refreshing = ref(false)
|
|
// 货位信息
|
let info = ref({})
|
|
// 下拉刷新优化页面
|
const onRefresh = () => {
|
finished.value = false;
|
form.page = 0
|
loading.value = true;
|
getList()
|
}
|
|
// 通过货位id获取id详情
|
const getLocation = () => {
|
pageHW({
|
capacity: 1,
|
page: 1,
|
model: {
|
id: route.query.id
|
}
|
})
|
.then(res => {
|
if (res.code === 200) {
|
info.value = res.data.records[0]
|
}
|
})
|
}
|
|
const getList = () => {
|
if (!finished.value) {
|
loading.value = true;
|
form.page = form.page + 1
|
pageForH5({
|
capacity: form.capacity,
|
page: form.page,
|
model: {
|
locationId: route.query.id,
|
groupType: 3,
|
greaterZero: 1
|
}
|
}).then(res => {
|
loading.value = false;
|
if (refreshing.value) {
|
list.value = []
|
refreshing.value = false;
|
}
|
if (res.code === 200 && res.data.records && res.data.records.length !== 0) {
|
list.value.push(...res.data.records)
|
} else {
|
finished.value = true;
|
}
|
}).catch((err: any) => {
|
loading.value = false;
|
finished.value = true;
|
if (refreshing.value) {
|
list.value = []
|
refreshing.value = false;
|
}
|
})
|
}
|
}
|
|
onMounted(() => {
|
getList()
|
getLocation()
|
})
|
</script>
|
|
<style lang="scss" scoped>
|
.page {
|
width: 100%;
|
height: 100%;
|
position: absolute;
|
background: #F7F7F7;
|
.page_info {
|
padding: 30px;
|
background: #ffffff;
|
margin-bottom: 30px;
|
&:last-child {
|
margin-bottom: 0 !important;
|
}
|
.page_info_nr {
|
border-radius: 16px;
|
display: flex;
|
align-items: center;
|
flex-wrap: wrap;
|
.item {
|
width: 55%;
|
display: flex;
|
flex-direction: column;
|
margin-top: 24px;
|
&:first-child {
|
margin-top: 0 !important;
|
}
|
.item_label {
|
font-size: 28px;
|
font-weight: 400;
|
color: #000000;
|
flex-shrink: 0;
|
}
|
.item_label1 {
|
font-size: 24px;
|
font-weight: 400;
|
color: #666666;
|
flex-shrink: 0;
|
margin-top: 20px;
|
}
|
.item_label2 {
|
font-size: 24px;
|
font-weight: 400;
|
color: #000000;
|
flex-shrink: 0;
|
margin-top: 20px;
|
}
|
}
|
}
|
}
|
.page_title {
|
padding: 20px 30px 20px 30px;
|
font-size: 24px;
|
font-weight: 500;
|
color: #222222;
|
}
|
}
|
</style>
|