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/dynamic-components/dynamic-custom.vue |   46 ++++++++++++++++++++++++++--------------------
 1 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
index f96eff4..44dbf0e 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
@@ -27,11 +27,6 @@
 import {validatenull} from "@/util/validate";
 export default {
   name: "dynamic-custom",
-  components: {
-    'UI': () => import('@/views/base/UIContentViewerInDialog'),
-    'test': () => import('@/views/custom-ui/test'),
-    'test2': () => import('@/views/custom-ui/test2'),
-  },
   props: {
     //ui涓婁笅鏂囩殑涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛�
     uiBtmType: {
@@ -86,7 +81,8 @@
       height: '300px',
       customClass: '', //?type=xxx&context=yyy&param=zzz  鎴栬�� 缁勪欢name?type=xxx&context=yyy&param=zzz
       isError: false, //璺緞瑙f瀽澶辫触
-      currentComponent: 'UI',//缁勪欢name
+      ComponentUrl:'base/UIContentViewerInDialog',
+      currentComponent: null
     }
   },
   watch: {
@@ -102,39 +98,49 @@
   },
   computed: {},
   created() {
-
-  },
-  mounted() {
+    this.customClass=this.componentVO.customClass;
     this.componentVO.customClass.split(';').forEach(item=>{
       if(item.indexOf('web=')==0){
         this.customClass=item.split('web=')[1];
       }
     })
+    let urlParams = {};
     // 濡傛灉璺緞涓瓨鍦� '?'锛屽垯鍙栭棶鍙峰墠闈㈤儴鍒嗙粰 parts
     if (this.customClass.includes('?')) {
-      this.currentComponent = this.customClass.split("?")[0];
+      this.ComponentUrl = this.customClass.split("?")[0];
+      urlParams = queryStringToObject(this.customClass);
     } else {
-      this.currentComponent = this.customClass; // 涓嶅瓨鍦� '?' 鏁存潯璺緞灏辨槸 parts
+      this.ComponentUrl = this.customClass; // 涓嶅瓨鍦� '?' 鏁存潯璺緞灏辨槸 parts
     }
-    if(validatenull(this.currentComponent)){
-      this.currentComponent='UI';
+    if(validatenull(this.ComponentUrl) || ['UI', 'ui'].includes(this.ComponentUrl)){
+      this.ComponentUrl='base/UIContentViewerInDialog';
+    }else {
+      this.ComponentUrl='custom-ui/'+this.ComponentUrl;
     }
-    if (['UI', 'ui'].includes(this.currentComponent) && (this.customClass.indexOf("type=") < 0 || this.customClass.indexOf("context=") < 0)) {
+    if (this.ComponentUrl=='base/UIContentViewerInDialog' && (!urlParams.type || !urlParams.context)) {
       this.isError = true;
       return;
-    }
-    let urlParams = {};
-    if(this.customClass.includes('?')) {
-      urlParams = queryStringToObject(this.customClass);
     }
 
     this.btmType = urlParams.type;
     this.context = urlParams.context;
-    this.urlParams = Object.assign(this.paramVOS, urlParams)
-
+    this.urlParams = Object.assign({},this.paramVOS, urlParams)
+    this.loadCompoent();
+  },
+  mounted() {
     //this.getHeight(this.$parent);
   },
   methods: {
+    loadCompoent(){
+      // 鍔ㄦ�佸鍏ョ粍浠�
+      import(`@/views/${this.ComponentUrl}.vue`).then((module) => {
+        // 鎴愬姛瀵煎叆鍚庯紝灏嗙粍浠舵敞鍐屽埌Vue瀹炰緥涓�
+        this.currentComponent = module.default;
+      }).catch((error) => {
+        // 澶勭悊瀵煎叆澶辫触鐨勬儏鍐�
+        console.error('缁勪欢鍔犺浇澶辫触:', error);
+      });
+    },
     getHeight(el) {
       if (el.$el.clientHeight > 50) {
         this.height = el.$el.clientHeight + 'px';

--
Gitblit v1.9.3