UNPKG

kero

Version:
89 lines (82 loc) 2.52 kB
/** * 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 }