From 8be3182372eb774dce8f9c97a0b51c03bda165c7 Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期一, 08 四月 2024 15:33:11 +0800 Subject: [PATCH] UI展示 --- Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue | 208 ++++++++++++++++----------------------------------- 1 files changed, 65 insertions(+), 143 deletions(-) diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue index aefe368..16d531f 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue @@ -1,51 +1,32 @@ <template> - <div> - <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid" v-if="tableType === 'table'"> - <avue-crud v-model="form" - ref="dataTable" - :data="tableList" - :option="option" - :page.sync="page" - :table-loading="loading" - @selection-change="selectChange"> - <!--top鍖哄煙鎸夐挳--> - <template slot="menuLeft" slot-scope="scope"> - <dynamic-button LocationType="top" type="table":butttonList="componentVO.buttons" :selectList="selectList"></dynamic-button> - </template> + <div :id="'UI-dynamic-'+areasName+componentVO.oid" class="UI-dynamic"> + <avue-crud ref="dataTable" + v-model="form" + :data="tableList" + :option="option" + :page.sync="pageType" + :table-loading="loading" + @row-click="rowClickChange" + @search-change='searchChange' + @selection-change="selectChange"> + <!--top鍖哄煙鎸夐挳--> + <template slot="menuLeft" slot-scope="scope"> + <dynamic-button :butttonList="componentVO.buttons" :selectList="selectList" LocationType="top" + type="table"></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 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> + <!--menu鍖哄煙鎸夐挳--> + <template slot="menu" slot-scope="scope"> + <dynamic-button :butttonList="componentVO.buttons" :scope="scope" :selectList="selectList" LocationType="menu" + type="table"></dynamic-button> + </template> + </avue-crud> </div> </template> <script> +import {treeMenu} from '@/api/treeMyMenu' +import {validatenull} from '@/util/validate' export default { name: "dynamic-table", props: { @@ -75,29 +56,30 @@ type: Boolean, default: true }, - dataStore:{ + dataStore: { //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁 - type:Array, + type: Array, default: [] }, - tableType:{ - type:String + tableType: { + type: String } }, data() { return { - parentHeight:'100%',//褰撳墠缁勪欢鏍硅妭鐐瑰厓绱犻珮搴� + parentHeight: '100%',//褰撳墠缁勪欢鏍硅妭鐐瑰厓绱犻珮搴� form: {}, loading: false, page: { pageSize: 10, currentPage: 1, - total: 5, + total: 50, }, - TreePage:{ - pageSize: 10, + simplePage: { currentPage: 1, - total: 5, + total: 100, + pagerCount: 4, + layout: "prev, pager, next" }, //琛ㄦ牸鏁版嵁 tableList: [ @@ -499,98 +481,26 @@ addBtn: false, editBtn: false, delBtn: false, - selection:true, + selection: true, + tip: false, height: '100%', calcHeight: 15, indexFixed: false, menuFixed: false, + searchMenuSpan:12, + searchShow:false, column: [], }, - 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:[] + selectList: [], } }, computed: { updatedColumns() { + const queryFields = !validatenull(this.componentVO.tableDefineVO.queryColumns) ? this.componentVO.tableDefineVO.queryColumns.map(item => item.field) : []; + return this.componentVO.tableDefineVO.cols[0].map(item => { const typeValue = item.fieldType === 'text' || item.fieldType === 'combox' ? 'input' : item.fieldType; // 琛ㄥ崟Type绫诲瀷 + const search = queryFields.includes(item.field); // 鍒ゆ柇 field 鏄惁鍦� queryColumns 閲� return { align: item.align, @@ -600,17 +510,21 @@ hidden: item.hidden, label: item.title, width: item.width, + search: search }; }); }, + pageType() { + return this.areasName === 'westArea' ? this.simplePage : this.page; + } }, - watch:{ - parentHeight:{ + watch: { + parentHeight: { handler(newval) { - if(newval >50){ - this.option.height=newval; + if (newval > 50) { + this.option.height = newval; //doLayout涓嶇敓鏁堬紝鎵嬪姩璁剧疆琛ㄦ牸楂樺害 - this.$children[0].$children[1].$children[1].$children[0].$el.style.height=newval+'px'; + this.$children[0].$children[1].$children[1].$children[0].$el.style.height = newval + 'px'; /*this.$nextTick(() => { if (this.$refs.dataTable && this.$refs.dataTable.doLayout) { this.$refs.dataTable.doLayout(); @@ -619,29 +533,37 @@ } } }, - isShow:{ + isShow: { handler(newval) { - if(newval && this.$el.clientHeight>50) { + if (newval && this.$el.clientHeight > 50) { this.parentHeight = this.$el.clientHeight - this.$children[0].$children[1].$children[0].$el.clientHeight - this.$children[0].$children[2].$el.clientHeight - 5; } } } }, created() { - this.option.column=this.updatedColumns; + this.option.column = this.updatedColumns; }, mounted() { - if(this.$el.clientHeight>50) { + if (this.$el.clientHeight > 50) { //鐖跺厓绱犻珮搴�-鎸夐挳楂樺害-鍒嗛〉楂樺害 this.parentHeight = this.$el.clientHeight - this.$children[0].$children[1].$children[0].$el.clientHeight - this.$children[0].$children[2].$el.clientHeight - 5; } }, methods: { - selectChange(row){ + rowClickChange(row){ + this.$refs.dataTable.toggleRowSelection(row); + }, + selectChange(row) { this.selectList = row; }, - TreeSelectChange(row){ - this.TreeSelectList = row; + searchChange(form,done){ + console.log(form) + done() + this.$emit("setDataStore", { + area: this.areasName, + dataStore:row + }); } } } -- Gitblit v1.9.3