Giter VIP home page Giter VIP logo

vue-picker's Introduction

中文 | English

vue-picker的组件,囊括了(普通选择联动选择**地址选择)等等常见的picker,兼容PC、移动端,通过简单配置就可以出现一个强大的picker,感受下效果图。

vue-pick.gif

Demo(快点去复制代码体验一波吧)

https://naihe138.github.io/vue-picker/index.html

Install

npm install vue-pickers --save or yarn add vue-pickers

使用

普通网页开发直接复制lib/vue-picker.js文件夹到项目即可直接使用

<template>
  <div>
    <button @click="show">show picker</button>
    <VuePicker :data="pickData"
      :showToolbar="true"
      @cancel="cancel"
      @confirm="confirm"
      :visible.sync="pickerVisible"
    />
  </div>
</template>

<script>
  import VuePicker from 'vue-pickers'
  var tdata = []
  for (let i = 0; i < 20; i++) {
    tdata.push({
      label: '第' + i + '行',
      value: i
    })
  }
  export default {
    components: {
      VuePicker
    },
    data () {
      return {
        pickerVisible: false,
        pickData: [
          tdata
        ],
        result: ''
      }
    },
    methods: {
      show () {
        this.pickerVisible = true
      },
      cancel () {
        this.result = 'click cancel result: null'
      },
      confirm (res) {
        this.result = JSON.stringify(res)
      }
    }
  }
</script>

属性参数说明

参数 说明 是否必须 类型 默认值
visible 显示/隐藏picker Boolean false
data pickerData,多列[data1, data2] Array []
layer 联动显示列数 Number 0
defaultIndex 默认显示的index Number/Array(多列用数组)
cancelText 取消按钮文字 String '取消'
confirmText 去确认按钮文字 String '确认'
title picker标题 String ''
showToolbar 显示头部 Boolean false
maskClick 遮罩层是否可以点击关闭 Boolean false
itemHeight 每一行的高度 Number, String '44px'
rowNumber 显示多少行(建议单数) Number 5
appendToBody 是否插入到body中 Boolean false

事件说明

参数 说明 是否必须 类型 默认值
change 数据变化事件 function(val)
cancel 取消选择 function
confirm 确认选择 function(val)

vue-picker's People

Contributors

momopig avatar naihe138 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

vue-picker's Issues

第二次点击的时候获取不到值

第一次我选择的是下午-2,然后再次点击打开picker框中的默认值回到了第一行,并且这个时候点击确定获取不到值,值没有改变
image

移动问题

var b = Math.round(pos / 2) * 2;

这句话是什么意思呢,我现在布局用的是rem 来布局的,你这种滑动后给他加的top和transfrom 属性改成相应的单位后不生效,能否做成获取tooth 自己的高度,这样就不会根据布局不同里面相应的内容做大的改动呢?

初始值问题

如果一开始有一个值比如2012,如何让让选择器打开的时候,自动定位到2012.不然每次都是初始化的结果。
我的想法是你做一个子父级传值的功能,然后通过值去遍历,选择该对象。不过我不知道怎么改你的代码

无默认显示

data有默认值,但在控件中没有默认显示,都是选第一个

在Kbone多端框架使用

使用kbone框架(可以基于Vue)实现web小程序的选择器功能,但是经过webpack后,在小程序端编译后vue-picker没有生效,请问是否试验过多端框架下的适配?

首次弹出时点击内容会有bug

首次弹出时,若单击text内容后再点击确定(没有滚动动作),则会出现获取到undefined值。此时需要滚动一下内容才能正确取到值

picker不支持插入至 body 元素上

在与其他ui框架的modal一起使用的时候,其他ui框架有插入到body的modal,vue-picker会被遮盖,由于添加位置的原因,无法通过css解决

setTop 问题

this.pData2是object,但是验证却是用的array

      if(defaultData[1] && defaultData[1].value) {
        for (var i = 0, len = this.pData2.length; i < len; i++) {
          if (this.pData2[i].value == defaultData[1].value) {
            pos2 = -(i*2)
            break
          }
        }
        this.selects.select2 = defaultData[1]
        city.setAttribute('top', pos2 + 'em');
        city.style["-webkit-transform"] = 'translate3d(0,' + pos2 + 'em,0)';
      }

iOS Safari 显示bug

IMG_6870
运行官网demo,在iOS上显示存在问题,底部有部分被遮挡,如图
iPhone X 13.2.3

在手机上显示列表项位置错位

当列表中的选项过多时,越往下的选项位置错位越严重。可以看下面这个截图,在demo中,最后一个选项的显示位置明显靠上。当有上百上百个选项时,错位非常严重,显示选中A选项,实际选中的确实B选项。

在PC端没有这个问题,只在移动端存在

微信图片_20200904185342

pickData赋值 问题

pickData赋值必须在data初始化里面吗,默认pickData为空,在methods里面 调用接口赋值给pickData无效是什么原因?之后再赋值不行吗?求解,谢谢!

pc模式

虽然底部弹出兼容PC,但是最好能有一个pc上更好的体验样式,比如联动的下拉列表,或者其他

执行build之后报ERROR,急求帮助

**### ERROR in static/js/2.1b3865265f9636d24945.js from UglifyJs
Unexpected token: name (c) [./~/vue-pickers/lib/vue-picker.js:1,1307][static/js/2.1b3865265f9636d24945.js:4123,1267]

ERROR in static/js/3.977876d7ccb1a425ac0a.js from UglifyJs
Unexpected token: name (c) [./~/vue-pickers/lib/vue-picker.js:1,1307][static/js/3.977876d7ccb1a425ac0a.js:2398,1267]**

package.json : "vue-pickers": "^2.5.1"

vue更新picker里面的资料有点状况

vue更新了picker里面的资料,会导致select1记录成第一个,不过picker画面还是会在原本的选择上面。如果直接关闭,会取到第一个值

多级联动 defaultIndex 有问题

选择了一条数据后,保存到数据库里,然后再编辑赋值的时候,没有正确显示。只有第一列是正常的,后面两列没有联动显示。

image

image

image

省市区的数据用的不是组件提供的,而是我们自己的,格式严格遵守了下面的格式

[
   ……
   {
       "label": "山东省",
       "value": "370000",
       "children": [……] 
   },
   ……
]

添加一个需求

1.能不能加一个黑色半透明的遮罩层?用户只要点击遮罩层就关闭该组件(不保存)
2.能不能初始化默认数据,例如(广东省广州市天河区)这样的,默认就选择好了。当打开该组件的时候,也是从默认数据的位置开始选择

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.