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

View File

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