| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- <template>
 
-   <view class="u-drawdown">
 
-     <view
 
-       class="u-dropdown__menu"
 
-       :style="{
 
- 				height: $u.addUnit(height)
 
- 			}"
 
-       ref="u-dropdown__menu"
 
-     >
 
-       <view
 
-         class="u-dropdown__menu__item"
 
-         v-for="(item, index) in menuList"
 
-         :key="index"
 
-         @tap.stop="clickHandler(item, index)"
 
-       >
 
-         <view class="u-dropdown__menu__item__content">
 
-           <text
 
-             class="u-dropdown__menu__item__content__text"
 
-             :style="[index === current ? activeStyle : inactiveStyle]"
 
-           >{{item.title}}</text>
 
-           <view
 
-             class="u-dropdown__menu__item__content__arrow"
 
-             :class="[index === current && 'u-dropdown__menu__item__content__arrow--rotate']"
 
-           >
 
-             <u-icon
 
-               :name="menuIcon"
 
-               :size="$u.addUnit(menuIconSize)"
 
-             ></u-icon>
 
-           </view>
 
-         </view>
 
-       </view>
 
-     </view>
 
-     <view class="u-dropdown__content">
 
-       <slot />
 
-     </view>
 
-   </view>
 
- </template>
 
- <script>
 
- import props from './props.js';
 
- /**
 
-  * Dropdown
 
-  * @description
 
-  * @tutorial url
 
-  * @property {String}
 
-  * @event {Function}
 
-  * @example
 
-  */
 
- export default {
 
-   name: 'u-dropdown',
 
-   mixins: [uni.$u.mixin, props],
 
-   data() {
 
-     return {
 
-       // �˵�����
 
-       menuList: [],
 
-       current: 0
 
-     }
 
-   },
 
-   computed: {
 
-   
 
-   },
 
-   created() {
 
-     // �������������(u-dropdown-item)��this��������data��������������������С��������ѭ�����ö�����
 
-     this.children = [];
 
-   },
 
-   methods: {
 
-     clickHandler(item, index) {
 
-       this.children.map(child => {
 
-         if(child.title === item.title) {
 
-           // this.queryRect('u-dropdown__menu').then(size => {
 
-           child.$emit('click')
 
-           child.setContentAnimate(child.show ? 0 : 300)
 
-           child.show = !child.show
 
-           // })
 
-         } else {
 
-           child.show = false
 
-           child.setContentAnimate(0)
 
-         }
 
-       })
 
-     },
 
-     // ��ȡ��ǩ�ijߴ�λ��
 
-     queryRect(el) {
 
-       // #ifndef APP-NVUE
 
-       // $uGetRectΪuView�Դ��Ľڵ��ѯ����������ĵ����ܣ�https://www.uviewui.com/js/getRect.html
 
-       // ����ڲ�һ����this.$uGetRect�������Ϊthis.$u.getRect�����߹���һ�£����Ʋ�ͬ
 
-       return new Promise(resolve => {
 
-         this.$uGetRect(`.${el}`).then(size => {
 
-           resolve(size)
 
-         })
 
-       })
 
-       // #endif
 
-       
 
-       // #ifdef APP-NVUE
 
-       // nvue�£�ʹ��domģ���ѯԪ�ظ߶�
 
-       // ����һ��promise���õ��ô˷�����������ʹ��then�ص�
 
-       return new Promise(resolve => {
 
-         dom.getComponentRect(this.$refs[el], res => {
 
-           resolve(res.size)
 
-         })
 
-       })
 
-       // #endif
 
-     },
 
-   },
 
- }
 
- </script>
 
- <style lang="scss">
 
- @import '../../libs/css/components.scss';
 
- .u-dropdown {
 
-   
 
-   &__menu {
 
-     @include flex;
 
-     
 
-     &__item {
 
-       flex: 1;
 
-       @include flex;
 
-       justify-content: center;
 
-       
 
-       &__content {
 
-         @include flex;
 
-         align-items: center;
 
-       }
 
-     }
 
-   }
 
- }
 
- </style>
 
 
  |