From 4754120748b4fb947a4cef0137c5f0192dc28cec Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 22 三月 2024 10:38:16 +0800
Subject: [PATCH] 表格树
---
Source/ProjectWeb/src/components/dynamic-components/index.vue | 12 ++++
Source/ProjectWeb/src/views/base/uiDefineVO.js | 4
Source/ProjectWeb/src/views/base/UIContentViewer.vue | 0
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue | 120 ++++++++++++++++++++++++++++++++++++++-
4 files changed, 130 insertions(+), 6 deletions(-)
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
index eebd67d..aefe368 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -1,5 +1,6 @@
<template>
- <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid">
+ <div>
+ <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid" v-if="tableType === 'table'">
<avue-crud v-model="form"
ref="dataTable"
:data="tableList"
@@ -18,6 +19,30 @@
</template>
</avue-crud>
</div>
+
+ <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid" v-if="tableType === 'TreeTable'">
+ <avue-crud v-model="TreeForm"
+ :option="TreeOption"
+ :data="TreeData"
+ :page.sync="TreePage"
+ ref="treeTable"
+ @selection-change="TreeSelectChange">
+ <template #icon="scope">
+ <i :class="scope.row.icon"
+ style="font-size:24px"></i>
+ </template>
+ <!--top鍖哄煙鎸夐挳-->
+ <template slot="menuLeft" slot-scope="scope">
+ <dynamic-button LocationType="top" type="table":butttonList="componentVO.buttons" :selectList="selectList"></dynamic-button>
+ </template>
+
+ <!--menu鍖哄煙鎸夐挳-->
+ <template slot="menu" slot-scope="scope">
+ <dynamic-button :scope="scope" LocationType="menu" type="table":butttonList="componentVO.buttons" :selectList="selectList"></dynamic-button>
+ </template>
+ </avue-crud>
+ </div>
+ </div>
</template>
<script>
@@ -55,15 +80,21 @@
type:Array,
default: []
},
+ tableType:{
+ type:String
+ }
},
data() {
return {
parentHeight:'100%',//褰撳墠缁勪欢鏍硅妭鐐瑰厓绱犻珮搴�
form: {},
- formName: '',
loading: false,
- visible: false,
page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 5,
+ },
+ TreePage:{
pageSize: 10,
currentPage: 1,
total: 5,
@@ -475,7 +506,85 @@
menuFixed: false,
column: [],
},
- selectList:[]
+ selectList:[],
+ //琛ㄦ牸鏍�
+ TreeForm:{},
+ TreeOption:{
+ height: '100%',
+ addBtn:false,
+ editBtn:false,
+ delBtn:false,
+ selection: true,
+ calcHeight: 15,
+ indexFixed: false,
+ menuFixed: false,
+ column: [
+ {
+ label: '浜嬩欢',
+ prop: 'event',
+ align: 'left',
+ width: 200
+ },
+ {
+ label: '鏃堕棿绾�',
+ prop: 'timeLine'
+ },
+ {
+ label: '澶囨敞',
+ prop: 'comment'
+ }
+ ],
+ rowKey: 'id',
+ rowParentKey: 'parentId',
+
+ },
+ TreeData:[
+ {
+ id: 10,
+ event: '浜嬩欢1',
+ timeLine: 50,
+ comment: '鏃�'
+ },
+ {
+ id: 1,
+ event: '浜嬩欢1',
+ timeLine: 100,
+ comment: '鏃�',
+ children: [
+ {
+ parentId: 1,
+ id: 2,
+ event: '浜嬩欢2',
+ timeLine: 10,
+ comment: '鏃�'
+ },
+ {
+ parentId: 1,
+ id: 3,
+ event: '浜嬩欢3',
+ timeLine: 90,
+ comment: '鏃�',
+ children: [
+ {
+ parentId: 3,
+ id: 4,
+ event: '浜嬩欢4',
+ timeLine: 5,
+ comment: '鏃�'
+ },
+ {
+ parentId: 3,
+ id: 5,
+ event: '浜嬩欢5',
+ timeLine: 10,
+ comment: '鏃�'
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ TreeSelectList:[]
}
},
computed: {
@@ -530,6 +639,9 @@
methods: {
selectChange(row){
this.selectList = row;
+ },
+ TreeSelectChange(row){
+ this.TreeSelectList = row;
}
}
}
diff --git a/Source/ProjectWeb/src/components/dynamic-components/index.vue b/Source/ProjectWeb/src/components/dynamic-components/index.vue
index 58df815..8dc4f95 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/index.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/index.vue
@@ -1,5 +1,17 @@
<template>
<dynamic-table v-if="componentVO.uiComponentType=='table'"
+ tableType="table"
+ :key="areasName+'table-'+componentVO.oid"
+ :inDialog="inDialog"
+ :componentVO="componentVO"
+ :sourceData="sourceData"
+ :areasName="areasName"
+ :paramVOS="paramVOS"
+ :isShow="isShow">
+
+ </dynamic-table>
+ <dynamic-table v-else-if="componentVO.uiComponentType=='TreeTable'"
+ tableType="TreeTable"
:key="areasName+'table-'+componentVO.oid"
:inDialog="inDialog"
:componentVO="componentVO"
diff --git a/Source/ProjectWeb/src/views/base/UIContentVIewer.vue b/Source/ProjectWeb/src/views/base/UIContentViewer.vue
similarity index 100%
rename from Source/ProjectWeb/src/views/base/UIContentVIewer.vue
rename to Source/ProjectWeb/src/views/base/UIContentViewer.vue
diff --git a/Source/ProjectWeb/src/views/base/uiDefineVO.js b/Source/ProjectWeb/src/views/base/uiDefineVO.js
index 9571282..db62a63 100644
--- a/Source/ProjectWeb/src/views/base/uiDefineVO.js
+++ b/Source/ProjectWeb/src/views/base/uiDefineVO.js
@@ -4827,8 +4827,8 @@
"treeDefineVO": null,
"treeTableDefineVO": null,
"ts": null,
- "uiComponentType": "table",
- "uiComponentTypeText": "琛ㄦ牸",
+ "uiComponentType": "TreeTable",
+ "uiComponentTypeText": "琛ㄦ牸鏍�",
"uiParseClass": "",
"versionRule": null,
"versionSeq": 0,
--
Gitblit v1.9.3