| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // api.jshttp://zlink.bjdexn.cn
- const baseUrl = 'http://192.168.8.187:9999'; // 替换为您的接口基础 URL
- const esosUrl = 'https://esos-iot.bjdexn.cn'; // 线上
- // const baseUrl = 'https://esos-iot.bjdexn.cn:8443'; // 线上
-
- // const baseUrl = 'http://192.168.8.105:8888'; // 替换为您的接口基础 URL
- //
- // 封装网络请求方法
- // isPublic: true 不检验token
- // useEsos: true 使用esosUrl地址
- function request(url, method, data, options = {}) {
- const { isPublic = false, useEsos = false } = options;
-
- return new Promise((resolve, reject) => {
- // 动态选择根地址
- const rootUrl = useEsos ? esosUrl : baseUrl;
- const header = {
- 'Content-Type': 'application/x-www-form-urlencoded'
- };
-
- // 非公共接口需携带 Token
- if (!isPublic) {
- const token = wx.getStorageSync('token');
- if (token) {
- header['Authorization'] = `Bearer ${token}`;
- } else {
- redirectToLogin('请先登录');
- reject({ code: 401, message: '未找到认证 Token' });
- return;
- }
- }
-
- wx.request({
- url: rootUrl + url,
- header,
- method,
- data,
- success: (res) => {
- console.log(res);
- // Token 失效或未授权
- if ([320, 400, 401, 403].includes(res.statusCode)) {
- handleTokenInvalid(res.data.msg || '登录已过期');
- reject(res.data);
- return;
- }
-
- // 请求成功但业务逻辑错误(如 code != 200)
- if (res.statusCode === 200||res.data.code==0) {
- res.data.code === 200||res.data.code === 0 ? resolve(res.data) : reject(res.data);
- } else {
- reject(res.data.msg || { code: res.statusCode, message: '请求异常' });
- }
- },
- fail: (err) => {
- console.error('请求失败:', err);
- wx.showToast({ title: '网络错误', icon: 'none' });
- reject(err);
- }
- });
- });
- }
-
- // 跳转到登录页
- function redirectToLogin(message = '') {
- wx.clearStorageSync();
- const pages = getCurrentPages();
- const currentRoute = pages[pages.length - 1]?.route || '';
-
- // 避免重复跳转
- if (!currentRoute.includes('pages/login/index')) {
- wx.showToast({ title: message, icon: 'none' });
- wx.reLaunch({ url: '/pages/login/index' });
- }
- }
-
- // 处理 Token 失效
- function handleTokenInvalid(message) {
- console.warn('Token 失效:', message);
- redirectToLogin(message || '请重新登录');
- }
- // 导出封装的请求方法
- module.exports = {
- request: request
- };
-
|