常熟吴彦祖 3 months ago
parent
commit
9ba7c641cd
  1. 11
      src/api/warehouse/wcsCallbackTask.js
  2. 407
      src/views/modules/warehouse/wcsCallBackSearch.vue

11
src/api/warehouse/wcsCallbackTask.js

@ -0,0 +1,11 @@
import { createAPI } from "@/utils/httpRequest.js";
// 获取WCS回调任务列表 - rqrq
export const getWcsCallbackTaskList = data => createAPI('warehouse/wcsCallbackTask/list', 'POST', data)
// 获取任务状态选项 - rqrq
export const getTaskStatusOptions = () => createAPI('warehouse/wcsCallbackTask/statusOptions', 'GET')
// 获取用户授权站点列表 - rqrq
export const getUserAuthorizedSites = data => createAPI('warehouse/wcsCallbackTask/getUserAuthorizedSites', 'POST', data)

407
src/views/modules/warehouse/wcsCallBackSearch.vue

@ -0,0 +1,407 @@
<template>
<div class="mod-config">
<!-- 查询表单 -->
<el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;">
<el-form-item label="栈板ID">
<el-input v-model="queryData.palletId" style="width: 120px" placeholder="栈板ID" clearable></el-input>
</el-form-item>
<el-form-item label="任务号">
<el-input v-model="queryData.taskNo" style="width: 120px" placeholder="任务号" clearable></el-input>
</el-form-item>
<el-form-item label="事务类型">
<el-select v-model="queryData.transTypeDesc" placeholder="请选择" style="width: 120px" clearable>
<el-option label="全部" value=""></el-option>
<el-option label="入库" value="入库"></el-option>
<el-option label="出库" value="出库"></el-option>
<el-option label="取货通知" value="取货通知"></el-option>
</el-select>
</el-form-item>
<el-form-item label="处理状态">
<el-select v-model="queryData.status" placeholder="请选择" style="width: 120px" clearable>
<el-option label="全部" value=""></el-option>
<el-option
v-for="item in statusOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="创建时间从">
<el-date-picker
v-model="queryData.startDate"
type="date"
style="width: 120px"
placeholder="开始日期"
value-format="yyyy-MM-dd"
clearable>
</el-date-picker>
</el-form-item>
<el-form-item label="创建时间至">
<el-date-picker
v-model="queryData.endDate"
type="date"
style="width: 120px"
placeholder="结束日期"
value-format="yyyy-MM-dd"
clearable>
</el-date-picker>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" @click="getDataList()">查询</el-button>
<el-button @click="resetQuery()">重置</el-button>
</el-form-item>
</el-form>
<!-- 数据表格 -->
<el-table
:data="dataList"
:height="height"
border
highlight-current-row
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="item.columnProp === 'status'">
<el-tag
:type="getStatusType(scope.row.status)"
size="small">
{{ scope.row.status }}
</el-tag>
</span>
<span v-else-if="item.columnProp === 'transTypeDesc'">
<el-tag
:type="scope.row.transTypeDesc === '入库' ? 'success' : 'warning'"
size="small">
{{ scope.row.transTypeDesc }}
</el-tag>
</span>
<span v-else>{{ scope.row[item.columnProp] }}</span>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 1000]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
</div>
</template>
<script>
import {
getWcsCallbackTaskList,
getTaskStatusOptions,
getUserAuthorizedSites
} from '@/api/warehouse/wcsCallbackTask.js'
export default {
data() {
return {
// - rqrq
queryData: {
site: '',
palletId: '',
taskNo: '',
transTypeDesc: '',
status: '',
startDate: '',
endDate: '',
page: 1,
limit: 20
},
// - rqrq
height: 450,
// - rqrq
statusOptions: [
{ label: '已录入', value: '已录入' },
{ label: '处理中', value: '处理中' },
{ label: '已完成', value: '已完成' },
{ label: '处理失败', value: '处理失败' }
],
// - rqrq
siteOptions: [],
// - rqrq
columnList: [
{
columnProp: "site",
headerAlign: "center",
align: "center",
columnLabel: "站点",
columnWidth: 80,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "palletId",
headerAlign: "center",
align: "center",
columnLabel: "栈板ID",
columnWidth: 120,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "taskNo",
headerAlign: "center",
align: "center",
columnLabel: "任务号",
columnWidth: 150,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "itemNo",
headerAlign: "center",
align: "center",
columnLabel: "明细行号",
columnWidth: 80,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "transTypeDesc",
headerAlign: "center",
align: "center",
columnLabel: "事务类型",
columnWidth: 100,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "toWarehouseId",
headerAlign: "center",
align: "center",
columnLabel: "目标仓库",
columnWidth: 100,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "toLocationId",
headerAlign: "center",
align: "center",
columnLabel: "目标库位",
columnWidth: 120,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "toStation",
headerAlign: "center",
align: "center",
columnLabel: "目标站点",
columnWidth: 100,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "status",
headerAlign: "center",
align: "center",
columnLabel: "处理状态",
columnWidth: 100,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "retryCount",
headerAlign: "center",
align: "center",
columnLabel: "重试次数",
columnWidth: 80,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "createdTime",
headerAlign: "center",
align: "center",
columnLabel: "创建时间",
columnWidth: 150,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "processStartTime",
headerAlign: "center",
align: "center",
columnLabel: "处理开始时间",
columnWidth: 150,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "processEndTime",
headerAlign: "center",
align: "center",
columnLabel: "处理完成时间",
columnWidth: 150,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "errorMsg",
headerAlign: "center",
align: "left",
columnLabel: "错误信息",
columnWidth: 200,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
},
{
columnProp: "remark",
headerAlign: "center",
align: "left",
columnLabel: "备注",
columnWidth: 150,
columnSortable: false,
showOverflowTooltip: true,
fixed: ""
}
],
// - rqrq
dataList: [],
// - rqrq
pageIndex: 1,
pageSize: 20,
totalPage: 0,
dataListLoading: false
}
},
mounted() {
this.$nextTick(() => {
// - rqrq
this.height = window.innerHeight - 220;
})
},
activated() {
this.getDataList()
this.getSiteOptions()
},
methods: {
// - rqrq
getDataList() {
this.dataListLoading = true
this.queryData.page = this.pageIndex
this.queryData.limit = this.pageSize
getWcsCallbackTaskList(this.queryData).then(({data}) => {
this.dataListLoading = false
if (data && data.code === 0) {
this.dataList = data.page.list || []
this.totalPage = data.page.totalCount || 0
} else {
this.dataList = []
this.totalPage = 0
this.$message.error(data.msg || '查询失败')
}
}).catch(error => {
this.dataListLoading = false
console.error('查询WCS回调任务失败:', error)
this.$message.error('查询失败')
})
},
// - rqrq
getSiteOptions() {
const params = {
userName: this.$store.state.user.name
}
getUserAuthorizedSites(params).then(({data}) => {
if (data && data.code === 0) {
this.siteOptions = data.data || []
}
}).catch(error => {
console.error('获取站点列表失败:', error)
})
},
// - rqrq
resetQuery() {
this.queryData = {
site: '',
palletId: '',
taskNo: '',
transTypeDesc: '',
status: '',
startDate: '',
endDate: '',
page: 1,
limit: 20
}
this.pageIndex = 1
this.getDataList()
},
// - rqrq
sizeChangeHandle(val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
// - rqrq
currentChangeHandle(val) {
this.pageIndex = val
this.getDataList()
},
// - rqrq
getStatusType(status) {
const statusMap = {
'已录入': 'info',
'处理中': 'warning',
'已完成': 'success',
'处理失败': 'danger'
}
return statusMap[status] || 'info'
}
}
}
</script>
<style scoped>
/* 表格样式优化 - rqrq */
.mod-config {
padding: 10px;
}
</style>
Loading…
Cancel
Save