From 59765cab961847dfd101e69ae6d8d1d501a5284c Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期二, 04 六月 2024 11:10:28 +0800
Subject: [PATCH] 1、ice配置文件上传
---
Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue | 47 +++++++++++++++++++++++++++--------------------
1 files changed, 27 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..360191b 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,50 @@
},
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', 'base','bs'].includes(this.ComponentUrl)){
+ this.ComponentUrl='views/base/UIContentViewerInDialog';
+ }else if(this.ComponentUrl.indexOf('views/')===-1){
+ this.ComponentUrl='views/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(`@/${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