<script>
let years = []
for (var i = 2000; i <= 2030; i++) {
  years.push({
    name: i + '年',
    value: i + ''
  })
}
    export default{
        data(){
            return {
              years:[years],
              year1:[],
              year12:['2014'],
              years001:[],
              year001:[],
              info:'info',
              year3: ['2005'],
              year5:'2005',
              years1:[years, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]],
              year4: ['2002', '12'],
                list:[{
        name: '中国',
        value: 'china',
        parent: 0
      }, {
        name: '美国',
        value: 'USA',
        parent: 0
      }, {
        name: '广东',
        value: 'china001',
        parent: 'china'
      }, {
        name: '广西',
        value: 'china002',
        parent: 'china'
      }, {
        name: '美国001',
        value: 'usa001',
        parent: 'USA'
      }, {
        name: '美国002',
        value: 'usa002',
        parent: 'USA'
      }, {
        name: '广州',
        value: 'gz',
        parent: 'china001'
      }, {
        name: '深圳',
        value: 'sz',
        parent: 'china001'
      }, {
        name: '广西001',
        value: 'gz',
        parent: 'china002'
      }, {
        name: '广西002',
        value: 'sz',
        parent: 'china002'
      }, {
        name: '美国001_001',
        value: '0003',
        parent: 'usa001'
      }, {
        name: '美国001_002',
        value: '0004',
        parent: 'usa001'
      }, {
        name: '美国002_001',
        value: '0005',
        parent: 'usa002'
      }, {
        name: '美国002_002',
        value: '0006',
        parent: 'usa002'
      }],
                tempValue:[]
            }
        },
        methods:{
            onPickerChange(value,object){
// console.log('new Value', value,object)
            },
            change(value,object){
              // console.log('-------------------', value,object)
            },
            changeValue(value){
              this.years001 = value
            },
            change3 (value) {
              this.year5 = value[0]
            },
        },
        watch: {
          year5: {
            handler (val) {
              this.year3[0] = val
              // this.year3.$set(0, val)
              this.$set(this.year3, 0, val)
            },
            deep: true
          }
        },
    }
</script>

# Picker

> 引用： import Picker from 'zhidian-ui/lib/picker'

### 多列联动关系
:::demo
```html
<picker :data="list" :columns="3" :fixed-columns="3" v-model="tempValue" @on-change="onPickerChange"  ></picker>
```
```javaScript
<script>
    export default{
        data(){
            return {
                list:[{
        name: '中国',
        value: 'china',
        parent: 0
      }, {
        name: '美国',
        value: 'USA',
        parent: 0
      }, {
        name: '广东',
        value: 'china001',
        parent: 'china'
      }, {
        name: '广西',
        value: 'china002',
        parent: 'china'
      }, {
        name: '美国001',
        value: 'usa001',
        parent: 'USA'
      }, {
        name: '美国002',
        value: 'usa002',
        parent: 'USA'
      }, {
        name: '广州',
        value: 'gz',
        parent: 'china001'
      }, {
        name: '深圳',
        value: 'sz',
        parent: 'china001'
      }, {
        name: '广西001',
        value: 'gz',
        parent: 'china002'
      }, {
        name: '广西002',
        value: 'sz',
        parent: 'china002'
      }, {
        name: '美国001_001',
        value: '0003',
        parent: 'usa001'
      }, {
        name: '美国001_002',
        value: '0004',
        parent: 'usa001'
      }, {
        name: '美国002_001',
        value: '0005',
        parent: 'usa002'
      }, {
        name: '美国002_002',
        value: '0006',
        parent: 'usa002'
      }],
                tempValue:[],
                uuid: Math.random().toString(36).substring(3, 8),
            }
        },
        methods:{
            onPickerChange(value,object){
// console.log('new Value', value,object)
            }
        }
    }
</script>
```
:::

### 默认，不设置默认值时选中第一个
:::demo
```html
{{year12}}
<picker :data='years' v-model='year12' @on-change='change'></picker>
```
```javaScript
<script>
  let years = []
  for (var i = 2000; i <= 2030; i++) {
    years.push({
      name: i + '年',
      value: i + ''
    })
  }
    export default{
        data(){
            return {
              years:[years],
              year12:['2012']
            }
        },
        methods:{
            change(value,object){
              // console.log('-------------------', value,object)
            }
        }
    }
</script>
```
:::


### 异步加载及动态改变数据
:::demo
```html
<picker :data='years001' v-model='year001' @on-change='change'></picker>
<i-button :color="info" @click.native="changeValue([['1','3','5','7','9','11'],['2','3','4','5'],['a','b','c']])">设置数据一</i-button>

<i-button :color="info" @click.native="changeValue([['1','3','5','7','9','11'],['2','3','4','5']])">设置数据二</i-button>

<i-button :color="info" @click.native="changeValue([['2','4','6','8','10','11']])">设置数据三</i-button>
```
```javaScript
<script>
  export default{
        data(){
            return {
              years001:[],
              year001:[],
              info:'info'
            }
        },
        methods:{
            change(value,object){
              // console.log('-------------------', value,object)
            },
            changeValue(value){
              this.years001 = value
            }
        }
    }
</script>
```
:::


### 双向绑定
:::demo
```html
<picker :data='years' v-model='year3' @on-change='change3'></picker>
    <select v-model='year5'>
      <option v-for='one in years[0]' :value='one.value'>{{one.name}}</option>
    </select>

```
```javaScript
<script>
let years = []
for (var i = 2000; i <= 2030; i++) {
  years.push({
    name: i + '年',
    value: i + ''
  })
}
    export default{
        data(){
            return {
              years:[years],
              year3: ['2005'],
              year5:'2005',
            }
        },
        methods:{
            change3 (value) {
              this.year5 = value[0]
            },
        },
        watch: {
          year5: {
            handler (val) {
              this.year3[0] = val
              // this.year3.$set(0, val)
              this.$set(this.year3, 0, val)
            },
            deep: true
          }
        },
    }
</script>
```
:::

### 非联动多列
:::demo
```html
<picker :data='years1' v-model='year4' @on-change='change'></picker>
```
```javaScript
<script>
  let years = []
for (var i = 2000; i <= 2030; i++) {
  years.push({
    name: i + '年',
    value: i + ''
  })
}
    export default{
        data(){
            return {
              years1:[years, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]],
              year4: ['2002', '4']
            }
        },
        methods:{
            change(value,object){
              // console.log('-------------------', value,object)
            },
        }
    }
</script>
```
:::

### Picker Attributes
| 参数      | 说明          | 类型      | 可选值       | 默认值  |
|---------- |------------- |---------------|------------  |-------- |
| value | 表单值，使用 v-model 绑定 | `Array` | — | — |
| data | 选项列表数据 | `Array` | — | — |
| columns | 指定联动模式下的列数，当不指定时表示非联动 | `Number` | — | — |
| fixed-columns | 指定显示多少列，隐藏多余的 | `Number` | — | — |
| column-width | 定义每一列宽度，只需要定义除最后一列宽度，最后一列自动宽度， 比如对于3列选择，可以这样：[1/2, 1/5] | `Array` | — | — |

### Picker Event
| 名称      |  参数       | 描述 |
|---------- |------------- |---------------|
| on-change | 请自行参照arguments | 选择值变化时触发 |

### Picker Methods
| 名称      |  参数       | 描述 |
|---------- |------------- |---------------|
| getNameValues |  | 根据 value 获取字面值 |
