From 0ba9e571a77dab21c749461c298af1bca69b6b98 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期日, 07 四月 2024 16:52:10 +0800
Subject: [PATCH] 路由整合代码

---
 Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue |   99 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 95 insertions(+), 4 deletions(-)

diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
index ea61245..4ed2338 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
@@ -1,12 +1,27 @@
 <template>
   <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid">
-
+    <div v-if="isError" style="color: #F56C6C">杩欎釜鑷畾涔夐〉闈㈢殑鍦板潃鏍煎紡涓嶆纭�傛帹鑽愪娇鐢╞s=?type=xxx&context=yyy&pparam=zzz杩欑褰㈠紡</div>
+    <component v-else :is="currentComponent"
+               :btmType="btmType"
+               :content="content"
+               :inDialog="true"
+               :key="areasName+'customCom-'+componentVO.oid"
+               :componentVO="componentVO"
+               :sourceData="sourceData"
+               :dataStore="dataStore"
+               :areasName="areasName"
+               :paramVOS="urlParams"></component>
   </div>
 </template>
 
 <script>
 export default {
   name: "dynamic-custom",
+  components:{
+    'UI':()=>import('@/views/base/UIContentViewerInDialog'),
+    'test':()=>import('@/views/custom-ui/test'),
+    'test2':()=>import('@/views/custom-ui/test2'),
+  },
   props:{
     componentVO:{
       type:Object,
@@ -21,17 +36,93 @@
       default:''
     },
     sourceData:{
-      //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁
+      //鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁
       type:Object,
       default: {}
+    },
+    dataStore:{
+      //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁
+      type:Array,
+      default: []
     },
     paramVOS:{
       type:Object,
       default: {}
-    }
+    },
+    isShow: {
+      //鎵�鍦ㄥ尯鍩熸槸鍚﹀凡鏄剧ず锛岄拡瀵箃ab鍜宑ollapse
+      type: Boolean,
+      default: true
+    },
   },
   data() {
-    return {}
+    return {
+      btmType:'',
+      content:'',
+      urlParams:{},
+      height:'300px',
+      customClass:this.componentVO.customClass, //bs=?type=xxx&context=yyy&param=zzz  鎴栬�� bs=缁勪欢name?type=xxx&context=yyy&param=zzz
+      isError:false, //璺緞瑙f瀽澶辫触
+      currentComponent: 'UI',//缁勪欢name
+    }
+  },
+  watch:{
+    sourceData:{
+      handler(newval) {
+        //婧愭暟鎹湁鍙樺寲鏃跺彉鏇村綋鍓嶅尯鍩熸暟鎹�
+        console.log(this.areasName);
+        console.log(newval);
+      }
+    }
+  },
+  computed:{
+  },
+  created() {
+
+  },
+  mounted() {
+    if(this.customClass.indexOf("bs=") <0){
+      this.isError=true;
+      return ;
+    }
+    this.customClass=this.componentVO.customClass.split("bs=")[1];
+    if(this.customClass.indexOf("?") <0 || this.customClass.indexOf("type=") <0 || this.customClass.indexOf("context=") <0){
+      this.isError=true;
+      return ;
+    }
+    if(this.customClass.split('?')[0]!='' && this.customClass.split('?')[0]!='UI' && this.customClass.split('?')[0]!='ui'){
+      this.currentComponent=this.customClass.split('?')[0];
+    }
+    this.customClass=this.componentVO.customClass.split("?")[1].split('&');
+    let urlParams={};
+    let btmType=''
+    let content=''
+    this.customClass.forEach(item=>{
+      var preParam =item.split("=");
+      if(preParam[0]=='type'){
+        btmType=preParam[1];
+      }else if(preParam[0]=='context'){
+        content=preParam[1];
+      }else{
+        urlParams[preParam[0]] = preParam[1];
+      }
+    })
+
+
+      this.btmType=btmType,
+      this.content=content,
+      this.urlParams=Object.assign(this.paramVOS,urlParams)
+
+    //this.getHeight(this.$parent);
+ },
+  methods:{
+    getHeight(el){
+      if(el.$el.clientHeight>50){
+        this.height=el.$el.clientHeight+'px';
+      }else {
+        this.getHeight(el.$parent);
+      }
+    }
   }
 }
 </script>

--
Gitblit v1.9.3