diff --git a/common/http.interceptor.js b/common/http.interceptor.js
index 8f0ee75..82a2f35 100644
--- a/common/http.interceptor.js
+++ b/common/http.interceptor.js
@@ -41,7 +41,7 @@ const install = (Vue, vm) => {
 		// 方式四,如果token放在了Storage本地存储中,拦截是每次请求都执行的
 		// 所以哪怕您重新登录修改了Storage,下一次的请求将会是最新值
 		// const token = uni.getStorageSync('token');
-		const token = "Bearer b85a1a24553c4f6fa374e18539daf70d"
+		const token = "Bearer aca170b01b4b4c88b3629fde91a3b2b7"
 		// console.log("我是token", token)
 		config.header.Authorization = token; 
 		// #ifdef H5
diff --git a/pages_teacher/teacher_teachers/components/slander.vue b/pages_teacher/teacher_teachers/components/slander.vue
new file mode 100644
index 0000000..1543c3f
--- /dev/null
+++ b/pages_teacher/teacher_teachers/components/slander.vue
@@ -0,0 +1,210 @@
+<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 class="view_left_pd" @click="arrow_xl2">
+						{{categorize}}
+						<u-icon name="arrow-down" size="22" class="pd_icon"></u-icon>
+						<view class="pull_DownTow" v-if="arrowDown">
+							<view v-for="(item,index) in options2 " :key="index" @click="Classification(item.id)">{{item.name}}</view>
+						</view>
+					</view>
+				</view>
+				<!-- 口语主体 -->
+				<view v-for="(item,index) in slander" :key="index">
+					<view class="unite">{{item.label}}</view>
+					<view class="slander_for">
+						<view class="slander_behavior" v-for="(items,indexs) in item.list" :key='indexs'>
+							<view class="slander_left">{{items.topicEn}}</view>
+							<view style="display: flex;">
+								<view class="slander_an">串题</view>
+								<view class="slander_an blue">跟读</view>
+								<view class="slander_an blue">模考</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'
+					}
+				],
+				options2:[
+					{
+						id:1,
+						name:'环境类'
+					},
+					{
+						id:2,
+						name:'学习类'
+					}
+				],
+			}
+		},
+		onLoad() {
+			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()
+					 }
+				 })
+			},
+			// 下拉然后更新里面的值
+			Classification(id){
+				this.options2.forEach(item=>{
+					if(item.id == id){
+						this.categorize =item.name
+					}
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	
+	.view_left {
+		display: flex;
+		justify-content: left;
+		margin-top: 20rpx;
+	}
+	
+	.view_left_pd {
+		position: relative;
+		padding: 12rpx 32rpx;
+		background: #FFFFFF;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+		margin-right: 15rpx;
+		font-size: 24rpx;
+	}
+	.unite {
+		font-size: 28rpx;
+		font-family: 'PingFang';
+		font-weight: 800;
+		color: #2E4975;
+		margin: 26rpx 0rpx;
+	}
+	.slander_for {
+		background: #FFFFFF;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+		padding: 0 30rpx;
+	}
+	.slander_behavior {
+		display: flex;
+		justify-content: space-between;
+		padding: 20rpx 0rpx;
+		border-bottom: 2rpx solid #F2F2F2;
+	}
+	.slander_left {
+		width: 328rpx;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+		overflow: hidden
+	}
+	.pull_DownTow{
+	width: 150rpx;
+	position: absolute;
+	bottom: -133rpx;
+	left: 50%;
+	margin-left: -72rpx;
+	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;
+	text-align: center;
+	view {
+		padding: 15rpx 0rpx;
+		border-bottom: 2rpx solid #F2F2F2;
+	}
+		
+	}
+	.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;
+	}
+</style>
diff --git a/pages_teacher/teacher_teachers/teacher_writeadd.vue b/pages_teacher/teacher_teachers/teacher_writeadd.vue
index 6f63652..7c9ef60 100644
--- a/pages_teacher/teacher_teachers/teacher_writeadd.vue
+++ b/pages_teacher/teacher_teachers/teacher_writeadd.vue
@@ -15,6 +15,7 @@
 			<swiper :interval="5000" :duration="1000" is-scroll="true" :current="current" @change="updateCurrent" class="swiper">
 				<!-- 口语 -->
 				<swiper-item>
+					<slander></slander>
 				</swiper-item>
 				<!-- 写作 -->
 				<swiper-item>
@@ -166,23 +167,10 @@
 <script>
 	import audiology from './components/audiology.vue'
 	import reading from './components/reading.vue'
+	import slander from './components/slander.vue'
 	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
-				},
 				// 导航栏
 				list: [{
 						name: '口语'
@@ -201,87 +189,43 @@
 					name: '1',
 					disabled: false
 				}],
-				//口语
-				slander: [],
-				// 口语下拉框
-				options:[
-					{
-						id:1,
-						name:'Part1'
-					},
-					{
-						id:2,
-						name:'Part2'
-					}
-				],
-				options2:[
-					{
-						id:1,
-						name:'环境类'
-					},
-					{
-						id:2,
-						name:'学习类'
-					}
-				],
-				arrowDown:false,
-				categorize:'分类',
 				// 写作
 				Compose: [],
 				num:0,
 				// 下拉框的v-if布尔值
-				arrow:false,
-				selectedOption:'Part1',
 				radioValue: '',
 				part1: true,
 				current: 0,
 				search: true,
 				listType: [],
 				idList: [],
-				
-				
-
 			}
 		},
 		components:{
 			audiology,
-			reading
+			reading,
+			slander
 		},
 		onLoad() {
-			this.getList()
-			this.getCompose()
+			// this.getCompose()
 		},
 		methods: {
 			upType(index, num) {
 				this.listType.splice(index, 1, num)
 			},
-			// 口语接口
-			getList() {
-				let add ={"key":"","pageNum":0,"mode":"home","part":"part1","order":"0","type":"","isStudy":0,"isFavorite":0,"isEvlua":0,"isFun":0,"level":0,"isNew":0}
-				this.$u.post('https://api.admin-v2.langsi.online/admin-api/speaking/topic/home/list',add).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]
-						}
-					})
-				})
-			},
 			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)
-					}
-				})
-			},
+			// 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) {
@@ -297,37 +241,7 @@
 					this.search = true
 				} else {
 					this.search = false
-
 				}
-
-			},
-			//下拉显示下拉框
-			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()
-				 }
-			 })
-		},
-			Classification(id){
-				this.options2.forEach(item=>{
-					if(item.id == id){
-						this.categorize =item.name
-					}
-				})
 			},
 			radioGroupChange() {