From 353efff194122e281925a390be5d576c2f4fff6d Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期三, 27 三月 2024 18:04:04 +0800 Subject: [PATCH] UI上下文展示引擎 --- Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue | 53 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 37 insertions(+), 16 deletions(-) diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue index 4074c3d..5d85586 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue @@ -1,12 +1,13 @@ <template> <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid"> <div v-if="isError" style="color: #F56C6C">杩欎釜鑷畾涔夐〉闈㈢殑鍦板潃鏍煎紡涓嶆纭�傛帹鑽愪娇鐢║I:type#content?param=xxx杩欑褰㈠紡</div> - <component v-else :is="asyncComponent" + <component v-else :is="currentComponent" :customOptions="customOptions" - :inDialog="inDialog" + :inDialog="true" :key="areasName+'customCom-'+componentVO.oid" :componentVO="componentVO" :sourceData="sourceData" + :dataStore="dataStore" :areasName="areasName" :paramVOS="paramVOS"></component> </div> @@ -15,6 +16,11 @@ <script> export default { name: "dynamic-custom", + components:{ + 'UI':()=>import('@/views/base/UIContentViewerInDialog'), + 'test':()=>import('@/components/custom-ui/test'), + 'test2':()=>import('@/components/custom-ui/test2'), + }, props:{ componentVO:{ type:Object, @@ -33,6 +39,11 @@ type:Object, default: {} }, + dataStore:{ + //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁 + type:Array, + default: [] + }, paramVOS:{ type:Object, default: {} @@ -43,26 +54,31 @@ default: true }, }, - components:{ - - }, data() { return { + height:'300px', customClass:this.componentVO.customClass, //UI:type#content?param=xxx鎴栬�� 缁勪欢name:type#content?param=xxx isError:false, //璺緞瑙f瀽澶辫触 - componentPath:'@/views/base/UIContentViewer' //鑷畾涔変娇鐢ㄧ殑缁勪欢璺緞 + currentComponent: 'UI',//缁勪欢name + } + }, + watch:{ + sourceData:{ + handler(newval) { + console.log(this.areasName); + console.log(newval); + } } }, computed:{ customOptions() { - let componentPath='@/views/base/UIContentViewer'; if(this.customClass.indexOf(":") <0){ this.isError=true; return ; } if(this.customClass.split(':')[0]!='UI' && this.customClass.split(':')[0]!='ui'){ - componentPath='@/views/custom/'+this.customClass.split(':')[0]; + this.currentComponent=this.customClass.split(':')[0]; } let urlParams={}; let btmType='' @@ -91,22 +107,27 @@ }) } - this.componentPath=componentPath; return { btmType:btmType, content:content, - urlParams: urlParams, - uiComponentType: this.componentVO.uiComponentType, - uiComponentTypeText: this.componentVO.uiComponentTypeText, - uiParseClass: this.componentVO.uiParseClass + urlParams: urlParams } - }, - asyncComponent() { - return import(this.componentPath); } }, created() { + }, + mounted() { + //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