|
@@ -40,7 +40,7 @@
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<div class="title">
|
|
<div class="title">
|
|
|
<span>生产明细</span>
|
|
<span>生产明细</span>
|
|
|
- <el-button size="small" icon="Plus" @click="initList">添加商品</el-button>
|
|
|
|
|
|
|
+ <el-button :disabled="isView" size="small" icon="Plus" @click="initList">添加商品</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
<el-table
|
|
<el-table
|
|
|
:data="addList"
|
|
:data="addList"
|
|
@@ -60,7 +60,7 @@
|
|
|
<el-table-column prop="versionId" label="BOM版本">
|
|
<el-table-column prop="versionId" label="BOM版本">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<el-select :disabled="isView" v-model="scope.row.versionId" style="width: 100%">
|
|
<el-select :disabled="isView" v-model="scope.row.versionId" style="width: 100%">
|
|
|
- <el-option v-for="item in BOMList" :value="item.id" :label="item.version"></el-option>
|
|
|
|
|
|
|
+ <el-option v-for="item in scope.row.bomList" :value="item.id" :label="item.version"></el-option>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -109,7 +109,9 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<el-table
|
|
<el-table
|
|
|
|
|
+ ref="shopRefs"
|
|
|
:data="itemList"
|
|
:data="itemList"
|
|
|
|
|
+ row-key="skuId"
|
|
|
@selection-change="handleSelectChange"
|
|
@selection-change="handleSelectChange"
|
|
|
>
|
|
>
|
|
|
<el-table-column type="selection"></el-table-column>
|
|
<el-table-column type="selection"></el-table-column>
|
|
@@ -189,7 +191,7 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import { ref, getCurrentInstance, onMounted } from 'vue'
|
|
|
|
|
|
|
+import {ref, getCurrentInstance, onMounted, nextTick} from 'vue'
|
|
|
const { proxy } = getCurrentInstance();
|
|
const { proxy } = getCurrentInstance();
|
|
|
import {addTask, BOMVersion, detailTask, editTask} from '@/api/production/task'
|
|
import {addTask, BOMVersion, detailTask, editTask} from '@/api/production/task'
|
|
|
import { listItemSkuPage } from "@/api/wms/itemSku";
|
|
import { listItemSkuPage } from "@/api/wms/itemSku";
|
|
@@ -199,6 +201,8 @@ import { useRoute } from 'vue-router'
|
|
|
|
|
|
|
|
const route = useRoute()
|
|
const route = useRoute()
|
|
|
|
|
|
|
|
|
|
+let shopRefs = ref()
|
|
|
|
|
+
|
|
|
const getVolumeText = (itemSku) => {
|
|
const getVolumeText = (itemSku) => {
|
|
|
if((itemSku.length || itemSku.length === 0) && (itemSku.width || itemSku.width === 0) && (itemSku.height || itemSku.height === 0)) {
|
|
if((itemSku.length || itemSku.length === 0) && (itemSku.width || itemSku.width === 0) && (itemSku.height || itemSku.height === 0)) {
|
|
|
return itemSku.length + ' * ' + itemSku.width + ' * ' + itemSku.height
|
|
return itemSku.length + ' * ' + itemSku.width + ' * ' + itemSku.height
|
|
@@ -259,14 +263,21 @@ const createItem = () => {
|
|
|
const handleAddTask = () => {
|
|
const handleAddTask = () => {
|
|
|
let list = addList.value?.map(item => {
|
|
let list = addList.value?.map(item => {
|
|
|
return {
|
|
return {
|
|
|
- taskItemSkuId: item.itemSku.id,
|
|
|
|
|
|
|
+ taskItemSkuId: item.skuId,
|
|
|
versionId: item.versionId,
|
|
versionId: item.versionId,
|
|
|
quantity: item.quantity
|
|
quantity: item.quantity
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
+ let index = list.findIndex(item => !item.versionId || !item.quantity)
|
|
|
|
|
+ if(index != -1) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'error',
|
|
|
|
|
+ message: '请选择BOM版本或者生产数量'
|
|
|
|
|
+ })
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
if(route.query.data) {
|
|
if(route.query.data) {
|
|
|
- editTask({
|
|
|
|
|
- id: route.query.data,
|
|
|
|
|
|
|
+ editTask(route.query.data,{
|
|
|
...addForm.value,
|
|
...addForm.value,
|
|
|
taskItemSkuDtoList: [ ...list ]
|
|
taskItemSkuDtoList: [ ...list ]
|
|
|
}).then(res => {
|
|
}).then(res => {
|
|
@@ -322,7 +333,9 @@ const handleSelectConfirm = () => {
|
|
|
quantity: item.quantity,
|
|
quantity: item.quantity,
|
|
|
skuCode: item.itemSku.skuCode,
|
|
skuCode: item.itemSku.skuCode,
|
|
|
skuName: item.itemSku.skuName,
|
|
skuName: item.itemSku.skuName,
|
|
|
- versionId: item.versionId
|
|
|
|
|
|
|
+ versionId: item.versionId,
|
|
|
|
|
+ skuId: item.skuId,
|
|
|
|
|
+ bomList: getBomList(item.skuId)
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
addItemShow.value = false
|
|
addItemShow.value = false
|
|
@@ -339,6 +352,16 @@ const initList = () => {
|
|
|
quantity: 0
|
|
quantity: 0
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
+ addList.value.forEach(item => {
|
|
|
|
|
+ const index = itemList.value.findIndex(it => item.skuId === it.skuId)
|
|
|
|
|
+ itemList.value[index].versionId = item.versionId
|
|
|
|
|
+ itemList.value[index].quantity = item.quantity
|
|
|
|
|
+ if (index !== -1) {
|
|
|
|
|
+ nextTick(() => {
|
|
|
|
|
+ shopRefs.value.toggleRowSelection(itemList.value[index], true)
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
total.value = res.total
|
|
total.value = res.total
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
@@ -351,6 +374,10 @@ const initBOMVersion = () => {
|
|
|
BOMList.value = res.data
|
|
BOMList.value = res.data
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
+const getBomList = (id) => {
|
|
|
|
|
+ let list = BOMList.value.filter(item => item.itemSkuId === id)
|
|
|
|
|
+ return list || []
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
let isView = ref(false)
|
|
let isView = ref(false)
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
@@ -362,7 +389,14 @@ onMounted(() => {
|
|
|
addForm.value.startDate = res.data.startDate
|
|
addForm.value.startDate = res.data.startDate
|
|
|
addForm.value.endDate = res.data.endDate
|
|
addForm.value.endDate = res.data.endDate
|
|
|
addForm.value.remark = res.data.remark
|
|
addForm.value.remark = res.data.remark
|
|
|
- addList.value = res.data.taskItemSkuDtoList
|
|
|
|
|
|
|
+ addList.value = res.data.taskItemSkuDtoList.map(item => {
|
|
|
|
|
+ return {
|
|
|
|
|
+ ...item,
|
|
|
|
|
+ bomList: getBomList(item.skuId),
|
|
|
|
|
+ versionId: Number(item.versionId)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ console.log(1231232, addList.value)
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|