Skip to content

Commit 81048b9

Browse files
committed
feat: update vc-form
1 parent 0198082 commit 81048b9

File tree

9 files changed

+720
-631
lines changed

9 files changed

+720
-631
lines changed

antd-tools/getBabelCommonConfig.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module.exports = function (modules) {
77
require.resolve('babel-plugin-transform-es3-property-literals'),
88
require.resolve('babel-plugin-transform-object-assign'),
99
require.resolve('babel-plugin-transform-object-rest-spread'),
10+
require.resolve('babel-plugin-transform-class-properties'),
1011
]
1112
plugins.push([require.resolve('babel-plugin-transform-runtime'), {
1213
polyfill: false,
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/* eslint no-console:0 */
2+
3+
import { createForm } from '../index'
4+
import { regionStyle } from './styles'
5+
6+
let uuid = 0
7+
8+
const Form = {
9+
props: {
10+
form: Object,
11+
},
12+
methods: {
13+
remove (k) {
14+
const { form } = this
15+
// can use data-binding to get
16+
let keys = form.getFieldValue('keys')
17+
keys = keys.filter((key) => {
18+
return key !== k
19+
})
20+
// can use data-binding to set
21+
form.setFieldsValue({
22+
keys,
23+
})
24+
},
25+
add () {
26+
uuid++
27+
const { form } = this
28+
// can use data-binding to get
29+
let keys = form.getFieldValue('keys')
30+
keys = keys.concat(uuid)
31+
// can use data-binding to set
32+
// important! notify form to detect changes
33+
form.setFieldsValue({
34+
keys,
35+
})
36+
},
37+
submit (e) {
38+
e.preventDefault()
39+
console.log(this.form.getFieldsValue())
40+
},
41+
},
42+
43+
render () {
44+
const { getFieldProps, getFieldValue } = this.form
45+
getFieldProps('keys', {
46+
initialValue: [],
47+
})
48+
const inputs = getFieldValue('keys').map((k) => {
49+
return (<div key={k} style={ regionStyle }>
50+
<input {...getFieldProps(`name${k}`)}/>
51+
<a
52+
onClick={this.remove.bind(this, k)}
53+
>delete</a></div>)
54+
})
55+
return (<div>
56+
{inputs}
57+
<div style={ regionStyle }>
58+
<button onClick={this.submit}>submit</button>
59+
60+
<button onClick={this.add}>add</button>
61+
</div>
62+
</div>)
63+
},
64+
}
65+
66+
export default createForm()(Form)

components/vc-form/demo/styles.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export const regionStyle = {
2+
border: '1px solid red',
3+
marginTop: '10px',
4+
padding: '10px',
5+
}
6+
7+
export const errorStyle = {
8+
color: 'red',
9+
marginTop: '10px',
10+
padding: '10px',
11+
}

0 commit comments

Comments
 (0)