9ca12c6e by lihua

fix: 修复匿名化处理问题

1 parent 2aa32e0f
......@@ -437,40 +437,49 @@ const parseFileData = (fileRaw) => {
sampleTableFields.value = [];
sampleTableData.value = [];
} else {
const res = await chTransformEn(json[0]);
let fields = res.data || [];
sampleTableFields.value = fields?.map((j, index) => {
return {
index: index,
enName: j.enName + '',
chName: j.chName + '',
dataType: 'varchar'
try {
const res: any = await chTransformEn(json[0]);
if (res?.code != proxy.$passCode) {
sampleTableDataLoading.value = false;
proxy.$ElMessage.error(res.msg);
return;
}
}) || [];
parseFileDataSum.value = json;
/** 粗略算出字段类型 */
json.slice(1, 10).forEach((info, row) => {
json[0].forEach((name, col) => {
if (info[col] === "" || info[col] == null || sampleTableFields.value[col].dataType != 'varchar') {
return;
} else {
var cellRef = XLSX.utils.encode_cell({ r: row + 1, c: col });
var cell = sheet[cellRef];
let v = cell.w || info[col];
let isNum = cell.t == 'n';
if (isNum) {
if (v.includes('.') && sampleTableFields.value[col].dataType != 'decimal') {
sampleTableFields.value[col].dataType = 'decimal';
} else {
sampleTableFields.value[col].dataType = 'int';
let fields = res.data || [];
sampleTableFields.value = fields?.map((j, index) => {
return {
index: index,
enName: j.enName + '',
chName: j.chName + '',
dataType: 'varchar'
}
}) || [];
parseFileDataSum.value = json;
/** 粗略算出字段类型 */
json.slice(1, 10).forEach((info, row) => {
json[0].forEach((name, col) => {
if (info[col] === "" || info[col] == null || sampleTableFields.value[col].dataType != 'varchar') {
return;
} else {
var cellRef = XLSX.utils.encode_cell({ r: row + 1, c: col });
var cell = sheet[cellRef];
let v = cell.w || info[col];
let isNum = cell.t == 'n';
if (isNum) {
if (v.includes('.') && sampleTableFields.value[col].dataType != 'decimal') {
sampleTableFields.value[col].dataType = 'decimal';
} else {
sampleTableFields.value[col].dataType = 'int';
}
}
}
}
});
})
transferSampleData();
});
})
transferSampleData();
sampleTableDataLoading.value = false;
} catch (error) {
sampleTableDataLoading.value = false;
}
}
sampleTableDataLoading.value = false;
});
}
......@@ -745,82 +754,85 @@ onBeforeMount(() => {
dataSelectInfoItems.value[4].visible = dataSource == 1;
dataSelectInfoItems.value[5].visible = dataSource == 1;
dataSelectInfoItems.value[6].visible = dataSource == 2;
//文件解析
if (dataSource == 2) {
let url = detailInfo.value.filePath?.url;
sampleTableDataLoading.value = true;
const refSignInfo: any = await getDownFileSignByUrl(parseAndDecodeUrl(url).fileName);
if (!refSignInfo?.data) {
fullscreenLoading.value = false;
refSignInfo?.msg && ElMessage.error(refSignInfo?.msg);
return;
}
obsDownloadRequest(refSignInfo?.data).then((res: any) => {
try {
//文件解析
if (dataSource == 2) {
let url = detailInfo.value.filePath?.url;
sampleTableDataLoading.value = true;
const refSignInfo: any = await getDownFileSignByUrl(parseAndDecodeUrl(url).fileName);
if (!refSignInfo?.data) {
fullscreenLoading.value = false;
refSignInfo?.msg && ElMessage.error(refSignInfo?.msg);
return;
}
const fileRes: any = await obsDownloadRequest(refSignInfo?.data);
sampleTableDataLoading.value = false;
if (res && !res.msg) {
parseFileData(res);
if (fileRes && !fileRes.msg) {
parseFileData(fileRes);
} else {
res?.msg && ElMessage.error(res?.msg);
fileRes?.msg && ElMessage.error(fileRes?.msg);
}
// 会出现从文件切换到数据库时没有数据库列表的问题。
const res: any = await getDatabase({ connectStatus: 1 });
if (res?.code == proxy.$passCode) {
dataSourceList.value = res.data || [];
let item = dataSelectInfoItems.value.find(item => item.field == 'dataSourceGuid');
item && (item.options = dataSourceList.value);
} else {
proxy.$ElMessage.error(res.msg);
}
})
// 会出现从文件切换到数据库时没有数据库列表的问题。
const res: any = await getDatabase({ connectStatus: 1 });
if (res?.code == proxy.$passCode) {
dataSourceList.value = res.data || [];
let item = dataSelectInfoItems.value.find(item => item.field == 'dataSourceGuid');
item && (item.options = dataSourceList.value);
} else {
proxy.$ElMessage.error(res.msg);
}
} else {
const res: any = await getDatabase({ connectStatus: 1 });
if (res?.code == proxy.$passCode) {
dataSourceList.value = res.data || [];
let item = dataSelectInfoItems.value.find(item => item.field == 'dataSourceGuid');
item && (item.options = dataSourceList.value);
} else {
proxy.$ElMessage.error(res.msg);
}
currDatasourceSelect.value = dataSourceList.value.find(d => d.guid == detailInfo.value.dataSourceGuid);
const tableRes: any = await getDsTableByDs({
pageSize: -1,
pageIndex: 1,
dataSourceGuid: detailInfo.value.dataSourceGuid,
database: currDatasourceSelect.value.databaseNameEn,
databaseType: currDatasourceSelect.value.databaseType,
tableName: '',
hadFlag: false
});
if (tableRes?.code == proxy.$passCode) {
dsTableList.value = tableRes.data?.records || [];
let item = dataSelectInfoItems.value.find(item => item.field == 'tableName');
item && (item.options = dsTableList.value);
} else {
proxy.$ElMessage.error(tableRes.msg);
}
getDsTableFieldColumn({
pageSize: 50,
pageIndex: 1,
dataSourceGuid: currDatasourceSelect.value.guid,
database: currDatasourceSelect.value.databaseNameEn,
databaseType: currDatasourceSelect.value.databaseType,
tableName: detailInfo.value.tableName,
}).then((res: any) => {
if (res.code == proxy.$passCode) {
sampleTableFields.value = res.data?.map(d => {
d.fieldDataType = d.dataType;
d.enName = d.columnName;
d.chName = d.columnZhName;
return d;
}) || [];
/** 判断有抽样数据,需要查询接口 */
getSampleDataByDsTable();
const res: any = await getDatabase({ connectStatus: 1 });
if (res?.code == proxy.$passCode) {
dataSourceList.value = res.data || [];
let item = dataSelectInfoItems.value.find(item => item.field == 'dataSourceGuid');
item && (item.options = dataSourceList.value);
} else {
ElMessage.error(res.msg);
proxy.$ElMessage.error(res.msg);
}
});
currDatasourceSelect.value = dataSourceList.value.find(d => d.guid == detailInfo.value.dataSourceGuid);
const tableRes: any = await getDsTableByDs({
pageSize: -1,
pageIndex: 1,
dataSourceGuid: detailInfo.value.dataSourceGuid,
database: currDatasourceSelect.value.databaseNameEn,
databaseType: currDatasourceSelect.value.databaseType,
tableName: '',
hadFlag: false
});
if (tableRes?.code == proxy.$passCode) {
dsTableList.value = tableRes.data?.records || [];
let item = dataSelectInfoItems.value.find(item => item.field == 'tableName');
item && (item.options = dsTableList.value);
} else {
proxy.$ElMessage.error(tableRes.msg);
}
getDsTableFieldColumn({
pageSize: 50,
pageIndex: 1,
dataSourceGuid: currDatasourceSelect.value.guid,
database: currDatasourceSelect.value.databaseNameEn,
databaseType: currDatasourceSelect.value.databaseType,
tableName: detailInfo.value.tableName,
}).then((res: any) => {
if (res.code == proxy.$passCode) {
sampleTableFields.value = res.data?.map(d => {
d.fieldDataType = d.dataType;
d.enName = d.columnName;
d.chName = d.columnZhName;
return d;
}) || [];
/** 判断有抽样数据,需要查询接口 */
getSampleDataByDsTable();
} else {
ElMessage.error(res.msg);
}
});
}
fullscreenLoading.value = false;
} catch (error) {
fullscreenLoading.value = false;
}
fullscreenLoading.value = false;
} else {
fullscreenLoading.value = false;
proxy.$ElMessage.error(res.msg);
......
......@@ -139,6 +139,8 @@ const ruleModelTableInfo = ref({
return rd;
}) || [];
}
fieldRulesEndFormInfo.value.formInfo.items[0].default = '';
fieldRulesEndFormInfo.value.formInfo.items[1].default = '';
if (!row.desensitiveRuleCode) {
drawerInfo.value.container.contents = [fieldRulesFormInfo.value];
} else {
......@@ -450,6 +452,8 @@ const addRowRules = () => {
fieldChName: '',
upperOperator: '≤'
}];
fieldRulesEndFormInfo.value.formInfo.items[0].default = '';
fieldRulesEndFormInfo.value.formInfo.items[1].default = '';
drawerInfo.value.container.contents = [fieldRulesFormInfo.value, fieldRulesEndFormInfo.value];
}
......@@ -475,13 +479,19 @@ const drawerBtnClick = async (btn, info) => {
let desensitiveRuleDetailInfo = getDesensitiveRuleDetailInfo(info);
// 脱敏规则为掩盖,字符,区间替换存在时需要调用接口检验
if (info.desensitiveRuleCode == 'DISSEMBLE' || info.desensitiveRuleCode == 'CHARREPLACE' || info.desensitiveRuleCode == 'RANGEREPLACE') {
let res: any = await validateAnonRule({
desensitiveRuleCode: info.desensitiveRuleCode,
value: '',
desensitiveRuleDetail: desensitiveRuleDetailInfo
})
if (res?.code != proxy.$passCode) {
proxy.$ElMessage.error(res.msg);
try {
let res: any = await validateAnonRule({
desensitiveRuleCode: info.desensitiveRuleCode,
value: '',
desensitiveRuleDetail: desensitiveRuleDetailInfo
})
if (res?.code != proxy.$passCode) {
proxy.$ElMessage.error(res.msg);
drawerInfo.value.footer.btns[1].loading = false;
return;
}
} catch (error) {
drawerInfo.value.footer.btns[1].loading = false;
}
}
drawerInfo.value.footer.btns[1].loading = false;
......@@ -553,6 +563,15 @@ const drawerSelectChange = (val, row, info) => {
}
}
});
if (val == 'RANGEREPLACE') {
let fieldName = info.fieldName;
let fieldChName = fieldName && props.fieldNameList.find(f => f.enName == fieldName)?.chName;
rangeReplaceRuleDetails.value.forEach(r => {
if (fieldChName && r.fieldChName != fieldChName) {
r.fieldChName = fieldChName;
}
});
}
if (!val) {
drawerInfo.value.container.contents = [fieldRulesFormInfo.value];
} else {
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!