mirror of
				https://gitee.com/hhyykk/ipms-sjy-ui.git
				synced 2025-11-04 12:18:43 +08:00 
			
		
		
		
	🎈 perf:优化iframe布局
This commit is contained in:
		@@ -7,26 +7,41 @@ const props = defineProps({
 | 
			
		||||
  src: propTypes.string.def('')
 | 
			
		||||
})
 | 
			
		||||
const loading = ref(true)
 | 
			
		||||
const height = ref('')
 | 
			
		||||
const frameRef = ref<HTMLElement | null>(null)
 | 
			
		||||
const init = () => {
 | 
			
		||||
  height.value = document.documentElement.clientHeight - 94.5 + 'px'
 | 
			
		||||
  loading.value = false
 | 
			
		||||
  nextTick(() => {
 | 
			
		||||
    loading.value = true
 | 
			
		||||
    if (!frameRef.value) return
 | 
			
		||||
    frameRef.value.onload = () => {
 | 
			
		||||
      loading.value = false
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
onMounted(() => {
 | 
			
		||||
  setTimeout(() => {
 | 
			
		||||
    init()
 | 
			
		||||
  }, 300)
 | 
			
		||||
  init()
 | 
			
		||||
})
 | 
			
		||||
watch(
 | 
			
		||||
  () => props.src,
 | 
			
		||||
  () => {
 | 
			
		||||
    init()
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
</script>
 | 
			
		||||
<template>
 | 
			
		||||
  <div v-loading="loading" :style="'height:' + height">
 | 
			
		||||
  <div
 | 
			
		||||
    v-loading="loading"
 | 
			
		||||
    class="w-full h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-content-padding)-var(--app-content-padding)-2px)]"
 | 
			
		||||
  >
 | 
			
		||||
    <iframe
 | 
			
		||||
      ref="frameRef"
 | 
			
		||||
      :src="props.src"
 | 
			
		||||
      frameborder="no"
 | 
			
		||||
      frameborder="0"
 | 
			
		||||
      scrolling="auto"
 | 
			
		||||
      style="width: 100%; height: 100%"
 | 
			
		||||
      height="100%"
 | 
			
		||||
      width="100%"
 | 
			
		||||
      allowfullscreen="true"
 | 
			
		||||
      webkitallowfullscreen="true"
 | 
			
		||||
      mozallowfullscreen="true"
 | 
			
		||||
    ></iframe>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@
 | 
			
		||||
  <doc-alert title="数据库 MyBatis" url="https://doc.iocoder.cn/mybatis/" />
 | 
			
		||||
  <doc-alert title="多数据源(读写分离)" url="https://doc.iocoder.cn/dynamic-datasource/" />
 | 
			
		||||
 | 
			
		||||
  <ContentWrap>
 | 
			
		||||
    <IFrame v-if="!loading" :src="url" />
 | 
			
		||||
  <ContentWrap :bodyStyle="{ padding: '0px' }" class="!mb-0">
 | 
			
		||||
    <IFrame v-if="!loading" v-loading="loading" :src="url" />
 | 
			
		||||
  </ContentWrap>
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts" setup>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <doc-alert title="服务监控" url="https://doc.iocoder.cn/server-monitor/" />
 | 
			
		||||
 | 
			
		||||
  <ContentWrap>
 | 
			
		||||
  <ContentWrap :bodyStyle="{ padding: '0px' }" class="!mb-0">
 | 
			
		||||
    <IFrame v-if="!loading" v-loading="loading" :src="src" />
 | 
			
		||||
  </ContentWrap>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <doc-alert title="服务监控" url="https://doc.iocoder.cn/server-monitor/" />
 | 
			
		||||
 | 
			
		||||
  <ContentWrap>
 | 
			
		||||
  <ContentWrap :bodyStyle="{ padding: '0px' }" class="!mb-0">
 | 
			
		||||
    <IFrame v-if="!loading" v-loading="loading" :src="src" />
 | 
			
		||||
  </ContentWrap>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <doc-alert title="接口文档" url="https://doc.iocoder.cn/api-doc/" />
 | 
			
		||||
 | 
			
		||||
  <ContentWrap>
 | 
			
		||||
    <IFrame :src="src" />
 | 
			
		||||
  <ContentWrap :bodyStyle="{ padding: '0px' }" class="!mb-0">
 | 
			
		||||
    <IFrame v-if="!loading" v-loading="loading" :src="src" />
 | 
			
		||||
  </ContentWrap>
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts" setup>
 | 
			
		||||
 
 | 
			
		||||
@@ -106,14 +106,8 @@
 | 
			
		||||
      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
 | 
			
		||||
      <el-button @click="dialogVisible = false">取 消</el-button>
 | 
			
		||||
    </template>
 | 
			
		||||
    <el-dialog
 | 
			
		||||
      v-model="mapDialogVisible"
 | 
			
		||||
      title="获取经纬度"
 | 
			
		||||
      append-to-body
 | 
			
		||||
      width="500px"
 | 
			
		||||
      class="mapBox"
 | 
			
		||||
    >
 | 
			
		||||
      <iframe id="mapPage" width="100%" height="100%" frameborder="0" :src="tencentLbsUrl"></iframe>
 | 
			
		||||
    <el-dialog v-model="mapDialogVisible" title="获取经纬度" append-to-body>
 | 
			
		||||
      <IFrame class="h-609px" :src="tencentLbsUrl" />
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
  </Dialog>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -266,8 +260,3 @@ onMounted(async () => {
 | 
			
		||||
  await initTencentLbsMap()
 | 
			
		||||
})
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mapBox .el-dialog__body {
 | 
			
		||||
  height: 640px !important;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
  <ContentWrap>
 | 
			
		||||
    <doc-alert title="大屏设计器" url="https://doc.iocoder.cn/report/screen/" />
 | 
			
		||||
 | 
			
		||||
  <ContentWrap :bodyStyle="{ padding: '0px' }" class="!mb-0">
 | 
			
		||||
    <IFrame :src="src" />
 | 
			
		||||
  </ContentWrap>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
  <ContentWrap>
 | 
			
		||||
    <doc-alert title="报表设计器" url="https://doc.iocoder.cn/report/" />
 | 
			
		||||
 | 
			
		||||
  <ContentWrap :bodyStyle="{ padding: '0px' }" class="!mb-0">
 | 
			
		||||
    <IFrame :src="src" />
 | 
			
		||||
  </ContentWrap>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -10,6 +11,5 @@ import { getAccessToken } from '@/utils/auth'
 | 
			
		||||
 | 
			
		||||
defineOptions({ name: 'JimuReport' })
 | 
			
		||||
 | 
			
		||||
const BASE_URL = import.meta.env.VITE_BASE_URL
 | 
			
		||||
const src = ref(BASE_URL + '/jmreport/list?token=' + getAccessToken())
 | 
			
		||||
const src = ref(import.meta.env.VITE_BASE_URL + '/jmreport/list?token=' + getAccessToken())
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user