mirror of
https://github.com/dataease/dataease.git
synced 2026-05-15 05:22:13 +08:00
fix(数据集): 自定义sql未保存直接点关闭没有提示信息
This commit is contained in:
@@ -245,8 +245,10 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
sql = Base64.decode(sqlNode.value.sql)
|
||||
codeCom.value = myCm.value.codeComInit(setNameIdTrans('id', 'name', sql), true)
|
||||
codeCom.value = myCm.value.codeComInit(
|
||||
setNameIdTrans('id', 'name', Base64.decode(sqlNode.value.sql)),
|
||||
true
|
||||
)
|
||||
})
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
@@ -364,7 +366,7 @@ const setFlag = () => {
|
||||
}
|
||||
let sql = ''
|
||||
|
||||
const save = (cb?: () => void) => {
|
||||
const save = () => {
|
||||
if (!sqlNode.value.tableName.trim()) {
|
||||
ElMessage.error(t('data_set.cannot_be_empty'))
|
||||
return
|
||||
@@ -385,10 +387,11 @@ const save = (cb?: () => void) => {
|
||||
sql: Base64.encode(sql),
|
||||
sqlVariableDetails: JSON.stringify(state.variables)
|
||||
},
|
||||
cb
|
||||
() => {
|
||||
ElMessage.success(t('common.save_success'))
|
||||
}
|
||||
)
|
||||
changeFlag = false
|
||||
ElMessage.success(t('common.save_success'))
|
||||
}
|
||||
|
||||
const close = () => {
|
||||
@@ -403,6 +406,7 @@ const close = () => {
|
||||
|
||||
const handleClose = () => {
|
||||
let sqlNew = setNameIdTrans('name', 'id', codeCom.value.state.doc.toString())
|
||||
|
||||
if (changeFlag || sql !== sqlNew || !sqlNew.trim()) {
|
||||
ElMessageBox.confirm(t('chart.tips'), {
|
||||
confirmButtonType: 'primary',
|
||||
@@ -427,7 +431,7 @@ const getSQLPreview = () => {
|
||||
dataPreviewLoading.value = true
|
||||
getPreviewSql({
|
||||
isCross: isCross.value,
|
||||
sql: Base64.encode((sql = setNameIdTrans('name', 'id', codeCom.value.state.doc.toString()))),
|
||||
sql: Base64.encode(setNameIdTrans('name', 'id', codeCom.value.state.doc.toString())),
|
||||
datasourceId: sqlNode.value.datasourceId,
|
||||
sqlVariableDetails: JSON.stringify(state.variables)
|
||||
})
|
||||
@@ -622,7 +626,7 @@ const mousedownDrag = () => {
|
||||
</template>
|
||||
{{ t('auth.sysParams') }}
|
||||
</el-button>
|
||||
<el-button :disabled="!changeFlagCode" @click="save(() => {})" type="primary">
|
||||
<el-button :disabled="!changeFlagCode" @click="save" type="primary">
|
||||
{{ t('data_set.save') }}</el-button
|
||||
>
|
||||
<el-divider direction="vertical" />
|
||||
|
||||
@@ -221,11 +221,8 @@ const saveSqlNode = (val: SqlNode, cb) => {
|
||||
unionFields: [],
|
||||
currentDsFields: []
|
||||
})
|
||||
state.visualNode.confirm = true
|
||||
if (!state.nodeList.length) {
|
||||
state.visualNode.tableName = tableName
|
||||
state.nodeList.push(state.visualNode)
|
||||
currentNode.value = state.nodeList[0]
|
||||
getTableField({
|
||||
datasourceId,
|
||||
id: id,
|
||||
@@ -234,6 +231,9 @@ const saveSqlNode = (val: SqlNode, cb) => {
|
||||
type: 'sql',
|
||||
isCross: isCross.value
|
||||
}).then(res => {
|
||||
state.visualNode.confirm = true
|
||||
state.nodeList.push(state.visualNode)
|
||||
currentNode.value = state.nodeList[0]
|
||||
nodeField.value = res as unknown as Field[]
|
||||
nodeField.value.forEach(ele => {
|
||||
ele.checked = true
|
||||
@@ -241,8 +241,20 @@ const saveSqlNode = (val: SqlNode, cb) => {
|
||||
state.nodeList[0].currentDsFields = cloneDeep(res)
|
||||
cb?.()
|
||||
confirmEditUnion()
|
||||
confirm()
|
||||
})
|
||||
} else {
|
||||
getTableField({
|
||||
datasourceId,
|
||||
id: id,
|
||||
info: state.visualNode.info,
|
||||
tableName,
|
||||
type: 'sql',
|
||||
isCross: isCross.value
|
||||
}).then(() => {
|
||||
state.visualNode.confirm = true
|
||||
cb?.()
|
||||
})
|
||||
confirm()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ const parentField = ref<Field[]>([])
|
||||
const nodeField = ref<Field[]>([])
|
||||
const node = reactive<Node>(cloneDeep(defaultNode))
|
||||
const parent = reactive<Node>(cloneDeep(defaultNode))
|
||||
|
||||
const loading = ref(false)
|
||||
const props = defineProps({
|
||||
editArr: {
|
||||
type: Array,
|
||||
@@ -82,16 +82,23 @@ const getParams = (obj: Node) => {
|
||||
)
|
||||
}
|
||||
const getFields = async () => {
|
||||
const [n, p] = props.editArr as Node[]
|
||||
const [nr, pr] = await Promise.all([getTableField(getParams(n)), getTableField(getParams(p))])
|
||||
parentField.value = pr as unknown as Field[]
|
||||
parentField.value.forEach(ele => {
|
||||
ele.checked = p.currentDsFields.map(ele => ele.originName).includes(ele.originName)
|
||||
})
|
||||
nodeField.value = nr as unknown as Field[]
|
||||
nodeField.value.forEach(ele => {
|
||||
ele.checked = n.currentDsFields.map(ele => ele.originName).includes(ele.originName)
|
||||
})
|
||||
try {
|
||||
loading.value = true
|
||||
const [n, p] = props.editArr as Node[]
|
||||
const [nr, pr] = await Promise.all([getTableField(getParams(n)), getTableField(getParams(p))])
|
||||
loading.value = false
|
||||
parentField.value = pr as unknown as Field[]
|
||||
parentField.value.forEach(ele => {
|
||||
ele.checked = p.currentDsFields.map(ele => ele.originName).includes(ele.originName)
|
||||
})
|
||||
nodeField.value = nr as unknown as Field[]
|
||||
nodeField.value.forEach(ele => {
|
||||
ele.checked = n.currentDsFields.map(ele => ele.originName).includes(ele.originName)
|
||||
})
|
||||
} catch (error) {
|
||||
loading.value = false
|
||||
console.error(error)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
@@ -105,7 +112,7 @@ defineExpose({
|
||||
<template>
|
||||
<div style="height: 100%; overflow-y: auto">
|
||||
<div class="field-style">
|
||||
<div class="fields" v-loading="!parentField.length">
|
||||
<div class="fields" v-loading="loading">
|
||||
<p :title="parent.tableName">
|
||||
{{ parent.tableName }}
|
||||
</p>
|
||||
@@ -116,7 +123,7 @@ defineExpose({
|
||||
@checkedFields="changeParentFields"
|
||||
/>
|
||||
</div>
|
||||
<div class="fields" v-loading="!nodeField.length">
|
||||
<div class="fields" v-loading="loading">
|
||||
<p :title="node.tableName">
|
||||
{{ node.tableName }}
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user