<script src="/utils/request.js" type="text/javascript"></script>
const baseUrl = ''
const token = ''
function getUrl(url, data) {
if (data) {
if (url.indexOf('?') === -1) {
url = url + '?' + data
} else {
url = url + '&' + data
}
}
return url
}
function setErrorPage(html) {
if (parent.$('.iframe_page_wrapper #errorIframe').length > 0) {
parent.$('.iframe_page_wrapper #errorIframe').contentDocument.html(html)
} else {
parent
.$('.iframe_page_wrapper')
.append(`<iframe width="100%" height="100%" id="errorIframe" name="errorIframe"></iframe>`)
const dom = parent.$('#errorIframe')[0]
const doc = dom.contentDocument || dom.contentWindow.document
$(doc).children('html').html(html)
}
}
function openMessage(type, msg) {
if (top['message_' + type]) {
top['message_' + type](msg)
} else {
message[type](msg)
}
}
function getRefer() {
let url = location.href
let index = url.indexOf('?')
let redirectTo = ''
if (index !== -1) {
let str = url.substr(index + 1)
let parameter = str.split('&')
for (var i = 0; i < parameter.length; i++) {
let index = parameter[i].indexOf('=')
if (index !== -1) {
let key = parameter[i].substring(0, index)
let value = parameter[i].substr(index + 1)
if (key === 'redirectTo') {
redirectTo = value
}
}
}
if (redirectTo) {
return redirectTo
} else {
return encodeURIComponent(window.location.href)
}
} else {
return encodeURIComponent(window.location.href)
}
}
$.extend({
post: function (url, data, unRefer) {
return new Promise(function (resolve, reject) {
if (!unRefer) {
url = getUrl(url, 'redirectTo=' + getRefer())
}
var request = {
type: 'POST',
url: baseUrl + url,
contentType: 'application/json',
data: JSON.stringify(data),
timeout: '10000',
cache: false,
xhrFields: { withCredentials: true },
success: function (res) {
if (res.code === undefined) {
resolve(res)
setErrorPage(res)
return
}
if (res.code === 0) {
openMessage('success', res.msg == '' ? '执行成功' : res.msg)
resolve(res)
} else {
if (res.code === 302) {
if (res.msg !== '') {
openMessage('success', res.msg)
}
$.getPage(res.data, {}, true)
return
}
if (res.code > 0 && res.code < 100000) {
openMessage('error', res.msg)
} else {
openMessage('warning', res.msg)
}
reject(res)
}
},
error: function (error) {
reject(error)
openMessage('warning', '网络错误')
},
}
$.ajax(request)
})
},
getPage: function (url, data, unRefer) {
let queryStr = ''
for (let k in data) {
if (k === 'redirectTo') {
unRefer = true
}
if (queryStr === '') {
queryStr += k + '=' + data[k]
} else {
queryStr += '&' + k + '=' + data[k]
}
}
if (unRefer) {
window.location.href = getUrl(url, queryStr)
} else {
window.location.href = getUrl(url, queryStr ? queryStr + '&redirectTo=' + getRefer() : 'redirectTo=' + getRefer())
}
},
get: function (url, data) {
let queryStr = ''
for (let k in data) {
if (queryStr === '') {
queryStr += k + '=' + data[k]
} else {
queryStr += '&' + k + '=' + data[k]
}
}
return new Promise(function (resolve, reject) {
var request = {
type: 'GET',
url: baseUrl + url + queryStr,
timeout: '10000',
xhrFields: { withCredentials: true },
success: function (res) {
resolve(res)
},
error: function (error) {
reject(error)
},
}
$.ajax(request)
})
},
upload: function (url, data) {
return new Promise(function (resolve, reject) {
var request = {
type: 'POST',
url: baseUrl + url,
data: data,
processData: false,
contentType: false,
timeout: '60000',
cache: false,
xhrFields: { withCredentials: true },
xhr: function () {
var xhr = $.ajaxSettings.xhr()
if (xhr.upload) {
xhr.upload.addEventListener(
'progress',
function (event) {
if (event.lengthComputable) {
let percent = Math.floor((event.loaded / event.total) * 100)
console.log(percent)
}
},
false
)
xhr.upload.addEventListener(
'readystatechange',
function () {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText)
}
},
false
)
}
return xhr
},
success: function (res) {
resolve(res)
},
error: function (error) {
reject(error)
},
}
$.ajax(request)
})
},
})