no message

This commit is contained in:
kuaifan 2025-05-06 04:36:11 +08:00
parent 6539b14ecf
commit 5581d1431b
2 changed files with 65 additions and 46 deletions

View File

@ -1,9 +1,9 @@
<template> <template>
<micro-app <micro-app
v-if="appMode=='page'" v-if="details.mode=='page'"
v-show="appShow" v-show="details.show"
:name="appName" :name="details.name"
:url="appUrl" :url="details.url"
:data="appData" :data="appData"
@created="created" @created="created"
@beforemount="beforemount" @beforemount="beforemount"
@ -11,17 +11,17 @@
@unmount="unmount" @unmount="unmount"
@error="error"/> @error="error"/>
<DrawerOverlay <DrawerOverlay
v-else-if="appMode=='drawer'" v-else-if="details.mode=='drawer'"
v-model="appShow" v-model="details.show"
ref="drawer" ref="drawer"
placement="right" placement="right"
modal-class="micro-apps-modal" modal-class="micro-apps-modal"
drawer-class="micro-apps-drawer" drawer-class="micro-apps-drawer"
:size="1200"> :size="1200">
<div v-if="appShow" class="page-microapp"> <div v-if="details.show" class="page-microapp">
<micro-app <micro-app
:name="appName" :name="details.name"
:url="appUrl" :url="details.url"
:data="appData" :data="appData"
@created="created" @created="created"
@beforemount="beforemount" @beforemount="beforemount"
@ -60,6 +60,8 @@ import {DatePicker} from 'view-design-hi';
import DrawerOverlay from "./DrawerOverlay/index.vue"; import DrawerOverlay from "./DrawerOverlay/index.vue";
import emitter from "../store/events"; import emitter from "../store/events";
const mountApps = new Map();
export default { export default {
name: "MicroApps", name: "MicroApps",
components: {DrawerOverlay}, components: {DrawerOverlay},
@ -67,13 +69,7 @@ export default {
data() { data() {
return { return {
loadIng: 0, loadIng: 0,
details: {},
appMode: '',
appShow: false,
appName: "micro-app",
appUrl: "",
appParams: {},
} }
}, },
@ -110,16 +106,27 @@ export default {
DatePicker DatePicker
} }
}, },
theme: this.themeName,
languages: { datas: {
languageList, ...this.details.params,
languageName,
languageType: languageName, // theme: this.themeName,
themeName: this.themeName,
languages: {
languageList,
languageName,
// languageType: languageName,
},
userInfo: this.userInfo,
userToken: this.userToken,
electron: this.$Electron,
},
onClose: () => {
this.$refs.drawer?.onClose();
}, },
userInfo: this.userInfo,
userToken: this.userToken,
electron: this.$Electron,
params: this.appParams,
nextZIndex: () => { nextZIndex: () => {
if (typeof window.modalTransferIndex === 'number') { if (typeof window.modalTransferIndex === 'number') {
@ -128,10 +135,6 @@ export default {
return 1000; return 1000;
}, },
onClose: () => {
this.$refs.drawer?.onClose();
},
openAppChildPage: (objects) => { openAppChildPage: (objects) => {
this.$store.dispatch('openAppChildPage', objects); this.$store.dispatch('openAppChildPage', objects);
}, },
@ -147,31 +150,45 @@ export default {
} }
}, },
methods: { methods: {
created() { //
console.log('元素被创建') created(e) {
this.loadIng++ if (!mountApps.has(e.detail.name)) {
this.loadIng++
}
}, },
beforemount() {
console.log('即将渲染') //
this.loadIng-- beforemount(e) {
if (!mountApps.has(e.detail.name)) {
mountApps.set(e.detail.name, e.detail.name);
this.loadIng--
}
}, },
//
mounted() { mounted() {
console.log('已经渲染完成')
}, },
//
unmount() { unmount() {
console.log('已经卸载')
}, },
//
error() { error() {
console.log('加载出错')
}, },
/**
* 打开微应用
* @param data
*/
openMicroApp(data) { openMicroApp(data) {
this.appName = data.name ?? 'micro-app'; this.details = Object.assign({
this.appUrl = data.url ?? null; mode: 'drawer', // page, drawer
this.appParams = data.params ?? {}; name: 'drawer-app', //
show: true, //
this.appShow = data.show ?? true; url: null, //
this.appMode = data.mode ?? 'drawer'; params: {}, //
}, data)
} }
} }
} }

View File

@ -4675,14 +4675,16 @@ export default {
name: 'app-okr-details', name: 'app-okr-details',
url: $A.mainUrl(`apps/okr/okrDetails?data=${path}`), url: $A.mainUrl(`apps/okr/okrDetails?data=${path}`),
params: {}, params: {
model: 'details',
},
}); });
} else { } else {
// 打开列表、统计 // 打开列表、统计
emitter.emit('openMicroApp', { emitter.emit('openMicroApp', {
mode: 'drawer', mode: 'drawer',
show: true, show: true,
name: `app-okr`, name: `app-okr-${path}`,
url: $A.mainUrl(`apps/okr/${path}`), url: $A.mainUrl(`apps/okr/${path}`),
params: {}, params: {},