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

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

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

Loading…
Cancel
Save