import Vue from 'vue'; import store from '@/store'; // 定义 API URL const DEV_API_URL = 'https://cgc.js-dyyj.com'; const PROD_API_URL = 'https://cgc.js-dyyj.com'; const NEWAPIURL = process.env.NODE_ENV === 'development' ? DEV_API_URL : PROD_API_URL; // 获取token const getToken = () => { const userInfoFromStorage = uni.getStorageSync('userInfo'); if (userInfoFromStorage) { const userInfo = JSON.parse(userInfoFromStorage); if (userInfo.token) { return userInfo.token; } } return store.state.user.userInfo.token; }; // 定义错误处理函数 noForceLogin 不强制登录 const handleError = (res, reject, noForceLogin) => { setTimeout(() => { uni.showToast({ title: res.data?.msg || res.msg, icon: 'none' }); reject(res); }, 0); if (res.data?.code === 401) { if (noForceLogin) { return } store.commit('changeLoginPath'); } }; // 挂载到 Vue 原型上 Vue.prototype.NEWAPIURL = NEWAPIURL; // #ifdef H5 Vue.prototype.NEWAPIURL = '/api'; // #endif Vue.prototype.Post = (params = {}, apiurl) => { const token = getToken() || '948acca7-f801-4d65-beea-79dde49b1fa3'; if (token) { params.token = token; } return new Promise((resolve, reject) => { uni.showLoading({ title: '加载中' }); uni.request({ method: params.method || 'GET', url: Vue.prototype.NEWAPIURL + apiurl, data: params, header: { 'content-type': 'application/json', 'token': token || '' }, success: (res) => { console.log('success', res.data); uni.hideLoading() if (res.data.code === 200 || res.data.code === 1) { resolve(res.data); } else { handleError(res, reject); } }, fail: (err) => { console.log('err', err); uni.hideLoading() handleError(err, reject, params.noForceLogin); } }); }); }; export default NEWAPIURL;