From 55fdd88d12e656fae07f54e53af60fcf3bb19c8a Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期二, 26 三月 2024 17:12:09 +0800 Subject: [PATCH] 动态按钮封装方法-表格树添加默认新增子级按钮 --- Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue | 86 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 83 insertions(+), 3 deletions(-) diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue index 804a731..65f7a43 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue @@ -1,8 +1,19 @@ <template> - <div></div> + <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="currentComponent" + :customOptions="customOptions" + :inDialog="inDialog" + :key="areasName+'customCom-'+componentVO.oid" + :componentVO="componentVO" + :sourceData="sourceData" + :areasName="areasName" + :paramVOS="paramVOS"></component> + </div> </template> <script> + export default { name: "dynamic-custom", props:{ @@ -26,10 +37,79 @@ paramVOS:{ type:Object, default: {} - } + }, + isShow: { + //鎵�鍦ㄥ尯鍩熸槸鍚﹀凡鏄剧ず锛岄拡瀵箃ab鍜宑ollapse + type: Boolean, + default: true + }, + }, + components:{ + 'my-dynamic-component': ()=>import('@/views/base/UIContentViewerInDialog') }, data() { - return {} + return { + customClass:this.componentVO.customClass, //UI:type#content?param=xxx鎴栬�� 缁勪欢name:type#content?param=xxx + isError:false, //璺緞瑙f瀽澶辫触 + currentComponent: 'my-dynamic-component', + componentPath:'@/views/base/UIContentViewerInDialog' //鑷畾涔変娇鐢ㄧ殑缁勪欢璺緞 + } + }, + computed:{ + customOptions() { + let componentPath='@/views/base/UIContentViewerInDialog'; + 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]; + } + let urlParams={}; + let btmType='' + let content='' + if(this.customClass.split(':')[1].indexOf("?") <0){ + btmType=this.customClass.split(':')[1].split('#')[0]; + content=this.customClass.split(':')[1].split('#')[1]; + }else { + let split1 = this.customClass.split(':')[1].split('?')[0]; + let split2 = this.customClass.split(':')[1].split('?')[1]; + btmType=split1.split('#')[0]; + content=split1.split('#')[1]; + let paramsArray = split2.split("&"); + paramsArray.forEach(item=>{ + var preParam =item.split("="); + if(preParam[0]=='btmname'){ + urlParams['btmType']=preParam[1]; + }else if(preParam[0]=='imagetype'){ + urlParams['imageType']=preParam[1]; + if(preParam[1]=='fileobject'){ + + } + }else{ + urlParams[preParam[0]] = preParam[1]; + } + }) + } + + this.componentPath=componentPath; + return { + btmType:btmType, + content:content, + urlParams: urlParams, + uiComponentType: this.componentVO.uiComponentType, + uiComponentTypeText: this.componentVO.uiComponentTypeText, + uiParseClass: this.componentVO.uiParseClass + } + }, + asyncComponent() { + return import(this.componentPath); + } + }, + created() { + // debugger; + // this.components["my-dynamic-component"] = import(this.componentPath); } } </script> -- Gitblit v1.9.3