From 46f7ae4e3a00e3a1ce38498dce0dd373726e9648 Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期五, 10 五月 2024 12:16:05 +0800 Subject: [PATCH] 查看action,自定义组件展示 --- Source/ProjectWeb/src/components/actions/base/TabViewAction.js | 48 +++++++++++++++++++++++++----------------------- 1 files changed, 25 insertions(+), 23 deletions(-) diff --git a/Source/ProjectWeb/src/components/actions/base/TabViewAction.js b/Source/ProjectWeb/src/components/actions/base/TabViewAction.js index 9430fa9..d8c914d 100644 --- a/Source/ProjectWeb/src/components/actions/base/TabViewAction.js +++ b/Source/ProjectWeb/src/components/actions/base/TabViewAction.js @@ -4,9 +4,7 @@ import {paramLow,callPreEvent,callPostEvent,replaceFreeMarker} from './BaseAction'; import {validatenull} from "@/util/validate"; import Vue from "vue"; -import AddEditDialog from "@/components/actions/AddEditDialog"; -import Layout from "@/router/page"; -import router from '@/router/router'; +import ViewDialog from "@/components/actions/base/ViewDialog"; export const doAction = (options,callback) => { const paramVOS = Object.assign({ @@ -43,36 +41,40 @@ */ export const doView = (options,callback)=> { const paramVOS = options.paramVOS; - let component = '@/views/base/UIContentViewerInDialog'; + let component = 'base/UIContentViewerInDialog'; if (!validatenull(paramVOS.customurl)) { //鑷畾涔塲s - component = `@/views/custom-ui/` + paramVOS.customurl; + component = `custom-ui/` + paramVOS.customurl; }else{ if (!paramVOS['type'] || !paramVOS['context']) { Vue.prototype.$message.error("鎸夐挳閰嶇疆涓嶆纭�"); return false; } } - let name="鏌ョ湅鏁版嵁" + paramVOS.component=component; + let name="鏌ョ湅璇︽儏" if(paramVOS.showname){ - name=replaceFreeMarker(paramVOS.showname,options.dataStore,options.sourceData) + name="鏌ョ湅銆�"+replaceFreeMarker(paramVOS.showname,options.dataStore,options.sourceData)+"銆�" } - router.addRoutes({ - path: '/view-form'+options.dataStore[0].oid, - name: name, - component: Layout, - meta: { - keepAlive: true, - isTab: true - }, - children: [ - { - path: '', // 绌鸿矾寰勮〃绀鸿闂� '/dynamic-form' 鏃跺姞杞� Layout 缁勪欢 - component: () => import(component), - props: true - } - ] - }) + paramVOS.title=name; + const dialogConstructor = Vue.extend(ViewDialog); + let instance = new dialogConstructor(); + instance.sourceData = options.sourceData; + instance.dataStore = options.dataStore; + instance.paramVOS = paramVOS + + instance.dialogClose = function () { + vm.visible = false; + document.body.removeChild(vm.$el); + instance.$destroy(); + instance = null; + }; + if (callback) { + instance.saveCallback = callback; + } + let vm = instance.$mount(); + document.body.appendChild(vm.$el); + instance.visible = true; } /** * 鍓嶇疆浜嬩欢 -- Gitblit v1.9.3