日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

jeecg框架表格合计解决方案

發布時間:2023/12/31 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jeecg框架表格合计解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先假設我們有100條數據。
那么合計方案有兩種;
第一種情況:直接拿到全部100條數據的

該合計方案,在jeecg的常見案例有實例,可以直接參考


解決思路:源碼;


這里是分頁參數,規定每頁顯示10條數據。

下面開始合計:
步驟一:先創建兩個變量

步驟二:全部數據給到newDataSource,然后調用合計方法。

步驟三:開始合計

dataHandling(num) {
this.newArr=[];
let arrLength = this.newDataSource.length; // 數組長度;
let index = 0;
//因為num是9,
//所以我們以9條數據為一組,將數據放入新的數組
for (let i = 0; i < arrLength; i++) {
if (i % num === 0 && i !== 0) {
this.newArr.push(this.newDataSource.slice(index, i));
index = i;
}
if ((i + 1) === arrLength) {
this.newArr.push(this.newDataSource.slice(index, (i + 1)));
}
}
var arrs=this.newArr;
//將已經分為9條一組的數組進行遍歷
for (let i =0;i<arrs.length;i++){
let arr = arrs[i];
//這里創建一個數組
let newArr= { };,//用于存放計算后的第10條數據
newArr.name=“-”;//不需要合計額字段(根據需求修改)
newArr.updateTime=“-”;//不需要合計額字段
newArr.rowIndex=“合計”//這里是第10條合計的名字
var level=0;//需要合計的字段(根據需求修改)
var point=0;//需要合計的字段
//拿到數組中對應下表的9條數據,進行遍歷
//然后對需要合計的字段進行重復相加,得到合計的數據
for (let j=0;j<arr.length;j++){
level+=arr[j].level;
point+=arr[j].point;
}
newArr.level=level;
newArr.point=point;
arrs[i].push(newArr);//把第10條合計的數據放入數組
}
//把已經合計好的數據放入數組中
var newDataSource=[];
for (let i =0;i<arrs.length;i++){
let arr = arrs[i];
for(var j in arr){
newDataSource.push(arr[j]);
}
}
console.log(this.dataSource)
//合計后重新給到dataSource
//就得到了每頁10條,包含合計的數據
//合計完成啦
this.dataSource = Object.values(newDataSource);
console.log(this.dataSource)
}

第二種情況:
假如100條數據,一共10頁,點擊哪一頁才拿到該頁數據時。

這里的總條數是加上分3頁,多了3行合計總數的,所以原數據為23條

實現思路:
1.就是對分頁的pagesize(頁大小)進行操作
詳情一;
2.關鍵是怎么保證請求為10條,返回為11條,還正常顯示呢?
詳情見步驟三;
4.合計后分頁和總數對不上,導致顯示數據錯誤,怎么辦?
詳情見步驟六
重點就是保證每次請求數據都是10條,然后讓分頁,和總數顯示正常

開始合計:
步驟一:設計分頁參數,

步驟二:先創建兩個變量

步驟三:要找到方法this.dataSource取值之前的地方,添加一個判斷

敲黑板:這里是重點:

//保證我們每次請求10條,如果不是10條就-1
if(params.pageSize % 10 != 0){
//這里保證每次拿10條數據
params.pageSize = params.pageSize-1;
//這里保證每次拿數據,頁面顯示總數減一
//原因是因為我們請求10條數據,合計后11條,
//會導致下一次這里變為11,要將值改回10
this.ipagination.pageSize = this.ipagination.pageSize -1
}
步驟四:this.dataSource取值之后,調用合計方法

步驟五:思路和上面的合計一樣。
只不過這里我把合計字段封裝了,后面只要在需要合計的字段下面添加一個total:true就會自動合計

源代碼:

dataHandling(num) {
this.newArr = this.newDataSource.slice(0,this.newDataSource.length +1);
var arrs = this.newArr;
let Array ={};
let columns = this.$data.columns;
for(let i=0;i<columns.length;i++){
let dataindex = columns[i].dataIndex;
if(dataindex === “rowIndex”){
Array[dataindex] = ‘合計’;
}else if(columns[i].total){
let total = 0;
for(let j=0;j<arrs.length;j++){
total += arrs[j][dataindex];
}
Array[dataindex] = total;
}else{
Array[dataindex] = ‘-’;
}
}
arrs.push(Array);
//—合計之后每一頁會多出一條數據,所以將pageSize + 1,保證數據正常的顯示。
this.ipagination.pageSize = this.ipagination.pageSize +1;
this.dataSource = Object.values(arrs);
},

步驟六:重點:

假如100條數據,每頁顯示10條,一共10頁。
我們加上合計之后每頁11條,總數就會變成110條,數據對不上,顯示不正常。
因此要讓總數和分頁顯示正常,就要在原來數量的基礎上,分多少頁面就要加上多少條數據

總結

以上是生活随笔為你收集整理的jeecg框架表格合计解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。