UPDATE: 重新修改导入被检设备逻辑

This commit is contained in:
贾同学
2025-10-21 14:02:52 +08:00
parent b2db5622bc
commit be84092cfe

View File

@@ -41,9 +41,6 @@
</template> </template>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item v-if="parameter.showCover" label="数据覆盖 :">
<el-switch v-model="isCover" />
</el-form-item>
</el-form> </el-form>
</el-dialog> </el-dialog>
</template> </template>
@@ -52,7 +49,7 @@
import { ref } from 'vue' import { ref } from 'vue'
import { useDownload } from '@/hooks/useDownload' import { useDownload } from '@/hooks/useDownload'
import { Download } from '@element-plus/icons-vue' import { Download } from '@element-plus/icons-vue'
import { ElMessage, ElNotification, UploadRawFile, UploadRequestOptions } from 'element-plus' import { ElMessage, ElNotification, type UploadRawFile, type UploadRequestOptions } from 'element-plus'
export interface ExcelParameterProps { export interface ExcelParameterProps {
title: string // 标题 title: string // 标题
@@ -67,7 +64,7 @@ export interface ExcelParameterProps {
} }
// 是否覆盖数据 // 是否覆盖数据
const isCover = ref(false) const isCover = ref(0)
// 最大文件上传数 // 最大文件上传数
const excelLimit = ref(1) const excelLimit = ref(1)
// dialog状态 // dialog状态
@@ -85,6 +82,7 @@ const emit = defineEmits<{
const acceptParams = (params: ExcelParameterProps) => { const acceptParams = (params: ExcelParameterProps) => {
parameter.value = { ...parameter.value, ...params } parameter.value = { ...parameter.value, ...params }
dialogVisible.value = true dialogVisible.value = true
isCover.value = 0
} }
// Excel 导入模板下载 // Excel 导入模板下载
@@ -92,9 +90,10 @@ const downloadTemp = () => {
if (!parameter.value.tempApi) return if (!parameter.value.tempApi) return
useDownload(parameter.value.tempApi, `${parameter.value.title}模板`, { pattern: parameter.value.patternId }, false) useDownload(parameter.value.tempApi, `${parameter.value.title}模板`, { pattern: parameter.value.patternId }, false)
} }
const currentFile = ref<UploadRequestOptions>(null)
// 文件上传 // 文件上传
const uploadExcel = async (param: UploadRequestOptions) => { const uploadExcel = async (param: UploadRequestOptions) => {
currentFile.value = param
let excelFormData = new FormData() let excelFormData = new FormData()
excelFormData.append('file', param.file) excelFormData.append('file', param.file)
if (parameter.value.patternId) { if (parameter.value.patternId) {
@@ -103,26 +102,43 @@ const uploadExcel = async (param: UploadRequestOptions) => {
excelFormData.append('planId', parameter.value.planId) excelFormData.append('planId', parameter.value.planId)
isCover.value && excelFormData.append('isCover', isCover.value as unknown as Blob) excelFormData.append('cover', isCover.value as unknown as Blob)
//await parameter.value.importApi!(excelFormData); //await parameter.value.importApi!(excelFormData);
await parameter.value.importApi!(excelFormData).then(res => handleImportResponse(res)) const res = await parameter.value.importApi!(excelFormData)
await handleImportResponse(res)
parameter.value.getTableList && parameter.value.getTableList() parameter.value.getTableList && parameter.value.getTableList()
dialogVisible.value = false dialogVisible.value = false
} }
async function handleImportResponse(res: any) { async function handleImportResponse(res: any) {
if (res.type === 'application/json') { if (res.type === 'application/json') {
const fileReader = new FileReader() const fileReader = new FileReader()
fileReader.onloadend = () => { fileReader.onloadend = () => {
try { try {
const jsonData = JSON.parse(fileReader.result) const jsonData = JSON.parse(fileReader.result)
if (jsonData.code === 'A0000') { if (jsonData.code === 'A0000') {
isCover.value = 0
ElMessage.success('导入成功') ElMessage.success('导入成功')
} else { } else {
if (jsonData.code === 'A02099') {
const dev = jsonData.data.join('<br>')
ElMessageBox.confirm(`<p>以下被检设备已存在,${jsonData.message}</p><p>${dev}</p>`, {
confirmButtonText: '确定',
cancelButtonText: '取消',
dangerouslyUseHTMLString: true,
title: '提示',
type: 'warning'
}).then(() => {
isCover.value = 1
if (currentFile.value) {
uploadExcel(currentFile.value)
}
})
return
}
ElMessageBox.alert(jsonData.message, { ElMessageBox.alert(jsonData.message, {
confirmButtonText: '确定',
title: '导入结果', title: '导入结果',
type: 'error' type: 'error'
}) })