diff --git a/api/user.js b/api/user.js new file mode 100644 index 0000000..c696449 --- /dev/null +++ b/api/user.js @@ -0,0 +1,12 @@ +import request from '../utils/request' + +// user 用户模块 + +// 登录 +export function login(data) { + return request({ + url: '/user/login', + method: 'POST', + data + }) +} diff --git a/config/env.js b/config/env.js new file mode 100644 index 0000000..9e9f6ac --- /dev/null +++ b/config/env.js @@ -0,0 +1,23 @@ +import request from '@/utils/request' + +const version = '1.0.0.0' + +const DEV = { + name: '开发', + baseUrl: 'https://www.baidu.com', + version: version +} +const PRE = { + name: '预发', + baseUrl: '', + version: version +} + +const PROD = { + name: '线上', + baseUrl: '', + version: version +} + +// 更换环境的时候 切换导出就行 +export default DEV diff --git a/pages/index/index.vue b/pages/index/index.vue index 352aa50..320385f 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -12,6 +12,7 @@ import { useUserStore } from '../../stores/user.js' import { mapState, mapActions } from 'pinia' import { rgbToHex } from 'uview-plus' + import { login } from '../../api/user.js' export default { data() { @@ -23,11 +24,13 @@ // 允许读取this.userInfo ...mapState(useUserStore, ['userInfo']) }, - onLoad() { + async onLoad () { this.update() + const data = await login({ code: '123' }) + console.log(data) console.log(rgbToHex('rgb(13, 145, 20)')) console.log(111, uni.$u.config.v) - }, + }, methods: { // 允许调用this.updateUserInfo() ...mapActions(useUserStore, ['updateUserInfo']), diff --git a/utils/request.js b/utils/request.js new file mode 100644 index 0000000..6248774 --- /dev/null +++ b/utils/request.js @@ -0,0 +1,63 @@ +import baseConfig from '@/config/env' + +/* +* config +* baseUrl: 请求域名 +* url: 请求路径 +* method: 请求方法 +* header: 请求头 +* token: 请求token +* data: 请求参数 +* */ + +const request = (config) => { + return new Promise((resolve) => { + const headerDefault = { + version: baseConfig.version, + token: config?.token ? config.token : uni.getStorageSync('token') + } + const URL = config.baseUrl ? config.baseUrl + config.url : baseConfig.baseUrl + config.url + const method = config.method || 'POST' + const header = config.header || headerDefault + const data = config.data || {} + const timestamp = new Date().getTime() + uni.request({ + url: URL, + method, + header, + data, + timeout: 7000, + async success(res) { + const { statusCode, data } = res + if (statusCode === 200) { + // 根据情况添加处理代码 + resolve(data) + } else { + resolve({ code: -1, data, message: '网络不太好哦,请稍后再试' }) + } + }, + async fail() { + resolve({ code: -1, data, message: '网络不太好哦,请稍后再试' }) + }, + async complete(res) { + const env = + baseConfig.baseUrl.indexOf('test') !== -1 + ? 'test' + : baseConfig.baseUrl.indexOf('pre') !== -1 + ? 'pre' + : 'release' + console.log(URL.substring(baseConfig.baseUrl.length + 1), { + url: URL.substring(baseConfig.baseUrl.length + 1), + req: config?.data || {}, + code: res?.data?.code, + res: res?.data?.data, + requestId: res?.header ? res?.header['X-Ca-Request-Id'] : '', + token: header?.token || '', + duration: new Date().getTime() - timestamp + }) + } + }) + }) +} + +export default request