| 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';		export default {		name: 'u-dropdown',		mixins: [uni.$u.mixin, props],		data() {			return {								menuList: [],				current: 0			}		},		computed: {				},		created() {						this.children = [];		},		methods: {			clickHandler(item, index) {				this.children.map(child => {					if(child.title === item.title) {													child.$emit('click')							child.setContentAnimate(child.show ? 0 : 300)							child.show = !child.show											} else {						child.show = false						child.setContentAnimate(0)					}				})			},						queryRect(el) {																return new Promise(resolve => {					this.$uGetRect(`.${el}`).then(size => {						resolve(size)					})				})																							return new Promise(resolve => {					dom.getComponentRect(this.$refs[el], res => {						resolve(res.size)					})				})							},		},	}</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>
 |