Skip to content

Commit 0d9b205

Browse files
ruoruruoru
authored andcommitted
issue #218 update picke and picker_column code
1 parent f8b12cd commit 0d9b205

File tree

10 files changed

+13388
-31
lines changed

10 files changed

+13388
-31
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ publish.sh
99
pendingtest
1010
.nyc_output
1111
dist
12-
build
12+
build
13+
yarn*

example/pages/picker/index.js

Lines changed: 121 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,93 @@
11
import React from 'react';
2-
import { Popup, Picker, CityPicker, Form, FormCell, CellBody, CellHeader, Label, Input } from '../../../build/packages';
2+
//import { Popup, Picker, CascadePicker, CityPicker, Form, FormCell, CellBody, CellHeader, Label, Input } from '../../../build/packages';
3+
import { Popup, Picker, CascadePicker, CityPicker, Form, FormCell, CellBody, CellHeader, Label, Input } from '../../../src';
34
import Page from '../../component/page';
45
import cnCity from './cnCity';
56

7+
68
class PickerDemo extends React.Component {
79

810
state = {
911
picker_show: false,
1012
picker_value: '',
1113
picker_group: [
12-
{
13-
items: [
14-
{
15-
label: 'Item1'
16-
},
17-
{
18-
label: 'Item2 (Disabled)',
19-
disabled: true
20-
},
21-
{
22-
label: 'Item3'
23-
},
24-
{
25-
label: 'Item4'
26-
},
27-
{
28-
label: 'Item5'
29-
}
30-
]
31-
}
14+
[
15+
{
16+
label: 'A1 (Disabled)',
17+
value: 'A1',
18+
disable: true
19+
},
20+
{
21+
label: 'A2',
22+
value: 'A2',
23+
},
24+
{
25+
label: 'A3',
26+
value: 'A3',
27+
},
28+
{
29+
label: 'A4 (Disabled)',
30+
value: 'A4',
31+
disable: true
32+
},
33+
{
34+
label: 'A5',
35+
value: 'A5',
36+
},
37+
{
38+
label: 'A6',
39+
value: 'A6',
40+
},
41+
{
42+
label: 'A7',
43+
value: 'A7',
44+
}
45+
],
46+
[
47+
{
48+
label: 'B1',
49+
value: 'B1',
50+
},
51+
{
52+
label: 'B2',
53+
value: 'B2',
54+
},
55+
{
56+
label: 'B3 (Disabled)',
57+
value: 'B3',
58+
disable: true,
59+
},
60+
{
61+
label: 'B4',
62+
value: 'B4',
63+
},
64+
],
65+
[
66+
{
67+
label: 'C1',
68+
value: 'C1',
69+
},
70+
{
71+
label: 'C2',
72+
value: 'C2',
73+
},
74+
{
75+
label: 'C3 (Disabled)',
76+
value: 'C3',
77+
disable: true,
78+
},
79+
{
80+
label: 'C4',
81+
value: 'C4',
82+
},
83+
],
84+
],
85+
picker_cascade: [
3286
],
3387
city_show: false,
34-
city_value: ''
88+
cascade_show: false,
89+
city_value: '',
90+
cascade_value: '',
3591
};
3692

3793
hide(){
@@ -66,11 +122,50 @@ class PickerDemo extends React.Component {
66122
<CityPicker
67123
data={cnCity}
68124
onCancel={e=>this.setState({city_show: false})}
125+
onOk={text=>this.setState({city_value: text, city_show: false})}
69126
onChange={text=>this.setState({city_value: text, city_show: false})}
70127
show={this.state.city_show}
71128
/>
72129

130+
<Form>
131+
<FormCell>
132+
<CellHeader>
133+
<Label>Cascade</Label>
134+
</CellHeader>
135+
<CellBody>
136+
<Input type="text"
137+
value={this.state.cascade_value}
138+
onClick={ e=> {
139+
e.preventDefault();
140+
this.setState({cascade_show: true})
141+
}}
142+
placeholder="Chose Your cascade value"
143+
readOnly={true}
144+
/>
145+
</CellBody>
146+
</FormCell>
147+
</Form>
148+
<CascadePicker
149+
data={cnCity}
150+
datamap={{text: 'name', value: 'code', sub: 'sub'}}
151+
onCancel={e=>this.setState({cascade_show: false})}
152+
onOk={selected => {
153+
let value = cnCity;
73154

155+
selected.forEach( (s, i)=> {
156+
if(i === selected.length - 1) {
157+
value = cnCity[s].code
158+
} else {
159+
value = value[s].sub;
160+
}
161+
})
162+
this.setState({
163+
cascade_value: value,
164+
cascade_show: false
165+
})
166+
}}
167+
show={this.state.cascade_show}
168+
/>
74169

75170
<Form>
76171
<FormCell>
@@ -93,17 +188,18 @@ class PickerDemo extends React.Component {
93188
</Form>
94189

95190
<Picker
96-
onChange={selected=>{
191+
onOk={selected=>{
97192
let value = ''
98193
selected.forEach( (s, i)=> {
99-
value = this.state.picker_group[i]['items'][s].label
194+
value += this.state.picker_group[i][s].value
100195
})
101196
this.setState({
102197
picker_value: value,
103198
picker_show: false
104199
})
105200
}}
106-
groups={this.state.picker_group}
201+
data={this.state.picker_group}
202+
datamap={{text: 'label'}}
107203
show={this.state.picker_show}
108204
onCancel={e=>this.setState({picker_show: false})}
109205
/>

0 commit comments

Comments
 (0)