From fecc7305a48f8ce6e283434718da33e143885c75 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 09 四月 2024 10:03:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue | 105 ++++++++++++++++++++++++++++++++++------------------ 1 files changed, 69 insertions(+), 36 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..5c04b55 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue @@ -1,26 +1,31 @@ <template> - <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid"> - <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> + <!--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 {validatenull} from '@/util/validate' export default { name: "dynamic-table", props: { @@ -50,23 +55,30 @@ type: Boolean, default: true }, - dataStore:{ + dataStore: { //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁 - type:Array, + type: Array, default: [] }, + tableType: { + type: String + } }, data() { return { - parentHeight:'100%',//褰撳墠缁勪欢鏍硅妭鐐瑰厓绱犻珮搴� + parentHeight: '100%',//褰撳墠缁勪欢鏍硅妭鐐瑰厓绱犻珮搴� form: {}, - formName: '', loading: false, - visible: false, page: { pageSize: 10, currentPage: 1, - total: 5, + total: 50, + }, + simplePage: { + currentPage: 1, + total: 100, + pagerCount: 4, + layout: "prev, pager, next" }, //琛ㄦ牸鏁版嵁 tableList: [ @@ -468,20 +480,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:[] + 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, @@ -491,17 +509,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(); @@ -510,26 +532,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; + }, + searchChange(form,done){ + console.log(form) + done() + this.$emit("setDataStore", { + area: this.areasName, + dataStore:row + }); } } } -- Gitblit v1.9.3