function factory ( ) {
let res = dd. getStorageSync ( { key: 'token' } ) ;
let token = res. data. token;
let Options = {
host: '' ,
} ;
let Response = function ( status, headers, data, content) {
this . status = status || 0 ;
this . headers = headers || { } ;
this . data = data || null ;
this . content = content || null ;
this . error = null ;
} ;
Response. prototype. text = function ( ) {
return this . content;
} ;
Response. prototype. message = function ( ) {
return decodeURIComponent ( window. atob ( this . headers[ 'x-api-message' ] ) ) ;
} ;
Response. prototype. setError = function ( code) {
this . error = code;
} ;
Response. prototype. getHeader = function ( key, df) {
df = typeof df === 'undefined' ? '' : df;
return this . headers[ key] || df;
} ;
let Request = function ( options) {
} ;
Request. prototype. token = function ( ) {
} ;
Request. prototype. generateUri = function ( uri) {
return Options. host + ( uri. startsWith ( '/' ) ? '' : '/' ) + uri;
} ;
Request. prototype. get = function ( uri, params, options) {
options = options || { } ;
options. headers = {
'Content-type' : 'application/x-www-form-urlencoded;charset=utf-8' ,
"Authorization" : 'Bearer ' + token
} ;
return this . send ( uri, params, 'get' , options. headers || { } , options. callback) ;
} ;
Request. prototype. post = function ( uri, params, options) {
options = options || { } ;
options. headers = {
'Content-type' : 'application/x-www-form-urlencoded;charset=utf-8' ,
"Authorization" : 'Bearer ' + token
} ;
console. log ( options)
return this . send ( uri, params, 'post' , options. headers || { } , options. callback) ;
} ;
Request. prototype. put = function ( uri, params, options) {
options = options || { } ;
options. headers = {
'Content-type' : 'application/x-www-form-urlencoded;charset=utf-8' ,
"Authorization" : 'Bearer ' + token
} ;
return this . send ( uri, params, 'put' , options. headers || { } , options. callback) ;
} ;
Request. prototype. delete = function ( uri, params, options) {
options = options || { } ;
options. headers = {
'Content-type' : 'application/x-www-form-urlencoded;charset=utf-8' ,
"Authorization" : 'Bearer ' + token
} ;
return this . send ( uri, params, 'delete' , options. headers || { } , options. callback) ;
} ;
Request. prototype. send = function ( uri, params, method, headers, onComplete) {
method = method || 'GET' ;
onComplete = onComplete || null ;
headers = headers || { } ;
return new Promise ( ( resolve, reject) => {
dd. httpRequest ( {
url: this . generateUri ( uri) ,
method: method. toUpperCase ( ) ,
data: params,
headers: headers,
dataType: 'json' ,
success: ( result) => {
let resp = new Response ( result. status, result. headers, result. data, result. originalData) ;
if ( resp. status >= 200 && resp. status < 300 )
resolve ( resp) ;
else
reject ( resp) ;
} ,
fail: ( errCode) => {
let resp = new Response ( ) ;
resp. setError ( errCode) ;
reject ( resp) ;
} ,
complete: ( ) => {
if ( typeof onComplete === 'function' )
onComplete ( ) ;
}
} ) ;
} ) ;
} ;
let Pagination = function ( ) {
this . total = 1 ;
this . page = 0 ;
this . size = 20 ;
} ;
Pagination. prototype. init = function ( ) {
this . total = 1 ;
this . page = 0 ;
this . size = 20 ;
} ;
Pagination. prototype. hasNext = function ( ) {
return Math. ceil ( this . total / this . size) > this . page;
} ;
Pagination. prototype. parse = function ( response) {
this . total = parseInt ( response. getHeader ( 'x-api-total' , 0 ) ) ;
this . page = parseInt ( response. getHeader ( 'x-api-page' , 0 ) ) ;
this . size = parseInt ( response. getHeader ( 'x-api-size' , 20 ) ) ;
} ;
return {
init: function ( options) {
options = options || { } ;
for ( var index in options)
Options[ index] = options[ index] ;
} ,
create: function ( ) {
return new Request ( Options) ;
} ,
pagination: function ( ) {
return new Pagination ( ) ;
}
} ;
}
export default {
Request: factory ( )
}
import { Request } from './utils/network.js' ;
Request. init ( {
host: '地址'
} ) ;
App ( {
request: function ( ) {
return Request. create ( ) ;
} ,
pager: function ( ) {
return Request. pagination ( ) ;
} ,
} ) ;