lixin-web
Version:
vue and bootstrap
103 lines (97 loc) • 2.64 kB
JavaScript
import {round} from 'lodash'
import {isNumeric} from '_Will'
export const valToText = (arr,value) => arr.find(i => i[1] === value)[0]
export const statusArr = [
['全部状态', ''],
['未开奖', 0],
['未中奖', 1],
['已中奖', 2],
['已撤单', -1],
]
export const betsModel = [
['元', 'yuan'],
['角', 'jiao'],
['分', 'fen'],
['厘', 'li'],
]
export const accountType = [
['代理', 1],
['玩家', 0],
]
export const paginationDef = (total,pageSize) => {
let pageSizes = [pageSize, Math.floor(2.5 * pageSize / 10) * 10, 50, 100].slice(0, total >= 7.5 * pageSize ? 4 : Math[total > pageSize ? 'ceil' : 'floor'](total / (2.5 * pageSize)) + 1)
let layout = [total > pageSize ? 'total' : '']
pageSizes.length > 1 && layout.push('sizes')
total > pageSize &&
layout.push('prev, pager, next')
total > pageSize * 5 &&
// layout.splice(-1, 0, 'jumper')
layout.push('jumper')
return {
layout: layout.join(),
pageSizes,
pageSize,
}
}
export const getSummaries = (param,{firstTemp = '总计',filter,unit = ' 元',tableData} = {}) => {
const { columns, data } = tableData ? {columns:param.columns,data:tableData} : param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
return sums[index] = firstTemp;
}
if (filter && filter.indexOf(column.property) === -1) return
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = round(values.reduce((prev, curr) => {
if (isNumeric(curr)) {
return prev + curr;
} else {
return prev;
}
}, 0),3);
sums[index] += unit;
} else {
sums[index] = '';
}
});
return sums;
}
export default {
data(){
return {
tableData: [],
pageData:[],
loading: false,
pageSize: 10,
initPageSize:10,
pageTotal: 0,
currentPage: 1
}
},
created(){
this.getData(false);
},
methods:{
pageChange({page, size}, serve = true){
let isChangeCurrent = this.pageSize == size
if(isChangeCurrent) {
this.currentPage = page
//simple cache
if(this.pageData[page - 1]) {
return this.tableData = this.pageData[page - 1]
}
}else{
this.pageSize = size
this.pageData = []
}
serve && this.getData()
},
valToText
},
computed:{
paginationDef(){
return paginationDef(this.pageTotal,this.initPageSize)
}
}
}