diff --git a/example/project.config.json b/example/project.config.json index db449356..cd039eb6 100644 --- a/example/project.config.json +++ b/example/project.config.json @@ -48,12 +48,6 @@ "simulatorType": "wechat", "simulatorPluginLibVersion": {}, "condition": { - "search": { - "list": [] - }, - "conversation": { - "list": [] - }, "plugin": { "list": [] }, @@ -391,6 +385,17 @@ "pathName": "pages/share-sheet/index", "query": "", "scene": null + }, + { + "name": "col", + "pathName": "pages/col/index", + "query": "", + "scene": null + }, + { + "name": "divider", + "pathName": "pages/divider/index", + "scene": null } ] } diff --git a/packages/col/index.ts b/packages/col/index.ts index 581d04ab..b5d66072 100644 --- a/packages/col/index.ts +++ b/packages/col/index.ts @@ -11,21 +11,4 @@ VantComponent({ span: Number, offset: Number, }, - - data: { - viewStyle: '', - }, - - methods: { - setGutter(gutter: number) { - const padding = `${gutter / 2}px`; - const viewStyle = gutter - ? `padding-left: ${padding}; padding-right: ${padding};` - : ''; - - if (viewStyle !== this.data.viewStyle) { - this.setData({ viewStyle }); - } - }, - }, }); diff --git a/packages/col/index.wxml b/packages/col/index.wxml index 52544f09..975348b6 100644 --- a/packages/col/index.wxml +++ b/packages/col/index.wxml @@ -1,8 +1,9 @@ + diff --git a/packages/col/index.wxs b/packages/col/index.wxs new file mode 100644 index 00000000..507c1cb9 --- /dev/null +++ b/packages/col/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + if (!data.gutter) { + return ''; + } + + return style({ + 'padding-right': addUnit(data.gutter / 2), + 'padding-left': addUnit(data.gutter / 2), + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/packages/row/index.ts b/packages/row/index.ts index de6f44a5..f765c815 100644 --- a/packages/row/index.ts +++ b/packages/row/index.ts @@ -6,8 +6,10 @@ VantComponent({ type: 'descendant', current: 'row', linked(target) { - if (this.data.gutter) { - target.setGutter(this.data.gutter); + const { gutter } = this.data; + + if (gutter) { + target.setData({ gutter }); } }, }, @@ -19,27 +21,10 @@ VantComponent({ }, }, - data: { - viewStyle: '', - }, - - mounted() { - if (this.data.gutter) { - this.setGutter(); - } - }, - methods: { setGutter() { - const { gutter } = this.data; - const margin = `-${Number(gutter) / 2}px`; - const viewStyle = gutter - ? `margin-right: ${margin}; margin-left: ${margin};` - : ''; - - this.setData({ viewStyle }); this.getRelationNodes('../col/index').forEach((col) => { - col.setGutter(this.data.gutter); + col.setData(this.data.gutter); }); }, }, diff --git a/packages/row/index.wxml b/packages/row/index.wxml index ab8fcf58..69a4359b 100644 --- a/packages/row/index.wxml +++ b/packages/row/index.wxml @@ -1,3 +1,5 @@ - + + + diff --git a/packages/row/index.wxs b/packages/row/index.wxs new file mode 100644 index 00000000..f5c59587 --- /dev/null +++ b/packages/row/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + if (!data.gutter) { + return ''; + } + + return style({ + 'margin-right': addUnit(-data.gutter / 2), + 'margin-left': addUnit(-data.gutter / 2), + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/packages/wxs/add-unit.wxs b/packages/wxs/add-unit.wxs index 52f18b55..4f33462f 100644 --- a/packages/wxs/add-unit.wxs +++ b/packages/wxs/add-unit.wxs @@ -1,5 +1,5 @@ /* eslint-disable */ -var REGEXP = getRegExp('^\d+(\.\d+)?$'); +var REGEXP = getRegExp('^-?\d+(\.\d+)?$'); function addUnit(value) { if (value == null) { diff --git a/packages/wxs/style.wxs b/packages/wxs/style.wxs index 3139cde4..c39c810f 100644 --- a/packages/wxs/style.wxs +++ b/packages/wxs/style.wxs @@ -6,7 +6,7 @@ function style(styles) { if (array.isArray(styles)) { return styles .filter(function (item) { - return item != null; + return item != null && item !== ''; }) .map(function (item) { return style(item); @@ -18,7 +18,7 @@ function style(styles) { return object .keys(styles) .filter(function (key) { - return styles[key] != null; + return styles[key] != null && styles[key] !== ''; }) .map(function (key) { return [key, [styles[key]]].join(':');