一、小程序部分
这是理财系统的前端,江苏海洋大学微信小程序比赛,最后获得了一等奖
GitHub:https://github.com/GeorgeLeoo/finance
1. 项目描述
(1). 此项目为记账小程序
(2). 包括账单、图表、搜索、用户等多个子模块
(3). 使用微信小程序技术
(4). 采用模块化、组件化、工程化等模式开发
2. 项目功能界面
在 1.0.2版本中删除了扇形图
3. 项目目录
* pages:页面 * components:组件 * utils:工具类 |-- util.js:工具类 |-- wxcharts.js:图表插件 * images:资源图片 * config:配置文件 * filter:过滤器 * http:网络请求 |-- http.js:对 wx.request 的封装 |-- api.js:对网络请求接口的封装
4. 请求封装
一开始使用 wx.request 对数据进行网络请求,可写完后,发现太过冗余,也太麻烦,故对其做了封装。
通过创建一个函数返回 Promise 对象,就可以屏蔽公共的部分
// http/http.js/** * 对微信普通网络请求封装 * @param url 请求地址 * @param data 请求的参数 * @param method 请求的方法类型 * @param headers 头部信息,在这里主要是 token 认证功能 * @returns {Promise<unknown>} 返回请求的 Promise 对象 */function http({url, data, method, headers = {}}) { return new Promise((resolve, reject) => { wx.request({ url, method, data, header: { Authorization: headers.token, expiresIn: headers.expiresIn }, success: (result) => { const res = result.data; if (res.code === 0) { resolve(res.data); } else if (res.code === 1) { reject(res.msg); } // 隐藏 loading wx.hideLoading(); }, fail: (err) => { console.error('server error', err); } }); })}/** * 对文件上传接口封装 * @param url 请求地址 * @param fileOptions 文件配置项 * @param data 请求发送的数据 * @param headers 头部信息,在这里主要是 token 认证功能 * @returns {Promise<unknown>} 返回请求的 Promise 对象 */function uploadFile({url, fileOptions, data, headers = {}}) { return new Promise(((resolve, reject) => { wx.uploadFile({ url: url, filePath: fileOptions.filePath, name: fileOptions.name || 'file', header: { Authorization: headers.token, expiresIn: headers.expiresIn }, formData: data, success: (res) => { console.log(res.data); if (JSON.parse(res.data).code === 0) { resolve(res.data); } else if (res.code === 1) { reject(res.msg); } }, fail: (err) => { console.error('server error', err); } }) }))}module.exports = { http, uploadFile};
新闻热点
疑难解答