uniapp封装uni.request
1.根目录新建api文件夹
2.config.js
let url
// 开发环境中
if(process.env.NODE_ENV == "development"){
url = "https://XXXX"
}else{
// 生产环境中
url = "https://XXXX"
}
export default {
url
}
3.http.js
import config from "./config.js"
let http = (options) => {
let p = new Promise((resolve, reject) => {
uni.request({
method: options.method || "GET",
url: config.url + options.url,
data: options.data || {},
timeout:8000,
header: options.headers || {
"content-type": "application/json",
Authorization: 'Bearer ' + uni.getStorageSync('token') //请求头添加token
},
success(rst) {
if(rst.data.code != 0){
uni.showModal({
title: '错误信息:' + rst.data.msg,
showCancel: false
})
}
resolve([null, rst])
},
fail(err) {
uni.showModal({
title: '错误信息:' + err.msg,
showCancel: false
})
resolve([err, null])
}
})
})
return p
}
export default http
4.api.js
import http from './http.js';
//get请求
let getInfo = () => {
let option = {
url: '/goods'
}
return http(option)
}
//post请求
let getxd = (data) => {
let option = {
method: 'POST',
url: '/scancodeorder',
data: data,
headers: {
"Content-Type": "application/x-www-form-urlencoded" //加上请求头传在form-data中
},
}
return http(option)
}
export default {
getInfo ,
getxd
}
5.使用
main.js中注册全局api
// 全局注册api
import api from '@/api/api.js'
Vue.prototype.$api = api
//页面中使用
async getInfo() {
// 货物信息
let [err, data] = await this.$api.getInfo()
let huowuname = data.data.data.list
huowuname.map(item => {
this.huowulist.push(item.name)
this.InOutTypelist.push(item.inouttype)
})
},
async onsubmit() {
let GoodsName = this.huowuvalue //货物名称
let datas = {
GoodsName, //扫码商品
}
// 遍历空的值的时候不传递查询
for (let key in datas) {
if (datas[key] == '') {
delete datas[key]
}
}
let [err, data] = await this.$api.getxd(datas)
if (data.data.code == 0) {
uni.showToast({
title: '下单成功'
})
this.huowuvalue = ''
}
},