# uni-ts **Repository Path**: yukang666/uni-ts ## Basic Information - **Project Name**: uni-ts - **Description**: uni-ts实例第三方 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-12-04 - **Last Updated**: 2025-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 项目名: uni商城 项目 (四端统一商城,支持h5、小程序、android和ios) ## 1. 如何运行 > node 版本 `8.4.0` 以上,建议 14.17.5 ### 1.1 开发环境配置 ``` yarn install ``` ### 1.2 开发过程 #### 1.2.1 开发命令 ```shell # 开发h5 yarn serve # 开发小程序 yarn dev:mp-weixin # 开发ios、android # 使用Hbuilder => 运行 => 运行到手机或模拟器 => 选择自己的设备即可 (如果手机没有安装HbuilderX,按提示相应安装) ``` **如何修改本地请求地址?** 默认本地请求在 `.env.development` 文件修改 `VUE_APP_API_URL` 就可以替换想要请求地址 由于我们环境多,**强烈建议** 新建 `.env.development.local`文件,内容如下, ``` # 只在开发模式中被载入 # 网站前缀 BASE_URL = / VUE_APP_WEB_SITE = http://buqiyuan.gitee.io/uni-chat # API # o2o # VUE_APP_API_URL = http://mo2o-3d10d0.trunk.oudianyun.com # 3.0.0-数据中台测试 # VUE_APP_API_URL = http://mb2c-3d10d0.trunk.oudianyun.com # 3.0.0-业务中台测试 # VUE_APP_API_URL = http://mbco.demo3.0-trunk.oudianyun.com # 3.0.1-进店模式、社区团购 VUE_APP_API_URL = http://mbco.upgrade3.0-trunk.oudianyun.com # 3.0.2-直播、下单助力、优惠码、扫码购、积分商城 # VUE_APP_API_URL = http://mb2c-3d10d0.stg.oudianyun.com # 3.0.0-https # VUE_APP_API_URL = https://mbco-demo30-trunk.oudianyun.com # 3.0.0-yace # VUE_APP_API_URL = http://mb2c.3d10d0-yace.oudianyun.com/ # # 3.0.0-远洋dev # VUE_APP_API_URL = http://mb2c.yuanyang-dev.oudianyun.com # 3.0.0-远洋trunk # VUE_APP_API_URL = http://mb2c-odycs.oceanhomeplus.com # # 3.0.0-盼酷 # VUE_APP_API_URL = http://mbco-panku.oudianyun.com # apk下载地址· VUE_APP_APK_DOWNLOAD_URL = https://static-fa3f0f3d-b02a-4b84-9744-c7591c652c4d.bspapp.com/uni-chat.apk ``` ### 1.2.2 构建命令 ```shell # 构建h5 yarn build # 构建小程序 ## 发布 - 3d10d0-stg yarn build:mp-weixin --env=b2c-3d10d0-stg ## 发布 - 3d10d0-trunk yarn build:mp-weixin --env=b2c-3d10d0-trunk ## 发布 - demo3.0 yarn build:mp-weixin --env=bco-demo3.0-trunk ## 发布 - upgrade3.0 yarn build:mp-weixin --env=bco-upgrade3.0-trunk ## 发布 - demo30 - 测试 (https) yarn build:mp-weixin --env=bco-demo30-trunk ## 发布 - demo30 - 售前 (https) yarn build:mp-weixin --env=bco-demo30-prod ## 发布 - 长安bco yarn build:mp-weixin --env=bco-changan-trunk ## 发布 - 长安b2c yarn build:mp-weixin --env=b2c-changan-trunk ## 发布 - 盼库 yarn build:mp-weixin --env=b2c-panku ## 发布 - 交付 yarn build:mp-weixin --env=bco-jiaofu-trunk ## 发布 - 远洋 yarn build:mp-weixin --env=b2c-yuanyang ## 交付如果需要修改构建规则,可以修改:src/utils/platform-domain-env.js ``` ### 构建ios、android #### 安卓打包所需数据 Android包名:com.oudianyun.bbc 证书使用选择:使用自有证书 证书别名:bbc.jks 证书秘钥密码:bbc.jks 证书文件选择:/uni-ts/public/bbc.jks #### IOS打包所需数据 Bundle ID(AppID):com.oudianyun.bbc 证书私钥密码:123456 证书profile文件:uni-ts/public/uni_dev_profile.mobileprovision 秘钥证书:uni-ts/public/uni_cert.p12 #### App本地运行 ** 参考uniapp官网 ** :https://uniapp.dcloud.io/quickstart.html#%E8%BF%90%E8%A1%8Cuni-app 使用自定义基座,域名必须是https,否则页面空白,请求不成功 修改.env.development里面的 VUE_APP_API_URL = https://mbco-demo30-trunk.oudianyun.com 打开HbuilderX,运行=> 运行到手机或模拟器=>运行基座选择=>自定义调试基座 如果没有自定义调试基座 运行=> 运行到手机或模拟器=>制作自定义调试基座 选择打自定义调试基座 传统打包即可 #### App发行 ** 参考uniapp官网 **:https://uniapp.dcloud.io/quickstart.html#%E5%8F%91%E5%B8%83uni-app 发行的域名必须是https 修改.env.production里面的 VUE_APP_API_URL = https://mbco-demo30-trunk.oudianyun.com 打开HbuilderX,发行=> 原生App-云打包 填写信息... 勾选选择渠道 选择打正式包 传统打包即可 ### 1.2.3 代理配置 `WebPack-Proxy` 代理: * 默认本地请求在 `.env.development` 文件修改 `VUE_APP_API_URL` 就可以替换想要请求地址 ## 1.3 Jenkins 发布 | 工程名称 | 描述 | | ------------------------------------------ | ---------------------------- | | `uni-ts` | `构建h5发布` | > 发布时的备注 nginx 转向 /pool 是需要运维配置处理 ## 1.4 埋点 大数据3.0.0新埋点 # 2. 业务介绍 入口地址为 `index.html`,目前有哪些平台(bco\b2c\o2o),有哪些渠道(b2c\o2o) 开发不用关心这个,我们全平台、全渠道兼容,默认加载调用 `ouser-web/frontapi/common/domain/get` 返回平台信息 ```json { "code": "0", "data": { "sobotSwitch": false, "orderCreateSync": false, "h5Config": { "wx302Url": "//callback.oudianyun.com/px?url=", "payAsync": true, "wxPayUrl": "//callback.oudianyun.com/wxpay.html", "h5PayUrl": "//callback.oudianyun.com/h5pay.html", "loadingImg": "//cdn.oudianyun.com/static/cms/template/pageLoading.gif", "mapKey": "4cbe65ccdb8919a83e3fa235b93b0fa9", "chatUrl": "https://chaten.sobot.com/chat/h5/v2/index.html?sysnum=d0cdb276d9f14b9ba0200827c4e15620" }, "imageProcessType": "ksyun", "platform": "B2C平台", "channelCodes": [ "110001" ], "defaultLocation": { "regionCode": "310115", "cityName": "上海市", "cityCode": "310100", "provinceCode": "310000", "latitude": "31.231706", "regionName": "浦东新区", "provinceName": "上海", "longitude": "121.472644" }, "domainMode": 1 }, "message": "成功", "success": true } ``` ## 2.2 功能列表 * 导购 * 交易 * 基础 * 直播 * 其他(分销、扫码购、抽奖、积分商城) ### 2.2.1 常用页面路由 ``` 首页 main/index.vue 分类 main/category.vue 购物车 main/cart.vue 我的 main/mine.vue 搜索 search 促销 hermes 交易 order 商品 product 店铺 store 用户 user 用户登录 user/login.vue 用户设置 user/profile.vue 会员 member 定位 position 我的相关 my-xx ``` ### 2.2.2 其他文档 * 设计稿相关地址:https://lanhuapp.com/web/#/item?fid=4e141af1-71a8-431b-a823-08fbc748aaad&commonly=all * RP相关地址:http://192.168.7.78:2294/%E3%80%90%E5%89%8D%E7%AB%AF%E3%80%91%E7%A7%BB%E5%8A%A8%E5%95%86%E5%9F%8E/ # 3.目录结构 本项目已经为你生成了一个完整的开发框架,提供了涵盖中后台开发的各类功能和坑位,下面是整个项目的目录结构。 ``` ├── build // 构建相关 ├── docs // 代码规范,项目规范 ├── public // 所有公共文件存放 │ ├── index.html // html模板 │ └── favicon.ico // favicon图标 ├── src // 源代码 │ ├── api // 所有请求 │ ├── hooks // 所有hooks │ ├── components // 公用组件 │ ├── lang // 国际化 language(之后考虑迁移到资源服务器) │ ├── pages // 所有的页面 │ ├── plugins // 插件 │ ├── store // 全局 store管理 │ ├── styles // 全局样式 │ ├── types // 全局types │ ├── utils // 全局公用方法 │ ├── App.vue // 入口页面 │ ├── main.ts // 入口文件 加载组件 初始化等 │ ├── mainifest.json // 打包文件 │ ├── pages.json // 所有的路由(uni-app规范) │ ├── settings.ts // 全局通用配置 │ ├── uni.scss // 通用样式,建议在styles里面写 ├── .babelrc // babel-loader 配置 ├── .eslintrc.js // eslint 配置项 ├── .gitignore // git 忽略项 ├── .travis.yml // 自动化CI配置 └── package.json // package.json ``` ## 3.2 浏览器兼容情况 | 浏览器 | 版本 | | ------- | ---------------- | | id/edge | IE10, IE11, Edge | | Firefox | last 2 versions | | Chrome | last 2 versions | | Safari | last 2 versions | ## 3.3 使用settings 全局配置settings,通过FNS控制功能开启或关闭,方便代码向下兼容 ## 3.4 配置路由 src/pages.json 以最近做的提现为例,提现模块输入分销中心模块 ```json { "root": "pages/my-distribution", // 命名规范,需要登录的my-开头 "pages": [ { "path": "cash", "aliasPath": "/my-distribution/cash", // 别名为了h5使用,不然很长,可以查看uni-simple-router "name": "MyDistributionCash", // 命名规范:父大驼峰 + 子大驼峰, 路由调整都是通过name来 "style": { "navigationStyle": "custom", // 每个模块都是自定义头部 "navigationBarTitleText": "提现" } } ] } ``` ### 3.4.1 路由跳转 ```ts import { useRouter } from '@/hooks' const router = useRouter() // 跳转代码 - 不带参数 router.push({ name: 'MyDistributionCash' }) // 跳转代码 - 带参数 router.push({ name: 'MyDistributionCash', params: { // 特殊说明不能传递null,如果真实数据有null, 可以使用 formHasValue 处理 args1: 1, args2: 2 } }) ``` ### 3.4.2 接收端 ```ts import { onShow, onShareAppMessage, onShareTimeline } from 'uni-composition-api' interface IQuery { // 接口命名规范“I”开头 args1: number, args2: number } onShow((params: any) => { const query = params as IQuery // 后续给当前state赋值,或请求接口操作 }) ``` ## 3.5 配置api ##### 安卓打包 打包使用自有证书,否则分享,定位一些功能不可用 证书别名:bbc.jks 证书私钥密码:bbc.jks 证书文件路径:/uni-ts/public/bbc.jks ### 3.5.1 命名规范 * 当前页只调用当前页命名前缀的接口 * 必须定义入参 * 必须定义出参 ##### IOS打包 Bundle ID(AppID) :com.odianyun.bbc 证书私钥密码:123456 证书profile文件:uni-ts/public/uni_dev_mp.mobileprovision 私钥证书:uni-ts/public/uni_cert.p12 以 `src\api\modules\receipt-channel.ts` 为例子 ```ts import minRequest from '@/utils/request' import { IRes } from '@/utils/request/min-request' // 通用 export interface IChannelInfoVO { id: number type: number accountNo: string accountName: string isDefault?: boolean } // 获取默认渠道 export interface IDefaultGetParams { // 入参 status: string } export interface IDefaultGetRes extends IRes { // 出参 data: IChannelInfoVO // 渠道 } export async function defaultGet(params: IDefaultGetParams): Promise { // 需要定义入参、出参 return minRequest.get('/ofms-web/frontapi/receiptchannel/default/get', params) } ``` ## 3.6 页面模板 以demo为例 ```html ``` ## 3.7 组件 ### 3.7.1 基础组件 代码路由在 `src/components` 访问预览路径:http://mb2c.demo3.0-trunk.oudianyun.com/#/example **基础组件使用** ```html 这个是按钮 ``` ### 3.7.2 业务组件 以for循环维度**必须**拆分, 以goods-card为例 ```html ``` **业务组件使用** `src\pages.json`定义, 参考 ```json { "easycom": { "custom": { "^my-qa-(.*)": "@/pages/my-qa/components/$1/index.vue" } }, } ``` ```html ``` ## 3.9 分包 * main 主包 * example 公用业务组件包 * 其他按模板划分 分包需要注意的my-开头的包需要登录,其他不用 ### 3.9.1 如何跨包调用组件 修改pages.json, 只能是组件 ```json componentPlaceholder: { "cms-goods-l1c1-item": "view", } ``` # 4. 其他 * [暗黑模式](docs/暗黑模式.md) * [登录说明](docs/登录说明.md) * [规范](docs/规范.md) * [基础](docs/基础.md) * [商品多规格选择](docs/商品多规格选择.pptx) * [我们遇到的坑](docs/我们遇到的坑.pptx) * [小程序发布流程](docs/小程序发布流程.md) * [定位流程图](docs/定位流程图.drawio.png) * [手工定位](docs/手工定位.drawio.png) * [如何新增新的域名](docs/如何新增新的域名.md) ## 4.1 git提交规范 git增加了提交信息检查 提交类型有 feat: 新功能、新特性 fix: 修改 bug refactor: 代码重构(重构,在不影响代码内部行为、功能下的代码修改) docs: 文档修改 style: 代码格式修改, 注意不是 css 修改(例如分号修改) test: 测试用例新增、修改 chore: 其他修改(不在上述类型中的修改) merge:合并代码 格式: 提交类型:[jira编号]:描述 参考示例,feat:[BC-13656]:domain_info支持域名通配符,没有jira编号是填0 ## 4.2 建Story或Task的规范,务必带上前缀 【产品设计评审】记录看RP,评审RP的工时 【开发设计】记录写ERD,评审ERD的工时 【测试用例】记录测试写用例的工时 【开发】记录开发工时,Story 【联调】记录联调工时,包含内部演示,Task..参考值:开发工时的20% 【MAT演示】记录MAT演示 【BUG修复】记录MAT演示后修复问题的工时,Task..统计时会加上BUG的修复工时 【功能测试】记录功能测试的工时 ## 5 在分包内引入插件代码包 具体参考:https://uniapp.dcloud.io/tutorial/mp-weixin-plugin.html#%E5%9C%A8%E5%88%86%E5%8C%85%E5%86%85%E5%BC%95%E5%85%A5%E6%8F%92%E4%BB%B6%E4%BB%A3%E7%A0%81%E5%8C%85 "subPackages": [{ "root": "pagesA", "pages": [{ "path": "list/list" }] "plugins": { "pluginName": { "version": "1.0.0", "provider": "wxidxxxxxxxxxxxxxxxx" } } }]