Files
vxe-table/examples/plugins/ajax.js
2019-12-05 12:28:13 +08:00

47 lines
1.1 KiB
JavaScript

import Vue from 'vue'
import XEUtils from 'xe-utils/methods/xe-utils'
import XEAjax from 'xe-ajax'
import VXEAjax from 'vxe-ajax'
Vue.use(VXEAjax, XEAjax)
/**
* 生成模拟数据
*/
const columnsWorker = new Worker('static/worker/columns.js')
const dataWorker = new Worker('static/worker/data.js')
const callMaps = {}
columnsWorker.onmessage = function (evnt) {
var rest = evnt.data
if (rest && callMaps[rest.key]) {
callMaps[rest.key](rest.columns)
delete callMaps[rest.key]
}
}
dataWorker.onmessage = function (evnt) {
var rest = evnt.data
if (rest && callMaps[rest.key]) {
callMaps[rest.key](rest.list)
delete callMaps[rest.key]
}
}
XEAjax.mixin({
mockColumns (size) {
return new Promise(resolve => {
const key = XEUtils.uniqueId()
callMaps[key] = resolve
setTimeout(() => columnsWorker.postMessage({ key, size }), 100)
})
},
mockList (size) {
return new Promise(resolve => {
const key = XEUtils.uniqueId()
callMaps[key] = resolve
setTimeout(() => dataWorker.postMessage({ key, size }), 100)
})
}
})