wudebin пре 6 месеци
родитељ
комит
d8d2ca47f5
3 измењених фајлова са 263 додато и 0 уклоњено
  1. 20 0
      Strides-SPAPP/app/api/apiArticle.js
  2. 18 0
      Strides-SPAPP/app/api/apiBase.js
  3. 225 0
      Strides-SPAPP/app/api/http.js

+ 20 - 0
Strides-SPAPP/app/api/apiArticle.js

@@ -0,0 +1,20 @@
+import { del, get, post } from "./http";
+
+const prefix = 'devicesApi/notification/';
+
+export default {
+  /**
+   * 查询新闻列表
+   * @param {String} articleId 最后一个列表对象的Id(用于分页)
+   * @returns Promise
+   */
+  getArticleList(articleId) {
+    return get(prefix + "articles", {articleId})
+  },
+  readMessage(articleId) {
+    return get(prefix + "read-article", {articleId})
+  },
+  getCampaignList(articleId) {
+    return get("devicesApi/notification/campaigns", {articleId})
+  }
+}

+ 18 - 0
Strides-SPAPP/app/api/apiBase.js

@@ -0,0 +1,18 @@
+import { get, post } from "./http";
+
+const prefix = 'devicesApi/base/';
+
+export default {
+  listChargeBox(search) {
+    return get(prefix + "getChargeBoxes", {chargeBoxId: search})
+  },
+  listConnector(id) {
+    return get(prefix + "getConnectors", {chargeBoxId: id})
+  },
+  checkUpdate() {
+    return get(prefix + "checkAppVersion")
+  },
+  getPinMessage() {
+    return get(prefix + "pin-message")
+  }
+}

+ 225 - 0
Strides-SPAPP/app/api/http.js

@@ -0,0 +1,225 @@
+import Axios from 'axios';
+import { PageList } from '../pages/Router';
+import app from '../../app.json';
+
+//config
+//const hostUrl = 'http://161.117.183.142/';
+const hostUrl = app.product ? 'https://csms.chargeco.global/' : 'https://uat.chargeco.global/';
+//const hostUrl = app.product ? 'https://csms.chargeco.global/' : 'https://test.internal.chargeco.global/'
+const service = 'chargeco/'
+export const host = hostUrl;
+
+//在生产模式显示日志
+const DEBUG_PROD = false;
+//日志开关
+const DEBUG = DEBUG_PROD || (app.debug && !app.product);
+
+Axios.defaults.timeout = 30000;
+Axios.defaults.timeoutErrorMessage = "Connection timeout, please check your network.";
+Axios.interceptors.response.use((response) => {
+  if (DEBUG) {
+    console.log('-------', response.config.method, response.config.url);
+    console.log('-------', response.status, JSON.stringify(response.data));
+  }
+  if (response.data.code == '401' || response.data.code == '402') {
+    setAccessToken('');
+    startPage(PageList.login, {action: response.data.code});
+    return Promise.reject('Need sign in');
+  }
+  if (response.data.code == '500' || response.data.code == '502') {
+    setAccessToken('');
+    return Promise.reject('Sever error');
+  }
+  return response.data;
+}, (error) => {
+  console.info('-------error', error);
+  return Promise.reject(error);
+});
+
+export const get = (path, params) => {
+  return new Promise((resolve, reject) => {
+    Axios.get(host + service + path, {
+      params: params,
+      method: 'GET',
+      headers: {
+        'Accept': 'application/json',
+        'lang': global.currentLocale,
+        'accessToken': global.accessToken ?? ''
+      }
+    }).then(res => {
+      if (res.success) {
+        resolve(res);
+      } else if (res.msg) {
+        reject({err: res.msg, ...res});
+      } else {
+        reject('Request Failed');
+      }
+    }).catch(error => {
+      console.info('HTTP-ERROR', error);
+      reject(error);
+    });
+  });
+}
+
+export const post = (path, params) => {
+  return new Promise((resolve, reject) => {
+    Axios.post(host + service + path, params, {
+      method: 'POST',
+      headers: {
+        'Accept': 'application/json',
+        'lang': global.currentLocale,
+        'accessToken': global.accessToken ?? ''
+      }
+    }).then(res => {
+      if (res.success) {
+        resolve(res);
+      } else if (res.msg) {
+        reject({err: res.msg, ...res});
+      } else {
+        reject('Request Failed');
+      }
+    }).catch(error => {
+      console.info('HTTP-ERROR', error);
+      reject(error);
+    });
+  });
+}
+
+export const upload = (path, params, header={}) => {
+  return new Promise((resolve, reject) => {
+    Axios.post(host + service + path, params, {
+      method: 'POST',
+      headers: {
+        'lang': global.currentLocale,
+        'Accept': 'application/json',
+        'Content-Type': 'multipart/form-data',
+        'accessToken': global.accessToken ?? '',
+        ...header
+      }
+    }).then(res => {
+      if (res.success) {
+        resolve(res);
+      } else if (res.msg) {
+        reject({err: res.msg, ...res});
+      } else {
+        reject('Request Failed');
+      }
+    }).catch(error => {
+      console.info('HTTP-ERROR', error);
+      reject(error);
+    });
+  })
+}
+
+export const del = (path) => {
+  return new Promise((resolve, reject) => {
+    Axios.delete(host + service + path, {
+      method: 'DELETE',
+      headers: {
+        'Accept': 'application/json',
+        'lang': global.currentLocale,
+        'accessToken': global.accessToken ?? ''
+      }
+    }).then(res => {
+      if (res.success) {
+        resolve(res);
+      } else if (res.msg) {
+        reject({err: res.msg, ...res});
+      } else {
+        reject('Request Failed');
+      }
+    }).catch(error => {
+      console.info('HTTP-ERROR', error);
+      reject(error);
+    });
+  });
+}
+
+export const GET = (url, params) => {
+  var request = host + service + url;
+  if (params) {
+    var keys = ''
+    for (let key in params) {
+      if (keys != '') {
+        keys += '&';
+      }
+      keys += key + '=' + encodeURI(params[key]);
+    }
+    if (keys !== '') {
+      request += '?' + keys;
+    }
+  }
+  return new Promise((resolve, reject) => {
+    fetch(request, {
+      method: 'GET',
+      headers: {
+        'lang': global.currentLocale,
+        'Accept': 'application/json',
+        'accessToken': global.accessToken ?? ''
+      }.then((response) => {
+        if (response.ok) {
+          return response.json();
+        } else {
+          reject(response);
+        }
+      }).then(data => {
+        resolve(data);
+      }).catch((error) => {
+        reject(error);
+      })
+    });
+  });
+}
+
+export const POST = (url, params) => {
+  return new Promise((resolve, reject) => {
+    fetch(host + service + url, {
+      method: 'POST',
+      headers: {
+        'lang': global.currentLocale,
+        'Accept': 'application/json',
+        'content-type': 'application/json',
+        'accessToken': global.accessToken ?? ''
+      },
+      body: JSON.stringify(params)
+    }).then((response) => {
+      if (response.ok) {
+        return response.json();
+      } else {
+        reject(response);
+      }
+    }).then(data => {
+      resolve(data);
+    }).catch((error) => {
+      reject(error);
+    })
+  });
+}
+
+export const SOCKET = (url) => {
+  const ws = new WebSocket(url); // like 'wss://vbea.com/path'
+
+  ws.onopen = () => {
+    // connection opened
+    ws.send('something'); // send a message
+  };
+
+  ws.onmessage = (e) => {
+    // a message was received
+    console.log(e.data);
+  };
+
+  ws.onerror = (e) => {
+    // an error occurred
+    console.log(e.message);
+  };
+
+  ws.onclose = (e) => {
+    // connection closed
+    console.log(e.code, e.reason);
+  };
+}
+
+export const setAccessToken = token => {
+  global.accessToken = token;
+}