修改口语写作阅读听力
This commit is contained in:
		
							parent
							
								
									78f5e329b9
								
							
						
					
					
						commit
						aed068f967
					
				| 
						 | 
				
			
			@ -35,9 +35,6 @@
 | 
			
		|||
						<view class="partshow" v-if="tk==partitem.id">
 | 
			
		||||
							<view class="Part2" v-for="(quesitem,quesindex) in partitem.modules" :key="quesindex">
 | 
			
		||||
								<view class="imaflex">
 | 
			
		||||
									<view class="image">
 | 
			
		||||
										<image src="http://tmp/IFVuR12hLLNO034931f24322ab271b1f57fdf626bcbf.png" mode="">
 | 
			
		||||
									</view>
 | 
			
		||||
									<view>{{quesitem.typeText}}</view>
 | 
			
		||||
								</view>
 | 
			
		||||
								<view>
 | 
			
		||||
| 
						 | 
				
			
			@ -94,32 +91,51 @@
 | 
			
		|||
				this.image = !this.image
 | 
			
		||||
				this.tk = id
 | 
			
		||||
				if (this.image == false) {
 | 
			
		||||
					this.tk = id
 | 
			
		||||
				}else {
 | 
			
		||||
					this.tk = null
 | 
			
		||||
				}
 | 
			
		||||
			},
 | 
			
		||||
			checkboxChange(parat, e) {
 | 
			
		||||
				if (e.value) {
 | 
			
		||||
					this.checked.push(parat.id)
 | 
			
		||||
					 const allItemsNoSubsets = parat.modules.every(item => !('subsets' in item));
 | 
			
		||||
					parat.modules.forEach(item=>{
 | 
			
		||||
						   this.$set(item, 'subsets', item.id);
 | 
			
		||||
						  item.subsets = item.id;
 | 
			
		||||
						this.subsets.push(item.id)
 | 
			
		||||
						console.log( item.subsets)
 | 
			
		||||
							})
 | 
			
		||||
					
 | 
			
		||||
				} else {
 | 
			
		||||
					let index = this.checked.indexOf(parat.id);
 | 
			
		||||
					if (index !== -1) {
 | 
			
		||||
						this.checked.splice(index, 1);
 | 
			
		||||
						parat.modules.forEach(item=>{
 | 
			
		||||
							    this.$delete(item, 'subsets');
 | 
			
		||||
							    const index = this.subsets.indexOf(item.id);
 | 
			
		||||
							    if (index !== -1) {
 | 
			
		||||
							        this.subsets.splice(index, 1);
 | 
			
		||||
							    }	
 | 
			
		||||
								})
 | 
			
		||||
								
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				console.log(this.checked)
 | 
			
		||||
				console.log(this.checked,'part数组')
 | 
			
		||||
				this.$forceUpdate()
 | 
			
		||||
 | 
			
		||||
			},
 | 
			
		||||
			checkoutzj(quesitem, id) {
 | 
			
		||||
				if (id.value) {
 | 
			
		||||
					this.subsets.push(quesitem.id)
 | 
			
		||||
					console.log(quesitem)
 | 
			
		||||
				} else {
 | 
			
		||||
					let index2 = this.subsets.indexOf(quesitem.id);
 | 
			
		||||
					if (index2 !== -1) {
 | 
			
		||||
						this.subsets.splice(index2, 1);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				console.log(this.subsets)
 | 
			
		||||
				console.log(this.subsets,'题型数组')
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
<template>
 | 
			
		||||
	<!-- 阅读 -->
 | 
			
		||||
	<!-- 听力 -->
 | 
			
		||||
	<view>
 | 
			
		||||
		<!-- 外层循环 -->
 | 
			
		||||
		<view v-for="(item,index) in listHearing" :key="item.id">
 | 
			
		||||
| 
						 | 
				
			
			@ -9,15 +9,14 @@
 | 
			
		|||
			</view>
 | 
			
		||||
			<view class="substance">
 | 
			
		||||
				<!-- 渲染Text -->
 | 
			
		||||
				<text :class="{'active': itemActive[item.id] === TextIndex || TextIndex === 0}" v-for="(TextItem,TextIndex) in item.tests"
 | 
			
		||||
				 :key="TextIndex" @click="Bages_addActive(TextIndex,item.id)" class="zz">
 | 
			
		||||
				<text :class="{ 'active': itemActive[item.id] === TextIndex  }" v-for="(TextItem,TextIndex) in item.tests" :key="TextIndex"
 | 
			
		||||
				 @click="Bages_addActive(TextIndex,item.id) ">
 | 
			
		||||
					{{TextItem.name}}
 | 
			
		||||
				</text>
 | 
			
		||||
			</view>
 | 
			
		||||
			<!-- 渲染part -->
 | 
			
		||||
			<view v-for="(TextItem,TextIndex) in item.tests" :key="TextIndex">
 | 
			
		||||
 | 
			
		||||
				<view v-for="(partitem,partindex) in TextItem.parts" :key="partindex" v-if="itemActive[item.id] === TextIndex || TextIndex==0">
 | 
			
		||||
				<view v-for="(partitem,partindex) in TextItem.parts" :key="partindex" v-if="itemActive[item.id] === TextIndex">
 | 
			
		||||
					<view>
 | 
			
		||||
						<view class="Part1">
 | 
			
		||||
							<view class="imaflex" @click="icon(partitem.id)">
 | 
			
		||||
| 
						 | 
				
			
			@ -36,9 +35,6 @@
 | 
			
		|||
						<view class="partshow" v-if="tk==partitem.id">
 | 
			
		||||
							<view class="Part2" v-for="(quesitem,quesindex) in partitem.modules" :key="quesindex">
 | 
			
		||||
								<view class="imaflex">
 | 
			
		||||
									<view class="image">
 | 
			
		||||
										<image src="http://tmp/IFVuR12hLLNO034931f24322ab271b1f57fdf626bcbf.png" mode="">
 | 
			
		||||
									</view>
 | 
			
		||||
									<view>{{quesitem.typeText}}</view>
 | 
			
		||||
								</view>
 | 
			
		||||
								<view>
 | 
			
		||||
| 
						 | 
				
			
			@ -57,17 +53,12 @@
 | 
			
		|||
	export default {
 | 
			
		||||
		data() {
 | 
			
		||||
			return {
 | 
			
		||||
				selepad: [],
 | 
			
		||||
				listHearing: [],
 | 
			
		||||
				checked: [],
 | 
			
		||||
				subsets: [],
 | 
			
		||||
				itemActive: {},
 | 
			
		||||
				image: true,
 | 
			
		||||
				tk: null,
 | 
			
		||||
				list2: [{
 | 
			
		||||
					value: '选项1',
 | 
			
		||||
					id: '1'
 | 
			
		||||
				}],
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
| 
						 | 
				
			
			@ -75,52 +66,76 @@
 | 
			
		|||
			this.hearing()
 | 
			
		||||
		},
 | 
			
		||||
		methods: {
 | 
			
		||||
			// 阅读调取接口渲染
 | 
			
		||||
			// 听力调取接口渲染
 | 
			
		||||
			hearing() {
 | 
			
		||||
				this.$u.get('https://api.admin-v2.langsi.online/admin-api/ielts/paper/list', {
 | 
			
		||||
					classify: 2
 | 
			
		||||
				}).then(res => {
 | 
			
		||||
					this.listHearing = res.data
 | 
			
		||||
					let activeindex = {}
 | 
			
		||||
					let arr = res.data
 | 
			
		||||
					for (let parper of arr) {
 | 
			
		||||
						let test = parper.tests[0]
 | 
			
		||||
						activeindex[parper.id] = 0
 | 
			
		||||
					}
 | 
			
		||||
					this.itemActive = activeindex
 | 
			
		||||
				})
 | 
			
		||||
			},
 | 
			
		||||
			// 听力test点击事件
 | 
			
		||||
			Bages_addActive(textindex, pid) {
 | 
			
		||||
				this.itemActive[pid] = textindex
 | 
			
		||||
			Bages_addActive(TextIndex, id) {
 | 
			
		||||
				this.itemActive[id] = TextIndex
 | 
			
		||||
				this.$forceUpdate()
 | 
			
		||||
 | 
			
		||||
			},
 | 
			
		||||
			// 点击变化图表
 | 
			
		||||
			icon(id) {
 | 
			
		||||
				this.image = !this.image
 | 
			
		||||
				this.tk = id
 | 
			
		||||
				if (this.image == false) {
 | 
			
		||||
					this.tk = id
 | 
			
		||||
				}else {
 | 
			
		||||
					this.tk = null
 | 
			
		||||
				}
 | 
			
		||||
			},
 | 
			
		||||
			checkboxChange(parat, e) {
 | 
			
		||||
				if (e.value) {
 | 
			
		||||
					this.checked.push(parat.id)
 | 
			
		||||
					 const allItemsNoSubsets = parat.modules.every(item => !('subsets' in item));
 | 
			
		||||
					parat.modules.forEach(item=>{
 | 
			
		||||
						   this.$set(item, 'subsets', item.id);
 | 
			
		||||
						  item.subsets = item.id;
 | 
			
		||||
						this.subsets.push(item.id)
 | 
			
		||||
						console.log( item.subsets)
 | 
			
		||||
							})
 | 
			
		||||
					
 | 
			
		||||
				} else {
 | 
			
		||||
					let index = this.checked.indexOf(parat.id);
 | 
			
		||||
					if (index !== -1) {
 | 
			
		||||
						this.checked.splice(index, 1);
 | 
			
		||||
						parat.modules.forEach(item=>{
 | 
			
		||||
							    this.$delete(item, 'subsets');
 | 
			
		||||
							    const index = this.subsets.indexOf(item.id);
 | 
			
		||||
							    if (index !== -1) {
 | 
			
		||||
							        this.subsets.splice(index, 1);
 | 
			
		||||
							    }	
 | 
			
		||||
								})
 | 
			
		||||
								
 | 
			
		||||
					}
 | 
			
		||||
				console.log(this.checked)
 | 
			
		||||
				}
 | 
			
		||||
				console.log(this.checked,'part数组')
 | 
			
		||||
				this.$forceUpdate()
 | 
			
		||||
 | 
			
		||||
			},
 | 
			
		||||
			checkoutzj(quesitem, id) {
 | 
			
		||||
				if (id.value) {
 | 
			
		||||
					this.subsets.push(quesitem.id)
 | 
			
		||||
					console.log(quesitem)
 | 
			
		||||
				} else {
 | 
			
		||||
					let index2 = this.subsets.indexOf(quesitem.id);
 | 
			
		||||
					if (index2 !== -1) {
 | 
			
		||||
						this.subsets.splice(index2, 1);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				console.log(this.subsets)
 | 
			
		||||
				console.log(this.subsets,'题型数组')
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -142,10 +157,12 @@
 | 
			
		|||
			background: #FFFFFF;
 | 
			
		||||
			border-radius: 12rpx 12rpx 12rpx 12rpx;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	.Part1 {
 | 
			
		||||
		display: flex;
 | 
			
		||||
		justify-content: space-between;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,8 +3,10 @@
 | 
			
		|||
	<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">
 | 
			
		||||
					<view>{{selectedOption}}</view>
 | 
			
		||||
					<u-icon name="arrow-down" size="22"></u-icon>
 | 
			
		||||
				</view>
 | 
			
		||||
				<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>
 | 
			
		||||
| 
						 | 
				
			
			@ -16,20 +18,33 @@
 | 
			
		|||
				<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 class="bottom_one" v-if="part2">
 | 
			
		||||
					<view class="blue">串题</view>
 | 
			
		||||
					<view class="blue">跟读</view>
 | 
			
		||||
					<view>模考</view>
 | 
			
		||||
				</view>
 | 
			
		||||
			</view>
 | 
			
		||||
		
 | 
			
		||||
				<!-- part1-->
 | 
			
		||||
				<view class="slander_for">
 | 
			
		||||
					<view class="slander_of" v-for="(items,indexs) in item.list" :key='indexs'>
 | 
			
		||||
						<view class="textual">
 | 
			
		||||
							{{items.topicEn}}
 | 
			
		||||
						</view>
 | 
			
		||||
						<view class="bottom_one" v-if="grizzly">
 | 
			
		||||
							<view class="blue">串题</view>
 | 
			
		||||
							<view class="blue">跟读</view>
 | 
			
		||||
							<view>模考</view>
 | 
			
		||||
						</view>
 | 
			
		||||
					</view>
 | 
			
		||||
				</view>
 | 
			
		||||
				<!-- part2-->
 | 
			
		||||
				<view class="slander_for" v-if="part2">
 | 
			
		||||
					<view class="slander_of" v-for="(items,indexs) in item.list" :key='indexs'>
 | 
			
		||||
						<view class="textual2">
 | 
			
		||||
							{{items.topicEn}}
 | 
			
		||||
						</view>
 | 
			
		||||
					</view>
 | 
			
		||||
				</view>
 | 
			
		||||
		</view>
 | 
			
		||||
	</view>
 | 
			
		||||
| 
						 | 
				
			
			@ -55,13 +70,14 @@
 | 
			
		|||
				},
 | 
			
		||||
				//口语
 | 
			
		||||
				slander: [],
 | 
			
		||||
				part2:false,
 | 
			
		||||
				grizzly:true,
 | 
			
		||||
				categorize: '分类',
 | 
			
		||||
				// 下拉框的v-if布尔值
 | 
			
		||||
				selectedOption: 'Part1',
 | 
			
		||||
				arrow: false,
 | 
			
		||||
				arrowDown: false,
 | 
			
		||||
				options:[
 | 
			
		||||
					{
 | 
			
		||||
				options: [{
 | 
			
		||||
						id: 1,
 | 
			
		||||
						name: 'Part1'
 | 
			
		||||
					},
 | 
			
		||||
| 
						 | 
				
			
			@ -103,9 +119,13 @@
 | 
			
		|||
 | 
			
		||||
					} else if (id == 2) {
 | 
			
		||||
						this.postdata.part = "part2"
 | 
			
		||||
						this.part2=true
 | 
			
		||||
						this.grizzly = false
 | 
			
		||||
						this.getList()
 | 
			
		||||
					} else {
 | 
			
		||||
						this.postdata.part = "part1"
 | 
			
		||||
						this.part2= false
 | 
			
		||||
						this.grizzly = true
 | 
			
		||||
						this.getList()
 | 
			
		||||
					}
 | 
			
		||||
				})
 | 
			
		||||
| 
						 | 
				
			
			@ -115,12 +135,12 @@
 | 
			
		|||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
	
 | 
			
		||||
	.view_left {
 | 
			
		||||
		display: flex;
 | 
			
		||||
		justify-content: left;
 | 
			
		||||
		margin-top: 20rpx;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	.view_inuygs {
 | 
			
		||||
		display: flex;
 | 
			
		||||
		justify-content: space-between;
 | 
			
		||||
| 
						 | 
				
			
			@ -136,6 +156,7 @@
 | 
			
		|||
		font-size: 24rpx;
 | 
			
		||||
		color: #072F5A;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	.unite {
 | 
			
		||||
		font-size: 28rpx;
 | 
			
		||||
		font-family: 'PingFang';
 | 
			
		||||
| 
						 | 
				
			
			@ -144,6 +165,7 @@
 | 
			
		|||
 | 
			
		||||
		margin-right: 20rpx;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	.pull_Down {
 | 
			
		||||
		position: absolute;
 | 
			
		||||
		bottom: -130rpx;
 | 
			
		||||
| 
						 | 
				
			
			@ -153,23 +175,23 @@
 | 
			
		|||
		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;
 | 
			
		||||
| 
						 | 
				
			
			@ -177,27 +199,51 @@
 | 
			
		|||
		margin-left: 12rpx;
 | 
			
		||||
		color: #65748C;
 | 
			
		||||
	}
 | 
			
		||||
	.blue {
 | 
			
		||||
		background: rgba(45,124,230,0.1);
 | 
			
		||||
		color: #2D7CE6;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	.slander_for {
 | 
			
		||||
		background-color: #fff;
 | 
			
		||||
		border-radius: 20rpx 20rpx 20rpx 20rpx;
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	.slander_of {
 | 
			
		||||
		display: flex;
 | 
			
		||||
		align-items: center;
 | 
			
		||||
		justify-content: space-between;
 | 
			
		||||
		background-color: #fff;
 | 
			
		||||
		padding: 24rpx 0;
 | 
			
		||||
		margin: 0 20rpx;
 | 
			
		||||
		border-bottom: 2rpx solid #F2F2F2;
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	.textual {
 | 
			
		||||
		width: 290rpx;
 | 
			
		||||
			height: 80rpx;
 | 
			
		||||
		display: -webkit-box;
 | 
			
		||||
		-webkit-box-orient: vertical;
 | 
			
		||||
		overflow: hidden;
 | 
			
		||||
		-webkit-line-clamp: 2;
 | 
			
		||||
		  
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	.bottom_one {
 | 
			
		||||
		display: flex;
 | 
			
		||||
	
 | 
			
		||||
		view {
 | 
			
		||||
			padding: 6rpx 18rpx;
 | 
			
		||||
			background: #F4F4F4;
 | 
			
		||||
			border-radius: 12rpx 12rpx 12rpx 12rpx;
 | 
			
		||||
			font-size: 20rpx;
 | 
			
		||||
			font-weight: 500;
 | 
			
		||||
			color: rgba(101,116,140,0.8);
 | 
			
		||||
			margin-left: 15rpx;
 | 
			
		||||
		}	
 | 
			
		||||
		.blue {
 | 
			
		||||
		background: rgba(45, 124, 230, 0.1);
 | 
			
		||||
		color: #2D7CE6;
 | 
			
		||||
	}
 | 
			
		||||
	}
 | 
			
		||||
	.pull_down{
 | 
			
		||||
		display: flex;
 | 
			
		||||
		justify-content: space-between;
 | 
			
		||||
		width: 100rpx;
 | 
			
		||||
		font-size: 24rpx;
 | 
			
		||||
	}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,54 @@
 | 
			
		|||
			<swiper :interval="5000" :duration="1000" is-scroll="true" :current="current" @change="updateCurrent" class="swiper">
 | 
			
		||||
				<!-- 口语 -->
 | 
			
		||||
				<swiper-item style="height: 300rpx;">
 | 
			
		||||
					<slander></slander>
 | 
			
		||||
					<view>
 | 
			
		||||
						<view class="view_left">
 | 
			
		||||
							<view class="view_left_pd" @click="arrow_xl">
 | 
			
		||||
								<view class="pull_down">
 | 
			
		||||
									<view>{{selectedOption}}</view>
 | 
			
		||||
									<u-icon name="arrow-down" size="22"></u-icon>
 | 
			
		||||
								</view>
 | 
			
		||||
								<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 class="bottom_one" v-if="part2">
 | 
			
		||||
									<view class="blue">串题</view>
 | 
			
		||||
									<view class="blue">跟读</view>
 | 
			
		||||
									<view>模考</view>
 | 
			
		||||
								</view>
 | 
			
		||||
							</view>
 | 
			
		||||
						
 | 
			
		||||
								<!-- part1-->
 | 
			
		||||
								<view class="slander_for">
 | 
			
		||||
									<view class="slander_of" v-for="(items,indexs) in item.list" :key='indexs'>
 | 
			
		||||
										<view class="textual">
 | 
			
		||||
											{{items.topicEn}}
 | 
			
		||||
										</view>
 | 
			
		||||
										<view class="bottom_one" v-if="grizzly">
 | 
			
		||||
											<view class="blue">串题</view>
 | 
			
		||||
											<view class="blue">跟读</view>
 | 
			
		||||
											<view>模考</view>
 | 
			
		||||
										</view>
 | 
			
		||||
									</view>
 | 
			
		||||
								</view>
 | 
			
		||||
								<!-- part2-->
 | 
			
		||||
								<view class="slander_for" v-if="part2">
 | 
			
		||||
									<view class="slander_of" v-for="(items,indexs) in item.list" :key='indexs'>
 | 
			
		||||
										<view class="textual2">
 | 
			
		||||
											{{items.topicEn}}
 | 
			
		||||
										</view>
 | 
			
		||||
									</view>
 | 
			
		||||
								</view>
 | 
			
		||||
						</view>
 | 
			
		||||
					</view>
 | 
			
		||||
				</swiper-item>
 | 
			
		||||
				<!-- 写作 -->
 | 
			
		||||
				<swiper-item>
 | 
			
		||||
| 
						 | 
				
			
			@ -79,14 +126,49 @@
 | 
			
		|||
				search: true,
 | 
			
		||||
				listType: [],
 | 
			
		||||
				idList: [],
 | 
			
		||||
				// 口语
 | 
			
		||||
				postdata: {
 | 
			
		||||
					"key": "",
 | 
			
		||||
					"pageNum": 0,
 | 
			
		||||
					"mode": "home",
 | 
			
		||||
					"part": "part1",
 | 
			
		||||
					"order": "0",
 | 
			
		||||
					"type": "",
 | 
			
		||||
					"isStudy": 0,
 | 
			
		||||
					"isFavorite": 0,
 | 
			
		||||
					"isEvlua": 0,
 | 
			
		||||
					"isFun": 0,
 | 
			
		||||
					"level": 0,
 | 
			
		||||
					"isNew": 0
 | 
			
		||||
				},
 | 
			
		||||
				//口语
 | 
			
		||||
				slander: [],
 | 
			
		||||
				part2:false,
 | 
			
		||||
				grizzly:true,
 | 
			
		||||
				categorize: '分类',
 | 
			
		||||
				// 下拉框的v-if布尔值
 | 
			
		||||
				selectedOption: 'Part1',
 | 
			
		||||
				arrow: false,
 | 
			
		||||
				arrowDown: false,
 | 
			
		||||
				options: [{
 | 
			
		||||
						id: 1,
 | 
			
		||||
						name: 'Part1'
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						id: 2,
 | 
			
		||||
						name: 'Part2'
 | 
			
		||||
					}
 | 
			
		||||
				],
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		components:{
 | 
			
		||||
			audiology,
 | 
			
		||||
			reading,
 | 
			
		||||
			slander,
 | 
			
		||||
			compose
 | 
			
		||||
		},
 | 
			
		||||
		created() {
 | 
			
		||||
			this.getList()
 | 
			
		||||
		},
 | 
			
		||||
		methods: {
 | 
			
		||||
			upType(index, num) {
 | 
			
		||||
				this.listType.splice(index, 1, num)
 | 
			
		||||
| 
						 | 
				
			
			@ -94,16 +176,6 @@
 | 
			
		|||
			change(index) {
 | 
			
		||||
				this.current = index;
 | 
			
		||||
			},
 | 
			
		||||
			//写作接口
 | 
			
		||||
			// getCompose() {
 | 
			
		||||
			// 	this.$u.post('https://api.admin-v2.langsi.online/admin-api/speaking/topic/home/list').then(res => {
 | 
			
		||||
			// 		this.Compose = res.data
 | 
			
		||||
			// 		console.log(this.Compose)
 | 
			
		||||
			// 		for (let i = 0; i < res.data.length; i++) {
 | 
			
		||||
			// 			this.listType.push(1)
 | 
			
		||||
			// 		}
 | 
			
		||||
			// 	})
 | 
			
		||||
			// },
 | 
			
		||||
			// 选中某个单选框时,由radio时触发
 | 
			
		||||
			radioCheck(index) {
 | 
			
		||||
				if (this.radioValue == this.list2[index].id) {
 | 
			
		||||
| 
						 | 
				
			
			@ -121,6 +193,43 @@
 | 
			
		|||
					this.search = false
 | 
			
		||||
				}
 | 
			
		||||
			},
 | 
			
		||||
			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.part2=true
 | 
			
		||||
						this.grizzly = false
 | 
			
		||||
						this.getList()
 | 
			
		||||
					} else {
 | 
			
		||||
						this.postdata.part = "part1"
 | 
			
		||||
						this.part2= false
 | 
			
		||||
						this.grizzly = true
 | 
			
		||||
						this.getList()
 | 
			
		||||
					}
 | 
			
		||||
				})
 | 
			
		||||
			},
 | 
			
		||||
			radioGroupChange() {
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			@ -136,7 +245,6 @@
 | 
			
		|||
 | 
			
		||||
	.view_body {
 | 
			
		||||
		height: 89vh;
 | 
			
		||||
		overflow-y: auto;
 | 
			
		||||
		width: 91.3%;
 | 
			
		||||
		margin: 0 auto;
 | 
			
		||||
		border-radius: 0rpx 0rpx 0rpx 0rpx;
 | 
			
		||||
| 
						 | 
				
			
			@ -295,17 +403,132 @@
 | 
			
		|||
			white-space: nowrap;
 | 
			
		||||
			overflow: hidden
 | 
			
		||||
		}
 | 
			
		||||
		.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;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		.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;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		.slander_for {
 | 
			
		||||
			background-color: #fff;
 | 
			
		||||
			border-radius: 20rpx 20rpx 20rpx 20rpx;
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		.slander_of {
 | 
			
		||||
			display: flex;
 | 
			
		||||
			align-items: center;
 | 
			
		||||
			justify-content: space-between;
 | 
			
		||||
			padding: 24rpx 0;
 | 
			
		||||
			margin: 0 20rpx;
 | 
			
		||||
			border-bottom: 2rpx solid #F2F2F2;
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		.textual {
 | 
			
		||||
			width: 290rpx;
 | 
			
		||||
			display: -webkit-box;
 | 
			
		||||
			-webkit-box-orient: vertical;
 | 
			
		||||
			overflow: hidden;
 | 
			
		||||
			-webkit-line-clamp: 2;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		.bottom_one {
 | 
			
		||||
			display: flex;
 | 
			
		||||
			view {
 | 
			
		||||
				padding: 6rpx 18rpx;
 | 
			
		||||
				background: #F4F4F4;
 | 
			
		||||
				border-radius: 12rpx 12rpx 12rpx 12rpx;
 | 
			
		||||
				font-size: 20rpx;
 | 
			
		||||
				font-weight: 500;
 | 
			
		||||
				color: rgba(101,116,140,0.8);
 | 
			
		||||
				margin-left: 15rpx;
 | 
			
		||||
			}	
 | 
			
		||||
			.blue {
 | 
			
		||||
			background: rgba(45, 124, 230, 0.1);
 | 
			
		||||
			color: #2D7CE6;
 | 
			
		||||
		}
 | 
			
		||||
		}
 | 
			
		||||
		.pull_down{
 | 
			
		||||
			display: flex;
 | 
			
		||||
			justify-content: space-between;
 | 
			
		||||
			width: 100rpx;
 | 
			
		||||
			font-size: 24rpx;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	.footer {
 | 
			
		||||
		position: fixed;
 | 
			
		||||
		bottom: 0;
 | 
			
		||||
		width: 100%;
 | 
			
		||||
		background: #FFFFFF;
 | 
			
		||||
		box-shadow: 0rpx -6rpx 14rpx 0rpx rgba(177, 177, 177, 0.25);
 | 
			
		||||
		padding: 30rpx 32rpx;
 | 
			
		||||
	}
 | 
			
		||||
	.footer2{
 | 
			
		||||
		position: fixed;
 | 
			
		||||
		bottom: 0;
 | 
			
		||||
		width: 100%;
 | 
			
		||||
		background: #FFFFFF;
 | 
			
		||||
		box-shadow: 0rpx -6rpx 14rpx 0rpx rgba(177, 177, 177, 0.25);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user