import { ViewPanelModel } from '@ibiz-template/model'; import { useViewPanelController } from '@ibiz-template/vue-util'; import { defineComponent, getCurrentInstance, PropType } from 'vue'; import { IModal, ViewMode } from '@ibiz-template/runtime'; export const ViewPanel = defineComponent({ props: { modelData: { type: ViewPanelModel, required: true, }, context: { type: Object as PropType<IContext>, required: true }, params: { type: Object as PropType<IParams>, default: () => ({}) }, }, setup(props) { const { proxy } = getCurrentInstance()!; const c = useViewPanelController( proxy, props.modelData, props.context, props.params, ); // 模态对象 const modal: IModal = { mode: ViewMode.EMBED }; // 视图模型路径 const viewPath = c.model.embedView.source.modelPath; return { c, modal, viewPath }; }, render(h) { if (!this.c.complete) { return; } return h('ViewShell', { attrs: { context: this.c.context, params: this.c.params, modal: this.modal, modelPath: this.viewPath, }, on: { neuronInit: this.c.nerve.onNeuronInit('embedView'), }, }); }, });