1 |
- (window.webpackJsonp=window.webpackJsonp||[]).push([[85],{404:function(t,e,_){"use strict";_.r(e);var v=_(17),s=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h2",{attrs:{id:"立即体验"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#立即体验"}},[t._v("#")]),t._v(" 立即体验")]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/example.png"),width:"200px"}}),e("br")]),t._v(" "),e("ul",[e("li",[t._v("扫码查看示例移动应用")])]),t._v(" "),e("h2",{attrs:{id:"如何学习"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#如何学习"}},[t._v("#")]),t._v(" 如何学习")]),t._v(" "),e("p",[t._v("如果你没有接触前端,没有接触过"),e("code",[t._v("javaScript")]),t._v("、"),e("code",[t._v("css")]),t._v("、"),e("code",[t._v("html")]),t._v("、"),e("code",[t._v("vue")]),t._v("等前端基础内容,建议学习此教程的同时,补充学习以下内容:")]),t._v(" "),e("ul",[e("li",[e("p",[e("code",[t._v("javaScript")]),t._v("基础教程"),e("a",{attrs:{href:"https://www.runoob.com/js/js-intro.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击访问"),e("OutboundLink")],1),t._v(";")])]),t._v(" "),e("li",[e("p",[e("code",[t._v("css")]),t._v("基础教程"),e("a",{attrs:{href:"https://www.runoob.com/css/css-tutorial.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击访问"),e("OutboundLink")],1),t._v(";")])]),t._v(" "),e("li",[e("p",[e("code",[t._v("html")]),t._v("基础教程"),e("a",{attrs:{href:"https://www.runoob.com/html/html-tutorial.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击访问"),e("OutboundLink")],1),t._v(";")])]),t._v(" "),e("li",[e("p",[e("code",[t._v("vue.js")]),t._v("官方教程"),e("a",{attrs:{href:"https://v2.cn.vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击访问"),e("OutboundLink")],1),t._v(";")])]),t._v(" "),e("li",[e("p",[e("code",[t._v("vue-router")]),t._v("官方教程"),e("a",{attrs:{href:"https://v3.router.vuejs.org/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击访问"),e("OutboundLink")],1),t._v(";")])]),t._v(" "),e("li",[e("p",[e("code",[t._v("vuex")]),t._v("官方教程"),e("a",{attrs:{href:"https://v3.vuex.vuejs.org/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击访问"),e("OutboundLink")],1),t._v(";")])])]),t._v(" "),e("h2",{attrs:{id:"获取工程"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#获取工程"}},[t._v("#")]),t._v(" 获取工程")]),t._v(" "),e("p",[t._v("从"),e("code",[t._v("总工办")]),t._v("获取产品,可直接联系"),e("code",[t._v("统一开发平台助手-小宇")]),e("RouterLink",{attrs:{to:"/contact-us/#联系我们"}},[t._v("点击查看联系方式")]),t._v(",或发邮件联系产品负责人。邮箱: zhouby@yusys.com.cn")],1),t._v(" "),e("h2",{attrs:{id:"项目依赖软件安装"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#项目依赖软件安装"}},[t._v("#")]),t._v(" 项目依赖软件安装")]),t._v(" "),e("h3",{attrs:{id:"环境准备"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#环境准备"}},[t._v("#")]),t._v(" 环境准备")]),t._v(" "),e("ol",[e("li",[t._v("工具依赖")])]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v(" node -v # v14.16.0+ \n npm -v # v6.9.0+\n yump # 1.21.0+ (yump版本在工程中package.json文件中查看,若不存在或者版本号有误请联系我们)\n vue --version # @vue/cli 4.1.1+ (可选)\n webpack-cli -v # 3.3.10+ (可选)\n npx webpack -v # 4.44.2+ (可选)\n")])])]),e("h2",{attrs:{id:"安装依赖"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#安装依赖"}},[t._v("#")]),t._v(" 安装依赖")]),t._v(" "),e("p",[t._v("下载工程依赖包,安装"),e("code",[t._v("yump-cli")]),t._v("相关依赖包。")]),t._v(" "),e("blockquote",[e("p",[t._v("在工程终端运行如下命令:")])]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v("\n")])])]),e("h2",{attrs:{id:"yump-cli工具"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#yump-cli工具"}},[t._v("#")]),t._v(" yump-cli工具")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[e("code",[t._v("yump-cli")]),t._v("工具将脚手架中的多模块编译、模块更新、模块打包,公共资源抽取以及mock服务和产品license控制进行npm包封装。封装后仅需在脚手架中引入依赖包,依赖工具包的能力中以命令的形式暴露给用户,执行对应命令即可执行相应操作。为多模块独立编译、独立打包、公共资源抽取等能力提供支撑。用于模块维护相关操作命令需慎重使用,以免误更新、删除模块,开发人员在项目初始化完成之后,一般无需关注此部分操作,可跳过。")])]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v(" yarn add:module 模块名称 #新增一个业务模块\n\n yarn remove:module 模块名称 #删除一个业务模块\n\n yarn list:module #列表现有的业务模块\n\n yarn update:module 模块名称 #更新模块入口相关文件\n\n yarn updateAll:module #更新所有模块入口相关文件\n\n yarn upload #上传离线包至管理平台\n\n \n \n")])])]),e("ol",[e("li",[t._v("若工程还未初始化,则使用命令"),e("code",[t._v("yarn add:module 模块名称")]),t._v("初始化工程模块。模块创建完成之后,模块中以下内容自动创建完成:")])]),t._v(" "),e("ul",[e("li",[t._v("入口文件目录-"),e("code",[t._v("src/modules/模块名")])]),t._v(" "),e("li",[t._v("router目录-"),e("code",[t._v("src/router/模块名")])]),t._v(" "),e("li",[t._v("vuex目录-"),e("code",[t._v("src/store/模块名")])]),t._v(" "),e("li",[t._v("业务代码开发目录-"),e("code",[t._v("src/views/模块名")])])]),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v("删除模块,则使用命令"),e("code",[t._v("yarn remove:module 模块名称")]),t._v("。")])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/remove.png"),width:"800px"}}),e("br")]),t._v(" "),e("ol",{attrs:{start:"3"}},[e("li",[e("p",[t._v("更新模块内容则调用"),e("code",[t._v("yarn update:module 模块名称")]),t._v(",每个模块初始化完成之后可独立修改,也可通过修改"),e("code",[t._v("template")]),t._v("下"),e("code",[t._v("module")]),t._v("目录页面后,执行更新命更新模块。也可调用"),e("code",[t._v("yarn updateAll:module,")]),t._v("批量更新各个模块。需要注意的是模块内容更新时仅更新入口文件目录-"),e("code",[t._v("src/modules/模块名")]),t._v(",其他目录内容各模块间差异较大,因此不使用命令统一更新。")])]),t._v(" "),e("li",[e("p",[t._v("查看当前所有模块则调用"),e("code",[t._v("yarn list:module")]),t._v(",控制台即输入当前模块列表")])])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/yump_list.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("h2",{attrs:{id:"全局配置"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#全局配置"}},[t._v("#")]),t._v(" 全局配置")]),t._v(" "),e("h3",{attrs:{id:"编译配置"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#编译配置"}},[t._v("#")]),t._v(" 编译配置")]),t._v(" "),e("p",[t._v("编译配置文件"),e("code",[t._v("工程路径/yump.config.js")]),t._v("中可对项目进行一些资源配置,"),e("code",[t._v("buildEntries")]),t._v("可指定"),e("code",[t._v("编译模块")]),t._v(", "),e("code",[t._v("H5APP_APPID_MODULES_REFS")]),t._v("可配置"),e("code",[t._v("全量模块")]),t._v("、"),e("code",[t._v("H5APP_CDNS_CONFIG")]),t._v("可按需配置cdn文件、"),e("code",[t._v("H5APP_PLUGIN_CONFIG")]),t._v(" 可按需配置plugin文件等,比如指定编译模块和全量模块的配置如下:")]),t._v(" "),e("p",[t._v("1、 修改编译模块\n根据"),e("code",[t._v("工程路径/yump.config.js")]),t._v("配置文件中"),e("code",[t._v("buildEntries")]),t._v("来进行指定需要打包的模块,未配置则全量打包")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/yump_config.png"),alt:"yump_config",width:"800px"}}),t._v(" "),e("p",[t._v("2、修改全量模块配置\n根据"),e("code",[t._v("工程路径/yump.config.js")]),t._v("配置文件中"),e("code",[t._v("H5APP_APPID_MODULES_REFS")]),t._v("来配置项目全量的模块,每一个模块都需要在此配置中。\n"),e("br"),t._v(" "),e("br"),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/H5APP_APPID_MODULES_REFS.png"),width:"800px"}}),e("br")]),t._v(" "),e("p",[t._v("3、"),e("code",[t._v("HAS_USE_CDN")]),t._v("是否使用公共资源包(打包执行yarn build时关注)")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("此脚手架支持多应用、多模块开发,各个模块都依赖的公共js,图标,图片,配置文件"),e("code",[t._v("工程路径/yump.config.js")]),t._v("中"),e("code",[t._v("HAS_USE_CDN")]),t._v("配置成"),e("code",[t._v("true")]),t._v(",可将公共资源统一打包至"),e("code",[t._v("公共资源包")]),t._v("离线包中,此公共包可作为普通离线包放在外壳中使用,资源拦截机制由原生外壳配合前端一起实现,需使用"),e("code",[t._v("宇信外壳")]),t._v(",也可使用线上"),e("code",[t._v("CDN")]),t._v("服务,将公共资源放在文件服务器。"),e("code",[t._v("HAS_USE_CDN")]),t._v("默认值为"),e("code",[t._v("false")]),t._v(",即将所有资源都打包至当前离线包中。")])]),t._v(" "),e("h4",{attrs:{id:"采用公共资源包"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#采用公共资源包"}},[t._v("#")]),t._v(" 采用公共资源包")]),t._v(" "),e("p",[e("code",[t._v("工程路径/yump.config.js")]),t._v("配置文件中"),e("code",[t._v("HAS_USE_CDN")]),t._v("变量设置成"),e("code",[t._v("true")]),t._v(",环境配置文件"),e("code",[t._v("VUE_APP_COMM_RES_SRC")]),t._v("变量为公共资源地址,打包完成后将在"),e("code",[t._v("dist/packages")]),t._v("目录下生成名称为此地址的"),e("code",[t._v("域名")]),t._v("加上"),e("code",[t._v("www")]),t._v("的"),e("code",[t._v("公共资源包")]),t._v(",在资源加载时,引用的资源将被拦截到此公共资源包。这种模式适用于项目中有多个开发模块,避免公共资源打包至每个模块中造成冗余。")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/common_src2.png"),alt:"common_src2",width:"800px"}}),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/common_src3.png"),alt:"common_src3",width:"800px"}}),t._v(" "),e("h4",{attrs:{id:"不采用公共资源包"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#不采用公共资源包"}},[t._v("#")]),t._v(" 不采用公共资源包")]),t._v(" "),e("p",[e("code",[t._v("工程路径/yump.config.js")]),t._v("配置文件中"),e("code",[t._v("HAS_USE_CDN")]),t._v("变量设置成"),e("code",[t._v("false")]),t._v(",所有资源会被打包至当前离线包中,所有资源从当前离线包中加载,适用于项目中只有一个开发模块,不和其他模块共享资源的情况。")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/common_src5.jpg"),alt:"common_src5",width:"800px"}}),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/common_src4.jpg"),alt:"common_src4",width:"800px"}}),t._v(" "),e("h3",{attrs:{id:"环境配置"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#环境配置"}},[t._v("#")]),t._v(" 环境配置")]),t._v(" "),e("p",[t._v("项目默认支持配置多环境打包配置,环境文件"),e("code",[t._v("工程路径/.env")]),t._v("中可对项目进行环境配置,项目中可以配置的环境有:"),e("code",[t._v(".env")]),t._v("配置本地开发环境"),e("code",[t._v(".env.mock")]),t._v("配置mock环境、"),e("code",[t._v(".env.development")]),t._v("配置开发环境、"),e("code",[t._v(".env.production")]),t._v("配置生产环境、"),e("code",[t._v(".env.sit")]),t._v("配置SIT测试环境、"),e("code",[t._v(".env.uat")]),t._v("配置UAT测试环境。")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/env_development_0.png"),alt:"env_development_0",width:"800px"}}),t._v(" "),e("p",[t._v("打包时可以选择不同的打包环境,以"),e("code",[t._v(".env.development")]),t._v("为例其中的配置项如下:")]),t._v(" "),e("p",[t._v("1、虚拟域名、服务地址、网关地址配置")]),t._v(" "),e("p",[e("code",[t._v("VUE_APP_VIRTUAL_CDN_URL")]),t._v("配置虚拟域名;"),e("code",[t._v("VUE_APP_BASE_URL")]),t._v("配置服务地址;"),e("code",[t._v("VUE_APP_BASE_URL_GATEWAY")]),t._v("配置网关地址;")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/env_development_1.png"),alt:"env_development_1",width:"800px"}}),t._v(" "),e("p",[t._v("2、公共资源相关配置")]),t._v(" "),e("p",[e("code",[t._v("VUE_APP_COMM_RES_SRC")]),t._v("配置公共资源包地址/可映射到本地离线包("),e("a",{attrs:{href:"#%E9%87%87%E7%94%A8%E5%85%AC%E5%85%B1%E8%B5%84%E6%BA%90%E5%8C%85%E4%B8%AD%E7%9A%84%E5%85%AC%E5%85%B1js%E4%BE%9D%E8%B5%96"}},[t._v("了解详细配置")]),t._v("),离线包报名为地址域名,www文件夹关键字不能更改,若更改需要修改打包逻辑;"),e("code",[t._v("VUE_APP_PUB_MODULE_SRC")]),t._v("配置公共模块资源地址;"),e("code",[t._v("VUE_APP_CDN_URL")]),t._v("配置线上CDN地址;")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/env_development_2.png"),alt:"env_development_2",width:"800px"}}),t._v(" "),e("p",[t._v("3、外壳配置")]),t._v(" "),e("p",[e("code",[t._v("VUE_APP_H5CONTAINER_NAME")]),t._v(" 配置当前外壳类型,默认为宇信外壳配置为YUMP, 使用TMF外壳时配置为TMFcore, 使用mPaaS外壳时配置为Nebula,若对接者三种外壳之一时可配置,打包时可打包成对应平台要求的离线包。")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/env_development_3.png"),alt:"env_development_3",width:"800px"}}),t._v(" "),e("p",[t._v("4、调试模式配置")]),t._v(" "),e("p",[t._v("v-console可以帮助移动端进行调试,"),e("code",[t._v("VUE_APP_DEBUG")]),t._v("配置是否开启调试模式,开启时(为true时)可使用v-console")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/env_development_5.png"),alt:"env_development_5",width:"800px"}}),t._v(" "),e("p",[t._v("5、移动管理平台相关配置")]),t._v(" "),e("p",[e("code",[t._v("VUE_APP_ID")]),t._v("配置应用ID,用于管理平台关联的当前应用ID,"),e("code",[t._v("VUE_APP_MGR_URL")]),t._v("配置移动管理平台地址\n"),e("code",[t._v("VUE_APP_USERNAME")]),t._v("配置移动管理平台账号")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/env_development_6.png"),alt:"env_development_6",width:"800px"}}),t._v(" "),e("p",[t._v("6、mock数据相关配置")]),t._v(" "),e("p",[e("code",[t._v("VUE_APP_MOCK")]),t._v("配置本地服务是否开启mock;"),e("code",[t._v("VUE_APP_MOCK_SERVE")]),t._v("配置离线包是否打包mock")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/images/guide/env_development_4.png"),alt:"env_development_4",width:"800px"}}),t._v(" "),e("h2",{attrs:{id:"运行工程"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#运行工程"}},[t._v("#")]),t._v(" 运行工程")]),t._v(" "),e("blockquote",[e("p",[t._v("运行如下命令:")])]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" serve\n")])])]),e("p",[t._v("访问指定业务模块[moduleName]的页面,浏览器输入地址"),e("code",[t._v("http://localhost:端口号/moduleName/index.html")]),t._v("即可访问")]),t._v(" "),e("h2",{attrs:{id:"前端脚手架打包"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#前端脚手架打包"}},[t._v("#")]),t._v(" 前端脚手架打包")]),t._v(" "),e("p",[t._v("APP打包相关命令如下,")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("yarn build # 在dist目录会生成不同业务模块目录,公共资源目录等\nyarn build # 打包所有业务模块及公共离线包,需要用户选择打包环境\nyarn build:pro # 打包生产环境离线包\nyarn build:dev # 打包开发环境离线包\nyarn upload # 上传离线包至移动管理平台\n")])])]),e("p",[t._v("打包完成之后,在"),e("code",[t._v("dist/packages")]),t._v("目录下生成各个"),e("code",[t._v("业务模块离线包")]),t._v(", "),e("code",[t._v("公共资源离线包")]),t._v(",如下图1,若使用"),e("code",[t._v("v3.3.1.20221220.RELEASE")]),t._v("版本及以上的前端框架,打包生成的离线包则带有当前打包环境后缀,如下图2")]),t._v(" "),e("ul",[e("li",[t._v("图1")])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/resuoce_zip.jpg")}}),e("br")]),t._v(" "),e("ul",[e("li",[t._v("图2")])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/resuoce_zip1.jpg")}}),e("br")]),t._v(" "),e("ul",[e("li",[t._v("打包完成后的离线包,可在开发工具中上传至"),e("a",{attrs:{href:"#%E5%85%AB%E3%80%81%E5%8F%91%E5%B8%83%E7%A6%BB%E7%BA%BF%E5%8C%85"}},[e("code",[t._v("移动管理平台")])]),t._v(",使用此功能需要在脚手架中环境配置文件中配置"),e("code",[t._v("移动管理平台地址")]),t._v(", "),e("code",[t._v("应用ID")]),t._v(", "),e("code",[t._v("登录账户")]),t._v(",这三个配置项都随着代码版本下发时一同下发,配置完成后,使用步骤如下:")])]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("在开发工具中上传离线包至管理平台的功能需要和移动管理平台配合使用,若不使用移动管理平台,则无法使用此功能,并且需要使用"),e("code",[t._v("v3.3.1.20221220.RELEASE")]),t._v("版本及以上的前端框架才支持此功能")])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/upload2.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("ul",[e("li",[e("ol",[e("li",[t._v("终端命令中输入"),e("code",[t._v("yarn upload")]),t._v("命令,随后在弹出的选择向中选择上传的环境配置")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/upload1.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("ul",[e("li",[e("ol",{attrs:{start:"2"}},[e("li",[t._v("输入环境配置中用户名配置"),e("code",[t._v("VUE_APP_USERNAME")]),t._v("配置的用户名对应的密码")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/upload3.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("ul",[e("li",[e("ol",{attrs:{start:"3"}},[e("li",[t._v("选择需要上传的离线包,选择"),e("code",[t._v("all")]),t._v("即上传当前"),e("code",[t._v("/dist/packages")]),t._v("目录下所有离线包。")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/upload4.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/upload6.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("ul",[e("li",[e("ol",{attrs:{start:"4"}},[e("li",[t._v("上传成功后,可登录"),e("code",[t._v("移动管理平台")]),t._v(", 访问菜单"),e("code",[t._v("离线包发布")]),t._v("-》"),e("code",[t._v("离线包管理")]),t._v(" 查看已上传的离线包,发布离线包时选择对应离线包即可。")])])])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/upload7.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/upload8.png"),width:"800px"}}),e("br")]),t._v(" "),e("h2",{attrs:{id:"打包成app"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#打包成app"}},[t._v("#")]),t._v(" 打包成app")]),t._v(" "),e("ul",[e("li",[e("ol",[e("li",[t._v("如果是宇信内部使用,向产品团队申请云打包账号,然后登云打包系统打包app。点击访问"),e("code",[t._v("宇信科技-云打包")]),e("a",{attrs:{href:"http://210.12.198.141:18080/yump-build/#/login?redirect=%2Fdashboard",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击访问"),e("OutboundLink")],1)])])]),t._v(" "),e("li",[e("ol",{attrs:{start:"2"}},[e("li",[t._v("如果是宇信外部客户使用,请访问客户私有化部署的云打包系统进行打包")])])])]),t._v(" "),e("h2",{attrs:{id:"发布离线包"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#发布离线包"}},[t._v("#")]),t._v(" 发布离线包")]),t._v(" "),e("p",[t._v("完成上述步骤之后,生成各个"),e("code",[t._v("业务模块离线包")]),t._v(", "),e("code",[t._v("公共资源离线包")]),t._v("之后,可到移动管理平台上发布新的离线包,各个平台离线包发布模式有所差异,若采用"),e("code",[t._v("宇信科技-移动管理平台")]),t._v(",操作步骤如下:")]),t._v(" "),e("p",[t._v("1.点击访问"),e("code",[t._v("宇信科技-移动管理平台")]),e("a",{attrs:{href:"http://210.12.198.141:18080/yump-web",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击访问"),e("OutboundLink")],1),t._v(" ,每个项目有单独的移动管理平台账号,账号在项目版本下发时同时下发。")]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/resuoce_zip2.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("ol",{attrs:{start:"2"}},[e("li",[t._v("登录之后,顺序点击"),e("code",[t._v("移动发布")]),t._v("、"),e("code",[t._v("离线包发布")]),t._v(",即可发布离线包页面。可新增"),e("code",[t._v("离线包")]),t._v(","),e("code",[t._v("发布离线包")]),t._v("等。下面演示新增一个"),e("code",[t._v("login")]),t._v("离线包并发布的过程。")])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/resuoce_zip3.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("p",[t._v("3.新增"),e("code",[t._v("login")]),t._v("离线包,点击左侧"),e("code",[t._v("子应用")]),t._v("中点击"),e("code",[t._v("新增")]),t._v(",在弹出框中输入"),e("code",[t._v("子应用ID")]),t._v(","),e("code",[t._v("子应用名称")]),t._v(",一般和离线包压缩包一致即可,但不能重复。")]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/resuoce_zip4.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("p",[t._v("4.离线包新建完成之后,在左侧的应用列表中选择需要上传的离线包,再点击右侧"),e("code",[t._v("离线包发布")]),t._v("的"),e("code",[t._v("新增")]),t._v(",打开离线包发布弹出框。填入相应信息。")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("其中离线包版本号需要大于当前最高版本号。")])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/resuoce_zip5.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("ol",{attrs:{start:"5"}},[e("li",[t._v("保存之后,生成一条待发布的离线包记录,选中记录,点击发布,即完成离线包发布流程。")])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/resuoce_zip6.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("ol",{attrs:{start:"6"}},[e("li",[t._v("发布完成之后,在手机客户端重启应用,即可更新新的离线包内容。")])]),t._v(" "),e("h2",{attrs:{id:"vant-ui基础组件库主题定制"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#vant-ui基础组件库主题定制"}},[t._v("#")]),t._v(" vant-ui基础组件库主题定制")]),t._v(" "),e("p",[t._v("Vant 提供了一套默认主题,CSS 命名采用 BEM 的风格,方便使用者覆盖样式。如果你想完全替换主题色或者其他样式,可以按照如下步骤进行主题定制。")]),t._v(" "),e("ul",[e("li",[e("ol",[e("li",[t._v("修改"),e("code",[t._v("src\\assets\\style\\vant-var.less")]),t._v("主题变量,样式变量名参考"),e("a",{attrs:{href:"https://github.com/vant-ui/vant/blob/2.x/src/style/var.less",target:"_blank",rel:"noopener noreferrer"}},[t._v("vant-ui主题配置文件"),e("OutboundLink")],1),t._v(" "),e("br")])])]),t._v(" "),e("li",[e("ol",{attrs:{start:"2"}},[e("li",[t._v("配置环境配置文件中"),e("code",[t._v("VUE_APP_VANT_CUSTOM_THEME")]),t._v("变量为"),e("code",[t._v("true")])])])]),t._v(" "),e("li",[e("ol",{attrs:{start:"3"}},[e("li",[e("p",[t._v("确保"),e("code",[t._v("vue.config.js")]),t._v("中如下配置打开:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[t._v("module"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("css")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("loaderOptions")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("less")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("lessOptions")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("modifyVars")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 直接覆盖变量")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 'text-color': '#111',")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 或者可以通过 less 文件覆盖(文件路径为绝对路径)")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("hack")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token template-string"}},[e("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('true; @import "src/assets/style/vant-var.less";')]),e("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])])])])])]),t._v(" "),e("h2",{attrs:{id:"页面跳转转场动画"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#页面跳转转场动画"}},[t._v("#")]),t._v(" 页面跳转转场动画")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("在移动应用中,嵌入APP的"),e("code",[t._v("Hybrid项目")]),t._v(","),e("code",[t._v("h5")]),t._v("页面每次进行push操作,页面都是一闪切到下个界面,可以给页面跳转的时候设置转场动画,优化用户体验。")])]),t._v(" "),e("p",[t._v("在项目中可通过以下步骤开始内置的转场动画,动画形式主要参考iOS系统push页面时的过渡效果:")]),t._v(" "),e("ul",[e("li",[t._v("1.项目根目录下环境配置文件中设置"),e("code",[t._v("VUE_APP_ROUTE_ANIMATE")]),t._v("为"),e("code",[t._v("true")]),t._v(";")])]),t._v(" "),e("p",[e("img",{attrs:{src:t.$withBase("/images/guide/animate1.jpg"),width:"800px"}}),e("br")]),t._v(" "),e("ul",[e("li",[e("ol",{attrs:{start:"2"}},[e("li",[t._v("动画形式主要参考iOS系统push页面时的过渡效果,也可在"),e("code",[t._v("src\\modules\\模块名\\App.vue")]),t._v("中自定义动画效果。")])])])])])}),[],!1,null,null,null);e.default=s.exports}}]);
|