采购订单 物料数据保存与再加载

采购订单 物料数据保存与再加载
pull/4/head
siontion 8 months ago
parent b510dce751
commit be72e4f37f

@ -154,19 +154,20 @@
v-loading="subFormLoading" label-width="0">
<el-table :data="formData.matItemDOList" class="hl-table">
<el-table-column type="index" label="序号" :width="80" />
<el-table-column prop="matCode" label="物料编码" min-width="120" align="center" />
<el-table-column prop="matId" min-width="140" align="center">
<template #header> <span class="hl-table_header">*</span>物料名称 </template>
<template #header> <span class="hl-table_header">*</span>物料编码 </template>
<template #default="scope">
<el-form-item :prop="`${scope.$index}.matId`" :rules="subFormRules.matId" class="mb-0px!">
<el-select v-model="scope.row.matId" placeholder="物料名称" :remote-method="remoteMatNameSearch"
remote-show-suffix remote clearable reserve-keyword filterable :loading="matSelectLoading"
@change="(val) => handleMatName(scope, val)" class="!w-180px">
<el-option v-for="item in matList" :key="item.id" :label="item.name" :value="item.id" />
<el-option v-for="item in matList" :key="item.id" :label="item.code" :value="item.id" />
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="matName" label="物料名称" min-width="120" align="center" />
<el-table-column prop="matType" label="物料类型" min-width="120" align="center">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_MATERIAL_TYPE" :value="scope.row.matType"
@ -180,31 +181,36 @@
v-if="scope.row.matUnit ? true : false" />
</template>
</el-table-column>
<el-table-column prop="requireAmount" min-width="120" align="center">
<template #header><span class="hl-table_header">*</span>需求数量</template>
<el-table-column prop="purchaseAmount" min-width="120" align="center">
<template #header><span class="hl-table_header">*</span>采购数量</template>
<template #default="scope">
<el-form-item :prop="`${scope.$index}.requireAmount`" :rules="subFormRules.requireAmount" class="mb-0px!">
<el-input v-model="scope.row.requireAmount" />
<el-form-item :prop="`${scope.$index}.purchaseAmount`" :rules="subFormRules.purchaseAmount" class="mb-0px!">
<el-input v-model="scope.row.purchaseAmount" />
</el-form-item>
</template>
</el-table-column>
<el-table-column min-width="150" align="center">
<template #header> <span class="hl-table_header">*</span>需求到货日期 </template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.requireArriveTime`" :rules="subFormRules.requireArriveTime" class="mb-0px!">
<el-date-picker class="!w-265px" v-model="row.requireArriveTime" type="date" value-format="x"
placeholder="需求到货日期" />
<el-table-column prop="estimatedPrice" min-width="120" align="center">
<template #header><span class="hl-table_header">*</span>暂估价金额</template>
<template #default="scope">
<el-form-item :prop="`${scope.$index}.estimatedPrice`" :rules="subFormRules.estimatedPrice" class="mb-0px!">
<el-input v-model="scope.row.estimatedPrice" />
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="actualPrice" min-width="120" align="center">
<template #header>实际价金额</template>
<template #default="scope">
<el-form-item :prop="`${scope.$index}.actualPrice`" class="mb-0px!">
<el-input v-model="scope.row.actualPrice" />
</el-form-item>
</template>
</el-table-column>
<el-table-column min-width="150" align="center">
<template #header><span class="hl-table_header">*</span>子项目编号</template>
<template #header> <span class="hl-table_header">*</span>预计到货日期 </template>
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.projectSubId`" :rules="subFormRules.projectSubId" class="mb-0px!">
<el-select class="!w-265px" v-model="row.projectSubId" filterable clearable>
<el-option v-for="dict in formData.projectOrderSubs" :key="dict.projectSubId"
:label="dict.projectSubCode" :value="dict.projectSubId" />
</el-select>
<el-form-item :prop="`${$index}.arriveTime`" class="mb-0px!">
<el-date-picker class="!w-265px" v-model="row.arriveTime" type="date" value-format="x"
placeholder="预计到货日期" />
</el-form-item>
</template>
</el-table-column>
@ -329,7 +335,7 @@
<script setup lang="ts">
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import * as PurchaseOrderApi from '@/api/heli/purchaseorder'
// import * as MaterialPlanDetailApi from '@/api/heli/materialplandetail'
import * as PurchaseOrderMaterialApi from '@/api/heli/purchaseordermaterial'
import * as UserApi from '@/api/system/user'
import * as MaterialApi from '@/api/heli/material'
import * as SupplierApi from '@/api/heli/supplier'
@ -367,13 +373,12 @@ const formData = ref({
attachments: []
})
const formRules = reactive({
projectPlanId: [{ required: true, message: '生产计划单号不能为空', trigger: 'blur' }],
currencyType: [{ required: true, message: '结算币种不能为空', trigger: 'blur' }],
})
const subFormRules = reactive({
matId: [{ required: true, message: '物料编码不能为空', trigger: 'blur' }],
requireAmount: [{ required: true, message: '需求数量不能为空', trigger: 'blur' }],
requireArriveTime: [{ required: true, message: '需求到货日期不能为空', trigger: 'blur' }],
projectSubId: [{ required: true, message: '子项目编号不能为空', trigger: 'blur' }],
estimatedPrice: [{ required: true, message: '暂估价金额不能为空', trigger: 'blur' }],
purchaseAmount: [{ required: true, message: '采购数量不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
const subFormRef = ref() // Ref
@ -474,7 +479,7 @@ const getMatList = async (name) => {
status: '1'
}
if (name.length > 0) {
matParams.name = name
matParams.code = name
}
const dataMat = await MaterialApi.getMaterialPage(matParams)
matList.value = dataMat.list
@ -501,16 +506,17 @@ const handleMatName = async (scope, matid) => {
const onAddItem = () => {
const newData = {
//
stockId: 0,
purchaseOrderId: 0,
matId: '',
matName: '',
matCode: '',
matType: '',
matSpec: '',
matUnit: '',
requireAmount: '',
requireArriveTime: '',
projectSubId: '',
purchaseAmount: '',
estimatedPrice:'',
actualPrice:'',
arriveTime: '',
description: ''
}
formData.value.matItemDOList.push(newData)
@ -520,27 +526,25 @@ const handleDelete2 = (index: number) => {
formData.value.matItemRemoveList.push(formData.value.matItemDOList[index])
formData.value.matItemDOList.splice(index, 1)
}
const handleInitPlanSub = async () => {
}
//
const saveMaterials = async () =>{
// formData.value.matItemDOList.forEach(item => {
// var subData = item as unknown as MaterialPlanDetailApi.MaterialPlanDetailVO
// subData.materialId = item.matId
// subData.projectMaterialPlanId = formData.value.id
// if (subData.id == undefined) {
// MaterialPlanDetailApi.createMaterialPlanDetail(subData)
// } else {
// MaterialPlanDetailApi.updateMaterialPlanDetail(subData)
// }
// })
// formData.value.matItemRemoveList.forEach(item =>{
// if (item.id != undefined) {
// MaterialPlanDetailApi.deleteMaterialPlanDetail(item.id)
// }
// })
formData.value.matItemDOList.forEach(item => {
var subData = item as unknown as PurchaseOrderMaterialApi.PurchaseOrderMaterialVO
subData.materialId = item.matId
subData.purchaseOrderId = formData.value.id
if (subData.id == undefined) {
PurchaseOrderMaterialApi.createPurchaseOrderMaterial(subData)
} else {
PurchaseOrderMaterialApi.updatePurchaseOrderMaterial(subData)
}
})
formData.value.matItemRemoveList.forEach(item =>{
if (item.id != undefined) {
PurchaseOrderMaterialApi.deletePurchaseOrderMaterial(item.id)
}
})
}
//
const saveForm = async () => {
@ -589,23 +593,31 @@ const submitForm = async () => {
}
const userList = ref<UserApi.UserVO[]>([]) //
const supplierInit = ref()
const matSimpList = ref([]) //
const queryParams = reactive({
pageNo: 1,
pageSize: 99,
purchaseId: query.id,
purchaseOrderId: query.id,
})
//
onMounted(async () => {
//
formData.value = await PurchaseOrderApi.getPurchaseOrder(query.id)
//
matSimpList.value = await MaterialApi.getSimpList()
//
formData.value.matItemDOList = []
//(await MaterialPlanDetailApi.getMaterialPlanDetailPage(queryParams)).list
formData.value.matItemDOList = (await PurchaseOrderMaterialApi.getPurchaseOrderMaterialPage(queryParams)).list
formData.value.matItemDOList.forEach(item=>{
matList.value.push({id:item.matId,name:item.matName})
item.matId = matSimpList.value.find((record) => record.id === item.materialId)?.id
item.matCode = matSimpList.value.find((record) => record.id === item.materialId)?.code
item.matName = matSimpList.value.find((record) => record.id === item.materialId)?.name
item.matSpec = matSimpList.value.find((record) => record.id === item.materialId)?.spec
item.matType = matSimpList.value.find((record) => record.id === item.materialId)?.material_type
item.matUnit = matSimpList.value.find((record) => record.id === item.materialId)?.unit
matList.value.push({id:item.materialId,code:item.matCode})
})
formData.value.matItemRemoveList = []

Loading…
Cancel
Save