From 9da0675fa67f1f03f48881b2664da4c01356d1b5 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 23 七月 2025 15:01:08 +0800
Subject: [PATCH] 插回损--功能修改
---
src/views/common/ztt-table.vue | 99 +++++++++++++++++++++++++++++++++++++------------
1 files changed, 75 insertions(+), 24 deletions(-)
diff --git a/src/views/common/ztt-table.vue b/src/views/common/ztt-table.vue
index 70b8191..3eaa9ef 100644
--- a/src/views/common/ztt-table.vue
+++ b/src/views/common/ztt-table.vue
@@ -150,6 +150,7 @@
v-on="$listeners"
:highlight-current-row="true"
:row-key="rowKey"
+ :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
@row-dblclick="dbClickRow"
@row-contextmenu="contextMenu"
@header-click="headClick"
@@ -164,7 +165,7 @@
:span-method="objectSpanMethod"
:header-cell-style="tableHeaderStyle"
v-adaptive="{ bottomOffset: bottomOffset, fixedHeight: fixedHeight }"
- height="100px"
+ height="300px"
:class="[
'commonTable',
isGeneralSearch && !isEdit
@@ -174,14 +175,17 @@
v-loading="dataListLoading"
element-loading-text="鍔犺浇涓�..."
element-loading-spinner="el-icon-loading"
+ @expand-change="expandChange"
>
<!--澶氶�夋嫨妗�-->
<el-table-column
align="center"
type="selection"
+ :reserve-selection="options.reserveSelection"
v-if="options.multiSelect && !isEdit"
style="width: 55px;"
:selectable="selectHandle"
+
>
</el-table-column>
<!--鍗曢�夋-->
@@ -324,8 +328,13 @@
<template v-else>
<template v-if="!item.render">
<template v-if="item.formatter">
- <span v-if="item.isTag" style="text-align: center;">
+ <span v-if="item.isTag&&scope.row[item.prop]!=null" style="text-align: center;">
<el-tag style="width:60px;margin: 3px;" :type="scope.row[item.prop] == 0 ? 'success' : 'info'">
+ <span v-html="item.formatter(scope.row, item, scope.row[item.prop])"></span>
+ </el-tag>
+ </span>
+ <span v-if="item.isTags&&scope.row[item.prop]!=null" style="text-align: center;">
+ <el-tag style="width:60px;margin: 3px;" :type="scope.row[item.prop] == '姝e父' ? 'success' : (scope.row[item.prop] == '寮傚父'?'warning':(scope.row[item.prop] == '杩斾慨'?'danger':'info'))">
<span v-html="item.formatter(scope.row, item, scope.row[item.prop])"></span>
</el-tag>
</span>
@@ -508,9 +517,9 @@
<div class="el-upload__tip" slot="tip" >
鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M<el-button
type="text"
- style="font-size:12px;"
- @click="downDataTemplate(uploadInfo.fileName)"
- v-if="uploadInfo.Download"
+ style="font-size:14px;text-decoration: underline;"
+ @click="downDataTemplate(uploadInfo.fileName)"
+ v-if="uploadInfo.download"
>涓嬭浇妯℃澘</el-button
>
</div>
@@ -547,7 +556,7 @@
column: {
type: Object,
default: null
- }
+ },
},
render: (h, data) => {
const params = {
@@ -567,6 +576,17 @@
default: ()=>{
return 'id'
}
+ },
+ //闇�瑕佸悎骞剁殑瀛楁闆嗗悎
+ mergeSpanArr: {
+ type: Array,
+ default: ()=>{
+ return []
+ }
+ },
+ toolbarMaxLength: {
+ type: Number,
+ default: 5,
},
// 琛ㄦ牸鍨嬪彿锛歮ini,medium,small
tableSize: { type: String, default: 'small' },
@@ -647,7 +667,8 @@
tableCellMerge: false,
cancelRunCreated: false, // 鏄惁鎵цcreated()鍐呭
isGenerateId: false,
- isGenerateField: 'id'
+ isGenerateField: 'id',
+ reserveSelection: false,
}
},
// table鑷�傚簲楂樺害搴曢儴楂樺害
@@ -688,6 +709,7 @@
},
data() {
return {
+ currentExpand:null,
dataListLoading: false,
tableKey: 0,
// jipf 瀵煎嚭鎵�鐢ㄥ彉閲�
@@ -755,11 +777,11 @@
return colList
},
getToolBarBtn() {
- return this.table.toolbar ? this.table.toolbar.slice(0, 5) : []
+ return this.table.toolbar ? this.table.toolbar.slice(0, this.toolbarMaxLength) : []
},
getToolbarDown() {
- return this.getToolBarBtn.length === 5
- ? this.table.toolbar.slice(5, this.table.toolbar.length)
+ return this.getToolBarBtn.length == this.toolbarMaxLength
+ ? this.table.toolbar.slice(this.toolbarMaxLength, this.table.toolbar.length)
: []
},
isRefreshBtn() {
@@ -924,22 +946,41 @@
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (this.options.tableCellMerge) {
- let result = ''
- this.$emit(
- 'objectSpanMethod',
- row,
- column,
- rowIndex,
- columnIndex,
- (val) => {
- if (val) {
- result = val
+ const propName = column.property
+ if (propName) {
+ if(this.mergeSpanArr.includes(propName)){
+ if (rowIndex > 0 && row[propName] === this.tableData[rowIndex - 1][propName]) {
+ return { rowspan: 0, colspan: 0 };
+ } else {
+ let rowspan = 1;
+ for (let i = rowIndex + 1; i < this.tableData.length; i++) {
+ if (this.tableData[i][propName] === row[propName]) {
+ rowspan++;
+ } else {
+ break;
+ }
+ }
+ return { rowspan: rowspan, colspan: 1 };
+ }
}
- }
- )
- if (result) {
- return result
}
+ // let result = ''
+ // this.$emit(
+ // 'objectSpanMethod',
+ // row,
+ // column,
+ // rowIndex,
+ // columnIndex,
+ // (val) => {
+ // console.log(val);
+ // if (val) {
+ // result = val
+ // }
+ // }
+ // )
+ // if (result) {
+ // return result
+ // }
}
},
getDataList(selectedId) {
@@ -1340,6 +1381,7 @@
this.multipleSelection = selection
this.$emit('handleSelectionChange', selection)
} */
+ this.$emit('shoudonggouxuan',row)
},
handleSelectionChange(val) {
this.multipleSelection = val
@@ -1691,6 +1733,15 @@
// 璁剧疆楂樼骇鎼滅储鏌ヨ鏉′欢
setMultiSearchFilter(filters) {
this.multiSearchFilter = filters
+ },
+ expandChange(e){
+ this.currentExpand = e;
+ },
+ toggleRowExpansion(){
+ this.tableData.forEach((ele) => {
+ this.$refs.lmesTable.toggleRowExpansion(ele,false)
+ })
+ this.$refs.lmesTable.toggleRowExpansion(this.currentExpand,true)
}
}
}
--
Gitblit v1.9.3