Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
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
罗超
confucius
Commits
ca238877
Commit
ca238877
authored
Sep 02, 2024
by
youjie
Browse files
Options
Browse Files
Download
Plain Diff
no message
parents
f7bad1ac
5d222561
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
141 additions
and
44 deletions
+141
-44
reserveclass-form.vue
src/components/school/student/reserveclass-form.vue
+8
-9
student-shiting.vue
src/components/school/student/student-shiting.vue
+109
-20
transfer-order.vue
src/components/school/student/transfer-order.vue
+5
-4
order-form.vue
src/components/school/student/transfer-order/order-form.vue
+15
-11
student.vue
src/pages/school/student.vue
+4
-0
No files found.
src/components/school/student/reserveclass-form.vue
View file @
ca238877
...
...
@@ -24,13 +24,8 @@
</div>
<div
class=
"row studentDate"
>
<q-input
style=
"width:257px;"
v-model=
"addMsg.Demand"
placeholder=
"试听需求"
filled
type=
"textarea"
/>
<UeEditor
v-model=
"addMsg.Demand"
class=
"q-pb-sm"
placeholder=
"试听需求"
:config=
"config"
></UeEditor>
</div>
<div
class=
"row wrap justify-end q-pr-lg"
style=
"margin-bottom:10px;"
>
...
...
@@ -52,11 +47,11 @@
GetTrialLessonList
}
from
"../../../api/school/index"
;
// import auditionForm from "../../schedul/audition-form";
import
UeEditor
from
"../../editor/UeEditor"
;
export
default
{
components
:
{
// auditionForm,
UeEditor
},
props
:
{
saveObj
:
{
...
...
@@ -66,6 +61,10 @@
},
data
()
{
return
{
config
:
{
initialFrameWidth
:
null
,
initialFrameHeight
:
90
},
isShowReserve
:
false
,
addMsg
:
{
Id
:
0
,
//编号
...
...
src/components/school/student/student-shiting.vue
View file @
ca238877
<
style
></
style
>
<
style
>
.divP
p
{
margin
:
0px
!important
;}
</
style
>
<
template
>
<div>
<!--
<div
class=
"row wrap"
>
...
...
@@ -32,10 +34,10 @@
跟班
</q-chip>
<div
v-if=
"tItem.ReservationDate&&tItem.ReservationDate.length>0&&tItem.ReservationDate!='0001-01-01T00:00:00'"
>
试听日期:
{{
timeFormatSeconds
(
tItem
.
ReservationDate
)
}}
试听日期:
{{
timeFormatSeconds
(
tItem
.
ReservationDate
)
}}
</div>
<div
v-if=
"tItem.Demand&&tItem.Demand.length>0"
>
试听需求:
{{
tItem
.
Demand
}}
<span
style=
"float:left;"
>
试听需求:
</span><div
v-html=
"tItem.Demand"
class=
"divP"
></div>
</div>
<div>
预约时间:
{{
tItem
.
ClassDateStr
}}
{{
tItem
.
ClassTime
}}
...
...
@@ -58,7 +60,7 @@
</div>
<div
style=
"margin-top:10px;width:150px;"
class=
"visit_delete text-negative"
>
<span
@
click=
"DeleteVisitorReserve(tItem.Id)"
style=
"margin-right:10px;"
>
删除
</span>
<span
@
click=
"DeleteVisitorReserve(tItem.Id)"
style=
"margin-right:10px;"
>
删除
</span>
<span
v-if=
"tItem.ReserveClassId>0"
style=
"margin-right:10px;"
@
click=
"fabkuiMsg.IsShow=true,fabkuiMsg.Id=tItem.Id,fabkuiMsg.Feedback=tItem.Feedback"
>
反馈
</span>
<span
v-if=
"tItem.ReserveClassId==0"
@
click=
"ShitingKaiKe(tItem)"
>
试听课开课
</span>
</div>
...
...
@@ -87,11 +89,58 @@
<el-button
type=
"primary"
@
click=
"saveFankuiForm()"
>
确 定
</el-button>
</div>
</el-dialog>
<el-dialog
title=
"试听开课"
:visible
.
sync=
"VisitorReserveClassMsg.IsShow"
width=
"30%"
@
close=
"closeShitingKaiKe()"
>
<audition
:VisitorReserveClassMsg=
"VisitorReserveClassMsg"
@
close=
"closeShitingKaiKe()"
@
success=
"SetVisitorReserveClass"
></audition>
</el-dialog>
<el-dialog
title=
"试听开课"
:visible
.
sync=
"VisitorReserveClassMsg.IsShow"
width=
"30%"
>
<div
class=
"row wrap"
>
<div
style=
"width:100%;margin-bottom:15px;"
>
试听时间:
<span
style=
"color:red;"
>
{{timeFormatSeconds(VisitorReserveClassMsg.ReservationDate)}}
</span></div>
<div
style=
"width:100%;margin-bottom:15px;"
>
试听需求:
<span
style=
"color:red;"
>
{{VisitorReserveClassMsg.Demand}}
</span></div>
</div>
<div
class=
"row studentDate"
>
<q-field
filled
class=
"col-6 q-pb-lg q-pr-lg"
dense
>
<
template
v-slot:control
>
<el-date-picker
v-model=
"VisitorReserveClassMsg.ClassDate"
ref=
"ClassDate"
:rules=
"[val => !!val || '请选择预约日期']"
style=
"width:225px"
size=
"mini"
type=
"date"
placeholder=
"预约日期"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</
template
>
</q-field>
<div
class=
"col-6 q-pr-lg Student_Date "
>
<q-field
filled
class=
"q-pb-lg"
dense
>
<
template
v-slot:control
>
<el-time-select
v-model=
"VisitorReserveClassMsg.ClassTime"
size=
"mini"
ref=
"ClassTime"
style=
"width:50%"
:picker-options=
"
{
start: '09:00',
step: '00:15',
end: '21:00',
maxTime: VisitorReserveClassMsg.EndTime
}" placeholder="预约开始时间">
</el-time-select>
<el-time-select
v-model=
"VisitorReserveClassMsg.EndTime"
size=
"mini"
dense
ref=
"EndTime"
style=
"width:50%"
:picker-options=
"
{
start: '09:00',
step: '00:15',
end: '21:00',
minTime: VisitorReserveClassMsg.ClassTime
}" placeholder="预约结束时间">
</el-time-select>
</
template
>
</q-field>
</div>
</div>
<div
class=
"row wrap"
>
<q-select
filled
stack-label
option-value=
"TId"
option-label=
"TeacherName"
v-model=
"VisitorReserveClassMsg.TeacherId"
ref=
"TeacherId"
:options=
"TeacherList"
label=
"选择教师"
dense
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
stack-label
option-value=
"RoomId"
dense
option-label=
"RoomName"
v-model=
"VisitorReserveClassMsg.ClassRoomId"
ref=
"ClassRoomId"
:options=
"ClassRoomList"
label=
"关联教室"
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
stack-label
option-value=
"Id"
dense
option-label=
"LessonName"
v-model=
"VisitorReserveClassMsg.TrialLessonId"
:options=
"TrialList"
label=
"试听课程"
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"closeShitingKaiKe()"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"SetVisitorReserveClass()"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
...
...
@@ -110,8 +159,7 @@
}
from
"../../../api/school/index"
;
import
reserveclassForm
from
"./reserveclass-form"
;
import
reserveclasskaikeform
from
"./reserveclasskaikeform"
;
import
audition
from
"../../../pages/h5page/audition"
;
export
default
{
meta
:
{
title
:
""
...
...
@@ -119,8 +167,7 @@
components
:
{
reserveclassForm
,
reserveclasskaikeform
,
UeEditor
,
audition
UeEditor
},
props
:
{
saveObj
:
{
...
...
@@ -205,17 +252,60 @@
if
(
seconds
<
10
)
seconds
=
'0'
+
seconds
;
timeStr
+=
' '
+
hours
+
':'
+
min
+
':'
+
seconds
;
}
timeStr
=
year
+
'-'
+
month
+
'-'
+
day
+
timeStr
;
return
timeStr
;
},
//保存
SetVisitorReserveClass
()
{
this
.
$emit
(
"success"
);
this
.
closeShitingKaiKe
();
this
.
getList
();
if
(
this
.
VisitorReserveClassMsg
.
ClassDate
==
""
)
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
"请选择预约日期!"
});
return
;
}
if
(
this
.
VisitorReserveClassMsg
.
ClassTime
==
""
)
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
"请选择预约开始时间!"
});
return
;
}
if
(
this
.
VisitorReserveClassMsg
.
EndTime
==
""
)
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
"请选择预约结束时间!"
});
return
;
}
SetVisitorReserveClass
(
this
.
VisitorReserveClassMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
res
.
Message
,
position
:
"top"
});
this
.
$emit
(
"success"
);
}
else
{
this
.
$q
.
notify
({
type
:
"negative"
,
position
:
"top"
,
timeout
:
2000
,
message
:
res
.
Message
});
}
this
.
closeShitingKaiKe
();
this
.
getList
();
});
},
closeShitingKaiKe
(){
this
.
VisitorReserveClassMsg
.
Id
=
0
;
...
...
@@ -234,7 +324,6 @@ return timeStr;
this
.
VisitorReserveClassMsg
.
ClassPlanId
=
0
;
this
.
VisitorReserveClassMsg
.
Demand
=
""
;
this
.
VisitorReserveClassMsg
.
IsShow
=
false
;
this
.
$forceUpdate
()
},
//试听课开课
ShitingKaiKe
(
item
){
...
...
src/components/school/student/transfer-order.vue
View file @
ca238877
...
...
@@ -82,10 +82,11 @@
<q-card-actions
align=
"right"
class=
"bg-white q-mx-md "
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
style=
"font-weight:400 !important"
v-close-popup
/>
<q-btn
@
click=
"$refs.stepper.previous()"
color=
"primary"
label=
"上一步"
v-if=
"step > 1"
/>
<
template
v-if=
"mode == 3 && step == 2"
>
<
!-- <
template v-if="mode == 3 && step == 2">
<q-btn label="保存" color="primary" @click="saveCourseForm" />
</
template
>
<
template
v-else
>
</template>
<template v-else>-->
<
template
>
<q-btn
@
click=
"next"
color=
"primary"
label=
"下一步"
v-if=
"step
<
3
"
/>
<q-btn
label=
"保存"
color=
"primary"
:loading=
"loading1"
@
click=
"saveOrderForm"
v-if=
"step == 3"
/>
</
template
>
...
...
@@ -334,7 +335,7 @@ export default {
return
;
}
if
(
this
.
mode
==
2
&&
(
this
.
mode
==
2
||
this
.
mode
==
3
)
&&
(
!
this
.
saveObj
.
ClassId
||
this
.
saveObj
.
ClassId
==
0
)
)
{
this
.
$q
.
notify
({
...
...
src/components/school/student/transfer-order/order-form.vue
View file @
ca238877
...
...
@@ -102,7 +102,7 @@
:dense=
"false"
type=
"number"
:min=
"1"
@
input=
"totalCourseFee()"
@
input=
"totalCourseFee(
1
)"
v-model=
"item.TotalClassHours"
class=
"col-6 q-py-sm"
label=
"总课时数"
...
...
@@ -114,7 +114,7 @@
:dense=
"false"
type=
"number"
:min=
"0"
@
input=
"totalCourseFee()"
@
input=
"totalCourseFee(
0
)"
v-model=
"item.TextbookFee"
class=
"col-6 q-py-sm"
label=
"课件费"
...
...
@@ -125,7 +125,7 @@
:dense=
"false"
type=
"number"
:min=
"0"
@
input=
"totalCourseFee()"
@
input=
"totalCourseFee(
0
)"
v-model=
"item.CoursewareFee"
class=
"col-6 q-py-sm"
label=
"教材费"
...
...
@@ -431,7 +431,7 @@
:dense=
"false"
type=
"number"
:min=
"1"
@
input=
"oneTotalCourseFee()"
@
input=
"oneTotalCourseFee(
1
)"
v-model=
"OrderMsg.TotalClassHours"
class=
"col-6 q-py-sm"
label=
"总课时数"
...
...
@@ -443,7 +443,7 @@
:dense=
"false"
type=
"number"
:min=
"0"
@
input=
"oneTotalCourseFee()"
@
input=
"oneTotalCourseFee(
0
)"
v-model=
"OrderMsg.TextbookFee"
class=
"col-6 q-py-sm"
label=
"课件费"
...
...
@@ -454,7 +454,7 @@
:dense=
"false"
type=
"number"
:min=
"0"
@
input=
"oneTotalCourseFee()"
@
input=
"oneTotalCourseFee(
0
)"
v-model=
"OrderMsg.CoursewareFee"
class=
"col-6 q-py-sm"
label=
"教材费"
...
...
@@ -899,7 +899,7 @@ export default {
}
this.courseInformationList.push(dataObj)
});
this.totalCourseFee()
this.totalCourseFee(
1
)
}
...
...
@@ -907,14 +907,17 @@ export default {
methods: {
//单个课程计算
oneTotalCourseFee(){
oneTotalCourseFee(
type
){
if(this.OrderMsg.Unit_PriceType==2){
if(type==1){
this.OrderMsg.TextbookFee=Number((this.OrderMsg.TotalClassHours*this.OrderMsg.Unit_Price*this.OrderMsg.GuestNum)*(20/100)).toFixed(2);
}
this.OrderMsg.PreferPrice = this.OrderMsg.GuestNum*this.OrderMsg.Unit_Price*this.OrderMsg.TotalClassHours+Number(this.OrderMsg.TextbookFee)+Number(this.OrderMsg.CoursewareFee)
}
},
// 多个课程计算
totalCourseFee(){
totalCourseFee(
type
){
this.courseInformationList.forEach((item)=>{
if(this.stuData.StuList[0].IsRenewGuest==1){
item.DiscountMoney = this.accAdd(
...
...
@@ -928,8 +931,9 @@ export default {
item.PreferPrice = item.GuestNum*item.Unit_Price
}
else if(item.Unit_PriceType==2){
item.TextbookFee=Number((item.TotalClassHours*item.Unit_Price*item.GuestNum)*(20/100)).toFixed(2);
if(type==1){
item.TextbookFee=Number((item.TotalClassHours*item.Unit_Price*item.GuestNum)*(20/100)).toFixed(2);
}
item.PreferPrice = (item.GuestNum*item.Unit_Price*item.TotalClassHours)+Number(item.TextbookFee)+Number(item.CoursewareFee)
}
...
...
src/pages/school/student.vue
View file @
ca238877
...
...
@@ -232,6 +232,10 @@
if
(
this
.
$route
.
query
.
CategoryId
)
{
this
.
msg
.
CategoryId
=
this
.
$route
.
query
.
CategoryId
;
}
if
(
this
.
$route
.
query
.
StuName
)
{
this
.
msg
.
StuName
=
this
.
$route
.
query
.
StuName
;
}
this
.
$route
.
query
.
OrderId
;
this
.
getStatusList
();
this
.
getStudent
()
},
...
...
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