Commit 589effb0 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/youjie/thinkapp

# Conflicts:
#	src/pages/index/index.vue
parents c060bce8 7d21f9fe
......@@ -17,8 +17,10 @@
onMounted,
} from "vue";
export default {
props: {},
setup() {
props: {
DifficultyList:[]
},
setup(props) {
let data = reactive({
chartData: {},
opts: {
......@@ -70,11 +72,19 @@
//模拟从服务器获取数据时的延时
setTimeout(() => {
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let cate =[];
let serNum =[];
let serScore=[];
props.DifficultyList.forEach(item=>{
cate.push(item.Difficulty);
serNum.push(item.Count);
serScore.push(item.Score);
});
let res = {
categories: ["简单", "中档题", "难题"],
categories: cate,
series: [{
name: "题目数量",
data: [4, 16, 5],
data: serNum,
textColor:"#CE8086",
type: "column",
index:0,
......@@ -86,7 +96,7 @@
color: "#282828",
textColor:"#282828",
index:1,
data: [8,62,30],
data: serScore,
textOffset:-20
}
]
......
......@@ -18,8 +18,8 @@
onMounted,
} from "vue";
export default {
props: {},
setup() {
props: ["ModuleList"],
setup(props) {
let data = reactive({
chartData: {},
......@@ -52,8 +52,16 @@
//模拟从服务器获取数据时的延时
setTimeout(() => {
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let cate = [];//模块名称
let grRate =[];//个人得分率
let avgRate =[];//平均得分率
props.ModuleList.forEach(item=>{
cate.push(item.Module);
grRate.push(item.ScoreRate * 100);
avgRate.push(item.AvgScoreRate * 100);
});
let res = {
categories: ["化学与生活", "物质分类", "物质的量综合", "离子反应", "氧还原反应", "化学实验","元素及其化合物"],
categories: cate,
series: [
{
name: "",
......@@ -62,11 +70,11 @@
},
{
name: "平均得分率",
data: [80,66,50,90,53,60,20]
data: avgRate
},
{
name: "个人得分率",
data: [74, 87, 69, 97, 16, 16,88]
data: grRate
},
]
......
......@@ -18,8 +18,10 @@
onMounted,
} from "vue";
export default {
props: {},
setup() {
props: {
DifficultyRateList:[]
},
setup(props) {
let data = reactive({
chartData: {},
......@@ -52,8 +54,16 @@
//模拟从服务器获取数据时的延时
setTimeout(() => {
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let cate =[];
let grScore=[];
let avgScore=[];
props.DifficultyRateList.forEach(item=>{
cate.push(item.Difficulty);
grScore.push(item.ScoreRate * 100);
avgScore.push(item.AvgScoreRate * 100);
});
let res = {
categories: ["简单题", "中档题", "难题"],
categories: cate,
series: [
{
name: "",
......@@ -62,11 +72,11 @@
},
{
name: "平均得分率",
data: [80,66,50]
data: avgScore
},
{
name: "个人得分率",
data: [25, 87, 69]
data: grScore
},
]
......
This diff is collapsed.
<template>
<view class="CommentsComponents-box">
<view class="CommentsComponents activeOne flex">
<view class="CommentsComponents-time-box flex">
<view class="CommentsComponents-time">
<view>05/25 17:13</view>
</view>
<view class="CommentsComponents-line">
<view class="CommentsComponents-point"></view>
</view>
</view>
<view class="CommentsComponents-center-box">
<view class="CommentsComponents-center-line"></view>
<view class="CommentsComponents-center flex">
<view class="CommentsComponents-left flex">
<van-image width="38rpx" height="38rpx" fit="cover" class="operation-img"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_713.png"/>
<view class="operation-name">周老师的评语</view>
</view>
<view class="CommentsComponents-right">
你是个做事小心翼翼,感情细腻丰富的女孩
,每次看你认真的样子老师都很感动。你也是幸运的,周
边有很多人都在关爱着你,所以,对他们,尤其是父母,记得不要
太莽撞,不要太任性,要学着体谅,学着换位思考
,学着懂事。另外,今后要多运动、多锻炼,有健康才能成就美好未来!
</view>
</view>
</view>
</view>
<view class="CommentsComponents-time-box flex">
<view class="CommentsComponents-time">
<view>{{jobData.CreateTime}}</view>
</view>
<view class="CommentsComponents-line">
<view class="CommentsComponents-point"></view>
</view>
</view>
<view class="CommentsComponents-center-box">
<view class="CommentsComponents-center-line"></view>
<view class="CommentsComponents-center flex">
<view class="CommentsComponents-left flex">
<van-image width="38rpx" height="38rpx" fit="cover" class="operation-img" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_713.png" />
<view class="operation-name">{{jobData.Title}}</view>
</view>
<view class="CommentsComponents-right">
{{jobData.DataObj.Comment}}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
......@@ -40,12 +34,9 @@
} from "vue";
export default {
props: {
},
props: ["jobData"],
components: {},
setup() {
let data = reactive({
obj: {
Name: '',
......@@ -61,95 +52,111 @@
};
</script>
<style scoped>
.CommentsComponents-right{
color: #FFFFFF;
font-size: 20rpx;
line-height: 35rpx;
letter-spacing: 1rpx;
}
.CommentsComponents.activeThree .operation-name{
color: #282828;
}
.CommentsComponents.activeTwo .operation-name{
color: #282828;
}
.CommentsComponents.activeOne .operation-name{
color: #FFFFFF;
}
.operation-name{
font-size: 26rpx;
letter-spacing: 1px;
font-weight: 500;
flex-grow: 1;
}
.operation-img{
margin-right: 12rpx;
border-radius: 50%;
flex-shrink: 0;
}
.CommentsComponents-left{
flex: 1;
flex-grow: 1;
margin-top: -5rpx;
margin-bottom: 10rpx;
}
.CommentsComponents-center{
flex-direction: column;
}
.CommentsComponents-center-line{
width: 4rpx;
height: 23rpx;
background: #FEFEFE;
position: absolute;
left: 0;
top: 33rpx;
}
.CommentsComponents.activeOne .CommentsComponents-center-box{
background: #52C1CA;
}
.CommentsComponents-center-box{
flex-grow: 1;
position: relative;
border-radius: 30rpx;
padding: 31rpx 18rpx 21rpx 24rpx;
margin-bottom: 50rpx;
}
.CommentsComponents.activeOne .CommentsComponents-point{
background: #1E7BF5;
box-shadow: 0px 0px 12px 0px rgba(30, 123, 245, 0.46);
}
.CommentsComponents-point{
width: 19rpx;
height: 19rpx;
position: absolute;
top: 20rpx;
left: -13rpx;
border-radius: 50%;
border: 3px solid #FFFFFF;
box-shadow: 0px 0px 12px 0px rgba(255, 255, 255, 0.46);
}
.CommentsComponents-line{
width: 4rpx;
height: 100%;
background: #F1F1F1;
margin-left: 46rpx;
margin-right: 46rpx;
position: relative;
}
.CommentsComponents-time{
width: 61rpx;
height: 55rpx;
color: #CCC8C6;
font-size: 20rpx;
border-radius: 20rpx;
padding: 14rpx 13rpx;
background: #F6F6F6;
}
.CommentsComponents{
justify-content: space-between;
padding: 0 50rpx;
}
.CommentsComponents-box{
background: #FFFFFF;
}
.CommentsComponents-right {
color: #FFFFFF;
font-size: 20rpx;
line-height: 35rpx;
letter-spacing: 1rpx;
}
.CommentsComponents.activeThree .operation-name {
color: #282828;
}
.CommentsComponents.activeTwo .operation-name {
color: #282828;
}
.CommentsComponents.activeOne .operation-name {
color: #FFFFFF;
}
.operation-name {
font-size: 26rpx;
letter-spacing: 1px;
font-weight: 500;
flex-grow: 1;
}
.operation-img {
margin-right: 12rpx;
border-radius: 50%;
flex-shrink: 0;
}
.CommentsComponents-left {
flex: 1;
flex-grow: 1;
margin-top: -5rpx;
margin-bottom: 10rpx;
}
.CommentsComponents-center {
flex-direction: column;
}
.CommentsComponents-center-line {
width: 4rpx;
height: 23rpx;
background: #FEFEFE;
position: absolute;
left: 0;
top: 33rpx;
}
.CommentsComponents.activeOne .CommentsComponents-center-box {
background: #52C1CA;
}
.CommentsComponents-center-box {
flex-grow: 1;
position: relative;
border-radius: 30rpx;
padding: 31rpx 18rpx 21rpx 24rpx;
margin-bottom: 50rpx;
}
.CommentsComponents.activeOne .CommentsComponents-point {
background: #1E7BF5;
box-shadow: 0px 0px 12px 0px rgba(30, 123, 245, 0.46);
}
.CommentsComponents-point {
width: 19rpx;
height: 19rpx;
position: absolute;
top: 20rpx;
left: -13rpx;
border-radius: 50%;
border: 3px solid #FFFFFF;
box-shadow: 0px 0px 12px 0px rgba(255, 255, 255, 0.46);
}
.CommentsComponents-line {
width: 4rpx;
height: 100%;
background: #F1F1F1;
margin-left: 46rpx;
margin-right: 46rpx;
position: relative;
}
.CommentsComponents-time {
width: 61rpx;
height: 55rpx;
color: #CCC8C6;
font-size: 20rpx;
border-radius: 20rpx;
padding: 14rpx 13rpx;
background: #F6F6F6;
}
.CommentsComponents {
justify-content: space-between;
padding: 0 50rpx;
}
.CommentsComponents-box {
background: #FFFFFF;
}
</style>
This diff is collapsed.
This diff is collapsed.
......@@ -4,39 +4,12 @@
<view v-for="(T,index) in TitleList" :key="index">{{T}}</view>
</view>
<view class="allGraspTheSituation-content flex">
<view class="allGraspTheSituation-left flex">
<view v-for="(l,index) in letftTitleList" :key="index">{{l}}</view>
</view>
<view class="allGraspTheSituation-right flex">
<view class="allGraspTheSituation-num flex">
<text>2</text>
<text class="fullScore">100<text>%</text></text>
<text>12<text>.5</text></text>
</view>
<view class="allGraspTheSituation-num flex">
<text>2</text>
<text>62<text>%</text></text>
<text>3<text>.5</text></text>
</view>
<view class="allGraspTheSituation-num flex">
<text>2</text>
<text>62<text>%</text></text>
<text>3<text>.5</text></text>
</view>
<view class="allGraspTheSituation-num flex">
<text>2</text>
<text>62<text>%</text></text>
<text>3<text>.5</text></text>
</view>
<view class="allGraspTheSituation-num flex">
<text>2</text>
<text>62<text>%</text></text>
<text>3<text>.5</text></text>
</view>
<view class="allGraspTheSituation-num flex">
<text>2</text>
<text class="failed">45<text>%</text></text>
<text>12<text>.5</text></text>
<view class="allGraspTheSituation-num flex" v-for="(item,index) in ModuleList" :key="index">
<text>{{item.Module}}</text>
<text>{{item.Score}}</text>
<text class="fullScore">{{item.ScoreRate * 100}}<text>%</text></text>
<text class="fullScore">{{item.AvgScoreRate * 100}}<text>%</text></text>
</view>
</view>
......@@ -55,7 +28,7 @@
export default {
props: {
ModuleList:[]
},
components: {},
setup() {
......@@ -67,8 +40,7 @@
},
showPhone: false,
showLogin: true, //多次点击
TitleList:['考点','分数','个人得分率','平均得分'],
letftTitleList:['化学与生活','物质分类','物质的量综合','离子反应','氧化还原反应','化学实验','元素及其化合物']
TitleList:['考点','分数','个人得分率','平均得分']
});
return {
...toRefs(data),
......
......@@ -13,41 +13,19 @@
width="200">{{item}}</th>
</tr>
<tr class="analysisTest-content-right flex">
<td class="analysisTest-td">
<view class="analysisTest-number">1</view>
<view class="analysisTest-difficulty">
<van-icon name="star" v-for="(s,index) in 3" />
<td class="analysisTest-td" v-for="(item,index) in ScoreList" :key="index">
<view class="analysisTest-number">{{item.Sort}}</view>
<view class="analysisTest-difficulty">
<view v-if="item.Difficulty == '易'"><van-icon name="star" v-for="(s,i) in 1" :key="i"/></view>
<view v-else-if="item.Difficulty == '中'"><van-icon name="star" v-for="(s,i) in 2" :key="i"/></view>
<view v-else-if="item.Difficulty == '难'"><van-icon name="star" v-for="(s,i) in 3" :key="i"/></view>
</view>
<view class="analysisTest-KnowledgePoint">化学与生活</view>
<view class="analysisTest-ScoreOne">1</view>
<view class="analysisTest-ScoreTwo">2</view>
<view class="analysisTest-scoringRate">75%</view>
<view class="analysisTest-TheAverageAcore">1.7555555555555555555555</view>
<view class="analysisTest-averageScoringRate">88%</view>
</td>
<td class="analysisTest-td">
<view class="analysisTest-number">1</view>
<view class="analysisTest-difficulty">
<van-icon name="star" v-for="(s,index) in 1" />
</view>
<view class="analysisTest-KnowledgePoint">化学与生活</view>
<view class="analysisTest-ScoreOne">1</view>
<view class="analysisTest-ScoreTwo">2</view>
<view class="analysisTest-scoringRate">75%</view>
<view class="analysisTest-TheAverageAcore">1.7555555555555555555555</view>
<view class="analysisTest-averageScoringRate">88%</view>
</td>
<td class="analysisTest-td">
<view class="analysisTest-number">1</view>
<view class="analysisTest-difficulty">
<van-icon name="star" v-for="(s,index) in 1" />
</view>
<view class="analysisTest-KnowledgePoint">化学与生活</view>
<view class="analysisTest-ScoreOne">1</view>
<view class="analysisTest-ScoreTwo">2</view>
<view class="analysisTest-scoringRate">75%</view>
<view class="analysisTest-TheAverageAcore">1.7555555555555555555555</view>
<view class="analysisTest-averageScoringRate">88%</view>
<view class="analysisTest-KnowledgePoint">{{item.KnowledgePoint}}</view>
<view class="analysisTest-ScoreOne">{{item.QScore}}</view>
<view class="analysisTest-ScoreTwo">{{item.Score}}</view>
<view class="analysisTest-scoringRate">{{item.ScoreRate * 100}}%</view>
<view class="analysisTest-TheAverageAcore">{{item.AvgScore}}</view>
<view class="analysisTest-averageScoringRate">{{item.AvgScoreRate * 100}}%</view>
</td>
</tr>
......@@ -68,9 +46,7 @@
} from "vue";
export default {
props: {
},
props: ["ScoreList"],
components: {},
setup() {
......
......@@ -4,21 +4,11 @@
<view v-for="(T,index) in TitleList" :key="index">{{T}}</view>
</view>
<view class="dfficultyAnalysis-content flex">
<view class="dfficultyAnalysis-left flex">
<view v-for="(l,index) in letftTitleList" :key="index">{{l}}</view>
</view>
<view class="dfficultyAnalysis-right flex">
<view class="dfficultyAnalysis-num flex">
<text>2</text>
<text>53<text>.5</text></text>
</view>
<view class="dfficultyAnalysis-num flex">
<text>2</text>
<text>62<text>.5</text></text>
</view>
<view class="dfficultyAnalysis-num flex">
<text>2</text>
<text>12<text>.5</text></text>
<view class="dfficultyAnalysis-num flex" v-for="(item,index) in DifficultyList" :key="index">
<text>{{item.Difficulty}}</text>
<text>{{item.Count}}</text>
<text>{{item.Score}}</text>
</view>
</view>
......@@ -37,7 +27,7 @@
export default {
props: {
DifficultyList:[]
},
components: {},
setup() {
......@@ -49,8 +39,7 @@
},
showPhone: false,
showLogin: true, //多次点击
TitleList:['题目难度','题目数量','题目分数'],
letftTitleList:['简单题','中档题','难题']
TitleList:['题目难度','题目数量','题目分数']
});
return {
...toRefs(data),
......
......@@ -4,21 +4,11 @@
<view v-for="(T,index) in TitleList" :key="index">{{T}}</view>
</view>
<view class="graspTheSituation-content flex">
<view class="graspTheSituation-left flex">
<view v-for="(l,index) in letftTitleList" :key="index">{{l}}</view>
</view>
<view class="graspTheSituation-right flex">
<view class="graspTheSituation-num flex">
<text>2<text>%</text></text>
<text>53<text>%</text></text>
</view>
<view class="graspTheSituation-num flex">
<text>2<text>%</text></text>
<text>62<text>%</text></text>
</view>
<view class="graspTheSituation-num flex">
<text>2<text>%</text></text>
<text>12<text>%</text></text>
<view class="graspTheSituation-num flex" v-for="(item,index) in DifficultyRateList" :key="index">
<text>{{item.Difficulty}}</text>
<text>{{item.ScoreRate}}<text>%</text></text>
<text>{{item.AvgScoreRate}}<text>%</text></text>
</view>
</view>
......@@ -37,7 +27,7 @@
export default {
props: {
DifficultyRateList:[]
},
components: {},
setup() {
......
<template>
<view class="jobDetailsComponents-box">
<view class="jobDetailsComponents activeTwo flex">
<view class="jobDetailsComponents-time-box flex">
<view class="jobDetailsComponents-time flex">
<view></view>
<text>潇潇</text>
</view>
<view class="jobDetailsComponents-line">
<view class="jobDetailsComponents-point"></view>
</view>
</view>
<view class="jobDetailsComponents-center-box">
<view class="jobDetailsComponents-center flex">
<view class="jobDetailsComponents-left flex">
<view class="operation-state flex">
<view class="operation-state-img"></view>
<view class="operation-state-text">未批阅</view>
</view>
<view class="operation-name">2022-05-22</view>
</view>
<view class="jobDetailsComponents-right flex">
<view class="homework-score flex">
<view class="homework-score-title">
得分 <text>86</text>
</view>
</view>
<view class="homework-score flex">
<view class="homework-score-title">
得分率 <text>86</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="jobDetailsComponents activeOne flex">
<view class="jobDetailsComponents-time-box flex">
<view class="jobDetailsComponents-time flex">
<view></view>
<text>潇潇</text>
</view>
<view class="jobDetailsComponents-line">
<view class="jobDetailsComponents-point"></view>
</view>
</view>
<view class="jobDetailsComponents-center-box">
<view class="jobDetailsComponents-center flex">
<view class="jobDetailsComponents-left flex">
<view class="operation-state flex">
<view class="operation-state-img"></view>
<view class="operation-state-text">批阅</view>
</view>
<view class="operation-name">2022-05-22</view>
</view>
<view class="jobDetailsComponents-right flex">
<view class="homework-score flex">
<view class="homework-score-title">
得分 <text>86</text>
</view>
</view>
<view class="homework-score flex">
<view class="homework-score-title">
得分率 <text>86</text>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
reactive,
toRefs,
onMounted,
getCurrentInstance,
inject
} from "vue";
export default {
props: {
},
components: {},
setup() {
let data = reactive({
obj: {
Name: '',
Photo: '',
},
showPhone: false,
showLogin: true, //多次点击
});
let methods = {
}
return {
...toRefs(data),
...methods
};
},
};
</script>
<style scoped>
.homework-score-title text{
font-size: 46rpx;
font-weight: 800;
font-style: italic;
padding: 0 10rpx 0 17rpx;
}
.homework-score-title{
color: #282828;
font-size: 20rpx;
font-weight: 400;
letter-spacing: 1px;
}
.homework-score:first-child{
margin-right: 16rpx;
}
.homework-score{
align-items: center;
justify-content: space-between;
}
.jobDetailsComponents-right{
height: 88rpx;
background: #FCEEEF;
padding: 0 22rpx;
border-radius: 25rpx;
justify-content: space-between;
flex-shrink: 0;
}
.operation-state-text{
font-size: 20rpx;
letter-spacing: 2px;
}
.jobDetailsComponents.activeThree .operation-state-img{
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_480.png')no-repeat;
background-size: 22rpx 22rpx;
}
.jobDetailsComponents.activeTwo .operation-state-img{
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_781.png')no-repeat;
background-size: 22rpx 22rpx;
}
.jobDetailsComponents.activeOne .operation-state-img{
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_44.png')no-repeat;
background-size: 22rpx 22rpx;
}
.operation-state-img{
width: 22rpx;
height: 22rpx;
margin-right: 9rpx;
margin-top: 4rpx;
}
.operation-state{
font-size: 20rpx;
white-space: nowrap;
color: #282828;
}
.operation-name{
font-size: 16rpx;
letter-spacing: 1px;
font-weight: 500;
color: #C2BCBA;
}
.jobDetailsComponents-left{
justify-content: space-between;
align-items: center;
margin-bottom: 17rpx;
}
.jobDetailsComponents-center{
flex-direction: column;
}
.jobDetailsComponents-center-box{
flex-grow: 1;
border-radius: 30rpx;
padding: 17rpx 26rpx 23rpx 21rpx;
margin-bottom: 40rpx;
background: #FFFFFF;
box-shadow: 0px 6px 29px 0px rgba(76, 76, 76, 0.09);
border-radius: 20px;
}
.jobDetailsComponents.activeThree .jobDetailsComponents-point{
background: #C1C1C1;
}
.jobDetailsComponents.activeTwo .jobDetailsComponents-point{
background: #282828;
}
.jobDetailsComponents.activeOne .jobDetailsComponents-point{
background: #C81727;
box-shadow: 0px 0px 12px 0px rgba(200, 23, 39, 0.46);
}
.jobDetailsComponents .jobDetailsComponents-point{
width: 19rpx;
height: 19rpx;
position: absolute;
top: 20rpx;
left: -13rpx;
border-radius: 50%;
border: 3px solid #FFFFFF;
box-shadow: 0px 0px 12px 0px rgba(255, 255, 255, 0.46);
}
.jobDetailsComponents-line{
width: 4rpx;
height: 100%;
background: #F1F1F1;
margin-left: 46rpx;
margin-right: 46rpx;
position: relative;
}
.jobDetailsComponents-time text{
font-size: 20rpx;
font-weight: bold;
white-space: nowrap;
margin-top: 18rpx;
margin-left: 4rpx;
}
.jobDetailsComponents-time{
color: #282828;
font-size: 36rpx;
font-weight: bold;
letter-spacing: 1rpx;
}
.jobDetailsComponents-time-box{
}
.jobDetailsComponents{
justify-content: space-between;
padding: 0 50rpx;
}
</style>
This diff is collapsed.
<template>
<view class="examList-box">
<view class="examList-import">
<view class="examList-import" @click="ImportInformation">
<van-icon name="plus" />
<text>导入考试信息</text>
</view>
......@@ -33,6 +33,20 @@
</view>
<!-- <view class="noData">暂无数据</view> -->
</view>
<van-popup :show="show" :round="true">
<view class="examList-popup-box">
<van-icon class="examList-popup-closure" name="cross" @click="show=false"/>
<view class="examList-popup-title">导入考试信息</view>
<view class="examList-popup-content">
<input v-model="obj.name" class="examList-popup-name" placeholder="请输入考试名称">
<view class="examList-popup-fil" @click="uploadFiles">
<van-image class="img" width="32rpx" height="32rpx" fit="cover"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653639041000_305.png" />
选择文件
</view>
</view>
</view>
</van-popup>
</view>
</template>
<script>
......@@ -58,12 +72,19 @@
},
showPhone: false,
showLogin: true, //多次点击
show:false,
});
let methods = {
JobDetails(){
uni.reLaunch({
url: '/pages/index/workSituation'
});
},
ImportInformation(){
this.show = true
},
uploadFiles(){
}
}
return {
......@@ -74,6 +95,52 @@
};
</script>
<style scoped>
.img {
display: inline-block;
position: relative;
top: 6rpx;
margin-right: 10rpx;
}
.examList-popup-fil{
line-height: 88rpx;
padding: 0 10rpx;
border-radius: 44rpx;
font-size: 30rpx;
color: #FFFFFF;
background: #C91727;
margin-top: 27rpx;
text-align: center;
}
.examList-popup-name{
background-color: #FFFFFF;
text-align: center;
border: 1px solid #AAAAAA;
height: 86rpx;
line-height: 86rpx;
padding: 0 10rpx;
border-radius: 44rpx;
font-size: 30rpx;
}
.examList-popup-title{
width: 100%;
text-align: center;
font-size: 30rpx;
font-weight: 500;
margin-bottom: 73rpx;
letter-spacing: 1rpx;
}
.examList-popup-closure{
position: absolute;
right: 31rpx;
top: 31rpx;
color: #282828;
font-size: 38rpx;
}
.examList-popup-box{
position: relative;
width: 548rpx;
padding: 48rpx 55rpx 98rpx 55rpx;
}
.homework-score-num view:last-child{
font-size: 23rpx;
margin-top: 25rpx;
......
......@@ -70,7 +70,7 @@
let methods = {
JobDetails(){
uni.reLaunch({
url: '/pages/index/workSituation'
url: '/pages/index/jobDetails'
});
}
}
......
......@@ -14,6 +14,12 @@
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/index/jobDetails",
"style": {
"navigationStyle": "custom"
}
},{
"path": "pages/index/workSituation",
"style": {
......
......@@ -3,32 +3,34 @@
<navbar class="navbarSticky" bg="#F6F6F6">
<view class="index-header-box">
<view class="index-header-img">
<van-image width="100%" height="100%" fit="cover" class="img"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_713.png" />
<van-image width="100%" height="100%" fit="cover" class="img" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_713.png" />
</view>
<view class="index-header-tetx">
<view class="index-header-title">
welcome
</view>
<view class="index-header-name">周一围</view>
<view class="index-header-name">{{userData.AccountName}}</view>
</view>
</view>
</navbar>
<view style="margin: 40rpx 0 10rpx 0;">
<view style="padding:0 50rpx;font-weight: 800;color: #282828;">
<view style="font-size: 36rpx;">Hello,</view>
<view style="font-size: 36rpx;">Hello,{{userData.AccountName}}</view>
<view style="font-size: 50rpx;">您的学情反馈已准备好</view>
</view>
</view>
<course-card></course-card>
<course-card :stuCourseList="stuCourseList"></course-card>
<view class="index-student-title flex">
<text>反馈详情</text>
<view>(共53条)</view>
<text>考情详情</text>
<view>(共{{workList!=null&&workList.length>0?workList.length:0}}条)</view>
</view>
<view class="index-student-information">
<JobComponents></JobComponents>
<examComponents></examComponents>
<commentsComponents></commentsComponents>
<template v-for="(item,index) in workList">
<JobComponents v-if="item.ResultType==1" :jobData="item"></JobComponents>
<examComponents v-if="item.ResultType==2" :jobData="item"></examComponents>
<commentsComponents v-if="item.ResultType==3" :jobData="item"></commentsComponents>
</template>
</view>
</view>
</template>
......@@ -50,13 +52,10 @@
provide,
nextTick,
} from "vue";
// import {
// getActivityList
// } from "../../api/activity";
import {
getSweepCode
} from '../../api/index.js'
import {
getSweepCode
} from '../../api/index.js'
import {
getImageColor
} from '../../utils/index.js'
......@@ -64,11 +63,6 @@
import navbar from '../../components/navbar.vue'
import bottom from '../../components/bottom.vue'
export default {
// data(){
// return{
// }
// }
components: {
indexassembly,
navbar,
......@@ -83,28 +77,16 @@
proxy
} = getCurrentInstance();
let data = reactive({
ActiveMsg: {
pageIndex: 1,
pageSize: 10,
ActivityType: 0,
SelectIsEnd: 0,
},
ActivityList: [],
pageData: {
LearningGardenList: []
},
SurveyObj:{
ActivitySurveyId:0,
ActivitySurveyGuestId:0,
stuCourseList: [], //学员课程列表
userData: {}, //用户信息
//学员作业和考试查询参数
workMsg: {
courseId: 0,
},
userData: {}
workList: [],//学员作业、考试、评语数据
});
let methods = {
goTongji() {
//console.log("SurveyObj",data.SurveyObj);
this.jumpPage('/pages/study/questionNaire?ActivitySurveyId='+data.SurveyObj.ActivitySurveyId+"&ActivitySurveyGuestId="+data.SurveyObj.ActivitySurveyGuestId);
},
jumpPage(url) {
uni.navigateTo({
url: url,
......@@ -115,10 +97,7 @@
url: '/pages/timetable/timeTable',
})
},
//跳转至详情
goActiveDetail(Id) {
// this.jumpPage(`/pages/activity/activityDetails?Id=${Id}`);
},
base64_decode(data) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1,
......@@ -155,91 +134,26 @@
}
} while (i < data.length);
dec = tmp_arr.join("");
//dec = utf8_decode(dec);
return dec;
},
//{"cmd":"checkin","params":{"classId":0,"ClassDate":"2022-4-19","ClassRoomId":27,
//"School_Id":0,"TeacherId":8,"CheckStatus":0,"StudyNum":"90","ClassTimeId":16531}}
scan() {
//调起条码扫描
console.log("进来了")
let that = this
uni.scanCode({
scanType: ['qrCode'],
success: function(res) {
// 解码
var saveObj={};
try {
saveObj = that.base64_decode(res.result)
// console.log(saveObj)
} catch (e) {
//TODO handle the exception
// console.log(e)
}
var jsonObj= JSON.parse(saveObj)
if(jsonObj.cmd =="checkin"){
var userData = uni.getStorageSync('userInfo');
console.log("userData",userData);
jsonObj.params.StuId=userData.AccountId;
var array=[];
array.push(jsonObj.params);
console.log("jsonObj.params",jsonObj.params)
let result = getSweepCode(array);
if (result) {
// console.log(result)
if (result.Code == 1) {
console.log('扫码成功')
uni.navigateTo({
url:'./success',
})
}else{
console.log('扫码失败')
uni.navigateTo({
url: './fail'
})
}
}
}
},
});
},
async getActivityData() {
// let res = await getActivityList(data.ActiveMsg);
// if (res.resultCode == 1) {
// data.ActivityList = res.data.pageData;
// }
},
getIndexData() {
proxy.$request("/AppletIndex/GetIndexInfo_V2", {}).then(res => {
data.pageData = res.Data
uni.setStorageSync("indexData", res.Data);
data.SurveyObj.ActivitySurveyId=res.Data.ActivitySurveyId;
data.SurveyObj.ActivitySurveyGuestId=res.Data.ActivitySurveyGuestId;
if (data.pageData.LearningGardenList.length > 0) {
data.pageData.LearningGardenList.forEach((x, y) => {
if (x.List.length > 0) {
x.List.forEach(async (item, index) => {
await this.getColor(item.Img, index, y).then(v => {
data.pageData.LearningGardenList[v.y]
.List[
v.index].bgcolor = v.formatres;
data.pageData.LearningGardenList[v.y]
.List[
v.index].bgcolor1 = v
.formatres1;
data.pageData.LearningGardenList[v.y]
.List[
v.index].bgcolor2 = v
.formatres2;
})
})
}
})
//获取学员课程列表
getStuCourse() {
proxy.$request("/Stu/GetStuCourse", {}).then(res => {
let tempArray = res.Data;
data.stuCourseList = tempArray;
if (tempArray && tempArray.length > 0) {
this.getStuHomeWorkAndExam(tempArray[0].courseId)
}
})
},
//获取学员作业、考试、评语
getStuHomeWorkAndExam(courseId) {
this.workMsg.courseId = courseId;
data.workList = [];
proxy.$request("/Stu/GetStuWork", this.workMsg).then(res => {
data.workList = res.Data;
})
},
async getColor(src, index, y) {
let res = await getImageColor('myCanvas', 'img' + index, src)
let obj = {}
......@@ -250,33 +164,6 @@
obj.y = y
return obj
},
againdata() {
data.userData = uni.getStorageSync('userInfo');
methods.getIndexData();
methods.getActivityData();
},
jumpGarden(id) {
if (id == 1) {
uni.navigateTo({
url: "/pages/learningGarden/learningGardenList"
})
} else if (id == 2) {
// uni.navigateTo({
// url:"/pages/learningGarden/learningGardenList"
// })
}
},
jumpJiahemini() {
let userinfo = uni.getStorageSync('userInfo');
wx.navigateToMiniProgram({
appId: 'wx38e054ee42b054f4',
path: '', //为空则打开首页
extraData: {
Id: userinfo.Id || 0
}
})
}
};
onMounted(() => {
......@@ -288,8 +175,7 @@
};
},
onShow() {
this.getActivityData();
this.getIndexData();
this.getStuCourse();
this.userData = uni.getStorageSync('userInfo');
},
onShareAppMessage() {
......@@ -310,35 +196,41 @@
</script>
<style scoped>
.index-student-title view{
.index-student-title view {
font-size: 25rpx;
color: #ABABAB;
margin-left: 20rpx;
padding: 13rpx 0 0 0;
}
.index-student-title text{
.index-student-title text {
font-size: 36rpx;
font-weight: 800;
color: #282828;
}
.index-student-title{
.index-student-title {
padding: 0 50rpx 45rpx;
}
.index-student-information{
.index-student-information {
min-height: 500rpx;
background: rgba(255,255,255,.7);
background: rgba(255, 255, 255, .7);
border-radius: 50rpx 50rpx 0 0;
padding: 71rpx 0 0 0;
}
.index-header-name{
.index-header-name {
font-size: 30rpx;
color: #474747;
}
.index-header-tetx{
.index-header-tetx {
color: #D0D0D0;
font-size: 24rpx;
}
.index-header-img .img{
.index-header-img .img {
display: block;
border: 2rpx solid rgba(164, 164, 164, 0.32);
border-radius: 50%;
......@@ -348,7 +240,8 @@
box-sizing: border-box;
margin: 4rpx;
}
.index-header-img{
.index-header-img {
width: 68rpx;
height: 68rpx;
border-radius: 50%;
......@@ -357,6 +250,7 @@
margin-right: 20rpx;
background: #FFFFFF;
}
.indexpage {
min-height: 100vh;
background-color: #f6f6f6;
......@@ -366,26 +260,29 @@
background-repeat: no-repeat;
background-size: 100% auto;
}
.index-header-box{
.index-header-box {
display: flex;
flex-direction: row;
align-items: center;
padding:0rpx 42rpx ;
padding: 0rpx 42rpx;
}
.index-header-box .index-header-title{
.index-header-box .index-header-title {
font-size: 24rpx;
font-weight: 400;
color: #B8B8B8;
}
.index-header-box .index-header-name{
.index-header-box .index-header-name {
font-size: 30rpx;
font-weight: 800;
color: #282828;
}
.navbarSticky {
display: sticky;
top: 0;
z-index: 9;
}
</style>
<template>
<view class="jobDetails-box">
<navbar class="navbarSticky" bg="#F6F6F6">
<view class="jobDetails-header-box">
<van-icon class="jobDetails-header-left" name="arrow-left" @click="back"/>
<text class="jobDetails-header-title">作业情况</text>
</view>
</navbar>
<view class="jobDetails-content">
<view class="jobDetails-content-header">
<view class="jobDetails-conten-title flex">
<text>成都2022科学益智L4 -05乐思会</text>
<view>高一作业11</view>
</view>
<view class="jobDetails-num-box flex">
<view class="jobDetails-num flex">
<text>学生数</text>
<view>15</view>
</view>
<view class="jobDetails-num flex">
<text>已提交</text>
<view>12</view>
</view>
<view class="jobDetails-num flex">
<text>已批阅</text>
<view>10</view>
</view>
<view class="jobDetails-num flex">
<text>优秀</text>
<view>5</view>
</view>
</view>
</view>
<view class="index-student-information">
<jobDetailsComponents></jobDetailsComponents>
</view>
</view>
</view>
</template>
<script>
import jobDetailsComponents from '@/components/index/scoreDetails/jobDetailsComponents'
import {
reactive,
toRefs,
onMounted,
getCurrentInstance,
inject
} from "vue";
export default {
props: {
},
components: {
jobDetailsComponents
},
setup() {
let data = reactive({
obj: {
Name: '',
Photo: '',
},
showPhone: false,
showLogin: true, //多次点击
});
let methods = {
back(){
uni.reLaunch({
url: '/pages/index/workSituation'
});
}
}
return {
...toRefs(data),
...methods
};
}
};
</script>
<style scoped>
.index-student-information{
min-height: 800rpx;
background: #FFFFFF;
border-radius: 50rpx 50rpx 0 0;
padding: 71rpx 0 30rpx 0;
}
.jobDetails-num view{
font-size: 36rpx;
font-weight: 800;
font-style: italic;
margin-top: 15rpx;
}
.jobDetails-num text{
font-size: 20rpx;
font-weight: 400;
}
.jobDetails-num{
flex-direction: column;
color: #CE8086;
}
.jobDetails-num-box{
justify-content: space-between;
padding: 70rpx 100rpx 35rpx 100rpx;
}
.jobDetails-conten-title view{
font-size: 50rpx;
font-weight: 800;
}
.jobDetails-conten-title text{
font-size: 36rpx;
font-weight: 400;
margin-bottom: 10rpx;
}
.jobDetails-conten-title{
padding: 50rpx 50rpx 0 50rpx;
flex-direction: column;
color: #282828;
letter-spacing: 1rpx;
}
.jobDetails-content-header{
}
.jobDetails-content{
position: relative;
z-index: 2;
}
.jobDetails-box{
background: #FCEEEF;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: 0;
}
.jobDetails-header-title{
position: absolute;
left: 0;
right: 0;
top: 0;
padding: 37rpx 31rpx;
text-align: center;
letter-spacing: 1rpx;
font-size: 32rpx;
font-weight: 500;
color: #282828;
}
.jobDetails-header{
margin: 50rpx 50rpx 0 50rpx;
align-items: center;
}
.jobDetails-header-left{
font-size: 40rpx;
position: relative;
z-index: 3;
}
.jobDetails-header-box{
padding: 37rpx 31rpx;
position: relative;
}
.navbarSticky {
display: sticky;
top: 0;
z-index: 9;
}
</style>
......@@ -12,13 +12,13 @@
</view>
<view class="scoreDetails-header-tetx">
<view class="scoreDetails-header-name">
周一围
{{ExamScore.StuName}}
</view>
<view class="scoreDetails-header-title">化学成绩详情</view>
<view class="scoreDetails-header-title">{{ExamScore.ExamName}}</view>
</view>
<view class="scoreDetails-header-num flex">
<view>总分</view>
<text>92</text>
<text>{{ExamScore.TScore}}</text>
</view>
</view>
<view class="scoreDetails-Fraction flex">
......@@ -26,8 +26,7 @@
<view class="scoreDetails-Fraction-img activeOne"></view>
<view class="scoreDetails-Fraction-num">
<view>
<text>45</text>
<text>{{ExamScore.Rank}}</text>
</view>
<view>排名</view>
</view>
......@@ -36,8 +35,7 @@
<view class="scoreDetails-Fraction-img activeTwo"></view>
<view class="scoreDetails-Fraction-num">
<view>
<text>45</text>
%
<text>{{ExamScore.ScoreRate * 100}}</text>%
</view>
<view>得分率</view>
</view>
......@@ -46,7 +44,7 @@
<view class="scoreDetails-Fraction-img activeThree"></view>
<view class="scoreDetails-Fraction-num">
<view>
<text>45</text>
<text>{{ExamScore.RankRate * 100}}</text>%
</view>
<view>领先度</view>
</view>
......@@ -54,29 +52,29 @@
</view>
<view class="scoreDetails-title flex">
<text>各小题得分分析考</text>
<view>(共53条)</view>
<view>(共{{ExamScore.ScoreList.length}}小题)</view>
</view>
<analysisTest></analysisTest>
<analysisTest :ScoreList="ExamScore.ScoreList"></analysisTest>
<view class="scoreDetails-title flex">
<text>各板块掌握情况</text>
</view>
<view class="index-student-information">
<penta></penta>
<allGraspTheSituation></allGraspTheSituation>
<penta :ModuleList="ExamScore.ModuleList"></penta>
<allGraspTheSituation :ModuleList="ExamScore.ModuleList"></allGraspTheSituation>
</view>
<view class="scoreDetails-title flex">
<text>试卷难度分析</text>
</view>
<view class="index-student-information">
<line></line>
<dfficultyAnalysis></dfficultyAnalysis>
<line :DifficultyList="ExamScore.DifficultyList"></line>
<dfficultyAnalysis :DifficultyList="ExamScore.DifficultyList"></dfficultyAnalysis>
</view>
<view class="scoreDetails-title flex">
<text>难度掌握情况</text>
</view>
<view class="index-student-information">
<triangle></triangle>
<graspTheSituation></graspTheSituation>
<triangle :DifficultyRateList="ExamScore.DifficultyRateList"></triangle>
<graspTheSituation :DifficultyRateList="ExamScore.DifficultyRateList"></graspTheSituation>
</view>
</view>
</template>
......@@ -127,24 +125,22 @@
proxy
} = getCurrentInstance();
let data = reactive({
ActiveMsg: {
pageIndex: 1,
pageSize: 10,
ActivityType: 0,
SelectIsEnd: 0,
userData: {},
Msg:{
ExamId:0,
StuUId:0
},
ActivityList: [],
pageData: {
LearningGardenList: []
},
SurveyObj:{
ActivitySurveyId:0,
ActivitySurveyGuestId:0,
},
userData: {}
ExamScore:{},
});
let methods = {
//获取学生成绩
getExamStuScore(){
proxy.$request("/Exam/GetExamStuScoreInfo", data.Msg).then(res => {
data.ExamScore = res.Data;
})
},
back() {
uni.navigateTo({
url: '/pages/index/index'
......@@ -160,8 +156,13 @@
...methods,
};
},
onLoad(options){
this.Msg.ExamId = options.examId;
this.Msg.StuUId = options.stuUId;
},
onShow() {
this.userData = uni.getStorageSync('userInfo');
this.getExamStuScore();
},
onShareAppMessage() {
return {
......
......@@ -20,7 +20,7 @@
<view style="font-size: 50rpx;">李老师</view>
</view>
</view>
<course-card></course-card>
<courseCard></courseCard>
<view class="index-student-information">
<view class="workSituation-title-box flex">
<view class="workSituation-title flex"
......@@ -43,7 +43,7 @@
</template>
<script>
import courseCard from '../../components/index/course-card'
import courseCard from '@/components/index/workSituation/courseCard'
import operation from '@/components/index/workSituation/operation'
import studentList from '@/components/index/workSituation/studentList'
import examList from '@/components/index/workSituation/examList'
......@@ -87,7 +87,7 @@
{name:'作业情况',num:5},
{name:'考试信息',num:18},
],
tabNme:'作业情况'
tabNme:'考试信息'
});
let methods = {
......@@ -166,7 +166,7 @@
border-radius: 30rpx;
}
.index-student-information{
min-height: 500rpx;
min-height: 800rpx;
background: rgba(255,255,255,.7);
border-radius: 50rpx 50rpx 0 0;
padding: 50rpx 0 30rpx 0;
......
......@@ -63,8 +63,8 @@
} = getCurrentInstance();
let Toast = inject("$toast");
let msg = reactive({
Account: "",
Password: "",
Account: "13802557508",
Password: "557508",
});
let data = reactive({
phoneNum: "",
......@@ -100,7 +100,7 @@
Toast.fail("请输入密码");
return;
}
let res = await this.$request('/AppletLogin/Login', msg).then(res=>{
let res = await this.$request('/Login/Login', msg).then(res=>{
if(res.Code==1){
res.Data.Account = msg.Account;
uni.setStorageSync("userInfo", res.Data);
......
//请求教育接口
let host = ''
if (process.env.NODE_ENV === "development") {
host = 'http://192.168.10.46:8300/api'
host = 'http://192.168.10.46:8900/api'
// host = 'http://192.168.10.65:8085/api'
// host = 'https://eduapi.oytour.com/api'
} else {
host = 'https://eduapi.oytour.com/api'
}
......@@ -16,10 +15,10 @@ let request = (param) => {
method: param.method || "Post",
header: param.header || {
'content-type': "application/json",
'token': token || ""
'Authorization': token || ""
},
data: {
msg: param.data,
Msg: param.data,
},
success: res => {
if (res.data.Code === 1) {
......
......@@ -126,8 +126,8 @@ export default global['__wxComponents']['vant/search/index']
padding-left: var(--padding-sm,24rpx);
border-radius: 4rpx;
border-radius: var(--border-radius-sm,4rpx);
background-color: #f7f8fa;
background-color: var(--search-background-color,#f7f8fa);
background-color: #FFFFFF;
background-color: var(--search-background-color,#FFFFFF);
}
.van-search__content--round {
......
......@@ -21,8 +21,8 @@
padding-left: var(--padding-sm,24rpx);
border-radius: 4rpx;
border-radius: var(--border-radius-sm,4rpx);
background-color: #f7f8fa;
background-color: var(--search-background-color,#f7f8fa);
background-color: #FFFFFF;
background-color: var(--search-background-color,#FFFFFF);
}
.van-search__content--round {
......
......@@ -126,8 +126,8 @@ export default global['__wxComponents']['vant/search/index']
padding-left: var(--padding-sm,24rpx);
border-radius: 4rpx;
border-radius: var(--border-radius-sm,4rpx);
background-color: #f7f8fa;
background-color: var(--search-background-color,#f7f8fa);
background-color: #FFFFFF;
background-color: var(--search-background-color,#FFFFFF);
}
.van-search__content--round {
......
......@@ -21,8 +21,8 @@
padding-left: var(--padding-sm,24rpx);
border-radius: 4rpx;
border-radius: var(--border-radius-sm,4rpx);
background-color: #f7f8fa;
background-color: var(--search-background-color,#f7f8fa);
background-color: #FFFFFF;
background-color: var(--search-background-color,#FFFFFF);
}
.van-search__content--round {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment