1a551fca by lihua

泛化文件数据显示

1 parent df370175
...@@ -98,6 +98,13 @@ export const updateGeneralizeFile = (data) => request({ ...@@ -98,6 +98,13 @@ export const updateGeneralizeFile = (data) => request({
98 data 98 data
99 }) 99 })
100 100
101 /** 获取泛化文件解析结果 */
102 export const parseGeneralizeFileData = (data) => request({
103 url: `${import.meta.env.VITE_APP_ANONYMIZATION_BASEURL}/generalize-file/parse-file`,
104 method: 'post',
105 data
106 })
107
101 108
102 /** --------- 敏感数据识别接口 ------------------- */ 109 /** --------- 敏感数据识别接口 ------------------- */
103 110
......
...@@ -5,6 +5,7 @@ import { ...@@ -5,6 +5,7 @@ import {
5 getGeneralizeFileDetail, 5 getGeneralizeFileDetail,
6 updateGeneralizeFile, 6 updateGeneralizeFile,
7 deleteGeneralizeFile, 7 deleteGeneralizeFile,
8 parseGeneralizeFileData,
8 } from '@/api/modules/dataAnonymization'; 9 } from '@/api/modules/dataAnonymization';
9 import { 10 import {
10 parseAndDecodeUrl, 11 parseAndDecodeUrl,
...@@ -106,47 +107,63 @@ const fileTableData: any = ref([]); ...@@ -106,47 +107,63 @@ const fileTableData: any = ref([]);
106 107
107 const parseFileData = (fileRaw) => { 108 const parseFileData = (fileRaw) => {
108 fileFieldLoading.value = true; 109 fileFieldLoading.value = true;
109 fileRaw.arrayBuffer().then((f) => { 110 let file = fileFormItems.value[0].default;
110 const wb = XLSX.read(f, { 111 parseGeneralizeFileData({
111 raw: false, cellDates: true 112 name: file[0]?.name,
112 }); 113 url: file[0]?.url
113 const sheet = wb.Sheets[wb.SheetNames[0]]; 114 }).then((res: any) => {
114 const json: any[] = XLSX.utils.sheet_to_json(sheet, { header: 1 }); 115 fileFieldLoading.value = false;
115 if (json.length == 0) { 116 if (res?.code == proxy.$passCode) {
116 fileTableFields.value = []; 117 let result = res.data?.fileDataRQVOS || [];
117 fileTableData.value = []; 118 let resultFields = res.data?.sheetHeader || [];
118 } else { 119 fileRaw.arrayBuffer().then((f) => {
119 fileTableFields.value = json[0]?.map((j, index) => { 120 const wb = XLSX.read(f, {
120 return { 121 raw: false, cellDates: true
121 index: index,
122 enName: j + '',
123 chName: j + '',
124 dataType: 'varchar'
125 }
126 }) || [];
127 if (json.length > 1) {
128 fileTableData.value = json.slice(1, 51).map((info, row) => {
129 let object = {};
130 json[0].forEach((name, col) => {
131 if (info[col] === "" || info[col] == null) {
132 object[name] = info[col];
133 } else {
134 var cellRef = XLSX.utils.encode_cell({ r: row + 1, c: col });
135 var cell = sheet[cellRef];
136 object[name] = cell.w || info[col];
137 let isNum = cell.t == 'n';
138 if (isNum && fileTableFields.value[col].dataType != 'int') {
139 fileTableFields.value[col].dataType = 'int';
140 }
141 }
142 });
143 return object;
144 }); 122 });
145 } else { 123 const sheet = wb.Sheets[wb.SheetNames[0]];
146 fileTableData.value = []; 124 const json: any[] = XLSX.utils.sheet_to_json(sheet, { header: 1 });
147 } 125 if (json.length == 0) {
126 fileTableFields.value = [];
127 fileTableData.value = [];
128 } else {
129 fileTableFields.value = resultFields?.map((j, index) => {
130 return {
131 index: index,
132 enName: j.enName + '',
133 chName: j.chName + '',
134 dataType: 'varchar'
135 }
136 }) || [];
137 if (json.length > 1) {
138 json.slice(1, 20).map((info, row) => {
139 let object = {};
140 json[0].forEach((name, col) => {
141 if (info[col] === "" || info[col] == null) {
142 object[name] = info[col];
143 } else {
144 var cellRef = XLSX.utils.encode_cell({ r: row + 1, c: col });
145 var cell = sheet[cellRef];
146 object[name] = cell.w || info[col];
147 let isNum = cell.t == 'n';
148 if (isNum && fileTableFields.value[col].dataType != 'int') {
149 fileTableFields.value[col].dataType = 'int';
150 }
151 }
152 });
153 return object;
154 });
155 fileTableData.value = result.slice(0, 50)?.map(d => {
156 return d.fileData || {};
157 })
158 } else {
159 fileTableData.value = [];
160 }
161 }
162 fileFieldLoading.value = false;
163 });
164 } else {
165 proxy.$ElMessage.error(res.msg);
148 } 166 }
149 fileFieldLoading.value = false;
150 }); 167 });
151 } 168 }
152 169
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!