From 7a29d8642c4b168d3861340b8f8bff28ba7d3af3 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期一, 15 四月 2024 10:33:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue | 214 +++++++++++++++++------------------------------------
1 files changed, 70 insertions(+), 144 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..f0892f0 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -1,51 +1,33 @@
<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 :componentVO="componentVO" :butttonList="componentVO.buttons" :dataStore="selectList" LocationType="top" :sourceData="sourceData"
+ 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 :componentVO="componentVO" :butttonList="componentVO.buttons" :scope="scope" :dataStore="selectList" :sourceData="sourceData" LocationType="menu"
+ type="table"></dynamic-button>
+ </template>
+ </avue-crud>
</div>
</template>
<script>
+import {validatenull} from '@/util/validate'
+import {getList} from '@/api/base/ui'
+
export default {
name: "dynamic-table",
props: {
@@ -75,29 +57,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 +482,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 +511,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 +534,40 @@
}
}
},
- 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){
- this.selectList = row;
+ rowClickChange(row){
+ this.$refs.dataTable.toggleRowSelection(row);
},
- TreeSelectChange(row){
- this.TreeSelectList = row;
+ selectChange(row) {
+ this.selectList = row;
+ this.$emit("setDataStore", {
+ area: this.areasName,
+ type:this.componentVO.uiComponentType,
+ dataStore:row
+ });
+ },
+ searchChange(form,done){
+ done();
+ },
+ handleRefresh(){
+ this.$refs.dataTable.refreshTable();
}
}
}
--
Gitblit v1.9.3