47 lines
937 B
Vue
47 lines
937 B
Vue
<template>
|
|
<section class="appEntry">
|
|
<component v-if="app" :is="app" ref="currentPage" :instance="$request" :dict="$dict" :permissions="$permissions"/>
|
|
<ai-empty v-else>无法找到应用文件</ai-empty>
|
|
</section>
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import {mapState} from "vuex";
|
|
import Vue from "vue";
|
|
|
|
export default {
|
|
name: "appEntry",
|
|
label: "应用库-应用",
|
|
computed: {
|
|
...mapState(['apps']),
|
|
app() {
|
|
const app = this.apps.find(e => e.name == this.$route.name)
|
|
return app.esm ?? ""
|
|
}
|
|
},
|
|
mounted() {
|
|
this.$vm.$on("mock", v => {
|
|
if (!!this.$refs.currentPage.$children?.[0]?.form) {
|
|
this.$refs.currentPage.$children[0].form = v
|
|
this.$refs.currentPage.$children[0].$forceUpdate()
|
|
}
|
|
})
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.appEntry {
|
|
width: 100%;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
height: 100%;
|
|
|
|
& > * {
|
|
height: 100%;
|
|
}
|
|
}
|
|
</style>
|