kero
Version:
89 lines (82 loc) • 2.52 kB
JavaScript
/**
* Module : kero app serverEvent fire
* Author : liuyk(liuyk@yonyou.com)
* Date : 2016-07-29 09:34:01
*/
import {extend} from 'neoui-sparrow/js/extend';
import {ajax} from 'neoui-sparrow/js/ajax';
const fire = function (p) {
var self = this
var data = this.getData();
data.parameters = ko.utils.stringifyJson(this.params)
var params = {
type: p.type || "POST",
data: p.params || {},
url: p.url || ServerEvent.DEFAULT.url,
async: typeof p.async == 'undefined' ? ServerEvent.DEFAULT.async : p.async,
singleton: p.singleton || ServerEvent.DEFAULT.singleton,
success: p.success,
error: p.error,
dataType: 'json'
}
params.data.ctrl = p.ctrl
params.data.method = p.method
if (this.event)
params.data.event = ko.utils.stringifyJson(this.event)
var preSuccess = p.preSuccess || function () {
}
var orignSuccess = p.success || function () {
}
var orignError = params.error //|| function(){}
this.orignError = orignError
var deferred = params.deferred;
if (!deferred || !deferred.resolve) {
deferred = {
resolve: function () {
}, reject: function () {
}
}
}
params.success = function (data, state, xhr) {
if (typeof data === 'string')
data = JSON.parse(data)
if (self.processXHRError(self, data, state, xhr)) {
preSuccess.call(null, data)
self._successFunc(data, deferred)
orignSuccess.call(null, data.custom)
deferred.resolve();
} else {
deferred.reject();
}
}
params.error = function (data, state, xhr) {
if (typeof data === 'string')
data = JSON.parse(data)
if (self.processXHRError(self, data, state, xhr)) {
if (orignError)
orignError.call(null, data.custom)
// self._successFunc(data, deferred)
} else {
deferred.reject();
}
}
params.data = extend(params.data, data);
ajax(params)
}
const _successFunc = function (data, deferred) {
if (typeof data === 'string')
data = JSON.parse(data)
var dataTables = data.dataTables
var dom = data.dom
if (dom)
this.updateDom(JSON.parse(dom))
if (dataTables)
this.updateDataTables(dataTables, deferred)
}
const setSuccessFunc = function (func) {
this._successFunc = func
}
export {
fire,
setSuccessFunc
}