<template> <!-- 口语下拉 --> <view> <view class="view_left"> <view class="view_left_pd" @click="arrow_xl"> {{selectedOption}} <u-icon name="arrow-down" size="22" class="pd_icon"></u-icon> <view class="pull_Down" v-if="arrow"> <view v-for="(item,index) in options" :key="index" @click="arrow_options(item.id)">{{item.name}}</view> </view> </view> </view> <!-- 口语主体 --> <view v-for="(item,index) in slander" :key="index"> <view class="view_inuygs"> <view class="header_part"> <view class="unite">{{item.label}}</view> </view> </view> <view v-for="(items,indexs) in item.list" :key='indexs'> <!-- 白色大背景边框 --> <view class="slander_for"> <view class="textual"> {{items.topicEn}} </view> <view class="bottom_one"> <view>串题</view> <view>跟读</view> <view>模考</view> </view> </view> </view> </view> </view> </template> <script> export default { data(){ return { postdata :{ "key": "", "pageNum": 0, "mode": "home", "part": "part1", "order": "0", "type": "", "isStudy": 0, "isFavorite": 0, "isEvlua": 0, "isFun": 0, "level": 0, "isNew": 0 }, //口语 slander: [], categorize:'分类', // 下拉框的v-if布尔值 selectedOption:'Part1', arrow:false, arrowDown:false, options:[ { id:1, name:'Part1' }, { id:2, name:'Part2' } ], } }, created() { this.getList() }, methods:{ getList() { this.$u.post('https://api.admin-v2.langsi.online/admin-api/speaking/topic/home/list',this.postdata).then(res => { let keyArr = Object.keys(res.data) let valueArr = Object.values(res.data) this.slander = keyArr.map((item, index) => { return { label: item, list: valueArr[index] } }) }) }, //下拉显示下拉框 arrow_xl(){ this.arrow=!this.arrow }, arrow_xl2(){ this.arrowDown=!this.arrowDown }, arrow_options(id){ this.options.forEach(item=>{ if(item.id== id){ this.selectedOption=item.name }else if(id==2){ this.postdata.part="part2" this.getList() }else{ this.postdata.part="part1" this.getList() } }) } } } </script> <style lang="scss" scoped> .view_left { display: flex; justify-content: left; margin-top: 20rpx; } .view_inuygs{ display: flex; justify-content: space-between; align-items: center; } .view_left_pd { position: relative; padding: 12rpx 32rpx; background: #FFFFFF; border-radius: 20rpx 20rpx 20rpx 20rpx; margin-right: 15rpx; font-size: 24rpx; color: #072F5A; } .unite { font-size: 28rpx; font-family: 'PingFang'; font-weight: 800; color: #2E4975; margin-right: 20rpx; } .pull_Down { position: absolute; bottom: -130rpx; left: 50%; margin-left: -79rpx; box-shadow: 0rpx 4rpx 10rpx 0rpx rgba(0,0,0,0.25); border-radius: 20rpx 20rpx 20rpx 20rpx; background: #FFFFFF; border-bottom: 2rpx solid #F2F2F2; view { padding: 15rpx 50rpx; border-bottom: 2rpx solid #F2F2F2; } } .pull_Down view:last-child { border: none; } .pd_icon { margin-left: 8rpx; } .header_part{ display: flex; align-items: center; margin: 26rpx 0rpx; } .slander_an{ padding: 6rpx 18rpx; background: #fff; border-radius: 12rpx 12rpx 12rpx 12rpx; margin-left: 12rpx; color: #65748C; } .blue { background: rgba(45,124,230,0.1); color: #2D7CE6; } .slander_for{ display: flex; align-items: center; justify-content: space-between; background-color: #fff; } .textual{ width: 290rpx; height: 80rpx; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; -webkit-line-clamp: 2; } .bottom_one{ display: flex; } </style>