查看详情

master
huan.xu 5 years ago
parent 2a033574ad
commit 40ed5f0442
  1. 1
      src/api/user.js
  2. 17
      src/api/yyyf.js
  3. 223
      src/pages/css/general.css
  4. 3582
      src/pages/css/layui.css
  5. 205
      src/pages/css/style.css
  6. 6
      src/pages/studyGrade.app.js
  7. 286
      src/pages/studyGrade.vue
  8. 2
      src/pages/yyyflogin.app.js
  9. 2
      src/pages/yyyflogin.vue

@ -9,7 +9,6 @@ const Host1 = ethApi + '/';
//登录 //登录
export function signIn(data) { export function signIn(data) {
debugger;
return request({ return request({
method: 'post', method: 'post',
url: Host + 'login/password2', url: Host + 'login/password2',

@ -15,3 +15,20 @@ export function signIn(data) {
timeout: -1, timeout: -1,
}); });
} }
export function getExamOverview(data) {
return request({
method: 'post',
url: Host + 'teachingGrade/getExamOverview',
params: data,
});
}
export function getExamDetails(data) {
return request({
method: 'get',
url: Host + 'teachingGrade/getExamDetails',
params: data,
});
}

@ -0,0 +1,223 @@
@charset "utf-8";
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,fieldset,input,textarea,blockquote,font{padding: 0px;margin: 0px; font-family:\5FAE\8F6F\96C5\9ED1;}
input, textarea, keygen, select, button, isindex, meter, progress {-webkit-writing-mode: horizontal-tb;}
input, textarea, keygen, select, button, isindex {
margin: 0em;
font: -webkit-small-control;
color: initial;
letter-spacing: normal;
word-spacing: normal;
text-transform: none;
text-indent: 0px;
text-shadow: none;
display: inline-block;
text-align: start;
}
h1,h2,h3,h4,h5,h6,b,strong {font-weight:800 }
table { border-collapse: collapse; border-spacing: 0; table-layout:fixed; }
fieldset,img{ border:0; }
select,input,select,label { vertical-align:middle }
ul,ol{ list-style: none; }
/*link*/
a {text-decoration:none; cursor:pointer;}
a:hover {text-decoration:none;}
.pointer {cursor:pointer;}
/* 去a虚线框 cdl clear dotted line */
.cdl, aactive { outline:none; blr:expression(this.onFocus=this.blur()) }
focus { outline:none } /* for Firefox*/
/*clear*/
.clear {clear:both; margin:0px; padding:0px;}
/* new clearfix */
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html .clearfix { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */
/*float*/
.fl { float:left; display:inline; } /* 左浮动 */
.fr { float:right; } /* 右浮动 */
/* text */
.textl {text-align:left;}
.textr {text-align:right;}
.textc {text-align:center;}
.bold {font-weight:800;}
.overflow {overflow:hidden;}
.fn{ font-style:normal; font-weight:normal;}
.nowrap{ white-space:nowrap;}
.indent {text-indent:2em;}
.ellipsis{-o-text-overflow: ellipsis; text-overflow: ellipsis;
-icab-text-overflow: ellipsis;
-khtml-text-overflow: ellipsis;
-moz-text-overflow: ellipsis;
-webkit-text-overflow: ellipsis;
white-space:nowrap; overflow:hidden; }
/* display and position */
.disb {display:block;}
.hide {display:none;}
.inlineBlock {display:inline-block; *zoom:1; *display:inline; vertical-align:middle;}
.absolute { position:absolute}
.relative { position:relative;}
/*新增相对窗口定位*/
.fixed { position:fixed;}
/* margin */
.nomp {margin:0px; padding:0px;}
.nomar{margin:0px;}
.mar10 {margin:10px;}
.mt10 {margin-top:10px;}
.mb10 {margin-bottom:10px;}
.ml10 {margin-left:10px;}
.mr10 {margin-right:10px;}
.mar20 {margin:20px;}
.mt20 {margin-top:20px;}
.mb20 {margin-bottom:20px;}
.ml20 {margin-left:20px;}
.mr20 {margin-right:20px;}
.m0a { margin:0 auto; } /*容器内水平居中*/
/* padding */
.nopad {padding:0px;}
.pad10 {padding:10px;}
.pl10 {padding-left:10px;}
.pr10 {padding-right:10px;}
.pb10 {padding-bottom:10px;}
.pt10 {padding-top:10px;}
.pad20 {padding:20px;}
.pl20 {padding-left:20px;}
.pr20 {padding-right:20px;}
.pb20 {padding-bottom:20px;}
.pt20 {padding-top:20px;}
/* font */
font {font:12px normal;}
.nofont {font-size:0px;}
.font12 {font-size:12px;}
.font14 {font-size:14px;}
.font16 {font-size:16px;}
.font18 {font-size:18px;}
.font15 {font-size:15px;}
.lh24{line-height:24px;}
.lh18{line-height:18px;}
/*CSS3.0*/
.radius
{/* border radius *//* (-moz-\-webkit-)border-top-left-radius:; \ -moz-border-radius-topleft:; */
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
}
.radius50
{/* border radius *//* (-moz-\-webkit-)border-top-left-radius:; \ -moz-border-radius-topleft:; */
-moz-border-radius: 50%;
-khtml-border-radius: 50%;
-webkit-border-radius: 50%;
border-radius: 50%;
}
.shadow
{
/*box shadow*//*(-moz-\-webkit-)box-shadow:;*/
-moz-box-shadow: rgba(0,0,0,0.3) 0 4px 4px;
-webkit-box-shadow: rgba(0,0,0,0.3) 0 4px 4px;
-khtml-box-shadow: rgba(0,0,0,0.3) 0 4px 4px;
box-shadow: rgba(0,0,0,0.3) 0 4px 4px; /*filter:progid:DXImageTransform.Microsoft.Shadow(enabled=Enabled,color=#000,Strength=4,Direction=135);*/
}
/*隐藏文字*/
.offScreen{
left: -9999px;
position: absolute;}
.ofh { overflow:hidden; } /*溢出隐藏 */
.tal { text-align:left; } /* 内容左对齐*/
.tar { text-align:right; } /* 内容右对齐 */
.tac { text-align:center; } /* 内容居中*/
::-webkit-input-placeholder { /* WebKit browsers */
color: #999;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
color: #999;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
color: #999;
}
:-ms-input-placeholder { /* Internet Explorer 10+ */
color: #999;
}
/* 输入框隐藏边框 */
input,button,select,textarea{ outline:none;}
textarea{resize:none;}
/*新增*/
.b1sd{ border:1px solid #dedede;}
.w100{ width:100%;}
.c333{ color:#333;}
.c666{ color:#666;}
.c999{ color:#999;}
.bgfff{ background:#fff;}
.cf00{ color:#f00;}
a:visited{color:#333;}
a:active{color:#004276;}
a:link{color:#333;}
a:hover{ color:#ec7443;}
/*pre标签超出换行*/
pre{ wite-space:pre-warp; word-wrap:break-word;}
/*拆分字母*/
.wordBreak{ table-layout:fixed; word-break:break-all; overflow:hidden;}
/*透明度*/
.opacity{ opacity:0; filter:alpha(opacity=0); -moz-opacity:0; -khtml-opacity:0;}
.opacity50{opacity:0.5; filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity:0.5;}
/*去掉谷歌Input黄色背景*/
input{-webkit-box-shadow:0 0 0px 1000px white inset;}
.zj_offset {
width: 1px;
height: 1px;
display: none;
}
.borp{ position: fixed; z-index: 3;}
ul.project-mana-ul{
margin-top: 0;
width: 735px;
margin-left: -34px;
overflow: hidden;
}
ul.project-mana-ul li{
padding-top: 40px;
margin: 0 34px;
}
ul.ppt-ul li{
cursor:pointer;
}
.pro-mana-img-all.bgColor {
border: 2px solid #f00;
box-sizing: border-box;
background-position: -2px -2px;
}
.pro-mana-img-all.bgColor .added-btn{
width: 66px;
height: 66px;
border: none;
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,205 @@
@charset "utf-8";
html,body{width:100%;height: 100%;cursor:default;}
.col-646{color:#646d8c;}
.logo {
width: 126px;
height: 30px;
margin-top: 16px;
}
.logo img {
width: 100%;
height: 100%;
}
.head-wrap {
width: 100%;
min-width: 1250px;
height: 62px;
}
.the-bg, .menu-level-2.active {
background: #7b7de5;
}
.wid-fixed {
width: 100%;
height: 100%;
}
.marl-20 {
margin-left: 20px;
}
.mask {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #000000;
opacity: 0.5;
z-index: 99;
}
.padb20 {
padding-bottom: 20px;
}
.padlr50 {
padding: 0 50px;
}
.bg-f0f1 {
background-color: #f0f1f4;
}
.col-646 {
color: #646d8c;
}
.nav-icon {
width: 8px;
height: 10px;
background-position: -46px -213px;
margin: 5px 14px 0 14px;
}
.col-646 {
color: #646d8c;
}
.hei70 {
height: 70px;
}
.bor-radi4 {
border-radius: 4px;
}
.min-wid-1150 {
min-width: 1150px;
}
.bg-ff {
background-color: #ffffff;
}
.btn-84-34 {
width: 84px;
height: 30px;
line-height: 30px;
color: #ffffff;
text-align: center;
border-radius: 4px;
}
.marl-10 {
margin-left: 10px;
}
.the-bg, .menu-level-2.active {
background: #7b7de5;
}
.mar-auto {
margin: 0 auto;
}
.minwid-800 {
min-width: 800px;
}
.hei70 {
height: 70px;
}
.box {
width: 100%;
margin-top: 10px;
margin-bottom: 20px;
padding: 25px 30px;
background: #fff;
font-size: 12px;
color: #fff;
box-shadow: 0 1px 4px 2px #e9ecf4;
box-sizing: border-box;
}
.box__tit {
font-size: 16px;
font-style: normal;
font-weight: normal;
color: #333;
}
.box__table {
width: 100%;
margin-top: 18px;
margin-bottom: 25px;
border: 1px solid #e5e5f3;
}
.deta-minwid-name {
min-width: 150px;
width: 25%;
}
.bor-radi4 {
border-radius: 4px;
}
.min-wid-1150 {
min-width: 1150px;
}
.bg-ff {
background-color: #ffffff;
}
.the-col, .menu-level.active {
color: #6f7eb6;
}
.linehei-70 {
line-height: 70px;
}
.col-878 {
color: #878dac;
}
.col-f57 {
color: #f57c7c;
}
.deta-minwid-usetime {
min-width: 100px;
width: 12%;
}
.deta-minwid-date {
min-width: 130px;
width: 16%;
}
.deta-minwid-class {
min-width: 170px;
width: 14%;
}
.deta-minwid-stuid {
min-width: 150px;
width: 12%;
}
.deta-minwid-achie {
min-width: 100px;
width: 12%;
}
.box__data p {
line-height: 20px;
font-size: 14px;
color: #646d8c;
text-indent: 2em;
}
.box__tit span {
font-size: 14px;
}
.box .red {
color: #ff386c;
font-style: normal;
}
.box__table th {
height: 39px;
line-height: 39px;
text-align: center;
font-size: 14px;
font-weight: normal;
color: #646d8c;
background: #f2f2fc;
}
table tr:hover {
background: #eceffa;
}
.box__table td {
height: 40px;
line-height: 40px;
text-align: center;
color: #7f8099;
font-size: 14px;
}
.nav-icon{
width:8px;height:10px;
background-position: -46px -213px;
margin: 5px 14px 0 14px;
}

@ -0,0 +1,6 @@
import pageCommon from '@/common/page-common';
import App from './studyGrade';
pageCommon.createPageInstance({
render: h => h(App),
});

@ -0,0 +1,286 @@
<template>
<div class="main-class">
<!--头部开始-->
<div class="head-wrap the-bg">
<div class="wid-fixed">
<div class="fl marl-20">
<div class="logo fl" style="margin-right:20px;">
<span></span>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<!--头部结束-->
<div id="updata_pass"></div>
<div class="bg-f0f1 padlr50 padb20 ">
<div>
<div class="fl" style="padding: 26px 0;">
<div class="fl col-646 font12 ">
我的成绩
</div>
<div class="nav-icon fl"></div>
<div class="fl col-646 font12 ">区块链</div>
</div>
<div class="fr" style="padding: 16px;">
<div class="btn-84-34 the-bg fr marl-10 pointer" @click="closeWindow">返回</div>
</div>
<div class="clear"></div>
</div>
<div class="hei70 bg-ff bor-radi4 min-wid-1150">
<div class="minwid-800 mar-auto hei70" style="width:calc(100% - 200px);">
<div class="deta-minwid-name fl">
<div class="fl linehei-70 the-col">学生姓名</div>
<div class="fl linehei-70 col-878 ellipsis" style="width:110px" :title="userName">{{userName}}</div>
<div class="clear"></div>
</div>
<div class="deta-minwid-class fl">
<div class="fl linehei-70 the-col">班级</div>
<div class="fl linehei-70 col-878 ellipsis" style="width:120px" :title="className">{{className}}</div>
<div class="clear"></div>
</div>
<div class="deta-minwid-stuid fl">
<div class="fl linehei-70 the-col">学号</div>
<div class="fl linehei-70 col-878 ellipsis" style="width:90px" :title="stuNo">{{stuNo}}</div>
<div class="clear"></div>
</div>
<div class="deta-minwid-achie fl">
<div class="fl linehei-70 the-col">成绩</div>
<div class="fl linehei-70 col-f57 ellipsis" style="width:60px" id="totalScore" :title="totalScore">
{{totalScore}}
</div>
<div class="clear"></div>
</div>
<div class="deta-minwid-usetime fl">
<div class="fl linehei-70 the-col">用时</div>
<div class="fl linehei-70 col-878 ellipsis" style="width:60px" id="useTime" :title="useTime">{{useTime}}
</div>
<div class=" clear"></div>
</div>
<div class="deta-minwid-date fl">
<div class="fl linehei-70 the-col">日期</div>
<div class="fl linehei-70 col-878 ellipsis" style="width:90px" id="examDate" title="examDate">{{examDate}}
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</div>
<div>
<h1>成绩解析</h1>
<div class="box" id="exam_mesaage_details">
<div>
<table class="box__table">
<thead>
<tr>
<th width="50px">序号</th>
<th>考核点</th>
<th>得分点</th>
<th>学生答案</th>
<th>考核点分值</th>
<th>得分</th>
</tr>
</thead>
<tbody v-if="assessUserTargetList.length > 0 ">
<tr v-for="(target, taskKey) in assessUserTargetList ">
<td>{{ taskKey +1 }}</td>
<td >{{target.targetName}}</td>
<td v-if="target.taskOperate==1">>{{target.taskRate}}</td>
<td v-else-if="target.taskOperate==-1"><{{target.taskRate}}</td>
<td v-else>={{target.taskRate}}</td>
<td v-if="target.studentRate !=null ">{{target.studentRate}}</td>
<td v-else>-</td>
<td>{{target.taskScore}}</td>
<td v-if="target.answer==0">{{target.taskScore}}</td>
<td v-else>0</td>
</tr>
</tbody>
<tbody v-else>
<tr>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="fr" style="padding-right: 45%;padding-bottom: 20px;" v-if="assessUserIdsList.length > 1">
<div class="btn-84-34 the-bg fl pointer" v-if="assessUserIndex == assessUserIdsList.length-1 "
style="background:grey;cursor:default;">上一次
</div>
<div class="btn-84-34 the-bg fl pointer" v-else style="cursor:default;" @click="go(0)">上一次</div>
<div class="btn-84-34 the-bg fr marl-10 pointer" v-if="assessUserIndex==0 "
style="background:grey;cursor:default;">下一次
</div>
<div class="btn-84-34 the-bg fr marl-10 pointer" v-else style="cursor:default;" @click="go(1)">下一次</div>
</div>
</div>
</div>
</template>
<script>
import {getExamOverview, getExamDetails} from '@/api/yyyf';
export default {
name: "studyGrade",
data() {
return {
userName: null,
className: null,
stuNo: null,
totalScore: null,
useTime: null,
examDate: null,
issueId: null,
userId: null,
assessUserIdsList: [],
assessUserIndex: 0,
reqType: null,
caseInfo: null,
isFirst: 0,
assessUserTargetList: [],
};
},
computed: {},
methods: {
parseUrl: function () {
let params = {}; //
let url = decodeURIComponent(location.href);
let paramsIndex = url.indexOf('?');
if (paramsIndex != -1) {
paramsIndex = paramsIndex + 1;
let paramsStr = url.substring(paramsIndex);
let paramsAttr = paramsStr.split('&');
for (let x in paramsAttr) {
let y = paramsAttr[x].split('=');
if (y[0] == undefined || y[0] == '') {
continue;
}
if (y[1] != undefined) {
let value = '';
let len = y.length;
for (let j = 1; j < len; j++) {
value +=
y[j] == '' &&
paramsAttr[x].charAt(value.length + y[0].length + 1) != ''
? '='
: y[j];
}
params[y[0]] = value;
}
}
}
return params;
},
init: function () {
let params = this.parseUrl();
this.userId = params.userId;
this.reqType = params.reqType;
getExamOverview(params).then(res => {
if (res.data.code === 200) {
if (this.reqType == 0) {
this.assessUserIdsList = res.data.data.assessUserIdsList;
}
this.useTime = res.data.data.useTime;
this.examDate = res.data.data.examDate;
this.userName = res.data.data.userName;
this.className = res.data.data.className;
this.totalScore = res.data.data.totalScore;
this.caseInfo = res.data.data.caseInfo;
this.stuNo = params.stuNo;
let examDetailsParams={};
examDetailsParams['assessUserId']=res.data.data.assessUserId;
examDetailsParams['isFirst']=this.isFirst;
this.isFirst = 1;
this.getExamDetails(examDetailsParams);
} else {
let self=this;
this.$message.warning({
message: res.data.msg,
onClose: function () {
self.closeWindow();
}
});
}
});
},
go: function (type) {
let params={};
if (type == 0) { //
this.assessUserIndex = this.assessUserIndex + 1;
} else {
this.assessUserIndex = this.assessUserIndex - 1;
}
params['assessUserId']=this.assessUserIdsList[this.assessUserIndex];
params['isFirst']=this.isFirst;
this.getExamDetails(params)
},
getExamDetails: function (params) {
getExamDetails(params).then(res => {
if (res.data.code === 200) {
if (res.data.data.isFirst != 0) {
this.useTime = res.data.data.useTime;
this.examDate = res.data.data.examDate;
this.totalScore = res.data.data.totalScore;
}
this.assessUserTargetList = res.data.data.assessUserTargetList;
} else {
this.$message.warning({
message: res.data.msg,
onClose: function () {
this.closeWindow();
}
});
}
});
},
closeWindow: function () {
let self = this;
if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
window.location.href = "about:blank";
window.close();
} else {
window.opener = null;
window.open("", "_self");
window.close();
}
},
},
mounted() {
this.init();
},
//
updated() {
}
};
$(function () {
$(".fix-btn").click(function () {
$(this).siblings('.fix-con').toggle();
$(this).toggleClass("active");
})
});
</script>
<style scoped>
@import "./css/general.css";
@import "./css/layui.css";
@import "./css/style.css";
</style>

@ -1,5 +1,5 @@
import pageCommon from '@/common/page-common'; import pageCommon from '@/common/page-common';
import App from './yyyfLogin'; import App from './yyyflogin';
pageCommon.createPageInstance({ pageCommon.createPageInstance({
render: h => h(App), render: h => h(App),

@ -12,7 +12,7 @@
import {Loading} from 'element-ui'; import {Loading} from 'element-ui';
export default { export default {
name: 'yyyfLogin', name: 'yyyflogin',
props: {}, props: {},
data() { data() {
Loading…
Cancel
Save