Merge pull request #12051 from dataease/pr@dev-v2_st

feat(嵌入式): 嵌入式支持多仪表板
This commit is contained in:
dataeaseShu 2024-09-05 15:51:04 +08:00 committed by GitHub
commit 27257aa98a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 12 deletions

View File

@ -1,5 +1,5 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, onBeforeMount, nextTick } from 'vue' import { ref, reactive, onBeforeMount, nextTick, inject } from 'vue'
import { initCanvasData, initCanvasDataMobile } from '@/utils/canvasUtils' import { initCanvasData, initCanvasDataMobile } from '@/utils/canvasUtils'
import { interactiveStoreWithOut } from '@/store/modules/interactive' import { interactiveStoreWithOut } from '@/store/modules/interactive'
import { useEmbedded } from '@/store/modules/embedded' import { useEmbedded } from '@/store/modules/embedded'
@ -20,6 +20,8 @@ const { wsCache } = useCache()
const interactiveStore = interactiveStoreWithOut() const interactiveStore = interactiveStoreWithOut()
const embeddedStore = useEmbedded() const embeddedStore = useEmbedded()
const dashboardPreview = ref(null) const dashboardPreview = ref(null)
const embeddedParams = inject('embeddedParams') as object
const { t } = useI18n() const { t } = useI18n()
const state = reactive({ const state = reactive({
canvasDataPreview: null, canvasDataPreview: null,
@ -34,14 +36,14 @@ const checkPer = async resourceId => {
if (!window.DataEaseBi || !resourceId) { if (!window.DataEaseBi || !resourceId) {
return true return true
} }
const request = { busiFlag: embeddedStore.busiFlag } const request = { busiFlag: embeddedParams.busiFlag }
await interactiveStore.setInteractive(request) await interactiveStore.setInteractive(request)
const key = embeddedStore.busiFlag === 'dataV' ? 'screen-weight' : 'panel-weight' const key = embeddedParams.busiFlag === 'dataV' ? 'screen-weight' : 'panel-weight'
return check(wsCache.get(key), resourceId, 1) return check(wsCache.get(key), resourceId, 1)
} }
const isPc = ref(true) const isPc = ref(true)
onBeforeMount(async () => { onBeforeMount(async () => {
const checkResult = await checkPer(embeddedStore.dvId) const checkResult = await checkPer(embeddedParams.dvId)
if (!checkResult) { if (!checkResult) {
return return
} }
@ -53,14 +55,14 @@ onBeforeMount(async () => {
} }
// //
let attachParams let attachParams
await getOuterParamsInfo(embeddedStore.dvId).then(rsp => { await getOuterParamsInfo(embeddedParams.dvId).then(rsp => {
dvMainStore.setNowPanelOuterParamsInfo(rsp.data) dvMainStore.setNowPanelOuterParamsInfo(rsp.data)
}) })
// div // div
if (embeddedStore.outerParams) { if (embeddedParams.outerParams) {
try { try {
const outerPramsParse = JSON.parse(embeddedStore.outerParams) const outerPramsParse = JSON.parse(embeddedParams.outerParams)
attachParams = outerPramsParse.attachParams attachParams = outerPramsParse.attachParams
dvMainStore.setEmbeddedCallBack(outerPramsParse.callBackFlag || 'no') dvMainStore.setEmbeddedCallBack(outerPramsParse.callBackFlag || 'no')
} catch (e) { } catch (e) {
@ -76,8 +78,8 @@ onBeforeMount(async () => {
const req = isPc.value ? initCanvasData : initCanvasDataMobile const req = isPc.value ? initCanvasData : initCanvasDataMobile
req( req(
embeddedStore.dvId, embeddedParams.dvId,
embeddedStore.busiFlag, embeddedParams.busiFlag,
function ({ function ({
canvasDataResult, canvasDataResult,
canvasStyleResult, canvasStyleResult,

View File

@ -13,7 +13,7 @@ import { XpackComponent } from '@/components/plugin'
const { wsCache } = useCache() const { wsCache } = useCache()
const interactiveStore = interactiveStoreWithOut() const interactiveStore = interactiveStoreWithOut()
const embeddedStore = useEmbedded() const embeddedStore = useEmbedded()
const injectChartId = inject('embeddedParams') as string const embeddedParams = inject('embeddedParams') as object
const config = ref() const config = ref()
const viewInfo = ref() const viewInfo = ref()
const userViewEnlargeRef = ref() const userViewEnlargeRef = ref()
@ -74,7 +74,7 @@ onBeforeMount(async () => {
ElMessage.error(t('visualization.outer_param_decode_error')) ElMessage.error(t('visualization.outer_param_decode_error'))
} }
} }
const chartId = injectChartId || embeddedStore.chartId const chartId = embeddedParams?.chartId || embeddedStore.chartId
initCanvasData( initCanvasData(
embeddedStore.dvId, embeddedStore.dvId,

View File

@ -77,7 +77,7 @@ const setupAll = async (
resourceId: string resourceId: string
): Promise<App<Element>> => { ): Promise<App<Element>> => {
const app = createApp(AppElement, { componentName: type }) const app = createApp(AppElement, { componentName: type })
app.provide('embeddedParams', chartId) app.provide('embeddedParams', { chartId, resourceId, dvId, pid, busiFlag, outerParams })
await setupI18n(app) await setupI18n(app)
setupStore(app) setupStore(app)
setupRouter(app) setupRouter(app)