|
|
|
@ -13,7 +13,7 @@
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="name" label="入库单号">
|
|
|
|
|
<el-input v-model="formData.stockNo" disabled />
|
|
|
|
|
<el-input v-model="formData.stockNo" disabled placeholder="系统自动生成" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
@ -32,8 +32,8 @@
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="name" label="单号日期">
|
|
|
|
|
<el-input v-model="formData.name" disabled />
|
|
|
|
|
<el-form-item label="单据日期" prop="createTime">
|
|
|
|
|
{{ formatDate(formData.createTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
@ -92,9 +92,9 @@
|
|
|
|
|
<el-table :data="formData.productBomItemDOList" class="hl-table" @cell-click="handleCellClick"
|
|
|
|
|
@cell-blur="handleCellBlur">
|
|
|
|
|
<el-table-column prop="cid" label="序号" :width="80" />
|
|
|
|
|
<el-table-column prop="matCode" label="物料编码" required>
|
|
|
|
|
<el-table-column prop="matId" label="物料编码" required>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-select v-model="scope.row.matCode" placeholder="物料编码" :remote-method="remoteMatCodeSearch"
|
|
|
|
|
<el-select v-model="scope.row.matId" placeholder="物料编码" :remote-method="remoteMatCodeSearch"
|
|
|
|
|
remote-show-suffix remote clearable reserve-keyword filterable :loading="matSelectLoading"
|
|
|
|
|
@change="(val) => handleMatCode(scope, val)" class="!w-180px">
|
|
|
|
|
<el-option v-for="item in matList" :key="item.id" :label="item.code" :value="item.id" />
|
|
|
|
@ -231,36 +231,36 @@
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="creator" label="创建人">
|
|
|
|
|
<el-input v-model="formData.creator" class="!w-300px" disabled />
|
|
|
|
|
{{ userList.find((user) => user.id == formData.creator)?.nickname }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="createTime" label="创建时间">
|
|
|
|
|
<el-input v-model="formData.createTime" class="!w-300px" disabled />
|
|
|
|
|
{{ formatDate(formData.createTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="keeper" label="入库人">
|
|
|
|
|
<el-input v-model="formData.keeper" class="!w-300px" disabled />
|
|
|
|
|
{{ userList.find((user) => user.id == formData.keeper)?.nickname }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="keeperTime" label="入库时间">
|
|
|
|
|
<el-input v-model="formData.keeperTime" class="!w-300px" disabled />
|
|
|
|
|
{{ formatDate(formData.keeperTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="outbound" label="作废人">
|
|
|
|
|
<el-input v-model="formData.outbound" class="!w-300px" disabled />
|
|
|
|
|
{{ userList.find((user) => user.id == formData.outbound)?.nickname }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="outboundTime" label="作废时间">
|
|
|
|
|
<el-input v-model="formData.outboundTime" class="!w-300px" disabled />
|
|
|
|
|
{{ formatDate(formData.outboundTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
@ -277,7 +277,7 @@
|
|
|
|
|
<script setup lang="ts">
|
|
|
|
|
import { ref } from 'vue'
|
|
|
|
|
|
|
|
|
|
import { dateFormatter } from "@/utils/formatTime"
|
|
|
|
|
import { dateFormatter, formatDate } from "@/utils/formatTime"
|
|
|
|
|
import type { UploadUserFile } from 'element-plus'
|
|
|
|
|
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
|
|
|
|
|
import * as StorageApi from '@/api/heli/storage'
|
|
|
|
@ -290,6 +290,7 @@ import * as RgApi from '@/api/heli/rg'
|
|
|
|
|
import * as PnApi from '@/api/heli/pn'
|
|
|
|
|
import { deleteFile, downloadFile } from "@/api/infra/file"
|
|
|
|
|
import download from "@/utils/download"
|
|
|
|
|
import * as UserApi from "@/api/system/user";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const { t } = useI18n() // 国际化
|
|
|
|
@ -330,6 +331,8 @@ const formRules = reactive({
|
|
|
|
|
})
|
|
|
|
|
const formRef = ref() // 表单 Ref
|
|
|
|
|
|
|
|
|
|
const userList = ref<UserApi.UserVO[]>([]) // 用户列表
|
|
|
|
|
|
|
|
|
|
// ====================附件信息 开始=======================================
|
|
|
|
|
const uploadUrl = ref(import.meta.env.VITE_UPLOAD_BATCH_URL)
|
|
|
|
|
const matUploadRef = ref();
|
|
|
|
@ -408,16 +411,21 @@ const submitForm = async () => {
|
|
|
|
|
try {
|
|
|
|
|
const data = formData.value as unknown as StorageApi.StorageVO
|
|
|
|
|
if (router.query.type === 'create') {
|
|
|
|
|
|
|
|
|
|
//库存信息保存
|
|
|
|
|
storageid.value = await StorageApi.createStorage(data)
|
|
|
|
|
|
|
|
|
|
//物料信息保存
|
|
|
|
|
formData.value.productBomItemDOList.forEach(item => {
|
|
|
|
|
item.stockId = storageid.value
|
|
|
|
|
item.whId = formData.value.whId
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const dataMats = formData.value.productBomItemDOList as unknown as StorageMatApi.StorageMatVO[]
|
|
|
|
|
await StorageMatApi.createStorageMatBatch(dataMats)
|
|
|
|
|
|
|
|
|
|
var aa = await StorageMatApi.createStorageMatBatch(dataMats)
|
|
|
|
|
//附件信息保存
|
|
|
|
|
matUploadFiles.value = { 'businessType': 'STORAGE', 'businessId': storageid, 'businessFileType': '' }
|
|
|
|
|
matUploadFiles.value?.submit()
|
|
|
|
|
|
|
|
|
|
message.success(t('common.createSuccess'))
|
|
|
|
|
} else {
|
|
|
|
@ -432,7 +440,7 @@ const submitForm = async () => {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const goback = () => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var matCount = 1
|
|
|
|
@ -560,7 +568,7 @@ const remoteMatCodeSearch = async (query) => {
|
|
|
|
|
const handleMatCode = async (scope, matid) => {
|
|
|
|
|
|
|
|
|
|
if (matid) {
|
|
|
|
|
const matVo = await MaterialApi.getMaterial(scope.row.matCode)
|
|
|
|
|
const matVo = await MaterialApi.getMaterial(scope.row.matId)
|
|
|
|
|
scope.row.matId = matVo.id
|
|
|
|
|
scope.row.matName = matVo.name
|
|
|
|
|
scope.row.matSpec = matVo.spec
|
|
|
|
@ -588,6 +596,40 @@ onMounted(async () => {
|
|
|
|
|
const data = await WarehouseApi.getWarehouseSimpList()
|
|
|
|
|
warehouseList.value = data
|
|
|
|
|
//-------------------
|
|
|
|
|
if (router.query.id) {
|
|
|
|
|
//获取库存信息
|
|
|
|
|
formData.value = await StorageApi.getStorage(router.query.id)
|
|
|
|
|
|
|
|
|
|
//获取库存物料列表信息
|
|
|
|
|
const queryParamsMat = reactive({
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
pageSize: 99,
|
|
|
|
|
stockId: router.query.id
|
|
|
|
|
})
|
|
|
|
|
const dataMats = await StorageMatApi.getStorageMatPage(queryParamsMat)
|
|
|
|
|
formData.value.productBomItemDOList = dataMats.list
|
|
|
|
|
|
|
|
|
|
//获取原始物料信息
|
|
|
|
|
const queryParamsMat2 = reactive({
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
pageSize: 99,
|
|
|
|
|
status: 1
|
|
|
|
|
})
|
|
|
|
|
const matVos = await MaterialApi.getMaterialPage(queryParamsMat2)
|
|
|
|
|
|
|
|
|
|
formData.value.productBomItemDOList.forEach(item => {
|
|
|
|
|
item.matId = matVos.list.find( (record) => record.id === item.matId)?.id
|
|
|
|
|
//item.matCode = matVos.list.find( (record) => record.id === item.matId)?.id
|
|
|
|
|
item.matName = matVos.list.find( (record) => record.id === item.matId)?.name
|
|
|
|
|
item.matSpec = matVos.list.find( (record) => record.id === item.matId)?.spec
|
|
|
|
|
item.matType = matVos.list.find( (record) => record.id === item.matId)?.materialType
|
|
|
|
|
item.matUnit = matVos.list.find( (record) => record.id === item.matId)?.unit
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
//物料编码信息初始化
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
userList.value = await UserApi.getSimpleUserList()
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
</script>
|
|
|
|
|