# 微擎模块小程序框架
**Repository Path**: ripperTs/micro-engine-module-wxapp
## Basic Information
- **Project Name**: 微擎模块小程序框架
- **Description**: 微信小程序原生,与微擎模块tp5.0框架组合使用,支持微擎后台直接编辑上传,内置有赞UI组件库
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 14
- **Forks**: 1
- **Created**: 2022-02-14
- **Last Updated**: 2025-08-21
## Categories & Tags
**Categories**: weixin-lapp
**Tags**: 微擎, 小程序
## README
[TOC]
### 小程序目录结构
```
front
├─ components 公共组件目录
├─ dist 第三方组件库(有赞UI)
├─ iconfont 阿里图标库
├─ images 图片资源
├─ pages 前端页面文件(遵循小程序目录结构规范)
├─ utils 自封工具类库
├─ wxParse 展示html实体化工具(微信官方)
├─ app.js (需严格修改此文件,否则微擎无法上传过审)
├─ app.json
├─ app.wxss
├─ project.config.json
├─ siteinfo.js 微擎配置文件(必须存在,且格式字段必须一样)
└─ sitemap.json 前端接口入口模块
```
### 文件调整
> 以下文件调整在会放出完整文件示例,可下载附件查看。
##### app.js文件调整
**定义应用模块名(每个新应用都需要更改此处)**
```javascript
// 微擎模块名
const moduleName = 'empower_tool';
```
```javascript
// siteInfo: require('siteinfo.js'), // 注意此处不可删除
```
定义组合请求API
> 注意,未登录状态后端返回`-1`,请求错误返回`0`,请求成功返回`1`因此可在请求中直接判断
授权登录方法
```javascript
/**
* 授权登录
*/
getUserInfo(e, callback) {
let App = this;
if (e.detail.errMsg !== 'getUserInfo:ok') {
return false;
}
wx.showLoading({
title: "正在登录",
mask: true
});
// 执行微信登录
wx.login({
success(res) {
// 发送用户信息
App._post_form('user/login', {
code: res.code,
user_info: e.detail.rawData,
encrypted_data: e.detail.encryptedData,
iv: e.detail.iv,
signature: e.detail.signature,
referee_id: wx.getStorageSync('referee_id')
}, result => {
// 记录token user_id
wx.setStorageSync('token', result.data.token);
wx.setStorageSync('user_id', result.data.user_id);
// 执行回调函数
callback && callback();
}, false, () => {
wx.hideLoading();
});
}
});
},
```
##### siteinfo文件调整
```javascript
var siteinfo = {
"uniacid": "2",
"acid": "3",
"multiid": "0",
"version": "1.0",
"siteroot": "https://w7.axu9.com/app/index.php",
"design_method": "3"
}
module.exports = siteinfo
```
需要注意的是:`uniacid`的参数值必须和后台对应,`siteroot`中的请求域名需要和后台对应
### 简单的组件使用示例
##### 加载动画示例
```html
```
```javascript
isLoading: true, //显示全屏带白色遮罩
reLoading: false, // 全屏透明遮罩
```
##### 配合封装的请求使用如下
```javascript
// 获取热门文章
getArticle() {
let _this = this;
App._get('article/lists', {
is_recommend: 1,
}, res => {
_this.setData({
articleList: res.data.list.data
})
}, false, () => {
_this.setData({
isLoading: false, // 请求完毕关闭加载动画
reLoading: false, // 请求完毕关闭加载动画
})
});
},
```
##### 触底加载动画示例
```html
```
```javascript
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
this.ajaxloading = this.selectComponent("#ajax_loading");
if (this.data.current_page >= this.data.last_page) {
this.ajaxloading.AjaxLoading(true);
this.ajaxloading.AjaxNoresult(false);
return false;
}
this.getGenerateLog(this.data.current_page + 1); // 请求下一页
this.ajaxloading.AjaxLoading(false);
},
```