Commit ed96ba59 authored by 罗超's avatar 罗超

1

parent e293ba30
import request from '../utils/request.js' import request from '../utils/request.js'
let JHdata = uni.getStorageSync("userInfo");
/** /**
* 获取活动类型列表 * 获取活动类型列表
* @param {JSON参数} data * @param {JSON参数} data
...@@ -8,7 +8,17 @@ export function getActivityTypeList(data) { ...@@ -8,7 +8,17 @@ export function getActivityTypeList(data) {
return request({ return request({
url: '/AppletEducation/GetActivityTypeList', url: '/AppletEducation/GetActivityTypeList',
method: 'post', method: 'post',
data data: {
msg: data,
MallBaseId: JHdata.JHMallBaseId,
UserId: JHdata.JHMallUserId,
TenantId: JHdata.JHTenantId,
StudentId: JHdata.Id,
OpenId: JHdata.JHMallUserOpenId,
SmallShopsId: 0,
MiniAppId: "wx38e054ee42b054f4",
token: JHdata.MallToken
}
}) })
} }
...@@ -20,6 +30,16 @@ export function getActivityList(data) { ...@@ -20,6 +30,16 @@ export function getActivityList(data) {
return request({ return request({
url: '/AppletEducation/GetActivityPageJXH', url: '/AppletEducation/GetActivityPageJXH',
method: 'post', method: 'post',
data data: {
msg: data,
MallBaseId: JHdata.JHMallBaseId,
UserId: JHdata.JHMallUserId,
TenantId: JHdata.JHTenantId,
StudentId: JHdata.Id,
OpenId: JHdata.JHMallUserOpenId,
SmallShopsId: 0,
MiniAppId: "wx38e054ee42b054f4",
token: JHdata.MallToken
}
}) })
} }
\ No newline at end of file
...@@ -8,7 +8,7 @@ export function getPaperList(data) { ...@@ -8,7 +8,7 @@ export function getPaperList(data) {
return request({ return request({
url: '/AppletIndex/GetGuestExaminationPublishPage', url: '/AppletIndex/GetGuestExaminationPublishPage',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -20,7 +20,7 @@ export function getPaperDetail(data) { ...@@ -20,7 +20,7 @@ export function getPaperDetail(data) {
return request({ return request({
url: '/appletindex/GetPaperDetails', url: '/appletindex/GetPaperDetails',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -32,6 +32,6 @@ export function submitPaper(data) { ...@@ -32,6 +32,6 @@ export function submitPaper(data) {
return request({ return request({
url: '/AppletIndex/StuSubmitExamPaper', url: '/AppletIndex/StuSubmitExamPaper',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
\ No newline at end of file
...@@ -8,7 +8,7 @@ export function login(data) { ...@@ -8,7 +8,7 @@ export function login(data) {
return request({ return request({
url: '/AppletLogin/Login', url: '/AppletLogin/Login',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -20,7 +20,7 @@ export function getIndexInfo(data) { ...@@ -20,7 +20,7 @@ export function getIndexInfo(data) {
return request({ return request({
url: '/AppletIndex/GetIndexInfo', url: '/AppletIndex/GetIndexInfo',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -32,7 +32,7 @@ export function getStundentPlanStatistical(data) { ...@@ -32,7 +32,7 @@ export function getStundentPlanStatistical(data) {
return request({ return request({
url: '/AppletIndex/GetStundentPlanStatistical', url: '/AppletIndex/GetStundentPlanStatistical',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -44,7 +44,7 @@ export function getCourse(data) { ...@@ -44,7 +44,7 @@ export function getCourse(data) {
return request({ return request({
url: '/AppletIndex/GetChapterTree', url: '/AppletIndex/GetChapterTree',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -56,7 +56,7 @@ export function getContract(data) { ...@@ -56,7 +56,7 @@ export function getContract(data) {
return request({ return request({
url: '/AppletIndex/GetContractList', url: '/AppletIndex/GetContractList',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -68,7 +68,7 @@ export function getProgress(data) { ...@@ -68,7 +68,7 @@ export function getProgress(data) {
return request({ return request({
url: '/AppletIndex/GetStundentScheduleList', url: '/AppletIndex/GetStundentScheduleList',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -80,7 +80,7 @@ export function getStundentSurplus(data) { ...@@ -80,7 +80,7 @@ export function getStundentSurplus(data) {
return request({ return request({
url: '/AppletIndex/GetStundentSurplus', url: '/AppletIndex/GetStundentSurplus',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -92,7 +92,7 @@ export function setStudentLeave(data) { ...@@ -92,7 +92,7 @@ export function setStudentLeave(data) {
return request({ return request({
url: '/LeaveStudent/SetStudentLeave', url: '/LeaveStudent/SetStudentLeave',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
...@@ -104,7 +104,7 @@ export function getStudentLeaveList(data) { ...@@ -104,7 +104,7 @@ export function getStudentLeaveList(data) {
return request({ return request({
url: '/AppletIndex/GetEducationReceiptPage', url: '/AppletIndex/GetEducationReceiptPage',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
/** /**
...@@ -115,7 +115,7 @@ export function invalidReceiptInfo(data) { ...@@ -115,7 +115,7 @@ export function invalidReceiptInfo(data) {
return request({ return request({
url: '/AppletIndex/InvalidReceipt', url: '/AppletIndex/InvalidReceipt',
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
/** /**
...@@ -126,6 +126,6 @@ export function getEduReceiptInfo(data) { ...@@ -126,6 +126,6 @@ export function getEduReceiptInfo(data) {
return request({ return request({
url: "/AppletIndex/GetEduReceiptInfo", url: "/AppletIndex/GetEduReceiptInfo",
method: 'post', method: 'post',
data data: { msg: data }
}) })
} }
\ No newline at end of file
...@@ -3,37 +3,64 @@ ...@@ -3,37 +3,64 @@
<view> <view>
<view class="item" style="padding: 0 20px"> <view class="item" style="padding: 0 20px">
<view class="name"> <view class="name">
<view> <view class="grow">
{{ changeNumToHan(sortIndex) }}{{ data.GroupName }} {{ changeNumToHan(sortIndex) }}{{ data.GroupName }}
<text style="color: #999999">(共{{ data.DetailsList.length }}道,{{ data.GScore }}分)</text> <text style="color: #999999"
>(共{{ data.DetailsList.length }}道,{{ data.GScore }}分)</text
>
</view> </view>
<view class="ExamIndex_Box"> <view class="ExamIndex_Box">
<text class="Single_Before">{{ ExamIndex }}</text>/<text <text class="Single_Before">{{ ExamIndex }}</text
class="Exam_Total">{{ data.DetailsList.length }}</text> >/<text class="Exam_Total">{{ data.DetailsList.length }}</text>
</view> </view>
</view> </view>
<swiper class="swiper-box" :style="{ <swiper
class="swiper-box"
:style="{
height: `calc(100vh - 300rpx - ${statusBarHeight}px)`, height: `calc(100vh - 300rpx - ${statusBarHeight}px)`,
}" :autoplay="autoplay" :current="current" @change="onchange" :skip-hidden-item-layout="true"> }"
:autoplay="autoplay"
:current="current"
@change="onchange"
:skip-hidden-item-layout="true"
:disable-programmatic-animation="true"
>
<swiper-item v-if="sortIndex != 1"></swiper-item> <swiper-item v-if="sortIndex != 1"></swiper-item>
<swiper-item v-for="(item1, index1) in data.DetailsList" :key="index1"> <swiper-item v-for="(item1, index1) in data.DetailsList" :key="index1">
<view class="item1"> <view class="item1">
<view class="flex"> <view class="flex flex_start_center">
<view class="num" v-html="item1.Title"></view>{{item1.Score}} <view class="num" v-html="item1.Title"></view>
</view> </view>
<view v-for="(item2, index2) in item1.QuestionContentObj" :key="index2"
class="flex item2 flex_start_center"> <view
v-for="(item2, index2) in item1.QuestionContentObj"
:key="index2"
class="flex item2 flex_start_center"
>
<template v-if="isOperate"> <template v-if="isOperate">
<view class="chooseNum" :class="{ myAnswer: item2.IsAnswer }" <view
@click="change(item1, item2)">{{ item2.ShowName }} class="chooseNum"
:class="{ myAnswer: item2.IsAnswer }"
@click="change(item1, item2)"
>{{ item2.ShowName }}
</view> </view>
<view class="chooseName" @click="change(item1, item2)" v-html="item2.Content"></view> <view
class="chooseName"
@click="change(item1, item2)"
v-html="item2.Content"
></view>
</template> </template>
<template v-else> <template v-else>
<view class="chooseNum" :class="{ isTrueAnswer: item2.IsAnswer }">{{ item2.Name }} <view
class="chooseNum"
:class="{ isTrueAnswer: item2.IsAnswer }"
>{{ item2.Name }}
</view> </view>
<view class="chooseName" :class="{ isTrueAnswer: item2.IsAnswer }" <view
v-html="item2.Content"> class="chooseName"
:class="{ isTrueAnswer: item2.IsAnswer }"
v-html="item2.Content"
>
</view> </view>
</template> </template>
</view> </view>
...@@ -41,26 +68,30 @@ ...@@ -41,26 +68,30 @@
<view class="AnswerContent" v-if="!isOperate"> <view class="AnswerContent" v-if="!isOperate">
<view> <view>
<text style="color: #8c8a94">正确答案:</text> <text style="color: #8c8a94">正确答案:</text>
<text class="isTrueAnswer">{{item1.Answer}}</text> <text class="isTrueAnswer">{{ item1.Answer }}</text
<text> >
您的答案: <text
>您的答案是:
<template v-if="item1.StundetAnswer != ''"> <template v-if="item1.StundetAnswer != ''">
<text v-if="item1.Answer == item1.StundetAnswer" class="isTrueAnswer"> <text
v-if="item1.Answer == item1.StundetAnswer"
class="isTrueAnswer"
>
{{ item1.StundetAnswer }},回答正确 {{ item1.StundetAnswer }},回答正确
</text> </text>
<text v-else class="isNotAnswer">{{ item1.StundetAnswer }},回答错误</text> <text v-else class="isNotAnswer"
>{{ item1.StundetAnswer }},回答错误</text
>
</template> </template>
<template v-else> <template v-else>
<text>未作答</text> <text>未作答</text>
</template> </template>
</text> </text>
</view> </view>
<view style="margin:20rpx 0;"> <view
<text style="color:#8c8a94">您的得分:</text> style="margin-top: 20rpx; word-wrap: break-word"
<text class="isTrueAnswer" v-if="item1.StudentScore>0">{{item1.StudentScore}}</text> v-if="item1.AnswerParse"
<text class="isNotAnswer" v-else>{{item1.StudentScore}}</text> >
</view>
<view style="word-wrap: break-word" v-if="item1.AnswerParse">
<text style="color: #8c8a94">解析:</text> <text style="color: #8c8a94">解析:</text>
<text style="color: #000">{{ item1.AnswerParse }}</text> <text style="color: #000">{{ item1.AnswerParse }}</text>
</view> </view>
...@@ -76,7 +107,7 @@ ...@@ -76,7 +107,7 @@
</template> </template>
<script> <script>
import { import {
ref, ref,
reactive, reactive,
toRefs, toRefs,
...@@ -85,24 +116,19 @@ ...@@ -85,24 +116,19 @@
watch, watch,
computed, computed,
onMounted, onMounted,
} from "vue"; } from "vue";
import { import { changeNumToHan } from "../../utils/index";
changeNumToHan export default {
} from "../../utils/index";
export default {
props: { props: {
paperData: Object, paperData: Object,
sort: Number, sort: Number,
sortTotal: Number, sortTotal: Number,
isLast: Boolean, isLast: Boolean,
startIndex: Number, startIndex: Number,
ExamStatus: Number,
isOperate: Boolean, isOperate: Boolean,
}, },
setup(props, context) { setup(props, context) {
let { let { ctx } = getCurrentInstance();
ctx
} = getCurrentInstance();
let data = reactive({ let data = reactive({
autoplay: false, autoplay: false,
sortIndex: props.sort + 1, //大题序号 sortIndex: props.sort + 1, //大题序号
...@@ -144,22 +170,33 @@ ...@@ -144,22 +170,33 @@
item1.QuestionContentObj.map((e) => { item1.QuestionContentObj.map((e) => {
if (e.Name == item2.Name) { if (e.Name == item2.Name) {
e.IsAnswer = true; e.IsAnswer = true;
item1.IsRes = true;
} else { } else {
e.IsAnswer = false; e.IsAnswer = false;
} }
if (e.IsAnswer) {
//标记已回答
item1.IsRes = true;
}
}); });
}, },
onchange(e) { onchange(e) {
data.ExamIndex = e.detail.current; data.ExamIndex = e.detail.current;
if (data.sortIndex == 1) {
data.ExamIndex = e.detail.current + 1;
}
if (data.ExamIndex === data.data.DetailsList.length + 1) { if (data.ExamIndex === data.data.DetailsList.length + 1) {
console.log("单选", e.detail);
this.$emit("getAfterTopic"); this.$emit("getAfterTopic");
} }
if (e.detail.current == 0 && data.sortIndex != 1) { if (e.detail.current == 0 && data.sortIndex != 1) {
this.$emit("getBeforeTopic"); this.$emit("getBeforeTopic");
} }
} },
jumpAnswerSheet() {
uni.navigateTo({
url: "/pages/exam/answerSheet",
});
},
}; };
onMounted(() => { onMounted(() => {
if (props.isLast) { if (props.isLast) {
...@@ -177,10 +214,10 @@ ...@@ -177,10 +214,10 @@
...methods, ...methods,
}; };
}, },
}; };
</script> </script>
<style scoped> <style scoped>
.name { .name {
height: 90rpx; height: 90rpx;
font-size: 28rpx; font-size: 28rpx;
font-family: PingFang SC; font-family: PingFang SC;
...@@ -189,75 +226,76 @@ ...@@ -189,75 +226,76 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
.swiper-box { .isTrueAnswer {
box-sizing: border-box;
}
.isTrueAnswer {
color: green !important; color: green !important;
} }
.isNotAnswer { .isNotAnswer {
color: red !important; color: red !important;
} }
.AnswerContent { .AnswerContent {
font-size: 28rpx; font-size: 28rpx;
padding: 25rpx; padding: 25rpx;
background-color: #f4f4f4; background-color: #f4f4f4;
border-radius: 5px; border-radius: 5px;
} }
.Single_Before { .Single_Before {
font-size: 28rpx; font-size: 28rpx;
font-weight: bold; font-weight: bold;
color: #da7878; color: #da7878;
} }
.ExamIndex_Box { .ExamIndex_Box {
margin-right: 20px; margin-right: 20px;
} }
.Exam_Total { .Exam_Total {
font-size: 25rpx; font-size: 25rpx;
color: gray; color: gray;
} }
.answerSheet {
font-size: 30rpx;
margin-left: 20rpx;
color: #000;
}
.swiper-box { .swiper-box {
height: calc(100vh - 270rpx);
box-sizing: border-box; box-sizing: border-box;
} }
.num { .num {
font-size: 28rpx; font-size: 28rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: bold; font-weight: bold;
color: #111111; color: #111111;
} }
.item { .item {
/* margin-bottom: 40rpx; */ /* margin-bottom: 40rpx; */
position: relative; position: relative;
} }
.item1 { .item1 {
/* margin: 25rpx 0; */ /* margin: 25rpx 0; */
align-items: center; align-items: center;
} }
.item2 { .item2 {
padding-left: 25rpx; padding-left: 25rpx;
margin: 30rpx 0; margin: 30rpx 0;
} }
.myAnswer { .myAnswer {
background-color: #00acf9 !important; background-color: #00acf9 !important;
color: #ffffff !important; color: #ffffff !important;
} }
.chooseNum { .chooseNum {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
text-align: center; text-align: center;
...@@ -269,13 +307,12 @@ ...@@ -269,13 +307,12 @@
font-family: PingFang SC; font-family: PingFang SC;
font-weight: bold; font-weight: bold;
color: #111111; color: #111111;
flex-shrink: 0; }
}
.chooseName { .chooseName {
font-size: 28rpx; font-size: 28rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 500; font-weight: 500;
color: #111111; color: #111111;
} }
</style> </style>
...@@ -183,7 +183,7 @@ ...@@ -183,7 +183,7 @@
</view> </view>
<view v-show="current == 2" style="height: calc(100vh - 50px)"> <view v-show="current == 2" style="height: calc(100vh - 50px)">
<signUp ref="children"></signUp> <SignUp ref="children"></SignUp>
</view> </view>
<auth <auth
...@@ -191,7 +191,13 @@ ...@@ -191,7 +191,13 @@
@changeuserinfo="reloadUserinfo" @changeuserinfo="reloadUserinfo"
@gbAuth="gbAuth" @gbAuth="gbAuth"
></auth> ></auth>
<van-popup :show="show" closeable position="bottom" @close="show = false"> <van-popup
:show="show"
closeable
round
position="bottom"
@close="show = false"
>
<view class="pubox"> <view class="pubox">
<view class="pubox-top"> <view class="pubox-top">
<text>选择活动类型</text> <text>选择活动类型</text>
...@@ -236,13 +242,16 @@ import { ...@@ -236,13 +242,16 @@ import {
onMounted, onMounted,
} from "vue"; } from "vue";
import Loadmore from "../../components/loadmore.vue"; import Loadmore from "../../components/loadmore.vue";
import SignUp from "../../components/signUp.vue";
import { getActivityTypeList, getActivityList } from "../../api/activity"; import { getActivityTypeList, getActivityList } from "../../api/activity";
export default { export default {
components: { components: {
Loadmore, Loadmore,
SignUp,
}, },
setup() { setup() {
let JHdata = uni.getStorageSync("userInfo"); let i = getCurrentInstance();
console.log(252, i);
let data = reactive({ let data = reactive({
show: false, show: false,
pageState: "more", pageState: "more",
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
</view> </view>
<van-empty description="暂无数据" v-if="data.length === 0" /> <van-empty description="暂无数据" v-if="data.length === 0" />
<view v-for="(item, index) in data" :key="index" v-if="data.length > 0"> <view v-for="(item, index) in data" :key="index" v-if="data.length > 0">
<view class="chapter" @click="openLayer"> <view class="chapter">
<view class="flex flex_between_center"> <view class="flex flex_between_center">
<view class="flex flex_between_center"> <view class="flex flex_between_center">
<view class="dot"></view> <view class="dot"></view>
...@@ -65,7 +65,6 @@ import { getIndexInfo } from "../../api/index"; ...@@ -65,7 +65,6 @@ import { getIndexInfo } from "../../api/index";
export default { export default {
setup() { setup() {
let data = reactive({ let data = reactive({
showLayer: false,
msg: { msg: {
ClassId: 0, ClassId: 0,
}, },
...@@ -73,16 +72,9 @@ export default { ...@@ -73,16 +72,9 @@ export default {
CourseName: "", CourseName: "",
}); });
let methods = { let methods = {
openLayer() {
data.showLayer = true;
},
closeLayer() {
data.showLayer = false;
},
async getData() { async getData() {
let res = await getProgress(data.msg); let res = await getProgress(data.msg);
data.data = res.Data; data.data = res.Data;
console.log(113, data);
}, },
async getIndexdata() { async getIndexdata() {
let res = await getIndexInfo(); let res = await getIndexInfo();
......
let host = 'http://192.168.20.17:8017/api' let host = 'http://192.168.20.17:8017/api'
if (process.env.NODE_ENV === "development") { if (process.env.NODE_ENV === "development") {
host = 'http://192.168.20.17:8017/api' // host = 'http://192.168.20.17:8017/api'
// host = 'http://192.168.20.24:8300/api' host = 'http://192.168.20.24:8300/api'
} else { } else {
host = 'https://eduapi.oytour.com/api' host = 'https://eduapi.oytour.com/api'
} }
...@@ -18,8 +18,7 @@ let request = (param) => { ...@@ -18,8 +18,7 @@ let request = (param) => {
'token': token || "" 'token': token || ""
}, },
data: { data: {
msg: param.data, ...param.data,
// ...param.data.activityMsg
}, },
success: res => { success: res => {
if (res.data.Code === 1) { if (res.data.Code === 1) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment