臻旅UI组件


Keywords
vue, vue-ui, js, 机票,酒店,火车票
License
MIT
Install
npm install zl-vue-ui@1.1.1

Documentation

zl-vue-ui

公司实际项目中编写的一些组件,后续会持续更新,有不足的地方希望大家提出宝贵意见,大家共同进步, 主要组件如下

引入组件

npm install zl-vue-ui -S

全局引用方法

main.js 中引入

import zlVueUi from 'zl-vue-ui'
Vue.use(zlVueUi)

局部引用

import {
  ZlCalendar,
  ZlCheckbox,
  ZlDialog,
  ZlDialogPlugin,
  ZlLoading,
  ZlLoadingPlugin,
  ZlRadio,
  ZlRange,
  ZlSlideDelete,
  ZlSwitch,
  ZlToast,
  ZlToastPlugin,
} from 'zl-vue-ui'

以下是主要组件

目前内部的组件

  • ZlCalendar 日历组件,仿照美团酒店编写的日历组件,支持单选和双选 git源文件地址
  • ZlCheckbox 多选框
  • ZlDialog dialog弹框
  • ZlLoading loading加载
  • ZlRadio 单选框
  • ZlRange 价格滑块,双向滑动 git源文件地址
  • ZlSlideDelete 左滑删除 git源文件地址
  • ZlSwitch switch选择器
  • ZlToast toast提示

ZlCalendar

仿照美团酒店编写的日历组件,展示选中区间

使用方法

html

<button @click="calendarShow"></button>
<zl-calendar v-model="show" @change="calendarChange"/>

js

data:{
    selectedData:[],
    show: false
}
calendarShow(){
  this.show = true
},
calendarChange(val){
    this.selectedData = val
}

props

close:{ // 关闭文字
  type: String,
  default:'×'
},
color:{ //选中的背景色
  type: String,
  default:'rgb(17,55,160)'
},
lightColor:{ // 开始结束之间的背景色
  type: String,
  default: `rgb(17,55,160,.15)`
},
title:{ //标题文字
  type: String,
  default:'选择日期'
},
months:{ // 月份长度
  type: [Number,String],
  default:6
},
type:{ // 选择类型 // start 开始, end 结束, double 双选
  type: String,
  default: 'double', 
},
selectedDate:{ // 默认选中日期
  type: Array,
  default(){
    return [
      moment().format('YYYY-MM-DD'),
      moment().add(1, 'd').format('YYYY-MM-DD')
    ]
  }
},
selectedText:{ //选中的文字,顺序不可颠倒
  type:Array,
  default(){
    return ['入店','离店']
  }
}

events

change
返回值:Array selectedDate

ZlCheckbox

多选框

使用方法

html

<zl-checkbox v-model="checked" :len="len" :max="max" @change="change"></zl-checkbox>

js

data:{
    checked:false
},
methods:{
  change(checked){

  }
}

props

checked:{ // 选中状态
  type: Boolean,
},
disabled:{ // 不可选中
  type:Boolean,
  default:false
},
len:{ // 当前选中长度
  type: [Number, String]
},
max:{ // 允许选择最大长度
  type: [Number, String]
}

events

change 返回值:Boolean

ZlDialog

dialog弹框

使用方法

html

<zl-dialog v-model="show"  @change="change"></zl-dialog>

js

data:{
    show:false
},
methods:{
  change(show){

  }
}

events

change 返回值:Boolean

ZlDialogPlugin

dialog弹框

使用方法, 暂无默认值,推荐使用 ZlDialog引入
this.$zhenlv.dialog.show() 显示
this.$zhenlv.dialog.hide() 隐藏

参数1 目前可选: 暂时不支持

参数2 目前可选文字: 暂时不支持

ZlLoading

loading加载

使用方法

js

this.$zhenlv.loading.show({type:'circle',text:'加载中...­',textMove:'wave'}) 显示
this.$zhenlv.loading.hide() 隐藏

type 目前可选loading样式: circle, accordion, double-circle, heart, rotate-circle, scale-circle, 默认 rotate-circle

text 目前可选文字: 自己定义的 text值, 默认 加载中

textMove 目前只支持 wave,可以不传,使用默认值, 默认 wave

ZlRadio

单选框

使用方法

html

<zl-radio v-model="checked" @change="change"></zl-radio>

js

data:{
    checked:false
},
methods:{
  change(checked){

  }
}

props

checked:{ // 选中状态
  type: Boolean,
},
disabled:{ // 不可选中
  type:Boolean,
  default:false
},

events

change 返回值:Boolean

ZlRange

价格滑块,双向滑动,开发人员可以自定义最大值和最小值

使用方法

html

<v-range
  :max="rangeOptions.max"
  :min="rangeOptions.min"
  :space="150"
  :step="50"
  :point="3"
  :min-value="storeRange.minValue"
  :max-value="storeRange.maxValue"
  :status="showFlag"
  @min-move="minMove"
  @max-move="maxMove">
</v-range>

js

data:{
    rangeOptions: {
        min: 0,
        max: 1050,
    },
    storeRange:{
        minValue:0,
        maxValue:1050
    },
    showFlag: false,
    
}
methods:{
    minMove (val) {
        this.storeRange.minValue = val
    },
    maxMove (val) {
        this.storeRange.maxValue = val
    },
}

props

step:{ //步长,默认是1像素
  type:[String, Number],
  default:1
},
min:{ // 可选的最小值
  type:[String, Number],
  default:0
},
max:{ // 可选的最大值
  type:[String, Number],
  default:100
},
minValue:{ // 选中的最小值
  type:[String, Number],
  default:0
},
maxValue:{// 选中的最大值
  type:[String, Number]
},
space:{ // 每步滑动的像素
  type:[String, Number],
  default:10
},
point:{// 一共滑几次到头
  type:[String, Number],
  default:10
},
status:{// 显示状态
  type:Boolean,
  default:true
}

events

minMove
返回值:String // 最小值
maxMove
返回值:String // 最大值

ZlSlideDelete

左滑删除,可以自定义滑动或不滑动,主要内容需根据组件需求而定义

git源文件地址

使用方法

html

<zl-slide-delete 
  :options="dataList"
  @delete-item="deleteFn" 
  @editor="editorFn"/>

js

data:{
dataList:[
    {
      id:1,
      title:'他大舅',
      content:[
        12,
        '臻旅科技你们的超级旅伴,机票酒店火车票火车票抢票景点'
      ]
    },
    {
      id:2,
      title:'他二舅',
      content:[
        15,
        '臻旅科技你们的超级旅伴,机票酒店火车票火车票抢票景点,臻旅科技你们的超级旅伴,机票酒店火车票火车票抢票景点'
      ]
    },
    {
      id:3,
      title:'都是他舅',
      content:[
        19,
        '臻旅科技你们的超级旅伴,机票酒店火车票火车票抢票景点'
      ]
    }
],// 数组里的content必须存在
}
methods:{
    editorFn(item){
      console.log(1,item)
    },
    deleteFn(index){
      this.dataList2.splice(index, 1)
    },
}

props

options:{
  type:Array
},
left:{ //左侧编辑,删除选项
  type:String,
  default: 'none', //目前可选 'none', 'editor'
},
right:{
  type:String, //右侧选中,编辑选项
  default: 'none', //目前可选 'none', 'editor'
},
slideDelete:{ //true 可以左滑删除, false 不可以左滑删除, 默认true
  type:Boolean,
  default:true
},
editor:{ // 列表是否可编辑
  type:Boolean,
  default:true
},
leftImgOptions:{ // 左侧内容, 当left不为none显示
  type:Object,
  default(){
    return {
      img: require('./img/editor.png'),
      width: '20px',
      height: '20px'
    }
  }
},
rightImgOptions:{ // 右侧内容, 当right不为none显示
  type:Object,
  default(){
    return {
      img: require('./img/editor.png'),
      width: '20px',
      height: '20px'
    }
  }
}

events

delete-item
返回值:
    index, Number // 删除的索引,
    item, Object //数组中的某一项
editor
返回值:
    item, Object // 数组中的某一项, 开发人员可以根据item 做编辑删除操作

ZlSwitch

switch选择器

使用方法

html

<zl-switch v-model="checked" @change="change"></zl-switch>

js

data:{
    checked:false
},
methods:{
  change(checked){

  }
}

props

checked:{ // 选中状态
  type: Boolean,
},
disabled:{ // 不可选中
  type:Boolean,
  default:false
},
options:{
  type:Object, {show:'选中文案', hide: '不选中文案'}
}

events

change 返回值:Boolean

ZlToast

toast提示

使用方法

js

this.$zhenlv.toast.show({text:'提示文字', time: 2000}) 显示
this.$zhenlv.toast.hide() 隐藏

type 目前可选toast提示类型: 目前暂不支持

text 目前可选文字: 自己定义的 text值, 无默认值

time 持续时间, 默认 2000