UPDATE: 重新修改导入被检设备逻辑
This commit is contained in:
@@ -41,9 +41,6 @@
|
||||
</template>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="parameter.showCover" label="数据覆盖 :">
|
||||
<el-switch v-model="isCover" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@@ -52,7 +49,7 @@
|
||||
import { ref } from 'vue'
|
||||
import { useDownload } from '@/hooks/useDownload'
|
||||
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 {
|
||||
title: string // 标题
|
||||
@@ -67,7 +64,7 @@ export interface ExcelParameterProps {
|
||||
}
|
||||
|
||||
// 是否覆盖数据
|
||||
const isCover = ref(false)
|
||||
const isCover = ref(0)
|
||||
// 最大文件上传数
|
||||
const excelLimit = ref(1)
|
||||
// dialog状态
|
||||
@@ -85,6 +82,7 @@ const emit = defineEmits<{
|
||||
const acceptParams = (params: ExcelParameterProps) => {
|
||||
parameter.value = { ...parameter.value, ...params }
|
||||
dialogVisible.value = true
|
||||
isCover.value = 0
|
||||
}
|
||||
|
||||
// Excel 导入模板下载
|
||||
@@ -92,9 +90,10 @@ const downloadTemp = () => {
|
||||
if (!parameter.value.tempApi) return
|
||||
useDownload(parameter.value.tempApi, `${parameter.value.title}模板`, { pattern: parameter.value.patternId }, false)
|
||||
}
|
||||
|
||||
const currentFile = ref<UploadRequestOptions>(null)
|
||||
// 文件上传
|
||||
const uploadExcel = async (param: UploadRequestOptions) => {
|
||||
currentFile.value = param
|
||||
let excelFormData = new FormData()
|
||||
excelFormData.append('file', param.file)
|
||||
if (parameter.value.patternId) {
|
||||
@@ -103,26 +102,43 @@ const uploadExcel = async (param: UploadRequestOptions) => {
|
||||
|
||||
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).then(res => handleImportResponse(res))
|
||||
const res = await parameter.value.importApi!(excelFormData)
|
||||
await handleImportResponse(res)
|
||||
|
||||
parameter.value.getTableList && parameter.value.getTableList()
|
||||
dialogVisible.value = false
|
||||
}
|
||||
|
||||
async function handleImportResponse(res: any) {
|
||||
|
||||
|
||||
if (res.type === 'application/json') {
|
||||
const fileReader = new FileReader()
|
||||
fileReader.onloadend = () => {
|
||||
try {
|
||||
const jsonData = JSON.parse(fileReader.result)
|
||||
if (jsonData.code === 'A0000') {
|
||||
isCover.value = 0
|
||||
ElMessage.success('导入成功')
|
||||
} 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, {
|
||||
confirmButtonText: '确定',
|
||||
title: '导入结果',
|
||||
type: 'error'
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user