diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageForm.vue
index cc736e86..1f5b8a81 100644
--- a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageForm.vue
+++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageForm.vue
@@ -9,7 +9,7 @@
-
+
@@ -28,8 +28,7 @@
-
+
@@ -40,8 +39,7 @@
-
+
@@ -59,8 +57,7 @@
-
+
@@ -94,17 +91,14 @@
新增
-
+
物料编码
- handleMatCode(scope, val)" class="!w-180px">
+ handleMatCode(scope, val)" class="!w-180px">
@@ -113,16 +107,14 @@
-
+
-
+
@@ -140,8 +132,7 @@
-
+
@@ -149,21 +140,20 @@
入库数量
-
-
+
+
-
+
-
+
@@ -193,12 +183,10 @@
-
+ }" name="files" :show-file-list="false" :auto-upload="false" :data="matUploadData" :on-change="matUploadChange" :on-error="UpError" class="upload-file-uploader">
上传
@@ -215,12 +203,10 @@
-
+
删除
-
+
下载
@@ -276,11 +262,11 @@
@@ -303,6 +289,7 @@ import * as PnApi from '@/api/heli/pn'
import { deleteFile, downloadFile, getFilePage } from '@/api/infra/file'
import download from '@/utils/download'
import * as UserApi from '@/api/system/user'
+import { log } from 'console'
const reload = inject('reload')
@@ -353,8 +340,6 @@ const subFormRules = reactive({
// 提交、作废按钮数据状态提交
const handleStatus = async (num) => {
-
-
// 校验表单
await formRef.value.validate()
if (formData.value.matItemDOList.length === 0) {
@@ -368,9 +353,9 @@ const handleStatus = async (num) => {
return
}
// 提示用户是否保存入库信息
- await message.confirm('确认'+(num==2?'提交':'作废')+'入库信息?')
+ await message.confirm('确认' + (num == 2 ? '提交' : '作废') + '入库信息?')
formData.value.status = num
-
+
//保存表单数据
await saveFormData()
@@ -387,7 +372,7 @@ const handleStatus = async (num) => {
message.success(t('common.updateSuccess'))
query.id = formData.value.id
- query.type= 'update'
+ query.type = 'update'
reload()
}
@@ -405,6 +390,7 @@ const handleStockType = async (typeid) => {
const uploadUrl = ref(import.meta.env.VITE_UPLOAD_BATCH_URL)
const matUploadRef = ref()
const matUploadFiles = ref([])
+const failedAttachments = ref([])
const matUploadData = ref({
businessType: 'STORAGE',
businessId: formData.value.id,
@@ -415,21 +401,56 @@ const matUploadChange = (file, files) => {
refreshAttachments(files, 'MATERIAL')
}
+const failedAttachmentsName = ref()
+const UpError = (err, file, fileList) => {
+ // 当有上传错误时
+ if (err) {
+ // 将失败的附件添加到failedAttachments.value数组中
+ failedAttachments.value.push(file)
+ // console.log(failedAttachments.value);
+ failedAttachmentsName.value = failedAttachments.value.map((value) => value.name)
+ }
+}
+
+const openerror = () => {
+ setTimeout(() => {
+ // 弹出错误信息提示框
+ ElMessageBox.alert(
+ // 使用错误信息作为提示内容
+ `文件名为:${failedAttachmentsName.value}的上传失败`,
+ `文件格式不正确或网络问题 请您稍微再试`,
+ {
+ dangerouslyUseHTMLString: false, // 由于我们不是使用HTML字符串,所以这里设置为false
+ confirmButtonText: '知道了',
+ center: true
+ }
+ )
+ }, 1000)
+}
+
const refreshAttachments = (files, type) => {
- formData.value.attachments = formData.value.attachments.filter((value, index, array) => {
- return value.id
- })
- for (let i = 0; i < files.length; i++) {
- let file = files[i]
+ formData.value.attachments = formData.value.attachments.filter((value) => value.id)
+
+ // 避免重复添加
+ const newFiles = files.filter(
+ (file) => !formData.value.attachments.some((att) => att.name === file.name)
+ )
+
+ for (let i = 0; i < newFiles.length; i++) {
+ let file = newFiles[i]
file.businessFileType = type
file.createTime = new Date()
formData.value.attachments.push(file)
}
+
// 排序
- formData.value.attachments.sort((v1, v2) => {
- return v1.createTime - v2.createTime > 0
- })
+ formData.value.attachments.sort((v1, v2) => v1.createTime - v2.createTime)
}
+
+const open = () => {
+ failedAttachmentsName.value = []
+}
+
// 删除附件
const handleDeleteAttachment = async (index, type) => {
const deletedAttachments = formData.value.attachments.splice(index, 1)
@@ -487,39 +508,39 @@ const saveFormData = async () => {
}
await initStatus(formData.value.status)
//formData.value = await StorageApi.getStorage(formData.value.id)
+
message.success(t(commonResult))
} finally {
formLoading.value = false
}
}
const submitForm = async () => {
+ // 校验表单
+ await formRef.value.validate()
-
- // 校验表单
- await formRef.value.validate()
+ // if (formData.value.matItemDOList.length === 0) {
+ // message.alertWarning('请添加物料信息!')
+ // return
+ // }
+
+ // 校验子表单
+ try {
+ await matSubFormRef.value.validate()
+ } catch (e) {
+ return
+ }
+ // // 提示用户是否保存入库信息
+ // await message.confirm('确认保存入库信息?')
+ //保存表单数据
+ await saveFormData()
- // if (formData.value.matItemDOList.length === 0) {
- // message.alertWarning('请添加物料信息!')
- // return
- // }
+ // 成功后刷新
+ query.id = formData.value.id
+ query.type = 'update'
+ //页面重新加载
+ openerror()
- // 校验子表单
- try {
- await matSubFormRef.value.validate()
- } catch (e) {
- return
- }
- // // 提示用户是否保存入库信息
- // await message.confirm('确认保存入库信息?')
- //保存表单数据
- await saveFormData()
-
- // 成功后刷新
- query.id = formData.value.id
- query.type = 'update'
- //页面重新加载
- reload()
-
+ reload()
}
var matCount = 1
@@ -563,7 +584,7 @@ const handleWh = async (wid) => {
//-------------------库区全数据
// 获得库区列表
const dataRgList = await RgApi.getSimpList()
- rgList.value = dataRgList.filter( rg => rg.wh_id == wid)
+ rgList.value = dataRgList.filter((rg) => rg.wh_id == wid)
formData.value.matItemDOList.forEach((item) => {
item.rgId = ''
@@ -575,7 +596,7 @@ const handleRg = async (scope) => {
//-------------------库位全数据
const dataPnList = await PnApi.getSimpList()
scope.row.pnid = ''
- scope.row.pnlist = dataPnList.filter( pn => pn.rg_id == scope.row.rgId)
+ scope.row.pnlist = dataPnList.filter((pn) => pn.rg_id == scope.row.rgId)
//-------------------
}
@@ -598,7 +619,7 @@ const remoteMatCodeSearch = async (code) => {
// 选中物料编码时,列表中数据
const handleMatCode = async (scope, matid) => {
if (matid) {
- const matVo = matSimpList.value.find( (item) => item.id == scope.row.matId)
+ const matVo = matSimpList.value.find((item) => item.id == scope.row.matId)
scope.row.matId = matVo.id
scope.row.matName = matVo.name
scope.row.matCode = matVo.code
@@ -624,15 +645,15 @@ const btnSave = ref(true)
const btnCancel = ref(false)
// 根据页面动作和数据状态控制按钮输入框信息
-const initStatus = async (status) =>{
- switch(status){
+const initStatus = async (status) => {
+ switch (status) {
case 1:
ctrView.value = false
ctrSave.value = false
ctrCancel.value = true
ctrDelete.value = false
- btnSave.value= true
+ btnSave.value = true
btnCancel.value = false
break
case 2:
@@ -640,7 +661,7 @@ const initStatus = async (status) =>{
ctrSave.value = true
ctrCancel.value = false
ctrDelete.value = true
- btnSave.value= false
+ btnSave.value = false
btnCancel.value = true
break
case 3:
@@ -648,31 +669,30 @@ const initStatus = async (status) =>{
ctrSave.value = true
ctrCancel.value = true
ctrDelete.value = true
- btnSave.value= false
+ btnSave.value = false
btnCancel.value = false
break
default:
break
}
// 查看页面时可操作控件禁用
- if(query.type === 'review'){
- ctrView.value = true
- ctrSave.value = true
- ctrCancel.value = true
- ctrDelete.value = true
-
- btnSave.value= false
- btnCancel.value = false
+ if (query.type === 'review') {
+ ctrView.value = true
+ ctrSave.value = true
+ ctrCancel.value = true
+ ctrDelete.value = true
+
+ btnSave.value = false
+ btnCancel.value = false
}
-}
+}
const userList = ref([]) // 用户列表
const matSimpList = ref([]) // 物料基本信息列表
/** 初始化 **/
onMounted(async () => {
-
// 页面标题展示
dialogTitle.value = query.type === 'review' ? '查看' : t('action.' + query.type)
-
+
//- 获取仓库全数据
whList.value = await WarehouseApi.getWarehouseSimpList()
@@ -691,11 +711,11 @@ onMounted(async () => {
// 获得库区列表
const dataRgList = await RgApi.getSimpList()
- rgList.value = dataRgList.filter( rg => rg.wh_id == formData.value.whId)
+ rgList.value = dataRgList.filter((rg) => rg.wh_id == formData.value.whId)
// 获得库区列表
const dataPnList = await PnApi.getSimpList()
- pnList.value = dataPnList.filter( pn => pn.wh_id == formData.value.whId)
+ pnList.value = dataPnList.filter((pn) => pn.wh_id == formData.value.whId)
// 获取库存物料列表信息
const queryParamsMat = reactive({
@@ -709,7 +729,7 @@ onMounted(async () => {
formData.value.matItemDOList.forEach((item) => {
item.cid = matCount
item.matId = matSimpList.value.find((record) => record.id === item.matId)?.id
- item.matCode = matSimpList.value.find( (record) => record.id === item.matId)?.code
+ item.matCode = matSimpList.value.find((record) => record.id === item.matId)?.code
item.matName = matSimpList.value.find((record) => record.id === item.matId)?.name
item.matSpec = matSimpList.value.find((record) => record.id === item.matId)?.spec
item.matType = matSimpList.value.find((record) => record.id === item.matId)?.material_type
@@ -727,7 +747,7 @@ onMounted(async () => {
}
formData.value.attachments = (await getFilePage(attParams)).list
}
-
+
//用户信息,用于底部数据展示
userList.value = await UserApi.getSimpleUserList()
})