202501-Wms-Kate-Wuxi/dev_wms_client/src/excel/UploadExcelProduct.vue
liang e41905ab78 1. 增加导入配料单的数量提示。
2. 减去配料单物料描述的非空筛选。
3. 增加拣选界面的盘点任务遗留查询。
2025-04-14 09:06:15 +08:00

95 lines
2.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<el-upload ref="uploadRef" :on-preview="previewFile" :limit="1" :on-change="changeFile" :auto-upload="false"
:data="uploadForm.data">
<template #trigger>
<el-button type="primary">选取非服务件配料单文件</el-button>
</template>
<el-button style="margin-left: 10px;" type="success" @click="uploadProduct">上传非服务件配料清单</el-button>
</el-upload>
</template>
<script setup>
import store from '@/store'
import {ref, reactive} from 'vue';
import {uploadExcelProduct} from '@/api/excel.js'
import {errorBox, successBox} from '@/utils/myMessageBox';
import {sizeFormatter} from '@/utils/formatter.js'
import {loading} from '@/utils/loading.js'
import {getHashString} from '@/utils/hashUtils.js'
var currentHash = ''
const file = ref()
const uploadForm = reactive({
data: {
fileId: '',
name: '',
type: '',
size: null,
hash: '',
userName: store.getters.getUserName
}
})
const changeFile = (uploadFile) => {
file.value = uploadFile
uploadForm.data = {
fileId: file.value.raw.uid,
name: file.value.raw.name,
type: file.value.raw.type,
size: sizeFormatter(file.value.raw.size),
hash: getHashString(uploadFile),
userName: store.getters.getUserName
}
}
const uploadRef = ref()
const uploadProduct = () => {
if (uploadForm == undefined || file.value == undefined) {
errorBox('请选择文件之后再上传')
return
}
if (currentHash != '' && currentHash == uploadForm.data.hash) {
errorBox('请勿重复上传')
return
}
currentHash = uploadForm.data.hash
const jsonStr = JSON.stringify(uploadForm.data);
const blob = new Blob([jsonStr], {
type: 'application/json'
});
let formData = new FormData();
// 这里很重要 file.value.raw才是真实的file文件file.value只是一个Proxy代理对象
formData.append("fileVo", blob);
formData.append("file", file.value.raw);
loading.open('导入中...')
uploadExcelProduct(formData).then(res => {
loading.close()
currentHash = ''
if (res.data.code == 0) {
successBox(res.data.message)
clearFileInfos()
} else {
errorBox(res.data.message)
}
}).catch(err => {
loading.close()
currentHash = ''
console.log(err)
errorBox('上传错误')
})
}
const clearFileInfos = () => {
// 清空选择的文件项
uploadRef.value.clearFiles()
uploadForm.data = {
fileId: '',
name: '',
type: '',
size: null,
hash: '',
userName: store.getters.getUserName
}
file.value = undefined
}
const previewFile = () => {
}
</script>
<style scoped></style>