配置
目录结构
默认的MP-CU项目,目录结构是下面这样的。
├─ config (MP-CU配置文件)
│  ├─ ColorUI.js (UI框架核心配置文件)
│  └─ mp-sdk.js  (扩展方法函数配置)
├─ mp-cu (UI组件库核心文件夹)
│  ├─ colorUI
│  ├─ lib
│  ├─ store
│  └─ main.js
├─ mp-sdk (额外扩展的文件夹)
│  ├─ components
│  ├─ icon  (扩展图标)
│  │  └─ doc.scss
│  ├─ lib   (扩展方法函数库)
│  │  └─ ...
│  ├─ wxs
│  │  └─ tools.wxs
│  └─ index.js
├─ packageA (分包A = 模板模块)
├─ packageB (分包B = 实验室模块)
├─ pages
├─ static
├─ app.scss
├─ app.js
├─ app.json
└─ project.config.json
配置环境
MP-CU需要scss的支持,在根目录下,project.config.json 配置文件内的 "setting" 节点下,配置:
"useCompilerPlugins": [
    "sass"
]
由于小程序默认开启了 v2 的样式,在v2模式下,ColorUI 部分样式会失效。 完整 ColorUI 样式,需要在 app.json 文件内,删除 "style": "v2" 即可
"style": "v2"
然后,在根目录的 app.scss 文件里引入相关框架的css文件。
@import './mp-cu/colorUI/scss/ui';
/*  实际项目中,可删除下面的相关文件和引用,因为图标太多,体积较大,
    可能你项目里并不需要这么多图标,建议自行添加需要的扩展icon图标引用。*/
/* @import './mp-sdk/icon/doc'; */
配置文件
您可单独设置一个 config.js 里面配置相关信息,然后暴露方法给 app.js 在全局引用,默认在 config/ColorUI.js
import { colorUI } from './config/ColorUI'
App({
    colorUI,        //挂载到app上,此步骤必须要有!
    onLaunch() {
        
    }
})
config.js 配置文件需要您定义成类似以下的内容, 默认在 config/ColorUI.js
由于微信小程序无法使用vue.key来全局命名变量,导致习惯vue的用户很不习惯,而且微信内部并不存在像vuex这样的状态管理机制,为满足上述想法,colorUI MP-CU 为您定制了一套自有的扩展包,你可以在全局导入变量、函数、方法,同时您也可以定义您自己的状态(
vuex). 内置的vuex 渲染引擎参考了 wxMiniStore 的项目。
//引入框架的方法函数库
import ColorUI from './mp-cu/main'
export const colorUI = new ColorUI({
   config: {
       theme: 'auto',
       main: 'blue',
       text: 1,
       footer: true,
       share: true,
       shareTitle: 'MP CU**( ColorUI3.x 原生小程序版)**',
       homePath: '/pages/home/home',
       tabBar: []
   },
   data: {
      //全局data
   }, 
   methods: {
      //全局函数
   }
})
配置说明
我们不建议您直接修改 mp-cu 文件夹下的相关文件,以免后续升级更新时,被覆盖,所以,建议在外部config/ColorUI.js里配置。
config
你可能已经注意到了,在 ColorUI 配置中有一项 config 配置项。
| 参数 | 类型 | 可选值 | 默认值 | 说明 | 
|---|---|---|---|---|
| theme | string | auto, light, dark | auto | 设置默认主题 | 
| main | string | - | blue | 设置默认强调色 | 
| text | string | 0-4 | 1 | 设置默认字号等级 | 
| footer | boolean | - | true | 显示底部colorUI版权 | 
| homePath | string | - | /pages/index/index | 设置首页路径 | 
| tabBar | array | - | - | 配置系统tabBar | 
| share | boolean | - | false | 开启全局分享 | 
| shareTitle | string | - | - | 全局分享标题 | 
如果属于开源作品,请带上ColorUI版权,
footer: true一些组件会用到跳回主页,请每个项目设置好
homePath自动跟随系统主题功能,需要在
app.json文件里配置:
"darkmode": true
开启自动跟随后,在安卓机端切换主题时,会重载小程序,具体原因,参考微信官方说明
TIP
配置的config你可以在 page,components 中通过 this.data.$cuConfig 获得
tabBar
此处的tabBar,非原生的tabBar。
tabBar: [{
        title: '文档',
        icon: '/static/tab_icon/document.png',
        curIcon: '/static/tab_icon/document_cur.png',
        url: '/pages/home/home',
        type: 'tab'
    },
    {
        title: '我的',
        icon: '/static/tab_icon/my.png',
        curIcon: '/static/tab_icon/my_cur.png',
        url: '/pages/my/home',
        type: 'tab'
    }
]
| 参数 | 类型 | 可选值 | 默认值 | 说明 | 
|---|---|---|---|---|
| title | string | - | - | 标题名称 | 
| icon | string | - | - | 默认图标 | 
| curIcon | string | - | - | 选中的图标 | 
| url | string | - | - | 跳转路径 | 
| type | string | tab, nav, tap | - | 跳转类型 | 
跳转类型:
tab=wx.switchTab()跳转类型:
nav=wx.navigateTo()跳转类型:
tap=this.triggerEvent("tap")(此模式下,非跳转,而是触发事件)
data
只要您在 app.js 里面挂载上ColorUI以后,您不需要在 page,components 中获取系统信息,因为ColorUI已经帮您写好在对应的data里面了,您只需要使用就可以了。
例如在demo的home 页面中,在page的data中并没有定义sys_navBar,但是在页面和js中仍然可以使用,这些数据是根据手机状态实时变化的!
// ColorUI 为您在data中事先定义好的数据
sys_info
sys_navBar
sys_statusBar
sys_capsule
//引入框架的方法函数库
import ColorUI from './mp-cu/main'
export const colorUI = new ColorUI({
   config: {
       
   },
   data: {
      //全局data
       name: 'hello'
   },
   methods: {
      //全局函数
   }
})
您在 config/ColorUI.js 里面配置的data数据,也可以在页面的data里面访问到,ColorUI将配置的数据定义到$cuData属性里面中了。
TIP
配置的data内容你可以在 page,components 中通过 this.data.$cuData 获得
methods
注意,您设置的函数,data,等配置名称不能存在以下情况,["data" , "onLoad", "onShow", "onReady", "onHide", "onUnload", "onPullDownRefresh", "onReachBottom", "onShareAppMessage", "onPageScroll", "onTabItemTap", "setTheme", "setMain", "setText", "_toHome", "_toPath", "_backPage",  "sys_isFirstPage" ]
//引入框架的方法函数库
import ColorUI from './mp-cu/main'
export const colorUI = new ColorUI({
   config: {
       
   },
   data: {
      //全局data
   },
   methods: {
      //全局函数
       cuLog (message, ...optionalParams) {
           console.log(message, ...optionalParams)
       }
   }
})
在项目所有页面中,都可以直接调用this.cuLog (),就可以调用该config 文件中的函数体
TIP
配置的函数方法,都会在page,components里面注册在相应位置,您只需要调用即可
