项目运行及调试

项目clone后直接使用 npm下载依赖,如使用npm推荐使用淘宝镜像(npm i -g cnpm —registry=https://registry.npm.taobao.org);下载命令为cnpm install,运行命令为cnpm run dev。
本地默认访问后端地址为env.js文件中的配置具体如下:

  1. /*
  2. * @Description: mark
  3. * @Author: wangwangwang
  4. * @Date: 2020-10-19 10:30:56
  5. * @LastEditors: wangwangwang
  6. * @LastEditTime: 2021-08-13 13:58:18
  7. */
  8. // const url = 'http://10.31.6.130:8070';
  9. // const url2 = 'http://10.31.6.130:8070';
  10. // const imageUri = 'http://10.31.6.130:8070';
  11. const url = 'https://lvshe.huashijc.com';
  12. const url2 = 'https://lvshe.huashijc.com';
  13. const imageUri = 'https://lvshe.huashijc.com/';
  14. export default { url, imageUri, url2 }

小程序开发不存在跨域问题;项目发布时所有接口请求必须是https才能访问。
如遇到小程序修改代码后不生效的问题,请删除weapp文件后重新执行cnpm run dev。

项目结构

同基础系统及ICPS系统

功能权限

小程序分为外部小程序和内部小程序
内部小程序由公司内部提供账号并在基础系统中进行权限分配,小程序登录时获取用户权限进行渲染功能login.wpy

  1. login(_this.loginForm).then(res => {
  2. if (res.code !== 1001) {
  3. wx.showToast({
  4. title: '用户名或密码错误',
  5. icon: 'none'
  6. })
  7. _this.loading = false
  8. return
  9. }
  10. /**
  11. * @Description: 登录用户设置菜单
  12. * @Param:
  13. * @Author: wangwangwang
  14. */
  15. wx.setStorage({ key: 'menu', data: res.data.functionLimitList.filter(item => item.folderType===0)});
  16. wx.setStorage({
  17. key: 'user',
  18. data: res.data.userToken,
  19. success(res) {
  20. _this.loading = false
  21. wx.switchTab({
  22. url: './index'
  23. })
  24. }
  25. })
  26. })
  1. self.menuList = wx.getStorageSync('menu');

外部人员分为原物料司机、罐车司机、泵工三类。分别在处理分享的页面时将用户的openid与角色进行绑定,再次进入页面时调接口进行判断,从而渲染不同的功能。
index.wpy

  1. weixinQuFen({ openId: JSON.parse(response.data).openid }).then(response1 => {
  2. if (response1.code === 1001 && response1.data) {
  3. if (response1.data.rawDriverStatus === 1) { // 原物料司机
  4. self.menuList = self.driver2MenuList;
  5. return
  6. }
  7. if (response1.data.driverStatus === 1) { // 外部罐车司机
  8. self.menuList = self.driverMenuList;
  9. self.bindWxDriver();
  10. return
  11. }
  12. if (response1.data.pumpingStatus === 1) { // 外部泵工
  13. self.menuList = self.pumpMenuList;
  14. self.bindWxPumper();
  15. return
  16. }
  17. wx.reLaunch({ url: '/pages/login' });
  18. }
  19. wx.showToast({
  20. title: '当前账户未分配角色',
  21. icon: 'none'
  22. })
  23. setTimeout(() => {
  24. wx.reLaunch({ url: '/pages/login' });
  25. }, 1000)
  26. })

业务逻辑

小程序中无特别注意的逻辑,都是一些简单的逻辑,多看代码就行。

项目部署

在小程序开发工具中点上传按钮进行上传。如遇到文件过大超过2M的问题,先把weapp文件删除后再进行上传操作。image.png
上传成功后由小程序的运维人员提交审核,审核通过后可进行发布。