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¶m=zzz 鎴栬�� 缁勪欢name?type=xxx&context=yyy¶m=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