主要文件包含小程序环境封装,接口文件,request请求封装
env.js文件配置
javascript">'use strict'
/**小程序当前环境develop开发版、trial体验版、release正式版 */
const envVersion = wx.getAccountInfoSync().miniProgram.envVersion;
/**环境配置 */
module.exports = require(`./env.${envVersion === 'release' ? 'prod' : 'dev'}.js`)
// module.exports = require(`./env.${envVersion === 'release' ? 'dev' : 'prod'}.js`)
env.dev.js放置开发配置文件;env.prod.js放置正式环境文件,可用module.exports对外暴露主要前缀接口。
request.js接口封装文件
javascript">/**
* 封装 http 方法
* @param {
* - url, 请求地址(必填)
* - data, data 数据
* - headers, 请求头
* - timeout, 请求超时时间(默认 一分钟)
* - method, 请求类型(默认 'GET')
* - encryption, 是否开启数据加密,
* - shark, 接口防抖(防止用户短时间内疯狂调用接口)
* };
* @returns Promise<any>;
*/
export const request = async ({
url,
data,
header,
timeout,
method,
shark,
encryption,
}) => {
let spendTime = null,sharkTime = 300;shark = shark||false
return new Promise(resolve => {
const obj = {
url: url,
header: getHeader(),
timeout: 1000 * 60,
method: 'GET',
success: (res) => {
console.log(res);
let code = res.data.code;
//顶号操作,解除手机号绑定
if (code == 1005 && isStart) {
console.log("我顶号了")
wxlogin()
isStart = false
return;
}
resolve(res.data);
},
fail: (err) => {
reject({
error: err,
code: 0
})
}
};
console.log(data)
//个人框架所需部分 可跳过 start
//getUserInfo()改方法封装登录用户的数据,需要时刻直接引用
if (getUserInfo()) {
if (data == undefined || data.isUseUser == undefined) {
data = {
...data,
userId: getUserInfo().id,
}
} else {
delete data['isUseUser'];
}
}
clean(data);
// // if (encryption) {
// data = en.Encryption(data);
// // }
//个人框架所需部分 可跳过 end
if (data) {
obj.data = {
...data,
}
}
if (header) obj.header = {
...obj.header,
...header
};
if (timeout) obj.timeout = timeout;
if (method) obj.method = method;
//防抖操作
if (shark) {
spendTime&&clearTimeout(spendTime)
spendTime = setTimeout(()=>{
wx.request(obj)
},sharkTime)
}else {
wx.request(obj)
}
})
}
/**获取消息头 */
export const getHeader = () => {
var header = {
"Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
};
let loginToken = wx.getStorageSync('userLoginToken');
if (loginToken != undefined && loginToken.length > 0) {
header = {
"Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
"token": loginToken
}
}
return header;
}
/**
* 删除空白属性
* @param {Object} obj
*/
export const clean = function (obj) {
for (var propName in obj) {
if (obj[propName] === null || obj[propName] === undefined) {
delete obj[propName];
}
}
}
api文件示例
javascript">/*! *****************************************************************************
简历API接口类 ResumeApi.js
***************************************************************************** */
import {
request,
} from '../utils/request.js'
import { host } from '../config/env';
/**
* 添加或修改简历
* @param null
* @async
*/
export const addOrUpdateResume = async params => await request({ url: `${host}/app/resume/addOrUpdateResumeOne.todo`, data: params, shark:true, method: 'post' });
接口调用部分
javascript">let app = getApp();
import {
addOrUpdateResume,
} from '../../../api/ResumeApi.js'
/**
* 提交
* async..await 控制同异步 不需要则不加
*/
async onSaveInfo () {
wx.showLoading({
title: '保存中...'
})
let that = this, data = that.data.userInfo;
let UserOpenId = wx.getStorageSync('UserOpenId')
if(UserOpenId){
data.openid = UserOpenId
}
await addOrUpdateResume(data).then(res=>{
wx.hideLoading();
if(res.code == 200){
that.showMsg("保存成功!", true)
setTimeout(() => {
wx.navigateBack({
delta: 1,
})
}, 1500);
}
if(res.code == 300){
wx.showToast({
title: res.msg,
icon:'none'
})
}
})
}
},