# v-base-plugins
 
``` bash
# install
 npm i v-base-plugins --save
 npm start
#引入
import myPlugin from 'v-base-plugins'
Vue.use(myPlugin)

 
 
##topbar组件
###在相应页面引入组件
#```
<topbar :isBack="true" :defclass="defTopbarClass()" title="标题信息"   :fixed="fixed" search>
        <div slot="back">
          <span class="p-title">中国</span>
          <i  class="iconfont arrow-up icon-style" style="color: #fff;font-size: 20px;"></i>
        </div>                
        <div slot="search">
            <input slot="search" class="uni_searchIpt flex1" @input="bindInput" type="text" placeholder="搜索" placeholder-style="color: rgba(255,255,255,.5);" />
            <i class=" iconfont sousuo search-icon"></i>
        </div>                     
        <i @click="gohaoyou" slot="string" class="iconfont dingwei icon-style" style="color: #fff;font-size: 20px;"></i>
        <span slot="string" class="p-title" style="padding-left: 0.5rem;">找车</span>       
    </topbar>
#```
###topbar组件传入参数
#```
isBack: { type: [Boolean, String], default: true },//左侧是否显示返回按钮
fixed: {type: Boolean, default: true},//是否固定
title: { type: String, default: '' },//中间标题
search: { type: [Boolean, String], default: false },//是否需要搜索框,有搜索框,则不会显示中间标题
topStyle: {type:String, default:''}, //自定义样式
#```
###topbar使用组件插槽slot
1. name="back"  //左侧块插槽
2. name="search"  //中间块插槽 
3. name="iconfont" name="string" name="image" //右侧图标、文字、logo插槽   
***topbar组件分为左、中、右三块,根据以上配置可以最大程度灵活的自定义顶部导航栏***
效果展示
 
 

##mult-pop组件
###在相应页面引入组件:<mult-pop ref="multPop"></mult-pop>
###mult-pop组件根据需求传入opts参数对象,会与默认defaultOptions参数对象进行合并处理
#```
{
  defaultOptions: { //默认对象参数
      isVisible: false,       //是否显示弹窗,Boolean类型                    
      title: '',              //标题,String类型
      titleStyle: '',       //标题样式,String类型
      content: '',            //内容,String类型,可以传入富文本      
      contentClass: '',       //内容样式,String类型
      style: null,            //自定义弹窗样式,String类型
      skin: '',               //弹窗风格,String类型 weixin(默认)| toast
      icon: '',               //弹窗图标,String类型  success(默认) | info | error | loading
      iconStyle: '',       //图标样式,String类型
      xclose: '',          //自定义关闭按钮,String类型,  btn | icon   可以传入富文本                  
      shade: true,            //遮罩层,Boolean类型
      shadeClose: false,       //点击遮罩关闭,Boolean类型
      opacity: '',            //遮罩透明度,String类型
      time: 0,                //自动关闭秒数,Number类型
      endCallback: null,              //销毁弹窗回调函数 Function                   
      anim: 'scaleIn',        //弹窗动画  scaleIn(默认) | fadeIn | shake | top | right | bottom | left
      position: '',           //弹窗位置  top | right | bottom | left   
      btnsColumn: false,       //按钮是否换行竖直排列                
      btns: [                  //按钮数组集合,默认null
        {
            text: '取消',
            style: 'color: #2a83f2',
            onTap() {
                multPop.close();
            }
        },
        {
            text: '确定',
            style: 'color: #2a83f2',
            onTap() {
                .....
            }
        }
    ],  
  },
  opts: {},//传入对象参数
  timer: null
}
#```
###mult-pop组件传入参数示例
#```
let multPop = this.$refs.multPop
this.$refs.multPop.show({
  skin: 'toast',
  content: 'success',
  icon: 'success', //success | info | error | loading
  shade: false,
  time: 3,
})
multPop.show({
    skin: 'weixin',
    title: '开启新邮件提醒',
    content: '为了保证新邮件能及时收到提醒,请前往系统 [设置] - [电池] 中关闭应用锁屏清理。',
    shadeClose: false,    
    btns: [
        {
            text: '取消',
            style: 'color: #2a83f2',
            onTap() {
                multPop.close();
            }
        },
        {
            text: '前往设置',
            style: 'color: #2a83f2',
            onTap() {
                console.log('您点击了前往设置!');
            }
        }
    ]
})
multPop.show({
          skin: 'weixin',
          //title: '发现新版本',
          titleStyle:"padding-bottom: 0;text-align: left;",
          content: '123456789为群成员,<br/>请保护隐私',
          style:"width:80%",
          shadeClose: true,
          opacity:0.5,
          position:"center",
          btnsColumn:true,
          xclose:'btn',
          btns: [
              {
                  text: '@Ta',
                  style: 'color: #2a83f2;width: 100%;',
                  onTap() {
                      console.log('关注');
                      multPop.close();
                  }
              },
              {
                  text: '查看Ta的朋友圈',
                  style: 'color: #2a83f2;border-top: 1px solid #eee;width: 100%;',
                  onTap() {
                      console.log('加入黑名单');
                  }
              },
              {
                  text: '加入黑名单',
                  style: 'color: red;border-top: 1px solid #eee;width: 100%;',
                  onTap() {
                      console.log('加入黑名单');
                  }
              }
              
          ],
          endCallback:function(){
            console.log('销毁了!');
          }
      })
#```
效果展示

            

            

##bottomTab组件
###在相应页面引入组件:<mubottom-tab :tabsArr="tabsArr"></mubottom-tab>
###bottomTab组件传入参数
#```
exact:false  //是否启用router-link严格匹配模式
tabStyle:{},//自定义tabs样式,String类型
tabsArr:[
  {
    text:"",//tab文字,String类型,默认空
    path:"",//路由地址,String类型,默认空
    iconName:"",//tab字体图标名字,String类型,默认空
    color: '',//自定义tab文字、图标颜色,String类型,默认空
    
    num:6,//badge中数字,[Boolean, Number]类型,默认false,
          ***num:false不显示badge;num:true显示badge,不带数字;num:number显示badge,带数字,大于99显示···***
    },
]
#```
***tabsArr参数最好存储在vuex中,如果没有使用vuex,建议上升为全局变量***
###topbar组件传入参数示例
#```
tabsArr=[
  {text:"首页",path:"/index",iconName:"shouye",color: 'rgb(31, 146, 31)',style:{},num:6},
  {text:"通讯录",path:"/dev-text",iconName:"renwu",color: 'rgb(31, 146, 31)' },
  {text:"消息",path:"/dev-text2",iconName:"xiaoxi",color: 'rgb(31, 146, 31)',num:true},
  {text:"我的",path:"/dev-text3",iconName:"wode", color: 'rgb(31, 146, 31)'}
]
#```
效果展示

            

##calendar组件
###在相应页面引入组件:<calendar :caleShow="caleShow" :caleData="calendarObj" @getChooseDate="chooseDate"></calendar>
###calendar组件传入参数
#```
caleShow:{ type: Boolean, default: false },//是否显示日历
textShow:{ type: Boolean, default: false },//是否显示选中日期的标识文字
caleData: {type:Object, default:{         //选中日期的标识数据对象
    key:{ type: String, default: "" },      //数据对象id
    text:{ type: String, default: "" },     //日期的文字标识
    style:{ type: String, default: "" },    //日期标识的样式控制
    show:{ type: Boolean, default: false }  //日期标识的显示控制
}}, 
getChooseDate:{type: Function, default:  } //选中日期回调函数 Function 
#```
***calendar可以根据传入的不同参数caleData进而对选择日期进行标识,通过自定义事件拿到标识的日期,非常灵活***
###calendar组件传入参数示例
#```
<div class="select-cale">
          <span>排班:</span>
          <select class="cale-select" @change="selectVal">
            <option>请选择</option>
            <option v-for="(item,index) in selectsArr"  :key="index" :value="item.key">{{ item.text }}</option>             
          </select>
      </div>
this.selectsArr=[
        {key:"1",text:"中",style:"width:8px;height:8px;border-radius:4px;top:10px;right:12px;",show:false},
        {key:"2",text:"白",style:"width:8px;height:8px;border-radius:4px;top:10px;right:12px;",show:false},
        {key:"3",text:"晚",style:"width:8px;height:8px;border-radius:4px;top:10px;right:12px;",show:false},
        {key:"4",text:"夜",style:"width:8px;height:8px;border-radius:4px;top:10px;right:12px;",show:false},
        {key:"5",text:"休",style:"width:8px;height:8px;border-radius:4px;top:10px;right:12px;",show:false}
      ]
methods:{
  selectVal(ele){
        var that=this;
        for(let i=0;i<that.selectsArr.length;i++){
            if(that.selectsArr[i].key==ele.target.value){
              that.selectsArr[i].show=true;
              that.calendarObj=that.selectsArr[i];
            }
        }
      },
      chooseDate(val){
         console.log(val)
      }
}      
效果展示

    

#```
##toast插件
###toast插件传入参数
#```
option={
  message: '',//toast文字提示,String类型,默认空
  icon: 'loading',//toast图标,String类型  success(默认) | info | error | loading
  time:1, //toast显示时间/s,Number类型,默认空
}
#```
###toast插件调用示例
#```
this.$Toast({message: '显示成功',icon: 'success',time:3 })
this.$Toast.close();//手动关闭
#```
 
 
 
 
 
##mpay组件
###mpay组件传入参数
#```
inputOver:{type: Function, default:  }  //输入成功回调函数(必须),Function类型 
payPopOptions={  
        title: '',       //顶部文字,String类型,默认"请输入支付密码"        
        pwdLength: 6,    //密码长度,Number类型,默认6       
        del: '' ,        //底部删除按钮,String类型,默认svg删除按钮图片
        loadingTxt: '',  //默认等候文字,String类型,默认'请稍候...'
        loadingTime: 1000,   //默认等候时间,Number类型,默认1000/ms  
        resultTime:1000,     //显示结果后,多久重回默认,Number类型,默认1000/ms 
        successTxt: '',      //成功文字,String类型,默认'支付成功'
        failTxt: '',        //失败文字,String类型,默认'支付失败'
}
#```
###mpay组件调用示例
#```
payPopOptions: {
  isShow: false
}
<mpay ref="pay" :payPopOptions="payPopOptions" @inputOver="inputOver"></mpay>
methods: {      
  inputOver (val) {       
    if (val == '111111') {
      this.$refs.pay.$payStatus(true)//支付成功
    } else {
      this.$refs.pay.$payStatus(false)//支付失败
    }        
  },
}
#```
效果展示

              

## hupload使用组件必须传递的参数 options
options: {
    'showProgress': true, // 是否显示进度控制
    'imagePreview': true, // 是否显示图片预览
    'url': 'str', // 上传接口url
    'fileUploadName': 'ajax-upload', // 后台采用是什么名字就传递什么名字
    'limitSize': 1, // 限制文件上传的大小单位是 M
     'receiveUploadMsg': null,              //上传状态回调函数 Function            
}
## dom 组件使用
<hupload :options=options v-on:receiveUploadMsg="receiveUploadMsg"> </hupload>
#js 接受的信息判断
methods: {
    receiveUploadMsg (msg) {
      // msg ....
    }
}
```.........................................................
# hupload使用组件必须传递的参数 options
 Options: {
          isShow: false
        }
#js 接受的信息判断
 inputDown (val) {
         setTimeout(() => {
           console.log(val)
           if (val == '111111') {
             this.$refs.pay.$payStatus(true)
           } else {
             this.$refs.pay.$payStatus(false)
           }
         }, 1000)
       },
效果展示

         

#添加全局资源(自定义指令)
##v-out-click点击DOM元素外事件
#```
Vue.directive('out-click', {
    bind (el, binding, vnode, oldVnode) {
      // 逻辑...
    }
    ...
  })
#```
## v-out-click自定义指令使用示例
<div v-out-click="bindOutClick"></div>
##v-out-click点击DOM元素外事件
#```
methods:{
  bindOutClick(e){
    ...
  },
}
#```
## v-load-more指令使用示例
***v-load-more是监听有固定高度的盒子的滚动加载更多事件,比如可以用在不适合有页码的表格就可以使用下拉加载更多***
<ul v-load-more="bindLoadmore"><li></li>...</ul>
***v-load-more必须绑定在有样式overflow-y:auto的DOM上,即滚动的DOM上,否则监听不到滚动***
#```
methods:{
  bindLoadmore(e){
    ...//加载更多数据
  },
}
#```
#防抖函数debounce
##debounce使用示例
#```
Vue.debounce(fn,time) //fn需要防抖函数,time超出这个时间阈值,也得给客户一个反应的限值
#```
#节流函数throttle
##throttle使用示例
#```
Vue.throttle(fn,wait) //fn需要节流函数,wait时间间隔
#```
***以上使用图标均为阿里图标库中图标,如需自定义图标,替换class类名即可,若显示图标与自定义图标不符,可能是与阿里图标Unicode重复了,更改即可***

vue常用插件集合(常用,但一般UI库又不太能满足)的更多相关文章

  1. vue-cli常用插件集合

    element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开源 UI ...

  2. javascript功能插件大集合 前端常用插件 js常用插件

    转载来源:https://github.com/jobbole/aw... 包管理器管理着 javascript 库,并提供读取和打包它们的工具.•npm – npm 是 javascript 的包管 ...

  3. VSCode 前端常用插件集合

    Visual Studio Code 是由微软开发的一款免费.跨平台的文本编辑器.由于其卓越的性能和丰富的功能,它很快就受到了大家的喜爱. 但工欲善其事必先利其器,以下是本人为前端开发收集的常用的vs ...

  4. vscode使用汇总——常用插件、常用配置、常用快捷键

    一.代码提示快捷键设置:(keybindings.json) [ { "key": "ctrl+j", "command": "- ...

  5. javascript-js常用插件集合

    area.js 中国地区分级的js代码  Scripts/crypto.js  CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法               ...

  6. angular 常用插件集合

    md5加密    https://www.npmjs.com/package/md5-typescript angular echarts  https://github.com/xieziyu/ng ...

  7. vim包,已自带所有常用插件及常用命令总结

    /** ****************************************************************************** * @author    Maox ...

  8. 监督学习,无监督学习常用算法集合总结,引用scikit-learn库(监督篇)

    why写这篇blog 最近在接触这方面的知识,但是找了许多的笔记,都感觉没有很好的总结出来,也正好当做是边学习,边复习着走.大佬轻喷.参考书目<python机器学习基础教程> 将分别从以下 ...

  9. IDE常用插件

    IDE 常用插件集合 :

  10. maven常用插件总结

    maven本质上是一个插件框架,几乎所有的功能都是通过各种各样的插件来实现的.maven默认会依据项目类型自动把构建时的各阶段(Lifecycle和phase)自动绑定(Lifecycle Mappi ...

随机推荐

  1. uniapp小程序使用高德地图api实现路线规划

    路线规划 简介 路线规划常用于出行路线的提前预览,我们提供4种类型的路线规划,分别为:驾车.步行.公交和骑行,满足各种的出行场景. 高德开放平台 本例是驾车路线规划功能和位置选择地图api:choos ...

  2. [C++Primer] 第二章 变量和基本类型

    第二章 变量和基本类型 引用 引用定义的时候必须初始化. 引用初始化之后无法重新绑定到其它对象上. 引用本身并不是对象,所以没有指向引用的引用(不管如何多层引用,引用的还是源对象) 下面用一个简单的例 ...

  3. forms组件渲染标签、展示信息、校验数据的一些补充,forms组件参数和源码剖析,modelform组件,Django中间

    今日内容 forms组件渲染标签 forms组件渲染标签的方式1 <p>forms组件渲染标签的方式1</p> {{ form_obj.as_p }} {{ form_obj. ...

  4. vh 存在问题?试试动态视口单位之 dvh、svh、lvh

    大部分同学都知道,在 CSS 世界中,有 vw.vh.vmax.vmin 这几个与视口 Viewport 相关的单位. 正常而言: 1vw 等于1/100的视口宽度 (Viewport Width) ...

  5. Java 进阶P-4.8+P-4.9

    Object类 Object类的函数 toString() equals() Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object ...

  6. 【随笔记】T507 ADC SGM58031 16BIT 4Channel 调试记录

    文章介绍 本文主要描述在 T507 Android 10 Linux 4.9 平台下,调试 SGM58031 芯片的记录,实现单芯片实时采集外部四通道的电压数值. 芯片介绍 SGM58031 是一款低 ...

  7. MRS_下载相关问题汇总

    解决问题如下: MRS下载编译时,更改生成文件是HEX文件还是BIN文件 关于MounRiver下载时如何选择配置部分擦除 关于MounRiver下载起始地址配置问题 MRS下载编译时,更改生成文件是 ...

  8. 移动 WEB 布局方式之 rem 适配布局 ---- 苏宁首页案例制作

    一.技术选型 二.搭建相关文件夹结构 三.设置视口标签以及引入初始化样式 四.设置公共common.less 文件 common.less //设置常见的屏幕尺寸大小,修改里面的html 文字大小 / ...

  9. 开源分布式支持超大规模数据分析型数据仓库Apache Kylin实践-上

    @ 目录 概述 定义 特性 术语 技术概念 架构和组件 生态圈 部署 Docker部署 基于hadoop环境安装 前置条件 安装 使用步骤 官方样例Cube说明 示例演示 准备演示数据 创建项目 选择 ...

  10. springboot返回数据null参数设为空字符串或空数组

    package com.ruoyi.framework.config.ResponseVoConfig.WebConfig; /** * @Classname MyJsonMapper * @Desc ...