diff --git a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtDataVisualizationMapper.java b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtDataVisualizationMapper.java index fec2813c9a..5e38d18da0 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtDataVisualizationMapper.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtDataVisualizationMapper.java @@ -57,6 +57,8 @@ public interface ExtDataVisualizationMapper { void deleteViewsBatch(@Param("ids") Set ids,@Param("resourceTable") String resourceTable); + void deleteUselessViewsBatchSnapshot(@Param("ids") List ids,@Param("dvId") Long dvId); + UserFormVO queryInnerUserInfo(@Param("id") Long id); void snapshotDataV(@Param("dvId") Long dvId); diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java index 286102f013..2bd2e162ee 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java @@ -594,6 +594,8 @@ public class DataVisualizationServer implements DataVisualizationApi { visualizationInfo.setStatus(request.getStatus()); coreVisualizationManage.innerEdit(visualizationInfo); if (CommonConstants.DV_STATUS.PUBLISHED == request.getStatus()) { + List viewIds = this.getEnabledViewIds(dvId,CommonConstants.RESOURCE_TABLE.SNAPSHOT); + extDataVisualizationMapper.deleteUselessViewsBatchSnapshot(viewIds,dvId); coreVisualizationManage.removeDvCore(dvId); coreVisualizationManage.dvRestore(dvId); chartViewManege.publishThreshold(dvId, request.getActiveViewIds()); diff --git a/core/core-backend/src/main/resources/mybatis/ExtDataVisualizationMapper.xml b/core/core-backend/src/main/resources/mybatis/ExtDataVisualizationMapper.xml index f6f4d93121..56d36c3d0c 100644 --- a/core/core-backend/src/main/resources/mybatis/ExtDataVisualizationMapper.xml +++ b/core/core-backend/src/main/resources/mybatis/ExtDataVisualizationMapper.xml @@ -498,6 +498,20 @@ + + DELETE + FROM + snapshot_core_chart_view ccv + WHERE + ccv.scene_id = #{dvId} + + and ccv.id not in + + #{id} + + + + diff --git a/core/core-frontend/src/components/dashboard/DbToolbar.vue b/core/core-frontend/src/components/dashboard/DbToolbar.vue index c3a7d54639..e8c2af2b39 100644 --- a/core/core-frontend/src/components/dashboard/DbToolbar.vue +++ b/core/core-frontend/src/components/dashboard/DbToolbar.vue @@ -203,9 +203,12 @@ const publishStatusChange = status => { type: 'dashboard' }).then(() => { dvMainStore.updateDvInfoCall(status) - status - ? ElMessage.success(t('visualization.published_success')) - : ElMessage.success(t('visualization.cancel_publish_tips')) + if (status) { + ElMessage.success(t('visualization.published_success')) + snapshotStore.initSnapShot() + } else { + ElMessage.success(t('visualization.cancel_publish_tips')) + } }) } diff --git a/core/core-frontend/src/components/data-visualization/DvToolbar.vue b/core/core-frontend/src/components/data-visualization/DvToolbar.vue index 79d5b7de8c..d8b77976d4 100644 --- a/core/core-frontend/src/components/data-visualization/DvToolbar.vue +++ b/core/core-frontend/src/components/data-visualization/DvToolbar.vue @@ -331,9 +331,12 @@ const publishStatusChange = status => { type: 'dataV' }).then(() => { dvMainStore.updateDvInfoCall(status) - status - ? ElMessage.success(t('visualization.published_success')) - : ElMessage.success(t('visualization.cancel_publish_tips')) + if (status) { + ElMessage.success(t('visualization.published_success')) + snapshotStore.initSnapShot() + } else { + ElMessage.success(t('visualization.cancel_publish_tips')) + } }) } diff --git a/core/core-frontend/src/custom-component/v-query/Component.vue b/core/core-frontend/src/custom-component/v-query/Component.vue index e41c497dbf..e5d768fcf8 100644 --- a/core/core-frontend/src/custom-component/v-query/Component.vue +++ b/core/core-frontend/src/custom-component/v-query/Component.vue @@ -65,8 +65,7 @@ const { element, view, scale } = toRefs(props) const { t } = useI18n() const vQueryRef = ref() const dvMainStore = dvMainStoreWithOut() -const { curComponent, canvasViewInfo, mobileInPc, firstLoadMap, editMode } = - storeToRefs(dvMainStore) +const { curComponent, canvasViewInfo, mobileInPc, firstLoadMap } = storeToRefs(dvMainStore) const canEdit = ref(false) const queryConfig = ref() const defaultStyle = { @@ -99,9 +98,6 @@ const defaultStyle = { } const customStyle = reactive({ ...defaultStyle }) const snapshotStore = snapshotStoreWithOut() -const userAgent = navigator.userAgent.toLowerCase() -// 判断是否为飞书内置浏览器 -const isFeiShu = /lark/i.test(userAgent) const btnStyle = computed(() => { const style = { @@ -359,22 +355,26 @@ const getKeyList = next => { } const fillRequireVal = arr => { - element.value.propValue.forEach(next => { + element.value.propValue?.forEach(next => { if (arr.some(itx => next.checkedFields.includes(itx)) && next.required) { if (next.displayType === '8') { const { conditionValueF, conditionValueS, conditionType } = next if (conditionType === 0 && conditionValueF === '') { next.conditionValueF = next.defaultConditionValueF - } else if (conditionValueF === '' || conditionValueS === '') { - next.conditionValueF = next.defaultConditionValueF - next.conditionValueS = next.defaultConditionValueS + } else { + if (conditionValueF === '') { + next.conditionValueF = next.defaultConditionValueF + } + if (conditionValueS === '') { + next.conditionValueS = next.defaultConditionValueS + } } } else if (next.displayType === '22') { - if ( - (next.numValueStart !== 0 && !next.numValueStart) || - (next.numValueEnd !== 0 && !next.numValueEnd) - ) { + if (next.numValueStart !== 0 && !next.numValueStart) { next.numValueStart = next.defaultNumValueStart + } + + if (next.numValueEnd !== 0 && !next.numValueEnd) { next.numValueEnd = next.defaultNumValueEnd } } else if ( @@ -502,7 +502,7 @@ onBeforeUnmount(() => { const updateQueryCriteria = () => { if (dvMainStore.mobileInPc && !isMobile()) return Array.isArray(element.value.propValue) && - element.value.propValue.forEach(ele => { + element.value.propValue?.forEach(ele => { if (ele.auto) { const componentInfo = { datasetId: ele.dataset.id, @@ -827,7 +827,7 @@ const marginRight = computed(() => { }) const autoStyle = computed(() => { - if (isISOMobile() || isFeiShu) { + if (isISOMobile()) { return { position: 'absolute', height: 100 / scale.value + '%!important', @@ -856,7 +856,7 @@ const autoStyle = computed(() => {
{{ t('v_query.here_or_click') }} {
{ cascade.value.forEach(ele => { let condition = null ele.forEach(item => { - // eslint-disable-next-line const [_, queryId, fieldId] = item.datasetId.split('--') if (queryId === config.value.id && condition) { if (item.fieldId) { @@ -579,7 +578,10 @@ const setOptions = (num: number) => { (valueSource || []).map(ele => { return { label: `${ele}`, - value: `${ele}` + value: `${ele}`, + checked: Array.isArray(selectValue.value) + ? selectValue.value.includes(ele) + : selectValue.value === ele } }) )