smartmeter-app/pages/Mystudent/formstu.vue

375 lines
7.8 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="addpage">
<u-navbar :title="title"
:border-bottom="false"
:background="bgc"
title-color='#2E4975'
title-size='36'
height='36'></u-navbar>
<view class="topbox">
<view class="search_box">
<!-- <view class="check_search">
{{ checkindex == "0" ? "班级" : '学生' }}
<view class="iconfont icon-arow_down"></view>
</view> -->
<view class="serchbox">
<view class="serchimg">
<image src="https://file.langsi.online/yasiimg/web/static/uVMACkynkipOxuTYDqm0"
mode="scaleToFill">
</image>
</view>
<input type="text"
v-model="searchKeyword"
placeholder="搜索相关内容..."
class="input"
placeholder-style="color:#C7CDD3"
@input="search()">
</view>
</view>
<view class="addclass" @click="addstu()">
+ 添加学生
</view>
</view>
<view class="check_card" v-show="checkindex==1">
<view class="check_card_stu" v-for="(item,index ) in stulist" :key="index">
<view class="check_card_stu_info_left">
<view class="class_card_left">
<image :src="item.memberInfo.avatar"></image>
</view>
<view class="class_card_right">
<view class="class_card_right_top" v-html="highlightSearch(item.memberInfo.name)">
</view>
<view class="class_card_right_bot">
ID{{item.memberInfo.id}}
</view>
</view>
</view>
<view class="check_card_stu_info_right">
<view class="class_info" >
<view class="class_info_top" >
平均成绩/
</view>
<view class="class_info_bot" >
6
</view>
</view>
<view class="class_info" >
<view class="class_info_top" >
作业完成度
</view>
<view class="class_info_bot" >
80%
</view>
</view>
</view>
</view>
</view>
<!-- <view class="botbtn">
<view class="btn">
确定添加1
</view>
</view> -->
</view>
</template>
<script>
export default {
data() {
return {
title: '班级成员',
bgc: {
backgroundColor: "#F6F9FC",
},
checkindex: 1,
stulist:[],
searchKeyword:'',
orgstulist:[],
}
},
onLoad(option) {
this.classid=option.id
// this.classid=15
},
onShow() {
this.getclassteacher()
},
methods: {
search() {
// 根据关键字过滤 this.classlist
if (this.searchKeyword !== '') {
const filteredList = JSON.parse(JSON.stringify(this.orgstulist)).filter(item => {
// 匹配 nickName 或者 id
return item.memberInfo.name.includes(this.searchKeyword) || item.memberInfo.id.toString().includes(this.searchKeyword);
});
// 更新 this.classlist 为过滤后的列表
this.stulist = filteredList;
} else {
this.fuwei();
}
},
fuwei() {
this.stulist = JSON.parse(JSON.stringify(this.orgstulist));
},
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;
},
getclassteacher(){
this.$u.get(`https://api.admin-v2.langsi.online/admin-api/classroom/members/list?classId=${this.classid}`).then(res => {
if (res.code == 0) {
this.stulist=res.data
this.orgstulist = JSON.parse(JSON.stringify(res.data));
// this.classlist = res.data.list
// this.isloding = false
}
})
},
addstu(){
uni.navigateTo({
url: "/pages/Mystudent/addstu?id=" + this.classid
}).then(res => {
}).catch(err => {
});
}
}
}
</script>
<style lang="scss">
page {
background: #F6F9FC;
}
.addpage {
width: 750rpx;
padding: 0 32rpx;
flex-wrap: wrap;
// display: flex;
// flex-wrap: wrap;
.topbox{
margin-top: 46rpx;
display: flex;
flex-wrap: nowrap;
justify-content:space-between;
align-items: center;
.search_box {
width: 480rpx;
height: 88rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
display: flex;
flex-wrap: nowrap;
.check_search {
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: center;
width: 148rpx;
height: 88rpx;
background: #FFF2E4;
border-radius: 20rpx 0rpx 0rpx 20rpx;
font-size: 28rpx;
font-family:'PingFang','PingFang';
font-weight: 500;
color: #F39852;
.icon-arow_down {
margin-left: 8rpx;
font-size: 20rpx;
}
}
.serchbox {
// padding: 0 32rpx;
display: flex;
flex-wrap: nowrap;
// margin-top: 30rpx;
align-items: center;
// justify-content: space-between;
width: 538rpx;
height: 88rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
.serchimg {
margin-left: 32rpx;
width: 32rpx;
height: 32rpx;
}
.input {
margin-left: 24rpx;
width: 394rpx;
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;
}
}
}
.addclass{
display: flex;
align-items: center;
justify-content: center;
width: 194rpx;
height: 88rpx;
background: #FFF2E4;
border-radius: 20rpx 20rpx 20rpx 20rpx;
font-size: 28rpx;
font-family:'PingFang','PingFang';
font-weight: 500;
color: #F39852;
}
}
.check_card {
margin-top: 20rpx;
.check_card_stu {
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: space-between;
padding: 32rpx;
width: 686rpx;
height: 148rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
border: 2rpx solid #FFFFFF;
margin-bottom: 20rpx;
.check_card_stu_info_left {
display: flex;
flex-wrap: nowrap;
.class_card_left {
width: 76rpx;
height: 76rpx;
}
.class_card_right {
margin-left: 12rpx;
display: flex;
flex-wrap: wrap;
.class_card_right_top {
width: 100%;
font-size: 28rpx;
font-family:'PingFang','PingFang';
font-weight: bold;
color: #072F5A;
}
.class_card_right_bot {
margin-top: 4rpx;
font-size: 20rpx;
font-family:'PingFang','PingFang';
font-weight: 500;
color: rgba(7,47,90,0.6);
}
}
}
.check_card_stu_info_right {
width: 50%;
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: space-between;
.class_info {
width: 110rpx;
display: flex;
flex-wrap: wrap;
justify-content: center;
.class_info_top {
font-size: 20rpx;
font-family:'PingFang','PingFang';
font-weight: 500;
color: rgba(7, 47, 90, 0.5);
}
.class_info_bot {
margin-top: 12rpx;
font-size: 28rpx;
font-family:'PingFang','PingFang';
font-weight: 800;
color: #2D7CE6;
}
}
}
}
.act1{
border: 2rpx solid #2D7CE6;
}
}
.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>