Commit 254834c1 by xiexiaoqin

refactor:http request

parent 93f2546a
import { login } from "./login";
export default function http(data) {
if (getApp().globalData.token !== "") {
return new Promise((resolve, rejects) => {
dd.httpRequest({
headers: {
"Content-Type": "application/json;charset=UTF-8",
Authorization: `Bearer ${getApp().globalData.token}`
},
url: `${getApp().globalData.globalUrl}${data.url}`,
method: data.method,
dataType: "json",
data: data.data,
success: function (res) {
if (res.data.code == 0) {
resolve(res);
} else {
dd.alert({
content: res.data.msg || "网络异常",
buttonText: "确定"
});
}
},
fail: function (res) {
dd.alert({
content: "网络异常",
buttonText: "确定"
});
rejects(res);
}
});
});
} else {
return new Promise((resolve, rejects) => {
login().then(res => {
// const { oapiUser } = res.data.data;
// getApp().globalData.token = res.data.data.accessToken.access_token;
// // getApp().globalData.token = 'd2563d3a-7723-4f76-ad04-005815893328';
// getApp().globalData.name = res.data.data.oapiUser.name;
// getApp().globalData.userid = res.data.data.oapiUser.userid;
// getApp().globalData.avatar = res.data.data.oapiUser.avatar;
// getApp().globalData.userInfo = JSON.stringify({
// username: oapiUser.name,
// userId: oapiUser.userid,
// headUrl: oapiUser.avatar,
// platform: "dingtalk"
// });
dd.httpRequest({
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${getApp().globalData.token}`
},
url: `${getApp().globalData.globalUrl}${data.url}`,
method: data.method,
data: data.data,
dataType: "json",
success: function (res) {
resolve(res);
},
fail: function (res) {
rejects(res);
}
});
});
});
}
import login from "./login";
import xFetch from './xFetch';
export default async function http(options) {
if (!getApp().globalData.token) {
await login();
}
return xFetch(options);
}
\ No newline at end of file
let lock = false;
export async function login(data) {
export default async function login() {
if (lock == true) {
await waitLockRelease(20);
return Promise.resolve();
await waitLockRelease(50);
return;
}
lock = true;
return new Promise((resolve, reject) => {
......@@ -18,11 +18,8 @@ export async function login(data) {
method: 'POST',
dataType: 'json',
success: function (res) {
const { oapiUser } = res.data.data;
getApp().globalData.token = res.data.data.accessToken.access_token;
// getApp().globalData.token = 'd2563d3a-7723-4f76-ad04-005815893328';
getApp().globalData.name = res.data.data.oapiUser.name;
getApp().globalData.userid = res.data.data.oapiUser.userid;
getApp().globalData.avatar = res.data.data.oapiUser.avatar;
......@@ -35,16 +32,17 @@ export async function login(data) {
lock = false;
resolve(res)
},
fail: function (res) {
fail: function (err) {
lock = false;
resolve(res)
console.log('err', res)
reject(err);
console.log('err:' + err);
}
})
},
fail: function (err) {
console.log(err)
lock = false;
reject(err);
console.log('fail:' + err);
}
})
})
......
const app = getApp();
import $http from "./http";
import $binding from "./binding";
// 区域标签树
export function getRoomTree() {
return $http({
......@@ -199,18 +197,20 @@ export function meetingCollection(data) {
}
// 获取outlook页面授权地址
export function getOutlookUrl(data) {
return $binding({
return $http({
method: "POST",
data: "",
url: `/microsoft/getThirdLoginUrl?state=${data}`
url: `/microsoft/getThirdLoginUrl?state=${data}`,
type: 'binding'
});
}
// 发送给后端outlook code
export function authorizationCodeReplacementToken(data) {
return $binding({
return $http({
method: "get",
data: data,
url: `/microsoft/authorizationCodeReplacementToken`
url: `/microsoft/authorizationCodeReplacementToken`,
type: 'binding'
});
}
// 发送给后端outlook code
......@@ -232,18 +232,20 @@ export function unbindingApp(data) {
}
// 获取zoom授权页面
export function getZoomUrl(data) {
return $binding({
return $http({
method: "get",
data: "",
url: "/zoom/auth"
url: "/zoom/auth",
type: 'binding'
});
}
//
export function sendZoomCode(data) {
return $binding({
return $http({
method: "get",
data: data,
url: "/zoom/notice"
url: "/zoom/notice",
type: 'binding'
});
}
export default function xFetch({ url, method, data, type }) {
if (type == 'binding') {
url = `${getApp().globalData.globalUrl2}${url}`
} else {
url = `${getApp().globalData.globalUrl}${url}`
}
return new Promise((resolve, rejects) => {
dd.httpRequest({
headers: {
"Content-Type": "application/json;charset=UTF-8",
Authorization: `Bearer ${getApp().globalData.token}`
},
url: url,
method: method,
dataType: "json",
data: data,
// timeout: 280,
success: function (res) {
if (res.data.code == 0) {
resolve(res);
} else {
rejects(res);
dd.alert({
content: res.data.msg || "请求数据异常",
buttonText: "确定"
});
}
},
fail: function (err) {
rejects({ refresh: true });
}
});
});
}
......@@ -2,19 +2,19 @@ import { setGlobalStore } from "dd-store";
import exampleStore from "./stores/exampleStore";
import { checkFullScren } from "./utils/checkFullScren";
setGlobalStore(exampleStore);
import login from './api/login';
App({
onLaunch(options) {
// 第一次打开
// options.query == {number:1}
// console.info('App onLaunch');
login();
this.globalData.isFullScren = checkFullScren;
},
onShow(options) {
// 从后台被 scheme 重新打开
// options.query == {number:1}
},
globalData: {
isFullScren: false,
loading: false,
......
<import src="../../template/loading/loading.axml"/>
<import src="../../template/fullScreen/fullScreen.axml"/>
<view hidden="{{$data.tabBarIndex === '1'}}">
<view a:if='{{refresh}}' onTap="onLoad">连接超时,请重试,刷新按钮</view>
<block a:else>
<view hidden="{{$data.tabBarIndex === '1'}}">
<import src="../../template/affairBlank/index.axml"/>
<view class="{{isStopBodyScroll ? 'scroll-lock' : ''}}" onTap="closeSwipe" onTouchStart="closeSwipe" onTouchMove="closeSwipe" onTouchEnd="closeSwipe">
<block a:if="{{!listLoading}}">
......@@ -42,8 +44,8 @@
<template is="loading" a:else>
</template>
</view>
</view>
<view hidden="{{$data.tabBarIndex === '0'}}">
</view>
<view hidden="{{$data.tabBarIndex === '0'}}">
<view a:if="{{!loading}}">
<view class="scheduleHeader">
<view>{{currentData.split('/')[0]}}年{{currentData.split('/')[1] || '1'}}月</view>
......@@ -119,7 +121,8 @@
</view>
<template is="loading" a:else>
</template>
</view>
</view>
</block>
<view class="tabBarContent">
<view class="tabBar">
<view onTap="changeTabBar" data-tabbar='0' data-title='动态'>
......
......@@ -28,6 +28,7 @@ import create from "dd-store";
let maxClickCount = 5;
create.Page({
data: {
refresh: false,
$data: null,
iconDay: currentDate.getDate(),
scheduleList: [],
......@@ -173,6 +174,12 @@ create.Page({
if (callBack) {
callBack();
}
}).catch(err => {
// if (err && err.refresh) {
// this.setData({
// refresh: true
// })
// }
});
},
//动态置顶
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment