tangjinzhou
7 years ago
9 changed files with 720 additions and 631 deletions
@ -0,0 +1,66 @@
|
||||
/* eslint no-console:0 */ |
||||
|
||||
import { createForm } from '../index' |
||||
import { regionStyle } from './styles' |
||||
|
||||
let uuid = 0 |
||||
|
||||
const Form = { |
||||
props: { |
||||
form: Object, |
||||
}, |
||||
methods: { |
||||
remove (k) { |
||||
const { form } = this |
||||
// can use data-binding to get |
||||
let keys = form.getFieldValue('keys') |
||||
keys = keys.filter((key) => { |
||||
return key !== k |
||||
}) |
||||
// can use data-binding to set |
||||
form.setFieldsValue({ |
||||
keys, |
||||
}) |
||||
}, |
||||
add () { |
||||
uuid++ |
||||
const { form } = this |
||||
// can use data-binding to get |
||||
let keys = form.getFieldValue('keys') |
||||
keys = keys.concat(uuid) |
||||
// can use data-binding to set |
||||
// important! notify form to detect changes |
||||
form.setFieldsValue({ |
||||
keys, |
||||
}) |
||||
}, |
||||
submit (e) { |
||||
e.preventDefault() |
||||
console.log(this.form.getFieldsValue()) |
||||
}, |
||||
}, |
||||
|
||||
render () { |
||||
const { getFieldProps, getFieldValue } = this.form |
||||
getFieldProps('keys', { |
||||
initialValue: [], |
||||
}) |
||||
const inputs = getFieldValue('keys').map((k) => { |
||||
return (<div key={k} style={ regionStyle }> |
||||
<input {...getFieldProps(`name${k}`)}/> |
||||
<a |
||||
onClick={this.remove.bind(this, k)} |
||||
>delete</a></div>) |
||||
}) |
||||
return (<div> |
||||
{inputs} |
||||
<div style={ regionStyle }> |
||||
<button onClick={this.submit}>submit</button> |
||||
|
||||
<button onClick={this.add}>add</button> |
||||
</div> |
||||
</div>) |
||||
}, |
||||
} |
||||
|
||||
export default createForm()(Form) |
@ -0,0 +1,11 @@
|
||||
export const regionStyle = { |
||||
border: '1px solid red', |
||||
marginTop: '10px', |
||||
padding: '10px', |
||||
} |
||||
|
||||
export const errorStyle = { |
||||
color: 'red', |
||||
marginTop: '10px', |
||||
padding: '10px', |
||||
} |
@ -1,164 +1,165 @@
|
||||
{ |
||||
"name": "vue-antd-ui", |
||||
"version": "0.4.3", |
||||
"title": "Ant Design Vue", |
||||
"description": "An enterprise-class UI design language and Vue-based implementation", |
||||
"keywords": [ |
||||
"ant", |
||||
"design", |
||||
"antd", |
||||
"vue", |
||||
"vueComponent", |
||||
"component", |
||||
"components", |
||||
"ui", |
||||
"framework", |
||||
"frontend" |
||||
], |
||||
"main": "dist/antd.min.js", |
||||
"files": [ |
||||
"dist", |
||||
"lib", |
||||
"es" |
||||
], |
||||
"scripts": { |
||||
"start": "NODE_ENV=development ./node_modules/.bin/webpack-dev-server --open --hot", |
||||
"test": "karma start test/karma.conf.js --single-run", |
||||
"site": "node scripts/run.js site-dist", |
||||
"copy": "node scripts/run.js copy-html", |
||||
"compile": "node antd-tools/cli/run.js compile", |
||||
"pub": "node antd-tools/cli/run.js pub", |
||||
"prepublish": "node antd-tools/cli/run.js guard", |
||||
"dist": "node antd-tools/cli/run.js dist", |
||||
"lint": "eslint -c ./.eslintrc --fix --ext .jsx,.js,.vue ./components", |
||||
"lint:style": "stylelint \"./examples/**/*.less\" --fix --syntax less", |
||||
"commitmsg": "validate-commit-msg", |
||||
"cm": "git-cz" |
||||
}, |
||||
"repository": { |
||||
"type": "git", |
||||
"url": "git+https://github.com/vueComponent/ant-design.git" |
||||
}, |
||||
"license": "MIT", |
||||
"bugs": { |
||||
"url": "https://github.com/vueComponent/ant-design/issues" |
||||
}, |
||||
"homepage": "https://github.com/vueComponent/ant-design", |
||||
"pre-commit": [ |
||||
"lint:style", |
||||
"lint" |
||||
], |
||||
"devDependencies": { |
||||
"@octokit/rest": "^15.2.6", |
||||
"autoprefixer": "^8.1.0", |
||||
"babel-cli": "^6.26.0", |
||||
"babel-core": "^6.26.0", |
||||
"babel-eslint": "^8.0.1", |
||||
"babel-helper-vue-jsx-merge-props": "^2.0.3", |
||||
"babel-loader": "^7.1.2", |
||||
"babel-plugin-add-module-exports": "^0.2.1", |
||||
"babel-plugin-import": "^1.1.1", |
||||
"babel-plugin-istanbul": "^4.1.1", |
||||
"babel-plugin-syntax-dynamic-import": "^6.18.0", |
||||
"babel-plugin-syntax-jsx": "^6.18.0", |
||||
"babel-plugin-transform-decorators": "^6.24.1", |
||||
"babel-plugin-transform-decorators-legacy": "^1.3.4", |
||||
"babel-plugin-transform-es3-member-expression-literals": "^6.22.0", |
||||
"babel-plugin-transform-es3-property-literals": "^6.22.0", |
||||
"babel-plugin-transform-object-assign": "^6.22.0", |
||||
"babel-plugin-transform-object-rest-spread": "^6.26.0", |
||||
"babel-plugin-transform-runtime": "~6.23.0", |
||||
"babel-plugin-transform-vue-jsx": "^3.7.0", |
||||
"babel-polyfill": "^6.26.0", |
||||
"babel-preset-env": "^1.6.1", |
||||
"case-sensitive-paths-webpack-plugin": "^2.1.2", |
||||
"chai": "^4.1.2", |
||||
"chalk": "^2.3.2", |
||||
"cheerio": "^1.0.0-rc.2", |
||||
"colorful": "^2.1.0", |
||||
"commander": "^2.15.0", |
||||
"commitizen": "^2.9.6", |
||||
"css-loader": "^0.28.7", |
||||
"deep-assign": "^2.0.0", |
||||
"eslint": "^4.7.2", |
||||
"eslint-plugin-vue": "^3.13.0", |
||||
"eslint-plugin-html": "^3.2.2", |
||||
"eslint-plugin-vue-libs": "^1.2.1", |
||||
"extract-text-webpack-plugin": "^3.0.2", |
||||
"fetch-jsonp": "^1.1.3", |
||||
"gulp": "^3.9.1", |
||||
"gulp-babel": "^7.0.0", |
||||
"gulp-strip-code": "^0.1.4", |
||||
"highlight.js": "^9.12.0", |
||||
"html-webpack-plugin": "^2.30.1", |
||||
"husky": "^0.14.3", |
||||
"istanbul-instrumenter-loader": "^3.0.0", |
||||
"jsonp": "^0.2.1", |
||||
"karma": "^1.4.1", |
||||
"karma-coverage": "^1.1.1", |
||||
"karma-coverage-istanbul-reporter": "^1.3.0", |
||||
"karma-mocha": "^1.3.0", |
||||
"karma-phantomjs-launcher": "^1.0.2", |
||||
"karma-phantomjs-shim": "^1.4.0", |
||||
"karma-sinon-chai": "^1.3.1", |
||||
"karma-sourcemap-loader": "^0.3.7", |
||||
"karma-spec-reporter": "0.0.31", |
||||
"karma-webpack": "^2.0.2", |
||||
"less": "^2.7.2", |
||||
"less-loader": "^4.0.5", |
||||
"less-plugin-npm-import": "^2.1.0", |
||||
"markdown-it": "^8.4.0", |
||||
"markdown-it-anchor": "^4.0.0", |
||||
"marked": "^0.3.7", |
||||
"merge2": "^1.2.1", |
||||
"minimist": "^1.2.0", |
||||
"mkdirp": "^0.5.1", |
||||
"mocha": "^3.2.0", |
||||
"postcss": "^6.0.20", |
||||
"postcss-loader": "^2.1.2", |
||||
"pre-commit": "^1.2.2", |
||||
"querystring": "^0.2.0", |
||||
"reqwest": "^2.0.5", |
||||
"rimraf": "^2.6.2", |
||||
"rucksack-css": "^1.0.2", |
||||
"selenium-server": "^3.0.1", |
||||
"semver": "^5.3.0", |
||||
"sinon": "^4.0.2", |
||||
"sinon-chai": "^2.8.0", |
||||
"style-loader": "^0.18.2", |
||||
"stylelint": "^8.1.1", |
||||
"stylelint-config-standard": "^17.0.0", |
||||
"through2": "^2.0.3", |
||||
"validate-commit-msg": "^2.14.0", |
||||
"vue": "^2.5.15", |
||||
"vue-antd-md-loader": "^1.0.3", |
||||
"vue-clipboard2": "0.0.8", |
||||
"vue-loader": "^13.0.5", |
||||
"vue-router": "^3.0.1", |
||||
"vue-template-compiler": "^2.5.15", |
||||
"webpack": "^3.6.0", |
||||
"webpack-chunk-hash": "^0.5.0", |
||||
"webpack-dev-server": "^2.8.2", |
||||
"webpack-merge": "^4.1.1" |
||||
}, |
||||
"dependencies": { |
||||
"add-dom-event-listener": "^1.0.2", |
||||
"array-tree-filter": "^2.1.0", |
||||
"babel-runtime": "6.x", |
||||
"babel-helper-vue-jsx-merge-props": "^2.0.3", |
||||
"classnames": "^2.2.5", |
||||
"component-classes": "^1.2.6", |
||||
"css-animation": "^1.4.1", |
||||
"dom-align": "^1.6.7", |
||||
"dom-closest": "^0.2.0", |
||||
"dom-scroll-into-view": "^1.2.1", |
||||
"enquire.js": "^2.1.6", |
||||
"is-negative-zero": "^2.0.0", |
||||
"lodash": "^4.17.5", |
||||
"moment": "^2.21.0", |
||||
"omit.js": "^1.0.0", |
||||
"shallow-equal": "^1.0.0", |
||||
"shallowequal": "^1.0.2", |
||||
"warning": "^3.0.0" |
||||
} |
||||
"name": "vue-antd-ui", |
||||
"version": "0.4.3", |
||||
"title": "Ant Design Vue", |
||||
"description": "An enterprise-class UI design language and Vue-based implementation", |
||||
"keywords": [ |
||||
"ant", |
||||
"design", |
||||
"antd", |
||||
"vue", |
||||
"vueComponent", |
||||
"component", |
||||
"components", |
||||
"ui", |
||||
"framework", |
||||
"frontend" |
||||
], |
||||
"main": "dist/antd.min.js", |
||||
"files": [ |
||||
"dist", |
||||
"lib", |
||||
"es" |
||||
], |
||||
"scripts": { |
||||
"start": "NODE_ENV=development ./node_modules/.bin/webpack-dev-server --open --hot", |
||||
"test": "karma start test/karma.conf.js --single-run", |
||||
"site": "node scripts/run.js site-dist", |
||||
"copy": "node scripts/run.js copy-html", |
||||
"compile": "node antd-tools/cli/run.js compile", |
||||
"pub": "node antd-tools/cli/run.js pub", |
||||
"prepublish": "node antd-tools/cli/run.js guard", |
||||
"dist": "node antd-tools/cli/run.js dist", |
||||
"lint": "eslint -c ./.eslintrc --fix --ext .jsx,.js,.vue ./components", |
||||
"lint:style": "stylelint \"./examples/**/*.less\" --fix --syntax less", |
||||
"commitmsg": "validate-commit-msg", |
||||
"cm": "git-cz" |
||||
}, |
||||
"repository": { |
||||
"type": "git", |
||||
"url": "git+https://github.com/vueComponent/ant-design.git" |
||||
}, |
||||
"license": "MIT", |
||||
"bugs": { |
||||
"url": "https://github.com/vueComponent/ant-design/issues" |
||||
}, |
||||
"homepage": "https://github.com/vueComponent/ant-design", |
||||
"pre-commit": [ |
||||
"lint:style", |
||||
"lint" |
||||
], |
||||
"devDependencies": { |
||||
"@octokit/rest": "^15.2.6", |
||||
"autoprefixer": "^8.1.0", |
||||
"babel-cli": "^6.26.0", |
||||
"babel-core": "^6.26.0", |
||||
"babel-eslint": "^8.0.1", |
||||
"babel-helper-vue-jsx-merge-props": "^2.0.3", |
||||
"babel-loader": "^7.1.2", |
||||
"babel-plugin-add-module-exports": "^0.2.1", |
||||
"babel-plugin-import": "^1.1.1", |
||||
"babel-plugin-istanbul": "^4.1.1", |
||||
"babel-plugin-syntax-dynamic-import": "^6.18.0", |
||||
"babel-plugin-syntax-jsx": "^6.18.0", |
||||
"babel-plugin-transform-decorators": "^6.24.1", |
||||
"babel-plugin-transform-decorators-legacy": "^1.3.4", |
||||
"babel-plugin-transform-es3-member-expression-literals": "^6.22.0", |
||||
"babel-plugin-transform-es3-property-literals": "^6.22.0", |
||||
"babel-plugin-transform-object-assign": "^6.22.0", |
||||
"babel-plugin-transform-object-rest-spread": "^6.26.0", |
||||
"babel-plugin-transform-runtime": "~6.23.0", |
||||
"babel-plugin-transform-vue-jsx": "^3.7.0", |
||||
"babel-polyfill": "^6.26.0", |
||||
"babel-preset-env": "^1.6.1", |
||||
"case-sensitive-paths-webpack-plugin": "^2.1.2", |
||||
"chai": "^4.1.2", |
||||
"chalk": "^2.3.2", |
||||
"cheerio": "^1.0.0-rc.2", |
||||
"colorful": "^2.1.0", |
||||
"commander": "^2.15.0", |
||||
"commitizen": "^2.9.6", |
||||
"css-loader": "^0.28.7", |
||||
"deep-assign": "^2.0.0", |
||||
"eslint": "^4.7.2", |
||||
"eslint-plugin-vue": "^3.13.0", |
||||
"eslint-plugin-html": "^3.2.2", |
||||
"eslint-plugin-vue-libs": "^1.2.1", |
||||
"extract-text-webpack-plugin": "^3.0.2", |
||||
"fetch-jsonp": "^1.1.3", |
||||
"gulp": "^3.9.1", |
||||
"gulp-babel": "^7.0.0", |
||||
"gulp-strip-code": "^0.1.4", |
||||
"highlight.js": "^9.12.0", |
||||
"html-webpack-plugin": "^2.30.1", |
||||
"husky": "^0.14.3", |
||||
"istanbul-instrumenter-loader": "^3.0.0", |
||||
"jsonp": "^0.2.1", |
||||
"karma": "^1.4.1", |
||||
"karma-coverage": "^1.1.1", |
||||
"karma-coverage-istanbul-reporter": "^1.3.0", |
||||
"karma-mocha": "^1.3.0", |
||||
"karma-phantomjs-launcher": "^1.0.2", |
||||
"karma-phantomjs-shim": "^1.4.0", |
||||
"karma-sinon-chai": "^1.3.1", |
||||
"karma-sourcemap-loader": "^0.3.7", |
||||
"karma-spec-reporter": "0.0.31", |
||||
"karma-webpack": "^2.0.2", |
||||
"less": "^2.7.2", |
||||
"less-loader": "^4.0.5", |
||||
"less-plugin-npm-import": "^2.1.0", |
||||
"markdown-it": "^8.4.0", |
||||
"markdown-it-anchor": "^4.0.0", |
||||
"marked": "^0.3.7", |
||||
"merge2": "^1.2.1", |
||||
"minimist": "^1.2.0", |
||||
"mkdirp": "^0.5.1", |
||||
"mocha": "^3.2.0", |
||||
"postcss": "^6.0.20", |
||||
"postcss-loader": "^2.1.2", |
||||
"pre-commit": "^1.2.2", |
||||
"querystring": "^0.2.0", |
||||
"reqwest": "^2.0.5", |
||||
"rimraf": "^2.6.2", |
||||
"rucksack-css": "^1.0.2", |
||||
"selenium-server": "^3.0.1", |
||||
"semver": "^5.3.0", |
||||
"sinon": "^4.0.2", |
||||
"sinon-chai": "^2.8.0", |
||||
"style-loader": "^0.18.2", |
||||
"stylelint": "^8.1.1", |
||||
"stylelint-config-standard": "^17.0.0", |
||||
"through2": "^2.0.3", |
||||
"validate-commit-msg": "^2.14.0", |
||||
"vue": "^2.5.15", |
||||
"vue-antd-md-loader": "^1.0.3", |
||||
"vue-clipboard2": "0.0.8", |
||||
"vue-loader": "^13.0.5", |
||||
"vue-router": "^3.0.1", |
||||
"vue-template-compiler": "^2.5.15", |
||||
"webpack": "^3.6.0", |
||||
"webpack-chunk-hash": "^0.5.0", |
||||
"webpack-dev-server": "^2.8.2", |
||||
"webpack-merge": "^4.1.1" |
||||
}, |
||||
"dependencies": { |
||||
"add-dom-event-listener": "^1.0.2", |
||||
"array-tree-filter": "^2.1.0", |
||||
"async-validator": "^1.8.2", |
||||
"babel-helper-vue-jsx-merge-props": "^2.0.3", |
||||
"babel-runtime": "6.x", |
||||
"classnames": "^2.2.5", |
||||
"component-classes": "^1.2.6", |
||||
"css-animation": "^1.4.1", |
||||
"dom-align": "^1.6.7", |
||||
"dom-closest": "^0.2.0", |
||||
"dom-scroll-into-view": "^1.2.1", |
||||
"enquire.js": "^2.1.6", |
||||
"is-negative-zero": "^2.0.0", |
||||
"lodash": "^4.17.5", |
||||
"moment": "^2.21.0", |
||||
"omit.js": "^1.0.0", |
||||
"shallow-equal": "^1.0.0", |
||||
"shallowequal": "^1.0.2", |
||||
"warning": "^3.0.0" |
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue