From 60dfd8df47c70228ad4c4bc9eb9af7ff06d4adc5 Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Wed, 16 Nov 2016 12:07:27 +0800 Subject: [PATCH] Col: remove vue jsx spread --- package.json | 2 +- packages/col/src/col.js | 71 ++++++++++++++++++++++++++++++++++++ packages/col/src/col.vue | 79 ---------------------------------------- 3 files changed, 72 insertions(+), 80 deletions(-) create mode 100644 packages/col/src/col.js delete mode 100644 packages/col/src/col.vue diff --git a/package.json b/package.json index 88a8b3f02..ec05f7f78 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ }, "dependencies": { "async-validator": "^1.6.6", + "babel-helper-vue-jsx-merge-props": "^2.0.0", "deepmerge": "^1.2.0", "throttle-debounce": "^1.0.1", "vue-popup": "^0.2.10", @@ -55,7 +56,6 @@ "devDependencies": { "babel-cli": "^6.14.0", "babel-core": "^6.14.0", - "babel-helper-vue-jsx-merge-props": "^2.0.0", "babel-loader": "^6.2.5", "babel-plugin-module-resolver": "^2.2.0", "babel-plugin-syntax-jsx": "^6.8.0", diff --git a/packages/col/src/col.js b/packages/col/src/col.js new file mode 100644 index 000000000..787f86029 --- /dev/null +++ b/packages/col/src/col.js @@ -0,0 +1,71 @@ +export default { + name: 'ElCol', + + props: { + span: { + type: Number, + default: 24 + }, + offset: Number, + pull: Number, + push: Number, + xs: [Number, Object], + sm: [Number, Object], + md: [Number, Object], + lg: [Number, Object] + }, + + computed: { + gutter() { + return this.$parent.gutter; + }, + + style() { + var ret = {}; + + if (this.gutter) { + ret.paddingLeft = this.gutter / 2 + 'px'; + ret.paddingRight = ret.paddingLeft; + } + + return ret; + } + }, + render(h) { + let { style } = this; + let classList = []; + + ['span', 'offset', 'pull', 'push'].forEach(prop => { + if (this[prop]) { + classList.push( + prop !== 'span' + ? `el-col-${prop}-${this[prop]}` + : `el-col-${this[prop]}` + ); + } + }); + + ['xs', 'sm', 'md', 'lg'].forEach(size => { + if (typeof this[size] === 'number') { + classList.push(`el-col-${size}-${this[size]}`); + } else if (typeof this[size] === 'object') { + let props = this[size]; + Object.keys(props).forEach(prop => { + classList.push( + prop !== 'span' + ? `el-col-${size}-${prop}-${props[prop]}` + : `el-col-${size}-${props[prop]}` + ); + }); + } + }); + + return ( +
+ {this.$slots.default} +
+ ); + } +}; diff --git a/packages/col/src/col.vue b/packages/col/src/col.vue deleted file mode 100644 index 5af12793d..000000000 --- a/packages/col/src/col.vue +++ /dev/null @@ -1,79 +0,0 @@ -