| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- import {
- config
- } from './config.js'
- import {
- tansParams
- } from "./util.js";
- import {
- hex_md5
- } from '@/utils/md5.js';
- export const apiResquest = (prams) => {
- return new Promise((resolve, reject) => {
- const timestamp = Date.now().toString();
- const sign = generateSign(config.APP_ID, config.APP_SECRET, timestamp, prams.data);
- let url = config.base_url + prams.url;
- uni.showLoading({
- title: '加载中',
- mask: true
- });
- // get请求映射params参数
- if (prams.method === 'GET' && prams.data) {
- url = url + '?' + tansParams(prams.data);
- url = url.slice(0, -1);
- prams.data = {};
- }
- return uni.request({
- timeout:10000,
- url: url,
- data: {
- ...prams.data
- },
- method: prams.method,
- header: {
- 'content-type': 'application/json;charset=utf-8',
- // 'Authorization': uni.getStorageSync('token'),
- 'timestamp': timestamp,
- 'sign': sign
- },
- success: (res) => {
- // 成功
- uni.hideLoading()
- if (res.statusCode == 200) {
- if (res.data.code == 200) {
- resolve(res);
- } else if (res.data.code == 401) {
- loginTimeout();
- } else {
- uni.showToast({
- mask: true,
- icon: "none",
- position: "center",
- title: res.data.message,
- duration: 2000
- });
- resolve(res);
- }
- } else if (res.statusCode == 401) {
- loginTimeout();
- } else {
- uni.showToast({
- mask: true,
- icon: "none",
- position: "center",
- title: '连接异常,请联系管理员.',
- duration: 2000
- });
- resolve(res);
- }
- },
- fail: (err) => {
- // 失败
- uni.hideLoading()
- uni.showToast({
- mask: true,
- icon: "none",
- position: "center",
- title: '出错啦~请联系管理员!',
- duration: 2000
- });
- },
- complete: () => {
- // 完成
- }
- });
- })
- }
- //登录超时-退出至登录页面
- export function loginTimeout(params) {
- uni.showToast({
- mask: true,
- icon: "none",
- position: "center",
- title: "登录超时,请重新登录~",
- duration: 2000
- });
- uni.removeStorageSync('token');
- uni.removeStorageSync('userId');
- uni.removeStorageSync('userType');
- setTimeout(function() {
- if(uni.getStorageSync('patrolLoginType')){
- uni.redirectTo({
- url: '/pages/views/login/patrolLogin',
- });
- }else{
- uni.redirectTo({
- url: '/pages/views/login/login',
- });
- }
- }, 2000);
- }
- // ========== 前端签名工具 ==========
- function generateSign(appId, appSecret, timestamp, params) {
- const sortedKeys = Object.keys(params).sort();
- let signStr = `appId=${appId}×tamp=${timestamp}`;
- sortedKeys.forEach((key) => {
- const value = params[key];
- if (value !== null && value !== undefined && value !== '') {
- signStr += `&${key}=${value}`;
- }
- });
- signStr += `&appSecret=${appSecret}`;
- // MD5 加密,转大写
- return hex_md5(signStr).toUpperCase();
- }
|