<template>
|
<div class="statistics-of-in-out-goods-compontent">
|
<search-bar @search="onSearch" @reset="onReset">
|
<el-form :inline="true" :show-message="false" label-width="94px" :model="query">
|
<el-form-item label="出入库类型">
|
<el-select placeholder="请选择..." clearable class="default-form-width" v-model="query.taskType">
|
<el-option v-for="(item,index) in selectList.taskTypes" :key="'taskTypes-'+index" :label="item.TaskTypeName" :value="item.TaskType" />
|
</el-select>
|
</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-select placeholder="请选择..." clearable class="default-form-width" v-model="query.taskState">
|
<el-option v-for="(item,index) in selectList.status" :key="'status-'+index" :label="item.TaskStateName" :value="item.TaskState" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="是否虚拟">
|
<el-select placeholder="请选择..." clearable class="default-form-width" v-model="query.isVirtual">
|
<el-option label="是" :value="true" />
|
<el-option label="否" :value="false" />
|
</el-select>
|
</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-item label="创建日期">
|
<el-date-picker v-model="query.dateRange1" 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"><span class="iconfont icon-download btn-left-icon"></span>导出</el-button>
|
</div>
|
|
<el-table :data="list" border stripe>
|
<el-table-column type="index" width="50" align="center" label="序号" fixed />
|
<el-table-column prop="TaskNo" label="任务号" min-width="180" />
|
<el-table-column prop="TaskTypeName" label="出入库类型" width="100" />
|
<el-table-column label="是否虚拟" width="80" >
|
<template #default="scope">{{scope.row.IsVirtual?'是':'否'}}</template>
|
</el-table-column>
|
<el-table-column prop="StartTime" label="开始时间" width="160" />
|
<el-table-column prop="FinishTime" label="完成时间" width="160" />
|
<el-table-column prop="RealSourcePlace" label="初始位置" width="100" />
|
<el-table-column prop="RealToPlace" label="目标位置" width="100" />
|
<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="系列" />
|
<el-table-column prop="CargoTypeName" label="品类" />
|
<el-table-column prop="MaterialModel" label="型号" min-width="120" />
|
<el-table-column prop="Supplier" label="主机厂" min-width="180" />
|
<el-table-column prop="TaskStateName" label="状态" width="120" />
|
<el-table-column prop="CreateTime" label="创建时间" width="160" />
|
<el-table-column prop="ModifyTime" label="修改时间" width="160" />
|
<el-table-column prop="CreateBy" label="创建人" width="100" />
|
<el-table-column prop="ModifyBy" label="修改人" width="100" />
|
</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>
|
import SearchBar from '@/components/SearchBar.vue'
|
const defaultQuery = {
|
materialType:1,
|
materialType_FilterMode:'2',
|
taskType:'',
|
taskType_FilterMode:'2',
|
taskState:'',
|
taskState_FilterMode:'2',
|
series_CodeItemId:'',
|
series_CodeItemId_FilterMode:'2',
|
cargoType_CodeItemId:'',
|
cargoType_CodeItemId_FilterMode:'2',
|
materialModel_CodeItemId:'',
|
materialModel_CodeItemId_FilterMode:'2',
|
serialNumber:'',
|
serialNumber_FilterMode:'1',
|
dateRange:[],
|
dateRange1:[],
|
createTime:[],
|
startTime:[],
|
orderNo:'',
|
orderNo_FilterMode:'1',
|
salverCode:'',
|
salverCode_FilterMode:'1',
|
isVirtual:null,
|
isVirtual_FilterMode:'2'
|
}
|
export default {
|
name:'statisticsOfInOutGoodsCompontent',
|
components:{SearchBar},
|
data(){
|
return {
|
selectList:{
|
taskTypes:[],
|
series:[],
|
types:[],
|
modelTypes:[],
|
status:[]
|
},
|
list:[],
|
total:100,
|
query:{...defaultQuery},
|
queried:{...this.$config.pagination}
|
}
|
},
|
mounted() {
|
this.init()
|
},
|
methods:{
|
/* 页面初始化 */
|
init(){
|
this.$loading();
|
this.getSelectLists((f)=>{
|
if (f) {
|
this.reset(false,()=>{
|
this.$loading().close();
|
})
|
} else {
|
this.$loading().close();
|
}
|
})
|
},
|
setDefaultDateRange(){
|
let _date = this.$utils.project.dayjs();
|
let _tempArr = [_date.format('YYYY-MM-DD')]
|
_date = _date.subtract(1, 'month').add(1, 'day')
|
_tempArr.unshift(_date.format('YYYY-MM-DD'))
|
this.query.dateRange1 = _tempArr;
|
},
|
/* 搜索按钮 */
|
onSearch(){
|
this.newList()
|
},
|
/* 重置按钮 */
|
onReset(){
|
this.reset()
|
},
|
reset(needLoading=true,callback){
|
this.query = {...defaultQuery}
|
this.setDefaultDateRange()
|
this.newList(needLoading,callback)
|
},
|
/* 翻页功能 */
|
onPageList(page){
|
this.queried.page = page;
|
this.getList();
|
},
|
/* 表格刷新至首页 */
|
newList(needLoading=true,callback){
|
this.queried = {...this.query,...this.$config.pagination}
|
if (this.queried.dateRange && (this.queried.dateRange instanceof Array) && this.queried.dateRange.length===2) {
|
this.queried.startTime[0] = this.queried.dateRange[0] + ' 00:00:00'
|
this.queried.startTime[1] = this.queried.dateRange[1] + ' 23:59:59'
|
} else {
|
this.queried.startTime = []
|
}
|
if (this.queried.dateRange1 && (this.queried.dateRange1 instanceof Array) && this.queried.dateRange1.length===2) {
|
this.queried.createTime[0] = this.queried.dateRange1[0] + ' 00:00:00'
|
this.queried.createTime[1] = this.queried.dateRange1[1] + ' 23:59:59'
|
} else {
|
this.queried.createTime = []
|
}
|
this.getList(callback,needLoading)
|
},
|
/* 更新数据表 */
|
getList(callback,needLoading=true){
|
if (needLoading) {
|
this.$loading();
|
}
|
this.$api.post('GetAll',this.queried,{block:'taskMain'}).then((d)=>{
|
this.total = d.total;
|
this.list = d.list.map((currentItem)=>{
|
currentItem.StartTime = this.$utils.project.parseTimeStr(currentItem.StartTime)
|
currentItem.FinishTime = this.$utils.project.parseTimeStr(currentItem.FinishTime)
|
currentItem.CreateTime = this.$utils.project.parseTimeStr(currentItem.CreateTime)
|
currentItem.ModifyTime = this.$utils.project.parseTimeStr(currentItem.ModifyTime)
|
return currentItem
|
})
|
if (needLoading) {
|
this.$loading().close();
|
}
|
callback && callback(true)
|
}).catch((err)=>{
|
if (needLoading) {
|
this.$loading().close();
|
}
|
callback && callback(false)
|
})
|
},
|
getSelectLists(callback){
|
Promise.all([
|
this.$api.get('GetCodeItemsBySetCode',{setCode:'SeriesCode'},{block:'dictionary'}),
|
this.$api.get('GetCodeItemsBySetCode',{setCode:'CategoryCode'},{block:'dictionary'}),
|
this.$api.get('GetCodeItemsBySetCode',{setCode:'ModelNumber'},{block:'dictionary'}),
|
this.$api.get('MainType',{},{block:'taskMain'}),
|
this.$api.get('AllTaskState',{},{block:'taskMain'})
|
]).then((response)=>{
|
this.selectList.series = response[0] || []
|
this.selectList.types = response[1] || []
|
this.selectList.modelTypes = response[2] || []
|
this.selectList.status = response[4] || []
|
this.selectList.taskTypes = response[3] || []
|
callback && callback(true)
|
}).catch((err)=>{
|
callback && callback(false)
|
})
|
},
|
onExport(){
|
this.$loading();
|
this.$api.downFile('GetAll_Export',this.queried,{block:'taskMain'},{},'post').then((d)=>{
|
this.$loading().close();
|
this.$utils.project.downLoadFile(d,'物料出入库记录'+new Date().getTime()+'.xls')
|
}).catch(()=>{
|
this.$loading().close();
|
})
|
}
|
}
|
}
|
</script>
|
|
<style scoped lang="scss">
|
.statistics-of-in-out-goods-compontent{
|
|
}
|
</style>
|