# dof-grid-select 多格筛选

网格形选择组件,支持单选、多选

# 实例

# 基础用法

<template>
  <div class="wrapper">
    <category title="单选"></category>
    <div class="demo">
      <dof-grid-select
        :list="testData1"
        :single="true"
        @select="params => onSelect('res1', params)">
      </dof-grid-select>
      <text class="res">{{res1}}</text>
    </div>

    <category title="多选"></category>
    <div class="demo">
      <dof-grid-select
        : list="testData2"
        :limit="5"
        @overLimit="onOverLimit"
        @select="params => onSelect('res2', params)">
      </dof-grid-select>

      <text class="res">{{res2}}</text>
    </div>
  </div>
</template>
<script>
  data: () => ({
      res1: '',
      res2: '',
      res3: '',
      testData1: [
        {
          'title': '上海'
        },
        {
          'title': '杭州',
          'checked': true
        },
        {
          'title': '北京'
        },
        {
          'title': '广州'
        },
        {
          'title': '深圳'
        },
        {
          'title': '南京'
        },
        {
          'title': '合肥'
        },
        {
          'title': '武汉'
        },
        {
          'title': '长沙'
        },
        {
          'title': '最多展示两行内容'
        },
        {
          'title': '超过两行文本将被截断展示'
        },
        {
          'title': '西安'
        },
        {
          'title': '郑州'
        },
        {
          'title': '福州'
        }
      ],
      testData2: [
        {
          'title': '上海'
        },
        {
          'title': '杭州',
          'checked': true
        },
        {
          'title': '北京',
          'checked': true
        },
        {
          'title': '广州'
        },
        {
          'title': '深圳'
        },
        {
          'title': '南京'
        },
        {
          'title': '合肥',
          'checked': true
        },
        {
          'title': '武汉',
          'checked': true
        },
        {
          'title': '长沙'
        },
        {
          'title': '南昌'
        },
        {
          'title': '太原'
        },
        {
          'title': '西安'
        },
        {
          'title': '郑州'
        },
        {
          'title': '福州'
        }
      ],
      customStyles: {
        lineSpacing: '14px',
        width: '120px',
        height: '50px',
        icon: '',
        color: '#333333',
        checkedColor: '#ffffff',
        disabledColor: '#eeeeee',
        borderColor: '#666666',
        checkedBorderColor: '#ffb200',
        backgroundColor: '#ffffff',
        checkedBackgroundColor: '#ffb200'
      }
    }),

    methods: {
      onSelect (res, { selectIndex, checked, checkedList }) {
        Vue.set(this, res, `本次选择的index:${selectIndex}\n是否选中:${checked
          ? '是'
          : '否'}\n选中列表:${checkedList.map(item => item.title).join(',')}`);
      },
      onOverLimit (limit) {
        modal.toast({
          message: `最多选择${limit}`,
          duration: 0.8
        });
      }
    }

</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153

# Attributes

Prop Type Required Default Description
list Array Y - gird-select渲染的选项列表
single Boolean N true 是否为单选列表
limit Number N - 多选时限制的可选项数量
cols Number Y - 列数量
customStyles Object N - 自定义样式

# Events

事件名 说明 回调参数
overLimit 超出limit限制数量事件 -
select 选项选中事件 -
Last Updated: 4/8/2020, 10:00:47 AM