| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 
							- <template>
 
-   <view
 
-       class="u-row"
 
-       ref="u-row"
 
-       :style="[rowStyle]"
 
-       @tap="clickHandler"
 
-   >
 
-     <slot/>
 
-   </view>
 
- </template>
 
- <script>
 
- // #ifdef APP-NVUE
 
- const dom = uni.requireNativePlugin('dom')
 
- // #endif
 
- import props from './props.js';
 
- /**
 
-  * Row 栅格系统中的行
 
-  * @description 通过基础的 12 分栏,迅速简便地创建布局
 
-  * @tutorial https://www.uviewui.com/components/layout.html
 
-  * @property {String | Number}  gutter    栅格间隔,左右各为此值的一半,单位px  (默认 0 )
 
-  * @property {String}      justify    水平排列方式(微信小程序暂不支持) 可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`)  (默认 'start' )
 
-  * @property {String}      align    垂直排列方式 (默认 'center' )
 
-  * @property {Object}      customStyle  定义需要用到的外部样式
 
-  *
 
-  * @event {Function} click row被点击
 
-  * @example <u-row justify="space-between" customStyle="margin-bottom: 10px"></u-row>
 
-  */
 
- export default {
 
-   name: "u-row",
 
-   mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
 
-   data() {
 
-     return {}
 
-   },
 
-   computed: {
 
-     uJustify() {
 
-       if (this.justify == 'end' || this.justify == 'start') return 'flex-' + this.justify
 
-       else if (this.justify == 'around' || this.justify == 'between') return 'space-' + this.justify
 
-       else return this.justify
 
-     },
 
-     uAlignItem() {
 
-       if (this.align == 'top') return 'flex-start'
 
-       if (this.align == 'bottom') return 'flex-end'
 
-       else return this.align
 
-     },
 
-     rowStyle() {
 
-       const style = {
 
-         alignItems: this.uAlignItem,
 
-         justifyContent: this.uJustify
 
-       }
 
-       // 通过给u-row左右两边的负外边距,消除u-col在有gutter时,第一个和最后一个元素的左内边距和右内边距造成的影响
 
-       if (this.gutter) {
 
-         style.marginLeft = uni.$u.addUnit(-Number(this.gutter) / 2)
 
-         style.marginRight = uni.$u.addUnit(-Number(this.gutter) / 2)
 
-       }
 
-       return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
 
-     }
 
-   },
 
-   methods: {
 
-     clickHandler(e) {
 
-       this.$emit('click')
 
-     },
 
-     async getComponentWidth() {
 
-       // 延时一定时间,以确保节点渲染完成
 
-       await uni.$u.sleep()
 
-       return new Promise(resolve => {
 
-         // uView封装的获取节点的方法,详见文档
 
-         // #ifndef APP-NVUE
 
-         this.$uGetRect('.u-row').then(res => {
 
-           resolve(res.width)
 
-         })
 
-         // #endif
 
-         // #ifdef APP-NVUE
 
-         // nvue的dom模块用于获取节点
 
-         dom.getComponentRect(this.$refs['u-row'], (res) => {
 
-           resolve(res.size.width)
 
-         })
 
-         // #endif
 
-       })
 
-     },
 
-   }
 
- }
 
- </script>
 
- <style lang="scss" scoped>
 
- @import "../../libs/css/components.scss";
 
- .u-row {
 
-   @include flex;
 
- }
 
- </style>
 
 
  |