
手册阅读须知:本手册仅针对 JooLunPro-商城端
介绍
JooLunPro 商城端使用UniApp开发。
对应项目名称: joolun-plus-uniapp
注意:目前已提供在 【微信小程序】 和 【微信公众号(H5)】 和 【普通浏览器(H5)】和 【原生 APP(安卓和 iOS)】 上进行开发及运行。
开发环境准备
-
下载符合自己系统的安装包
建议: 如果使用国际化建议 下载 VS Code 打开项目
- 因为项目使用了国际化,如果国际化开发建议使用
VScode打开项目并添加 i18n-ally 插件,这样可以显示页面文字翻译的具体内容- 如果想去掉国际化请查看常见问题文档
HBuilderX只用来运行项目, 具体国际化说明请查看常见问题文档的国际化说明
下载项目源码
-
下载源码
下载git源码
导入源码
-
源码下载完成后需要导入到开发工具中
- 打开 HBuilderX,在菜单中选择
文件 - 导入 - 从本地目录导入选择下载的源码主目录(压缩包需要先解压),然后点击打开即可导入成功。
修改连接配置
- 开发时运行本地浏览器(H5),需要修改
/vite.config.js中的url为自己后台服务的连接地址 - 如果运行小程序或App,需要修改
/config/env.js中的basePath为自己后台服务的连接地址 - 注意:manifest.json -- UniApp配置文件的uni-app应用标识(AppID),请点击【重新获取】否则会有问题
启动项目
目前可以直接在运行到普通浏览器上(H5),也可以微信小程序中运行,还可以运行到手机(如何运行请查看 UniApp 官方的方法)。
- 如果项目出现未导入的js库请首先在 项目目录下 的控制台运行命令:
npm install --registry=https://registry.npmmirror.com
点击HBuilderX开发工具顶部菜单运行选择想要运行的类型, 比如: 运行-运行到浏览器
或者 运行-运行到手机 如何运行
-
运行微信小程序
首先必须在
manifest.json文件中配置后台已添加的微信小程序 appId然后在HBuilderX顶部选择菜单中的[运行]-[运行到微信开发者工具]
在打开的微信开发工具中点击右上角[详情]-[本地设置]勾选上:不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书重新运行即可实现 预览
-
运行本地浏览器
- 在启动成功的url后面添加租户ID
tenant_id=1参数, 示例:http://localhost:8085/?tenant_id=1 - 说明: 运行H5的租户ID是根据域名动态获取 或者 从
url的参数tenant_id获取, 所以为了方便开发直接在url拼接参数运行
- 在启动成功的url后面添加租户ID
-
UniApp 启动的大部分问题在官方的论坛中都有解决方法,请善于利用搜索论坛查找解放方案
目录结构
-
目录结构基本按照 UniApp 的目录结构
joolun-plus-uniapp -- 主目录
├── components -- 业务组件
├ ├── chat-message -- 自定义的聊天消息类型
├ ├── coupon -- 优惠券相关
├ ├ ├── coupon-info -- 优惠券详情
├ ├ ├── coupon-receive -- 店铺优惠券弹框
├ ├ ├── coupon-user-info -- 个人优惠券
├ ├── goods -- 商品相关
├ ├ ├── goods-card -- 商品卡片展示类型
├ ├ ├── goods-ensure -- 商品服务说明
├ ├ ├── goods-recommend -- 商品推荐组件
├ ├ ├── goods-row -- 商品列表展示类型
├ ├ ├── goods-sku -- 商品规格选择
├ ├ ├── goods-waterfall -- 商品瀑布流展示类型
├ ├── graph-code -- 验证码图片
├ ├── lang-change -- 国际化切换
├ ├── order -- 订单相关
├ ├ ├── address -- 收货地址选择
├ ├ ├── bill -- 发票选择
├ ├ ├── order-operate -- 订单操作按钮(付款,取消等操作)
├ ├── page-devise -- 用来存放装修页面组件的目录
├ ├ ├── components -- 单个装修组件
├ ├ ├── view -- 装修页面组件(普通页面和店铺页面装修组件是不相同的,所以这里区分)
├ ├── privacy-policy -- 隐私政策的弹框
├ ├── share-component -- 分享组件弹框显示: 分享给微信好友 和 分享海报生成
├ ├── share-friends -- 分享给好友组件
├ ├── shop -- 店铺详情
├ ├ ├── shop-info -- 店铺详情
├ ├ ├── shop-store-info -- 店铺门店详情
├ ├ ├── shop-store-select -- 店铺门店选择
├── config -- 一些公共配置文件
├── libs -- 基础组件库,不与接口业务数据等关联(该目录非必要不建议修改)
├ ├── common # 公共方法事件的统一处理
├ ├ ├── mixins # 全局组件的公用方法,只要是vue文件就可以调用这个里面的所有方法和属性
├ ├ ├── page # 页面常用的一些方法
├ ├ ├── router-h5 # h5端路由处理
├ ├ ├── storage # uni.StorageSync 事件的统一处理和方法提供,因为是多租户的所以所有的存储都要加租户id
├ ├ ├── theme # 主题颜色数据的统一处理
├ ├── components # 页面UI组件
├ ├ ├── checkbox # 复选框
├ ├ ├── count-down # 倒计时
├ ├ ├── empty-data # 空数据
├ ├ ├── header # 顶部导航栏
├ ├ ├── main # 主体内容
├ ├ ├── mp-html # 富文本
├ ├ ├── pd-container # 容器
├ ├ ├── popover # 点击文字弹出框提示
├ ├ ├── rade # 评分组件
├ ├ ├── radio # 单选框
├ ├ ├── radio-group # 单选框组
├ ├ ├── skeleton # 骨架屏
├ ├ ├── stepper # 数字输入框
├ ├ ├── tabbar # 自定义底部导航栏
├ ├── public # 第三方库
├ ├ ├── APPUpdate # App端版本检查升级
├ ├ ├── colorui # ui样式库
├ ├ ├── open-im-sdk # IM客服
├ ├ ├── tki-qrcode # 二维码
├ ├ ├── video-player # 视频播放
├ ├ ├── wxa-plugin-canvas # 海报生成
├ ├── index.ts # 引入的入口文件
├── locale -- 国际化配置文件
├── package-live -- 直播功能模块存放的目录(v1.0.5+)
├── pages -- 业务页面文件存放的目录
├ ├── appraises -- 商品评价
├ ├── article -- 文章
├ ├── bargain -- 砍价
├ ├── base -- 搜索
├ ├── coupon -- 优惠券
├ ├── customer-service -- 客服聊天
├ ├── distribution -- 分销相关
├ ├── goods -- 商品
├ ├── groupon -- 拼团列表
├ ├── home -- 首页
├ ├── launch -- 开屏页面
├ ├── live -- 微信小程序直播(仅微信小程序使用)
├ ├── login -- 登录
├ ├── message -- 消息列表
├ ├── order -- 订单
├ ├── page-devise -- 自定义装修页面
├ ├── pay -- 支付页面(订单支付、余额充值、付费会员)
├ ├── public -- 公共页面(查看协议详情、查看http连接)
├ ├── seckill -- 秒杀
├ ├── shop -- 店铺相关
├ ├── shopping-cart -- 购物车
├ ├── signrecord -- 签到
├ ├── user -- 个人信息相关
├ ├── user-balance -- 余额(钱包)
├ └── user-vip -- 付费会员
├── static -- 图片资源文件
├── utils -- 常用工具方法js
├ ├── api.js -- 接口地址及接口调用
├ ├── baseImgSrc.js -- base64转图片
├ ├── date-util.js -- 时间工具
├ ├── ican-H5Api.js -- 所有只在H5运行的方法都可在此js定义
├ ├── jim-util.js -- OpenIM方法封装
├ ├── jweixin.js -- 微信公众号h5支持方法封装
├ ├── number-util.js -- 数字计算或格式转换
├ ├── order-util.js -- 订单计算操作集合工具
├ ├── theme.js -- 装修主题数据获取和设置
├ ├── util.js -- 一般常用方法
├ └── validate.js -- 校验数据
├── androidPrivacy.json -- 安卓打包App时上架应用市场的隐私协议弹框内容设置
├── app.css -- 项目自定义css
├── App.vue -- 项目入口:包括App自定义数据,更新,页面初始化,登录触发,全局样式初始化,IM、购物车数量刷新等。
├── main.js -- 项目入口:全局组件引入
├── manifest.json -- UniApp配置文件
├── package.json -- npm安装的第三方库
├── pages.json -- UniApp页面设置和路由等
└── vite.config.js -- vite项目配置文件(h5的本地开发访问接口可在此设置)
约定及规范
- 除个别第三方外的所有文件名都以中横线
-连接 - 业务组件封装到
/components目录下, 基础组件添加到/libs/components - 所有接口统一定义在
/utils/api.js中 - 第三方 js 库 默认放在
/libs/public目录下 或者 在package.json引入
使用到的第三方库
- UI Css 库 ColorUI v2 版 ColorUI
- 日期处理类库 day.js
- OpenIM OpenIM v2 版 【注意:前端仅使用了JS 的 SDK】
- 微信 JS-SDK JS-SDK
- UniApp H5 端路由 uni-crazy-router
- 海报生成 wxa-plugin-canvas
- 二维码生成 uni-app-qrcode
- 富文本 mp-html
- APP 版本升级 APP 版本更新