no message

This commit is contained in:
kuaifan 2025-05-07 18:12:58 +08:00
parent 9c46d28871
commit aef3e869dc
2 changed files with 96 additions and 75 deletions

View File

@ -4,20 +4,20 @@
<Modal <Modal
v-if="app.transparent" v-if="app.transparent"
v-model="app.isOpen" v-model="app.isOpen"
:ref="`ref-${app.appName}`" :ref="`ref-${app.name}`"
:mask="false" :mask="false"
:footer-hide="true" :footer-hide="true"
:transition-names="[]" :transition-names="[]"
:beforeClose="async () => { await onBeforeClose(app.appName) }" :beforeClose="async () => { await onBeforeClose(app.name) }"
class-name="micro-app-trans" class-name="micro-app-trans"
fullscreen> fullscreen>
<MicroContent <MicroContent
:is-open="app.isOpen" :is-open="app.isOpen"
:app-name="app.appName" :app-name="app.name"
:app-url="app.appUrl" :app-url="app.url"
:keep-alive="app.keepAlive" :keep-alive="app.keepAlive"
:is-loading="app.isLoading" :is-loading="app.isLoading"
:app-data="appData(app.appName)" :app-data="appData(app.name)"
@created="created" @created="created"
@beforemount="beforemount" @beforemount="beforemount"
@mounted="mounted" @mounted="mounted"
@ -27,19 +27,19 @@
<DrawerOverlay <DrawerOverlay
v-else v-else
v-model="app.isOpen" v-model="app.isOpen"
:ref="`ref-${app.appName}`" :ref="`ref-${app.name}`"
modal-class="micro-app-modal" modal-class="micro-app-modal"
drawer-class="micro-app-drawer" drawer-class="micro-app-drawer"
placement="right" placement="right"
:beforeClose="async () => { await onBeforeClose(app.appName) }" :beforeClose="async () => { await onBeforeClose(app.name) }"
:size="1200"> :size="1200">
<MicroContent <MicroContent
:is-open="app.isOpen" :is-open="app.isOpen"
:app-name="app.appName" :app-name="app.name"
:app-url="app.appUrl" :app-url="app.url"
:keep-alive="app.keepAlive" :keep-alive="app.keepAlive"
:is-loading="app.isLoading" :is-loading="app.isLoading"
:app-data="appData(app.appName)" :app-data="appData(app.name)"
@created="created" @created="created"
@beforemount="beforemount" @beforemount="beforemount"
@mounted="mounted" @mounted="mounted"
@ -92,7 +92,6 @@ import Vue from 'vue'
import {mapState} from "vuex"; import {mapState} from "vuex";
import {DatePicker} from 'view-design-hi'; import {DatePicker} from 'view-design-hi';
import microApp from '@micro-zoe/micro-app' import microApp from '@micro-zoe/micro-app'
import store from '../../store/index'
import DialogWrapper from '../../pages/manage/components/DialogWrapper.vue' import DialogWrapper from '../../pages/manage/components/DialogWrapper.vue'
import UserSelect from "../UserSelect.vue"; import UserSelect from "../UserSelect.vue";
import {languageList, languageName} from "../../language"; import {languageList, languageName} from "../../language";
@ -100,6 +99,7 @@ import DrawerOverlay from "../DrawerOverlay/index.vue";
import emitter from "../../store/events"; import emitter from "../../store/events";
import TransferDom from "../../directives/transfer-dom"; import TransferDom from "../../directives/transfer-dom";
import MicroContent from "./content.vue"; import MicroContent from "./content.vue";
import store from "../../store";
export default { export default {
name: "MicroApps", name: "MicroApps",
@ -177,7 +177,7 @@ export default {
// //
finish(e) { finish(e) {
const app = this.apps.find(({appName}) => appName == e.detail.name); const app = this.apps.find(({name}) => name == e.detail.name);
if (app) { if (app) {
app.isLoading = false app.isLoading = false
} }
@ -189,7 +189,7 @@ export default {
* @returns {*} * @returns {*}
*/ */
appData(name) { appData(name) {
const app = this.apps.find(({appName}) => appName == name); const app = this.apps.find(item => item.name == name);
if (!app) { if (!app) {
return {}; return {};
} }
@ -205,61 +205,82 @@ export default {
UserSelect, UserSelect,
DatePicker, DatePicker,
}, },
options: {
shortcuts: $A.timeOptionShortcuts(),
}
}, },
initialData: { props: {
...app.initialData, ...app.props,
userId: this.userId,
userToken: this.userToken,
userInfo: this.userInfo,
systemInfo: window.systemInfo,
baseUrl: $A.mainUrl(), baseUrl: $A.mainUrl(),
systemInfo: window.systemInfo,
isEEUIApp: $A.isEEUIApp, isEEUIApp: $A.isEEUIApp,
isElectron: $A.isElectron, isElectron: $A.isElectron,
isMainElectron: $A.isMainElectron, isMainElectron: $A.isMainElectron,
isSubElectron: $A.isSubElectron, isSubElectron: $A.isSubElectron,
languages: { languageList,
languageList, languageName,
languageName,
},
themeName: this.themeName, themeName: this.themeName,
userInfo: this.userInfo,
userToken: this.userToken,
}, },
handleClose: (destroy = false) => { methods: {
this.closeMicroApp(name, destroy) close: (destroy = false) => {
}, this.closeMicroApp(name, destroy)
},
handleBack: async () => { back: () => {
try { try {
this.$refs[`ref-${name}`][0].close() this.$refs[`ref-${name}`][0].close()
} catch (e) { } catch (e) {
this.closeMicroApp(name) this.closeMicroApp(name)
} }
}, },
nextZIndex: () => {
nextModalIndex: () => { if (typeof window.modalTransferIndex === 'number') {
if (typeof window.modalTransferIndex === 'number') { return window.modalTransferIndex++;
return window.modalTransferIndex++; }
} return 1000;
return 1000; },
}, openWindow: (params) => {
if (!$A.isJson(params)) {
openAppChildPage: (objects) => { params = {path: params}
this.$store.dispatch('openAppChildPage', objects); }
}, if (params.url) {
params.path = params.url
openChildWindow: (params) => { delete params.url
this.$store.dispatch('openChildWindow', params); }
}, this.$store.dispatch('openChildWindow', params);
},
openWebTabWindow: (url) => { openTabWindow: (url) => {
this.$store.dispatch('openWebTabWindow', url); this.$store.dispatch('openWebTabWindow', url);
},
openAppPage: (params) => {
if (!$A.isJson(params)) {
params = {url: params}
}
this.$store.dispatch('openAppChildPage', {
pageType: 'app',
pageTitle: params.title || " ",
url: 'web.js',
params: {
url: params.url,
titleFixed: typeof params.titleFixed === 'boolean' ? params.titleFixed : false,
},
});
},
extraCallA: (...args) => {
if (args.length > 0 && typeof args[0] === 'string') {
const methodName = args[0];
const methodParams = args.slice(1);
if (typeof $A[methodName] === 'function') {
return $A[methodName](...methodParams);
}
}
return null;
},
}, },
} }
}, },
@ -267,26 +288,26 @@ export default {
/** /**
* 打开微应用 * 打开微应用
* @param config * @param config
* - appName 应用名称 * - name 应用名称
* - appUrl 应用地址 * - url 应用地址
* - initialData 初始化数据 * - props 传递参数
* - transparent 是否透明模式 (true/false)默认 false * - transparent 是否透明模式 (true/false)默认 false
* - keepAlive 是否开启微应用保活 (true/false)默认 true * - keepAlive 是否开启微应用保活 (true/false)默认 true
*/ */
openMicroApp(config) { openMicroApp(config) {
// //
config.appName = config.appName || 'micro-app' config.name = config.name || 'micro-app'
config.appUrl = config.appUrl || null config.url = config.url || null
config.initialData = $A.isJson(config.initialData) ? config.initialData : {} config.props = $A.isJson(config.props) ? config.props : {}
config.transparent = typeof config.transparent == 'boolean' ? config.transparent : false config.transparent = typeof config.transparent == 'boolean' ? config.transparent : false
config.keepAlive = typeof config.keepAlive == 'boolean' ? config.keepAlive : true config.keepAlive = typeof config.keepAlive == 'boolean' ? config.keepAlive : true
// //
const app = this.apps.find(({appName}) => appName == config.appName); const app = this.apps.find(({name}) => name == config.name);
if (app) { if (app) {
// //
if (app.appUrl != config.appUrl) { if (app.url != config.url) {
microApp.unmountApp(app.appName, {destroy: true}) microApp.unmountApp(app.name, {destroy: true})
app.isLoading = true app.isLoading = true
} }
for (let key in config) { for (let key in config) {
@ -312,14 +333,14 @@ export default {
* @param destroy * @param destroy
*/ */
closeMicroApp(name, destroy) { closeMicroApp(name, destroy) {
const app = this.apps.find(({appName}) => appName == name); const app = this.apps.find(item => item.name == name);
if (!app) { if (!app) {
return; return;
} }
app.isOpen = false app.isOpen = false
if (destroy) { if (destroy) {
microApp.unmountApp(app.appName, {destroy: true}) microApp.unmountApp(app.name, {destroy: true})
} }
}, },

View File

@ -4670,10 +4670,10 @@ export default {
if (/^\d+$/.test(value)) { if (/^\d+$/.test(value)) {
// 打开详情页 // 打开详情页
emitter.emit('openMicroApp', { emitter.emit('openMicroApp', {
appName: 'okr-details', name: 'okr-details',
appUrl: `http://127.0.0.1:5567/apps/okr/`, url: `http://127.0.0.1:5567/apps/okr/`,
// appUrl: $A.mainUrl('apps/okr/'), // url: $A.mainUrl('apps/okr/'),
initialData: { props: {
type: 'details', type: 'details',
id: value, id: value,
}, },
@ -4682,9 +4682,9 @@ export default {
} else { } else {
// 打开列表、统计 // 打开列表、统计
emitter.emit('openMicroApp', { emitter.emit('openMicroApp', {
appName: `okr-${value}`, name: `okr-${value}`,
appUrl: `http://127.0.0.1:5567/apps/okr/${value}`, url: `http://127.0.0.1:5567/apps/okr/${value}`,
// appUrl: $A.mainUrl(`apps/okr/${value}`), // url: $A.mainUrl(`apps/okr/${value}`),
}); });
} }
}, },