1.0.5 • Published 7 years ago

daze-koala v1.0.5

Weekly downloads
-
License
MIT
Repository
-
Last release
7 years ago

Daze-Koala

说明

Daze-Koala中文"呆拉",缩写dk。

默认750宽度dpr2设计稿(iphone6/7),如果设计稿为非750宽度,需在以下 适配 第一步中引入js时以及第二步中引入styl后进行相关参数设置。

呆拉的布局js会自动对页面的dpr值以及html的字号进行计算,页面书写时尺寸直接写设计稿的实际尺寸,单位px,使用$()进行包裹(例:$(10px) 即可自动转换为rem值。

呆拉已包含reset重置样式。

前期准备

此说明文档基于官方构建工具 vue-cli 构建项目,且假设已安装官方构建工具和 node

  1. 基于 webpack 构建 vue 项目: $ vue init webpack my-project

  2. 呆拉框架css基于stylus构建,需安装 stylus$ npm install stylus --save-dev

  3. vue-cli构建项目中使用stylus,需安装 stylus-loader$ npm install stylus-loader --save-dev

  4. 安装 daze-koala$ npm install daze-koala --save

项目结构

...
+ src // 源码目录
  + assets // 资源
  + components // 公用组件
  + router // 路由
  + store // 状态管理
  + view // 视图
  App.vue // 页面入口文件
  main.js // 程序入口文件
+ static // 静态资源
    config.js // 配置文件
index.html // 入口页面
README.md // 项目说明
...

适配

第一步:main.js
// main.js引入呆拉
import DK from 'daze-koala'
DK.run()

可设置参数

// main.js引入呆拉,以下示例为默认参数,等同上面的例子
import DK from 'daze-koala'
DK.run({
  baseWidth: 750, // 设计稿宽度
  scale: 2, // 设计稿缩放倍数
  baseFontSize: 10, // 基字号
  layout: 2, // 布局设置
  padFontScale: 1, // PC基字号相对于mobile基字号缩放倍数
  pcFontScale: 1 // Pad基字号相对于mobile基字号缩放倍数
})

baseWidth :设计稿宽度(默认为750)。
scale : 设计稿缩放倍数(默认为2)。
baseFontSize : 基字号(默认为10)。
layout :布局设置(默认为2),设置meta标签缩放值。1:缩放为1;2:缩放为1或1/2;3:缩放为1/dpr。
pcFontScale :PC基字号相对于mobile基字号缩放倍数(默认为1)。
padFontScale :Pad基字号相对于mobile基字号缩放倍数(默认为1)。

第二步:自动计算css

在vue文件的style中引入呆拉 base.styl 文件,style需设置 lang="stylus" 。 需要计算的属性值使用 $() 包裹。

<style lang="stylus">

  @import '../node_modules/daze-koala/base.styl'
  #app
    margin-top $(60px)

</style>

可设参数

<style lang="stylus">

  // 设置参数,以下示例为默认参数
  @import '../node_modules/daze-koala/base.styl'

  scale = 2; // 设计稿缩放倍数
  baseFontSize = 10; // 基字号
  layout = 2; // 布局设置

  #app
    margin-top $(60px)

</style>

scale :设计稿缩放倍数(默认为2),等同第一步中的 scale 参数,两者需保持一致。
baseFontSize :基字号(默认为10),等同第一步中的 baseFontSize 参数,两者需保持一致。
layout :布局设置(默认为2),值为1时,生成的css单位为px(第一步中 layout 只能设置为 1), 值为2时,生成的css单位为rem。

结果为:

<style>
  #app {
    margin-top: 3rem;
  }
</style>
设备检测

偶尔可能需要使用设备检测,例如发送短信,android和ios不同,或者同一个页面在微信和支付宝中调用不同的支付接口等等。

import Device from 'daze-koala/device.js'
console.log(Device.mobile())

find(str) : 查找userAgent是否包含指定字符串。
ios() : 判断是否为ios系统设备。
iPod() : 判断是否为apple iPod设备。
iPhone() : 判断是否为apple iPhone手机。
iPad() : 判断是否为apple iPad设备。
linux() : 判断是否为linux系统设备。
android() : 判断是否为android系统设备。
androidPhone() : 判断是否为android手机。
androidPad() : 判断是否为android Pad。
windows() : 判断是否为windows系统设备。
WindowsPhone() : 判断是否为WP手机。
WindowsPad() : 判断是否为WP Pad。
macPC() : 判断是否为mac PC。
linuxPC() : 判断是否为linux PC。
windowsPC() : 判断是否为windows PC。
mobile() :判断是否为手机。
pad() : 判断是否为Pad。
pc() : 判断是否为PC。
alipay() : 判断是否为支付宝。
weixin() :判断是否为微信。

工具

// 引入工具
import Tool from 'daze-koala/tool.js'
Tool.getUrlValue('key')

getUrlValue(key) :获取url中通过get方式传的某个 key 的值。
trim(text, symbol) :去空格或其他字符。text:字符串;symbol(可选):指定字符,多个字符可用 | 分割,默认去空白。
isBankCard(cardid) :验证银行卡格式。校验16-19位符合Luhm校验规则的银行卡号,部分银行卡号不符合次规则,例如平安银行的的部分卡号。
isIDCard(cardid) :验证身份证格式。校验大陆18位身份证。
isMobile(mobile, kind) :校验手机号。mobile:手机号码;kind(可选):cmcc :移动,cucc:联通,ctc:电信。不填则判断是否为手机号。
formatTime(num, double) :格式化时间。num:1970年至今毫秒数;double(可选):时间是否保持两位,true:两位(字符串),false:自动(数字)。fullTime 均为字符串并保持两位。year:年,month:月,day:日,hours:时,minutes:分,seconds,秒。
split(str, kind, symbol) :分割字符串。str:待分割字符串;kind(可选):种类,tel3,4,4,card4,4,4,4或自定义x,x,x,x,默认tel3,4,4symbol(可选):分隔符,默认空格。

弹出框组件

<!-- App.vue -->
<template>
   <dk-alert></dk-alert>
</template>
// main.js
import Alert from 'daze-koala/alert'
Vue.use(Alert)

实例中使用 this.$alert.setParams({}) 进行设置

...
methods: {
  fun: function () {
    this.$alert.setParams({
      // 参数设置
    })
  }
}

msg :弹出提示(string/array);传入 string 默认居中显示,传入 array 例如'内容', '对齐方式(left/center/right)'
info :详情(string/array);传入 string 默认左对齐(左对齐文字两端对齐,居中和右对齐文字不能两端对齐,另:手机不支持相关属性也无法文字两端对齐),传入 array 例如'内容', '对齐方式(left/center/right)'
btn :按钮,只用来关闭弹出(string/array);传入 string 为按钮文字,默认为'确定',右对齐,传入 array 例如'按钮文字', '对齐方式(left/center/right)'
auto :自动关闭时间(number),单位毫秒,默认2500毫秒。0为不自动关闭,此时出现按钮。
show :是否显示(true/false)。
theme :样式(number),数值1-7,彩虹色。

// 示例
this.$alert.setParams({
  msg: '提示',
  info: '这里是提示内容',
  show: true
})

输入框分割指令

// main.js
import Split from 'daze-koala/split'
Vue.use(Split)
<template>
  <!-- 默认数字,手机号,空格分割 -->
  <imput type="text" v-dk-split />
  <!-- 可自定义 -->
  <input type="text" v-dk-split="{kind : 'card', symbol : '-', char : /^[0-9x]*$/}">
</template>

kind :分割类型(string/array),预置'card'和'tel'两种,默认'tel'。如需自定义,可输入数组,例如手机号是3,4,4
symbol :分割字符(string),默认空格。
char :可输入字符(regex),默认只能输入数字。

倒计时组件

<div v-on:click="change('is_start')">
  <dk-timer v-bind:time="30" v-bind:start="is_start" message="还有X秒" from="获取验证码" to="重新获取" v-on:reset="reset('is_start')"></dk-timer>
</div>
export default {
  name: 'app',
  data () {
    return {
      is_start: false
    }
  },
  methods: {
    change (key) {
      if (!this[key]) {
        this[key] = true
      }
    },
    reset (key) {
      this[key] = false
    }
  }
}
// is_start为实例中data中的值,初始false,当变为true的时候开始倒计时
// is_reset为实例中mothods中的方法,用来重置is_start值

message :倒计时文字(string),'X'代表倒计时数字。
time :秒数(number)。
start :开始-必填(true/false)。
from :初始文字(string)。
to :倒计时结束文字(string)。

后记

这是呆拉第一阶段,仅仅提供适配和有限的常用工具,没有更多的组件,也并没有更多的去考虑PC和Pad,主要针对手机页面的适配。

  • 未来的第二阶段
    呆拉将成为一个完整的组件库,包括常用的各类组件。
  • 未来的未来的第三阶段
    呆拉将成为一个覆盖PC和手机端的组件库。
1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago