首页 > 专题 > 微信 > 正文

微信小程序项目总结之记账小程序功能的实现(包括后端)

2020-02-25 01:09:52
字体:
来源:转载
供稿:网友

一、小程序部分

这是理财系统的前端,江苏海洋大学微信小程序比赛,最后获得了一等奖
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};            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表