1a551fca by lihua

泛化文件数据显示

1 parent df370175
......@@ -98,6 +98,13 @@ export const updateGeneralizeFile = (data) => request({
data
})
/** 获取泛化文件解析结果 */
export const parseGeneralizeFileData = (data) => request({
url: `${import.meta.env.VITE_APP_ANONYMIZATION_BASEURL}/generalize-file/parse-file`,
method: 'post',
data
})
/** --------- 敏感数据识别接口 ------------------- */
......
......@@ -5,6 +5,7 @@ import {
getGeneralizeFileDetail,
updateGeneralizeFile,
deleteGeneralizeFile,
parseGeneralizeFileData,
} from '@/api/modules/dataAnonymization';
import {
parseAndDecodeUrl,
......@@ -106,47 +107,63 @@ const fileTableData: any = ref([]);
const parseFileData = (fileRaw) => {
fileFieldLoading.value = true;
fileRaw.arrayBuffer().then((f) => {
const wb = XLSX.read(f, {
raw: false, cellDates: true
});
const sheet = wb.Sheets[wb.SheetNames[0]];
const json: any[] = XLSX.utils.sheet_to_json(sheet, { header: 1 });
if (json.length == 0) {
fileTableFields.value = [];
fileTableData.value = [];
} else {
fileTableFields.value = json[0]?.map((j, index) => {
return {
index: index,
enName: j + '',
chName: j + '',
dataType: 'varchar'
}
}) || [];
if (json.length > 1) {
fileTableData.value = json.slice(1, 51).map((info, row) => {
let object = {};
json[0].forEach((name, col) => {
if (info[col] === "" || info[col] == null) {
object[name] = info[col];
} else {
var cellRef = XLSX.utils.encode_cell({ r: row + 1, c: col });
var cell = sheet[cellRef];
object[name] = cell.w || info[col];
let isNum = cell.t == 'n';
if (isNum && fileTableFields.value[col].dataType != 'int') {
fileTableFields.value[col].dataType = 'int';
}
}
});
return object;
let file = fileFormItems.value[0].default;
parseGeneralizeFileData({
name: file[0]?.name,
url: file[0]?.url
}).then((res: any) => {
fileFieldLoading.value = false;
if (res?.code == proxy.$passCode) {
let result = res.data?.fileDataRQVOS || [];
let resultFields = res.data?.sheetHeader || [];
fileRaw.arrayBuffer().then((f) => {
const wb = XLSX.read(f, {
raw: false, cellDates: true
});
} else {
fileTableData.value = [];
}
const sheet = wb.Sheets[wb.SheetNames[0]];
const json: any[] = XLSX.utils.sheet_to_json(sheet, { header: 1 });
if (json.length == 0) {
fileTableFields.value = [];
fileTableData.value = [];
} else {
fileTableFields.value = resultFields?.map((j, index) => {
return {
index: index,
enName: j.enName + '',
chName: j.chName + '',
dataType: 'varchar'
}
}) || [];
if (json.length > 1) {
json.slice(1, 20).map((info, row) => {
let object = {};
json[0].forEach((name, col) => {
if (info[col] === "" || info[col] == null) {
object[name] = info[col];
} else {
var cellRef = XLSX.utils.encode_cell({ r: row + 1, c: col });
var cell = sheet[cellRef];
object[name] = cell.w || info[col];
let isNum = cell.t == 'n';
if (isNum && fileTableFields.value[col].dataType != 'int') {
fileTableFields.value[col].dataType = 'int';
}
}
});
return object;
});
fileTableData.value = result.slice(0, 50)?.map(d => {
return d.fileData || {};
})
} else {
fileTableData.value = [];
}
}
fileFieldLoading.value = false;
});
} else {
proxy.$ElMessage.error(res.msg);
}
fileFieldLoading.value = false;
});
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!