Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
educationStu
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
向伟
educationStu
Commits
ed96ba59
Commit
ed96ba59
authored
Sep 15, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
e293ba30
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
347 additions
and
290 deletions
+347
-290
activity.js
src/api/activity.js
+23
-3
exam.js
src/api/exam.js
+3
-3
index.js
src/api/index.js
+11
-11
SingleChoiceNumber.vue
src/components/subject/SingleChoiceNumber.vue
+294
-257
activityList.vue
src/pages/activity/activityList.vue
+12
-3
progress.vue
src/pages/progress/progress.vue
+1
-9
request.js
src/utils/request.js
+3
-4
No files found.
src/api/activity.js
View file @
ed96ba59
import
request
from
'../utils/request.js'
let
JHdata
=
uni
.
getStorageSync
(
"userInfo"
);
/**
* 获取活动类型列表
* @param {JSON参数} data
...
...
@@ -8,7 +8,17 @@ export function getActivityTypeList(data) {
return
request
({
url
:
'/AppletEducation/GetActivityTypeList'
,
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) {
return
request
({
url
:
'/AppletEducation/GetActivityPageJXH'
,
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
src/api/exam.js
View file @
ed96ba59
...
...
@@ -8,7 +8,7 @@ export function getPaperList(data) {
return
request
({
url
:
'/AppletIndex/GetGuestExaminationPublishPage'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -20,7 +20,7 @@ export function getPaperDetail(data) {
return
request
({
url
:
'/appletindex/GetPaperDetails'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -32,6 +32,6 @@ export function submitPaper(data) {
return
request
({
url
:
'/AppletIndex/StuSubmitExamPaper'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
\ No newline at end of file
src/api/index.js
View file @
ed96ba59
...
...
@@ -8,7 +8,7 @@ export function login(data) {
return
request
({
url
:
'/AppletLogin/Login'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -20,7 +20,7 @@ export function getIndexInfo(data) {
return
request
({
url
:
'/AppletIndex/GetIndexInfo'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -32,7 +32,7 @@ export function getStundentPlanStatistical(data) {
return
request
({
url
:
'/AppletIndex/GetStundentPlanStatistical'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -44,7 +44,7 @@ export function getCourse(data) {
return
request
({
url
:
'/AppletIndex/GetChapterTree'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -56,7 +56,7 @@ export function getContract(data) {
return
request
({
url
:
'/AppletIndex/GetContractList'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -68,7 +68,7 @@ export function getProgress(data) {
return
request
({
url
:
'/AppletIndex/GetStundentScheduleList'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -80,7 +80,7 @@ export function getStundentSurplus(data) {
return
request
({
url
:
'/AppletIndex/GetStundentSurplus'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -92,7 +92,7 @@ export function setStudentLeave(data) {
return
request
({
url
:
'/LeaveStudent/SetStudentLeave'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
...
...
@@ -104,7 +104,7 @@ export function getStudentLeaveList(data) {
return
request
({
url
:
'/AppletIndex/GetEducationReceiptPage'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
/**
...
...
@@ -115,7 +115,7 @@ export function invalidReceiptInfo(data) {
return
request
({
url
:
'/AppletIndex/InvalidReceipt'
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
/**
...
...
@@ -126,6 +126,6 @@ export function getEduReceiptInfo(data) {
return
request
({
url
:
"/AppletIndex/GetEduReceiptInfo"
,
method
:
'post'
,
data
data
:
{
msg
:
data
}
})
}
\ No newline at end of file
src/components/subject/SingleChoiceNumber.vue
View file @
ed96ba59
...
...
@@ -3,37 +3,64 @@
<view>
<view
class=
"item"
style=
"padding: 0 20px"
>
<view
class=
"name"
>
<view
>
<view
class=
"grow"
>
{{
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
class=
"ExamIndex_Box"
>
<text
class=
"Single_Before"
>
{{
ExamIndex
}}
</text>
/
<
text
class=
"Exam_Total"
>
{{
data
.
DetailsList
.
length
}}
</text>
<text
class=
"Single_Before"
>
{{
ExamIndex
}}
</
text
>
/
<text
class=
"Exam_Total"
>
{{
data
.
DetailsList
.
length
}}
</text>
</view>
</view>
<swiper
class=
"swiper-box"
:style=
"
{
<swiper
class=
"swiper-box"
:style=
"
{
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-for=
"(item1, index1) in data.DetailsList"
:key=
"index1"
>
<view
class=
"item1"
>
<view
class=
"flex
"
>
<view
class=
"num"
v-html=
"item1.Title"
></view>
(
{{
item1
.
Score
}}
)
<view
class=
"flex flex_start_center
"
>
<view
class=
"num"
v-html=
"item1.Title"
></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"
>
<view
class=
"chooseNum"
:class=
"
{ myAnswer: item2.IsAnswer }"
@click="change(item1, item2)">
{{
item2
.
ShowName
}}
<view
class=
"chooseNum"
:class=
"
{ myAnswer: item2.IsAnswer }"
@click="change(item1, item2)"
>
{{
item2
.
ShowName
}}
</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
v-else
>
<view
class=
"chooseNum"
:class=
"
{ isTrueAnswer: item2.IsAnswer }">
{{
item2
.
Name
}}
<view
class=
"chooseNum"
:class=
"
{ isTrueAnswer: item2.IsAnswer }"
>
{{
item2
.
Name
}}
</view>
<view
class=
"chooseName"
:class=
"
{ isTrueAnswer: item2.IsAnswer }"
v-html="item2.Content">
<view
class=
"chooseName"
:class=
"
{ isTrueAnswer: item2.IsAnswer }"
v-html="item2.Content"
>
</view>
</
template
>
</view>
...
...
@@ -41,26 +68,30 @@
<view
class=
"AnswerContent"
v-if=
"!isOperate"
>
<view>
<text
style=
"color: #8c8a94"
>
正确答案:
</text>
<text
class=
"isTrueAnswer"
>
{{item1.Answer}}
</text>
,
<text>
您的答案:
<text
class=
"isTrueAnswer"
>
{{ item1.Answer }}
</text
>
,
<text
>
您的答案是:
<
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
}}
,回答正确
</text>
<text
v-else
class=
"isNotAnswer"
>
{{
item1
.
StundetAnswer
}}
,回答错误
</text>
<text
v-else
class=
"isNotAnswer"
>
{{
item1
.
StundetAnswer
}}
,回答错误
</text
>
</
template
>
<
template
v-else
>
<text>
未作答
</text>
</
template
>
</text>
</view>
<view
style=
"margin:20rpx 0;"
>
<text
style=
"color:#8c8a94"
>
您的得分:
</text>
<text
class=
"isTrueAnswer"
v-if=
"item1.StudentScore>0"
>
{{item1.StudentScore}}
</text>
<text
class=
"isNotAnswer"
v-else
>
{{item1.StudentScore}}
</text>
</view>
<view
style=
"word-wrap: break-word"
v-if=
"item1.AnswerParse"
>
<view
style=
"margin-top: 20rpx; word-wrap: break-word"
v-if=
"item1.AnswerParse"
>
<text
style=
"color: #8c8a94"
>
解析:
</text>
<text
style=
"color: #000"
>
{{ item1.AnswerParse }}
</text>
</view>
...
...
@@ -76,7 +107,7 @@
</template>
<
script
>
import
{
import
{
ref
,
reactive
,
toRefs
,
...
...
@@ -85,24 +116,19 @@
watch
,
computed
,
onMounted
,
}
from
"vue"
;
import
{
changeNumToHan
}
from
"../../utils/index"
;
export
default
{
}
from
"vue"
;
import
{
changeNumToHan
}
from
"../../utils/index"
;
export
default
{
props
:
{
paperData
:
Object
,
sort
:
Number
,
sortTotal
:
Number
,
isLast
:
Boolean
,
startIndex
:
Number
,
ExamStatus
:
Number
,
isOperate
:
Boolean
,
},
setup
(
props
,
context
)
{
let
{
ctx
}
=
getCurrentInstance
();
let
{
ctx
}
=
getCurrentInstance
();
let
data
=
reactive
({
autoplay
:
false
,
sortIndex
:
props
.
sort
+
1
,
//大题序号
...
...
@@ -144,22 +170,33 @@
item1
.
QuestionContentObj
.
map
((
e
)
=>
{
if
(
e
.
Name
==
item2
.
Name
)
{
e
.
IsAnswer
=
true
;
item1
.
IsRes
=
true
;
}
else
{
e
.
IsAnswer
=
false
;
}
if
(
e
.
IsAnswer
)
{
//标记已回答
item1
.
IsRes
=
true
;
}
});
},
onchange
(
e
)
{
data
.
ExamIndex
=
e
.
detail
.
current
;
if
(
data
.
sortIndex
==
1
)
{
data
.
ExamIndex
=
e
.
detail
.
current
+
1
;
}
if
(
data
.
ExamIndex
===
data
.
data
.
DetailsList
.
length
+
1
)
{
console
.
log
(
"单选"
,
e
.
detail
);
this
.
$emit
(
"getAfterTopic"
);
}
if
(
e
.
detail
.
current
==
0
&&
data
.
sortIndex
!=
1
)
{
this
.
$emit
(
"getBeforeTopic"
);
}
}
},
jumpAnswerSheet
()
{
uni
.
navigateTo
({
url
:
"/pages/exam/answerSheet"
,
});
},
};
onMounted
(()
=>
{
if
(
props
.
isLast
)
{
...
...
@@ -177,10 +214,10 @@
...
methods
,
};
},
};
};
</
script
>
<
style
scoped
>
.name
{
.name
{
height
:
90
rpx
;
font-size
:
28
rpx
;
font-family
:
PingFang
SC
;
...
...
@@ -189,75 +226,76 @@
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
}
.swiper-box
{
box-sizing
:
border-box
;
}
.isTrueAnswer
{
.isTrueAnswer
{
color
:
green
!important
;
}
}
.isNotAnswer
{
.isNotAnswer
{
color
:
red
!important
;
}
}
.AnswerContent
{
.AnswerContent
{
font-size
:
28
rpx
;
padding
:
25
rpx
;
background-color
:
#f4f4f4
;
border-radius
:
5px
;
}
}
.Single_Before
{
.Single_Before
{
font-size
:
28
rpx
;
font-weight
:
bold
;
color
:
#da7878
;
}
}
.ExamIndex_Box
{
.ExamIndex_Box
{
margin-right
:
20px
;
}
}
.Exam_Total
{
.Exam_Total
{
font-size
:
25
rpx
;
color
:
gray
;
}
}
.answerSheet
{
font-size
:
30
rpx
;
margin-left
:
20
rpx
;
color
:
#000
;
}
.swiper-box
{
height
:
calc
(
100vh
-
270
rpx
);
.swiper-box
{
box-sizing
:
border-box
;
}
}
.num
{
.num
{
font-size
:
28
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#111111
;
}
}
.item
{
.item
{
/* margin-bottom: 40rpx; */
position
:
relative
;
}
}
.item1
{
.item1
{
/* margin: 25rpx 0; */
align-items
:
center
;
}
}
.item2
{
.item2
{
padding-left
:
25
rpx
;
margin
:
30
rpx
0
;
}
}
.myAnswer
{
.myAnswer
{
background-color
:
#00acf9
!important
;
color
:
#ffffff
!important
;
}
}
.chooseNum
{
.chooseNum
{
width
:
40
rpx
;
height
:
40
rpx
;
text-align
:
center
;
...
...
@@ -269,13 +307,12 @@
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#111111
;
flex-shrink
:
0
;
}
}
.chooseName
{
.chooseName
{
font-size
:
28
rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#111111
;
}
}
</
style
>
src/pages/activity/activityList.vue
View file @
ed96ba59
...
...
@@ -183,7 +183,7 @@
</view>
<view
v-show=
"current == 2"
style=
"height: calc(100vh - 50px)"
>
<
signUp
ref=
"children"
></s
ignUp>
<
SignUp
ref=
"children"
></S
ignUp>
</view>
<auth
...
...
@@ -191,7 +191,13 @@
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></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-top"
>
<text>
选择活动类型
</text>
...
...
@@ -236,13 +242,16 @@ import {
onMounted
,
}
from
"vue"
;
import
Loadmore
from
"../../components/loadmore.vue"
;
import
SignUp
from
"../../components/signUp.vue"
;
import
{
getActivityTypeList
,
getActivityList
}
from
"../../api/activity"
;
export
default
{
components
:
{
Loadmore
,
SignUp
,
},
setup
()
{
let
JHdata
=
uni
.
getStorageSync
(
"userInfo"
);
let
i
=
getCurrentInstance
();
console
.
log
(
252
,
i
);
let
data
=
reactive
({
show
:
false
,
pageState
:
"more"
,
...
...
src/pages/progress/progress.vue
View file @
ed96ba59
...
...
@@ -17,7 +17,7 @@
</view>
<van-empty
description=
"暂无数据"
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=
"dot"
></view>
...
...
@@ -65,7 +65,6 @@ import { getIndexInfo } from "../../api/index";
export
default
{
setup
()
{
let
data
=
reactive
({
showLayer
:
false
,
msg
:
{
ClassId
:
0
,
},
...
...
@@ -73,16 +72,9 @@ export default {
CourseName
:
""
,
});
let
methods
=
{
openLayer
()
{
data
.
showLayer
=
true
;
},
closeLayer
()
{
data
.
showLayer
=
false
;
},
async
getData
()
{
let
res
=
await
getProgress
(
data
.
msg
);
data
.
data
=
res
.
Data
;
console
.
log
(
113
,
data
);
},
async
getIndexdata
()
{
let
res
=
await
getIndexInfo
();
...
...
src/utils/request.js
View file @
ed96ba59
let
host
=
'http://192.168.20.17:8017/api'
if
(
process
.
env
.
NODE_ENV
===
"development"
)
{
host
=
'http://192.168.20.17:8017/api'
//
host = 'http://192.168.20.24:8300/api'
//
host = 'http://192.168.20.17:8017/api'
host
=
'http://192.168.20.24:8300/api'
}
else
{
host
=
'https://eduapi.oytour.com/api'
}
...
...
@@ -18,8 +18,7 @@ let request = (param) => {
'token'
:
token
||
""
},
data
:
{
msg
:
param
.
data
,
// ...param.data.activityMsg
...
param
.
data
,
},
success
:
res
=>
{
if
(
res
.
data
.
Code
===
1
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment