From 0a3b4bac16a4cf49deaddc6b4f3a2aeee90e9061 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期二, 21 五月 2024 16:33:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/common/ztt-table.vue | 87 +++++++++++++++++++++++++++++++++---------- 1 files changed, 67 insertions(+), 20 deletions(-) diff --git a/src/views/common/ztt-table.vue b/src/views/common/ztt-table.vue index 04f5297..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" @@ -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,13 @@ default: ()=>{ return 'id' } + }, + //闇�瑕佸悎骞剁殑瀛楁闆嗗悎 + mergeSpanArr: { + type: Array, + default: ()=>{ + return [] + } }, toolbarMaxLength: { type: Number, @@ -651,7 +667,8 @@ tableCellMerge: false, cancelRunCreated: false, // 鏄惁鎵цcreated()鍐呭 isGenerateId: false, - isGenerateField: 'id' + isGenerateField: 'id', + reserveSelection: false, } }, // table鑷�傚簲楂樺害搴曢儴楂樺害 @@ -692,6 +709,7 @@ }, data() { return { + currentExpand:null, dataListLoading: false, tableKey: 0, // jipf 瀵煎嚭鎵�鐢ㄥ彉閲� @@ -928,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) { @@ -1344,6 +1381,7 @@ this.multipleSelection = selection this.$emit('handleSelectionChange', selection) } */ + this.$emit('shoudonggouxuan',row) }, handleSelectionChange(val) { this.multipleSelection = val @@ -1695,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