UPDATE: 重新修改导入被检设备逻辑
This commit is contained in:
@@ -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'
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user