470 lines
11 KiB
Vue
470 lines
11 KiB
Vue
<template>
|
|
<view class="pagebox">
|
|
<u-navbar title="作业安排" :border-bottom="false" :background="bgc" title-color='#2E4975' title-size='36'
|
|
height='36'></u-navbar>
|
|
<view class="serchbox">
|
|
<view class="serchimg">
|
|
<image src="https://file.langsi.online/yasiimg/web/static/uVMACkynkipOxuTYDqm0">
|
|
|
|
</image>
|
|
</view>
|
|
<input type="text" v-model="searchKeyword" placeholder="搜索相关内容..." class="input"
|
|
placeholder-style="color:#C7CDD3" @input="search()">
|
|
</view>
|
|
<view class="checkbox">
|
|
<view class="chekcont">
|
|
时间排序
|
|
<view class="iconfont icon-arow_down"></view>
|
|
</view>
|
|
<view class="chekcont">
|
|
题库类型
|
|
<view class="iconfont icon-arow_down"></view>
|
|
</view>
|
|
<view class="chekcont">
|
|
状态
|
|
<view class="iconfont icon-arow_down"></view>
|
|
</view>
|
|
</view>
|
|
<view class="card_bigbox">
|
|
<view class="work_card" v-for="(item,index ) in workinfo" :key="index" @click="toworkdetail(item.id)"
|
|
:class="item.status === 1 ? 'act1' : (item.status === '2' ? 'act3' : 'default')">
|
|
<view class="work_card_top">
|
|
<view class="work_card_top_left">
|
|
<view class="work_card_top_left_img">
|
|
<image src="https://file.langsi.online/yasiimg/web/static/u07sCQb6mW6OSamVr1Va"></image>
|
|
</view>
|
|
<view class="txt" v-html="highlightSearch(item.name)">
|
|
|
|
</view>
|
|
|
|
</view>
|
|
<view class="work_card_top_right" :class="item.status == 1 ? 'act2' : ''">
|
|
进行中
|
|
</view>
|
|
</view>
|
|
<view class="work_card_cont_box">
|
|
<!-- v-if="indexs<3" -->
|
|
<view class="work_card_cont" v-for="(items,indexs ) in item.infos" :key="indexs" v-if="indexs<3">
|
|
<view class="work_card_cont_point"></view>
|
|
<view class="work_card_cont_text" v-if="items.classify==1||items.classify==2">
|
|
{{items.paperName}}-{{items.testName}}-{{items.partName}}
|
|
</view>
|
|
<view class="work_card_cont_text" v-if="items.classify==4" style="display: inline-flex;flex-wrap: nowrap;">
|
|
{{items.moduleName}}-{{items.partName}}-<view style="width:140rpx; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{items.questionName}}</view>-跟读
|
|
</view>
|
|
<view class="work_card_cont_text" v-if="items.classify==3">
|
|
{{items.paperName}}-{{items.testName}}-{{items.partName}}
|
|
</view>
|
|
<view class="work_card_cont_tag" v-if="items.classify==1"
|
|
style="background: rgba(27,225,178,0.1);color: #1BE1B2;">
|
|
听力
|
|
</view>
|
|
<view class="work_card_cont_tag" v-if="items.classify==2"
|
|
style="background: rgba(242,182,42,0.2);color: #F2AA02 ;">
|
|
阅读
|
|
</view>
|
|
<view class="work_card_cont_tag" v-if="items.classify==3"
|
|
style="background:rgba(63,122,242,0.2);color: #3F7AF2 ;">
|
|
写作
|
|
</view>
|
|
<view class="work_card_cont_tag" v-if="items.classify==4"
|
|
style="background: rgba(242,63,235,0.1);color: #F23FEB ;">
|
|
口语
|
|
</view>
|
|
|
|
</view>
|
|
<view class="work_card_cont" v-if="item.infos.length>3">
|
|
<view class="work_card_cont_point" style="margin-right: 10rpx;"></view>
|
|
<view class="work_card_cont_point" style="margin-right: 10rpx;"></view>
|
|
<view class="work_card_cont_point"></view>
|
|
</view>
|
|
</view>
|
|
<view class="work_card_info_box">
|
|
<view class="work_card_info_top">
|
|
<view class="work_card_info_topimg">
|
|
<image src="https://file.langsi.online/yasiimg/web/static/uw2jJ5BraHhwDDaIZ0MC"></image>
|
|
</view>
|
|
描述
|
|
</view>
|
|
<view class="work_card_info_bot">
|
|
{{item.des}}
|
|
</view>
|
|
</view>
|
|
<view class="work_card_info_box">
|
|
<view class="work_card_info_top">
|
|
<view class="work_card_info_topimg">
|
|
<image src="https://file.langsi.online/yasiimg/web/static/uhApaomh5maFP29oecp3">
|
|
|
|
</image>
|
|
</view>
|
|
时间
|
|
</view>
|
|
|
|
<view class="work_card_info_bot">
|
|
{{item.doneTime}}
|
|
<!-- {{ formatTimestamp(item.createTime) }} -->
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="zhanwei" style="width: 100%;height: 60rpx;">
|
|
|
|
</view>
|
|
<view class="botbtn" @click="addwork()">
|
|
<view class="btn">
|
|
添加作业
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
bgc: {
|
|
backgroundColor: "#F0F6FF",
|
|
},
|
|
isalready: true,
|
|
work: [{
|
|
"iswork": "0"
|
|
},
|
|
{
|
|
"iswork": "1"
|
|
},
|
|
{
|
|
"iswork": "2"
|
|
},
|
|
{
|
|
"iswork": "0"
|
|
}
|
|
],
|
|
classid: 0,
|
|
workinfo: [],
|
|
orgworkinfo: [],
|
|
searchKeyword: '',
|
|
}
|
|
},
|
|
onLoad(option) {
|
|
console.log(option);
|
|
this.classid = option.classId
|
|
// this.classid=15
|
|
this.getworklist()
|
|
},
|
|
methods: {
|
|
addwork(){
|
|
|
|
uni.navigateTo({
|
|
url: "/pages_teacher/teacher_teachers/teacher_addOperation"
|
|
}).then(res => {
|
|
|
|
}).catch(err => {
|
|
|
|
});
|
|
},
|
|
toworkdetail(id){
|
|
uni.navigateTo({
|
|
url: "/pages_teacher/teacher_teachers/operation_detail?id=" + id
|
|
}).then(res => {
|
|
|
|
}).catch(err => {
|
|
|
|
});
|
|
},
|
|
highlightSearch(name) {
|
|
// 使用正则表达式替换匹配到的 searchKeyword 为带有颜色的文字
|
|
if (this.searchKeyword) {
|
|
const regex = new RegExp(this.searchKeyword, 'gi');
|
|
return name.replace(regex, match => `<span style="color: #2D7CE6 ;">${match}</span>`);
|
|
}
|
|
return name;
|
|
},
|
|
formatTimestamp(timestamp) {
|
|
const date = new Date(timestamp);
|
|
const year = date.getFullYear();
|
|
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
const day = date.getDate().toString().padStart(2, '0');
|
|
const hours = date.getHours().toString().padStart(2, '0');
|
|
const minutes = date.getMinutes().toString().padStart(2, '0');
|
|
|
|
return `${year}-${month}-${day} ${hours}:${minutes}`;
|
|
},
|
|
|
|
getworklist() {
|
|
this.$u.get(`https://api.admin-v2.langsi.online/admin-api/classroom/work-record/list?classId=${this.classid}`).then(res => {
|
|
|
|
|
|
if (res.code == 0) {
|
|
this.workinfo = res.data
|
|
this.orgworkinfo = JSON.parse(JSON.stringify(res.data));
|
|
// this.classlist = res.data.list
|
|
// this.isloding = false
|
|
|
|
}
|
|
})
|
|
},
|
|
search() {
|
|
// 根据关键字过滤 this.classlist
|
|
if (this.searchKeyword !== '') {
|
|
const filteredList = JSON.parse(JSON.stringify(this.orgworkinfo)).filter(item => {
|
|
// 匹配 nickName 或者 id
|
|
return item.name.includes(this.searchKeyword) || item.des.includes(this.searchKeyword);
|
|
});
|
|
// 更新 this.classlist 为过滤后的列表
|
|
this.workinfo = filteredList;
|
|
} else {
|
|
this.fuwei();
|
|
}
|
|
},
|
|
fuwei() {
|
|
|
|
this.workinfo = JSON.parse(JSON.stringify(this.orgworkinfo));
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
page {
|
|
background: linear-gradient(183deg, #F0F6FF 0%, #FAFAFA 100%);
|
|
padding-bottom: 170rpx;
|
|
}
|
|
|
|
.pagebox {
|
|
padding: 0 32rpx;
|
|
|
|
.serchbox {
|
|
padding: 0 32rpx;
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
margin-top: 30rpx;
|
|
align-items: center;
|
|
width: 686rpx;
|
|
height: 88rpx;
|
|
background: #FFFFFF;
|
|
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
|
|
|
.serchimg {
|
|
width: 30.51rpx;
|
|
height: 32rpx;
|
|
margin-right: 24rpx;
|
|
}
|
|
|
|
.input {
|
|
margin: 0 auto;
|
|
width: 568rpx;
|
|
height: 88rpx;
|
|
border-radius: 30rpx;
|
|
// background-color: #f5f8fc;
|
|
// display: flex;
|
|
// justify-content: center;
|
|
// align-items: center;
|
|
// text-align: center;
|
|
font-size: 28rpx;
|
|
font-family: Source Han Sans CN, Source Han Sans CN-Light;
|
|
font-weight: 300;
|
|
text-align: left;
|
|
color: #a7b9cd;
|
|
letter-spacing: 1.2rpx;
|
|
line-height: 36rpx;
|
|
// padding: 0 100rpx;
|
|
// padding-right: 135rpx;
|
|
box-sizing: border-box;
|
|
|
|
}
|
|
}
|
|
|
|
.checkbox {
|
|
|
|
margin-top: 32rpx;
|
|
padding: 0 34rpx;
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
|
|
.chekcont {
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
font-size: 24rpx;
|
|
font-family: 'PingFang', 'PingFang';
|
|
font-weight: 500;
|
|
color: rgba(7, 47, 90, 0.6);
|
|
|
|
.icon-arow_down {
|
|
margin-left: 6rpx;
|
|
font-size: 16rpx;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
.card_bigbox {
|
|
.work_card {
|
|
margin-top: 20rpx;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
width: 686rpx;
|
|
padding: 32rpx;
|
|
background: #FFFFFF;
|
|
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
|
|
|
border-left: 8rpx solid #F18F21;
|
|
|
|
.work_card_top {
|
|
width: 100%;
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
|
|
.work_card_top_left {
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
font-size: 28rpx;
|
|
font-family: 'PingFang', 'PingFang';
|
|
font-weight: 800;
|
|
color: #2E4975;
|
|
|
|
.work_card_top_left_img {
|
|
margin-right: 8rpx;
|
|
width: 38rpx;
|
|
height: 32rpx;
|
|
}
|
|
.txt{
|
|
font-size: 28rpx;
|
|
font-family: 'PingFang', 'PingFang';
|
|
font-weight: 800;
|
|
color: #2E4975;
|
|
}
|
|
}
|
|
|
|
.work_card_top_right {
|
|
font-size: 24rpx;
|
|
font-family: 'PingFang', 'PingFang';
|
|
font-weight: 500;
|
|
color: #F18F21;
|
|
}
|
|
|
|
.act2 {
|
|
color: #2D7CE6;
|
|
}
|
|
}
|
|
|
|
.work_card_cont_box {
|
|
margin-top: 16rpx;
|
|
padding: 24rpx;
|
|
width: 100%;
|
|
background: #F9F9F9;
|
|
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
|
|
|
.work_card_cont:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.work_card_cont {
|
|
margin-bottom: 24rpx;
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
|
|
.work_card_cont_point {
|
|
width: 8rpx;
|
|
height: 8rpx;
|
|
background: #2E4975;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.work_card_cont_text {
|
|
margin-left: 20rpx;
|
|
font-size: 24rpx;
|
|
font-family: 'PingFang', 'PingFang';
|
|
font-weight: 500;
|
|
color: #2E4975;
|
|
}
|
|
|
|
.work_card_cont_tag {
|
|
margin-left: 30rpx;
|
|
padding: 8rpx 18rpx;
|
|
background: #FFF2E4;
|
|
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
|
font-size: 20rpx;
|
|
font-family: 'PingFang', 'PingFang';
|
|
font-weight: 500;
|
|
color: #F18F21;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
.work_card_info_box {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
margin-top: 22rpx;
|
|
width: 100%;
|
|
|
|
.work_card_info_top {
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
align-items: center;
|
|
width: 100%;
|
|
font-size: 20rpx;
|
|
font-family: 'PingFang', 'PingFang';
|
|
font-weight: 500;
|
|
color: rgba(46, 73, 117, 0.6);
|
|
|
|
.work_card_info_topimg {
|
|
margin-right: 8rpx;
|
|
width: 18.74rpx;
|
|
height: 20rpx;
|
|
}
|
|
}
|
|
|
|
.work_card_info_bot {
|
|
margin-top: 4rpx;
|
|
font-size: 24rpx;
|
|
font-family: 'PingFang', 'PingFang';
|
|
font-weight: 500;
|
|
color: #2E4975;
|
|
}
|
|
}
|
|
}
|
|
|
|
.act1 {
|
|
border-left: 8rpx solid #2D7CE6;
|
|
}
|
|
|
|
.act3 {
|
|
border-left: 8rpx solid #DFDFDF;
|
|
}
|
|
}
|
|
|
|
.botbtn {
|
|
padding: 32rpx 32rpx 0 32rpx;
|
|
margin-left: -32rpx;
|
|
position: fixed;
|
|
bottom: 0;
|
|
width: 750rpx;
|
|
height: 200rpx;
|
|
background: #FFFFFF;
|
|
box-shadow: 0rpx -10rpx 16rpx 0rpx rgba(202, 202, 202, 0.25);
|
|
border-radius: 40rpx 40rpx 0rpx 0rpx;
|
|
|
|
.btn {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 28rpx;
|
|
font-family: 'PingFang', 'PingFang';
|
|
font-weight: 800;
|
|
color: #FFFFFF;
|
|
width: 686rpx;
|
|
height: 80rpx;
|
|
background: linear-gradient(180deg, #74AFFF 0%, #2D7CE6 100%);
|
|
border-radius: 104rpx 104rpx 104rpx 104rpx;
|
|
}
|
|
}
|
|
}
|
|
</style> |