import Vue from 'vue'
import XEUtils from 'xe-utils'
import XEAjax from 'xe-ajax'
// 挂载到 vue 实例中
Vue.prototype.$ajax = XEAjax
/* eslint-disable @typescript-eslint/camelcase */
/**
* 生成模拟数据
*/
const dataCacheList = []
const colCacheList = []
const treeCacheList = []
let dataIndex = 0
let colIndex = 0
let dataID = 2000000
function mockColumns (size) {
let index = colIndex
for (; index < size; index++) {
const colItem = {
field: 'col_' + index,
title: 'col_' + index,
width: index % 6 === 0 ? 340 : index % 4 === 0 ? 260 : index % 3 === 0 ? 120 : 160,
resizable: true
}
if (index === 0) {
colItem.width = 100
colItem.fixed = 'left'
colItem.type = 'seq'
colItem.title = '序号'
} else if (index === 1) {
colItem.fixed = 'left'
colItem.type = 'checkbox'
colItem.title = '多选'
}
if (index < 4) {
colItem.sortable = true
} else if (index === 5) {
colItem.filters = [
{ label: '= 100', value: 100 },
{ label: '= 2000', value: 2000 }
]
} else if (index === 6) {
colItem.sortable = true
colItem.filters = [
{ label: '= 500', value: 300 },
{ label: '= 3000', value: 3000 }
]
}
colCacheList.push(colItem)
}
colIndex = index
}
function mockChildData (size, hasChild) {
const rest = []
for (let index = 0; index < size; index++) {
dataID++
const item = {
id: dataID,
name: 'Name - ' + dataID,
nickname: 'Nickname - ' + dataID,
role: index % 4 === 0 ? '前端' : index % 3 === 0 ? '入门到放弃' : '后端'
}
if (hasChild) {
item.children = mockChildData(10)
}
rest.push(item)
}
return rest
}
function mockData (size, hasChild) {
const currTime = Date.now()
const nameList = XEUtils.shuffle(['a', 'T', 'b', 'v', 'G', 'k', 'r', 'H', 'x', 'z', 'c', 'd', 'e', 'p', 'U', 'f', 's', 'N'])
const nickList = XEUtils.shuffle(['徐', '李', '雷', '赵', '马', '孙', '钱', '蒋', '老', '蔡', '吕', '项', '徐', '杨', '胡', '杜', '嬴', '叼'])
let index = dataIndex
for (; index < size; index++) {
dataID++
const date = new Date(currTime)
let item
if (hasChild) {
item = {
id: dataID,
children: mockChildData(10, hasChild),
name: nameList[index % 10] + nameList[index % 5] + index,
nickname: nickList[index % 10] + nickList[index % 5] + index,
role: index % 4 === 0 ? '前端' : index % 3 === 0 ? '入门到放弃' : '后端',
role1: index === 1 ? '1' : '',
key: 'home.label.key' + Math.max(0, index % 2 === 0 ? index - 1 : index),
language: index % 2 === 0 ? 'zh_CN' : 'en_US',
content: index % 2 === 0 ? 'vxe-table 从入门到放弃' + index : 'Content' + index,
checked: false,
flag: index % 2 === 0,
date: date,
date1: date,
date2: '09:00:00',
date3: index % 3 === 0 ? '2020-02-10' : '',
date4: date,
date5: '09:00',
date6: null,
date7: null,
date8: null,
date9: null,
date10: null,
date11: [],
date12: index % 3 === 0 ? '2019-12-20' : '',
date13: index % 4 === 0 ? '2020-01-01' : '',
num: (0.234 * index).toFixed(0),
num1: (0.185 * index).toFixed(0),
num2: (0.567 * index).toFixed(1),
num3: (0.789 * index).toFixed(1),
num4: (0.348 * index).toFixed(2),
num5: (0.967 * index).toFixed(2),
num6: '' + (0.234 * index).toFixed(0),
color: index % 4 === 0 ? 'rgba(255, 0, 0, 0.8)' : index % 3 === 0 ? 'rgba(0, 255, 0, 0.8)' : null,
slider: index % 5 === 0 ? 40 : index % 4 === 0 ? 20 : index % 3 === 0 ? 60 : 0,
list: [],
time: currTime + 360000,
sex: index % 3 ? '0' : '1',
sex1: index % 3 ? ['0'] : index % 4 ? ['0', '1'] : index % 5 ? [] : ['1'],
sex2: index % 4 ? '0' : '1',
sex3: index % 3 ? 0 : 1,
sex4: index % 4 ? 0 : 1,
sex5: index % 5 ? '0' : '1',
amount: 10000000 * (index % 11 === 0 ? 9.46676 : index % 7 === 8.9886 ? 34.78869 : index % 3 === 2.894453 ? 3.33356 : 7.6566444) + index * 88,
bankCard: '6200000' + (100000000 + index),
age: index % 6 === 0 ? 18 : index % 4 === 0 ? 26 : index % 3 === 0 ? 28 : 30,
age1: '' + (index % 6 === 0 ? 18 : index % 4 === 0 ? 26 : index % 3 === 0 ? 28 : 30),
region: index % 4 === 0 ? [19, 199, 1773] : index % 3 === 0 ? [9, 73, 719] : [1, 1, 5],
rate: index % 4 === 0 ? 2 : index % 3 === 0 ? 3 : 0,
rate1: '' + (index % 4 === 0 ? 2 : index % 3 === 0 ? 3 : 0),
state: '' + (index % 4 === 0 ? 'value:Washington' : index % 3 === 0 ? 'value:Delaware' : ''),
address: 'vxe-table 从入门到放弃 vxe-table 从入门到放弃 vxe-table 从入门到放弃' + index,
address2: 'vxe-table 从入门到放弃' + index,
img: 'static/other/img' + (index % 3 ? '1' : '2') + '.gif',
img1: index % 4 === 0 ? 'static/other/img' + (index % 3 ? '1' : '2') + '.gif' : '',
html1: index % 3 === 0 ? '我是一段Html代码
vxe-table 从入门到放弃' + index + '
绿到你发慌!' : '',
html2: index % 3 === 0 ? '我是一段Html代码vxe-table 从入门到放弃' + index + '绿到你发慌!' : '',
html3: index + ' -> 我是一段Html代码vxe-table 从入门到放弃' + index + '绿到你发慌!
绿到你发慌!
我是一段Html代码,我是一段Html代码,我是一段Html代码,绿到你发慌!
我是一段Html代码,我是一段Html代码,我是一段Html代码
我是一段Html代码,我是一段Html代码,我是一段Html代码
我是一段Html代码,我是一段Html代码,我是一段Html代码',
text: index + ' -> ' + nickList.concat(nameList).join(''),
updateTime: currTime,
createTime: currTime,
attr1: '',
attr2: [],
attr3: index % 2 ? '1' : '',
attr4: '',
attr5: 0,
loading: false,
info: {
name2: '算了,还是废弃吧' + index,
more: {
sex2: index % 3 ? '0' : '1',
age2: index % 2 === 0 ? 26 : 30
}
}
}
treeCacheList.push(item)
} else {
item = {
id: 2000000 + index,
name: nameList[index % 10] + nameList[index % 5] + index,
nickname: nickList[index % 10] + nickList[index % 5] + index,
role: index % 4 === 0 ? '前端' : index % 3 === 0 ? '入门到放弃' : '后端',
role1: index === 1 ? '1' : '',
key: 'home.label.key' + Math.max(0, index % 2 === 0 ? index - 1 : index),
language: index % 2 === 0 ? 'zh_CN' : 'en_US',
content: index % 2 === 0 ? 'vxe-table 入门到放弃' + index : 'Content' + index,
checked: false,
flag: index % 2 === 0,
date: date,
date1: date,
date2: '09:00:00',
date3: index % 3 === 0 ? '2020-02-10' : '',
date4: date,
date5: '09:00',
date6: null,
date7: null,
date8: null,
date9: null,
date10: null,
date11: [],
date12: index % 3 === 0 ? '2019-12-20' : '',
date13: index % 4 === 0 ? '2020-01-01' : '',
num: (0.234 * index).toFixed(0),
num1: (0.185 * index).toFixed(0),
num2: (0.567 * index).toFixed(1),
num3: (0.789 * index).toFixed(1),
num4: (0.348 * index).toFixed(2),
num5: (0.967 * index).toFixed(2),
num6: '' + (0.234 * index).toFixed(0),
color: index % 4 === 0 ? 'rgba(255, 0, 0, 0.8)' : index % 3 === 0 ? 'rgba(0, 255, 0, 0.8)' : null,
slider: index % 5 === 0 ? 40 : index % 4 === 0 ? 20 : index % 3 === 0 ? 60 : 0,
list: [],
time: currTime + 360000,
sex: index % 3 ? '0' : '1',
sex1: index % 3 ? ['0'] : index % 4 ? ['0', '1'] : index % 5 ? [] : ['1'],
sex2: index % 4 ? '0' : '1',
sex3: index % 3 ? 0 : 1,
sex4: index % 4 ? 0 : 1,
sex5: index % 5 ? '0' : '1',
amount: 10000000 * (index % 11 === 0 ? 9.46676 : index % 7 === 8.9886 ? 34.78869 : index % 3 === 2.894453 ? 3.33356 : 7.6566444) + index * 88,
bankCard: '6200000' + (100000000 + index),
age: index % 6 === 0 ? 18 : index % 4 === 0 ? 26 : index % 3 === 0 ? 28 : 30,
age1: '' + (index % 6 === 0 ? 18 : index % 4 === 0 ? 26 : index % 3 === 0 ? 28 : 30),
region: index % 4 === 0 ? [19, 199, 1773] : index % 3 === 0 ? [9, 73, 719] : [1, 1, 5],
rate: index % 4 === 0 ? 2 : index % 3 === 0 ? 3 : 0,
rate1: '' + (index % 4 === 0 ? 2 : index % 3 === 0 ? 3 : 0),
state: '' + (index % 4 === 0 ? 'value:Washington' : index % 3 === 0 ? 'value:Delaware' : ''),
address: 'vxe-table 从入门到放弃 vxe-table 从入门到放弃 vxe-table 从入门到放弃' + index,
address2: 'vxe-table 从入门到放弃' + index,
img: 'static/other/img' + (index % 3 ? '1' : '2') + '.gif',
img1: index % 4 === 0 ? 'static/other/img' + (index % 3 ? '1' : '2') + '.gif' : '',
html1: index % 3 === 0 ? '我是一段Html代码
vxe-table 从入门到放弃' + index + '
绿到你发慌!' : '',
html2: index % 3 === 0 ? '我是一段Html代码vxe-table 从入门到放弃' + index + '绿到你发慌!' : '',
html3: index + ' -> 我是一段Html代码vxe-table 从入门到放弃' + index + '绿到你发慌!
绿到你发慌!
我是一段Html代码,我是一段Html代码,我是一段Html代码,绿到你发慌!
我是一段Html代码,我是一段Html代码,我是一段Html代码
我是一段Html代码,我是一段Html代码,我是一段Html代码
我是一段Html代码,我是一段Html代码,我是一段Html代码',
text: index + ' -> ' + nickList.concat(nameList).join(''),
updateTime: currTime,
createTime: currTime,
attr1: '',
attr2: [],
attr3: index % 2 ? '1' : '',
attr4: '',
attr5: 0,
loading: false,
info: {
name2: '算了,还是废弃吧' + index,
more: {
sex2: index % 3 ? '0' : '1',
age2: index % 2 === 0 ? 26 : 30
}
},
col_4: 'col_4_' + index,
col_6: 'col_6_' + index,
col_8: 'col_8_' + index,
col_10: 'col_10_' + index,
col_20: 'col_20_' + index,
col_30: 'col_30_' + index,
col_40: 'col_40_' + index,
col_41: 'col_41_' + index,
col_50: 'col_50_' + index,
col_60: 'col_60_' + index,
col_61: 'col_61_' + index,
col_62: 'col_62_' + index,
col_63: 'col_63_' + index,
col_64: 'col_64_' + index,
col_65: 'col_65_' + index,
col_100: 'col_100_' + index,
col_110: 'col_110_' + index,
col_111: 'col_111_' + index,
col_112: 'col_112_' + index,
col_113: 'col_113_' + index,
col_114: 'col_114_' + index,
col_115: 'col_115_' + index,
col_116: 'col_116_' + index,
col_117: 'col_117_' + index,
col_118: 'col_118_' + index,
col_119: 'col_119_' + index,
col_120: 'col_120_' + index,
col_500: 'col_500_' + index,
col_501: 'col_501_' + index,
col_502: 'col_502_' + index,
col_503: 'col_503_' + index,
col_504: 'col_504_' + index,
col_510: 'col_510_' + index,
col_520: 'col_520_' + index,
col_521: 'col_521_' + index,
col_522: 'col_522_' + index,
col_523: 'col_523_' + index,
col_524: 'col_524_' + index,
col_525: 'col_525_' + index,
col_526: 'col_526_' + index,
col_527: 'col_527_' + index,
col_528: 'col_528_' + index,
col_529: 'col_529_' + index,
col_530: 'col_530_' + index,
col_1000: 'col_1000_' + index,
col_1500: 'col_1500_' + index,
col_2000: 'col_2000_' + index,
col_2001: 'col_2001_' + index,
col_2002: 'col_2002_' + index,
col_2003: 'col_2003_' + index,
col_2004: 'col_2004_' + index,
col_2005: 'col_2005_' + index,
col_2006: 'col_2006_' + index,
col_2007: 'col_2007_' + index,
col_2008: 'col_2008_' + index,
col_2009: 'col_2009_' + index,
col_2010: 'col_2010_' + index,
col_2011: 'col_2011_' + index,
col_2012: 'col_2012_' + index,
col_2013: 'col_2013_' + index
}
dataCacheList.push(item)
}
}
dataIndex = index
}
XEAjax.mixin({
mockColumns (size) {
return new Promise(resolve => {
setTimeout(() => {
if (colCacheList.length < size) {
mockColumns(size)
}
resolve(colCacheList.slice(0, size))
}, 100)
})
},
mockList (size) {
return new Promise(resolve => {
setTimeout(() => {
if (dataCacheList.length < size) {
mockData(size)
}
const rest = dataCacheList.slice(0, size)
rest.forEach(item => {
item.checked = false
})
resolve(rest)
}, 100)
})
},
mockTreeList (size) {
return new Promise(resolve => {
setTimeout(() => {
if (treeCacheList.length < size) {
mockData(size, true)
}
const rest = treeCacheList.slice(0, size)
XEUtils.eachTree(rest, item => {
item.checked = false
})
resolve(rest)
}, 100)
})
}
})