提交 7d3c9951 编写于 作者: xiaoping.di's avatar xiaoping.di

考试优化

上级 1d993e9a
/h5-submodules-master /h5-submodules-master
/node_modules /node_modules
/src
...@@ -16,7 +16,7 @@ export const getCoopExamQuest = async (param) => { ...@@ -16,7 +16,7 @@ export const getCoopExamQuest = async (param) => {
}); });
}; };
//教培中间模块 // 教培中间模块
export const getCoopExam = async (param) => { export const getCoopExam = async (param) => {
return request({ return request({
url: 'app/projectExam/exam', url: 'app/projectExam/exam',
......
...@@ -7,7 +7,7 @@ export const getCoopTop = async (param) => { ...@@ -7,7 +7,7 @@ export const getCoopTop = async (param) => {
params: param, params: param,
}); });
}; };
//教培底部模块 // 教培底部模块
export const getCoopBottom = async (param) => { export const getCoopBottom = async (param) => {
return request({ return request({
url: 'contents/projects/bottom', url: 'contents/projects/bottom',
...@@ -16,7 +16,7 @@ export const getCoopBottom = async (param) => { ...@@ -16,7 +16,7 @@ export const getCoopBottom = async (param) => {
}); });
}; };
//教培中间模块 // 教培中间模块
export const getCoopMiddle = async (param) => { export const getCoopMiddle = async (param) => {
return request({ return request({
url: 'contents/projects/middle', url: 'contents/projects/middle',
...@@ -25,7 +25,7 @@ export const getCoopMiddle = async (param) => { ...@@ -25,7 +25,7 @@ export const getCoopMiddle = async (param) => {
}); });
}; };
//教培考试信息模块 // 教培考试信息模块
export const getCoopLiveExam = async (param) => { export const getCoopLiveExam = async (param) => {
return request({ return request({
url: `contents/projects/live/${param.id}`, url: `contents/projects/live/${param.id}`,
......
<template> <template>
<div <div
class="nav-title" class="nav-title"
:style=" :style="
'background:' + 'background:' +
bgColor + bgColor +
';' + ';' +
'padding-top:' + 'padding-top:' +
paddingTop paddingTop
" "
>
<span
class="nav-back"
@click="goBack"
>
<img
v-show="isBlack"
src="./images/left-array-black.png"
alt=""
>
<img
v-show="!isBlack"
src="./images/left-array-whiter.png"
alt=""
>
</span>
<span
v-show="bgColor !== 'none'"
class="nav-title-title"
>
{{ title }}</span>
<span
v-if="isShowRight"
class="nav-share"
@click="rightAction"
>
<span class="active-text">客服</span>
</span>
<span
v-if="!isShowRight"
class="nav-share"
@click="rightAction"
> >
<span <span
class="nav-back" class="active-text"
@click="goBack" @click="share"
> >
<img <img
v-show="isBlack" v-if="isShowShare"
src="./images/left-array-black.png" src="./images/share-icon-black.png"
alt="" alt=""
> >
<img <img
v-show="!isBlack" v-else-if="isShowShareWhite"
src="./images/left-array-whiter.png" src="./images/share-icon-white.png"
alt="" alt=""
> >
</span>
<span
v-show="bgColor !== 'none'"
class="nav-title-title"
>
{{ title }}</span>
<span
v-if="isShowRight"
class="nav-share"
@click="rightAction"
>
<span class="active-text">客服</span>
</span>
<span
v-if="!isShowRight"
class="nav-share"
@click="rightAction"
>
<span <span
class="active-text" v-else-if="isCancel"
@click="share" class="nav-share"
@click="cancelGoSearch"
> >
<img <span class="active-text">取消</span>
v-if="isShowShare"
src="./images/share-icon-black.png"
alt=""
>
<img
v-else-if="isShowShareWhite"
src="./images/share-icon-white.png"
alt=""
>
<span
v-else-if="isCancel"
class="nav-share"
@click="cancelGoSearch"
>
<span class="active-text">取消</span>
</span>
</span> </span>
</span> </span>
<slot name="externals" /> </span>
<!-- <span class="nav-share"> <slot name="externals" />
<!-- <span class="nav-share">
<slot></slot> <slot></slot>
</span>--> </span>-->
</div> </div>
<!-- <section <!-- <section
v-if="!isWeb" v-if="!isWeb"
:class="isFixheader ? 'nav-top fixed' : 'nav-top'" :class="isFixheader ? 'nav-top fixed' : 'nav-top'"
...@@ -188,17 +188,17 @@ ...@@ -188,17 +188,17 @@
}; };
try{ try{
this.$rocNative.getAppVersionCode().then(res => { this.$rocNative.getAppVersionCode().then(res => {
if (res.versionCode < '3.7.8') { if (res.versionCode < '3.7.8') {
console.log('低版本'); console.log('低版本');
} else { } else {
window.prompt(JSON.stringify({ window.prompt(JSON.stringify({
functionName: 'getPhoneParameters', functionName: 'getPhoneParameters',
paramJson: JSON.stringify({}), paramJson: JSON.stringify({}),
callBackName: 'getPhoneParameters' callBackName: 'getPhoneParameters'
})); }));
} }
}); });
}catch(error){ }catch(error) {
console.log(122); console.log(122);
} }
}, },
......
...@@ -3,28 +3,41 @@ ...@@ -3,28 +3,41 @@
<!--A Cell --> <!--A Cell -->
<template> <template>
<div :class="['wxc-cell', hasTopBorder && 'cell-top-border', hasBottomBorder && 'cell-bottom-border', hasMargin && 'cell-margin', hasVerticalIndent && 'cell-indent', desc && 'has-desc']" <div
:class="['wxc-cell', hasTopBorder && 'cell-top-border', hasBottomBorder && 'cell-bottom-border', hasMargin && 'cell-margin', hasVerticalIndent && 'cell-indent', desc && 'has-desc']"
:style="cellStyle" :style="cellStyle"
:accessible="autoAccessible" :accessible="autoAccessible"
:aria-label="`${label},${title},${desc}`" :aria-label="`${label},${title},${desc}`"
@click="cellClicked"> @click="cellClicked"
>
<slot name="label"> <slot name="label">
<div v-if="label"> <div v-if="label">
<div class="cell-label-text">{{label}}</div> <div class="cell-label-text">
{{ label }}
</div>
</div> </div>
</slot> </slot>
<div class="cell-title"> <div class="cell-title">
<slot name="title"> <slot name="title">
<div class="cell-content">{{title}}</div> <div class="cell-content">
<div class="cell-desc-text" v-if="desc">{{desc}}</div> {{ title }}
</div>
<div
v-if="desc"
class="cell-desc-text"
>
{{ desc }}
</div>
</slot> </slot>
</div> </div>
<slot name="value"></slot> <slot name="value" />
<slot></slot> <slot />
<img :src="arrowIcon" <img
class="cell-arrow-icon" v-if="hasArrow"
:aria-hidden="true" :src="arrowIcon"
v-if="hasArrow"/> class="cell-arrow-icon"
:aria-hidden="true"
>
</div> </div>
</template> </template>
...@@ -92,7 +105,7 @@ ...@@ -92,7 +105,7 @@
</style> </style>
<script> <script>
//import {Utils} from 'weex-ui'; // import {Utils} from 'weex-ui';
export default { export default {
props: { props: {
...@@ -149,7 +162,7 @@ ...@@ -149,7 +162,7 @@
cellClicked (e) { cellClicked (e) {
const link = this.link; const link = this.link;
this.$emit('wxcCellClicked', { e }); this.$emit('wxcCellClicked', { e });
//link && Utils.goToH5Page(link, true); // link && Utils.goToH5Page(link, true);
} }
} }
}; };
......
...@@ -4,11 +4,13 @@ ...@@ -4,11 +4,13 @@
<template> <template>
<div> <div>
<wxc-radio v-for="(item,i) in updateList" <wxc-radio
:config="config" v-for="(item,i) in updateList"
v-bind="item" :key="i"
@wxcRadioItemChecked="wxcRadioItemChecked(i,$event)" :config="config"
:key="i"></wxc-radio> v-bind="item"
@wxcRadioItemChecked="wxcRadioItemChecked(i,$event)"
/>
</div> </div>
</template> </template>
...@@ -54,7 +56,7 @@ ...@@ -54,7 +56,7 @@
this.setListChecked(this.list); this.setListChecked(this.list);
}, },
methods: { methods: {
setListChecked(list){ setListChecked(list) {
if (list && list.length > 0) { if (list && list.length > 0) {
list.forEach((item, i) => { list.forEach((item, i) => {
item.checked && (this.checkedIndex = i); item.checked && (this.checkedIndex = i);
...@@ -65,8 +67,8 @@ ...@@ -65,8 +67,8 @@
const oldIndex = this.checkedIndex; const oldIndex = this.checkedIndex;
const { value, title } = this.list[i]; const { value, title } = this.list[i];
this.checkedIndex = i; this.checkedIndex = i;
this.$emit('wxcRadioListChecked', { value, title, oldIndex, index: i,item: this.list[i] }) this.$emit('wxcRadioListChecked', { value, title, oldIndex, index: i, item: this.list[i] });
} }
} }
} };
</script> </script>
...@@ -3,17 +3,26 @@ ...@@ -3,17 +3,26 @@
<template> <template>
<div> <div>
<div :has-bottom-border="false" class="radio-all" <div
@click="wxcCellClicked" :has-bottom-border="false"
:accessible="true" class="radio-all"
:aria-label="`${title},状态为${checked?'已选中':'未选中'},${disabled?'不可更改':''}`"> :accessible="true"
<img :src="radioIcon" :aria-label="`${title},状态为${checked?'已选中':'未选中'},${disabled?'不可更改':''}`"
slot="label" @click="wxcCellClicked"
class="radio"/> >
<div :style="{color:color}" <img
class="title-text" slot="label"
slot="title">{{title}}</div> :src="radioIcon"
class="radio"
>
<div
slot="title"
:style="{color:color}"
class="title-text"
>
{{ title }}
</div> </div>
</div>
</div> </div>
</template> </template>
...@@ -38,7 +47,7 @@ ...@@ -38,7 +47,7 @@
</style> </style>
<script> <script>
import WxcCell from './cell.vue' import WxcCell from './cell.vue';
const CHECKED = 'https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/radio_checked.png'; const CHECKED = 'https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/radio_checked.png';
const UNCHECKED = 'https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/radio_unchecked.png'; const UNCHECKED = 'https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/radio_unchecked.png';
...@@ -80,7 +89,7 @@ ...@@ -80,7 +89,7 @@
const mergeIcon = icon; const mergeIcon = icon;
config.checkedIcon && (mergeIcon[0] = config.checkedIcon); config.checkedIcon && (mergeIcon[0] = config.checkedIcon);
config.disabledIcon && (mergeIcon[1] = config.disabledIcon); config.disabledIcon && (mergeIcon[1] = config.disabledIcon);
return checked ? CHECKED : UNCHECKED; return checked ? CHECKED : UNCHECKED;
}, },
backgroundColor () { backgroundColor () {
const { disabled } = this; const { disabled } = this;
...@@ -97,9 +106,9 @@ ...@@ -97,9 +106,9 @@
wxcCellClicked () { wxcCellClicked () {
const { disabled, value } = this; const { disabled, value } = this;
if (!disabled) { if (!disabled) {
this.$emit('wxcRadioItemChecked', { value, disabled }) this.$emit('wxcRadioItemChecked', { value, disabled });
} }
} }
} }
} };
</script> </script>
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<img <img
class="see_more_img" class="see_more_img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png"
/> >
</div> </div>
</div> </div>
<div <div
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<img <img
class="course_img" class="course_img"
:src="value.app_course_url" :src="value.app_course_url"
/> >
<div class="course_info"> <div class="course_info">
{{ messages(value.course_name, 18) }} {{ messages(value.course_name, 18) }}
</div> </div>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<img <img
class="play_img" class="play_img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/play_gray%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/play_gray%403x.png"
/> >
<div class="play_count"> <div class="play_count">
{{ value.join_num }} {{ value.join_num }}
</div> </div>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
<script> <script>
// text collapse // text collapse
//const configurationModule = weex.requireModule('configurationModule'); // const configurationModule = weex.requireModule('configurationModule');
export default { export default {
components: {}, components: {},
...@@ -105,37 +105,37 @@ ...@@ -105,37 +105,37 @@
enterCourse(obj) { enterCourse(obj) {
this.intoCourse(obj); this.intoCourse(obj);
}, },
intoCourseMore(obj){ intoCourseMore(obj) {
let appModuleModel=[ const appModuleModel = [
{ {
'key':'className', 'key':'className',
'value':'value=com.picahealth.yunque.activitys.famousteacherschool.AllDiseaseActivity###MicroProfessionTableController' 'value':'value=com.picahealth.yunque.activitys.famousteacherschool.AllDiseaseActivity###MicroProfessionTableController'
}, },
{ {
key:'pointsId', key:'pointsId',
value:obj.points_id value:obj.points_id
} }
]; ];
this.$rocNative.dispatchEventByModuleCode({ this.$rocNative.dispatchEventByModuleCode({
modeCode: 'M200', modeCode: 'M200',
jsonString: appModuleModel, jsonString: appModuleModel,
}); });
}, },
intoCourse(obj){ intoCourse(obj) {
let appModuleModel=[ const appModuleModel = [
{ {
'key':'className', 'key':'className',
'value':'value=com.picahealth.yunque.activitys.courseplaynew.CourseIntroduceActivity###WeexCourseIntroViewController' 'value':'value=com.picahealth.yunque.activitys.courseplaynew.CourseIntroduceActivity###WeexCourseIntroViewController'
}, },
{ {
key:'courseId', key:'courseId',
value:obj.course_id value:obj.course_id
} }
]; ];
this.$rocNative.dispatchEventByModuleCode({ this.$rocNative.dispatchEventByModuleCode({
modeCode: 'M200', modeCode: 'M200',
jsonString: appModuleModel, jsonString: appModuleModel,
}); });
} }
}, },
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
import textCollapse from './textCollapse'; import textCollapse from './textCollapse';
import projectContent from './projectContent'; import projectContent from './projectContent';
import aboutCourse from './aboutCourse'; import aboutCourse from './aboutCourse';
//const globalEvent = weex.requireModule('globalEvent'); // const globalEvent = weex.requireModule('globalEvent');
export default { export default {
components: { components: {
headerSlider, headerSlider,
......
...@@ -34,7 +34,9 @@ ...@@ -34,7 +34,9 @@
:maxlength="number" :maxlength="number"
autofocus="true" autofocus="true"
autocorrect="off" autocorrect="off"
autocomplete="off" autocapitalize="off" @keyup="handleInput($event)" autocomplete="off"
autocapitalize="off"
@keyup="handleInput($event)"
> >
<label for="code"> <label for="code">
<div class="code-input-wrap"> <div class="code-input-wrap">
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<img <img
class="history_title_img" class="history_title_img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png"
/> >
</div> </div>
</div> </div>
<div <div
...@@ -34,12 +34,12 @@ ...@@ -34,12 +34,12 @@
v-if="value.passFlag == 5" v-if="value.passFlag == 5"
class="history_item_radio" class="history_item_radio"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/eee%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/eee%403x.png"
/> >
<img <img
v-if="value.passFlag != 5" v-if="value.passFlag != 5"
class="history_item_radio" class="history_item_radio"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/ee%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/ee%403x.png"
/> >
<div <div
v-if="key+1<historyList.length" v-if="key+1<historyList.length"
class="history_item_radio_bottom" class="history_item_radio_bottom"
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
v-if="value.wrongNo > 0" v-if="value.wrongNo > 0"
class="history_item_right_img" class="history_item_right_img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png"
/> >
</div> </div>
</div> </div>
</div> </div>
......
...@@ -5,17 +5,17 @@ ...@@ -5,17 +5,17 @@
v-if="type == 0" v-if="type == 0"
class="result_image" class="result_image"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/yh%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/yh%403x.png"
/> >
<img <img
v-if="type == 1" v-if="type == 1"
class="result_image" class="result_image"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/tg%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/tg%403x.png"
/> >
<img <img
v-if="type == 2" v-if="type == 2"
class="result_image" class="result_image"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/ks%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/ks%403x.png"
/> >
<div class="exam_name"> <div class="exam_name">
<div <div
v-if="type == 2" v-if="type == 2"
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
<img <img
class="exam_time_img" class="exam_time_img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_black%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_black%403x.png"
/> >
</div> </div>
</div> </div>
<div <div
...@@ -113,11 +113,11 @@ ...@@ -113,11 +113,11 @@
<script> <script>
// text collapse // text collapse
//const modal = weex.requireModule('modal'); // const modal = weex.requireModule('modal');
// import {click_start_test, click_test_completed, click_retest, click_mid_wrong_collection} from '../../util/buryingPoint'; // import {click_start_test, click_test_completed, click_retest, click_mid_wrong_collection} from '../../util/buryingPoint';
//import WxcDialog from '../../components/wxc-dialog'; // import WxcDialog from '../../components/wxc-dialog';
export default { export default {
//components: {WxcDialog}, // components: {WxcDialog},
props:['type', 'exam', 'startNum', 'endNum', 'examType', 'options', 'hasWrong'], props:['type', 'exam', 'startNum', 'endNum', 'examType', 'options', 'hasWrong'],
data() { data() {
return{ return{
...@@ -163,13 +163,13 @@ ...@@ -163,13 +163,13 @@
const endDate = new Date(this.options.endDate); const endDate = new Date(this.options.endDate);
const date = new Date(); const date = new Date();
if(date > endDate) { if(date > endDate) {
this.showExamFinishedTip = true; this.showExamFinishedTip = true;
this.$dialog.alert({ this.$dialog.alert({
title: '', title: '',
message: "考试已结束", message: '考试已结束',
confirmButtonText:"我知道了" confirmButtonText:'我知道了'
}) });
return; return;
} }
} }
// this.appBuryingPointEntrust({ // this.appBuryingPointEntrust({
...@@ -178,12 +178,12 @@ ...@@ -178,12 +178,12 @@
// }); // });
const query = { const query = {
examId: obj.examId, examId: obj.examId,
// examType: this.options.examType,
examType: this.$route.query.examType, examType: this.$route.query.examType,
endDate: this.$route.query.endDate endDate: this.$route.query.endDate
}; };
if (this.startNum > 0) { if (this.startNum > 0) {
Vue.set(query, 'startNum', this.startNum); query.startNum = this.startNum;
// Vue.set(query, 'startNum', this.startNum);
} }
this.$router.push({ this.$router.push({
path: '/exam', path: '/exam',
...@@ -198,7 +198,7 @@ ...@@ -198,7 +198,7 @@
this.$router.push({ this.$router.push({
path: '/stoke' path: '/stoke'
}); });
//weex.requireModule('CourseModule').goBack(2); // weex.requireModule('CourseModule').goBack(2);
} else { } else {
this.$router.push({ this.$router.push({
path: '/' path: '/'
...@@ -206,16 +206,12 @@ ...@@ -206,16 +206,12 @@
} }
} }
}, },
goExamStart(obj) { // 我要重考 goExamStart() { // 我要重考
if (!this.endNum) { if (!this.endNum) {
this.$toast('您尚未完成相关培训课程的学习') this.$toast('您尚未完成相关培训课程的学习');
}else { }else {
this.$emit('reExamStart'); this.$emit('reExamStart');
} }
// this.appBuryingPointEntrust({
// ...click_retest,
// createdTime: new Date().getTime()
// });
}, },
}, },
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
v-lazy="img.image_url" v-lazy="img.image_url"
class="image" class="image"
resize="stretch" resize="stretch"
/> >
</van-swipe-item> </van-swipe-item>
</van-swipe> </van-swipe>
</div> </div>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<img <img
class="history_title_img" class="history_title_img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png"
/> >
</div> </div>
</div> </div>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<img <img
class="item3_right_arrow" class="item3_right_arrow"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_black%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_black%403x.png"
/> >
</div> </div>
<div <div
v-if="value.restTimes > 0 || value.restTimes == -1" v-if="value.restTimes > 0 || value.restTimes == -1"
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<img <img
class="empty-img" class="empty-img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/wu%402x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/wu%402x.png"
/> >
<div class="empty-text"> <div class="empty-text">
暂无现场考试记录 暂无现场考试记录
</div> </div>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<img <img
class="history_title_img" class="history_title_img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png"
/> >
</div> </div>
</div> </div>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<img <img
class="item3_right_arrow" class="item3_right_arrow"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_black%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_black%403x.png"
/> >
</div> </div>
<div <div
v-if="value.restTimes > 0 || value.restTimes == -1" v-if="value.restTimes > 0 || value.restTimes == -1"
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<img <img
class="empty-img" class="empty-img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/wu%402x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/wu%402x.png"
/> >
<div class="empty-text"> <div class="empty-text">
暂无现场考试记录 暂无现场考试记录
</div> </div>
......
...@@ -13,18 +13,19 @@ ...@@ -13,18 +13,19 @@
src="http://pica-pro.oss-cn-shanghai.aliyuncs.com/md_resources/back_gray.png" src="http://pica-pro.oss-cn-shanghai.aliyuncs.com/md_resources/back_gray.png"
style="width: 25px; height: 25px;" style="width: 25px; height: 25px;"
@click="goBack" @click="goBack"
/> >
<div <div
v-if="!showHeader" v-if="!showHeader"
style="width:25px;height: 25px;" style="width:25px;height: 25px;"
>&nbsp; >
&nbsp;
</div> </div>
<img <img
v-if="type == 2" v-if="type == 2"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/close%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/close%403x.png"
style="width: 35px; height: 35px;" style="width: 35px; height: 35px;"
@click="goBack" @click="goBack"
/> >
<div class="title"> <div class="title">
{{ title }} {{ title }}
</div> </div>
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<img <img
class="advice_auth_img" class="advice_auth_img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/cup%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/cup%403x.png"
/> >
<div class="advice_auth_text"> <div class="advice_auth_text">
<div class="advice_auth_text_content"> <div class="advice_auth_text_content">
{{ examContent.all_exam_writing }} {{ examContent.all_exam_writing }}
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
v-if="examContent.exam_order == 5" v-if="examContent.exam_order == 5"
class="circle_gray" class="circle_gray"
:src="examContent.allowFlag==1 ? circleYellow: circleGray" :src="examContent.allowFlag==1 ? circleYellow: circleGray"
/> >
<div <div
v-if="examContent.exam_order == 1" v-if="examContent.exam_order == 1"
class="order_number" class="order_number"
...@@ -125,34 +125,17 @@ ...@@ -125,34 +125,17 @@
<img <img
class="item3_right_arrow" class="item3_right_arrow"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_black%403x.png" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_black%403x.png"
/> >
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- <wxc-dialog
title=""
:content="setContent"
:show="isQuery"
cancel-text="取消"
confirm-text="去考试"
main-btn-color="#35cbca"
@wxcDialogCancelBtnClicked="wxcDialogCancelBtnClicked"
@wxcDialogConfirmBtnClicked="wxcDialogConfirmBtnClicked"
/> 1111-->
</div> </div>
</template> </template>
<script> <script>
// text collapse
import Vue from 'vue';
// const modal = weex.requireModule('modal');
// const configurationModule = weex.requireModule('configurationModule');
// import wxcDialog from '../wxc-dialog';
// const storage = weex.requireModule('storage');
import {getCoopRoleCode} from '@/api/content.js'; import {getCoopRoleCode} from '@/api/content.js';
export default { export default {
//components: {wxcDialog},
props:['examContent', 'hasAuth', 'keyIndex'], props:['examContent', 'hasAuth', 'keyIndex'],
data() { data() {
return{ return{
...@@ -240,45 +223,28 @@ ...@@ -240,45 +223,28 @@
roleCode: 'R001', roleCode: 'R001',
user_role_list: '' user_role_list: ''
}; };
getCoopRoleCode().catch(res=>{ getCoopRoleCode().catch(res => {
if(res.data && res.data.respCode == 200) { if(res.data && res.data.respCode == 200) {
sendObj.roleCode = res.data.roleCode; sendObj.roleCode = res.data.roleCode;
const mess = obj.field_requirement ? obj.field_requirement : -1; const mess = obj.field_requirement ? obj.field_requirement : -1;
sendObj.field_requirement = mess; sendObj.field_requirement = mess;
sendObj.user_role_list = obj.user_role_list; sendObj.user_role_list = obj.user_role_list;
console.log(sendObj,"sendObjsendObj") console.log(sendObj, 'sendObjsendObj');
if(sendObj.user_role_list=="R004"){ if(sendObj.user_role_list == 'R004') {
this.dataOkForExam(); this.dataOkForExam();
} }
//configurationModule.checkIDCardAndEducation(sendObj); 111 // configurationModule.checkIDCardAndEducation(sendObj); 111
}else { }else {
this.$toast("网络异常,请稍后再试"); this.$toast('网络异常,请稍后再试');
} }
}); });
// this.GET('contents/projects/guestRoleCode', {}, (res) => {
// // modal.alert({message:'goIDCardAndEdu ' + res})
// const configurationModule = weex.requireModule('configurationModule');
// if(res.data && res.data.respCode == 200) {
// sendObj.roleCode = res.data.roleCode;
// const mess = obj.field_requirement ? obj.field_requirement : -1;
// sendObj.field_requirement = mess;
// sendObj.user_role_list = obj.user_role_list;
// // modal.alert({message:'goIDCardAndEdu 200' + JSON.stringify(sendObj)})
// configurationModule.checkIDCardAndEducation(sendObj);
// }else {
// modal.toast({
// message: '网络异常,请稍后再试',
// duration: 1.0
// });
// }
// });
}, },
dataOkForExam() { dataOkForExam() {
this.addLogicForExam(); this.addLogicForExam();
}, },
goExam(index, obj) { goExam(index, obj) {
this.$storejs.set('keyIndex',this.keyIndex) this.$storejs.set('keyIndex', this.keyIndex);
//localStorage.setItem('keyIndex', this.keyIndex) // localStorage.setItem('keyIndex', this.keyIndex)
if (this.examContent.allowFlag == 1) {// 加入项目(项目考试组件有权限) if (this.examContent.allowFlag == 1) {// 加入项目(项目考试组件有权限)
this.currentIndex = index; this.currentIndex = index;
this.currentObj = obj; this.currentObj = obj;
...@@ -288,7 +254,7 @@ ...@@ -288,7 +254,7 @@
this.$toast(this.examNotStartLabl); this.$toast(this.examNotStartLabl);
} }
}else {// 未加入项目 }else {// 未加入项目
this.$toast(this.examContent.show_text); this.$toast(this.examContent.show_text);
} }
}, },
...@@ -315,7 +281,6 @@ ...@@ -315,7 +281,6 @@
const isGoExam = this.getBoolForExam(obj); const isGoExam = this.getBoolForExam(obj);
if (isGoExam) {// 去重考 if (isGoExam) {// 去重考
if ((index == 0 || index == 1) || (index > 0 && !this.examContent.allLists[index - 1].course_id)) {// if ((index == 0 || index == 1) || (index > 0 && !this.examContent.allLists[index - 1].course_id)) {//
// modal.alert({message:'111'})
this.query = { this.query = {
examId: obj.exam_id, examId: obj.exam_id,
origin: 'start' origin: 'start'
...@@ -345,11 +310,7 @@ ...@@ -345,11 +310,7 @@
this.isQuery = true; this.isQuery = true;
this.diaLogConfirm(); this.diaLogConfirm();
}else{ }else{
this.$toast('您尚未完成“' + course_name + '”培训课程的学习。') this.$toast('您尚未完成“' + course_name + '”培训课程的学习。');
// modal.toast({
// message: ,
// duration: 1.0
// });
} }
} }
} }
...@@ -364,16 +325,13 @@ ...@@ -364,16 +325,13 @@
const lastItem = this.examContent.allLists[index - 1]; const lastItem = this.examContent.allLists[index - 1];
if (lastItem.progress < 100) { if (lastItem.progress < 100) {
this.beforeLearningExamNumber = obj.times == -1 ? 100 : (obj.times - obj.exam_num); this.beforeLearningExamNumber = obj.times == -1 ? 100 : (obj.times - obj.exam_num);
Vue.set(this.query, 'endNum', this.beforeLearningExamNumber); this.$set(this.query, 'endNum', this.beforeLearningExamNumber);
// Vue.set(this.query, 'endNum', this.beforeLearningExamNumber);
} }
} }
this.currentIndex = index; this.currentIndex = index;
this.currentObj = obj; this.currentObj = obj;
this.goIDCardAndEdu(obj); this.goIDCardAndEdu(obj);
// this.$router.push({
// path:'/exam_result',
// query: this.query
// })
} }
}else{// 没有考试 }else{// 没有考试
if (index > 0) {// 大于第一项 if (index > 0) {// 大于第一项
...@@ -388,12 +346,7 @@ ...@@ -388,12 +346,7 @@
this.currentIndex = index; this.currentIndex = index;
this.currentObj = obj; this.currentObj = obj;
this.goIDCardAndEdu(obj); this.goIDCardAndEdu(obj);
// this.$router.push({
// path:'/exam_result',
// query: this.query
// })
}else { }else {
// modal.alert({message:'666'})
let flag = false; let flag = false;
if (this.examContent.exam_order == 1) {// 考试顺序--序贯 if (this.examContent.exam_order == 1) {// 考试顺序--序贯
for (let i = 0; i < index; i++) { for (let i = 0; i < index; i++) {
...@@ -409,10 +362,6 @@ ...@@ -409,10 +362,6 @@
} }
if (flag) { if (flag) {
this.$toast('请按顺序完成学习及考试'); this.$toast('请按顺序完成学习及考试');
// modal.toast({
// message: '请按顺序完成学习及考试',
// duration: 1.0
// });
}else { }else {
const course_name = this.examContent.allLists[index - 1].course_name; const course_name = this.examContent.allLists[index - 1].course_name;
if (obj.times > 0 || obj.times == -1) {// 学习课程前的考试次数 if (obj.times > 0 || obj.times == -1) {// 学习课程前的考试次数
...@@ -424,7 +373,7 @@ ...@@ -424,7 +373,7 @@
this.isQuery = true; this.isQuery = true;
this.diaLogConfirm(); this.diaLogConfirm();
}else{ }else{
this.$toast('您尚未完成“' + course_name + '”培训课程的学习。') this.$toast('您尚未完成“' + course_name + '”培训课程的学习。');
} }
} }
} }
...@@ -440,10 +389,7 @@ ...@@ -440,10 +389,7 @@
this.currentObj = obj; this.currentObj = obj;
this.goIDCardAndEdu(obj); this.goIDCardAndEdu(obj);
}else { }else {
// modal.toast({ this.$toast('请按顺序完成学习及考试');
// message: '请按顺序完成学习及考试',
// duration: 1.0
// });
} }
} }
}else { // 第一项 }else { // 第一项
...@@ -457,54 +403,52 @@ ...@@ -457,54 +403,52 @@
} }
} }
}else {// 课程项 }else {// 课程项
console.log(obj,"iiiiiiiiiii") console.log(obj, 'iiiiiiiiiii');
if (this.examContent.exam_order == 5 || index == 0) { // 顺序并列, 或者顺序贯序但为第一项 if (this.examContent.exam_order == 5 || index == 0) { // 顺序并列, 或者顺序贯序但为第一项
// modal.alert({message:'999'}) this.goStudyNative(obj);
//configurationModule.intoCourse(obj);
this.goStudyNative(obj)
}else { }else {
const lastItem = this.examContent.allLists[index - 1]; const lastItem = this.examContent.allLists[index - 1];
if ((lastItem.testNumFlag > 0 && lastItem.answerResultModel.pass_flag == 5) || lastItem.progress >= 0) { if ((lastItem.testNumFlag > 0 && lastItem.answerResultModel.pass_flag == 5) || lastItem.progress >= 0) {
//configurationModule.intoCourse(obj); // configurationModule.intoCourse(obj);
this.goStudyNative(obj) this.goStudyNative(obj);
}else { }else {
this.$toast('请按顺序完成学习及考试') this.$toast('请按顺序完成学习及考试');
} }
} }
} }
}, },
goStudyNative(obj){ goStudyNative(obj) {
let appModuleModel=[ const appModuleModel = [
{ {
'key':'className', 'key':'className',
'value':'value=com.picahealth.yunque.activitys.courseplaynew.CourseIntroduceActivity###WeexCourseIntroViewController' 'value':'value=com.picahealth.yunque.activitys.courseplaynew.CourseIntroduceActivity###WeexCourseIntroViewController'
}, },
{ {
key:'courseId', key:'courseId',
value:obj.course_id value:obj.course_id
} }
]; ];
this.$rocNative.dispatchEventByModuleCode({ this.$rocNative.dispatchEventByModuleCode({
modeCode: 'M200', modeCode: 'M200',
jsonString: appModuleModel, jsonString: appModuleModel,
}); });
}, },
diaLogConfirm(){ diaLogConfirm() {
this.$dialog this.$dialog
.confirm({ .confirm({
title: '提醒', title: '提醒',
message: this.setContent, message: this.setContent,
cancelButtonText: '取消', cancelButtonText: '取消',
confirmButtonText: '去考试', confirmButtonText: '去考试',
confirmButtonColor: '#94dcd2', confirmButtonColor: '#94dcd2',
cancelButtonColor: '#666', cancelButtonColor: '#666',
}) })
.then(() => { .then(() => {
this.wxcDialogConfirmBtnClicked(); this.wxcDialogConfirmBtnClicked();
}) })
.catch(() => { .catch(() => {
this.wxcDialogCancelBtnClicked(); this.wxcDialogCancelBtnClicked();
}); });
}, },
wxcDialogCancelBtnClicked () { wxcDialogCancelBtnClicked () {
// 此处必须设置,组件为无状态组件,自己管理 // 此处必须设置,组件为无状态组件,自己管理
...@@ -518,7 +462,8 @@ ...@@ -518,7 +462,8 @@
origin: 'start' origin: 'start'
}; };
if (this.beforeLearningExamNumber > 0) { if (this.beforeLearningExamNumber > 0) {
Vue.set(this.query, 'startNum', this.beforeLearningExamNumber); this.$set(this.query, 'startNum', this.beforeLearningExamNumber);
// Vue.set(this.query, 'startNum', this.beforeLearningExamNumber);
} }
this.goIDCardAndEdu(this.currentObj); this.goIDCardAndEdu(this.currentObj);
} }
......
...@@ -3,11 +3,19 @@ ...@@ -3,11 +3,19 @@
<div <div
ref="textRef" ref="textRef"
> >
<div class="ele-content" :class="{'ele-contentOther':status}"> <div
class="ele-content"
:class="{'ele-contentOther':status}"
>
<span>简介:</span> <span>简介:</span>
{{ message }} {{ message }}
</div> </div>
<div @click="seeMore" class="ele-content-btn"> {{ status ? '显示全部' : '收起' }}</div> <div
class="ele-content-btn"
@click="seeMore"
>
{{ status ? '显示全部' : '收起' }}
</div>
</div> </div>
<div <div
class="see_more" class="see_more"
...@@ -21,9 +29,6 @@ ...@@ -21,9 +29,6 @@
</template> </template>
<script> <script>
// text collapse
// const dom = weex.requireModule('dom');
export default { export default {
components: {}, components: {},
props:['infoMsg'], props:['infoMsg'],
...@@ -35,31 +40,19 @@ ...@@ -35,31 +40,19 @@
}, },
computed: { computed: {
message: function() { message: function() {
return this.infoMsg.textModuleList[0].content return this.infoMsg.textModuleList[0].content;
} }
}, },
created () { created () {
},
mounted() {
this.init();
}, },
methods: { methods: {
getShortBrief(str) {
},
init() {
console.log(this.infoMsg.textModuleList[0])
},
seeMore() { seeMore() {
this.status=!this.status; this.status = !this.status;
} }
}, },
}; };
</script> </script>
<style scoped> <style scoped>
.message-backups { .message-backups {
position: fixed; position: fixed;
......
...@@ -35,7 +35,8 @@ import { ...@@ -35,7 +35,8 @@ import {
Sticky, Sticky,
Collapse, Collapse,
CollapseItem, CollapseItem,
CountDown CountDown,
PullRefresh
} from 'vant'; } from 'vant';
Vue.use(List) Vue.use(List)
...@@ -73,4 +74,5 @@ Vue.use(List) ...@@ -73,4 +74,5 @@ Vue.use(List)
.use(Sticky) .use(Sticky)
.use(Collapse) .use(Collapse)
.use(CollapseItem) .use(CollapseItem)
.use(CountDown); .use(CountDown)
.use(PullRefresh);
...@@ -20,22 +20,22 @@ const routerConfig = [ ...@@ -20,22 +20,22 @@ const routerConfig = [
}, },
{ {
path: '/exam-result', path: '/exam-result',
name: 'exam-result', name: 'examResult',
component: () => import('@/views/examResult/index.vue') component: () => import('@/views/examResult/index.vue')
}, },
{ {
path: '/exam-wrong', path: '/exam-wrong',
name: 'exam-wrong', name: 'examWrong',
component: () => import('@/views/exam/exam_wrong.vue') component: () => import('@/views/exam/exam_wrong.vue')
}, },
{ {
path: '/exam-history', path: '/exam-history',
name: 'exam-history', name: 'examHistory',
component: () => import('@/views/exam/exam_history.vue') component: () => import('@/views/exam/exam_history.vue')
}, },
{ {
path: '/local-exam-history', path: '/local-exam-history',
name: 'local-exam-history', name: 'localExamHistory',
component: () => import('@/views/exam/local_exam_history') component: () => import('@/views/exam/local_exam_history')
}, },
{ {
......
...@@ -38,28 +38,28 @@ ...@@ -38,28 +38,28 @@
import { listRelatives, list } from '@/api/home'; import { listRelatives, list } from '@/api/home';
export default { export default {
name: 'Home', name: 'Home',
data() {
return {
token:'F65FDAEE03F34EA78490050B8A83BF95'
};
},
computed: { computed: {
count () { count () {
return this.$store.state.home.count; return this.$store.state.home.count;
} }
}, },
data(){
return {
token:"F65FDAEE03F34EA78490050B8A83BF95"
}
},
mounted () { mounted () {
getCoopTop({id:4,token:this.token}).then((res)=>{ getCoopTop({id:4, token:this.token}).then((res) => {
console.log(res); console.log(res);
if(res && res.data){ if(res && res.data) {
this.infoLists = res.data.texts; // 简介(文案)组件 this.infoLists = res.data.texts; // 简介(文案)组件
this.sliderLists = res.data.carousels; // 轮播图组件 this.sliderLists = res.data.carousels; // 轮播图组件
this.projectName = res.data.projectName; // 项目名称 this.projectName = res.data.projectName; // 项目名称
this.projectName = this.getLength(this.projectName, 8); this.projectName = this.getLength(this.projectName, 8);
}else{ }else{
this.$toast(res.message); this.$toast(res.message);
} }
}); });
console.log(this.$route.meta); // {requiresAuth: true} console.log(this.$route.meta); // {requiresAuth: true}
}, },
methods: { methods: {
......
<template> <template>
<scroller show-scrollbar="false" class="back-fff"> <scroller
<div class="contenter"> show-scrollbar="false"
<exam-history :showHeaderH="showHeaderH" :historyList="historyList" :examId="id" :examType="examType"></exam-history> class="back-fff"
<pica-header title="考试记录" @goBack="goBack" showHeader="true"></pica-header> >
<div class="history-nomore" v-if="historyList.length > 0"> <div class="contenter">
<div class="nomore-text">没有更多记录了</div> <exam-history
</div> :show-header-h="showHeaderH"
:history-list="historyList"
:exam-id="id"
:exam-type="examType"
/>
<pica-header
title="考试记录"
show-header="true"
@goBack="goBack"
/>
<div
v-if="historyList.length > 0"
class="history-nomore"
>
<div class="nomore-text">
没有更多记录了
</div> </div>
</div>
</scroller> </div>
</scroller>
</template> </template>
<style scoped> <style scoped>
...@@ -22,43 +38,43 @@ ...@@ -22,43 +38,43 @@
</style> </style>
<script> <script>
import storejs from 'storejs'; import storejs from 'storejs';
import picaHeader from '@/components/stroke/picaHeader' import picaHeader from '@/components/stroke/picaHeader';
import examHistory from '@/components/stroke/examHistory' import examHistory from '@/components/stroke/examHistory';
import { getCoopExamResultNews ,getCoopResultNewsLocal} from '@/api/exam.js'; import { getCoopExamResultNews, getCoopResultNewsLocal} from '@/api/exam.js';
export default { export default {
data: () => ({ components:{picaHeader, examHistory},
id: '', data: () => ({
isPassExam: false, id: '',
showHeaderH:false, isPassExam: false,
historyList:[], showHeaderH:false,
examType: '', historyList:[],
token:"" examType: '',
}), token:''
computed: { }),
}, computed: {
components:{picaHeader,examHistory}, },
created () { created () {
// this.historyList = this.$route.query.historyList // this.historyList = this.$route.query.historyList
this.id = this.$route.query.examId; this.id = this.$route.query.examId;
this.token=storejs.get('token'); this.token = storejs.get('token');
this.init() this.init();
}, },
methods: { methods: {
init(){ init() {
let funCoop = getCoopExamResultNews let funCoop = getCoopExamResultNews;
if(this.$route.query.examType == 'local'){ if(this.$route.query.examType == 'local') {
funCoop=getCoopResultNewsLocal funCoop = getCoopResultNewsLocal;
}
funCoop({examId:this.id,token:this.token}).catch(res=>{
this.historyList = res.data.examRecordList
this.historyList.map(res=>{
res.createdTime = res.createdTime.substring(0,10)
})
})
} }
} funCoop({examId:this.id, token:this.token}).catch(res => {
} this.historyList = res.data.examRecordList;
this.historyList.map(res => {
res.createdTime = res.createdTime.substring(0, 10);
});
});
}
}
};
</script> </script>
<style scoped> <style scoped>
.history-nomore{ .history-nomore{
......
<template> <template>
<list> <list>
<cell> <cell>
<div class="head-fixed"> <div class="head-fixed">
<div class="head-bg" :style="{backgroundColor: headBg, height: '5px'}"></div> <div
<div class="head wrap"> class="head-bg"
<img @click="back" src="http://pica-pro.oss-cn-shanghai.aliyuncs.com/md_resources/back_gray.png" style="width: 25px; height: 25px;"/> :style="{backgroundColor: headBg, height: '5px'}"
<text class="title">错题集</text> />
<text class="empty"></text> <div class="head wrap">
</div> <img
</div> src="http://pica-pro.oss-cn-shanghai.aliyuncs.com/md_resources/back_gray.png"
<div class="img-wrap"> style="width: 25px; height: 25px;"
<img src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/icon_report_grey.png" style="width: 53px; height: 65px;"/> @click="back"
</div> >
<div class="result-wrap"> <text class="title">
<div style="font-size: 16px;">正确题目数 :{{rightNum}}</div> 错题集
<div style="padding-left: 15px;font-size: 16px;">错误题目数 :</div> </text>
<div style="color: #d84a38;font-size: 16px;">{{wrongNum}}</div> <text class="empty" />
</div> </div>
<div style="padding: 0 15px"> </div>
<div class="separator"></div> <div class="img-wrap">
</div> <img
<div class="info"> src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/icon_report_grey.png"
<div style="font-size: 20px; padding-bottom: 20px; padding-top: 10px;">试题分析</div> style="width: 53px; height: 65px;"
<div class="detail" v-for="(wrong,index) in wrongList" :key="index"> >
<div class="question-index">{{wrong.seqNo}}题:</div> </div>
<div class="question-title">{{wrong.question}}</div> <div class="result-wrap">
<div class="answer" style="color: #d84a38;">您的答案:{{wrong.answer}}</div> <div style="font-size: 16px;">
<div class="answer" style="color: #35CBCA;">正确答案:{{wrong.correctAnswer}}</div> 正确题目数 :{{ rightNum }}
</div> </div>
</div> <div style="padding-left: 15px;font-size: 16px;">
<!-- <wxc-loading :show="showLoading"></wxc-loading> --> 错误题目数 :
</cell> </div>
</list> <div style="color: #d84a38;font-size: 16px;">
{{ wrongNum }}
</div>
</div>
<div style="padding: 0 15px">
<div class="separator" />
</div>
<div class="info">
<div style="font-size: 20px; padding-bottom: 20px; padding-top: 10px;">
试题分析
</div>
<div
v-for="(wrong,index) in wrongList"
:key="index"
class="detail"
>
<div class="question-index">
{{ wrong.seqNo }}题:
</div>
<div class="question-title">
{{ wrong.question }}
</div>
<div
class="answer"
style="color: #d84a38;"
>
您的答案:{{ wrong.answer }}
</div>
<div
class="answer"
style="color: #35CBCA;"
>
正确答案:{{ wrong.correctAnswer }}
</div>
</div>
</div>
<!-- <wxc-loading :show="showLoading"></wxc-loading> -->
</cell>
</list>
</template> </template>
<style scoped> <style scoped>
...@@ -114,47 +152,47 @@ ...@@ -114,47 +152,47 @@
<script> <script>
// import { WxcLoading } from 'weex-ui' // import { WxcLoading } from 'weex-ui'
// import WxcLoading from '../../components/wxc-loading' // import WxcLoading from '../../components/wxc-loading'
//let modal = weex.requireModule('modal') // let modal = weex.requireModule('modal')
//import WxcLoading from '../../components/wxc-loading' // import WxcLoading from '../../components/wxc-loading'
import { getCoopExamWrongRecords} from '@/api/exam.js'; import { getCoopExamWrongRecords} from '@/api/exam.js';
export default { export default {
//components: { WxcLoading }, // components: { WxcLoading },
data: () => ({ data: () => ({
showLoading: false, showLoading: false,
wrongList: [], wrongList: [],
rightNum: '', rightNum: '',
wrongNum: '', wrongNum: '',
headBg: '#ffffff', headBg: '#ffffff',
headHeight: 0, headHeight: 0,
token:"" token:''
}), }),
computed: { computed: {
}, },
created () { created () {
this.token=this.$storejs.get('token'); this.token = this.$storejs.get('token');
this.init(); this.init();
}, },
methods: { methods: {
init() { init() {
this.showLoading = true; this.showLoading = true;
let para = { const para = {
answerResultId: this.$route.query.answerResultId, answerResultId: this.$route.query.answerResultId,
type: 5, type: 5,
token:this.token token:this.token
}; };
getCoopExamWrongRecords(para).catch(res=>{ getCoopExamWrongRecords(para).catch(res => {
this.showLoading = false this.showLoading = false;
let data = res.data; const data = res.data;
if(data.respCode == 200) { if(data.respCode == 200) {
this.wrongList = data.wrongList this.wrongList = data.wrongList;
this.rightNum = data.correctNo this.rightNum = data.correctNo;
this.wrongNum = data.wrongNo this.wrongNum = data.wrongNo;
} else { } else {
this.$toast(data.respMsg); this.$toast(data.respMsg);
} }
}) });
// this.GET('app/projectExam/wrongs', para, res => { // this.GET('app/projectExam/wrongs', para, res => {
// this.showLoading = false // this.showLoading = false
// let data = res.data; // let data = res.data;
// if(data.respCode == 200) { // if(data.respCode == 200) {
// this.wrongList = data.wrongList // this.wrongList = data.wrongList
...@@ -163,11 +201,11 @@ ...@@ -163,11 +201,11 @@
// } else { // } else {
// this.$toast(data.respMsg); // this.$toast(data.respMsg);
// } // }
// }) // })
}, },
back() { back() {
this.$router.go(-1) this.$router.go(-1);
} }
} }
} };
</script> </script>
\ No newline at end of file
<template> <template>
<list> <list>
<cell> <cell>
<div class="head-fixed"> <div class="head-fixed">
<div class="head-bg" :style="{backgroundColor: headBg, height:'15px'}"></div> <div
<div class="head wrap"> class="head-bg"
<div @click="giveUp" class="back-wrap"> :style="{backgroundColor: headBg, height:'15px'}"
<img src="http://pica-pro.oss-cn-shanghai.aliyuncs.com/md_resources/back_gray.png" style="width: 25px; height: 25px;"/> />
<div class="back-txt">放弃考试</div> <div class="head wrap">
</div> <div
<text class="empty"></text> class="back-wrap"
<div class="time-left"> @click="giveUp"
<div class="time-label">剩余时间 </div> >
<van-count-down :time="TIME" format="mm:ss"> <img
<template #default="timeData"> src="http://pica-pro.oss-cn-shanghai.aliyuncs.com/md_resources/back_gray.png"
<!-- <span class="block">{{ timeData.hours }}</span> style="width: 25px; height: 25px;"
>
<div class="back-txt">
放弃考试
</div>
</div>
<text class="empty" />
<div class="time-left">
<div class="time-label">
剩余时间
</div>
<van-count-down
:time="TIME"
format="mm:ss"
>
<template #default="timeData">
<!-- <span class="block">{{ timeData.hours }}</span>
<span class="colon">:</span> --> <span class="colon">:</span> -->
<span class="block">{{ timeData.minutes }}</span> <span class="block">{{ timeData.minutes }}</span>
<span class="colon">:</span> <span class="colon">:</span>
<span class="block">{{ timeData.seconds }}</span> <span class="block">{{ timeData.seconds }}</span>
</template> </template>
</van-count-down> </van-count-down>
<!-- <wxc-countdown v-if="isInitFinished" tpl="{m}:{s}" :time="TIME" class="time" @wxcOnComplete="timeout" <!-- <wxc-countdown v-if="isInitFinished" tpl="{m}:{s}" :time="TIME" class="time" @wxcOnComplete="timeout"
:timeBoxStyle="{backgroundColor: '#ffffff', width: '50px', height: '50px', paddingBottom: '10px'}" :timeBoxStyle="{backgroundColor: '#ffffff', width: '50px', height: '50px', paddingBottom: '10px'}"
:timeTextStyle="{fontSize: '38px', color: 'rgb(51,51,51)'}" :timeTextStyle="{fontSize: '38px', color: 'rgb(51,51,51)'}"
:dotTextStyle="{color: 'rgb(51,51,51)', fontSize: '38px', fontWeight: '400'}" :dotTextStyle="{color: 'rgb(51,51,51)', fontSize: '38px', fontWeight: '400'}"
:dotBoxStyle="{width: '35px', paddingBottom: '10px'}"> :dotBoxStyle="{width: '35px', paddingBottom: '10px'}">
</wxc-countdown> 111--> </wxc-countdown> 111-->
</div> </div>
</div> </div>
</div> </div>
<div class="questions-wrap"> <div class="questions-wrap">
<div class="question" v-for="(item, index) in questions" :ref="'question_' + index" :key="index"> <div
<div class="description">{{index + 1}}:{{item.name}}</div> v-for="(item, index) in questions"
<pica-radio :list="item.answerList" @wxcRadioListChecked="select"></pica-radio> :ref="'question_' + index"
</div> :key="index"
</div> class="question"
>
<div class="description">
{{ index + 1 }}:{{ item.name }}
</div>
<pica-radio
:list="item.answerList"
@wxcRadioListChecked="select"
/>
</div>
</div>
<div class="submit-wrap"> <div class="submit-wrap">
<div class="select-status"> <div class="select-status">
<div class="status-label">已答题:</div> <div class="status-label">
<div class="status-value">{{selectedCount}}/{{questions.length}}</div> 已答题:
</div> </div>
<div> <div class="status-value">
<van-button type="primary" class="coop-btn" @click="submitQuery">{{isSubmitting ? '提交中' : '提交'}}</van-button> {{ selectedCount }}/{{ questions.length }}
</div> </div>
<!-- <wxc-button :btnStyle="submitBtnStyle" :text="isSubmitting ? '提交中' : '提交'" </div>
<div>
<van-button
type="primary"
class="coop-btn"
@click="submitQuery"
>
{{ isSubmitting ? '提交中' : '提交' }}
</van-button>
</div>
<!-- <wxc-button :btnStyle="submitBtnStyle" :text="isSubmitting ? '提交中' : '提交'"
@wxcButtonClicked="submitQuery"></wxc-button> 111--> @wxcButtonClicked="submitQuery"></wxc-button> 111-->
</div> </div>
<!-- <wxc-dialog confirm-text="提交考卷" <!-- <wxc-dialog confirm-text="提交考卷"
cancel-text="再想一下" cancel-text="再想一下"
:show="showSubmitConfirm" :show="showSubmitConfirm"
main-btn-color="#2ab9a5" main-btn-color="#2ab9a5"
...@@ -87,9 +123,8 @@ ...@@ -87,9 +123,8 @@
</wxc-dialog> </wxc-dialog>
<wxc-loading :show="showLoading"></wxc-loading> --> <wxc-loading :show="showLoading"></wxc-loading> -->
</cell>
</cell> </list>
</list>
</template> </template>
<style scoped> <style scoped>
...@@ -215,24 +250,24 @@ ...@@ -215,24 +250,24 @@
</style> </style>
<script> <script>
//import { WxcButton, WxcMinibar, WxcCountdown } from 'weex-ui' // import { WxcButton, WxcMinibar, WxcCountdown } from 'weex-ui'
// import WxcLoading from '../../components/wxc-loading' // import WxcLoading from '../../components/wxc-loading'
import PicaRadio from '@/components/pica-radio' import PicaRadio from '@/components/pica-radio';
// import WxcDialog from '../../components/wxc-dialog' // import WxcDialog from '../../components/wxc-dialog'
// import {click_submit_test,click_cancel_test} from '../../util/buryingPoint' // import {click_submit_test,click_cancel_test} from '../../util/buryingPoint'
// let modal = weex.requireModule('modal') // let modal = weex.requireModule('modal')
//let navigator = weex.requireModule('navigator') // let navigator = weex.requireModule('navigator')
// const storage = weex.requireModule('storage') // const storage = weex.requireModule('storage')
// const dom = weex.requireModule('dom') // const dom = weex.requireModule('dom')
import { getCoopExamQuest,getAnwserExam} from '@/api/exam.js'; import { getCoopExamQuest, getAnwserExam} from '@/api/exam.js';
export default { export default {
components: { components: {
PicaRadio PicaRadio
// WxcButton, WxcDialog, WxcLoading, WxcMinibar, // WxcButton, WxcDialog, WxcLoading, WxcMinibar,
// PicaRadio, WxcCountdown // PicaRadio, WxcCountdown
}, },
data() { data() {
return{ return{
selected: {}, selected: {},
selectedCount: 0, selectedCount: 0,
...@@ -251,244 +286,255 @@ export default { ...@@ -251,244 +286,255 @@ export default {
startNum: -1, startNum: -1,
isSubmitting: false, isSubmitting: false,
submitBtnStyle: { submitBtnStyle: {
width: '230px', width: '230px',
fontSize: '40px', fontSize: '40px',
borderRadius: 0, borderRadius: 0,
backgroundColor: '#58b5a8', backgroundColor: '#58b5a8',
},
token:""
}
},
computed: {
}, },
created () { token:''
this.token=this.$storejs.get('token'); };
this.startNum = this.$route.query.startNum || -1 },
this.init(); computed: {
// weex.requireModule('globalEvent').addEventListener("goPreviousPage", e=> {//监听物理返回上一页 },
// this.back() created () {
// }); this.token = this.$storejs.get('token');
}, this.startNum = this.$route.query.startNum || -1;
this.init();
// weex.requireModule('globalEvent').addEventListener("goPreviousPage", e=> {//监听物理返回上一页
// this.back()
// });
},
methods: { methods: {
isAllSelected() { isAllSelected() {
return this.selectedCount && this.questions.length == this.selectedCount return this.selectedCount && this.questions.length == this.selectedCount;
}, },
getCorrectId(list) { getCorrectId(list) {
for(var i = 0, len = list.length; i < len; i++) { for(var i = 0, len = list.length; i < len; i++) {
if(list[i].type == 1) { if(list[i].type == 1) {
return list[i].id return list[i].id;
} }
} }
}, },
format(questions) { format(questions) {
questions.forEach( (question, i) => { questions.forEach( (question, i) => {
let choices = ['a', 'b', 'c', 'd'] const choices = ['a', 'b', 'c', 'd'];
let correctId = this.getCorrectId(question.answerList) const correctId = this.getCorrectId(question.answerList);
question.answerList.forEach( (answer, j) => { question.answerList.forEach( (answer, j) => {
answer.title = choices[j].toUpperCase() + '. ' + answer.answer answer.title = choices[j].toUpperCase() + '. ' + answer.answer;
answer.value = choices[j].toUpperCase() answer.value = choices[j].toUpperCase();
answer.index = i answer.index = i;
answer.seqNo = i + 1 answer.seqNo = i + 1;
answer.correctId = correctId answer.correctId = correctId;
answer.questionType = question.type answer.questionType = question.type;
answer.answerId = answer.id answer.answerId = answer.id;
}) });
}) });
return questions return questions;
}, },
init() { init() {
let para = { const para = {
'examId': this.$route.query.examId, 'examId': this.$route.query.examId,
'type': 5, 'type': 5,
'token':this.token 'token':this.token
}; };
getCoopExamQuest(para).catch(res=>{ getCoopExamQuest(para).catch(res => {
this.showLoading = false this.showLoading = false;
let data = res.data; const data = res.data;
if(data.respCode == 200) { if(data.respCode == 200) {
this.isInitFinished = true this.isInitFinished = true;
this.questions = this.format(data.questionList) this.questions = this.format(data.questionList);
this.examTime = data.examTime*1000 this.examTime = data.examTime * 1000;
this.TIME = new Date().getTime() + this.examTime this.TIME = new Date().getTime() + this.examTime;
console.log(this.TIME,"----000-----"); } else {
} else { this.$toast(data.respMsg);
this.$toast(data.respMsg);
} }
}) });
// this.GET('app/projectExam/questions', para, res => { // this.GET('app/projectExam/questions', para, res => {
// this.showLoading = false // this.showLoading = false
// let data = res.data // let data = res.data
// if(data.respCode == 200) { // if(data.respCode == 200) {
// this.isInitFinished = true // this.isInitFinished = true
// this.questions = this.format(data.questionList) // this.questions = this.format(data.questionList)
// this.examTime = data.examTime*1000 // this.examTime = data.examTime*1000
// this.TIME = new Date().getTime() + this.examTime // this.TIME = new Date().getTime() + this.examTime
// } else { // } else {
// this.toast({ // this.toast({
// message: data.respMsg // message: data.respMsg
// }) // })
// } // }
// }) // })
}, },
back() { back() {
this.$router.go(-1); this.$router.go(-1);
//weex.requireModule('eventModule').backPreviousPage({}) // weex.requireModule('eventModule').backPreviousPage({})
},
getUnselected() {
let result = []
let selected = this.selected
this.questions.forEach( (question, i) => {
if(!selected[i]) {
result.push({
questionId: question.id,
correctId: question.answerList[0].correctId,
answerId: 0,
questionType: question.type,
seqNo: question.answerList[0].seqNo,
type: 2
})
}
})
return result
}, },
getAnswerTime() { getUnselected() {
let surplusTime = this.TIME - new Date().getTime() const result = [];
return surplusTime > 0 ? Math.floor((this.examTime - surplusTime)/1000) : this.examTime/1000 const selected = this.selected;
}, this.questions.forEach( (question, i) => {
submit() { if(!selected[i]) {
let para = { result.push({
answerTime: this.getAnswerTime(), questionId: question.id,
examId: this.$route.query.examId, correctId: question.answerList[0].correctId,
type: 5 answerId: 0,
} questionType: question.type,
let resultList = [] seqNo: question.answerList[0].seqNo,
Object.keys(this.selected).forEach( attr => { type: 2
resultList.push(this.selected[attr])
}); });
if(this.selected.length != this.questions.length) { }
resultList = resultList.concat(this.getUnselected()) });
} return result;
para.resultList = resultList },
this.showLoading = true getAnswerTime() {
this.isSubmitting = true const surplusTime = this.TIME - new Date().getTime();
getAnwserExam(para).catch(res=>{ return surplusTime > 0 ? Math.floor((this.examTime - surplusTime) / 1000) : this.examTime / 1000;
},
submit() {
alert(123);
const para = {
answerTime: this.getAnswerTime(),
examId: this.$route.query.examId,
type: 5,
token:this.token
};
console.log(this.token, '--------');
let resultList = [];
Object.keys(this.selected).forEach( attr => {
resultList.push(this.selected[attr]);
});
if(this.selected.length != this.questions.length) {
resultList = resultList.concat(this.getUnselected());
}
para.resultList = resultList;
this.showLoading = true;
this.isSubmitting = true;
console.log(para, 'para');
getAnwserExam(para).catch(res => {
this.showLoading = false; this.showLoading = false;
this.isSubmitting = false; this.isSubmitting = false;
let data = res.data; const data = res.data;
if(data.respCode == 200) { if(data.respCode == 200) {
let query = { alert(2222);
examId: this.$route.query.examId, const query = {
answerResultId: data.answerResultId, examId: this.$route.query.examId,
from: 'exam' answerResultId: data.answerResultId,
} from: 'exam'
if (this.startNum >0){ };
Vue.set(query, "endNum", this.startNum - 1) alert(33);
} if (this.startNum > 0) {
this.$router.push({ alert(4);
path:'/exam-result', query.endNum = this.startNum - 1;
query: query // this.$set(this.query, 'endNum', this.startNum - 1);
}) // Vue.set(query, 'endNum', this.startNum - 1);
} else { }
this.$toast(data.respMsg) alert(5);
} this.$router.push({name:'examResult', query: query});
}) // alert(1111);
// this.POST('app/projectExam/apply', para, res => { return;
// this.showLoading = false // this.$router.push({
// this.isSubmitting = false // path:'/exam-result',
// let data = res.data // query: query
// if(data.respCode == 200) { // });
alert(1111);
} else {
this.$toast(data.respMsg);
}
});
// this.POST('app/projectExam/apply', para, res => {
// this.showLoading = false
// this.isSubmitting = false
// let data = res.data
// if(data.respCode == 200) {
// let query = { // let query = {
// examId: this.$route.query.examId, // examId: this.$route.query.examId,
// answerResultId: data.answerResultId, // answerResultId: data.answerResultId,
// // origin: 'end', // // origin: 'end',
// from: 'exam' // from: 'exam'
// } // }
// if (this.startNum >0){ // if (this.startNum >0){
// Vue.set(query, "endNum", this.startNum - 1) // Vue.set(query, "endNum", this.startNum - 1)
// } // }
// this.$router.push({ // this.$router.push({
// path:'/exam_result', // path:'/exam_result',
// query: query // query: query
// }) // })
// } else { // } else {
// this.$toast(data.respMsg) // this.$toast(data.respMsg)
// } // }
// }) // })
}, },
submitQuery() { submitQuery() {
if(this.isSubmitting) { if(this.isSubmitting) {
return return;
} }
if(this.isAllSelected()) { if(this.isAllSelected()) {
this.showSubmitConfirm = true this.showSubmitConfirm = true;
this.submitDialog(); this.submitDialog();
} else { } else {
this.showUnFinishedTip = true; this.showUnFinishedTip = true;
this.firstUnselectedIndex = this.getFirstUnselected(); this.firstUnselectedIndex = this.getFirstUnselected();
this.submitDialogFinish(); this.submitDialogFinish();
} }
}, },
submitDialogFinish(){ submitDialogFinish() {
let msg=`第${this.firstUnselectedIndex}题尚未做答,请回答所有题目后再提交` const msg = `第${this.firstUnselectedIndex}题尚未做答,请回答所有题目后再提交`;
this.$dialog this.$dialog
.alert({ .alert({
title: '提醒', title: '提醒',
message: msg, message: msg,
confirmButtonColor: '#94dcd2', confirmButtonColor: '#94dcd2',
}) })
.then(() => { .then(() => {
this.unFinishedConfirm(); this.unFinishedConfirm();
}) });
}, },
submitDialog(){ submitDialog() {
this.$dialog this.$dialog
.confirm({ .confirm({
title: '确定提交考卷', title: '确定提交考卷',
message: '一旦提交后,将无法修改答题内容', message: '一旦提交后,将无法修改答题内容',
cancelButtonText: '在想一下', cancelButtonText: '在想一下',
confirmButtonText: '提交考卷', confirmButtonText: '提交考卷',
confirmButtonColor: '#94dcd2', confirmButtonColor: '#94dcd2',
cancelButtonColor: '#666', cancelButtonColor: '#666',
}) })
.then(() => { .then(() => {
this.submitConfirm(); this.submitConfirm();
}) })
.catch(() => { .catch(() => {
this.hideSubmitConfirm(); this.hideSubmitConfirm();
}); });
}, },
getFirstUnselected() { getFirstUnselected() {
let count = this.questions.length const count = this.questions.length;
let selectedIndexs = Object.keys(this.selected) const selectedIndexs = Object.keys(this.selected);
for(var i = 0; i < count; i++) { for(var i = 0; i < count; i++) {
if(selectedIndexs.indexOf(i + '') == -1) { if(selectedIndexs.indexOf(i + '') == -1) {
return i + 1 return i + 1;
} }
} }
},
unFinishedConfirm() {
this.showUnFinishedTip = false;
}, },
unFinishedConfirm() { submitConfirm() {
this.showUnFinishedTip = false this.showSubmitConfirm = false;
const el = this.$refs['question_' + (this.firstUnselectedIndex - 1)][0] this.submit();
//dom.scrollToElement(el, { offset: -140, animated: false })
}, },
submitConfirm() { hideSubmitConfirm() {
this.showSubmitConfirm = false this.showSubmitConfirm = false;
this.submit()
}, },
hideSubmitConfirm() {
this.showSubmitConfirm = false
},
select(obj) { select(obj) {
let item = obj.item const item = obj.item;
this.selected[item.index] = item this.selected[item.index] = item;
this.selectedCount = Object.keys(this.selected).length this.selectedCount = Object.keys(this.selected).length;
}, },
timeout() { timeout() {
if(!this.showSubmitConfirm) { if(!this.showSubmitConfirm) {
this.showTimeoutConfirm = true this.showTimeoutConfirm = true;
this.$dialog this.$dialog
.alert({ .alert({
title: '提醒', title: '提醒',
...@@ -502,36 +548,36 @@ export default { ...@@ -502,36 +548,36 @@ export default {
} }
}, },
timeoutConfirm() { timeoutConfirm() {
this.showTimeoutConfirm = false this.showTimeoutConfirm = false;
this.submit() this.submit();
}, },
giveUp() { giveUp() {
if(this.isSubmitting) {return} if(this.isSubmitting) {return;}
this.showGiveUpConfirm = true this.showGiveUpConfirm = true;
this.$dialog this.$dialog
.confirm({ .confirm({
title: '提醒', title: '提醒',
message: '确认要放弃本次考试吗?', message: '确认要放弃本次考试吗?',
cancelButtonText: '放弃', cancelButtonText: '放弃',
confirmButtonText: '继续考试', confirmButtonText: '继续考试',
confirmButtonColor: '#94dcd2', confirmButtonColor: '#94dcd2',
cancelButtonColor: '#666', cancelButtonColor: '#666',
}) })
.then(() => { .then(() => {
this.giveUpConfirm(); this.giveUpConfirm();
}) })
.catch(() => { .catch(() => {
this.hideGiveUpConfirm(); this.hideGiveUpConfirm();
}); });
}, },
hideGiveUpConfirm() { hideGiveUpConfirm() {
this.showGiveUpConfirm = false this.showGiveUpConfirm = false;
this.back() this.back();
}, },
giveUpConfirm() { giveUpConfirm() {
this.showGiveUpConfirm = false this.showGiveUpConfirm = false;
} }
} }
} };
</script> </script>
\ No newline at end of file
<template> <template>
<div class="contenter"> <div class="contenter">
<lives-exam-history :showHeaderH="false" :localHistoryList="historyList" @goExamStart="goExamStart" @watchResult="watchResult"></lives-exam-history> <lives-exam-history
<div class="history-nomore" v-if="historyList.length > 0"> :show-header-h="false"
<div class="nomore-text">没有更多记录了</div> :local-history-list="historyList"
@goExamStart="goExamStart"
@watchResult="watchResult"
/>
<div
v-if="historyList.length > 0"
class="history-nomore"
>
<div class="nomore-text">
没有更多记录了
</div> </div>
<pica-header title="考试记录" @goBack="goBack" showHeader="true"></pica-header>
</div> </div>
<pica-header
title="考试记录"
show-header="true"
@goBack="goBack"
/>
</div>
</template> </template>
<style scoped> <style scoped>
...@@ -19,83 +33,76 @@ ...@@ -19,83 +33,76 @@
</style> </style>
<script> <script>
import picaHeader from '@/components/stroke/picaHeader' import picaHeader from '@/components/stroke/picaHeader';
import livesExamHistory from "@/components/stroke/livesExamHistory"; import livesExamHistory from '@/components/stroke/livesExamHistory';
import { getCoopLiveExam } from '@/api/storke.js'; import { getCoopLiveExam } from '@/api/storke.js';
export default { export default {
data: () => ({ components:{
id: '', livesExamHistory,
isPassExam: false, picaHeader},
showHeaderH:false, data: () => ({
historyList:[], id: '',
isPassExam: false,
showHeaderH:false,
historyList:[],
livesList:{ livesList:{
examId: '', examId: '',
examResultId: '', examResultId: '',
endDate: '' endDate: ''
}, },
token:"" token:''
}), }),
computed: { computed: {
}, },
components:{ created () {
livesExamHistory, this.token = this.$storejs.get('token');
picaHeader}, this.id = this.$route.query.projectId;
created () { this.init();
this.token=this.$storejs.get('token'); },
this.id = this.$route.query.projectId methods: {
this.init() init() {
}, const _self = this;
methods: { getCoopLiveExam({id:this.id, token:this.token}).catch(res => {
init(){ if (res && res.data) {
/*this.GET('app/exam/lives/results',{examId:id,pageNo:1,pageSize:15},res=>{ if (res.data.pLiveExamList && res.data.pLiveExamList.length) {
console.log("所有现场考试记录",res) _self.historyList = res.data.pLiveExamList;
this.historyList = res.data.examRecordList _self.historyList = _self.historyList.concat([]);
this.historyList.map(res=>{ }else {
// res.createdTime = res.createdTime.substring(0,10) _self.historyList = [];
})
})*/
let _self = this
getCoopLiveExam({id:id,token:this.token}).catch(res=>{
if (res && res.data){
if (res.data.pLiveExamList && res.data.pLiveExamList.length){
_self.historyList = res.data.pLiveExamList
_self.historyList = _self.historyList.concat([])
}else {
_self.historyList = []
}
}else{
this.$toast('网络异常,请稍后再试');
}
});
},
//重考
goExamStart(obj){
this.$router.push({
path: '/exam-result',
query:{
examId: obj.id,
origin: 'start',
examType: 'local',
endDate: obj.endDate,
answerResultId: obj.examResultId
}
})
},
//查看
watchResult(obj){
this.$router.push({
path: '/exam-result',
query:{
examId: obj.id,
origin: '',
examType: 'local',
endDate: obj.endDate,
answerResultId: obj.examResultId
}
})
} }
} }else{
} this.$toast('网络异常,请稍后再试');
}
});
},
// 重考
goExamStart(obj) {
this.$router.push({
path: '/exam-result',
query:{
examId: obj.id,
origin: 'start',
examType: 'local',
endDate: obj.endDate,
answerResultId: obj.examResultId
}
});
},
// 查看
watchResult(obj) {
this.$router.push({
path: '/exam-result',
query:{
examId: obj.id,
origin: '',
examType: 'local',
endDate: obj.endDate,
answerResultId: obj.examResultId
}
});
}
}
};
</script> </script>
<style scoped> <style scoped>
.history-nomore{ .history-nomore{
......
<template> <template>
<!-- <scroller show-scrollbar="false" style="background-color: white;"> --> <!-- <scroller show-scrollbar="false" style="background-color: white;"> -->
<div> <div>
<div class="body_background"> <div class="body_background">
<pica-header @goBack="goBack" :type="type" :showHeader="showHeader"></pica-header> <pica-header
<exam-info :exam="exam" :type="type" @reExamStart="reExamStart" :startNum="startNum" :endNum="endNum" :examType="examType" v-bind:hasWrong="hasWrong"></exam-info> :type="type"
<exam-history :showHeaderH="showHeaderH" :historyList="historyList" :examId="examId" :exam="exam"></exam-history> :show-header="showHeader"
</div> @goBack="goBack"
</div> />
<!-- <wxc-loading :show="isShow"></wxc-loading> --> <exam-info
<!-- </scroller> --> :exam="exam"
:type="type"
:start-num="startNum"
:end-num="endNum"
:exam-type="examType"
:has-wrong="hasWrong"
@reExamStart="reExamStart"
/>
<exam-history
:show-header-h="showHeaderH"
:history-list="historyList"
:exam-id="examId"
:exam="exam"
/>
</div>
</div>
<!-- <wxc-loading :show="isShow"></wxc-loading> -->
<!-- </scroller> -->
</template> </template>
<style scoped> <style scoped>
...@@ -18,150 +35,150 @@ ...@@ -18,150 +35,150 @@
} }
</style> </style>
<script> <script>
import examInfo from '@/components/stroke/examInfo' import examInfo from '@/components/stroke/examInfo';
import examHistory from '@/components/stroke/examHistory' import examHistory from '@/components/stroke/examHistory';
import picaHeader from '@/components/stroke/picaHeader' import picaHeader from '@/components/stroke/picaHeader';
import { getCoopExam ,getCoopExamResultNew,getCoopExamResultNews} from '@/api/exam.js'; import { getCoopExam, getCoopExamResultNew, getCoopExamResultNews} from '@/api/exam.js';
//import WxcLoading from '../../components/wxc-loading' // import WxcLoading from '../../components/wxc-loading'
//let configurationModule = weex.requireModule('configurationModule') // let configurationModule = weex.requireModule('configurationModule')
//let modal = weex.requireModule('modal') // let modal = weex.requireModule('modal')
export default { export default {
data: () => ({
answerResultId: '',
id: '',
examId: '',
isPassExam: false,
showHeader: true,
showHeaderH: true, //历史记录的header
exam:{},//考试基本信息
historyList:[],
type: 2, //2 考试开始, 0 考试失败, 1 考试成功
source: '',
startNum: -1,
endNum: -1,
isShow: false,
from: '',
testMsg: '',
examType: 'common',
hasWrong:false,
token:""
}),
computed: {},
components:{ components:{
examInfo, examInfo,
examHistory,picaHeader, examHistory, picaHeader,
//WxcLoading // WxcLoading
},
data: () => ({
answerResultId: '',
id: '',
examId: '',
isPassExam: false,
showHeader: true,
showHeaderH: true, // 历史记录的header
exam:{}, // 考试基本信息
historyList:[],
type: 2, // 2 考试开始, 0 考试失败, 1 考试成功
source: '',
startNum: -1,
endNum: -1,
isShow: false,
from: '',
testMsg: '',
examType: 'common',
hasWrong:false,
token:''
}),
computed: {},
created () {
this.token = this.$storejs.get('token');
this.examId = this.$route.query.examId;
this.from = this.$route.query.from;
this.showHeader = this.from != 'exam';
this.answerResultId = this.$route.query.answerResultId || 0;
const startNum = this.$route.query.startNum;
const endNum = this.$route.query.endNum;
this.startNum = startNum >= 0 ? startNum : -1;
this.endNum = endNum >= 0 ? endNum : -1;
}, },
created () { mounted() {
this.token=this.$storejs.get('token'); this.init();
this.examId = this.$route.query.examId
this.from = this.$route.query.from
this.showHeader = this.from != 'exam'
this.answerResultId = this.$route.query.answerResultId || 0
let startNum = this.$route.query.startNum
let endNum = this.$route.query.endNum
this.startNum = startNum >= 0 ? startNum : -1
this.endNum = endNum >= 0 ? endNum : -1
},
mounted(){
this.init()
}, },
methods: { methods: {
init(){ init() {
this.isShow = true this.isShow = true;
this.hasWrong = false; this.hasWrong = false;
if (this.from !== "exam" && !(this.answerResultId > 0)){//开始页面 if (this.from !== 'exam' && !(this.answerResultId > 0)) {// 开始页面
this.type = 2 this.type = 2;
getCoopExam({"examId":this.examId, "type": 5,token:this.token}).catch(res=>{ getCoopExam({'examId':this.examId, 'type': 5, token:this.token}).catch(res => {
if(res.data){ if(res.data) {
if (res.data.respCode == 1000) { if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg); return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) { } else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin(); return this.$rocNative.gotoLogin();
};
if(res.data.respCode == 200){
this.exam = res.data.examBaseInfo
}
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
})
}else{//结果页面
this.hasWrong = false;
getCoopExamResultNew({answerResultId:this.answerResultId, type: 5,token:this.token}).catch(res=>{
if(res.data){
if (res.data.respCode == 200){
// weex.requireModule('CourseModule').finishTest(res.data)
this.exam = res.data.answerResult
this.type = this.exam.passFlag == 5 ? 1 : 0;
}else if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
}else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
});
} }
this.hasWrong = false; if(res.data.respCode == 200) {
getCoopExamResultNews({examId:this.examId,pageNo:1,pageSize:3, type: 5,token:this.token}).catch(res=>{ this.exam = res.data.examBaseInfo;
this.isShow = false }
if(res.data){ }else{
if (res.data.respCode == 200){ this.hasWrong = true;
this.historyList = res.data.examRecordList this.$toast(res.data.respMsg);
this.historyList.map(res=>{
res.createdTime = res.createdTime.substring(0,10)
})
}else if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
}else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
})
// this.GET('app/projectExam/results',{examId:this.examId,pageNo:1,pageSize:3, type: 5},res=>{
// this.isShow = false
// if (res.data && res.data.respCode == 200){
// this.historyList = res.data.examRecordList
// this.historyList.map(res=>{
// res.createdTime = res.createdTime.substring(0,10)
// })
// }else {
// this.hasWrong = true;
// modal.toast({
// message: res.data.respMsg,
// duration: 1.0
// })
// }
// })
},
goBack(){
this.$router.go(-1);
},
reExamStart(){
this.from = "start"
this.type = 2
this.showHeader = true
if (this.endNum > 0){
this.startNum = this.endNum
}
this.answerResultId = -1
this.init()
} }
} });
} }else{// 结果页面
this.hasWrong = false;
getCoopExamResultNew({answerResultId:this.answerResultId, type: 5, token:this.token}).catch(res => {
if(res.data) {
if (res.data.respCode == 200) {
// weex.requireModule('CourseModule').finishTest(res.data)
this.exam = res.data.answerResult;
this.type = this.exam.passFlag == 5 ? 1 : 0;
}else if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
}else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg);
}
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg);
}
});
}
this.hasWrong = false;
getCoopExamResultNews({examId:this.examId, pageNo:1, pageSize:3, type: 5, token:this.token}).catch(res => {
this.isShow = false;
if(res.data) {
if (res.data.respCode == 200) {
this.historyList = res.data.examRecordList;
this.historyList.map(res => {
res.createdTime = res.createdTime.substring(0, 10);
});
}else if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
}else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg);
}
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg);
}
});
// this.GET('app/projectExam/results',{examId:this.examId,pageNo:1,pageSize:3, type: 5},res=>{
// this.isShow = false
// if (res.data && res.data.respCode == 200){
// this.historyList = res.data.examRecordList
// this.historyList.map(res=>{
// res.createdTime = res.createdTime.substring(0,10)
// })
// }else {
// this.hasWrong = true;
// modal.toast({
// message: res.data.respMsg,
// duration: 1.0
// })
// }
// })
},
goBack() {
this.$router.go(-1);
},
reExamStart() {
this.from = 'start';
this.type = 2;
this.showHeader = true;
if (this.endNum > 0) {
this.startNum = this.endNum;
}
this.answerResultId = -1;
this.init();
}
}
};
</script> </script>
\ No newline at end of file
// import WxcDialog from '../components/wxc-dialog' // import WxcDialog from '../components/wxc-dialog'
// import strokeSlot from '../components/business/strokeSlot' // import strokeSlot from '../components/business/strokeSlot'
//import examHistory from '../components/stroke/examHistory'; // import examHistory from '../components/stroke/examHistory';
//import main from '../components/stroke/main'; // import main from '../components/stroke/main';
// import picaCommon from '../util/picaCommon' // import picaCommon from '../util/picaCommon'
// import WxcLoading from '../components/wxc-loading' // import WxcLoading from '../components/wxc-loading'
// import livesExamHistory from "../components/stroke/livesExamHistory"; // import livesExamHistory from "../components/stroke/livesExamHistory";
//import WxcDialog from '../components/wxc-dialog'; // import WxcDialog from '../components/wxc-dialog';
// let modal = weex.requireModule('modal') // let modal = weex.requireModule('modal')
// let configurationModule = weex.requireModule('configurationModule') // let configurationModule = weex.requireModule('configurationModule')
// let globalEvent = weex.requireModule('globalEvent') // let globalEvent = weex.requireModule('globalEvent')
// let storage = weex.requireModule('storage') // let storage = weex.requireModule('storage')
//import WxcDialog from '../components/wxc-dialog' // import WxcDialog from '../components/wxc-dialog'
import componentMain from '@/components/stroke/componentMain'; import componentMain from '@/components/stroke/componentMain';
import CommonHeader from '@/components/common/header'; import CommonHeader from '@/components/common/header';
import livesExamHistory from "@/components/stroke/livesExamHistory"; import livesExamHistory from '@/components/stroke/livesExamHistory';
import { getCoopTop, getCoopBottom, getCoopMiddle, getCoopLiveExam, getCoopOrder } from '@/api/storke.js'; import { getCoopTop, getCoopBottom, getCoopMiddle, getCoopLiveExam, getCoopOrder } from '@/api/storke.js';
import { getCoopExamResult } from '@/api/exam.js'; import { getCoopExamResult } from '@/api/exam.js';
export default { export default {
...@@ -27,7 +27,8 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -27,7 +27,8 @@ import { getCoopExamResult } from '@/api/exam.js';
livesExamHistory livesExamHistory
}, },
data() { data() {
return{ return {
isLoading:true,
keyIndex:0, keyIndex:0,
showExamFinishedTip: false, showExamFinishedTip: false,
showReInputTip: false, showReInputTip: false,
...@@ -66,7 +67,7 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -66,7 +67,7 @@ import { getCoopExamResult } from '@/api/exam.js';
height: '45px', height: '45px',
backgroundColor: 'rgba(106, 159, 233, 0.1)', backgroundColor: 'rgba(106, 159, 233, 0.1)',
borderRadius: '30px', borderRadius: '30px',
margin:"0 auto", margin:'0 auto',
width: '200px' width: '200px'
}, },
codeTextStyle: { codeTextStyle: {
...@@ -88,10 +89,10 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -88,10 +89,10 @@ import { getCoopExamResult } from '@/api/exam.js';
needMarginBottom: false, needMarginBottom: false,
marginBottom: '0px', marginBottom: '0px',
parms:{ parms:{
id: 4, token: "6A713648AB954CAEAE6B39265F624B52" id: 4, token: 'BEB69157CD5E45CC8076B3AF54049A88'
}, },
flagLoading:0, flagLoading:0,
title:"", title:'',
bgColor: 'rgba(255,255,255,0)', bgColor: 'rgba(255,255,255,0)',
isFixHeader: true, isFixHeader: true,
orderListFlag:false orderListFlag:false
...@@ -103,6 +104,7 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -103,6 +104,7 @@ import { getCoopExamResult } from '@/api/exam.js';
}, },
flagLoading(newv) { flagLoading(newv) {
if (newv == 4) { if (newv == 4) {
this.isLoading = false;
this.getOrder(); this.getOrder();
} }
} }
...@@ -113,21 +115,25 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -113,21 +115,25 @@ import { getCoopExamResult } from '@/api/exam.js';
this.allowFlag = this.$route.query.allowFlag || 1; this.allowFlag = this.$route.query.allowFlag || 1;
this.projectId = this.$route.query.projectId || 2; this.projectId = this.$route.query.projectId || 2;
this.parms.id = this.projectId; this.parms.id = this.projectId;
let _that = this; this.parms.token = 2;
const _that = this;
this.$rocNative.getUserInfo() this.$rocNative.getUserInfo()
.then((res) => { .then((res) => {
let token="" let token = '';
if (res.userToken) { if (res.userToken) {
token=res.userToken token = res.userToken;
} else { } else {
token=_that.$route.query.token token = _that.$route.query.token;
} }
_that.parms.token = token; _that.parms.token = token;
_that.$storejs.set('token', token); _that.$storejs.set('token', token);
this.init(); this.init();
}) })
.catch(() => { .catch(() => {
this.init(); if (this.$rocNative.isWeb) {
this.init();
}
this.$rocNative.gotoLogin();
}); });
}, },
mounted() { mounted() {
...@@ -140,17 +146,21 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -140,17 +146,21 @@ import { getCoopExamResult } from '@/api/exam.js';
// }); // });
// }) /// // }) ///
window.addEventListener('scroll', this.scrollToTop) window.addEventListener('scroll', this.scrollToTop);
}, },
methods: { methods: {
onRefresh() {
this.flagLoading = 0;
this.init();
},
scrollToTop() { scrollToTop() {
var scrollTop = window.pageYOffset || document.documentElement. scrollTop || document.body.scrollTop; var scrollTop = window.pageYOffset || document.documentElement. scrollTop || document.body.scrollTop;
if (scrollTop > 83) { if (scrollTop > 63) {
this.bgColor = "#fff"; this.bgColor = '#fff';
this.title = this.projectName; this.title = this.projectName;
} else if(scrollTop<83){ } else if(scrollTop < 63) {
this.bgColor = "rgba(255,255,255,0)"; this.bgColor = 'rgba(255,255,255,0)';
this.title="" this.title = '';
} }
}, },
getCurrentIndex(key) { getCurrentIndex(key) {
...@@ -199,26 +209,26 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -199,26 +209,26 @@ import { getCoopExamResult } from '@/api/exam.js';
} }
this.isShow = false; this.isShow = false;
var result = res.data.checkResult; var result = res.data.checkResult;
let flag = result.resultFlag; const flag = result.resultFlag;
if(flag == 1) { if(flag == 1) {
this.$router.push({ this.$router.push({
path:'/exam-result', query:{'examId': result.examId, 'origin': 'start', 'examType': 'local', 'endDate': result.endDate} path:'/exam-result', query:{'examId': result.examId, 'origin': 'start', 'examType': 'local', 'endDate': result.endDate}
}); });
} else if(flag == 5) { } else if(flag == 5) {
this.showExamNotStartTip = true; this.showExamNotStartTip = true;
this.noExamStart("考试未开始"); this.noExamStart('考试未开始');
} else if(flag == 10 || flag == 20) { } else if(flag == 10 || flag == 20) {
this.showExamFinishedTip = true; this.showExamFinishedTip = true;
this.noExamStart("考试已结束"); this.noExamStart('考试已结束');
} else if(flag == 15) { } else if(flag == 15) {
this.showReInputTip = true; this.showReInputTip = true;
this.resetExamCodeEnter() this.resetExamCodeEnter();
}else if(flag == 30) { }else if(flag == 30) {
this.timesFull = true; this.timesFull = true;
this.noExamStart("考试次数已用完"); this.noExamStart('考试次数已用完');
} }
} }
}) });
// this.GET('app/exam/lives/check', {examCode: code}, (res) => { // this.GET('app/exam/lives/check', {examCode: code}, (res) => {
// this.isShow = false; // this.isShow = false;
// var result = res.data.checkResult, // var result = res.data.checkResult,
...@@ -243,7 +253,7 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -243,7 +253,7 @@ import { getCoopExamResult } from '@/api/exam.js';
this.$dialog.alert({ this.$dialog.alert({
title: '', title: '',
message: message, message: message,
confirmButtonText:"我知道了" confirmButtonText:'我知道了'
}).then(() => { }).then(() => {
// on close // on close
}); });
...@@ -305,25 +315,25 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -305,25 +315,25 @@ import { getCoopExamResult } from '@/api/exam.js';
getTop() { getTop() {
this.isShow = true; this.isShow = true;
const _self = this; const _self = this;
//得到顶部的方法 // 得到顶部的方法
getCoopTop(this.parms).catch((res) => { getCoopTop(this.parms).catch((res) => {
if (res && res.data) { if (res && res.data) {
if (this.flagLoading !=5) { if (this.flagLoading != 4) {
this.flagLoading=this.flagLoading + 1 this.flagLoading = this.flagLoading + 1;
} }
if (res.data.respCode == 1000) { if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg); return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) { } else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin(); return this.$rocNative.gotoLogin();
}; }
this.infoLists = res.data.texts; // 简介(文案)组件 this.infoLists = res.data.texts; // 简介(文案)组件
this.sliderLists = res.data.carousels; // 轮播图组件 this.sliderLists = res.data.carousels; // 轮播图组件
this.projectName = res.data.projectName; // 项目名称 this.projectName = res.data.projectName; // 项目名称
//this.projectName = this.getLength(this.projectName, 8); // this.projectName = this.getLength(this.projectName, 8);
}else{ }else{
this.$toast("网络异常,请稍后再试"); this.$toast('网络异常,请稍后再试');
} }
}) });
}, },
getBottom() { getBottom() {
getCoopBottom(this.parms).catch((res) => { getCoopBottom(this.parms).catch((res) => {
...@@ -332,9 +342,9 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -332,9 +342,9 @@ import { getCoopExamResult } from '@/api/exam.js';
return this.$toast(res.data.respMsg); return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) { } else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin(); return this.$rocNative.gotoLogin();
}; }
if (this.flagLoading !=5) { if (this.flagLoading != 4) {
this.flagLoading=this.flagLoading + 1 this.flagLoading = this.flagLoading + 1;
} }
this.courseLists = res.data.courses; this.courseLists = res.data.courses;
if (this.courseLists && this.courseLists.length) { if (this.courseLists && this.courseLists.length) {
...@@ -344,9 +354,9 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -344,9 +354,9 @@ import { getCoopExamResult } from '@/api/exam.js';
} }
this.courseLists = this.courseLists.concat([]); this.courseLists = this.courseLists.concat([]);
} else { } else {
this.$toast("网络异常,请稍后再试"); this.$toast('网络异常,请稍后再试');
} }
}) });
}, },
getMiddle() { getMiddle() {
getCoopMiddle(this.parms).catch((res) => { getCoopMiddle(this.parms).catch((res) => {
...@@ -356,9 +366,9 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -356,9 +366,9 @@ import { getCoopExamResult } from '@/api/exam.js';
return this.$toast(res.data.respMsg); return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) { } else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin(); return this.$rocNative.gotoLogin();
}; }
if (this.flagLoading !=5) { if (this.flagLoading != 4) {
this.flagLoading=this.flagLoading + 1 this.flagLoading = this.flagLoading + 1;
} }
this.examLists = res.data.moduleTypeExams; this.examLists = res.data.moduleTypeExams;
if (this.examLists && this.examLists.length) { if (this.examLists && this.examLists.length) {
...@@ -385,9 +395,9 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -385,9 +395,9 @@ import { getCoopExamResult } from '@/api/exam.js';
this.examLists = []; this.examLists = [];
} }
} else { } else {
this.$toast("网络异常,请稍后再试") this.$toast('网络异常,请稍后再试');
} }
}) });
// const _self = this; // const _self = this;
// this.GET('contents/projects/middle', {id: this.projectId}, function (res) { // this.GET('contents/projects/middle', {id: this.projectId}, function (res) {
// _self.isShow = false; // _self.isShow = false;
...@@ -434,8 +444,8 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -434,8 +444,8 @@ import { getCoopExamResult } from '@/api/exam.js';
} else if (res.data.respCode == 401 || res.data.respCode == 404) { } else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin(); return this.$rocNative.gotoLogin();
} }
if (this.flagLoading !=5) { if (this.flagLoading != 4) {
this.flagLoading=this.flagLoading + 1 this.flagLoading = this.flagLoading + 1;
} }
this.pLiveMapping = res.data.pLiveMapping; this.pLiveMapping = res.data.pLiveMapping;
if (res.data.pLiveExamList && res.data.pLiveExamList.length) { if (res.data.pLiveExamList && res.data.pLiveExamList.length) {
...@@ -443,14 +453,14 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -443,14 +453,14 @@ import { getCoopExamResult } from '@/api/exam.js';
this.localHistoryList = this.localHistoryList.concat([]); this.localHistoryList = this.localHistoryList.concat([]);
} }
} else { } else {
this.$toast("网络异常,请稍后再试"); this.$toast('网络异常,请稍后再试');
} }
//this.getOrder(); // this.getOrder();
}); });
}, },
getOrder() { getOrder() {
//const _self = this; // const _self = this;
getCoopOrder(this.parms).catch((res) => { getCoopOrder(this.parms).catch((res) => {
if (res && res.data) { if (res && res.data) {
if (res.data.respCode == 1000) { if (res.data.respCode == 1000) {
...@@ -460,13 +470,13 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -460,13 +470,13 @@ import { getCoopExamResult } from '@/api/exam.js';
} }
// 组件type // 组件type
// module_type:1、轮播图组件 5、文案组件 10、考试组件 15、关联课程组件 20、链接组件 25、现场考试组件 // module_type:1、轮播图组件 5、文案组件 10、考试组件 15、关联课程组件 20、链接组件 25、现场考试组件
if (this.flagLoading !=5) { // if (this.flagLoading !=5) {
this.flagLoading = this.flagLoading + 1; // this.flagLoading = this.flagLoading + 1;
} // }
this.orderList = res.data.projectList; this.orderList = res.data.projectList;
this.orderListFlag = this.orderList.some(item => { this.orderListFlag = this.orderList.some(item => {
return item.module_type == 25 return item.module_type == 25;
}) });
if (res.data.respCode != 200) { if (res.data.respCode != 200) {
return this.$toast(res.data.respMsg); return this.$toast(res.data.respMsg);
} }
...@@ -494,27 +504,27 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -494,27 +504,27 @@ import { getCoopExamResult } from '@/api/exam.js';
} }
this.slots = this.slots.concat([]); this.slots = this.slots.concat([]);
this.allComponentLists = []; this.allComponentLists = [];
this.sliderLists.forEach( (item)=> { this.sliderLists.forEach( (item) => {
this.allComponentLists.push(item); this.allComponentLists.push(item);
}); });
this.infoLists.forEach((item)=> { this.infoLists.forEach((item) => {
this.allComponentLists.push(item); this.allComponentLists.push(item);
}); });
this.courseLists.forEach((item)=> { this.courseLists.forEach((item) => {
this.allComponentLists.push(item); this.allComponentLists.push(item);
}); });
this.examLists.forEach((item)=> { this.examLists.forEach((item) => {
this.allComponentLists.push(item); this.allComponentLists.push(item);
}); });
this.livesExamLists.forEach((item)=> { this.livesExamLists.forEach((item) => {
this.allComponentLists.push(item); this.allComponentLists.push(item);
}); });
this.allComponentLists.sort((a,b)=> { this.allComponentLists.sort((a, b) => {
return a.seq_no - b.seq_no; return a.seq_no - b.seq_no;
}); });
this.allComponentLists = this.allComponentLists.concat([]);// Object.assign([],) this.allComponentLists = this.allComponentLists.concat([]);// Object.assign([],)
} else { } else {
this.$toast("网络异常,请稍后再试"); this.$toast('网络异常,请稍后再试');
} }
}); });
}, },
...@@ -545,7 +555,7 @@ import { getCoopExamResult } from '@/api/exam.js'; ...@@ -545,7 +555,7 @@ import { getCoopExamResult } from '@/api/exam.js';
this.$router.go(-1); this.$router.go(-1);
} }
// storage.setItem('needFlash', 'true'); // storage.setItem('needFlash', 'true');
//configurationModule.goBack(); 11 // configurationModule.goBack(); 11
}, },
// 重考 // 重考
goExamStart(obj) { goExamStart(obj) {
......
<template> <template>
<div> <div>
<div class="stroke_container" v-if="this.flagLoading==5"> <van-pull-refresh
<common-header v-model="isLoading"
:bg-color="bgColor" @refresh="onRefresh"
:title="title" >
:is-fix-header="isFixHeader" <div class="stroke_container">
:is-custom-back="true" <common-header
@selfGoBack="consulOrder" :bg-color="bgColor"
/> :title="title"
<template v-if="allComponentLists.length"> :is-fix-header="isFixHeader"
<div :is-custom-back="true"
v-for="(value, key) in slots" @selfGoBack="consulOrder"
ref="scrollerDom" />
:key="'a'+key" <template v-if="allComponentLists.length">
>
<component-main
ref="mainCp"
:type="value.slot"
:datas="allComponentLists[key]"
:keyIndex="key"
@click.native="getCurrentIndex(key)"
/>
</div>
</template>
<!--</stroke-slot>-->
<div v-if="orderListFlag">
<div class="local-exam">
<div <div
v-if="allowFlag == 0" v-for="(value, key) in slots"
class="project_advice_new" ref="scrollerDom"
:key="'a'+key"
> >
<div class="project_advice_text_new"> <component-main
您暂不属于该项目,若想获得学习权限,请拨打电话 400-920-8877 联系云鹊医工作人员。 ref="mainCp"
</div> :type="value.slot"
:datas="allComponentLists[key]"
:key-index="key"
@click.native="getCurrentIndex(key)"
/>
</div> </div>
<div class="project_title"> </template>
{{ pLiveMapping.examName }} <!--</stroke-slot>-->
</div> <div v-if="orderListFlag">
<div class="code-btn-wrap"> <div class="local-exam">
<div :class="{'code-btn': (allowFlag == 0),'code-active-btn': (allowFlag != 0)}" <div
:style="codeBtn" v-if="allowFlag == 0"
@click="codeBtnClicked" class="project_advice_new"
> >
<!-- :textStyle="allowFlag == 0 ? codeTextStyleNo : codeTextStyle" --> <div class="project_advice_text_new">
{{pLiveMapping.buttonName}} 您暂不属于该项目,若想获得学习权限,请拨打电话 400-920-8877 联系云鹊医工作人员。
</div>
</div>
<div class="project_title">
{{ pLiveMapping.examName }}
</div>
<div class="code-btn-wrap">
<div
:class="{'code-btn': (allowFlag == 0),'code-active-btn': (allowFlag != 0)}"
:style="codeBtn"
@click="codeBtnClicked"
>
<!-- :textStyle="allowFlag == 0 ? codeTextStyleNo : codeTextStyle" -->
{{ pLiveMapping.buttonName }}
</div>
</div> </div>
</div> </div>
</div>
<div class="history-wrap"> <div class="history-wrap">
<div class="history-header"> <div class="history-header">
<div class="project_title his_label"> <div class="project_title his_label">
考试记录 考试记录
</div>
<div
v-if="localHistoryList.length >= 5"
class="course_see_more"
@click="seeMoreHistory"
>
<div class="see_more">
更多
</div> </div>
<img <div
class="see_more_img" v-if="localHistoryList.length >= 5"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png" class="course_see_more"
@click="seeMoreHistory"
> >
<div class="see_more">
更多
</div>
<img
class="see_more_img"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/arrow_right_gray%403x.png"
>
</div>
</div> </div>
<lives-exam-history
:show-header-h="false"
:local-history-list="localHistoryList.slice(0,5)"
@goExamStart="goExamStart"
@watchResult="watchResult"
/>
</div> </div>
<lives-exam-history
:show-header-h="false"
:local-history-list="localHistoryList.slice(0,5)"
@goExamStart="goExamStart"
@watchResult="watchResult"
/>
</div> </div>
</div> </div>
</div> <!-- <wxc-loading :show="isShow"></wxc-loading> -->
<!-- <wxc-loading :show="isShow"></wxc-loading> -->
<!-- <wxc-dialog confirm-text="重新输入" <!-- <wxc-dialog confirm-text="重新输入"
cancel-text="取消" cancel-text="取消"
:show="showReInputTip" :show="showReInputTip"
@wxcDialogCancelBtnClicked="hideReInput" @wxcDialogCancelBtnClicked="hideReInput"
...@@ -88,7 +91,7 @@ ...@@ -88,7 +91,7 @@
<div slot="content" class="content-subtext">考试码不正确</div> <div slot="content" class="content-subtext">考试码不正确</div>
</wxc-dialog> 11--> </wxc-dialog> 11-->
<!-- <wxc-dialog confirm-text="我知道了" <!-- <wxc-dialog confirm-text="我知道了"
:show="showExamNotStartTip" :show="showExamNotStartTip"
main-btn-color="#35cbca" main-btn-color="#35cbca"
:single="true" :single="true"
...@@ -96,7 +99,7 @@ ...@@ -96,7 +99,7 @@
<text slot="content" class="content-subtext">考试未开始</text> <text slot="content" class="content-subtext">考试未开始</text>
</wxc-dialog> 11--> </wxc-dialog> 11-->
<!-- <wxc-dialog confirm-text="我知道了" <!-- <wxc-dialog confirm-text="我知道了"
:show="showExamFinishedTip" :show="showExamFinishedTip"
main-btn-color="#35cbca" main-btn-color="#35cbca"
:single="true" :single="true"
...@@ -104,7 +107,7 @@ ...@@ -104,7 +107,7 @@
<text slot="content" class="content-subtext">考试已结束</text> <text slot="content" class="content-subtext">考试已结束</text>
</wxc-dialog> 11--> </wxc-dialog> 11-->
<!-- <wxc-dialog confirm-text="我知道了" <!-- <wxc-dialog confirm-text="我知道了"
:show="timesFull" :show="timesFull"
main-btn-color="#35cbca" main-btn-color="#35cbca"
:single="true" :single="true"
...@@ -112,9 +115,9 @@ ...@@ -112,9 +115,9 @@
<text slot="content" class="content-subtext">考试次数已用完</text> <text slot="content" class="content-subtext">考试次数已用完</text>
</wxc-dialog> 11--> </wxc-dialog> 11-->
<!--height="342"--> <!--height="342"-->
<!-- <wxc-mask height="642" <!-- <wxc-mask height="642"
width="750" width="750"
border-radius="0" border-radius="0"
duration="200" duration="200"
...@@ -139,24 +142,86 @@ ...@@ -139,24 +142,86 @@
</div> </div>
</div> </div>
</wxc-mask> 11--> </wxc-mask> 11-->
<van-overlay :show="showCodeInputDialog" @click="showCodeInputDialog = false"> <van-overlay
<div class="wrapper" @click.stop> :show="showCodeInputDialog"
<div class="code-content"> @click="showCodeInputDialog = false"
<div class="code-title-wrap"> >
<img class="code-img" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/close%403x.png" @click="showCodeInputDialog=false"/> <div
<div class="code-title">请输入考试码</div> class="wrapper"
</div> @click.stop
<div class="code-input-wrap"> >
<input type="text" class="code-input" :class="[code1.length > 0 ? 'code-active': '']" v-model="code1" maxlength="1" @input="codeChange(code1, 'code2')" ref="code1" autofocus="true"/> <div class="code-content">
<input type="text" class="code-input" :class="[code2.length > 0 ? 'code-active': '']" v-model="code2" maxlength="1" @input="codeChange(code2, 'code3')" ref="code2"/> <div class="code-title-wrap">
<input type="text" class="code-input" :class="[code3.length > 0 ? 'code-active': '']" v-model="code3" maxlength="1" @input="codeChange(code3, 'code4')" ref="code3"/> <img
<input type="text" class="code-input" :class="[code4.length > 0 ? 'code-active': '']" v-model="code4" maxlength="1" @input="codeChange(code4, 'code5')" ref="code4"/> class="code-img"
<input type="text" class="code-input" :class="[code5.length > 0 ? 'code-active': '']" v-model="code5" maxlength="1" @input="codeChange(code5, 'code6')" ref="code5"/> src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/close%403x.png"
<input type="text" class="code-input" :class="[code6.length > 0 ? 'code-active': '']" v-model="code6" maxlength="1" @input="codeChange(code6, '')" ref="code6"/> @click="showCodeInputDialog=false"
>
<div class="code-title">
请输入考试码
</div>
</div>
<div class="code-input-wrap">
<input
ref="code1"
v-model="code1"
type="text"
class="code-input"
:class="[code1.length > 0 ? 'code-active': '']"
maxlength="1"
autofocus="true"
@input="codeChange(code1, 'code2')"
>
<input
ref="code2"
v-model="code2"
type="text"
class="code-input"
:class="[code2.length > 0 ? 'code-active': '']"
maxlength="1"
@input="codeChange(code2, 'code3')"
>
<input
ref="code3"
v-model="code3"
type="text"
class="code-input"
:class="[code3.length > 0 ? 'code-active': '']"
maxlength="1"
@input="codeChange(code3, 'code4')"
>
<input
ref="code4"
v-model="code4"
type="text"
class="code-input"
:class="[code4.length > 0 ? 'code-active': '']"
maxlength="1"
@input="codeChange(code4, 'code5')"
>
<input
ref="code5"
v-model="code5"
type="text"
class="code-input"
:class="[code5.length > 0 ? 'code-active': '']"
maxlength="1"
@input="codeChange(code5, 'code6')"
>
<input
ref="code6"
v-model="code6"
type="text"
class="code-input"
:class="[code6.length > 0 ? 'code-active': '']"
maxlength="1"
@input="codeChange(code6, '')"
>
</div>
</div>
</div> </div>
</div> </van-overlay>
</div> </van-pull-refresh>
</van-overlay>
</div> </div>
</template> </template>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册