smartmeter-app/pages_teacher/teacher_teachers/teacher_writeadd.vue
2023-12-08 15:26:16 +08:00

638 lines
13 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="view_template">
<view class="view_body">
<u-navbar :is-back="true" title='添加作业' title-color="#000" :border-bottom="false" :background="true" id="navbar">
</u-navbar>
<!-- 搜索 -->
<view class="view_search" v-if="search">
<u-search :show-action="false" :animation="true" bg-color="#fff" placeholder="搜索相关内容..." color="#3E97FF"></u-search>
</view>
<!--导航栏 -->
<view class="view_tabs">
<u-tabs :list="list" :is-scroll="false" :current="current" @change="change" active-color="#2D7CE6" bg-color="0"></u-tabs>
</view>
<!-- 轮播图 -->
<swiper :interval="5000" :duration="1000" is-scroll="true" :current="current" @change="updateCurrent" class="swiper">
<!-- 口语 -->
<swiper-item style="height: 300rpx;">
<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>
<compose></compose>
</swiper-item>
<!--听力 -->
<swiper-item>
<audiology></audiology>
</swiper-item>
<!-- 阅读 -->
<swiper-item>
<reading></reading>
</swiper-item>
</swiper>
</view>
<!-- 底部按钮 -->
<view :class="search== true ? 'footer2' : 'footer'">
<view class="footer_button">
<view :class="search==true ? 'button_andadd' :'button_show'">确定添加4</view>
<view class="footer_button_right" v-if="search">口语模考</view>
</view>
</view>
</view>
</view>
</template>
<script>
import audiology from './components/audiology.vue'
import reading from './components/reading.vue'
import slander from './components/slander.vue'
import compose from './components/compose.vue'
export default {
data() {
return {
// 导航栏
list: [{
name: '口语'
},
{
name: '写作'
},
{
name: '听力'
},
{
name: '阅读'
}
],
radio: [{
name: '1',
disabled: false
}],
// 写作
Compose: [],
num:0,
// 下拉框的v-if布尔值
radioValue: '',
part1: true,
current: 0,
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,
compose
},
created() {
this.getList()
},
methods: {
upType(index, num) {
this.listType.splice(index, 1, num)
},
change(index) {
this.current = index;
},
// 选中某个单选框时由radio时触发
radioCheck(index) {
if (this.radioValue == this.list2[index].id) {
this.radioValue = null
} else {
this.radioValue = this.list2[index].id
}
},
//轮播图滑动和tabs保持一致
updateCurrent(current, source) {
this.current = current.detail.current
if (this.current == 0) {
this.search = true
} else {
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() {
}
}
}
</script>
<style lang="scss" scoped>
.view_template {
width: 100%;
background: linear-gradient(183deg, #F0F6FF 0%, #FAFAFA 100%);
}
.view_body {
height: 89vh;
width: 91.3%;
margin: 0 auto;
border-radius: 0rpx 0rpx 0rpx 0rpx;
// padding: 32rpx;
.view_search {
height: 88rpx;
margin: 0 auto;
line-height: 88rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
}
.view_button {
border-radius: 12rpx 12rpx 12rpx 12rpx;
padding: 12rpx 24rpx;
font-size: 20rpx;
font-weight: 500;
color: rgba(101, 116, 140, 0.8);
}
.view_buttons {
background: #2D7CE6;
border-radius: 12rpx 12rpx 12rpx 12rpx;
padding: 12rpx 24rpx;
font-size: 20rpx;
font-weight: 500;
color: #FFFFFF;
}
.view_fff {
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
}
.view_Do {
display: flex;
justify-content: space-between;
padding: 28rpx 0rpx;
margin: 0 28rpx;
border-bottom: 2rpx solid #F2F2F2;
}
.view_pushbutton {
display: flex;
}
.grizzly {
background: #E1EEFF;
border-radius: 8rpx 8rpx 8rpx 8rpx;
font-size: 20rpx;
font-weight: 500;
color: #2D7CE6;
padding: 6rpx 18rpx;
margin-left: 12rpx;
}
.yellow {
background: #FFEBD7;
border-radius: 8rpx 8rpx 8rpx 8rpx;
font-size: 20rpx;
font-weight: 500;
color: #FB9734;
padding: 6rpx 18rpx;
margin-left: 12rpx;
}
.view_English {
display: flex;
font-size: 24rpx;
font-weight: 500;
color: #2E4975;
}
.active {
z-index: 9;
background:#2D7CE6;
color: #fff;
}
.slander {
height: 352rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
}
.slander_behavior {
display: flex;
justify-content: space-between;
padding: 20rpx 0rpx;
border-bottom: 2rpx solid #F2F2F2;
}
.slander_for {
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
padding: 0 30rpx;
}
.unite {
font-size: 28rpx;
font-family: 'PingFang';
font-weight: 800;
color: #2E4975;
margin: 26rpx 0rpx;
}
.slander_an {
background: #F4F4F4;
border-radius: 12rpx 12rpx 12rpx 12rpx;
font-size: 20rpx;
font-family: 'PingFang';
font-weight: 500;
color: rgba(101, 116, 140, 0.8);
padding: 10rpx;
margin-right: 15rpx;
}
.pd_icon {
margin-left: 8rpx;
}
.blue {
background: rgba(45, 124, 230, 0.1);
border-radius: 12rpx 12rpx 12rpx 12rpx;
color: #2D7CE6;
}
.part {
font-size: 28rpx;
font-family: 'PingFang';
font-weight: 500;
color: #2E4975;
}
.part2 {
font-size: 28rpx;
font-family: 'PingFang';
font-weight: 500;
color: #2E4975;
margin-left: 20rpx;
}
.swiper {
height: 80%;
}
swiper-item {
overflow: scroll;
}
.slander_left {
width: 328rpx;
text-overflow: ellipsis;
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);
padding: 30rpx 32rpx;
margin-top: 25rpx;
}
.footer_button {
display: flex;
justify-content: space-between;
}
.button_ky {
padding: 24rpx 52rpx;
border-radius: 104rpx 104rpx 104rpx 104rpx;
color: #2E4975;
background-color: #FAFAFA;
}
.button_andadd {
background: linear-gradient(180deg, #74AFFF 0%, #2D7CE6 100%);
border-radius: 104rpx 104rpx 104rpx 104rpx;
padding: 26rpx 125rpx;
color: #fff;
}
.button_show {
width: 100%;
background: linear-gradient(180deg, #74AFFF 0%, #2D7CE6 100%);
border-radius: 104rpx 104rpx 104rpx 104rpx;
padding: 26rpx 125rpx;
color: #fff;
text-align: center;
}
.view_fff_bottom {
margin-bottom: 54rpx;
}
.Task {
font-size: 24rpx;
font-weight: 500;
color: #2E4975;
}
.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;
}
.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_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 view:last-child {
border: none;
}
.sl_body {
background-color: #fff;
}
.footer_button_right {
padding: 24rpx 62rpx;
border: 1px solid #2D7CE6;
border-radius: 104rpx 104rpx 104rpx 104rpx;
color: #2D7CE6;
}
</style>