<template>
|
<div class="statistics-of-overdue-page subpages-containter-box">
|
<search-bar @search="onSearch" @reset="onReset">
|
<el-form :inline="true" class="search-form" label-width="70px">
|
<el-form-item label="物料类型">
|
<el-select placeholder="请选择..." clearable class="default-form-width" v-model="query.materialType">
|
<el-option v-for="(item,index) in selectList.materialTypes" :key="'series-'+index" :label="item.name" :value="item.id" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="货位编号">
|
<el-input placeholder="请输入..." clearable class="default-form-width" v-model.trim="query.srmStationCode"></el-input>
|
</el-form-item>
|
<el-form-item label="系列">
|
<el-select placeholder="请选择..." clearable class="default-form-width" v-model="query.series_CodeItemId">
|
<el-option v-for="(item,index) in selectList.series" :key="'series-'+index" :label="item.name" :value="item.id" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="品类">
|
<el-select placeholder="请选择..." clearable class="default-form-width" v-model="query.cargoType_CodeItemId">
|
<el-option v-for="(item,index) in selectList.types" :key="'types-'+index" :label="item.name" :value="item.id" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="型号">
|
<el-select placeholder="请选择..." clearable class="default-form-width" v-model="query.materialModel_CodeItemId">
|
<el-option v-for="(item,index) in selectList.modelTypes" :key="'types-'+index" :label="item.name" :value="item.id" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="序列号">
|
<el-input placeholder="请输入..." clearable class="default-form-width" v-model.trim="query.serialNumber"></el-input>
|
</el-form-item>
|
<el-form-item label="订货号">
|
<el-input placeholder="请输入..." clearable class="default-form-width" v-model.trim="query.orderNo"></el-input>
|
</el-form-item>
|
<el-form-item label="托盘号">
|
<el-input placeholder="请输入..." clearable class="default-form-width" v-model.trim="query.salverCode"></el-input>
|
</el-form-item>
|
<el-form-item label="入库日期">
|
<el-date-picker v-model="query.dateRange" clearable class="default-form-width" value-format="YYYY-MM-DD" type="daterange"></el-date-picker>
|
</el-form-item>
|
</el-form>
|
</search-bar>
|
|
<div class="table-header-row">
|
<el-button type="primary" @click="onExport">导出</el-button>
|
</div>
|
|
<el-table :data="list" border stripe>
|
<el-table-column width="50" label="序号" fixed>
|
<template #default="scope">{{(queried.page-1)*queried.pageSize+(scope.$index+1)}}</template>
|
</el-table-column>
|
<el-table-column prop="MaterialTypeName" label="物料类型" width="120" />
|
<el-table-column label="序列号/订货号/托盘号" min-width="240" >
|
<template #default="scope">
|
<p>序列号:{{scope.row.SerialNumber}}</p>
|
<p>订货号:{{scope.row.OrderNo}}</p>
|
<p>托盘号:{{scope.row.SalverCode}}</p>
|
</template>
|
</el-table-column>
|
<el-table-column prop="SeriesName" label="系列" width="100" />
|
<el-table-column prop="CargoTypeName" label="品类" width="100" />
|
<el-table-column prop="MaterialModel" label="型号" width="150" />
|
<el-table-column prop="Supplier" label="主机厂" min-width="180" />
|
<el-table-column prop="SrmStationCode" label="货位编号" width="120" />
|
<el-table-column prop="Qty" label="数量" width="80" />
|
<el-table-column prop="InStoreTime" label="入库时间" width="160" />
|
<el-table-column prop="OverDueDays" label="超期天数" width="80" />
|
<el-table-column prop="OverDueDaySet" label="超期天数设置" width="160" />
|
<el-table-column prop="OverDueTime" label="超期时间" width="160" />
|
</el-table>
|
|
<div class="pagination-row">
|
<el-pagination :pager-count="5" layout="total, prev, pager, next, jumper" :total="total" @current-change="onPageList" />
|
</div>
|
</div>
|
</template>
|
|
<script setup>
|
import { ref, reactive, getCurrentInstance, onMounted } from 'vue'
|
import SearchBar from '@/components/SearchBar.vue'
|
|
const instance = getCurrentInstance();
|
const defaultQuery = {
|
materialType:null,
|
materialType_FilterMode:'2',
|
cargoType_CodeItemId:'',
|
cargoType_CodeItemId_FilterMode:'2',
|
series_CodeItemId:'',
|
series_CodeItemId_FilterMode:'2',
|
materialModel_CodeItemId:'',
|
materialModel_CodeItemId_FilterMode:'2',
|
serialNumber:'',
|
serialNumber_FilterMode:'1',
|
srmStationCode:'',
|
srmStationCode_FilterMode:'1',
|
orderNo:'',
|
orderNo_FilterMode:'1',
|
salverCode:'',
|
salverCode_FilterMode:'1',
|
dateRange:[],
|
inStoreTime:[]
|
}
|
|
const selectList = reactive({
|
series:[],
|
types:[],
|
modelTypes:[],
|
materialTypes:[]
|
})
|
const list = ref([])
|
const total = ref(0)
|
const query = ref({...defaultQuery})
|
const queried = ref({...instance.proxy.$config.pagination})
|
|
const init = function(){
|
instance.proxy.$loading();
|
getSelectLists((f)=>{
|
if (f) {
|
reset(false,()=>{
|
instance.proxy.$loading().close();
|
})
|
} else {
|
instance.proxy.$loading().close();
|
}
|
})
|
}
|
|
const onSearch = function(){
|
newList()
|
}
|
|
const onReset = function(){
|
reset()
|
}
|
|
const reset = function(needLoading=true,callback){
|
query.value = {...defaultQuery}
|
newList(needLoading,callback)
|
}
|
|
const onPageList = function(page){
|
queried.value.page = page;
|
getList();
|
}
|
|
const newList = function(needLoading=true,callback){
|
queried.value = {...query.value,...instance.proxy.$config.pagination}
|
if (queried.value.dateRange && (queried.value.dateRange instanceof Array) && queried.value.dateRange.length===2) {
|
queried.value.inStoreTime[0] = queried.value.dateRange[0] + ' 00:00:00'
|
queried.value.inStoreTime[1] = queried.value.dateRange[1] + ' 23:59:59'
|
} else {
|
queried.value.inStoreTime = []
|
}
|
getList(callback,needLoading)
|
}
|
|
const getList = function(callback,needLoading=true){
|
if (needLoading) {
|
instance.proxy.$loading();
|
}
|
instance.proxy.$api.post('GetForOverDue',queried.value,{block:'store'}).then((d)=>{
|
total.value = d.total || 0;
|
list.value = (d.list || []).map((currentItem)=>{
|
currentItem.InStoreTime = instance.proxy.$utils.project.parseTimeStr(currentItem.InStoreTime)
|
currentItem.OverDueTime = instance.proxy.$utils.project.parseTimeStr(currentItem.OverDueTime)
|
return currentItem
|
});
|
if (needLoading) {
|
instance.proxy.$loading().close();
|
}
|
callback && callback(true)
|
}).catch((err)=>{
|
if (needLoading) {
|
instance.proxy.$loading().close();
|
}
|
callback && callback(false)
|
})
|
}
|
|
const getSelectLists = function(callback){
|
Promise.all([
|
instance.proxy.$api.get('GetCodeItemsBySetCode',{setCode:'SeriesCode'},{block:'dictionary'}),
|
instance.proxy.$api.get('GetCodeItemsBySetCode',{setCode:'CategoryCode'},{block:'dictionary'}),
|
instance.proxy.$api.get('GetCodeItemsBySetCode',{setCode:'ModelNumber'},{block:'dictionary'}),
|
instance.proxy.$api.get('GetEnumberList',{category:'MaterialTypeEnum'},{block:'common'})
|
]).then((response)=>{
|
selectList.series = response[0] || []
|
selectList.types = response[1] || []
|
selectList.modelTypes = response[2] || []
|
selectList.materialTypes = response[3] || []
|
callback && callback(true)
|
}).catch((err)=>{
|
callback && callback(false)
|
})
|
}
|
|
const onExport = function(){
|
instance.proxy.$loading();
|
instance.proxy.$api.downFile('Get_ExportForOverDue',queried.value,{block:'store'},{},'post').then((d)=>{
|
instance.proxy.$loading().close();
|
instance.proxy.$utils.project.downLoadFile(d,'超期本体机'+new Date().getTime()+'.xls')
|
}).catch(()=>{
|
instance.proxy.$loading().close();
|
})
|
}
|
|
onMounted(()=>{
|
init()
|
})
|
</script>
|
|
<style>
|
</style>
|