diff --git a/src/views/inventorys/index.vue b/src/views/inventorys/index.vue
index 71e09ca..9f2885f 100644
--- a/src/views/inventorys/index.vue
+++ b/src/views/inventorys/index.vue
@@ -11,55 +11,55 @@
-->
-
-
+
+
{changeFenlei(e)}" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ @change="(e)=>{changeFenlei(e)}" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
查询
-
打印
-
导出
+
+ 查询
+ 打印
+ 导出
@@ -94,16 +94,16 @@
- -->
-
+ -->
+
-
-
+
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
@@ -158,43 +158,43 @@
-
-
-
-
- 备注:
-
-
+
+
+
-
-
-
-
- 出库明细 :
-
-
-
-
-
-
+ />
+
+
+
+
+
+
+ 出库明细 :
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -204,104 +204,104 @@
type="primary"
@click="nextStep"
>{{ activeStep === 1 ? '保存' : '下一步' }}
-
+
-
-
+
+
-
-
-
-->
+
-
+
-
+
-
+
-
+
-
-
-
- *出库数量:
-
-
@@ -342,52 +342,52 @@
-
-
-
-
-
+ />
+
+
+
+
+
+
-
-
-
-
-
-
-
+ })
+ },
+
+ // 合并相同物资编码且为一物一码的数据
+ mergeOneCodeItems() {
+ // 创建合并后的显示列表
+ const mergedDisplayList = []
+ const mergedMap = new Map()
+
+ // 遍历明细列表
+ this.mingxiList.forEach(item => {
+ if (item.wuzileixing === '一物一码') {
+ // 对于一物一码,使用物资编码作为key进行合并
+ const key = item.wuzibianma
+
+ if (mergedMap.has(key)) {
+ // 如果已存在,累加借用数量
+ const existingItem = mergedMap.get(key)
+ existingItem.jieyongshuliang += parseInt(item.jieyongshuliang) || 1
+ existingItem.originalItems.push(item) // 保存原始项目用于提交
+ } else {
+ // 如果不存在,创建新的合并项
+ const mergedItem = {
+ ...item,
+ jieyongshuliang: parseInt(item.jieyongshuliang) || 1,
+ originalItems: [item], // 保存原始项目用于提交
+ isMerged: true // 标记为合并项
+ }
+ mergedMap.set(key, mergedItem)
+ mergedDisplayList.push(mergedItem)
+ }
+ } else {
+ // 对于非一物一码,直接添加到显示列表
+ mergedDisplayList.push({
+ ...item,
+ originalItems: [item], // 保存原始项目用于提交
+ isMerged: false // 标记为非合并项
+ })
+ }
+ })
+
+ // 更新显示列表(用于表格显示)
+ this.mergedDisplayList = mergedDisplayList
+
+ console.log('合并后的显示列表:', this.mergedDisplayList)
+ console.log('原始明细列表:', this.mingxiList)
+ },
+
+ // 更新合并显示列表(基于当前选择的物资和已有明细)
+ updateMergedDisplayList() {
+ console.log('开始更新合并显示列表...')
+ console.log('当前 mingxiObj:', this.mingxiObj)
+ console.log('当前 mingxiList:', this.mingxiList)
+
+ // 如果 mingxiObj 为空,直接返回
+ if (!this.mingxiObj || !this.mingxiObj.wuzibianma) {
+ console.log('mingxiObj 为空,跳过更新')
+ return
+ }
+
+ // 创建临时列表,包含当前选择的物资和已有的明细
+ const tempList = [...this.mingxiList]
+
+ // 如果当前选择的物资不在明细列表中,添加进去
+ const existingIndex = tempList.findIndex(item =>
+ item.inventorys_id === this.mingxiObj.inventorys_id
+ )
+
+ if (existingIndex === -1) {
+ // 添加当前选择的物资到临时列表
+ tempList.push({
+ ...this.mingxiObj,
+ jieyongshuliang: this.mingxiObj.jieyongshuliang || 1
+ })
+ console.log('已添加当前选择的物资到临时列表')
+ } else {
+ // 更新已有的物资
+ tempList[existingIndex] = {
+ ...this.mingxiObj,
+ jieyongshuliang: this.mingxiObj.jieyongshuliang || 1
+ }
+ console.log('已更新已有的物资')
+ }
+
+ // 基于临时列表进行合并
+ const mergedDisplayList = []
+ const mergedMap = new Map()
+
+ tempList.forEach(item => {
+ if (item.wuzileixing === '一物一码') {
+ // 对于一物一码,使用物资编码作为key进行合并
+ const key = item.wuzibianma
+
+ if (mergedMap.has(key)) {
+ // 如果已存在,累加借用数量
+ const existingItem = mergedMap.get(key)
+ existingItem.jieyongshuliang += parseInt(item.jieyongshuliang) || 1
+ existingItem.originalItems.push(item) // 保存原始项目用于提交
+ } else {
+ // 如果不存在,创建新的合并项
+ const mergedItem = {
+ ...item,
+ jieyongshuliang: parseInt(item.jieyongshuliang) || 1,
+ originalItems: [item], // 保存原始项目用于提交
+ isMerged: true // 标记为合并项
+ }
+ mergedMap.set(key, mergedItem)
+ mergedDisplayList.push(mergedItem)
+ }
+ } else {
+ // 对于非一物一码,直接添加到显示列表
+ mergedDisplayList.push({
+ ...item,
+ originalItems: [item], // 保存原始项目用于提交
+ isMerged: false // 标记为非合并项
+ })
+ }
+ })
+
+ // 更新显示列表
+ this.mergedDisplayList = mergedDisplayList
+
+ console.log('更新后的合并显示列表:', this.mergedDisplayList)
+ console.log('临时列表:', tempList)
+ },
+
+ // 获取表格显示列表(合并当前选择的物资和已确认的明细)
+ getDisplayList() {
+ // 如果当前没有选择物资,直接返回已确认的明细列表
+ if (!this.mingxiObj || !this.mingxiObj.wuzibianma) {
+ return this.mergedDisplayList.length > 0 ? this.mergedDisplayList : this.mingxiList
+ }
+
+ // 创建临时列表,包含当前选择的物资和已有的明细
+ const tempList = [...this.mingxiList]
+
+ // 如果当前选择的物资不在明细列表中,添加进去
+ const existingIndex = tempList.findIndex(item =>
+ item.inventorys_id === this.mingxiObj.inventorys_id
+ )
+
+ if (existingIndex === -1) {
+ // 添加当前选择的物资到临时列表
+ tempList.push({
+ ...this.mingxiObj,
+ jieyongshuliang: this.mingxiObj.jieyongshuliang || 1
+ })
+ } else {
+ // 更新已有的物资
+ tempList[existingIndex] = {
+ ...this.mingxiObj,
+ jieyongshuliang: this.mingxiObj.jieyongshuliang || 1
+ }
+ }
+
+ // 基于临时列表进行合并
+ const mergedDisplayList = []
+ const mergedMap = new Map()
+
+ tempList.forEach(item => {
+ if (item.wuzileixing === '一物一码') {
+ // 对于一物一码,使用物资编码作为key进行合并
+ const key = item.wuzibianma
+
+ if (mergedMap.has(key)) {
+ // 如果已存在,累加借用数量
+ const existingItem = mergedMap.get(key)
+ existingItem.jieyongshuliang += parseInt(item.jieyongshuliang) || 1
+ existingItem.originalItems.push(item) // 保存原始项目用于提交
+ } else {
+ // 如果不存在,创建新的合并项
+ const mergedItem = {
+ ...item,
+ jieyongshuliang: parseInt(item.jieyongshuliang) || 1,
+ originalItems: [item], // 保存原始项目用于提交
+ isMerged: true // 标记为合并项
+ }
+ mergedMap.set(key, mergedItem)
+ mergedDisplayList.push(mergedItem)
+ }
+ } else {
+ // 对于非一物一码,直接添加到显示列表
+ mergedDisplayList.push({
+ ...item,
+ originalItems: [item], // 保存原始项目用于提交
+ isMerged: false // 标记为非合并项
+ })
+ }
+ })
+
+ return mergedDisplayList
+ }
+
+ }
+
+}
+
+
diff --git a/src/views/outbounds/index.vue b/src/views/outbounds/index.vue
index 904ab63..0d0fe9e 100644
--- a/src/views/outbounds/index.vue
+++ b/src/views/outbounds/index.vue
@@ -65,7 +65,7 @@
-
{
if (row.id_outbounds_items_outbounds_id_relation.length > 0) {
- return row.id_outbounds_items_outbounds_id_relation.map(item => {
- return ( {item.wuzibianma}-{item.zichanmingcheng}
+ // 合并相同 wuzibianma 的物资
+ const mergedItems = this.mergeOutboundItems(row.id_outbounds_items_outbounds_id_relation)
+
+ return mergedItems.map(item => {
+ return (
{item.zichanmingcheng}
:{item.guigexinghao ? '(' + item.guigexinghao + ')' : ''}
{item.jieyongshuliang}{item.jiliangdanwei}
)
@@ -368,6 +371,43 @@ export default {
})
this.getindex()
})
+ },
+
+ // 合并相同 wuzibianma 的出库明细
+ mergeOutboundItems(items) {
+ if (!Array.isArray(items) || items.length === 0) {
+ return []
+ }
+
+ // 使用 Map 来合并相同 wuzibianma 的物资
+ const mergedMap = new Map()
+
+ items.forEach(item => {
+ const key = item.wuzibianma
+
+ if (mergedMap.has(key)) {
+ // 如果已存在,累加借用数量
+ const existingItem = mergedMap.get(key)
+ existingItem.jieyongshuliang += parseInt(item.jieyongshuliang) || 0
+
+ // 可以选择保留其他字段的最新值或第一个值
+ // 这里保留第一个值的其他字段
+ } else {
+ // 如果不存在,创建新的合并项
+ mergedMap.set(key, {
+ ...item,
+ jieyongshuliang: parseInt(item.jieyongshuliang) || 0
+ })
+ }
+ })
+
+ // 将合并后的结果转换为数组
+ const mergedItems = Array.from(mergedMap.values())
+
+ console.log('原始明细:', items)
+ console.log('合并后明细:', mergedItems)
+
+ return mergedItems
}
}