From 68da5e6be8dd55a691fb42d119bebe75611eb4b0 Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期二, 26 三月 2024 15:59:46 +0800 Subject: [PATCH] UI上下文展示引擎 --- Source/ProjectWeb/src/components/custom-ui/test2.vue | 15 + Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue | 23 +- Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue | 40 ++-- Source/ProjectWeb/src/views/base/UIContentArea.vue | 4 Source/ProjectWeb/src/views/base/uiDefineVO.js | 363 ++++++++++++++++++++++++++++++++++---------- Source/ProjectWeb/src/components/custom-ui/test.vue | 15 + Source/ProjectWeb/src/views/base/uiDefineVOInDialog.js | 18 +- 7 files changed, 353 insertions(+), 125 deletions(-) diff --git a/Source/ProjectWeb/src/components/custom-ui/test.vue b/Source/ProjectWeb/src/components/custom-ui/test.vue new file mode 100644 index 0000000..76f270c --- /dev/null +++ b/Source/ProjectWeb/src/components/custom-ui/test.vue @@ -0,0 +1,15 @@ +<template> + <basic-container> + 娴嬭瘯鑷畾涔夌粍浠跺睍绀篸dddd + </basic-container> +</template> + +<script> +export default { + name: "test" +} +</script> + +<style scoped> + +</style> diff --git a/Source/ProjectWeb/src/components/custom-ui/test2.vue b/Source/ProjectWeb/src/components/custom-ui/test2.vue new file mode 100644 index 0000000..e73b6cf --- /dev/null +++ b/Source/ProjectWeb/src/components/custom-ui/test2.vue @@ -0,0 +1,15 @@ +<template> + <basic-container> + 娴嬭瘯鑷畾涔夌粍浠跺睍绀�222222222 + </basic-container> +</template> + +<script> +export default { + name: "test2" +} +</script> + +<style scoped> + +</style> diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue index 14bcc52..40c33d6 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue @@ -13,9 +13,13 @@ </template> <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, @@ -44,27 +48,23 @@ default: true }, }, - components:{ - 'my-dynamic-component': ()=>import('@/views/base/UIContentViewerInDialog') - }, data() { return { + height:'300px', 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' //鑷畾涔変娇鐢ㄧ殑缁勪欢璺緞 + currentComponent: 'UI',//缁勪欢name } }, 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]; + this.currentComponent=this.customClass.split(':')[0]; } let urlParams={}; let btmType='' @@ -93,23 +93,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() { - debugger; - this.components["my-dynamic-component"] = import(this.componentPath); + + }, + 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> diff --git a/Source/ProjectWeb/src/views/base/UIContentArea.vue b/Source/ProjectWeb/src/views/base/UIContentArea.vue index 705baaf..b850356 100644 --- a/Source/ProjectWeb/src/views/base/UIContentArea.vue +++ b/Source/ProjectWeb/src/views/base/UIContentArea.vue @@ -2,7 +2,7 @@ <basic-container :cradStyle="cradStyle" cardBodyStyle="height:100%;box-sizing: border-box;padding-bottom:5px;"> <el-tabs style="height: 100%;" class="UITabs" v-if="areasData.length>1" v-model="activeName" type="card" @tab-click="tabHandleClick"> <el-tab-pane style="height:100%;overflow: auto" v-for="(areaItem,index) in areasData" :key="areaItem.oid" :label="areaItem.name" :name="areasName+'-Tab-'+index"> - <el-collapse class="UI-collapse" v-model="collapseActiveNames" v-if="areaItem.componentVOs.length>1" @change="handleChange"> + <el-collapse class="UI-collapse" :key="areaItem.oid+'-collapse'" v-model="collapseActiveNames" v-if="areaItem.componentVOs.length>1" @change="handleChange"> <el-collapse-item v-for="(componentVO,componentIndex) in areaItem.componentVOs" :name="areasName+'-collapse-'+componentIndex"> <template slot="title"> {{componentVO.name}} @@ -30,7 +30,7 @@ </el-tab-pane> </el-tabs> <div v-else style="height:100%;overflow: auto"> - <el-collapse class="UI-collapse" v-model="collapseActiveNames" v-if="areasData[0].componentVOs.length>1" @change="handleChange"> + <el-collapse class="UI-collapse" :key="areasData[0].oid+'-collapse'" v-model="collapseActiveNames" v-if="areasData[0].componentVOs.length>1" @change="handleChange"> <el-collapse-item v-for="(componentVO,componentIndex) in areasData[0].componentVOs" :name="areasName+'-collapse-'+componentIndex"> <template slot="title"> {{componentVO.name}} diff --git a/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue b/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue index 0d7ada0..54cb510 100644 --- a/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue +++ b/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue @@ -23,14 +23,13 @@ </el-aside> <el-container style="height: 100%"> <el-main v-if="uiDefineVO.centerAreas && uiDefineVO.centerAreas.length>0" :style="'height: '+centerHeight"> - <UIContentArea :key="'centerArea-'+uiDefineVO.oid" areas-name="centerArea" - cradStyle="" - :areasData="uiDefineVO.centerAreas" - :inDialog="inDialog" - :sourceData="checkedData.westAreas[0]" - :dataStore="checkedData.centerAreas[0]" - :paramVOS="paramVOS"> - </UIContentArea> + <u-i-content-area :key="'centerArea-'+uiDefineVO.oid" areas-name="centerArea" + cradStyle="" + :areasData="uiDefineVO.centerAreas" + :inDialog="inDialog" + :sourceData="checkedData.westAreas[0]" + :dataStore="checkedData.centerAreas[0]" + :paramVOS="paramVOS"></u-i-content-area> </el-main> <el-footer v-if="uiDefineVO.southAreas && uiDefineVO.southAreas.length>0" height="300px" style="max-height: 300px"> <UIContentArea :key="'southArea-'+uiDefineVO.oid" areas-name="southArea" @@ -72,12 +71,16 @@ paramVOS:{ type:Object, default: {} + }, + customOptions:{ + type:Object, + default: {} } }, data() { return { - btmType:'',//涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛� - content:'',//UI涓婁笅鏂囩殑鍚嶇О + btmType:this.customOptions.btmType,//涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛� + content:this.customOptions.content,//UI涓婁笅鏂囩殑鍚嶇О checkedData:{ //鍚勫尯鍩熼�変腑鏁版嵁 westAreas:[], diff --git a/Source/ProjectWeb/src/views/base/uiDefineVO.js b/Source/ProjectWeb/src/views/base/uiDefineVO.js index 204d860..697d06d 100644 --- a/Source/ProjectWeb/src/views/base/uiDefineVO.js +++ b/Source/ProjectWeb/src/views/base/uiDefineVO.js @@ -1085,55 +1085,6 @@ "checkOutBy": null, "checkOutTime": null, "componentVOs": [ - - { - "btmname": null, - "buttons": [], - "checkInBy": null, - "checkInTime": null, - "checkOutBy": null, - "checkOutTime": null, - "copyFromVersion": null, - "createTime": null, - "creator": null, - "customClass": "I:processreview#DepartmentProcessReview_web?param=xxx", - "data": null, - "description": "", - "extendAttr": "", - "firstR": null, - "firstV": null, - "formDefineVO": null, - "id": null, - "lastModifier": null, - "lastModifyTime": null, - "lastR": null, - "lastV": null, - "lcStatus": null, - "lcStatusText": null, - "lctid": null, - "name": "鑷畾涔夋樉绀�", - "nameOid": null, - "oid": "A05C554A-5589-F964-2004-15CB05CBEE6D", - "orderNum": 2, - "owner": null, - "pkLayout": "C08F5364-F23D-9602-2165-2487E3DD9E0C", - "revisionOid": null, - "revisionRule": null, - "revisionSeq": 0, - "revisionValue": null, - "secretGrade": null, - "secretGradeText": null, - "tableDefineVO": null, - "treeDefineVO": null, - "treeTableDefineVO": null, - "ts": null, - "uiComponentType": "customer", - "uiComponentTypeText": "鑷畾涔夋ā鏉�", - "uiParseClass": "", - "versionRule": null, - "versionSeq": 0, - "versionValue": null - }, { "btmname": null, "buttons": [ @@ -2619,6 +2570,54 @@ "versionRule": null, "versionSeq": 0, "versionValue": null + }, + { + "btmname": null, + "buttons": [], + "checkInBy": null, + "checkInTime": null, + "checkOutBy": null, + "checkOutTime": null, + "copyFromVersion": null, + "createTime": null, + "creator": null, + "customClass": "test2:processreview#DepartmentProcessReview_web?param=xxx", + "data": null, + "description": "", + "extendAttr": "", + "firstR": null, + "firstV": null, + "formDefineVO": null, + "id": null, + "lastModifier": null, + "lastModifyTime": null, + "lastR": null, + "lastV": null, + "lcStatus": null, + "lcStatusText": null, + "lctid": null, + "name": "鑷畾涔夋樉绀�", + "nameOid": null, + "oid": "A05C554A-5589-F964-2004-15CB05CBEE6D", + "orderNum": 2, + "owner": null, + "pkLayout": "C08F5364-F23D-9602-2165-2487E3DD9E0C", + "revisionOid": null, + "revisionRule": null, + "revisionSeq": 0, + "revisionValue": null, + "secretGrade": null, + "secretGradeText": null, + "tableDefineVO": null, + "treeDefineVO": null, + "treeTableDefineVO": null, + "ts": null, + "uiComponentType": "customer", + "uiComponentTypeText": "鑷畾涔夋ā鏉�", + "uiParseClass": "", + "versionRule": null, + "versionSeq": 0, + "versionValue": null } ], "copyFromVersion": null, @@ -3188,42 +3187,7 @@ "versionRule": null, "versionSeq": 0, "versionValue": null - } - ], - "checkInBy": null, - "checkInTime": null, - "checkOutBy": null, - "checkOutTime": null, - "copyFromVersion": null, - "createTime": "2022-02-08 10:40:50.000", - "creator": "developer", - "data": null, - "description": "", - "eastAreas": null, - "firstR": null, - "firstV": null, - "id": "ProcessReviewList_web", - "lastModifier": "developer", - "lastModifyTime": "2022-07-18 17:30:51.000", - "lastR": null, - "lastV": null, - "lcStatus": null, - "lcStatusText": null, - "lctid": null, - "linkTypeFlag": false, - "linkTypeId": null, - "name": "宸ヨ壓璇勫鍒楄〃_web", - "nameOid": null, - "northAreas": [], - "oid": "DBB13AF7-021F-ED27-B285-03E8599548EB", - "owner": null, - "revisionOid": null, - "revisionRule": null, - "revisionSeq": 0, - "revisionValue": null, - "secretGrade": null, - "secretGradeText": null, - "southAreas": [ + }, { "btmname": null, "checkInBy": null, @@ -3882,7 +3846,234 @@ "versionRule": null, "versionSeq": 0, "versionValue": null - } + }, + { + "btmname": null, + "checkInBy": null, + "checkInTime": null, + "checkOutBy": null, + "checkOutTime": null, + "componentVOs": [ + { + "btmname": null, + "buttons": [], + "checkInBy": null, + "checkInTime": null, + "checkOutBy": null, + "checkOutTime": null, + "copyFromVersion": null, + "createTime": null, + "creator": null, + "customClass": "test:processreview#DepartmentProcessReview_web?param=xxx", + "data": null, + "description": "", + "extendAttr": "", + "firstR": null, + "firstV": null, + "formDefineVO": null, + "id": null, + "lastModifier": null, + "lastModifyTime": null, + "lastR": null, + "lastV": null, + "lcStatus": null, + "lcStatusText": null, + "lctid": null, + "name": "鑷畾涔夋樉绀�", + "nameOid": null, + "oid": "A05C554A-5589-F964-2004-15CB05CBEE6D", + "orderNum": 2, + "owner": null, + "pkLayout": "C08F5364-F23D-9602-2165-2487E3DD9E0C", + "revisionOid": null, + "revisionRule": null, + "revisionSeq": 0, + "revisionValue": null, + "secretGrade": null, + "secretGradeText": null, + "tableDefineVO": null, + "treeDefineVO": null, + "treeTableDefineVO": null, + "ts": null, + "uiComponentType": "customer", + "uiComponentTypeText": "鑷畾涔夋ā鏉�", + "uiParseClass": "", + "versionRule": null, + "versionSeq": 0, + "versionValue": null + } + ], + "copyFromVersion": null, + "createTime": "2022-02-08 10:40:50.000", + "creator": "developer", + "data": null, + "description": "", + "displayExpression": "", + "enableStatus": true, + "extendAttr": "", + "firstR": null, + "firstV": null, + "id": "2", + "international": null, + "lastModifier": "developer", + "lastModifyTime": "2022-07-18 17:30:52.000", + "lastR": null, + "lastV": null, + "layoutAreaType": "center", + "layoutAreaTypeText": null, + "lcStatus": null, + "lcStatusText": null, + "lctid": null, + "name": "鑷畾涔�", + "nameOid": null, + "oid": "90D6FE27-C15F-CEFF-3F5E-CB349F7954EE", + "orderNum": 2, + "owner": null, + "pkContent": "DBB13AF7-021F-ED27-B285-03E8599548EB", + "revisionOid": null, + "revisionRule": null, + "revisionSeq": 0, + "revisionValue": null, + "secretGrade": null, + "secretGradeText": null, + "title": "鑷畾涔�", + "ts": null, + "uiParseClass": "", + "versionRule": null, + "versionSeq": 0, + "versionValue": null + }, + ], + "checkInBy": null, + "checkInTime": null, + "checkOutBy": null, + "checkOutTime": null, + "copyFromVersion": null, + "createTime": "2022-02-08 10:40:50.000", + "creator": "developer", + "data": null, + "description": "", + "eastAreas": null, + "firstR": null, + "firstV": null, + "id": "ProcessReviewList_web", + "lastModifier": "developer", + "lastModifyTime": "2022-07-18 17:30:51.000", + "lastR": null, + "lastV": null, + "lcStatus": null, + "lcStatusText": null, + "lctid": null, + "linkTypeFlag": false, + "linkTypeId": null, + "name": "宸ヨ壓璇勫鍒楄〃_web", + "nameOid": null, + "northAreas": [], + "oid": "DBB13AF7-021F-ED27-B285-03E8599548EB", + "owner": null, + "revisionOid": null, + "revisionRule": null, + "revisionSeq": 0, + "revisionValue": null, + "secretGrade": null, + "secretGradeText": null, + "southAreas": [ + { + "btmname": null, + "checkInBy": null, + "checkInTime": null, + "checkOutBy": null, + "checkOutTime": null, + "componentVOs": [ + { + "btmname": null, + "buttons": [], + "checkInBy": null, + "checkInTime": null, + "checkOutBy": null, + "checkOutTime": null, + "copyFromVersion": null, + "createTime": null, + "creator": null, + "customClass": "UI:processreview#DepartmentProcessReview_web?param=xxx", + "data": null, + "description": "", + "extendAttr": "", + "firstR": null, + "firstV": null, + "formDefineVO": null, + "id": null, + "lastModifier": null, + "lastModifyTime": null, + "lastR": null, + "lastV": null, + "lcStatus": null, + "lcStatusText": null, + "lctid": null, + "name": "鑷畾涔夋樉绀�", + "nameOid": null, + "oid": "A05C554A-5589-F964-2004-15CB05CBEE6D", + "orderNum": 2, + "owner": null, + "pkLayout": "C08F5364-F23D-9602-2165-2487E3DD9E0C", + "revisionOid": null, + "revisionRule": null, + "revisionSeq": 0, + "revisionValue": null, + "secretGrade": null, + "secretGradeText": null, + "tableDefineVO": null, + "treeDefineVO": null, + "treeTableDefineVO": null, + "ts": null, + "uiComponentType": "customer", + "uiComponentTypeText": "鑷畾涔夋ā鏉�", + "uiParseClass": "", + "versionRule": null, + "versionSeq": 0, + "versionValue": null + } + ], + "copyFromVersion": null, + "createTime": "2022-02-08 10:40:50.000", + "creator": "developer", + "data": null, + "description": "", + "displayExpression": "", + "enableStatus": true, + "extendAttr": "", + "firstR": null, + "firstV": null, + "id": "2", + "international": null, + "lastModifier": "developer", + "lastModifyTime": "2022-07-18 17:30:52.000", + "lastR": null, + "lastV": null, + "layoutAreaType": "center", + "layoutAreaTypeText": null, + "lcStatus": null, + "lcStatusText": null, + "lctid": null, + "name": "璇勫闂鍒楄〃", + "nameOid": null, + "oid": "90D6FE27-C15F-CEFF-3F5E-CB349F7954EE", + "orderNum": 2, + "owner": null, + "pkContent": "DBB13AF7-021F-ED27-B285-03E8599548EB", + "revisionOid": null, + "revisionRule": null, + "revisionSeq": 0, + "revisionValue": null, + "secretGrade": null, + "secretGradeText": null, + "title": "璇勫闂鍒楄〃", + "ts": null, + "uiParseClass": "", + "versionRule": null, + "versionSeq": 0, + "versionValue": null + }, ], "ts": null, "versionRule": null, diff --git a/Source/ProjectWeb/src/views/base/uiDefineVOInDialog.js b/Source/ProjectWeb/src/views/base/uiDefineVOInDialog.js index 4b91c2d..4558584 100644 --- a/Source/ProjectWeb/src/views/base/uiDefineVOInDialog.js +++ b/Source/ProjectWeb/src/views/base/uiDefineVOInDialog.js @@ -247,10 +247,10 @@ "lctid": null, "name": "璇勫浠诲姟鍒楄〃", "nameOid": null, - "oid": "2D6D571B-BB6E-677D-9764-191BC5D5D3F1", + "oid": "2D6D571B-BB6E-677D-9764-191BC5D5D3F11", "orderNum": 1, "owner": null, - "pkLayout": "2692E26B-8584-4561-8A03-D5921A82E490", + "pkLayout": "2692E26B-8584-4561-8A03-D5921A82E4901", "revisionOid": null, "revisionRule": null, "revisionSeq": 0, @@ -473,7 +473,7 @@ "id": "auditTaskTable", "limits": null, "linkTypeFlag": false, - "oid": "0A8030A1-2E3F-5D7D-A599-961A3829E6C5", + "oid": "0A8030A1-2E3F-5D7D-A599-961A3829E6C51", "pageVO": null, "queryColumns": [ { @@ -1061,10 +1061,10 @@ "lctid": null, "name": "璇勫浠诲姟鍒楄〃", "nameOid": null, - "oid": "2692E26B-8584-4561-8A03-D5921A82E490", + "oid": "2692E26B-8584-4561-8A03-D5921A82E4901", "orderNum": 1, "owner": null, - "pkContent": "DBB13AF7-021F-ED27-B285-03E8599548EB", + "pkContent": "DBB13AF7-021F-ED27-B285-03E8599548EB1", "revisionOid": null, "revisionRule": null, "revisionSeq": 0, @@ -1392,10 +1392,10 @@ "lctid": null, "name": "鍒嗙被鏍�", "nameOid": null, - "oid": "7170DFF8-C1DE-04A8-46F0-BC4379980BC7", + "oid": "7170DFF8-C1DE-04A8-46F0-BC4379980BC71", "orderNum": 1, "owner": null, - "pkLayout": "7DDAED74-95BC-FDCE-53F4-A5E72815D5E6", + "pkLayout": "7DDAED74-95BC-FDCE-53F4-A5E72815D5E61", "revisionOid": null, "revisionRule": null, "revisionSeq": 0, @@ -1448,10 +1448,10 @@ "lctid": null, "name": "宸ヨ壓璇勫鍒楄〃", "nameOid": null, - "oid": "E28B0555-FAF3-4F59-0EE8-64A30A77C9CB", + "oid": "E28B0555-FAF3-4F59-0EE8-64A30A77C9CB1", "orderNum": 1, "owner": null, - "pkContent": "DBB13AF7-021F-ED27-B285-03E8599548EB", + "pkContent": "DBB13AF7-021F-ED27-B285-03E8599548EB1", "revisionOid": null, "revisionRule": null, "revisionSeq": 0, -- Gitblit v1.9.3