Browse Source
2025-12-08
2025-12-08
增加"标签变动记录"功能(WMS - 仓库报表管理 - 标签变动记录)
1、明细表展示所有数据(默认是今天的)
2、其他页签根据document_type区分
master
2 changed files with 330 additions and 0 deletions
@ -0,0 +1,25 @@ |
|||
import http from '@/utils/httpRequest' |
|||
|
|||
/** |
|||
* 查询标签变动记录列表 |
|||
*/ |
|||
export function labelTransactionLogList(data) { |
|||
return http({ |
|||
url: http.adornUrl('/warehouse/labelTransactionLog/list'), |
|||
method: 'post', |
|||
data: http.adornData(data) |
|||
}) |
|||
} |
|||
|
|||
/** |
|||
* 导出标签变动记录 |
|||
*/ |
|||
export function labelTransactionLogExport(data) { |
|||
return http({ |
|||
url: http.adornUrl('/warehouse/labelTransactionLog/export'), |
|||
method: 'post', |
|||
data: http.adornData(data), |
|||
responseType: 'blob' |
|||
}) |
|||
} |
|||
|
|||
@ -0,0 +1,305 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<!-- 条件查询 --> |
|||
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList"> |
|||
<el-form-item label="BU"> |
|||
<el-select v-model="searchData.buNo" placeholder="请选择" clearable style="width: 120px"> |
|||
<el-option |
|||
v-for="i in userBuList" |
|||
:key="i.buNo" |
|||
:label="i.buDesc" |
|||
:value="i.buNo"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="变动类型"> |
|||
<el-select v-model="searchData.documentType" placeholder="请选择" clearable style="width: 120px"> |
|||
<el-option |
|||
v-for="item in documentTypeList" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="标签条码"> |
|||
<el-input v-model="searchData.rollNo" clearable placeholder="请输入" style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="物料编码"> |
|||
<el-input v-model="searchData.partNo" clearable placeholder="请输入" style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="规格型号"> |
|||
<el-input v-model="searchData.partSpec" clearable placeholder="请输入" style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="变动日期"> |
|||
<el-date-picker |
|||
v-model="searchData.transactionDateRange" |
|||
type="daterange" |
|||
range-separator="至" |
|||
start-placeholder="开始日期" |
|||
end-placeholder="结束日期" |
|||
value-format="yyyy-MM-dd" |
|||
style="width: 240px"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label=" "> |
|||
<el-button type="primary" @click="getDataList()">查询</el-button> |
|||
<el-button type="primary" @click="resetSearch()">重置</el-button> |
|||
<el-button type="primary" @click="exportData()">导出</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- 页签列表 --> |
|||
<el-tabs v-model="activeTab" @tab-click="handleTabClick"> |
|||
<el-tab-pane label="变动明细" name="all"></el-tab-pane> |
|||
<el-tab-pane label="采购入库" name="采购入库"></el-tab-pane> |
|||
<el-tab-pane label="采购退货" name="采购退货"></el-tab-pane> |
|||
<el-tab-pane label="生产领料" name="生产领料"></el-tab-pane> |
|||
<el-tab-pane label="生产退仓" name="生产退仓"></el-tab-pane> |
|||
<el-tab-pane label="生产入库" name="生产入库"></el-tab-pane> |
|||
<el-tab-pane label="销售发货" name="销售发货"></el-tab-pane> |
|||
<el-tab-pane label="销售退货" name="销售退货"></el-tab-pane> |
|||
<el-tab-pane label="其他入库" name="其他入库"></el-tab-pane> |
|||
<el-tab-pane label="其他出库" name="其他出库"></el-tab-pane> |
|||
<el-tab-pane label="移库调拨" name="移库调拨"></el-tab-pane> |
|||
</el-tabs> |
|||
|
|||
<!-- 展示列表 --> |
|||
<el-table |
|||
:height="height" |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column prop="buNo" label="BU" header-align="center" align="center" width="80"></el-table-column> |
|||
<el-table-column prop="transactionId" label="变动单号" header-align="center" align="left" min-width="150" show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="documentType" label="变动类型" header-align="center" align="center" width="100"></el-table-column> |
|||
<el-table-column prop="documentNo" label="通知单号" header-align="center" align="left" min-width="150" show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="orderNo" label="关联单号" header-align="center" align="left" min-width="150" show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="orderLineNo" label="关联单行号" header-align="center" align="center" width="100"></el-table-column> |
|||
<el-table-column prop="rollNo" label="标签条码" header-align="center" align="left" min-width="180" show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="rollQty" label="变动数量" header-align="center" align="right" width="100"></el-table-column> |
|||
<el-table-column prop="partNo" label="物料编码" header-align="center" align="left" min-width="150" show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="warehouseId" label="仓库编码" header-align="center" align="center" width="100"></el-table-column> |
|||
<el-table-column prop="warehouseName" label="仓库名称" header-align="center" align="left" min-width="120" show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="locationId" label="库位编码" header-align="center" align="center" width="100"></el-table-column> |
|||
<el-table-column prop="locationName" label="库位名称" header-align="center" align="left" min-width="120" show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="syncedFlag" label="传输状态" header-align="center" align="center" width="90"> |
|||
<template slot-scope="scope"> |
|||
<el-tag :type="scope.row.syncedFlag === '已传输' ? 'success' : 'warning'" size="small"> |
|||
{{ scope.row.syncedFlag }} |
|||
</el-tag> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="syncedTime" label="传输时间" header-align="center" align="center" width="160"></el-table-column> |
|||
<el-table-column prop="syncedErrorMsg" label="传输消息" header-align="center" align="left" min-width="150" show-overflow-tooltip></el-table-column> |
|||
<el-table-column v-if="showBomItemNo" prop="bomItemNo" label="Bom行号" header-align="center" align="center" width="100"></el-table-column> |
|||
<el-table-column prop="transactionBy" label="操作员" header-align="center" align="center" width="100"></el-table-column> |
|||
<el-table-column prop="transactionDate" label="变动日期" header-align="center" align="center" width="160"></el-table-column> |
|||
</el-table> |
|||
|
|||
<!-- 分页 --> |
|||
<el-pagination |
|||
style="margin-top: 10px" |
|||
@size-change="sizeChangeHandle" |
|||
@current-change="currentChangeHandle" |
|||
:current-page="pageIndex" |
|||
:page-sizes="[20, 50, 100, 200, 500]" |
|||
:page-size="pageSize" |
|||
:total="totalPage" |
|||
layout="total, sizes, prev, pager, next, jumper"> |
|||
</el-pagination> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { labelTransactionLogList } from '@/api/warehouse/labelTransactionLog.js' |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
height: window.innerHeight - 280, |
|||
searchData: { |
|||
buNo: '', |
|||
documentType: '', |
|||
rollNo: '', |
|||
partNo: '', |
|||
partSpec: '', |
|||
transactionDateRange: [] |
|||
}, |
|||
// 变动类型列表(不包含"变动明细") |
|||
documentTypeList: [ |
|||
{ label: '采购入库', value: '采购入库' }, |
|||
{ label: '采购退货', value: '采购退货' }, |
|||
{ label: '生产领料', value: '生产领料' }, |
|||
{ label: '生产退仓', value: '生产退仓' }, |
|||
{ label: '生产入库', value: '生产入库' }, |
|||
{ label: '销售发货', value: '销售发货' }, |
|||
{ label: '销售退货', value: '销售退货' }, |
|||
{ label: '其他入库', value: '其他入库' }, |
|||
{ label: '其他出库', value: '其他出库' }, |
|||
{ label: '移库调拨', value: '移库调拨' } |
|||
], |
|||
activeTab: 'all', |
|||
dataList: [], |
|||
dataListLoading: false, |
|||
pageIndex: 1, |
|||
pageSize: 20, |
|||
totalPage: 0, |
|||
userBuList: [] |
|||
} |
|||
}, |
|||
computed: { |
|||
// 只有生产领料和生产退仓页签才显示Bom行号列 |
|||
showBomItemNo() { |
|||
return this.activeTab === '生产领料' || this.activeTab === '生产退仓' |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.initBuList() |
|||
this.initDefaultDate() |
|||
this.getDataList() |
|||
window.addEventListener('resize', this.handleResize) |
|||
}, |
|||
beforeDestroy() { |
|||
window.removeEventListener('resize', this.handleResize) |
|||
}, |
|||
methods: { |
|||
handleResize() { |
|||
this.height = window.innerHeight - 280 |
|||
}, |
|||
|
|||
// 初始化BU列表 |
|||
initBuList() { |
|||
this.userBuList = this.$store.state.common.userBuList || [] |
|||
if (this.userBuList.length > 0) { |
|||
this.searchData.buNo = this.userBuList[0].buNo |
|||
} |
|||
}, |
|||
|
|||
// 初始化默认日期为今天 |
|||
initDefaultDate() { |
|||
const today = this.formatDate(new Date()) |
|||
this.searchData.transactionDateRange = [today, today] |
|||
}, |
|||
|
|||
// 格式化日期 |
|||
formatDate(date) { |
|||
const year = date.getFullYear() |
|||
const month = String(date.getMonth() + 1).padStart(2, '0') |
|||
const day = String(date.getDate()).padStart(2, '0') |
|||
return `${year}-${month}-${day}` |
|||
}, |
|||
|
|||
// 页签切换 |
|||
handleTabClick(tab) { |
|||
this.pageIndex = 1 |
|||
this.getDataList() |
|||
}, |
|||
|
|||
// 查询列表 |
|||
getDataList() { |
|||
this.dataListLoading = true |
|||
const params = { |
|||
buNo: this.searchData.buNo, |
|||
documentType: this.activeTab === 'all' ? this.searchData.documentType : this.activeTab, |
|||
rollNo: this.searchData.rollNo, |
|||
partNo: this.searchData.partNo, |
|||
partSpec: this.searchData.partSpec, |
|||
startDate: this.searchData.transactionDateRange && this.searchData.transactionDateRange[0] ? this.searchData.transactionDateRange[0] : '', |
|||
endDate: this.searchData.transactionDateRange && this.searchData.transactionDateRange[1] ? this.searchData.transactionDateRange[1] : '', |
|||
page: this.pageIndex, |
|||
limit: this.pageSize |
|||
} |
|||
|
|||
labelTransactionLogList(params).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(() => { |
|||
this.dataListLoading = false |
|||
this.dataList = [] |
|||
this.totalPage = 0 |
|||
}) |
|||
}, |
|||
|
|||
// 重置查询条件 |
|||
resetSearch() { |
|||
this.searchData = { |
|||
buNo: this.userBuList.length > 0 ? this.userBuList[0].buNo : '', |
|||
documentType: '', |
|||
rollNo: '', |
|||
partNo: '', |
|||
partSpec: '', |
|||
transactionDateRange: [] |
|||
} |
|||
this.initDefaultDate() |
|||
this.activeTab = 'all' |
|||
this.pageIndex = 1 |
|||
this.getDataList() |
|||
}, |
|||
|
|||
// 导出数据 |
|||
exportData() { |
|||
this.$message.info('导出功能开发中...') |
|||
}, |
|||
|
|||
// 每页数量变化 |
|||
sizeChangeHandle(val) { |
|||
this.pageSize = val |
|||
this.pageIndex = 1 |
|||
this.getDataList() |
|||
}, |
|||
|
|||
// 页码变化 |
|||
currentChangeHandle(val) { |
|||
this.pageIndex = val |
|||
this.getDataList() |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.mod-config { |
|||
padding: 10px; |
|||
} |
|||
|
|||
/deep/ .el-tabs__header { |
|||
margin-bottom: 10px; |
|||
} |
|||
|
|||
/deep/ .el-tabs__nav-wrap::after { |
|||
height: 1px; |
|||
} |
|||
|
|||
/deep/ .el-tabs__item { |
|||
padding: 0 15px; |
|||
height: 36px; |
|||
line-height: 36px; |
|||
} |
|||
|
|||
/deep/ .el-tabs__item.is-active { |
|||
color: #17B3A3; |
|||
} |
|||
|
|||
/deep/ .el-tabs__active-bar { |
|||
background-color: #17B3A3; |
|||
} |
|||
|
|||
/deep/ .el-form-item { |
|||
margin-bottom: 10px; |
|||
} |
|||
|
|||
/deep/ .el-form-item__label { |
|||
padding-bottom: 0; |
|||
line-height: 28px; |
|||
} |
|||
</style> |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue