导出
const exportFile = async (row: any) => {
let params = { version: row.version }
const data = await reqExportSensitiveContent(params)
if (data.code === 200) {
const blob = base64ToBlob(data.msg, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
downloadBlob(blob, `敏感词库(${dayjs().format('YYYY-MM-DD HH:mm:ss')}).xlsx`)
}
}
function base64ToBlob(base64Data: string, contentType: string) {
contentType = contentType || ''
const sliceSize = 1024
const byteCharacters = atob(base64Data)
const byteArrays = []
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize)
const byteNumbers = new Array(slice.length)
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i)
}
const byteArray = new Uint8Array(byteNumbers)
byteArrays.push(byteArray)
}
const blob = new Blob(byteArrays, { type: contentType })
return blob
}
function downloadBlob(blob, filename) {
const url = window.URL.createObjectURL(blob)
const a = document.createElement('a')
a.style.display = 'none'
a.href = url
a.download = filename
document.body.appendChild(a)
a.click()
window.URL.revokeObjectURL(url)
document.body.removeChild(a)
}
上传
原文件上传
const importFile = async (option: any) => {
const formData = new FormData()
formData.append('file', option.file)
formData.append('text', option.file.name)
nextTick(async () => {
const data = await reqImportSensitiveContent(formData)
if (data.code === 200) {
ElMessage.success('导入成功')
}
})
}
const beforeUpload = async (file: any) => {
const FILE_NAME = file.name
if (FILE_NAME.substring(FILE_NAME.lastIndexOf('.')) !== '.xls' && FILE_NAME.substring(FILE_NAME.lastIndexOf('.')) !== '.xlsx') {
ElMessage.warning('仅支持.xls和.xlsx文件')
return false
}
}
转为base64上传
UploadImage(param) {
let typeImg = param.file.name.split(".")[param.file.name.split(".").length - 1];
let size = param.file.size / 1024;
if (size > 500) {
this.$message.error("图片大小不能超过500kb");
return;
}
if (typeImg != "png" && typeImg != "jpg" && typeImg != "bmp") {
this.$message.error("图片类型必须为png/jpg/bmp");
return;
}
const fileReader = new FileReader();
fileReader.onload = async () => {
let srcData = fileReader.result;
srcData = srcData.split(",")[1];
let data = await reqUploadImage({
imgName: param.file.name,
base64String: srcData,
});
if (data.code == 200) {
this.content.isPicture = 1;
this.changeNr(data.data, param);
this.$message.success("上传成功");
}
};
fileReader.readAsDataURL(param.file);
},