底部tabbar修改 首页 班级 我的页面修改 添加班级功能 添加老师页面

This commit is contained in:
taoxu 2023-12-18 22:45:53 +08:00
parent 80c5030e28
commit e71150d648
30 changed files with 3157 additions and 1649 deletions

View File

@ -4,9 +4,9 @@ const install = (Vue, vm) => {
// baseUrl: 'http://2087p773d1.wicp.vip', // 请求的本域名
// baseUrl: 'https://lchighpass.zhieasy.cn',
// baseUrl: 'http://speaking.viphk.91tunnel.com',//测试https://speaking.iava.top/
baseUrl: 'http://yml.dev.bc3.top',//
// baseUrl: 'http://yml.dev.bc3.top',//
// baseUrl: 'https://ielts.zhieasy.cn',//正式
// baseURL: 'https://api.admin-v2.langsi.online',
baseURL: 'https://api.admin-v2.langsi.online',
// baseUrl: 'http://i3qsdb.natappfree.cc',//正式
// baseUrl: 'http://hwihh5.natappfree.cc',
@ -42,7 +42,7 @@ const install = (Vue, vm) => {
// 所以哪怕您重新登录修改了Storage下一次的请求将会是最新值
// const token = uni.getStorageSync('token');
const token = " Bearer f545811267c149bc85fb14e8e8638e94"
const token = " Bearer ca5a6cd7473c4b18b22044321b1fba91"
// console.log("我是token", token)
config.header.Authorization = token;

View File

@ -0,0 +1,47 @@
<template>
<view>
<view class="u-page">
<!-- 所有内容的容器 -->
</view>
<!-- 与包裹页面所有内容的元素u-page同级且在它的下方 -->
<u-tabbar v-model="current" :list="list" icon-size='40rpx' active-color='#3996fd' inactive-color="#c8c7cb"></u-tabbar>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{
iconPath: require('@/static/tabbar/home.png'),
selectedIconPath:require('@/static/tabbar/home-active.png'),
text: '首页',
customIcon: true,
pagePath:'/pages/index/index2'
},
{
iconPath: require('@/static/tabbar/tiku.png'),
selectedIconPath:require('@/static/tabbar/tiku-act.png'),
text: '题库',
customIcon: true,
pagePath:'/pages/home/home'
}
,{
iconPath: require('@/static/tabbar/my.png'),
selectedIconPath:require('@/static/tabbar/my-active.png'),
text: '我的',
customIcon: true,
pagePath:'/pages/user/usertwo'
},
],
current: 0
}
},
}
</script>
<style lang="scss" scoped>
/deep/.u-tabbar__content__item__button{
top: 20rpx !important;
}
</style>

View File

@ -34,16 +34,7 @@
}
},
{
"path" : "pages/pages_index/teacher_index",
"style" :
{
"navigationBarTitleText": "首页",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
@ -138,7 +129,28 @@
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path" : "pages/user/user",
"style" :
{
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path" : "pages/Mystudent/addTeacher",
"style" :
{
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
],
"subPackages": [
{
@ -218,6 +230,32 @@
],
"tabBar": {
"color": "#a9b7b7",
"selectedColor": "#5185fd",
"borderStyle": "white",
"backgroundColor": "#ffffff",
"list": [
{
"selectedIconPath": "/static/tabbar/home.png",
"iconPath": "/static/tabbar/home-active.png",
"pagePath": "pages/index/index",
"text": "首页"
},
{
"selectedIconPath": "/static/tabbar/tiku.png",
"iconPath": "/static/tabbar/tiku-act.png",
"pagePath": "pages/Mystudent/student",
"text": "题库"
}
,{
"selectedIconPath": "/static/tabbar/my.png",
"iconPath": "/static/tabbar/my-active.png",
"pagePath": "pages/user/user",
"text": "我的"
}
]
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",

View File

@ -0,0 +1,371 @@
<template>
<view class="searchpage">
<u-navbar title="添加老师" :border-bottom="false" :background="bgc" title-color='#2E4975' title-size='36'
height='36' :custom-back="addstu"></u-navbar>
<u-toast ref="uToast" />
<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="check_card">
<!-- <view class="check_card_stu " v-for="(item,index ) in stulist" :key="index" @click="toggleSelection(item)" :class="{ 'act1': item.isSelected }">
<view class="check_card_stu_info_left">
<view class="class_card_left">
<image :src="item.headImgUrl"></image>
</view>
<view class="class_card_right">
<view class="class_card_right_top" v-html="highlightSearch(item.nickName)">
</view>
<view class="class_card_right_bot">
ID{{item.id}}
</view>
</view>
</view>
</view> -->
<view class="teacher_card" v-for="(item,index) in stulist" :key="index" @click="toggleSelection(item)" :class="{ 'act1': item.isSelected }">
<view class="class_card_left">
<image src=" https://file.langsi.online/yasiimg/web/static/udWNTRG6GulmTtgPRQ49"></image>
</view>
<view class="class_card_right">
<view class="class_card_right_top" v-html="item.teacherInfo.nickname">
</view>
<view class="class_card_right_bot">
{{item.roleText}}
</view>
</view>
</view>
</view>
<view class="zhanwei" style="width: 100%; height: 230rpx;">
</view>
<view class="botbtn" @click="addstu()" v-show="selectedIds.length>0">
<view class="btn">
确定添加{{selectedIds.length}}
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#F6F9FC",
},
checkindex: 1,
stulist:[],
searchKeyword:'',
orgstulist:[],
selectedIds: [],
}
},
onLoad(option) {
// this.classid=option.id
this.selectedIds=JSON.parse(decodeURIComponent(option.teacherinfo))
},
onShow(){
this.getallstu()
},
methods: {
addstu() {
console.log('调用了');
uni.setStorageSync('selectedteacherinfo', this.selectedIds);
// Navigate back to the previous page
uni.navigateBack({
delta: 1, // Number of pages to go back
success(res) {
console.log(res);
},
fail(err) {
console.error(err);
}
});
},
toggleSelection(item) {
// const selectedIndex = this.selectedIds.indexOf(item.id);
const selectedIndex = this.selectedIds.findIndex(selectedItem => selectedItem.id === item.id);
if (selectedIndex === -1) {
// If not selected, add to the array and apply the 'act1' class
this.selectedIds.push({ name: item.teacherInfo.nickname, avatar: item.teacherInfo.avatar, id: item.teacherId });
item.isSelected = true; // Add a property to the item to track selection
} else {
// If already selected, remove from the array and remove the 'act1' class
this.selectedIds.splice(selectedIndex, 1);
item.isSelected = false;
console.log(this.selectedIds,'selectedIdsselectedIdsselectedIds');
}
},
search() {
// this.classlist
if (this.searchKeyword !== '') {
const filteredList = JSON.parse(JSON.stringify(this.orgstulist)).filter(item => {
// nickName id
return item.teacherInfo.nickname.includes(this.searchKeyword)
});
// this.classlist
this.stulist = filteredList;
this.selectedIds.forEach(selectedItem => {
const index = this.stulist.findIndex(item => item.teacherId === selectedItem.teacherId);
if (index !== -1) {
this.$set(this.stulist, index, { ...this.stulist[index], isSelected: true });
}
});
} else {
this.fuwei();
}
},
fuwei() {
this.stulist = JSON.parse(JSON.stringify(this.orgstulist));
this.selectedIds.forEach(selectedItem => {
const index = this.stulist.findIndex(item => item.teacherId === selectedItem.teacherId);
if (index !== -1) {
this.$set(this.stulist, index, { ...this.stulist[index], isSelected: true });
}
});
},
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;
},
getallstu(){
this.$u.get(`https://api.admin-v2.langsi.online/admin-api/classroom/teacher/list`).then(res => {
if (res.code == 0) {
this.stulist=res.data
this.orgstulist = JSON.parse(JSON.stringify(res.data));
this.selectedIds.forEach(selectedItem => {
const index = this.stulist.findIndex(item => item.teacherId === selectedItem.id);
if (index !== -1) {
this.$set(this.stulist, index, { ...this.stulist[index], isSelected: true });
}
});
}
})
}
}
}
</script>
<style lang="scss">
page {
background: linear-gradient(183deg, #F0F6FF 0%, #FAFAFA 100%);
}
.searchpage {
width: 750rpx;
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;
}
}
.check_card {
margin-top: 20rpx;
.teacher_card{
margin-bottom: 20rpx;
padding: 24rpx;
display: flex;
flex-wrap: nowrap;
width: 686rpx;
height: 130rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
.class_card_left {
width: 76rpx;
height: 76rpx;
}
.class_card_right {
margin-left: 20rpx;
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: 8rpx;
font-size: 24rpx;
font-family:'PingFang','PingFang';
font-weight: 500;
color: #2D7CE6;
}
}
}
.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>

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +1,15 @@
<template>
<view class="pagebox">
<u-navbar title="作业安排"
:border-bottom="false"
:background="bgc"
title-color='#2E4975'
title-size='36'
height='36'></u-navbar>
<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"
placeholder="搜索相关内容..."
class="input"
placeholder-style="color:#C7CDD3 ">
<input type="text" v-model="searchKeyword" placeholder="搜索相关内容..." class="input"
placeholder-style="color:#C7CDD3" @input="search()">
</view>
<view class="checkbox">
<view class="chekcont">
@ -33,38 +27,44 @@
</view>
<view class="card_bigbox">
<view class="work_card" v-for="(item,index ) in workinfo" :key="index"
:class="item.iswork === '1' ? 'act1' : (item.iswork === '2' ? 'act3' : 'default')">
:class="item.iswork === '1' ? 'act1' : (item.iswork === '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>
{{item.name}}
<view class="txt" v-html="highlightSearch(item.name)">
</view>
</view>
<view class="work_card_top_right"
:class="isalready == true ? 'act2' : ''">
<view class="work_card_top_right" :class="isalready == true ? 'act2' : ''">
进行中
</view>
</view>
<view class="work_card_cont_box">
<view class="work_card_cont" v-for="(items,indexs ) in item.infos" :key="indexs" 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}}
</view>
<view class="work_card_cont_tag" v-if="items.classify==1" style="background: rgba(27,225,178,0.1);color: #1BE1B2;">
<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 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 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 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>
@ -95,7 +95,7 @@
<view class="work_card_info_bot">
{{item.doneTime}}
<!-- {{ formatTimestamp(item.createTime) }} -->
<!-- {{ formatTimestamp(item.createTime) }} -->
</view>
</view>
</view>
@ -109,288 +109,333 @@
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#F0F6FF",
},
isalready: true,
work: [
{ "iswork": "0" },
{ "iswork": "1" },
{ "iswork": "2" },
{ "iswork": "0" }
],
classid:0,
workinfo:[]
}
},
onLoad(option) {
console.log(option);
this.classid=option.classId
// this.classid=15
this.getworklist()
},
methods: {
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(`/admin-api/classroom/work-record/list?classId=${this.classid}`).then(res => {
if (res.code == 0) {
this.workinfo=res.data
// this.classlist = res.data.list
// this.isloding = false
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: {
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(`/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;
}
<style lang="scss">
page {
background: linear-gradient(183deg, #F0F6FF 0%, #FAFAFA 100%);
padding-bottom: 170rpx;
}
.checkbox {
margin-top: 32rpx;
padding: 0 34rpx;
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: space-between;
.pagebox {
padding: 0 32rpx;
.chekcont {
.serchbox {
padding: 0 32rpx;
display: flex;
flex-wrap: nowrap;
margin-top: 30rpx;
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;
height: 88rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
border-left: 8rpx solid #F18F21;
.serchimg {
width: 30.51rpx;
height: 32rpx;
margin-right: 24rpx;
}
.work_card_top {
width: 100%;
.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;
justify-content: space-between;
font-size: 24rpx;
font-family: 'PingFang', 'PingFang';
font-weight: 500;
color: rgba(7, 47, 90, 0.6);
.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;
}
}
.work_card_top_right {
font-size: 24rpx;
font-family:'PingFang','PingFang';
font-weight: 500;
color: #F18F21;
}
.act2 {
color: #2D7CE6;
.icon-arow_down {
margin-left: 6rpx;
font-size: 16rpx;
}
}
.work_card_cont_box {
margin-top: 16rpx;
padding: 24rpx;
width: 100%;
background: #F9F9F9;
}
.card_bigbox {
.work_card {
margin-top: 20rpx;
display: flex;
flex-wrap: wrap;
width: 686rpx;
padding: 32rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
.work_card_cont:last-child {
margin-bottom: 0;
}
border-left: 8rpx solid #F18F21;
.work_card_cont {
margin-bottom: 24rpx;
.work_card_top {
width: 100%;
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: space-between;
.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;
.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_cont_tag {
margin-left: 30rpx;
padding: 8rpx 18rpx;
background: #FFF2E4;
border-radius: 20rpx 20rpx 20rpx 20rpx;
font-size: 20rpx;
font-family:'PingFang','PingFang';
.work_card_top_right {
font-size: 24rpx;
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;
.act2 {
color: #2D7CE6;
}
}
.work_card_info_bot {
margin-top: 4rpx;
font-size: 24rpx;
font-family:'PingFang','PingFang';
font-weight: 500;
color: #2E4975;
.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;
}
}
.act1 {
border-left: 8rpx 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;
.act3 {
border-left: 8rpx solid #DFDFDF;
.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;
}
}
}
.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>
</style>

File diff suppressed because it is too large Load Diff

View File

@ -1,38 +0,0 @@
<template>
<view class="view_body">
<u-navbar :is-back="false" title='学生' title-color="#000" :border-bottom="false" :background="true"
id="navbar">
</u-navbar>
<view class="nostudy">
<view>
<image src="http://tmp/HR4A5dtvNboB4502c7be9965e9ff4c184685e3fb36d9.png" mode=""></image>
<text>暂无学生快去添加吧</text>
</view>
<view>
<u-button type="primary">主要按钮</u-button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.view_body{
height: 1624rpx;
background: linear-gradient(180deg, #E1EEFF 0%, #FFFFFF 100%);
}
</style>

View File

@ -1,55 +1,468 @@
<template>
<view class="content">
<u-navbar title="雅思口语" :is-back="false" title-color="#ffffff" :border-bottom="false"
id="navbar">
</u-navbar>
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">{{title}}</text>
<!-- 头部代码 -->
<view class="view_by">
<view>
<u-navbar :is-back="false" title='首页' title-color="#000" :border-bottom="false" :background="true" id="navbar">
</u-navbar>
<view class="header_button">
<u-button type="primary" shape="circle" :hair-line="false" class="custom-style">学生</u-button>
<u-button class="custom-style" shape="circle" :hair-line="false">班级</u-button>
</view>
</view>
<!-- 登录之后显示的页面 -->
<view v-if="flag">
<view class="view_body">
<view class="content_box">
<view class="view_text">32</view>
<view>已完成人数</view>
</view>
<view class="content_box">
<view class="view_text">90%</view>
<view>已完成作业正确率</view>
</view>
</view>
<!-- 作业完成情况 -->
<view class="echarts_bar">
<view>
<text>作业完成情况</text>
<view class="echarts_text">
<view>本周</view>
</view>
</view>
<view class="echarts">
<l-echart ref="chart" @finished="initChart"></l-echart>
</view>
</view>
</view>
<!-- 没有数据显示的页面 -->
<view>
<view class="deer">
<view class="deer_images">
<image src="https://file.langsi.online/yasiimg/web/static/udGRdnpSfgV3LMD8Ksuv" mode=""></image>
</view>
<view class="deer_right">
<view class="deer_text">当前暂无学习数据快去布置作业吧</view>
<view class="deer_button">
<view>去安排</view>
<view class="r_image"><image src="https://file.langsi.online/yasiimg/web/static/uITFZ6vUIiA0P2KBz1i8" mode=""></image></view>
</view>
</view>
</view>
<view class="echarts_bar">
<view>
<text>作业完成情况</text>
<view class="echarts_text">
<view>本周</view>
</view>
</view>
<view class="echarts">
<l-echart ref="chart" @finished="initChart"></l-echart>
</view>
</view>
</view>
<!-- 底部区域 -->
<view v-if="flag">
<view class="date">
8月31日
</view>
<view class="box_rate">
<view class="rate_item">
<view class="number">
21
</view>
<view class="text">
完成人数
</view>
</view>
<view class="rate_item">
<view class="number">
6
</view>
<view class="text">
平均成绩/
</view>
</view>
<view class="rate_item">
<view class="number">
80%
</view>
<view class="text">
作业正确率
</view>
</view>
</view>
<view>
<view class="view_botton">
<view class="view_spoken">
<view>
<image src="https://file.langsi.online/yasiimg/web/static/u80EhqyvMfcOaaSyK09X" mode=""></image>
</view>
<view class="view_span">
<text>口语单科模考</text>
<text>李斯丹妮</text>
</view>
</view>
<view class="view_text2">
<view>正确率<text class="text2">80%</text></view>
<text>2023/02/23 12:00</text>
</view>
</view>
<view class="view_botton">
<view class="view_spoken">
<view>
<image src="https://file.langsi.online/yasiimg/web/static/u80EhqyvMfcOaaSyK09X" mode=""></image>
</view>
<view class="view_span">
<text>口语单科模考</text>
<text>李斯丹妮</text>
</view>
</view>
<view class="view_text2">
<view>正确率<text class="text2">80%</text></view>
<text>2023/02/23 12:00</text>
</view>
</view>
</view>
<!--底部导航栏 -->
</view>
<!-- 没有数据显示的区域 -->
<view class="zu_footer">
<view class="date">8月31日</view>
<view class="zu_zp">
<view class="zu_image"><image src="https://file.langsi.online/yasiimg/web/static/uFgs4acAUC68weaKB9Yi" mode=""></image></view>
<view class="zu_text">暂无学习记录快去安排作业吧</view>
</view>
</view>
</view>
</template>
<script>
import * as echarts from '@/uni_modules/lime-echart/static/echarts.min'
import LEchart from '@/uni_modules/lime-echart/components/l-echart/l-echart.vue';
export default {
components: {
LEchart
},
data() {
return {
title: 'Hello'
flag:false
}
},
onLoad() {
},
methods: {
async initChart() {
let _this = this
const option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value',
boundaryGap: ['10%', '20%',]
},
series: [{
data: [120, 200, 150, 80, 70, 110, 130],
type: 'bar'
}]
}
const chart = await this.$refs.chart.init(echarts);
chart.setOption(option)
//return chart
},
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
<style lang="scss" scoped>
.view_by {
background: linear-gradient(180deg, #E1EEFF 0%, #FFFFFF 100%);
padding: 32rpx;
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.header_button {
display: flex;
justify-content: space-evenly;
align-items: center;
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
.custom-style {
width: 180rpx;
height: 72rpx;
}
.active {
background: #2D7CE6;
color: #fff;
box-shadow: inset 0rpx 8rpx 16rpx 0rpx rgba(255, 255, 255, 0.35);
}
}
.view_body {
display: flex;
justify-content: center;
align-items: center;
margin-top: 52rpx;
.content_box {
flex: 1;
}
.content_box:first-child {
border-right: 2rpx solid rgba(0, 0, 0, 0.11);
}
.view_text {
font-size: 76rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #2E4975;
}
view {
display: flex;
flex-direction: column;
align-items: center;
}
}
.echarts_bar {
width: 686rpx;
height: 459rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
opacity: 1;
margin-top: 32rpx;
padding: 32rpx;
view {
display: flex;
justify-content: space-between;
text {
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
color: #2E4975;
}
}
}
.box_rate {
display: flex;
justify-content: center;
align-items: center;
padding: 30rpx;
background: linear-gradient(179deg, rgba(255, 237, 223, 0.65) 0%, #FFFFFF 100%);
border-radius: 18rpx 18rpx 18rpx 18rpx;
.rate_item {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.number {
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
color: #2D7CE6;
}
.text {
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: rgba(7, 47, 90, 0.5);
}
}
.date {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
color: #2E4975;
padding: 30rpx;
}
.view_botton {
display: flex;
align-items: center;
justify-content: space-between;
height: 124rpx;
background: #fff;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin: 20rpx 0rpx;
padding: 24rpx;
.view_spoken {
display: flex;
align-items: center;
.view_span {
display: flex;
flex-direction: column;
margin-left: 16rpx;
}
.view_span text:nth-child(1) {
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: bold;
color: #072F5A;
margin-bottom: 7rpx;
}
.view_span text:nth-child(2) {
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: rgba(46, 73, 117, 0.5);
margin-bottom: 7rpx;
}
}
.view_text2 {
display: flex;
flex-direction: column;
text-align: right;
view .text2 {
color: #F18F21;
font-size: 27rpx;
font-weight: 800;
margin-left: 7rpx;
}
}
.view_text2 view {
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #F18F21;
}
.view_text2 text {
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: rgba(7, 47, 90, 0.4);
}
image {
width: 76rpx;
height: 76rpx;
}
}
.echarts{
width: 300rpx;
height: 600rpx;
margin-top: -100rpx;
}
.deer{
display: flex;
align-items: center;
}
.deer_images{
width: 145rpx;
height: 245rpx;
margin-left: 15rpx;
}
.r_image{
width: 16rpx;
height: 16rpx;
line-height: 16rpx;
margin-left: 8rpx;
}
.deer_button{
display: flex;
justify-content: center;
align-items: center;
margin-top: 19rpx;
width: 160rpx;
height: 56rpx;
font-size: 20rpx;
font-weight: 500;
color: #FFFFFF;
background: #2D7CE6;
border-radius: 86rpx 86rpx 86rpx 86rpx;
}
.deer_right{
margin-left: 20rpx;
}
.deer_text{
font-size: 28rpx;
font-weight: 500;
color: #627698;
}
.operation{
height: 459rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
}
.zu_image{
width: 172rpx;
height: 162rpx;
}
.zu_text{
font-size: 24rpx;
font-weight: 400;
color: #0E3B77;
margin: 20rpx 0rpx 50rpx 0rpx;
}
.zu_footer{
// padding: 32rpx 0rpx;
}
.zu_zp{
display: flex;
flex-direction: column;
align-items: center;
padding: 72rpx;
}
}
</style>

View File

@ -1,105 +0,0 @@
<template>
<view class="view_dingbu">
<view class="top_box">
<view :class="thisTop==1?'top_box_active':'top_box_item'" @click="checkTop(1)">首页<view class="line"
v-if="thisTop==1"></view>
</view>
<view :class="thisTop==2?'top_box_active':'top_box_item'" @click="checkTop(2)">学生<view class="line"
v-if="thisTop==2"></view>
</view>
<view :class="thisTop==3?'top_box_active':'top_box_item'" @click="checkTop(3)">我的<view class="line"
v-if="thisTop==3"></view>
</view>
</view>
<view class="content">
<home v-if="thisTop==1"></home>
<my v-if="thisTop==2"></my>
<min v-if="thisTop==3"></min>
</view>
</view>
</template>
<script>
import home from '../compoents/pages_home.vue'
import min from '../compoents/pages_mine.vue'
import my from '../compoents/pages_my.vue'
export default {
components: {
home,
min,
my,
},
data() {
return {
thisTop: 1,
partId: 350,
infolist: '',
}
},
methods: {
checkTop(i) {
this.thisTop = i
},
}
}
</script>
<style scoped lang="scss">
* {
box-sizing: border-box;
}
.top_box {
position: fixed;
bottom: 0;
width: 100%;
line-height: 84rpx;
background-color: #fff;
display: flex;
justify-content: space-around;
.top_box_item {
position: relative;
color: #3B5878;
font-weight: 800;
font-size: 28rpx;
.line {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 40rpx;
height: 4rpx;
background: #3996FD;
border-radius: 2rpx 2rpx 2rpx 2rpx;
}
}
.top_box_active {
position: relative;
color: #3996FD;
font-weight: 800;
font-size: 28rpx;
.line {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 40rpx;
height: 4rpx;
background: #3996FD;
border-radius: 2rpx 2rpx 2rpx 2rpx;
}
}
}
.content {
width: 100%;
}
</style>

279
pages/user/user.vue Normal file
View File

@ -0,0 +1,279 @@
<template>
<view class="view_body">
<view class="view_body_images">
<u-navbar :is-back="false" title='我的' title-color="#000" :border-bottom="false" :background="true" id="navbar">
</u-navbar>
<view class="view_header">
<view>
<view>
<image src="https://file.langsi.online/yasiimg/web/static/uxaCSTBJAo7SkGHtheRR" mode=""></image>
</view>
<view class="view_images">
<text>LUlY老师</text>
<u-button type="warning" size="mini">认证教师</u-button>
</view>
</view>
<view class="view_sniht">
</view>
</view>
<view class="view_reative">
<view>
<text>学生人数</text>
<text>320</text>
</view>
<view>
<text>安排题数</text>
<text>4300</text>
</view>
<view>
<text>总完成度</text>
<text>43</text>
</view>
<view>
<text>今日完成度</text>
<text>43</text>
</view>
</view>
<view class="view_centre">
<view>
<view class="view_centre_images">
<image src="https://file.langsi.online/yasiimg/web/static/uif1JIGCJXguCEO3Mdqx" mode=""></image>
</view>
<text>作业安排</text>
</view>
<view>
<view class="view_centre_images">
<image src="https://file.langsi.online/yasiimg/web/static/u4BHxtTvVDGUDFaKPHz2" mode=""></image>
</view>
<text>学生管理</text>
</view>
<view>
<view class="view_centre_images">
<image src="https://file.langsi.online/yasiimg/web/static/uPqAU9hXDLOa1zrX4xJX" mode=""></image>
</view>
<text>班级管理</text>
</view>
<view>
<view class="view_centre_images">
<image src="https://file.langsi.online/yasiimg/web/static/uWHKotvBvHfXxwFzHiMP" mode=""></image>
</view>
<text>切换题库</text>
</view>
</view>
<view class="view_footer">
<view>
<view class="view_icon">
<u-icon name="question-circle" color="#2D7CE6"></u-icon>
</view>
<view class="wz">
<view class="">
帮助中心
</view>
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<view class="icon">
<view class="view_icon">
<u-icon name="question-circle" color="#2D7CE6"></u-icon>
</view>
<view class="wz">
<view class="">
关于我们
</view>
<u-icon name="arrow-right"></u-icon>
</view>
</view>
<view class="icon">
<view class="view_icon">
<u-icon name="question-circle" color="#2D7CE6"></u-icon>
</view>
<view class="wz">
<view class="">
退出登录
</view>
<u-icon name="arrow-right"></u-icon>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.view_body {
height: 100vh;
background: linear-gradient(180deg, #E1EEFF 0%, #FFFFFF 100%);
border-radius: 0rpx 0rpx 0rpx 0rpx;
padding: 96rpx 34rpx;
.view_body_images {
height: 347rpx;
background-image: url('https://file.langsi.online/yasiimg/web/static/u4sEWPTO8OQ8hzPMUdVX');
background-size: cover;
background-position: center;
}
.view_reative {
z-index: 100;
height: 154rpx;
display: flex;
justify-content: space-evenly;
align-items: center;
background: linear-gradient(180deg, #E1EEFF 0%, #FFFFFF 100%);
// background-color: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
border: 2rpx solid #FFFFFF;
margin-top: 32rpx;
view {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
}
.view_reative view text:nth-child(1) {
height: 32rpx;
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #2E4975;
line-height: 32rpx;
}
.view_reative view text:nth-child(2) {
height: 46rpx;
font-size: 36rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
color: #2E4975;
line-height: 47rpx;
}
.view_header {
display: flex;
justify-content: space-between;
align-items: center;
view {
display: flex;
}
image {
display: flex;
justify-content: space-between;
width: 124rpx;
height: 124rpx;
border-radius: 803rpx 803rpx 803rpx 803rpx;
}
}
.view_images {
display: flex;
flex-direction: column;
margin-left: 20rpx;
text {
height: 58rpx;
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
color: #2E4975;
line-height: 58rpx;
}
}
.view_centre {
display: flex;
justify-content: space-evenly;
align-items: center;
height: 150rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
overflow: hidden;
margin-top: 50rpx;
view {
display: flex;
flex-direction: column;
// text-align: center;
justify-content: center;
align-items: center;
}
text {
font-size: 24rpx;
font-weight: 700;
color: #20314C;
}
.view_centre_images {
width: 40rpx;
height: 40rpx;
margin-bottom: 12rpx;
}
}
.view_footer {
width: 686rpx;
margin: 20rpx auto;
background: #fff;
border-radius: 20rpx 20rpx 20rpx 20rpx;
padding: 32rpx 40rpx;
view {
display: flex;
}
.wz {
width: 550rpx;
display: flex;
justify-content: space-between;
border-bottom: 2rpx solid #EEEEEE;
padding-bottom: 34rpx;
}
.view_icon {
width: 35rpx;
height: 40rpx;
}
.icon {
margin-top: 20rpx;
}
}
.view_sniht{
width: 35rpx;
height: 75rpx;
// background-color: red;
background: url('https://file.langsi.online/yasiimg/web/static/uv2PZzLhKjm907ZBqqXn') no-repeat center;
background-size: 100% auto;
}
}
</style>

View File

@ -312,7 +312,7 @@
onLoad(option) {
uni.removeStorageSync('selectedClassInfo');
uni.removeStorageSync('selectedStuInfo');
// uni.removeStorageSync('selectforwork');
uni.removeStorageSync('selectforwork');
this.classinfo = JSON.parse(decodeURIComponent(option.classinfo))
// let classinofs = [{
// name: '5',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 B

BIN
static/tabbar/chuanti.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
static/tabbar/class.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
static/tabbar/course.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
static/tabbar/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 B

BIN
static/tabbar/my-active.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

BIN
static/tabbar/my.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
static/tabbar/signup.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
static/tabbar/tiku-act.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
static/tabbar/tiku.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
static/tabbar/writing.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB