fetch_demo.js
import nativeService from '@/common/services/nativeService'
// 生成随机数串
const UUID = () => {
var d = new Date().getTime()
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = (d + Math.random() * 16) % 16 | 0
d = Math.floor(d / 16)
return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16)
})
return uuid
}
// 生成weex stream 请求的reqBody,String格式
const generateReqBody = reqBody => {
let d = new Date()
let YY = d.getFullYear()
let MM = d.getMonth() + 1
let DD = d.getDate()
let hh = d.getHours()
let mm = d.getMinutes()
let ss = d.getSeconds()
function formatNum(num) {
return num > 9 ? num : `0${num}`
}
reqBody = Object.assign(
{
reqId: UUID(),
appId: '900',
stamp: `${YY}${formatNum(MM)}${formatNum(DD)}${formatNum(hh)}${formatNum(mm)}${formatNum(ss)}`
},
reqBody
)
return JSON.stringify(reqBody)
}
// 请求云端接口
const __fetch = options => {
return new Promise((resolve, reject) => {
let { url: requestUrl, params, showLoading = false, handleByPage } = options
let requestOption = {
method: 'POST',
isShowLoading: showLoading
}
let requestParam = {
method: 'POST',
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
data: generateReqBody(params)
}
console.log(`__fetch ${requestUrl} ${JSON.stringify(requestParam)}`)
nativeService
.sendCentralCloundRequest(requestUrl, requestParam, requestOption, handleByPage)
.then(resp => {
console.log(`__fetch ${requestUrl} resp ${JSON.stringify(resp)}`)
resolve(resp)
})
.catch(error => {
console.log(`__fetch ${requestUrl} error ${JSON.stringify(error)}`)
reject(error)
})
})
}
// 查询空气检测仪日报数据
export const getDayRecordDemo = params => {
return new Promise(async (resolve, reject) => {
try {
resolve(
await __fetch({
url: '/v1/scene/airdetector/dayrecord',
params: {
homegroupId: '',
applianceCode: '',
...params
}
})
)
} catch (error) {
reject(error)
}
})
}
export default __fetch