作者 徐浩

要显示太多修改。

为保证性能只显示 22 of 22+ 个文件。

<template>
<view>
<view class="stu_list">
<!-- datas_stu -->
<view class="add_li">
<view class="container">
<view class="card">
<picker mode="selector" :range="datas_stu" range-key="name" @change="stu_change">
<view class="add_li_box">
<view class="">
<view class="cell">
<view class="cell-label">
学员姓名
</view>
<view class="cell-content">
<input type="text" placeholder="请选择" v-model="name" disabled="true">
</view>
</picker>
</view>
<view class="add_li">
</picker>
<picker mode="date" :value="sx_time" :start="startDate" :end="endDate" @change="bindDateChange">
<view class="add_li_box">
<view class="">
<view class="cell not-border">
<view class="cell-label">
访谈时间
</view>
<view class="">
<view class="cell-content">
{{sx_time?sx_time:'请选择'}}
</view>
</view>
</picker>
</view>
<view class="add_li">
<view class="add_li_box">
<view class="">
<view class="card">
<view class="cell">
<view class="cell-label">
班主任自我介绍
</view>
<view class="cell-content">
<view class="sf_v_btn_b" :class="{active:is_teacher==1}" @click="set_tch">
<text class="icon icon-duigou"></text>
</view>
</view>
</view>
<view class="add_li">
<view class="add_li_tit">
<view class="cell not-border column">
<view class="cell-label">
了解学生信息(专业、学校、政治面貌、籍贯)
</view>
<textarea class="add_li_content" placeholder="请输入" v-model="content_one"></textarea>
<view class="cell-content">
<textarea
v-model="content_one"
placeholder="请输入"
placeholder-class="textarea-placeholder"
>
</textarea>
</view>
</view>
<view class="add_li">
<view class="add_li_tit">
<view class="cell not-border column">
<view class="cell-label">
第几次考编,之前有没有参加培训,有没有短板模块
</view>
<textarea class="add_li_content" placeholder="请输入" v-model="content_two"></textarea>
<view class="cell-content">
<textarea
v-model="content_two"
placeholder="请输入"
placeholder-class="textarea-placeholder"
>
</textarea>
</view>
</view>
</view>
<view class="add_li">
<view class="add_li_box">
<view class="">
<view class="card">
<view class="cell">
<view class="cell-label">
介绍近期课程安排、纪律要求
</view>
<view class="cell-content">
<view class="sf_v_btn_b" :class="{active:is_introduce==1}" @click="set_tch1">
<text class="icon icon-duigou"></text>
</view>
</view>
</view>
<view class="add_li">
<view class="add_li_tit">
<view class="cell not-border column">
<view class="cell-label">
有无什么要求,是否适应
</view>
<textarea class="add_li_content" placeholder="请输入" v-model="content_three"></textarea>
<view class="cell-content">
<textarea
v-model="content_three"
placeholder="请输入"
placeholder-class="textarea-placeholder"
>
</textarea>
</view>
</view>
<view class="add_li">
<view class="add_li_box">
<view class="">
</view>
<view class="card">
<view class="cell not-border">
<view class="cell-label">
入学测评成绩分析
</view>
<view class="cell-content">
<view class="sf_v_btn_b" :class="{active:is_result==1}" @click="set_tch2">
<text class="icon icon-duigou"></text>
</view>
</view>
</view>
</view>
<view class="footer" >
<view v-if="options.id" class="btn del" @click="show = true">
删除
</view>
<view class="bz_add" >
<view class="" @click="save_fuc">
<view class="btn" @click="save_fuc">
保存
</view>
<view v-if="options.id" class="del_btn" @click="del_fuc(options)">
删除
</view>
</view>
<u-modal
:show="show"
title="提示"
content="是否删除该记录?"
@confirm="del_fuc(options)"
@cancel="show = false"
:asyncClose="true"
:showCancelButton="true"
>
</u-modal>
</view>
</template>
... ... @@ -120,6 +160,8 @@
content_three:'',
datas_stu:'',
datas:'',
show: false
};
},
computed: {
... ... @@ -138,14 +180,6 @@
},
methods:{
del_fuc(item){
//teacher/interviewr_del 常规访谈删除接口
//teacher/interview_del 入学关怀删除接口
uni.showModal({
title: '提示',
content: '是否删除该记录',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
var jkurl='/teacher/interview_del'
// if(that.active==1){
// kurl='teacher/interview_del'
... ... @@ -161,6 +195,7 @@
that1.$service.P_post(jkurl, datas).then(res => {
that1.btnkg = 0
console.log(res)
this.show = false;
if (res.code == 1){
that1.htmlReset = 0
var datas = res.data
... ... @@ -196,6 +231,7 @@
}
}
}).catch(e => {
this.show = false;
that1.htmlReset = 1
that1.btnkg = 0
// that1.$refs.htmlLoading.htmlReset_fuc(1)
... ... @@ -205,18 +241,13 @@
title: '获取数据失败,请检查您的网络连接'
})
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
stu_change(e){
var index=e.detail.value
this.name = that1.datas_stu[index].name
this.uid = that1.datas_stu[index].id
},
set_tch(){
set_tch(val){
if(that1.is_teacher==1){
that1.is_teacher=2
}else{
... ... @@ -453,31 +484,51 @@
}
</script>
<style lang="less" scoped>
.stu_list {
width: 100%;
min-height: 100rpx;
background: #FFFFFF;
border-radius: 10rpx;
.add_li{
width: 100%;
min-height: 90rpx;
padding:28rpx 30rpx;
&+.add_li{
border-top: 1px solid #eee;
<style lang="scss" scoped>
.container {
padding: 25rpx 25rpx 140rpx;
}
.add_li_box{
width: 100%;
.card {
padding: 0 30rpx;
background-color: #fff;
border-radius: 20rpx;
& + .card {
margin-top: 20rpx;
}
.cell {
padding: 30rpx 0;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #F3F3F7;
& .not-border {
border: 0;
}
&-label {
font-size: 30rpx;
color: #545d71;
input{
font-family: PingFang SC;
font-weight: 500;
color: #000000;
}
&-content {
flex: 1;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #646464;
display: flex;
justify-content: flex-end;
input {
width: 100%;
text-align: right;
min-width: 0;
}
}
.icon {
color: #ACACAC;
font-size: 30rpx;
}
.sf_v_btn_b{
display: flex;
align-items: center;
... ... @@ -495,46 +546,62 @@
text{
font-size: 18rpx;
line-height: 20rpx;
color: #fff;
}
}
textarea {
width: 100%;
height: 230rpx;
background: #F5F6F8;
padding: 20rpx;
box-sizing: border-box;
}
.add_li_tit{
font-size: 30rpx;
color: #545D71;
line-height: 43rpx;
margin-bottom: 12rpx;
:deep(.textarea-placeholder) {
color: #979797;
}
.add_li_content{
font-size: 30rpx;
color: #A6A9B1;
line-height: 43rpx;
}
.column {
flex-direction: column;
.cell-label {
width: 100%;
height: 120rpx;
letter-spacing:0;
}
.cell-content {
margin-top: 20rpx;
width: 100%;
}
}
.bz_add{
width: 100%;
// position: fixed;
// bottom: 0;
// background: #f8f8f8;
// z-index: 800;
// left: 0;
padding: 30rpx 0;
view{
font-size: 32rpx;
color: #FFFFFF;
}
.footer {
position: fixed;
left: 0;
bottom: 0;
z-index: 99;
width: 100%;
height: 90rpx;
background: #2D81FF;
border-radius: 10rpx;
background-color: #fff;
padding: 16rpx 25rpx;
display: flex;
align-items: center;
justify-content: center;
.btn {
flex: 1;
height: 88rpx;
background: #2D81FF;
border-radius: 44rpx;
line-height: 88rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
text-align: center;
&.del {
background: #EBEBEB;
color: #323232;
}
& + .btn {
margin-left: 20rpx;
}
.del_btn{
margin-top: 20rpx;
}
}
</style>
\ No newline at end of file
... ...
<template>
<view>
<view class="stu_list">
<view class="add_li">
<view class="container">
<view class="card">
<picker v-if="datas_stu.length>0" mode="selector" :range="datas_stu" range-key="name" @change="stu_change">
<view class="add_li_box">
<view class="">
<view class="cell">
<view class="cell-label">
学员姓名
</view>
<view class="cell-content">
<input type="text" placeholder="请选择" v-model="name" disabled="true">
</view>
</picker>
</view>
<view class="add_li">
</picker>
<picker mode="date" :value="sx_time" :start="startDate" :end="endDate" @change="bindDateChange">
<view class="add_li_box">
<view class="">
<view class="cell">
<view class="cell-label">
访谈时间
</view>
<view class="">
<view class="cell-content">
{{sx_time?sx_time:'请选择'}}
</view>
</view>
</picker>
</view>
<view class="add_li" v-for="(item,index) in diy_data">
<view class="add_li_tit">
{{item.title}}
</view>
<view class="add_li_content">
{{item.content}}
</view>
</view>
<view class="add_li">
<view class="add_li_box">
<view class="">
<view class="card">
<view class="cell">
<view class="cell-label">
自定义标题与内容
</view>
<view class="cell-content">
<view class="add_diy" @click="tk_show=true">
<view class="icon">+</view>
<view>
添加
</view>
</view>
</view>
</view>
<view
class="cell column"
v-for="(item,index) in diy_data"
:key="index"
:class="{'not-border': index === (diy_data.length -1)}"
>
<view class="cell-label">
{{item.title}}
</view>
<view class="cell-content">
<view class="textarea-view">
{{item.content}}
</view>
</view>
</view>
</view>
<u-popup :show="tk_show" @close="close" @open="open">
<view class="tk_box_s">
<view class="pop_tit">
... ... @@ -60,14 +71,27 @@
<textarea class="diy_content" placeholder="请输入内容" v-model="diy_content"></textarea>
</view>
</u-popup>
<view class="bz_add" >
<view class="" @click="save_fuc">
保存
</view>
<view v-if="options.id" class="del_btn" @click="del_fuc(options)">
<view class="footer" >
<view v-if="options.id" class="btn del" @click="show = true">
删除
</view>
<view class="btn" @click="save_fuc">
保存
</view>
</view>
<u-modal
:show="show"
title="提示"
content="是否删除该记录?"
@confirm="del_fuc(options)"
@cancel="show = false"
:asyncClose="true"
:showCancelButton="true"
>
</u-modal>
</view>
</template>
... ... @@ -105,7 +129,9 @@
diy_tit:'',
diy_content:'',
diy_data:[],
datas_stu:[]
datas_stu:[],
show: false
};
},
computed: {
... ... @@ -124,14 +150,6 @@
},
methods:{
del_fuc(item){
//teacher/interviewr_del 常规访谈删除接口
//teacher/interview_del 入学关怀删除接口
uni.showModal({
title: '提示',
content: '是否删除该记录',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
var jkurl='teacher/interviewr_del'
var datas={
id:item.id
... ... @@ -142,6 +160,7 @@
}
// that.$service.P_post(jkurl, datas,header).then(res => {
that1.$service.P_post(jkurl, datas).then(res => {
this.show = false;
that1.btnkg = 0
console.log(res)
if (res.code == 1){
... ... @@ -179,6 +198,7 @@
}
}
}).catch(e => {
this.show = false;
that1.htmlReset = 1
that1.btnkg = 0
// that1.$refs.htmlLoading.htmlReset_fuc(1)
... ... @@ -188,11 +208,6 @@
title: '获取数据失败,请检查您的网络连接'
})
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
stu_change(e){
var index=e.detail.value
... ... @@ -435,31 +450,51 @@
}
</script>
<style lang="less" scoped>
.stu_list {
width: 100%;
min-height: 100rpx;
background: #FFFFFF;
border-radius: 10rpx;
.add_li{
width: 100%;
min-height: 90rpx;
padding:28rpx 30rpx;
&+.add_li{
border-top: 1px solid #eee;
<style lang="scss" scoped>
.container {
padding: 25rpx 25rpx 140rpx;
}
.add_li_box{
width: 100%;
.card {
padding: 0 30rpx;
background-color: #fff;
border-radius: 20rpx;
& + .card {
margin-top: 20rpx;
}
.cell {
padding: 30rpx 0;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #F3F3F7;
& .not-border {
border: 0;
}
&-label {
font-size: 30rpx;
color: #545d71;
input{
font-family: PingFang SC;
font-weight: 500;
color: #000000;
}
&-content {
flex: 1;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #646464;
display: flex;
justify-content: flex-end;
input {
width: 100%;
text-align: right;
min-width: 0;
}
}
.icon {
color: #ACACAC;
font-size: 30rpx;
}
.sf_v_btn_b{
display: flex;
align-items: center;
... ... @@ -477,52 +512,65 @@
text{
font-size: 18rpx;
line-height: 20rpx;
color: #fff;
}
}
.add_diy{
font-size: 30rpx;
color: #2D81FF;
}
textarea {
width: 100%;
height: 230rpx;
background: #F5F6F8;
padding: 20rpx;
box-sizing: border-box;
}
.add_li_tit{
font-size: 30rpx;
color: #545D71;
line-height: 43rpx;
margin-bottom: 12rpx;
:deep(.textarea-placeholder) {
color: #979797;
}
.add_li_content{
font-size: 30rpx;
color: #A6A9B1;
line-height: 43rpx;
.textarea-view {
width: 100%;
// height: 120rpx;
letter-spacing:0;
background: #F5F6F8;
padding: 20rpx;
box-sizing: border-box;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 400;
color: #646464;
}
.add_diy{
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #646464;
display: flex;
align-items: center;
justify-content: flex-end;
.icon {
background: #2D81FF;
font-size: 24rpx;
margin-right: 20rpx;
width: 30rpx;
height: 30rpx;
text-align: center;
line-height: 30rpx;
color: #fff;
}
}
.bz_add{
width: 100%;
// position: fixed;
// bottom: 0;
// background: #f8f8f8;
// z-index: 800;
// left: 0;
padding: 30rpx 0;
view{
font-size: 32rpx;
color: #FFFFFF;
}
.column {
flex-direction: column;
.cell-label {
width: 100%;
height: 90rpx;
background: #2D81FF;
border-radius: 10rpx;
display: flex;
align-items: center;
justify-content: center;
}
.del_btn{
.cell-content {
margin-top: 20rpx;
width: 100%;
}
}
}
.tk_box_s {
background: #ffffff;
.pop_tit{
width: 100%;
height: 100rpx;
... ... @@ -536,10 +584,6 @@
color: #2D81FF;
}
}
.tk_box_s{
// height: 600rpx;
background: #ffffff;
}
.diy_tit{
width: 100%;
height: 100rpx;
... ... @@ -556,4 +600,37 @@
color: #333;
box-sizing: border-box;
}
}
.footer {
position: fixed;
left: 0;
bottom: 0;
z-index: 99;
width: 100%;
background-color: #fff;
padding: 16rpx 25rpx;
display: flex;
align-items: center;
.btn {
flex: 1;
height: 88rpx;
background: #2D81FF;
border-radius: 44rpx;
line-height: 88rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
text-align: center;
&.del {
background: #EBEBEB;
color: #323232;
}
& + .btn {
margin-left: 20rpx;
}
}
}
</style>
\ No newline at end of file
... ...
<template>
<view class="teacher_praise">
<view class="tel_index_bg"></view>
<view class="teacher_praise-main">
<scroll-view :scroll-y="true" class="praise_andLike-list" @scrolltolower="getData">
<view v-if="dataList.length">
<praise-item :type="LIKETYPE.TEACHERSEND" :info="item" v-for="item in dataList" :key="item.id"></praise-item>
<view class="card" v-for="item in dataList" :key="item.id">
<view class="user">
<u--image
shape="circle"
height="60rpx"
width="60rpx"
:src="item.uimg"
>
</u--image>
<view class="info">
<view class="name">
{{ item.uname }}
</view>
<view class="time">
{{ item.create_time }}
</view>
</view>
</view>
<view class="content">
{{ item.content }}
</view>
<u-empty v-else mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" ></u-empty>
</scroll-view>
</view>
<u-empty v-if="!dataList.length" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" ></u-empty>
</view>
</template>
<script>
import praise_item from "@/components/praise_item/praise_item.vue"
import { LIKETYPE } from "@/emit/index.js"
export default {
components: {
PraiseItem: praise_item
},
data() {
return {
LIKETYPE,
... ... @@ -57,20 +66,41 @@
<style lang="scss">
.teacher_praise{
.tel_index_bg{
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #ffffff 25%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
padding: 25rpx;
.card {
padding: 30rpx;
background-color: #fff;
border-radius: 20rpx;
& + .card {
margin-top: 20rpx;
}
.user {
display: flex;
.info {
flex: 1;
margin-left: 30rpx;
.name {
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
}
.time {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #979797;
margin-top: 10rpx;
}
}
}
.teacher_praise-main{
padding: 40rpx 25rpx;
position: relative;
z-index: 1;
.praise_andLike-list{
height: calc(100vh - 122rpx);
.content {
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 400;
color: #323232;
line-height: 42px;
margin-top: 20rpx;
}
}
}
... ...
... ... @@ -175,7 +175,8 @@
"style" :
{
"navigationBarTitleText": "星级排行榜",
"enablePullDownRefresh": false
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
... ... @@ -461,14 +462,16 @@
"path": "tch_kq/tch_kq",
"style": {
"navigationBarTitleText": "考勤积分",
"enablePullDownRefresh": false
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "tch_rank/tch_rank",
"style": {
"navigationBarTitleText": "班级排行榜",
"enablePullDownRefresh": false
"navigationBarTitleText": "校园排行榜",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
... ... @@ -558,7 +561,7 @@
}, {
"path": "tch_msg/tch_msg",
"style": {
"navigationBarTitleText": "设置",
"navigationBarTitleText": "修改资料",
"enablePullDownRefresh": false
}
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<topbar bg_color="#2d81ff">
<text style="color: #fff;"></text>
<text style="color: #fff;">首页</text>
<text style="color: #fff;"></text>
</topbar>
<view class="tch_box">
<view class="tel_index_bg"></view>
<view v-if="userDatas" class="tch_main">
<view class="tch_user dis_flex aic " @click="$service.jump" data-url="/pagesA/tch_msg/tch_msg">
<!-- <image class="user_tx" src="/static/images/tx.png" mode="aspectFill"></image> -->
<myLazyLoad class="user_tx" :src="$service.getimg(userDatas.img)" mode="aspectFill" :borderRadius="112"></myLazyLoad>
<view class="flex_1" @click="cli_fuc">
<view class="user_name dis_flex aic">
{{userDatas.nick||''}}
<text v-if="userDatas.is_assistant == 2">班主任</text>
<text v-else>助教老师</text>
</view>
<view class="user_id" >{{userDatas.class_title||''}}</view>
</view>
<text class="icon icon-arrow-right-copy"></text>
</view>
<!-- 班级概况 start -->
<view class="tit_box">班级概况</view>
<view class="tch_banji">
<view class="bjf dis_flex_c aic ju_c" @click="$service.jump" data-url="/pagesA/tch_kq/tch_kq" data-login="true">
<view class="bjf_num">{{userDatas.class_num||''}}</view>
<view class="bjf_text">
班级分
<text class="icon icon-arrow-right-copy"></text>
</view>
</view>
<view class="bj_sg"></view>
<view class="bj_xq">
<view class="bj_pai dis_flex aic" @click="$service.jump" data-url="/pagesA/tch_rank/tch_rank" data-login="true">
<text class="bj_pait"></text>
<view class="flex_1">班级排名</view>
<view class="bj_painum">第{{userDatas.class_sort||''}}名</view>
<text class="icon icon-arrow-right-copy"></text>
</view>
<view class="bj_pai dis_flex aic" @click="$service.jump" data-url="/pagesA/tch_vio/tch_vio" data-login="true">
<text class="bj_paiw"></text>
<view class="flex_1">违纪情况</view>
<view class="bj_painum">{{userDatas.class_break||''}}</view>
<text class="icon icon-arrow-right-copy"></text>
</view>
</view>
</view>
<!-- 班级概况 end -->
<!-- 学员概况 start -->
<view class="tit_box">学员概况</view>
<view class="xygk">
<view class="gk_li" @click="$service.jump" data-url="/pagesA/stu_list/stu_list" data-login="true">
<image src="/static/images/tch/home_icon_namelist.png" mode="aspectFit"></image>
本班学员名单
</view>
<view class="gk_li" @click="$service.jump" data-url="/pagesA/stumsg_list/stumsg_list" data-login="true">
<image src="/static/images/tch/home_icon_archives.png" mode="aspectFit"></image>
学员档案信息
</view>
<view class="gk_li" @click="$service.jump" data-url="/pagesA/stu_ft_list/stu_ft_list" data-login="true">
<image src="/static/images/tch/home_icon_records.png" mode="aspectFit"></image>
学员访谈记录
</view>
<view class="gk_li" @click="$service.jump" data-url="/pagesA/stu_hddk_add/stu_hddk_add" data-login="true">
<image src="/static/images/tch/home_icon_checklist.png" mode="aspectFit"></image>
核对到课名单
</view>
<view class="gk_li" @click="$service.jump" data-url="/pages_v2/thc_my_pf/thc_my_pf" data-login="true">
<image src="/static/images/v2/my_pf.png" mode="aspectFit"></image>
学员对我的评分
</view>
<view class="gk_li" @click="$service.jump" data-url="/pages_v2/tch_pf_list/tch_pf_list" data-login="true">
<image src="/static/images/v2/rank.png" mode="aspectFit"></image>
星级排行榜
</view>
<view class="gk_li" @click="$service.jump" data-url="/page_admin/teacher_praise/teacher_praise" data-login="true">
<image src="/static/images/v2/biaoyangdainz.png" mode="aspectFit"></image>
点赞表扬
</view>
</view>
<!-- <view class="tit_box">学员对我的评分</view> -->
<!-- 学员概况 end -->
<!-- 近期入学名单 start -->
<view class="tit_box">近期入学名单</view>
<view class="rxmd_list">
<view class="rxmd_li" v-for="(item,index) in md_list" :key="index">
<view class="rxmd_li_name dis_flex aic">
<text class="oh1">{{item.name}} </text>
<image v-if="item.sex==2" src="/static/images/tch/icon_female.png" mode="aspectFit"></image>
<image v-else src="/static/images/tch/icon_male.png" mode="aspectFit"></image>
</view>
<view class="rxmd_li_id flex_1">
{{item.phone||''}}
</view>
<view class="rxmd_li_time">
{{item.add_time||''}} 入学
</view>
</view>
<u-empty v-if="md_list.length==0"
mode="data"
text="暂无名单"
icon="/static/images/tch/img_blank.png"
>
</u-empty>
</view>
<!-- 近期入学名单 end -->
</view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</template>
<script>
import Vue from 'vue'
import {
mapState,
mapMutations
} from 'vuex'
var that
export default {
data() {
return {
options:'',
datas:'',
md_list:[],
shownum:0
}
},
computed: {
...mapState(['hasLogin', 'forcedLogin', 'userName', 'userinfo','nowtime', 'userDatas']),
},
onLoad(e) {
that=this
that.options=e||{}
console.log(e)
that.getdata()
},
onShow() {
if(that.shownum>0){
that.getdata()
}
that.shownum++
},
methods: {
// ...mapMutations(['wxshouquan','login']),
test(){},
cli_fuc(){
console.log(1)
},
getdata() {
var datas = {}
var jkurl = '/teacher'
that.$service.P_post(jkurl, datas).then(res => {
that.btnkg = 0
console.log(res)
if (res.code == 1) {
that.htmlReset = 0
var datas = res.data
console.log(typeof datas)
if (typeof datas == 'string') {
datas = JSON.parse(datas)
}
console.log(res)
that.$store.commit('setuser', datas)
if(datas.list){
that.md_list=datas.list.data
}
} else {
if (res.msg) {
uni.showToast({
icon: 'none',
title: res.msg
})
} else {
uni.showToast({
icon: 'none',
title: '获取数据失败'
})
}
}
}).catch(e => {
that.htmlReset = 1
that.btnkg = 0
// that.$refs.htmlLoading.htmlReset_fuc(1)
console.log(e)
uni.showToast({
icon: 'none',
title: '获取数据失败,请检查您的网络连接'
})
})
},
getimg(img){
return service.getimg(img)
},
jump(e) {
var that = this
if (that.btnkg == 1) {
return
} else {
that.btnkg = 1
setTimeout(function() {
that.btnkg = 0
}, 2000)
}
console.log(e.currentTarget.dataset.type)
service.jump(e)
},
goback(){
uni.navigateBack()
},
func(){
// that.$store.commit('setSystem',datas.system)
},
}
}
</script>
<style lang="scss" scoped>
.wrap_box{
width: 100%;
// padding: 30rpx;
position: relative;
background: #F8F8F8;
min-height: 100vh;
}
.tel_index_bg{
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #ffffff 25%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.tch_box{
width: 100%;
position: relative;
}
.tch_main{
width: 100%;
position: relative;
z-index: 2;
padding: 28rpx;
}
.tch_user{
width: 100%;
min-height: 176rpx;
background: #FFFFFF;
border-radius: 20rpx;
padding: 28rpx;
.user_tx{
width: 112rpx;
height: 112rpx;
border-radius: 50%;
overflow: hidden;
margin-right: 23rpx;
}
.icon{
font-size: 24rpx;
color: #bbb;
}
.user_name{
font-size: 32rpx;
color: #545D71;
margin-bottom: 10rpx;
font-weight: bold;
text{
font-size: 24rpx;
color: #4086ee;
padding: 0 9rpx;
height: 34rpx;
background: rgba(64, 134, 238, .1);
border-radius: 4rpx;
margin-left: 10rpx;
font-weight: normal;
}
}
.user_id{
font-size: 28rpx;
color: #7C8086;
}
}
.tit_box{
font-size: 32rpx;
font-weight: bold;
color: #545D71;
height: 80rpx;
margin-top: 14rpx;
display: flex;
align-items: center;
}
.tch_banji{
width: 100%;
min-height: 210rpx;
background: #FFFFFF;
border-radius: 20rpx;
padding: 28rpx;
display: flex;
align-items: center;
justify-content: space-between;
.bj_sg{
width: 1px;
height: 120rpx;
background: #EEEEEE;
border-radius: 1px;
}
.bjf{
width: 260rpx;
padding-right: 30rpx;
.bjf_num{
font-size: 60rpx;
font-family: Arial;
font-weight: bold;
color: #545D71;
line-height: 70rpx;
}
.bjf_text{
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 400;
color: #545D71;
display: flex;
align-items: center;
padding-left: 35rpx;
.icon{
font-size: 18rpx;
color: #ddd;
margin-left: 20rpx;
}
}
}
.bj_xq{
width: 380rpx;
padding-left: 28rpx;
.bj_pai{
width: 100%;
display: flex;
align-items: center;
font-size: 28rpx;
color: #7C8086;
height: 60rpx;
.bj_pait{
width: 16rpx;
height: 16rpx;
background: #2D81FF;
border-radius: 50%;
margin-right: 10rpx;
}
.bj_paiw{
width: 16rpx;
height: 16rpx;
background: #FF9A18;
border-radius: 50%;
margin-right: 10rpx;
}
.bj_painum{
font-size: 28rpx;
color: #545D71;
}
.icon{
font-size: 18rpx;
color: #ddd;
margin-left: 10rpx;
}
}
}
}
.xygk{
width: 100%;
display: flex;
flex-wrap: wrap;
.gk_li{
width: 333rpx;
height: 132rpx;
background: #FFFFFF;
border-radius: 20rpx;
display: flex;
align-items: center;
padding: 28rpx;
padding-right: 10rpx;
font-size: 30rpx;
margin-right: 28rpx;
&:nth-child(2n){
margin-right: 0;
}
&:nth-child(n+3){
margin-top: 28rpx;
}
image{
width: 68rpx;
height: 76rpx;
margin-right: 15rpx;
position: relative;
top: 4rpx;
}
}
}
.rxmd_list{
width: 100%;
background: #FFFFFF;
border-radius: 10rpx;
.rxmd_li{
width: 100%;
height: 94rpx;
padding: 0 28rpx;
display: flex;
align-items: center;
color: #545D71;
&+.rxmd_li{
border-top: 1px solid #eee;
}
.rxmd_li_name{
// padding: 0 14rpx;
width: 160rpx;
font-size: 30rpx;
// padding-right: 10rpx;
text{
max-width: 120rpx;
font-size: 30rpx;
line-height: 34rpx;
height: 34rpx;
}
image{
width: 28rpx;
height: 28rpx;
margin-left: 12rpx;
flex: none;
}
}
.rxmd_li_id{
font-size: 30rpx;
letter-spacing: 0;
// padding: 0 14rpx;
padding-left: 10rpx;
}
.rxmd_li_time{
font-size: 28rpx;
letter-spacing: 0;
}
}
}
</style>
<template>
<view class="container">
<CustomReturn title="听课教室选座" color="#323232" :bgColor="bgColor" :isShowBreak="false">
<CustomReturn title="首页" color="#323232" :bgColor="bgColor" :isShowBreak="false">
<template v-slot:left>
<view class="set-up">
<view class="set-up" @click="$service.jump" data-url="/pagesB/newSetting/newSetting">
<image src="/static/imagesV2/tch_index/icon9.png" mode="aspectFill"></image>
</view>
</template>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- stu_bz_index -->
<view class="tel_index_bg"></view>
<view class="bz_box">
<view class="edit_box">
<view v-if="options.id" class="edit_tit">
<text class="edit_type"></text>
<view class="flex_1">
<!-- 2022/02/16 16:23:32 -->
<view class="bz-box">
<view class="edit-box">
<view class="edit-tit" v-if="options.id" >
<text class="edit-tit_icon"></text>
<view class="edit-tit_content">
{{time}}
</view>
</view>
<picker v-else @change="bindPickerChange" :value="index" :range="tabs" range-key="title">
<view class="edit_tit">
<view class="edit_l">
<picker @change="bindPickerChange" :value="index" :range="tabs" range-key="title" v-else>
<view class="cell">
<view class="cell-label">
选择分类
</view>
<view class="edit_r">
{{tabs[index].title}}<text class="icon icon-xiala"></text>
<view class="cell-content">
{{tabs[index].title}}
<view class="icon">
<u-icon size="24rpx" name="arrow-down"/>
</view>
</view>
</view>
</picker>
<view class="edit_bz">
备注内容
<view class="cell ">
<view class="remarks">
<textarea v-model="content" placeholder="请输入备注的内容" placeholder-class="textarea-placeholder" ></textarea>
</view>
</view>
<textarea class="edit_content" placeholder="请输入备注的内容" v-model="content"></textarea>
</view>
<view class="bz_add" >
<view class="bz-btn" >
<view class="" @click="save_fuc" data-url="/pagesA/stu_bz_edit/stu_bz_edit">
保存
</view>
</view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</template>
... ... @@ -262,80 +260,86 @@
background: #F8F8F8;
position: relative;
}
.tel_index_bg{
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.bz_box{
width: 100%;
position: relative;
z-index: 2;
.bz-box {
padding: 30rpx;
}
.edit_box{
width: 100%;
height: 456rpx;
background: #FFFFFF;
border-radius: 10rpx;
margin-bottom: 50rpx;
.edit-box {
padding: 0 30rpx;
.edit_tit{
width: 100%;
height: 100rpx;
border-bottom: 1px solid #eee;
border-radius: 20rpx;
background-color: #fff;
.edit-tit {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 28rpx;
color: #A9B1C0;
.edit_type{
padding: 20rpx 0;
&_icon {
width: 14rpx;
height: 14rpx;
background: #2D81FF;
border-radius: 50%;
margin-right: 10rpx;
margin-right: 20rpx;
}
.edit_l{
font-size: 32rpx;
color: #545D71;
&_content {
flex: 1;
}
.edit_r{
}
.cell {
display: flex;
align-items: center;
padding: 20rpx 0;
.cell-label {
width: 150rpx;
font-size: 30rpx;
color: #545D71;
.icon{
font-size: 20rpx;
color: rgba(153, 153, 153, .5);
font-family: PingFang SC;
font-weight: 500;
}
.cell-content {
flex: 1;
display: flex;
align-items: center;
justify-content: flex-end;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
.icon {
margin-left: 10rpx;
}
}
.edit_bz{
margin-top: 25rpx;
font-size: 32rpx;
color: #545D71;
}
.edit_content{
.remarks {
width: 100%;
height: 350rpx;
font-size: 28rpx;
textarea {
width: 100%;
padding: 10rpx 0;
height: 230rpx;
font-size: 32rpx;
height: 100%;
background: #F5F6F8;
padding: 20rpx;
box-sizing: border-box;
font-size: 26rpx;
}
:deep(.textarea-placeholder) {
color: #979797;
}
}
}
}
.bz_add{
width: 100%;
view{
font-size: 32rpx;
color: #FFFFFF;
width: 100%;
height: 90rpx;
.bz-btn {
margin: 30rpx;
view {
height: 88rpx;
line-height: 88rpx;
background: #2D81FF;
border-radius: 10rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 44rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
text-align: center;
}
}
</style>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- stu_bz_index -->
<view class="tel_index_bg"></view>
<view class="bz_box">
<view class="bz_tab">
<view v-for="(item,index) in tabs" class="tab_li" :class="{active:active==item.id}" @click="setac_fuc(item.id)">
<view v-for="(item,index) in tabs" :key="index" class="tab_li" :class="{active:active==item.id}" @click="setac_fuc(item.id)">
{{item.title}}
</view>
</view>
<view class="bz_list">
<view class="bz_li" v-for="(item,index) in datas">
<view class="li_msg">
<view class="li_time">
<text></text>{{item.create_time}}
</view>
<view class="li_inr">
<view class="list">
<view class="item" v-for="(item,index) in datas" :key="index">
<view class="item-remarks">
{{item.content}}
</view>
<view class="item-footer">
<view class="time">
{{item.create_time}}
</view>
<view class="li_b">
<view class="li_btn" @click="del_fuc(item)">
删除
<view
class="btn"
@click="$service.jump"
:data-url="'/pagesA/stu_bz_edit/stu_bz_edit?id='+item.id+'&time='+item.create_time+'&content='+item.content">
<view class="icon">
<image src="/static/imagesV2/tch_index/icon11.png" mode=""></image>
</view>
<view class="li_btn" @click="$service.jump" :data-url="'/pagesA/stu_bz_edit/stu_bz_edit?id='+item.id+'&time='+item.create_time+'&content='+item.content">
修改
</view>
<view class="btn" @click="showDelModal(item)">
<view class="icon">
<image src="/static/imagesV2/tch_index/icon12.png" mode=""></image>
</view>
删除
</view>
</view>
</view>
<view class="bz_li" v-if="datas.length==0">
... ... @@ -42,9 +47,19 @@
添加
</view>
</view>
<u-modal
:show="show"
title="提示"
content="是否删除该备注?"
@confirm="del_fuc(current)"
@cancel="show = false"
:asyncClose="true"
:showCancelButton="true"
>
</u-modal>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</template>
... ... @@ -76,7 +91,9 @@
id:3
},
],
active:1
active:1,
show: false,
current: null
}
},
computed: {
... ... @@ -102,18 +119,17 @@
that.active=index
that.onRetry()
},
showDelModal(item) {
this.show = true;
this.current = item;
},
del_fuc(item){
uni.showModal({
title: '提示',
content: '是否删除该备注',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
var datas={
id: item.id
}
var jkurl='/teacher/remark_del'
that.$service.P_post(jkurl, datas).then(res => {
this.show = false;
that.btnkg = 0
console.log(res)
if (res.code == 1) {
... ... @@ -147,6 +163,7 @@
}
}
}).catch(e => {
this.show = false;
that.htmlReset = 1
that.btnkg = 0
// that.$refs.htmlLoading.htmlReset_fuc(1)
... ... @@ -156,12 +173,6 @@
title: '获取数据失败,请检查您的网络连接'
})
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
onRetry(){
that.page=1
... ... @@ -270,95 +281,81 @@
// #endif
background: #F8F8F8;
position: relative;
padding-bottom: 130rpx;
}
.tel_index_bg{
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.bz_box{
width: 100%;
position: relative;
z-index: 2;
padding: 0 30rpx 30rpx;
}
.bz_tab{
width: 100%;
height: 90rpx;
display: flex;
align-items: center;
justify-content: space-around;
background-color: #fff;
border-top:1rpx solid #f3f4f6;
}
.tab_li{
color: rgba(255, 255, 255, .6);
font-size: 32rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
padding:30rpx;
position: relative;
padding: 10rpx 0rpx;
&.active{
color: #fff;
color: #2D81FF;
&:after{
content:'';
content: '';
position: absolute;
bottom: 0;
bottom: 8rpx;
left: 50%;
margin-left: -19rpx;
width: 38rpx;
height: 5rpx;
background: #FFFFFF;
border-radius: 3rpx;
background-image: url(@/static/imagesV2/icon23.png);
background-size: 100% 100%;
transform: translateX(-50%);
height: 24rpx;
width: 24rpx;
}
}
}
.bz_list{
width: 100%;
padding-top: 10rpx;
padding-bottom: 130rpx;
.bz_li{
width: 100%;
// height: 285rpx;
background: #FFFFFF;
border-radius: 10rpx;
&+.bz_li{
.list{
margin: 20rpx;
.item {
background-color: #fff;
border-radius: 20rpx;
padding: 30rpx;
& + .item {
margin-top: 20rpx;
}
.li_msg{
width: 100%;
padding: 30rpx;
.li_time{
font-size: 28rpx;
color: #A9B1C0;
&-remarks {
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
}
&-footer {
display: flex;
align-items: center;
text{
width: 14rpx;
height: 14rpx;
background: #2D81FF;
border-radius: 50%;
margin-right: 10rpx;
}
}
.li_inr{
padding-top: 15rpx;
font-size: 30rpx;
color: #545D71;
line-height: 48rpx;
margin-top: 30rpx;
.time {
flex: 1;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
}
}
.li_b{
width: 100%;
height: 90rpx;
padding: 0 30rpx;
border-top: 1px solid #eee;
.btn {
display: flex;
align-items: center;
flex-direction: row-reverse;
.li_btn{
font-size: 28rpx;
color: #A9B1C0;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #646464;
margin-left: 30rpx;
.icon {
margin-right: 10rpx;
width: 30rpx;
height: 30rpx;
}
}
}
}
... ... @@ -367,20 +364,20 @@
width: 100%;
position: fixed;
bottom: 0;
background: #f8f8f8;
background: #fff;
z-index: 800;
left: 0;
padding: 0 30rpx 30rpx;
view{
font-size: 32rpx;
color: #FFFFFF;
width: 100%;
height: 90rpx;
padding: 16rpx 26rpx;
view {
background: #2D81FF;
border-radius: 10rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 44rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
height: 88rpx;
line-height: 88rpx;
text-align: center;
}
}
</style>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- stu_bz_index -->
<view class="tel_index_bg"></view>
<u-sticky>
<view class="bz_box">
<!-- <view class="stu_num">
<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
<view class="">
核对时间:{{sx_time}}<text class="icon icon-arrow-right-copy-copy"></text>
</view>
</picker>
<picker @change="bindPickerChange" :value="index" :range="tabs" range-key="title">
<view class="">
{{tabs[index].title}}
<text class="icon icon-arrow-right-copy-copy"></text>
</view>
</picker>
</view> -->
<view class="bz_tab">
<view v-for="(item,index) in tabs" class="tab_li" :class="{active:active==index}" @click="setac_fuc(index)">
{{item.title}}
</view>
</view>
</view>
</u-sticky>
<ftadd v-if="active==0" :options="options"></ftadd>
<ftadd1 v-else :options="options"></ftadd1>
<!-- <view class="stu_list">
</view> -->
</view>
<!-- <view class="bz_add" >
<view class="" @click="$service.jump" :data-url="'/pagesA/stu_ft_add/stu_ft_add?type='+active">
添加
</view>
</view> -->
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</template>
... ... @@ -268,76 +246,41 @@
padding-bottom: 10rpx;
}
.tel_index_bg {
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.bz_box {
.bz_box{
width: 100%;
position: relative;
z-index: 2;
padding:0 30rpx 30rpx;
.stu_num {
width: 100%;
height: 80rpx;
display: flex;
align-items: center;
font-size: 28rpx;
color: #fff;
justify-content: space-between;
.icon{
font-size: 24rpx;
margin-left: 10rpx;
}
}
}
.save_btn {
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
color: #FFFFFF;
width: 100%;
height: 90rpx;
background: #2D81FF;
border-radius: 10rpx;
margin-top: 40rpx;
background: #F8F8F8;
}
.bz_tab{
width: 100%;
height: 90rpx;
display: flex;
align-items: center;
justify-content: space-around;
background-color: #fff;
border-top:1rpx solid #f3f4f6;
}
.tab_li{
color: rgba(255, 255, 255, .6);
font-size: 32rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
padding:30rpx;
position: relative;
padding: 10rpx 0rpx;
&.active{
color: #fff;
color: #2D81FF;
&:after{
content:'';
content: '';
position: absolute;
bottom: 0;
bottom: 8rpx;
left: 50%;
margin-left: -19rpx;
width: 38rpx;
height: 5rpx;
background: #FFFFFF;
border-radius: 3rpx;
background-image: url(@/static/imagesV2/icon23.png);
background-size: 100% 100%;
transform: translateX(-50%);
height: 24rpx;
width: 24rpx;
}
}
}
</style>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- stu_bz_index -->
<view class="tel_index_bg"></view>
<u-sticky>
<view class="bz_box">
<!-- <view class="stu_num">
<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
<view class="">
核对时间:{{sx_time}}<text class="icon icon-arrow-right-copy-copy"></text>
</view>
</picker>
<picker @change="bindPickerChange" :value="index" :range="tabs" range-key="title">
<view class="">
{{tabs[index].title}}
<text class="icon icon-arrow-right-copy-copy"></text>
</view>
</picker>
</view> -->
<view class="bz_tab">
<view v-for="(item,index) in tabs" class="tab_li" :class="{active:active==index}" @click="setac_fuc(index)">
<view v-for="(item,index) in tabs" :key="index" class="tab_li" :class="{active:active==index}" @click="setac_fuc(index)">
{{item.title}}
</view>
</view>
<view class="stu_list">
<view class="search_box dis_flex aic">
<view class="search_box">
<u-icon name="search" color="#979797" size="28" @click="onRetry"></u-icon>
<u-input
class="search_box-input"
placeholder="请输入搜索内容"
v-model="name_s"
suffixIconStyle="color: #909399"
placeholder-style="color: #C3C3C3"
@confirm="onRetry"
></u-input>
<u-icon name="search" color="#909399" size="28" @click="onRetry"></u-icon>
</view>
<view class="stu_li" v-for="(item,index) in datas" @click="jump_fuc(item)">
<view class="stu_li_name">
{{item.name}}
<!-- <image v-if="index%2==0" src="/static/images/tch/icon_female.png" mode="aspectFit"></image>
<image v-else src="/static/images/tch/icon_male.png" mode="aspectFit"></image> -->
</view>
<view class="flex_1"></view>
<view class="sf_v">
{{item.add_time}}<text class="icon icon-arrow-right-copy"></text>
</u-sticky>
<view class="list">
<view class="item" v-for="(item,index) in datas" :key="index" @click="jump_fuc(item)">
<view class="name">
{{item.name}}
</view>
<view class="tirm">
{{item.add_time}}
</view>
<u-empty v-if="datas.length==0"
mode="data"
text="暂无记录"
icon="/static/images/tch/img_blank.png"
>
</u-empty>
<text class="icon icon-arrow-right-copy"></text>
</view>
</view>
<view class="bz_add" >
... ... @@ -56,8 +38,6 @@
添加
</view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</template>
... ... @@ -289,160 +269,104 @@
padding-bottom: 150rpx;
}
.tel_index_bg {
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.bz_box {
.bz_box{
width: 100%;
position: relative;
z-index: 2;
padding:0 30rpx 30rpx;
.stu_num {
background: #F8F8F8;
}
.bz_tab{
width: 100%;
height: 80rpx;
display: flex;
align-items: center;
justify-content: space-around;
background-color: #fff;
border-top:1rpx solid #f3f4f6;
}
.tab_li{
font-size: 28rpx;
color: #fff;
justify-content: space-between;
.icon{
font-size: 24rpx;
margin-left: 10rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
padding:30rpx;
position: relative;
&.active{
color: #2D81FF;
&:after{
content: '';
position: absolute;
bottom: 8rpx;
left: 50%;
background-image: url(@/static/imagesV2/icon23.png);
background-size: 100% 100%;
transform: translateX(-50%);
height: 24rpx;
width: 24rpx;
}
}
}
.stu_list {
width: 100%;
min-height: 100rpx;
background: #FFFFFF;
border-radius: 10rpx;
.stu_li {
width: 100%;
height: 100rpx;
.search_box {
background-color:#fff;
display: flex;
border-radius: 36rpx;
align-items: center;
padding: 0 30rpx;
&+.stu_li {
border-top: 1px solid #eee;
}
.stu_li_name {
font-size: 30rpx;
color: #545D71;
margin-bottom: 10rpx;
image {
width: 28rpx;
height: 28rpx;
margin-left: 5rpx;
padding: 0 20rpx 0 30rpx;
margin: 25rpx;
&-input {
flex-grow: 1;
}
}
.sf_v {
font-size: 30rpx;
color: #A9B1C0;
.list {
padding: 0 25rxp 25rpx;
.item {
display: flex;
align-items: center;
.sf_v_btn {
display: flex;
align-items: center;
margin-left: 20rpx;
font-size: 30rpx;
color: #A9B1C0;
.sf_v_btn_b {
display: flex;
align-items: center;
justify-content: center;
font-size: 18rpx;
color: #fff;
width: 32rpx;
height: 32rpx;
border: 1px solid #DDDDDD;
border-radius: 50%;
margin-left: 8rpx;
&.active {
background: #2D81FF;
border: 1px solid #2D81FF;
}
}
}
}
background-color: #fff;
padding: 30rpx;
& + .item {
margin-top: 20rpx;
}
.name {
flex: 1;
font-size: 30rpx;
font-family: PingFang SC;
font-weight: bold;
color: #323232;
}
.save_btn {
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
color: #FFFFFF;
width: 100%;
height: 90rpx;
background: #2D81FF;
border-radius: 10rpx;
margin-top: 40rpx;
}
.bz_tab{
width: 100%;
height: 90rpx;
display: flex;
align-items: center;
justify-content: space-around;
}
.tab_li{
color: rgba(255, 255, 255, .6);
font-size: 32rpx;
position: relative;
padding: 10rpx 0rpx;
&.active{
color: #fff;
&:after{
content:'';
position: absolute;
bottom: 0;
left: 50%;
margin-left: -19rpx;
width: 38rpx;
height: 5rpx;
background: #FFFFFF;
border-radius: 3rpx;
.time {
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 400;
color: #646464;
margin: 0 20rpx;
}
.icon {
color: #ACACAC;
font-size: 30rpx;
}
}
}
.bz_add{
width: 100%;
.bz_add {
position: fixed;
bottom: 0;
background: #f8f8f8;
z-index: 800;
left: 0;
padding: 30rpx;
view{
font-size: 32rpx;
color: #FFFFFF;
bottom: 0;
width: 100%;
height: 90rpx;
padding: 16rpx 25rpx;
background-color: #fff;
view {
background: #2D81FF;
border-radius: 10rpx;
display: flex;
align-items: center;
justify-content: center;
}
border-radius: 44rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
height: 88rpx;
line-height: 88rpx;
text-align: center;
}
.search_box{
border-bottom: 1px solid #ddd;
padding: 0 15rpx;
}
</style>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- stu_bz_index -->
<view class="tel_index_bg"></view>
<view class="bz_box">
<ftadd :options="options"></ftadd>
</view>
</view>
</template>
<script>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- stu_bz_index -->
<view class="tel_index_bg"></view>
<view class="bz_box">
<ftadd1 :options="options"></ftadd1>
</view>
</view>
</template>
<script>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- stu_bz_index -->
<view class="tel_index_bg"></view>
<view class="bz_box">
<view class="stu_num">
<view class="">
共{{datas.length}}人
<u-sticky>
<view class="head">
<view class="stu-num">
<text class="val">30</text>
</view>
<view class="" @click="$service.jump" data-url="/pagesA/stu_hddk_list/stu_hddk_list">
<view class="btn" @click="$service.jump" data-url="/pagesA/stu_hddk_list/stu_hddk_list">
查看历史记录
</view>
</view>
<view class="stu_list">
<view class="stu_li" v-for="(item,index) in datas">
<view class="stu_li_name">
</u-sticky>
<view class="list">
<view class="item" v-for="(item,index) in datas" :key="index">
<view class="info">
<view class="name">
{{item.name}}
<image v-if="item.sex!=1" src="/static/images/tch/icon_female.png" mode="aspectFit"></image>
<image v-else src="/static/images/tch/icon_male.png" mode="aspectFit"></image>
</view>
<view class="flex_1"></view>
<view class="sf_v">
<text>是否到课</text>
<view class="sf_v_btn" @click="set_fuc(item,true)">
<image class="gender" v-if="item.sex!=1" src="/static/imagesV2/stu_selection/icon_female.png" mode="aspectFit"></image>
<image class="gender" v-else src="/static/imagesV2/stu_selection/icon_male.png" mode="aspectFit"></image>
</view>
<view class="operate">
<view class="operate-label">
是否到课:
</view>
<view class="operate-content">
<view class="radio-view" @click="set_fuc(item,true)">
<view class="radio-view_icon">
<image v-show="!item.is_check" src="/static/imagesV2/tch_index/radio.png" mode="aspectFit"></image>
<image v-show="item.is_check" src="/static/imagesV2/tch_index/radio-active.png" mode="aspectFit"></image>
</view>
<view class="radio-view_text">
<view class="sf_v_btn_b" :class="{active:item.is_check}">
<text class="icon icon-duigou"></text>
</view>
</view>
<view class="sf_v_btn" @click="set_fuc(item,false)">
<view class="radio-view" @click="set_fuc(item,false)">
<view class="radio-view_icon">
<image v-show="item.is_check" src="/static/imagesV2/tch_index/radio.png" mode="aspectFit"></image>
<image v-show="!item.is_check" src="/static/imagesV2/tch_index/radio-active.png" mode="aspectFit"></image>
</view>
<view class="radio-view_text">
<view class="sf_v_btn_b" :class="{active:!item.is_check}">
<text class="icon icon-duigou"></text>
</view>
</view>
</view>
</view>
</view>
<view class="save_btn" @click="save_fuc">
</view>
<view class="footer">
<view class="btn" @click="save_fuc">
保存
</view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</template>
... ... @@ -314,7 +325,7 @@
<style lang="scss" scoped>
.wrap_box{
width: 100%;
// padding: 30rpx;
padding-bottom: 140rpx;
min-height: 100vh;
// #ifdef H5
min-height: calc(100vh - 44px);
... ... @@ -322,99 +333,98 @@
background: #F8F8F8;
position: relative;
}
.tel_index_bg{
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.bz_box{
width: 100%;
position: relative;
z-index: 2;
padding: 0 30rpx 50rpx;
.stu_num{
width: 100%;
height: 80rpx;
.head {
display: flex;
align-items: center;
font-size: 28rpx;
color: #fff;
justify-content: space-between;
padding: 30rpx;
background: #F8F8F8;
.stu-num {
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
.val {
color: #2D81FF;
}
}
.btn {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
}
}
.stu_list{
width: 100%;
min-height: 100rpx;
.list {
padding: 0 30rpx;
.item {
background: #FFFFFF;
border-radius: 10rpx;
.stu_li{
width: 100%;
height: 100rpx;
border-radius: 20rpx;
padding: 30rpx;
display: flex;
align-items: center;
padding: 0 30rpx;
&+.stu_li{
border-top: 1px solid #eee;
& + .item {
margin-top: 20rpx;
}
.stu_li_name{
font-size: 30rpx;
color: #545D71;
margin-bottom: 10rpx;
image{
width: 28rpx;
height: 28rpx;
margin-left: 5rpx;
.info {
flex: 1;
display: flex;
align-items: center;
}
.gender {
width: 29rpx !important;
height: 24rpx !important;
margin-left: 20rpx;
}
.sf_v{
font-size: 30rpx;
color: #A9B1C0;
.operate {
display: flex;
align-items: center;
.sf_v_btn{
&-label {
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #646464;
}
&-content {
flex: 1;
display: flex;
align-items: center;
margin-left: 20rpx;
font-size: 30rpx;
color: #A9B1C0;
.sf_v_btn_b{
.radio-view {
display: flex;
align-items: center;
justify-content: center;
font-size: 18rpx;
color: #fff;
width: 32rpx;
height: 32rpx;
border: 1px solid #DDDDDD;
border-radius: 50%;
margin-left: 8rpx;
&.active{
background: #2D81FF;
border: 1px solid #2D81FF;
}
text{
font-size: 18rpx;
line-height: 20rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #979797;
margin-left: 20rpx;
.radio-view_icon {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
}
}
}
}
}
.save_btn{
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
color: #FFFFFF;
.footer {
position: fixed;
left: 0;
bottom: 0;
z-index: 99;
width: 100%;
height: 90rpx;
background-color: #fff;
padding: 16rpx 25rpx;
.btn {
height: 88rpx;
background: #2D81FF;
border-radius: 10rpx;
margin-top: 40rpx;
border-radius: 44rpx;
line-height: 88rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
text-align: center;
}
}
</style>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- stu_bz_index -->
<view class="tel_index_bg"></view>
<view class="bz_box">
<view class="stu_num">
<!-- <picker mode="date" :value="sx_time" :start="startDate" :end="endDate" @change="bindDateChange">
<view class="">
核对时间:{{sx_time}}<text class="icon icon-arrow-right-copy-copy"></text>
</view>
</picker> -->
<u-sticky>
<view class="search">
<picker @change="bindPickerChange" :value="index" :range="tabs" range-key="create_time">
<view class="">
<view class="search-item">
<view class="search-item_label">
核对时间:
{{sxtitle||'请选择时间'}}
<text class="icon icon-arrow-right-copy-copy"></text>
</view>
<view class="search-item_content">
<template v-if="sxtitle">
{{sxtitle}}
</template>
<text class="msg" v-else>请选择时间</text>
</view>
<u-icon name="arrow-down-fill" color="#646464" size="10px"></u-icon>
</view>
</picker>
</view>
</u-sticky>
<view class="stu_list">
<view class="stu_li" v-for="(item,index) in datas">
<view class="stu_li_name">
<view class="list">
<view class="item" v-for="(item,index) in datas" :key="index">
<view class="info">
<view class="name">
{{item.name}}
<image v-if="item.sex!=1" src="/static/images/tch/icon_female.png" mode="aspectFit"></image>
<image v-else src="/static/images/tch/icon_male.png" mode="aspectFit"></image>
</view>
<view class="flex_1"></view>
<view class="sf_v">
<text>是否到课:</text>
<view class="sf_v_btn" v-if="item.dk==1">
<image class="gender" v-if="item.sex!=1" src="/static/imagesV2/stu_selection/icon_female.png" mode="aspectFit"></image>
<image class="gender" v-else src="/static/imagesV2/stu_selection/icon_male.png" mode="aspectFit"></image>
</view>
<view class="sf_v_btn" v-else>
<view class="operate">
<text class="operate-label">是否到课:</text>
<view class="operate-content">
{{item.dk==1 ? '是' : '否'}}
</view>
</view>
</view>
... ... @@ -44,9 +42,7 @@
>
</u-empty>
</view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</template>
... ... @@ -235,119 +231,72 @@
<style lang="scss" scoped>
.wrap_box {
width: 100%;
// padding: 30rpx;
min-height: 100vh;
// #ifdef H5
min-height: calc(100vh - 44px);
// #endif
background: #F8F8F8;
position: relative;
padding-bottom: 30rpx;
}
.tel_index_bg {
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.bz_box {
width: 100%;
position: relative;
z-index: 2;
padding:0 30rpx 30rpx;
.stu_num {
width: 100%;
height: 80rpx;
.search {
padding: 30rpx;
background: #F8F8F8;
&-item {
display: flex;
align-items: center;
font-size: 28rpx;
color: #fff;
justify-content: space-between;
.icon{
font-size: 24rpx;
margin-left: 10rpx;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
&_label {
width: 140rpx;
}
&_content {
margin-right: 5rpx;
.msg {
color: #646464;
}
}
.stu_list {
width: 100%;
min-height: 100rpx;
background: #FFFFFF;
border-radius: 10rpx;
.stu_li {
width: 100%;
height: 100rpx;
display: flex;
align-items: center;
padding: 0 30rpx;
&+.stu_li {
border-top: 1px solid #eee;
}
.stu_li_name {
font-size: 30rpx;
color: #545D71;
margin-bottom: 10rpx;
image {
width: 28rpx;
height: 28rpx;
margin-left: 5rpx;
}
}
.sf_v {
font-size: 30rpx;
color: #A9B1C0;
.list {
padding: 0 30rpx;
.item {
background: #FFFFFF;
border-radius: 20rpx;
padding: 30rpx;
display: flex;
align-items: center;
.sf_v_btn {
& + .item {
margin-top: 20rpx;
}
.info {
flex: 1;
display: flex;
align-items: center;
}
.gender {
width: 29rpx !important;
height: 24rpx !important;
margin-left: 20rpx;
font-size: 30rpx;
color: #A9B1C0;
.sf_v_btn_b {
}
.operate {
display: flex;
align-items: center;
justify-content: center;
font-size: 18rpx;
color: #fff;
width: 32rpx;
height: 32rpx;
border: 1px solid #DDDDDD;
border-radius: 50%;
margin-left: 8rpx;
&.active {
background: #2D81FF;
border: 1px solid #2D81FF;
}
}
}
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #646464;
&-content {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
margin-left: 5px;
}
}
}
.save_btn {
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
color: #FFFFFF;
width: 100%;
height: 90rpx;
background: #2D81FF;
border-radius: 10rpx;
margin-top: 40rpx;
}
</style>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<view class="tel_index_bg"></view>
<view class="stu_list">
<view class="stu_search">
<u-icon name="search" size="30" color="#659ff5"></u-icon>
<u-icon name="search" size="24" color="#979797"></u-icon>
<input v-model="keywords" confirm-type="search" @confirm="confirm" class="stu_search-input" type="text"
placeholder="搜索姓名" placeholder-style="color: #428DFE">
placeholder="搜索姓名" placeholder-style="color: #C3C3C3">
</view>
<view class="stu_num">
<image class="stu_num-icon" src="@/static/images/xh_icon13.png"></image>
<text class="stu_num-text">共{{datas.length}}人</text>
<image class="stu_num-icon" src="@/static/images/xh_icon13.png"></image>
共<text class="stu_num-text">{{datas.length}}</text>人
</view>
<scroll-view style="height: 1200rpx;" :scroll-y="true">
<view v-for="(item,index) in datas" :key="index" class="stu_li dis_flex">
<view v-for="(item,index) in datas" :key="index" class="stu_item">
<image v-if="item.img" class="stu_li_tx" :src="$service.getimg(item.img)" mode="aspectFill"></image>
<image v-else class="stu_li_tx" src="/static/images/tx.png" mode="aspectFill"></image>
<view class="flex_1">
<view class="stu_li_name">
{{item.name}}
<image v-if="item.sex!=1" src="/static/images/tch/icon_female.png" mode="aspectFit"></image>
<image v-else src="/static/images/tch/icon_male.png" mode="aspectFit"></image>
<view class="avatar">
<image class="avatar-img" v-if="item.img" :src="$service.getimg(item.img)" mode="aspectFill"></image>
<image class="avatar-img" v-else src="/static/imagesV2/tch_index/default-avatar.png" mode="aspectFill"></image>
<view class="gender">
<image v-if="item.sex!=1" src="/static/imagesV2/stu_selection/icon_female.png" mode="aspectFit"></image>
<image v-else src="/static/imagesV2/stu_selection/icon_male.png" mode="aspectFit"></image>
</view>
<view class="stu_li_time">
{{item.add_time}} 入学
</view>
<view class="info">
<view class="name">
{{item.name}}
</view>
<view class="stu_li_ban">
<view>
<text>
{{item.class_name}}
</text>
<text style="margin-left: 20rpx;">
{{item.add_time}}入学
</text>
</view>
</view>
</view>
<u-empty v-if="datas.length==0" mode="data" text="暂无名单" icon="/static/images/tch/img_blank.png">
... ... @@ -200,96 +203,78 @@
position: relative;
}
.tel_index_bg {
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.stu_list {
position: relative;
z-index: 2;
width: 100%;
padding: 0 30rpx 30rpx;
padding: 30rpx;
.stu_search {
background-color: rgba(#fff, 0.4);
height: 68rpx;
background-color:#fff;
display: flex;
border-radius: 200rpx;
border-radius: 36rpx;
align-items: center;
padding: 0 20rpx;
padding: 15rpx 20rpx 15rpx 30rpx;
border-radius: 36rpx;
.stu_search-input {
flex-grow: 1;
}
}
.stu_num {
width: 100%;
height: 80rpx;
display: flex;
align-items: center;
font-size: 30rox;
color: #477FF6;
justify-content: center;
.stu_num-icon {
height: 12rpx;
width: 50rpx;
}
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
padding: 20rpx 0;
.stu_num-text {
color: #477FF6;
margin: 0 20rpx;
color: #2D81FF;
}
}
.stu_li {
width: 100%;
min-height: 120rpx;
.stu_item {
background: #FFFFFF;
border-radius: 10rpx;
padding: 24rpx 30rpx;
border-radius: 20rpx;
padding: 30rpx;
display: flex;
align-items: center;
&+.stu_li {
margin-top: 22rpx;
& + .stu_item {
margin-top: 20rpx;
}
.stu_li_tx {
width: 64rpx;
height: 64rpx;
.avatar {
width: 110rpx;
height: 110rpx;
border-radius: 50%;
position: relative;
margin-right: 30rpx;
.avatar-img {
border-radius: 50%;
margin-right: 20rpx;
}
.stu_li_name {
font-size: 30rpx;
color: #545D71;
margin-bottom: 10rpx;
image {
width: 28rpx;
height: 28rpx;
margin-left: 5rpx;
.gender {
position: absolute;
width: 29rpx;
height: 24rpx;
right: 0rpx;
bottom: 12rpx;
}
}
.stu_li_time {
font-size: 28rpx;
color: #A9B1C0;
.info {
flex: 1;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #646464;
.name {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: bold;
margin-bottom: 24rpx;
color: #323232;
}
.stu_li_ban {
font-size: 28rpx;
color: #2D81FF;
padding: 4rpx 14rpx;
background: #2D81FF1a;
}
}
}
</style>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- stu_bz_index -->
<view class="tel_index_bg"></view>
<view class="bz_box">
<view class="stu_msg">
<view class="stu_li">
... ... @@ -65,18 +62,23 @@
<view class="stu_l">
学号:
</view>
<view class="stu_r" style="color: #FF9A18;">
<view class="stu_r" style="color: #2D81FF;">
<!-- 未分配 -->
{{datas.study_code||'未分配'}}
{{datas.study_code || '未分配'}}
</view>
</view>
<view class="stu_li">
<view class="stu_l">
住宿办理:
</view>
<view class="stu_r" style="color: #66C134;">
<!-- 住宿状态 1、已缴费 2、未办理 -->
{{datas.bed_type==1?'已缴费':'未办理'}}
<view class="stu_r">
<view class="state bg" v-if="datas.bed_type==1">
已缴费
</view>
<view class="state" >
未办理
</view>
</view>
</view>
<view class="stu_li">
... ... @@ -272,41 +274,51 @@
background: #F8F8F8;
position: relative;
}
.tel_index_bg{
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.bz_box{
width: 100%;
padding: 25rpx;
position: relative;
z-index: 2;
padding: 30rpx;
}
.stu_msg{
width: 100%;
background: #FFFFFF;
border-radius: 10rpx;
padding: 0 30rpx;
border-radius: 20rpx;
.stu_li{
width: 100%;
height: 93rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30rpx;
padding: 30rpx 0;
&+.stu_li{
border-top: 1px solid #eee;
border-top: 1px solid #F3F3F7;
}
.stu_l{
font-size: 32rpx;
color: #545D71;
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
color: #000000;
}
.stu_r{
font-size: 32rpx;
color: #A6A9B1;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #646464;
.state {
background: rgba(255, 150, 56, 0.15);
border-radius: 5rpx;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FF9638;
padding: 5rpx;
& .bg {
background: rgba(52, 213, 170, 0.15);
color: #10C69E;
}
}
}
}
}
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<view class="tel_index_bg"></view>
<view class="stu_list">
<view class="stu_search">
<u-icon name="search" size="30" color="#659ff5"></u-icon>
<u-icon name="search" size="30" color="#979797"></u-icon>
<input v-model="keywords" confirm-type="search" @confirm="confirm" class="stu_search-input" type="text"
placeholder="搜索姓名" placeholder-style="color: #428DFE">
placeholder="搜索姓名" placeholder-style="color: #C3C3C3">
</view>
<view class="stu_num">
<image class="stu_num-icon" src="@/static/images/xh_icon13.png"></image>
<text class="stu_num-text">共{{datas.length}}人</text>
<image class="stu_num-icon" src="@/static/images/xh_icon13.png"></image>
共<text class="stu_num-text">{{datas.length}}</text>人
</view>
<scroll-view style="height: 1200rpx;" :scroll-y="true">
<view class="stuli_box">
<view v-for="(item,index) in datas" class="stu_li dis_flex">
<view class="flex_1">
<view class="stu_li_name">
<view class="stu_item" v-for="(item,index) in datas">
<view class="info">
<view class="name" >
{{item.name}}
<image v-if="item.sex!=1" src="/static/images/tch/icon_female.png" mode="aspectFit">
</image>
<image v-else src="/static/images/tch/icon_male.png" mode="aspectFit"></image>
</view>
<image class="gender" v-if="item.sex!=1" src="/static/imagesV2/stu_selection/icon_female.png" mode="aspectFit"></image>
<image class="gender" v-else src="/static/imagesV2/stu_selection/icon_male.png" mode="aspectFit"></image>
</view>
<view class="operate">
<view class="btn" @click="$service.jump" :data-url="'/pagesA/stu_bz_index/stu_bz_index?id='+item.id">
<view class="icon">
<image src="/static/imagesV2/tch_index/icon11.png" mode=""></image>
</view>
<view class="stu_bz" @click="$service.jump"
:data-url="'/pagesA/stu_bz_index/stu_bz_index?id='+item.id">
备注信息
</view>
<view class="stu_bz" @click="$service.jump" :data-url="'/pagesA/stu_msg/stu_msg?id='+item.id">
<view class="btn" @click="$service.jump" :data-url="'/pagesA/stu_msg/stu_msg?id='+item.id">
<view class="icon">
<image src="/static/imagesV2/tch_index/icon10.png" mode=""></image>
</view>
查看档案
</view>
</view>
</view>
</scroll-view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</template>
... ... @@ -180,86 +179,74 @@
position: relative;
}
.tel_index_bg {
position: absolute;
top: 0;
z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, #f8f8f8 0%, #5D9DFD 60%, #428EFE 70%, #2D81FF 100%);
}
.stu_list {
position: relative;
z-index: 2;
width: 100%;
padding: 0 30rpx 30rpx;
padding: 30rpx;
.stu_search {
background-color: rgba(#fff, 0.4);
height: 68rpx;
background-color:#fff;
display: flex;
border-radius: 200rpx;
border-radius: 36rpx;
align-items: center;
padding: 0 20rpx;
padding: 10rpx 20rpx 10rpx 30rpx;
border-radius: 36rpx;
.stu_search-input {
flex-grow: 1;
}
}
.stu_num {
width: 100%;
height: 80rpx;
display: flex;
align-items: center;
font-size: 30rox;
color: #477FF6;
justify-content: center;
.stu_num-icon {
height: 12rpx;
width: 50rpx;
}
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
padding: 20rpx 0;
.stu_num-text {
color: #477FF6;
margin: 0 20rpx;
color: #2D81FF;
}
}
.stuli_box {
border-radius: 10rpx;
.stu_item {
background: #FFFFFF;
}
.stu_li {
width: 100%;
min-height: 120rpx;
// border-radius: 10rpx;
padding: 24rpx 30rpx;
border-radius: 20rpx;
padding: 30rpx;
display: flex;
align-items: center;
&+.stu_li {
border-top: 1px solid #eee;
& + .stu_item {
margin-top: 20rpx;
}
.stu_li_name {
font-size: 30rpx;
color: #545D71;
margin-bottom: 10rpx;
image {
width: 28rpx;
height: 28rpx;
margin-left: 5rpx;
.info {
flex: 1;
display: flex;
align-items: center;
}
.gender {
width: 29rpx !important;
height: 24rpx !important;
margin-left: 20rpx;
}
.stu_bz {
font-size: 30rpx;
color: #9699A9;
margin-left: 35rpx;
.operate {
display: flex;
align-items: center;
justify-content: flex-end;
.btn {
display: flex;
align-items: center;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #646464;
margin-left: 30rpx;
.icon {
margin-right: 10rpx;
width: 30rpx;
height: 30rpx;
}
}
}
}
}
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<view class="kq_box">
<view class="kq_bg dis_flex aic ju_c">
<image class="kq_bgimg" src="/static/images/tbbj.png" mode="widthFix"></image>
<view class="">
<text>{{allnum}}</text>分
<CustomReturn title="考勤积分" color="#fff" :bgColor="bgColor">
</CustomReturn>
<view class="bg-img">
<image src="/static/imagesV2/tch_index/bg1.png" mode="aspectFill"></image>
</view>
<PaddingTopB>
<view class="main">
<view class="head">
<view class="head-label">
班级考勤积分(分)
</view>
<view class="head-content">
{{allnum}}
</view>
</view>
<view class="list">
<view class="item" v-for="(item,index) in datas" :key="index">
<view class="item-cell">
<view class="title">
{{item.title}}
</view>
<view class="value">
-{{item.class_num}}
</view>
</view>
<view class="kq_list_box">
<view class="kq_list">
<view v-for="(item,index) in datas" class="kq_li">
<view class="kq_li_d1 dis_flex aic ju_b">
<view class="">{{item.title}}</view>
<view class="kq_li_num">-{{item.class_num}}</view>
<view class="item-cell">
<view class="name">
学员:{{item.uid}}
</view>
<view class="kq_li_d2 dis_flex aic ju_b">
<view class="user_name oh1">学员:{{item.uid}}</view>
<view class="kq_li_num">{{item.deduct_time}}</view>
</view> </view>
<view>
{{item.deduct_time}}
</view>
</view>
</view>
</view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</PaddingTopB>
</view>
</template>
... ... @@ -34,10 +52,17 @@
mapState,
mapMutations
} from 'vuex'
import CustomReturn from "@/components/CustomReturn/index.vue"
import PaddingTopB from "@/components/PaddingTopB/index.vue"
var that
export default {
components: {
CustomReturn,
PaddingTopB
},
data() {
return {
bgColor: 'transparent',
options:'',
datas:'',
allnum:'',
... ... @@ -47,6 +72,13 @@
computed: {
...mapState(['hasLogin', 'forcedLogin', 'userName', 'userinfo','nowtime']),
},
onPageScroll(e) {
if(e.scrollTop > 0 ) {
this.bgColor = '#3384fc'
}else {
this.bgColor = 'transparent'
}
},
onLoad(e) {
that=this
that.options=e||{}
... ... @@ -168,71 +200,72 @@
// #ifdef H5
min-height: calc(100vh - 44px);
// #endif
background: #F8F8F8;
background: #f3f4f6;
}
.kq_box{
width: 100%;
position: relative;
.kq_bg{
position: relative;
width: 100%;
height: 250rpx;
font-size: 32rpx;
color: #fff;
.kq_bgimg{
.bg-img {
height: 504rpx;
position: absolute;
top: 0;
z-index: 1;
width: 100%;
height: 250rpx;
font-size: 32rpx;
color: #fff;
}
.main {
width: 100%;
padding: 25rpx;
box-sizing: border-box;
}
.head {
font-family: PingFang SC;
color: #FFFFFF;
margin-top: 50rpx;
&-label {
font-size: 30rpx;
font-weight: 500;
}
view{
position: relative;
top: -40rpx;
z-index: 2;
text{
font-size: 72rpx;
&-content {
font-size: 60rpx;
font-weight: bold;
}
}
margin-top: 20rpx;
}
}
.kq_list_box{
width: 100%;
padding: 30rpx;
.kq_list{
width: 100%;
background: #fff;
border-radius: 10rpx;
.kq_li{
width: 100%;
padding: 28rpx;
min-height: 150rpx;
.list {
padding: 0 30rpx;
border-radius: 20rpx;
background-color: #fff;
margin-top: 30rpx;
.item {
border-bottom: 1px solid #FAFBFA;
padding: 30rpx 0;
&:last-child {
border: 0;
}
&-cell {
display: flex;
flex-direction: column;
align-items: center;
font-family: PingFang SC;
justify-content: space-between;
&+.kq_li{
border-top: 1px solid #f8f8f8;
margin-bottom: 20rpx;
&:last-child {
margin-bottom: 0;
}
.kq_li_d1{
font-size: 32rpx;
color: #545D71;
.user_name{
max-width: 330rpx;
line-height: 36rpx;
height: 36rpx;
.title {
font-size: 30rpx;
font-weight: 500;
color: #323232;
}
.kq_li_num{
color: #FF9000;
.value {
font-size: 30rpx;
font-weight: 500;
color: #FC5101;
}
.name {
font-size: 26rpx;
font-weight: 500;
color: #979797;
}
.kq_li_d2{
font-size: 28rpx;
color: #A9B1C0;
.time {
font-size: 24rpx;
font-weight: 400;
color: #979797;
}
}
}
... ...
<template>
<view class="oneSetting">
<!-- 资料 设置 -->
<view class="tel_index_bg"></view>
<view class="vio_list">
<view class="msg_box ">
<view class="content-head-wrap flex">
<view class="content-head-img">
<!-- <image :src="imgUrl" mode="aspectFill"></image> -->
<view class="cell">
<view class="cell-item">
<view class="cell-item_label">
头像
</view>
<view class="cell-item_content">
<avatar selWidth="250rpx" selHeight="250rpx" @upload="myUpload"
:avatarSrc="userdata.img?$service.getimg(userdata.img):imgUrl"
avatarStyle="width: 164rpx;height: 164rpx;border-radius: 50%;" inner=true></avatar>
avatarStyle="width: 100rpx;height: 100rpx;border-radius: 50%;" inner=true></avatar>
</view>
</view>
<view class="content-item flex">
<view>
<view class="cell-item">
<view class="cell-item_label">
姓名
</view>
<view class="user-name">
<view class="cell-item_content">
{{userdata.nick}}
</view>
</view>
<view class="content-item flex">
<view>
<view class="cell-item">
<view class="cell-item_label">
性别
</view>
<view class="user-name">
<view class="cell-item_content">
<!-- 性别 1、男 2、女 -->
{{userdata.sex==1?'男':'女'}}
</view>
</view>
<view class="content-item flex">
<view>
<view class="cell-item">
<view class="cell-item_label">
手机号
</view>
<view class="user-name">
<view class="cell-item_content">
{{userdata.phone}}
</view>
</view>
<view class="sign-out" @click="logout_fuc">
退出登录
</view>
</view>
</view>
</view>
</template>
<script>
... ... @@ -254,4 +249,37 @@
color: #2D81FF;
}
}
.cell {
background-color: #fff;
padding: 0 30rpx;
border-radius: 20rpx;
margin: 25rpx;
&-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx 0;
border-bottom: 1px solid #F3F3F7;
&:last-child {
border: 0;
}
&_label {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
color: #000000;
}
&_content {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #646464;
}
}
}
</style>
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<image class="ph_banner" src="/static/images/phb.png" mode="aspectFill"></image>
<view class="ph_box">
<view class="ph_tit dis_flex aic">
<view class="ph_d1">
排名
<CustomReturn title="校园排行榜" color="#fff" :bgColor="bgColor">
</CustomReturn>
<view class="bg-img">
<image src="/static/imagesV2/icon18.png" mode="aspectFill"></image>
</view>
<view class="ph_d2">
班级
<PaddingTopB>
<view class="main">
<view class="card">
<view class="head">
<view class="icon">
<image src="/static/imagesV2/icon19.png" mode="aspectFill"></image>
</view>
<view class="ph_d3">
得分
<view class="title">
班级考勤排名
</view>
<view class="icon">
<image src="/static/imagesV2/icon19s.png" mode="aspectFill"></image>
</view>
<view v-for="(item,index) in datas" class="ph_li">
<view class="ph_d1">
<image v-if="item.key==1" src="/static/images/ph.png" mode="aspectFit"></image>
<image v-else-if="item.key==2" src="/static/images/ph2.png" mode="aspectFit"></image>
<image v-else-if="item.key==3" src="/static/images/ph3.png" mode="aspectFit"></image>
</view>
<view class="list">
<view class="item" v-for="(item,index) in datas">
<view class="item-index">
<image v-if="item.key==1" src="/static/imagesV2/icon20.png" mode="aspectFit"></image>
<image v-else-if="item.key==2" src="/static/imagesV2/icon21.png" mode="aspectFit"></image>
<image v-else-if="item.key==3" src="/static/imagesV2/icon22.png" mode="aspectFit"></image>
<text v-else>{{item.key}}</text>
</view>
<view class="ph_d2">
<view class="item-title">
{{item.title}}
</view>
<view class="ph_d3">
{{item.num}}分
<view class="item-val">
{{item.num}}
</view>
<view class="item-unit">
</view>
</view>
<view class="ph_li ph_li_b">
<view class="ph_d1">
<image v-if="mydata.key==0" src="/static/images/ph.png" mode="aspectFit"></image>
<image v-else-if="mydata.key==1" src="/static/images/ph2.png" mode="aspectFit"></image>
<image v-else-if="mydata.key==2" src="/static/images/ph3.png" mode="aspectFit"></image>
<u-empty
v-if="datas.length==0"
mode="data"
text="暂无数据"
icon="/static/images/tch/img_blank.png"
>
</u-empty>
</view>
<view class="footer">
<view class="item">
<view class="item-index">
<image v-if="mydata.key==1" src="/static/imagesV2/icon20.png" mode="aspectFit"></image>
<image v-else-if="mydata.key==2" src="/static/imagesV2/icon21.png" mode="aspectFit"></image>
<image v-else-if="mydata.key==3" src="/static/imagesV2/icon22.png" mode="aspectFit"></image>
<text v-else>{{mydata.key}}</text>
<!-- <text>{{mydata.key}}</text> -->
</view>
<view class="ph_d2">
{{mydata.title}}<text>本班</text>
<view class="item-title">
{{mydata.title || ''}}
</view>
<view class="item-tabs">
<view class="tab">
本班
</view>
</view>
<view class="ph_d3">
{{mydata.num}}分
<view class="item-val">
{{mydata.num || ''}}
</view>
<view class="item-unit">
</view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</view>
</view>
</PaddingTopB>
</view>
</template>
... ... @@ -55,10 +93,17 @@
mapState,
mapMutations
} from 'vuex'
import CustomReturn from "@/components/CustomReturn/index.vue"
import PaddingTopB from "@/components/PaddingTopB/index.vue"
var that
export default {
components: {
CustomReturn,
PaddingTopB
},
data() {
return {
bgColor: 'transparent',
options:'',
datas:'',
mydata:''
... ... @@ -67,6 +112,13 @@
computed: {
...mapState(['hasLogin', 'forcedLogin', 'userName', 'userinfo','nowtime']),
},
onPageScroll(e) {
if(e.scrollTop > 0 ) {
this.bgColor = '#3384fc'
}else {
this.bgColor = 'transparent'
}
},
onLoad(e) {
that=this
that.options=e||{}
... ... @@ -161,87 +213,113 @@
// #ifdef H5
min-height: calc(100vh - 44px);
// #endif
background: #F8F8F8;
background: #3384fc;
}
.ph_banner{
.bg-img {
height: 100vh;
position: absolute;
width: 100%;
height: 340rpx;
position: relative;
z-index: 1;
margin-bottom: -40rpx;
top: 0;
}
.ph_box{
position: relative;
z-index: 2;
background: #FFFFFF;
border-radius: 30rpx 30rpx 0 0;
padding: 30rpx 30rpx 130rpx;
min-height: calc(100vh - 300rpx);
// #ifdef H5
min-height: calc(100vh - 44px - 300rpx);
// #endif
.main {
width: 100%;
padding: 25rpx 25rpx 135rpx;
box-sizing: border-box;
margin-top: 250rpx;
}
.ph_tit{
font-size: 28rpx;
color: #929399;
height: 60rpx;
.ph_d1{
width: 60rpx;
margin-right: 40rpx;
.card {
background-color: #fff;
border-radius: 20px;
overflow: hidden;
.head {
display: flex;
align-items: center;
justify-content: center;
padding: 50rpx 0 30rpx;
background: linear-gradient(to bottom, #AEC7FF 0%, #FFFFFF 100%);
.icon {
width: 40rpx;
height: 40rpx;
}
.ph_d2{
flex: 1;
margin-right: 40rpx;
text-align: left;
.title {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
color: #323232;
margin: 0 20rpx;
}
.ph_d3{
text-align: right;
}
}
.ph_li{
font-size: 32rpx;
color: #545C71;
height: 120rpx;
.list,
.footer{
padding: 0 30rpx;
.item {
display: flex;
align-items: center;
.ph_d1{
width: 60rpx;
margin-right: 40rpx;
font-family: PingFang SC;
padding: 30rpx 0;
border-bottom: 1px solid #FAFBFA;
padding: 30rpx 0;
&:last-child {
border: 0;
}
&-index {
width: 50rpx;
height: 50rpx;
font-size: 30rpx;
font-weight: bold;
color: #979797;
display: flex;
align-items: center;
justify-content: center;
font-size: 30rpx;
image{
width: 60rpx;
height: 60rpx;
}
}
.ph_d2{
&-title {
flex: 1;
margin-right: 40rpx;
text-align: left;
text{
margin: 0 20rpx;
font-size: 28rpx;
font-weight: 500;
color: #323232;
}
&-val {
font-size: 32rpx;
font-weight: bold;
color: #2D81FF;
margin-left: 10rpx;
padding: 5rpx 14rpx;
background: rgba(45, 129, 255, .1);
border-radius: 10rpx;
}
&-unit {
font-size: 26rpx;
color: #646464;
}
.ph_d3{
text-align: right;
}
}
.ph_li_b{
}
.footer {
position: fixed;
bottom: 0;
z-index: 900;
left: 0;
width: 100%;
background: #fff;
padding: 0 30rpx;
box-shadow: 0px 3rpx 8px 0px rgba(207, 207, 207, 0.5);
background-color: #fff;
padding: 0 55rpx;
box-sizing: border-box;
.item-title {
flex: unset;
}
.item-tabs {
flex: 1;
.tab {
width: 80rpx;
height: 44rpx;
text-align: center;
line-height: 44rpx;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 400;
color: #448EFE;
background-color: rgba(49, 132, 255, 0.08);
border-radius: 5rpx;
}
}
}
}
</style>
... ...
... ... @@ -13,6 +13,7 @@
<view class="vio_sx dis_flex aic">
<picker mode="date" :value="vio_time" :start="startDate" :end="endDate" @change="bindDateChange">
<view class="vio_time">
<view class="flex_1">
{{vio_time||'请选择时间'}}
</view>
... ... @@ -20,51 +21,71 @@
</view>
</picker>
<view class="vio_ss">
<input type="text" placeholder="请输入姓名" v-model="name" @confirm="onRetry">
<text class="icon icon-sousuo" @click="onRetry"></text>
<input type="text" placeholder="请输入姓名" v-model="name" @confirm="onRetry">
</view>
</view>
</view>
<view class="vio_list">
<view class="vio_li" v-for="(item,index) in datas">
<view class="vio_li_msg">
<view class="vio_li_tit">
<text class="li_type"></text>
<text class="li_name">{{item.title}}</text>
<block v-if="active==5">
<view v-if="item.type==1" class="li_tip" style="background:#2D81FF1a"><text style="color:#2D81FF">事假</text></view>
<view v-else class="li_tip" style="background:#FF90001a"><text style="color:#FF9000">病假</text></view>
</block>
<text class="identification" style="color: #FF9000;" v-if="item.examine === AUDITSTATUS.PENDINGREVIEW">待审核</text>
<text class="identification" style="color: #67c23a;" v-else-if="item.examine === AUDITSTATUS.APPROVED">已通过</text>
<text class="identification" style="color: #f56c6c;" v-else-if="item.examine === AUDITSTATUS.FAILED">未通过</text>
<view class="flex_1"></view>
<text v-if="active==5||active==6">学员:{{item.name}}</text>
<text v-else>学员:{{item.uid}}</text>
<view class="list">
<view class="item" v-for="(item,index) in datas">
<view class="item-top">
<template v-if="active==5">
<view class="tab" v-if="item.type==1">
事假
</view>
<view class="vio_li_inr">
{{item.content}}
<view class="tab bg" v-else>
病假
</view>
</template>
<view class="name">
<template v-if="active==5||active==6">
{{item.name}}
</template>
<template v-else>
{{item.uid}}
</template>
</view>
<view v-if="active==5" class="li_time">
{{item.start_time}}
<text class="state" v-if="item.examine === AUDITSTATUS.PENDINGREVIEW">
待审核
</text>
<text class="state bg" v-else-if="item.examine === AUDITSTATUS.APPROVED">
已通过
</text>
<text class="state bg1" v-else-if="item.examine === AUDITSTATUS.FAILED">
未通过
</text>
</view>
<view v-else-if="active==6" class="li_time">
{{item.create_time}}
<view class="item-remarks" v-if="active==5">
{{item.content || ''}}
</view>
<view class="item-title" v-else>
<text class="icon"></text>
<text class="content">
<template v-if="active==6">
{{item.content || ''}}
</template>
<template v-else>
{{item.title}}
</template>
</text>
</view>
<view v-else class="li_time">
<view class="item-time">
<template v-if="active==5">
{{item.start_time}}
</template>
<template v-else-if="active==6">
{{item.create_time}}
</template>
<template v-else>
{{item.deduct_time}}
</template>
</view>
</view>
<u-empty v-if="datas.length==0"
mode="data"
text="暂无违纪"
icon="/static/images/tch/img_blank.png"
>
</u-empty>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</template>
... ... @@ -272,41 +293,34 @@
background: #F8F8F8;
}
.vio_top{
// position: absolute;
// top: 0;
// z-index: 1;
width: 100%;
min-height: 220rpx;
background: linear-gradient(0deg, rgba(45, 129, 255, .01) 0%, #428EFE 80%, #2D81FF 100%);
}
.vip_tab_list{
padding: 0 30rpx;
}
.vip_tab_li{
height: 100rpx;
display: inline-flex;
align-items: center;
font-size: 30rpx;
color: #FFFFFF;
opacity: 0.6;
margin-right: 50rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
position: relative;
background-color: #fff;
border-top:1rpx solid #f3f4f6;
padding:30rpx;
&.active{
opacity: 1;
color: #2D81FF;
&:after{
content: '';
position: absolute;
bottom: 0;
bottom: 8rpx;
left: 50%;
margin-left: -18rpx;
width: 36rpx;
height: 6rpx;
background: #FFFFFF;
border-radius: 3rpx;
background-image: url(@/static/imagesV2/icon23.png);
background-size: 100% 100%;
transform: translateX(-50%);
height: 24rpx;
width: 24rpx;
}
}
}
.vio_sx{
margin-top: 28rpx;
padding: 0 30rpx 30rpx;
... ... @@ -323,6 +337,7 @@
letter-spacing: 0;
display: flex;
align-items: center;
border-radius: 36rpx;
.icon{
font-size: 20rpx;
margin-left: 5rpx;
... ... @@ -333,86 +348,103 @@
height: 80rpx;
background: #FFFFFF;
border-radius: 10rpx;
padding: 0 24rpx;
padding: 0 30rpx;
display: flex;
align-items: center;
border-radius: 36rpx;
input{
flex: 1;
min-width: 0;
padding-right: 20rpx;
font-size: 30rpx;
}
.icon{
color: #B7BAC0;
font-size: 40rpx;
font-size: 30rpx;
margin-right: 20rpx;
}
}
.vio_list{
width: 100%;
.list {
padding: 0 30rpx 30rpx;
.vio_li{
width: 100%;
// min-height: 235rpx;
.item {
background: #FFFFFF;
border-radius: 10rpx;
&+.vio_li{
margin-top: 20rpx;
}
.vio_li_msg{
width: 100%;
border-radius: 20rpx;
padding: 30rpx;
.vio_li_tit{
font-size: 28rpx;
color: #7D8087;
& + .item {
margin-top: 30rpx;
}
&-top {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.li_type{
width: 14rpx;
height: 14rpx;
background: #2D81FF;
border-radius: 50%;
.tab {
border: 1px solid #2E86FE;
border-radius: 2rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #2E86FE;
padding: 4rpx 10rpx;
margin-right: 10rpx;
& .bg {
border: 1px solid #FF7E00;
color: #FF7E00;
}
.li_name{
font-size: 32rpx;
color: #545D71;
}
.li_tip{
font-size: 26rpx;
// color: #2D81FF;
// background: rgba(#2D81FF, .1);
padding: 2rpx 14rpx;
line-height: 30rpx;
margin-left: 10rpx;
text{
// opacity: 1;
}
.name {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
flex: 1;
}
.identification{
font-size: 26rpx;
// color: #2D81FF;
// background: rgba(#2D81FF, .1);
padding: 2rpx 14rpx;
line-height: 30rpx;
margin-left: 10rpx;
.state {
background: linear-gradient(0deg, #0AC49C 0%, #34D5AA 100%);
border-radius: 21rpx 21rpx 0 21rpx;
padding: 5rpx 20rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
& .bg {
background: linear-gradient(0deg, #0088FF 0%, #2C9DFF 100%);
}
& .bg1 {
background: linear-gradient(0deg, #BEBEBE 0%, #AAAAAA 100%);
}
.vio_li_inr{
font-size: 30rpx;
color: #545D71;
}
}
.li_time{
width: 100%;
height: 80rpx;
border-top: 1rpx solid #eee;
font-size: 28rpx;
color: #545D71;
padding: 0 28rpx;
&-title {
display: flex;
align-items: center;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 400;
color: #646464;
margin-top: 30rpx;
.icon {
width: 12rpx;
height: 12rpx;
background: #2D81FF;
border-radius: 50%;
margin-right: 10rpx;
}
}
&-remarks {
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 400;
color: #646464;
margin-top: 30rpx;
}
&-time {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #979797;
margin-top: 30rpx;
}
}
}
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<image class="ph_banner" src="/static/images/phb.png" mode="aspectFill"></image>
<view class="ph_box">
<view class="ph_tit dis_flex aic">
<view class="ph_d1">
排名
<CustomReturn title="星级排行榜" color="#fff" :bgColor="bgColor">
</CustomReturn>
<view class="bg-img">
<image src="/static/imagesV2/icon18.png" mode="aspectFill"></image>
</view>
<PaddingTopB>
<view class="main">
<view class="card">
<view class="head">
<view class="icon">
<image src="/static/imagesV2/icon19.png" mode="aspectFill"></image>
</view>
<view class="title">
班主任排名
</view>
<view class="icon">
<image src="/static/imagesV2/icon19s.png" mode="aspectFill"></image>
</view>
</view>
<view class="ph_d2">
班主任
<view class="list">
<view class="item" v-for="(item,index) in datas">
<view class="item-index">
<image v-if="item.key==1" src="/static/imagesV2/icon20.png" mode="aspectFit"></image>
<image v-else-if="item.key==2" src="/static/imagesV2/icon21.png" mode="aspectFit"></image>
<image v-else-if="item.key==3" src="/static/imagesV2/icon22.png" mode="aspectFit"></image>
<text v-else>{{item.key}}</text>
</view>
<view class="item-title">
{{item.nick}}
</view>
<view class="ph_d3">
总星级
<view class="item-val">
{{item.start}}
</view>
<view class="item-unit">
</view>
<u-empty v-if="datas.length==0"
</view>
<u-empty
v-if="datas.length==0"
mode="data"
text="暂无数据"
icon="/static/images/tch/img_blank.png"
>
</u-empty>
<view v-for="(item,index) in datas" class="ph_li">
<view class="ph_d1">
<image v-if="item.key==1" src="/static/images/ph.png" mode="aspectFit"></image>
<image v-else-if="item.key==2" src="/static/images/ph2.png" mode="aspectFit"></image>
<image v-else-if="item.key==3" src="/static/images/ph3.png" mode="aspectFit"></image>
<text v-else>{{item.key}}</text>
</view>
<view class="ph_d2">
{{item.nick}}
<view class="footer">
<view class="item">
<view class="item-index">
<image v-if="mydata.key==1" src="/static/imagesV2/icon20.png" mode="aspectFit"></image>
<image v-else-if="mydata.key==2" src="/static/imagesV2/icon21.png" mode="aspectFit"></image>
<image v-else-if="mydata.key==3" src="/static/imagesV2/icon22.png" mode="aspectFit"></image>
<text v-else>{{mydata.key}}</text>
</view>
<view class="ph_d3">
{{item.start}}分
<view class="item-title">
{{mydata.nick || ''}}
</view>
<view class="item-tabs">
<view class="tab">
本人
</view>
<view class="ph_li ph_li_b">
<view class="ph_d1">
<image v-if="mydata.key==1" src="/static/images/ph.png" mode="aspectFit"></image>
<image v-else-if="mydata.key==2" src="/static/images/ph2.png" mode="aspectFit"></image>
<image v-else-if="mydata.key==3" src="/static/images/ph3.png" mode="aspectFit"></image>
<text v-else>{{mydata.key}}</text>
<!-- <text>{{mydata.key}}</text> -->
</view>
<view class="ph_d2">
{{mydata.nick}}<text>本人</text>
<view class="item-val">
{{mydata.start || ''}}
</view>
<view class="ph_d3">
{{mydata.start}}分
<view class="item-unit">
</view>
</view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</view>
</view>
</PaddingTopB>
</view>
</template>
... ... @@ -61,10 +93,17 @@
mapState,
mapMutations
} from 'vuex'
import CustomReturn from "@/components/CustomReturn/index.vue"
import PaddingTopB from "@/components/PaddingTopB/index.vue"
var that
export default {
components: {
CustomReturn,
PaddingTopB
},
data() {
return {
bgColor: 'transparent',
options:'',
datas:'',
mydata:''
... ... @@ -73,6 +112,13 @@
computed: {
...mapState(['hasLogin', 'forcedLogin', 'userName', 'userinfo','nowtime']),
},
onPageScroll(e) {
if(e.scrollTop > 0 ) {
this.bgColor = '#3384fc'
}else {
this.bgColor = 'transparent'
}
},
onLoad(e) {
that=this
that.options=e||{}
... ... @@ -167,87 +213,114 @@
// #ifdef H5
min-height: calc(100vh - 44px);
// #endif
background: #F8F8F8;
background: #3384fc;
}
.ph_banner{
.bg-img {
height: 100vh;
position: absolute;
width: 100%;
height: 340rpx;
position: relative;
z-index: 1;
margin-bottom: -40rpx;
top: 0;
}
.ph_box{
position: relative;
z-index: 2;
background: #FFFFFF;
border-radius: 30rpx 30rpx 0 0;
padding: 30rpx 30rpx 130rpx;
min-height: calc(100vh - 300rpx);
// #ifdef H5
min-height: calc(100vh - 44px - 300rpx);
// #endif
.main {
width: 100%;
padding: 25rpx 25rpx 135rpx;
box-sizing: border-box;
margin-top: 250rpx;
}
.ph_tit{
font-size: 28rpx;
color: #929399;
height: 60rpx;
.ph_d1{
width: 60rpx;
margin-right: 40rpx;
.card {
background-color: #fff;
border-radius: 20px;
overflow: hidden;
.head {
display: flex;
align-items: center;
justify-content: center;
padding: 50rpx 0 30rpx;
background: linear-gradient(to bottom, #AEC7FF 0%, #FFFFFF 100%);
.icon {
width: 40rpx;
height: 40rpx;
}
.ph_d2{
flex: 1;
margin-right: 40rpx;
text-align: left;
.title {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
color: #323232;
margin: 0 20rpx;
}
.ph_d3{
text-align: right;
}
}
.ph_li{
font-size: 32rpx;
color: #545C71;
height: 120rpx;
.list,
.footer{
padding: 0 30rpx;
.item {
display: flex;
align-items: center;
.ph_d1{
width: 60rpx;
margin-right: 40rpx;
font-family: PingFang SC;
padding: 30rpx 0;
border-bottom: 1px solid #FAFBFA;
padding: 30rpx 0;
&:last-child {
border: 0;
}
&-index {
width: 50rpx;
height: 50rpx;
font-size: 30rpx;
font-weight: bold;
color: #979797;
display: flex;
align-items: center;
justify-content: center;
font-size: 30rpx;
image{
width: 60rpx;
height: 60rpx;
}
}
.ph_d2{
&-title {
flex: 1;
margin-right: 40rpx;
text-align: left;
text{
margin: 0 20rpx;
font-size: 28rpx;
font-weight: 500;
color: #323232;
}
&-val {
font-size: 32rpx;
font-weight: bold;
color: #2D81FF;
margin-left: 10rpx;
padding: 5rpx 14rpx;
background: rgba(45, 129, 255, .1);
border-radius: 10rpx;
}
&-unit {
font-size: 26rpx;
color: #646464;
}
.ph_d3{
text-align: right;
}
}
.ph_li_b{
}
.footer {
position: fixed;
bottom: 0;
z-index: 900;
left: 0;
width: 100%;
background: #fff;
padding: 0 30rpx;
box-shadow: 0px 3rpx 8px 0px rgba(207, 207, 207, 0.5);
background-color: #fff;
padding: 0 55rpx;
box-sizing: border-box;
.item-title {
flex: unset;
}
.item-tabs {
flex: 1;
.tab {
width: 80rpx;
height: 44rpx;
text-align: center;
line-height: 44rpx;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 400;
color: #448EFE;
background-color: rgba(49, 132, 255, 0.08);
border-radius: 5rpx;
}
}
}
}
</style>
... ...