Merge pull request #13015 from dataease/dev-v2@fixexportdata

fix: 【数据源】修复数据源校验结果会在前端影响到其他数据源状态
This commit is contained in:
taojinlong 2024-10-30 16:27:19 +08:00 committed by GitHub
commit 62beb3dba7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -139,7 +139,6 @@ const dsTableDetail = reactive({
name: ''
})
const rootManage = ref(false)
const nodeData = ref({})
const nickName = ref('')
const dsName = ref('')
const userDrawer = ref(false)
@ -276,31 +275,31 @@ const validateDS = () => {
.then(res => {
if (res.data.type === 'API') {
let error = 0
const status = JSON.parse(res.data.status)
for (let i = 0; i < status.length; i++) {
if (status[i].status === 'Error') {
const dsStatus = JSON.parse(res.data.status)
for (let i = 0; i < dsStatus.length; i++) {
if (dsStatus[i].status === 'Error') {
error++
}
for (let i = 0; i < nodeInfo.apiConfiguration.length; i++) {
if (nodeInfo.apiConfiguration[i].name === status[i].name) {
nodeInfo.apiConfiguration[i].status = status[i].status
if (nodeInfo.apiConfiguration[i].name === dsStatus[i].name) {
nodeInfo.apiConfiguration[i].status = dsStatus[i].status
}
}
}
if (error === 0) {
nodeData.value.extraFlag = Math.abs(nodeData.value.extraFlag)
changeDsStatus(state.datasourceTree, nodeInfo.id, Math.abs(nodeInfo.extraFlag))
ElMessage.success(t('data_source.verification_successful'))
} else {
nodeData.value.extraFlag = -Math.abs(nodeData.value.extraFlag)
changeDsStatus(state.datasourceTree, nodeInfo.id, -Math.abs(nodeInfo.extraFlag))
ElMessage.error(t('data_source.verification_failed'))
}
} else {
nodeData.value.extraFlag = Math.abs(nodeData.value.extraFlag)
changeDsStatus(state.datasourceTree, nodeInfo.id, Math.abs(nodeInfo.extraFlag))
ElMessage.success(t('data_source.verification_successful'))
}
})
.catch(() => {
nodeData.value.extraFlag = -Math.abs(nodeData.value.extraFlag)
changeDsStatus(state.datasourceTree, nodeInfo.id, -Math.abs(nodeInfo.extraFlag))
})
}
@ -412,7 +411,8 @@ const defaultInfo = {
syncSetting: null,
apiConfiguration: [],
weight: 0,
enableDataFill: false
enableDataFill: false,
extraFlag: 0
}
const nodeInfo = reactive<Node>(cloneDeep(defaultInfo))
const infoList = computed(() => {
@ -490,6 +490,19 @@ const listDs = () => {
})
}
const changeDsStatus = (ds, id, extraFlag) => {
ds.some(ele => {
if (ele.id === id) {
ele.extraFlag = extraFlag
return true
}
if (!!ele.children?.length) {
changeDsStatus(ele.children, id, extraFlag)
}
return false
})
}
const dfsDatasourceTree = (ds, id) => {
ds.some(ele => {
if (ele.id === id) {
@ -530,7 +543,6 @@ const sortTypeTip = computed(() => {
const tableData = shallowRef([])
const tabData = shallowRef([])
const handleNodeClick = data => {
nodeData.value = data
if (!data.leaf) {
dsListTree.value.setCurrentKey(null)
return
@ -580,7 +592,8 @@ const handleNodeClick = data => {
paramsConfiguration: paramsStr,
weight: data.weight,
lastSyncTime,
enableDataFill
enableDataFill,
extraFlag: data.extraFlag
})
activeTab.value = ''
activeName.value = 'config'