From 00c38a06a71962d37a23c8fcd35dcef979df57a5 Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期五, 15 三月 2024 16:05:34 +0800 Subject: [PATCH] UI上下文展示引擎 --- Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue | 18 +++++- Source/ProjectWeb/src/components/dynamic-components/index.vue | 44 +++++++++++--- Source/ProjectWeb/src/views/base/UIContentVIewer.vue | 2 Source/ProjectWeb/src/views/base/UIContentArea.vue | 28 ++++++++- Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue | 21 +++++++ Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue | 23 +++++++ Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue | 18 +++++- 7 files changed, 134 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 15b6d0b..804a731 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue @@ -7,11 +7,23 @@ name: "dynamic-custom", props:{ componentVO:{ - type: Object, - default: {}, + type:Object, + default: {} + }, + inDialog: { + type: Boolean, + default: false + }, + areasName:{ + type:String, + default:'' }, sourceData:{ - //涓婁竴鍖哄煙閫変腑鏁版嵁 + //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁 + type:Object, + default: {} + }, + paramVOS:{ type:Object, default: {} } diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue index 61a6339..7bc8e9e 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue @@ -10,6 +10,27 @@ export default { name: "dynamic-form", props:{ + componentVO:{ + type:Object, + default: {} + }, + inDialog: { + type: Boolean, + default: false + }, + areasName:{ + type:String, + default:'' + }, + sourceData:{ + //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁 + type:Object, + default: {} + }, + paramVOS:{ + type:Object, + default: {} + }, visible:{ type: Boolean, default: false, diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue index f510742..692fee5 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue @@ -23,6 +23,29 @@ <script> export default { name: "dynamic-table", + props:{ + componentVO:{ + type:Object, + default: {} + }, + inDialog: { + type: Boolean, + default: false + }, + areasName:{ + type:String, + default:''//westArea瀵艰埅鍖� + }, + sourceData:{ + //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁 + type:Object, + default: {} + }, + paramVOS:{ + type:Object, + default: {} + } + }, data() { return { form: {}, diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue index 7603437..7cfdbd4 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue @@ -9,11 +9,23 @@ name: "dynamic-tree", props:{ componentVO:{ - type: Object, - default: {}, + type:Object, + default: {} + }, + inDialog: { + type: Boolean, + default: false + }, + areasName:{ + type:String, + default:'' }, sourceData:{ - //涓婁竴鍖哄煙閫変腑鏁版嵁 + //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁 + type:Object, + default: {} + }, + paramVOS:{ type:Object, default: {} } diff --git a/Source/ProjectWeb/src/components/dynamic-components/index.vue b/Source/ProjectWeb/src/components/dynamic-components/index.vue index eeb1065..d727d74 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/index.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/index.vue @@ -1,9 +1,36 @@ <template> <div> - <dynamic-table v-if="componentVO.uiComponentType=='table'" :componentVO="componentVO" :sourceData="sourceData"></dynamic-table> - <dynamic-form v-else-if="componentVO.uiComponentType=='form'" :componentVO="componentVO" :sourceData="sourceData"></dynamic-form> - <dynamic-tree v-else-if="componentVO.uiComponentType=='tree'" :componentVO="componentVO" :sourceData="sourceData"></dynamic-tree> - <dynamic-custom v-else-if="componentVO.uiComponentType=='custom'" :componentVO="componentVO" :sourceData="sourceData"></dynamic-custom> + <dynamic-table v-if="componentVO.uiComponentType=='table'" + :inDialog="inDialog" + :componentVO="componentVO" + :sourceData="sourceData" + :areasName="areasName" + :paramVOS="paramVOS"> + + </dynamic-table> + <dynamic-form v-else-if="componentVO.uiComponentType=='form'" + :inDialog="inDialog" + :componentVO="componentVO" + :sourceData="sourceData" + :areasName="areasName" + :paramVOS="paramVOS"> + + </dynamic-form> + <dynamic-tree v-else-if="componentVO.uiComponentType=='tree'" + :inDialog="inDialog" + :componentVO="componentVO" + :sourceData="sourceData" + :areasName="areasName" + :paramVOS="paramVOS"> + + </dynamic-tree> + <dynamic-custom v-else-if="componentVO.uiComponentType=='custom'" :inDialog="inDialog" + :componentVO="componentVO" + :sourceData="sourceData" + :areasName="areasName" + :paramVOS="paramVOS"> + + </dynamic-custom> </div> </template> @@ -24,15 +51,14 @@ type: Boolean, default: false }, + areasName:{ + type:String, + default:'' + }, sourceData:{ //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁 type:Object, default: {} - }, - dataStore:{ - //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁 - type:Array, - default: [] }, paramVOS:{ type:Object, diff --git a/Source/ProjectWeb/src/views/base/UIContentArea.vue b/Source/ProjectWeb/src/views/base/UIContentArea.vue index 24ed6bd..7e11fec 100644 --- a/Source/ProjectWeb/src/views/base/UIContentArea.vue +++ b/Source/ProjectWeb/src/views/base/UIContentArea.vue @@ -8,12 +8,22 @@ {{componentVO.name}} </template> <div class="componentVO" style="height: 60%"> - <compoent-index :key="componentVO.oid" :componentVO="componentVO" :sourceData="sourceData" :areasName="areasName" :paramVOS="paramVOS"></compoent-index> + <compoent-index :key="componentVO.oid" + :inDialog="inDialog" + :componentVO="componentVO" + :sourceData="sourceData" + :areasName="areasName" + :paramVOS="paramVOS"></compoent-index> </div> </el-collapse-item> </el-collapse> <div v-else class="componentVO"> - <compoent-index :key="areaItem.componentVOs[0].oid" :componentVO="areaItem.componentVOs[0]" :sourceData="sourceData" :areasName="areasName" :paramVOS="paramVOS"></compoent-index> + <compoent-index :key="areaItem.componentVOs[0].oid" + :inDialog="inDialog" + :componentVO="areaItem.componentVOs[0]" + :sourceData="sourceData" + :areasName="areasName" + :paramVOS="paramVOS"></compoent-index> </div> </el-tab-pane> </el-tabs> @@ -24,12 +34,22 @@ {{componentVO.name}} </template> <div class="componentVO" style="height: 60%"> - <compoent-index :key="componentVO.oid" :componentVO="componentVO" :sourceData="sourceData" :areasName="areasName" :paramVOS="paramVOS"></compoent-index> + <compoent-index :key="componentVO.oid" + :inDialog="inDialog" + :componentVO="componentVO" + :sourceData="sourceData" + :areasName="areasName" + :paramVOS="paramVOS"></compoent-index> </div> </el-collapse-item> </el-collapse> <div v-else class="componentVO"> - <compoent-index :key="areasData[0].componentVOs[0].oid" :componentVO="areasData[0].componentVOs[0]" :sourceData="sourceData" :areasName="areasName" :paramVOS="paramVOS"></compoent-index> + <compoent-index :key="areasData[0].componentVOs[0].oid" + :inDialog="inDialog" + :componentVO="areasData[0].componentVOs[0]" + :sourceData="sourceData" + :areasName="areasName" + :paramVOS="paramVOS"></compoent-index> </div> </div> </basic-container> diff --git a/Source/ProjectWeb/src/views/base/UIContentVIewer.vue b/Source/ProjectWeb/src/views/base/UIContentVIewer.vue index 3bc7c5c..97b4e51 100644 --- a/Source/ProjectWeb/src/views/base/UIContentVIewer.vue +++ b/Source/ProjectWeb/src/views/base/UIContentVIewer.vue @@ -11,7 +11,7 @@ </UIContentArea> </el-header> <el-container :style="'height: '+(uiDefineVO.northAreas && uiDefineVO.northAreas.length>0?'calc(100% - 70px)':'100%')"> - <el-aside v-if="uiDefineVO.westAreas && uiDefineVO.westAreas.length>0" width="320px" height="100%"> + <el-aside v-if="uiDefineVO.westAreas && uiDefineVO.westAreas.length>0" :width="uiDefineVO.westAreas[0].componentVOs[0].uiComponentType=='table'?'390px':'320px'" height="100%"> <UIContentArea :key="'westArea-'+uiDefineVO.oid" areas-name="westArea" cradStyle="height:100%" :areasData="uiDefineVO.westAreas" -- Gitblit v1.9.3