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
0a210e4d
Commit
0a210e4d
authored
Jul 22, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
918c2e7a
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1587 additions
and
563 deletions
+1587
-563
index.js
src/api/stuMan/index.js
+44
-0
addEvent-form.vue
src/components/stuMan/addEvent-form.vue
+242
-0
eventRecord.vue
src/components/stuMan/eventRecord.vue
+228
-0
makeUpHours.vue
src/components/stuMan/makeUpHours.vue
+256
-0
moreQuery.vue
src/components/stuMan/moreQuery.vue
+134
-127
orderCompleteStatistics.vue
src/pages/financial/orderCompleteStatistics.vue
+378
-326
stuList.vue
src/pages/stuMan/stuList.vue
+305
-110
No files found.
src/api/stuMan/index.js
View file @
0a210e4d
...
@@ -27,4 +27,48 @@ export function getStuList(data) {
...
@@ -27,4 +27,48 @@ export function getStuList(data) {
method
:
'post'
,
method
:
'post'
,
data
data
})
})
}
//学管 获取预警枚举
export
function
getEarlyWarningEnum
(
data
)
{
return
request
({
url
:
'/Stu/GetGuestClassHoursEarlyWarningEnumList'
,
method
:
'post'
,
data
})
}
//学管 获取类型枚举
export
function
getTypeEnum
(
data
)
{
return
request
({
url
:
'/Stu/GetOrderJoinTypeEnumEnumList'
,
method
:
'post'
,
data
})
}
//学管 添加事件
export
function
addEvent
(
data
)
{
return
request
({
url
:
'/Stu/GetSetStudentEventLog'
,
method
:
'post'
,
data
})
}
//学管 获取可补课课时,缺勤次数,请假次数分页信息
export
function
getClassCheckPageList
(
data
)
{
return
request
({
url
:
'/Stu/GetClassCheckPageList'
,
method
:
'post'
,
data
})
}
//学管 获取事件记录分页信息
export
function
getEventLogPageList
(
data
)
{
return
request
({
url
:
'/Stu/GetStudentEventLogPageList'
,
method
:
'post'
,
data
})
}
}
\ No newline at end of file
src/components/stuMan/addEvent-form.vue
0 → 100644
View file @
0a210e4d
<
template
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 800px;max-width:900px;"
>
<q-card-section>
<div
class=
"text-h6"
v-if=
"this.msg.Id===0"
>
添加事件
</div>
<div
class=
"text-h6"
v-if=
"this.msg.Id>0"
>
修改事件
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none"
>
<div
class=
"row "
>
<div
class=
"col-6 q-pr-lg"
>
<q-input
filled
v-model=
"msg.Title"
label=
"标题"
/>
</div>
<div
class=
"col-6"
>
<q-select
@
input=
""
standout=
"bg-primary text-white"
v-model=
"msg.EventType"
class=
"col-6"
option-label=
"Name"
option-value=
"Id"
:options=
"typeOpts"
emit-value
map-options
label=
"类型"
/>
</div>
</div>
<q-input
filled
type=
"textarea"
:rows=
"3"
style=
"margin-top:20px;"
stack-label
maxlength=
"2000"
v-model=
"msg.EventContent"
:dense=
"false"
class=
"col-12 q-pb-lg"
label=
"内容"
/>
<div
class=
"row wrap"
style=
"padding-top:20px"
>
<div
style=
"display:flex;flex-wrap: wrap;"
>
<div
v-if=
"msg.EventPicList&&msg.EventPicList.length>0"
v-for=
"(item,index) in msg.EventPicList"
>
<div
class=
"ItemImgDiv"
>
<q-img
:src=
"item"
spinner-color=
"white"
style=
"height: 100%;height:100%"
/>
<q-btn
size=
"7px"
@
click=
"deleteItemImg(index)"
style=
"position:absolute;right:-5px;top:-5px;"
round
color=
"red"
icon=
"iconfont icon-guanbi1"
/>
</div>
</div>
<el-upload
class=
"avatar-uploader addDutyMain"
action=
""
:before-upload=
"uploadFile"
:show-file-list=
"false"
>
<i
class=
"el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
</div>
</div>
</q-card-section>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
style=
"font-weight:400 !important"
@
click=
"closeSaveForm"
/>
<q-btn
label=
"立即提交"
color=
"accent q-px-md"
style=
"font-weight:400 !important"
:loading=
"saveLoading"
@
click=
"save"
/>
</q-card-actions>
</q-card>
</q-dialog>
</
template
>
<
script
>
import
{
UploadSelfFile
,
}
from
'../../api/common/common'
import
{
addEvent
}
from
'../../api/stuMan/index.js'
export
default
{
props
:
{
setObj
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
persistent
:
true
,
saveLoading
:
false
,
msg
:
{
Id
:
0
,
StuId
:
0
,
School_Id
:
0
,
EventType
:
2
,
EventContent
:
""
,
Title
:
""
,
EventPicList
:
[]
},
typeOpts
:
[{
Name
:
"处分"
,
Id
:
1
,
},
{
Name
:
"奖励"
,
Id
:
2
,
},
]
}
},
mounted
()
{
console
.
log
(
85
,
this
.
setObj
)
if
(
this
.
setObj
)
{
if
(
this
.
setObj
.
Student_Id
)
{
this
.
msg
.
StuId
=
this
.
setObj
.
Student_Id
}
if
(
this
.
setObj
.
School_Id
)
{
this
.
msg
.
School_Id
=
this
.
setObj
.
School_Id
}
if
(
this
.
setObj
.
Id
>
0
)
{
this
.
msg
.
Id
=
this
.
setObj
.
Id
if
(
this
.
setObj
.
EventType
)
{
this
.
msg
.
EventType
=
this
.
setObj
.
EventType
}
if
(
this
.
setObj
.
Title
)
{
this
.
msg
.
Title
=
this
.
setObj
.
Title
}
if
(
this
.
setObj
.
EventContent
)
{
this
.
msg
.
EventContent
=
this
.
setObj
.
EventContent
}
if
(
this
.
setObj
.
EventPicList
)
{
this
.
msg
.
EventPicList
=
this
.
setObj
.
EventPicList
}
}
else
{
this
.
msg
.
Id
=
0
this
.
msg
.
EventType
=
2
this
.
msg
.
Title
=
""
this
.
msg
.
EventContent
=
""
this
.
msg
.
EventPicList
=
[]
}
}
else
{
this
.
msg
.
Id
=
0
this
.
msg
.
EventType
=
2
this
.
msg
.
Title
=
""
this
.
msg
.
EventContent
=
""
this
.
msg
.
EventPicList
=
[]
}
console
.
log
(
109
,
this
.
msg
)
this
.
$forceUpdate
();
},
methods
:
{
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
persistent
=
false
},
save
()
{
console
.
log
(
89
,
this
.
msg
)
this
.
saveLoading
=
true
addEvent
(
this
.
msg
).
then
(
res
=>
{
this
.
saveLoading
=
false
if
(
res
.
Code
===
1
)
{
this
.
$message
.
success
(
"操作成功"
)
this
.
$emit
(
"success"
)
this
.
persistent
=
false
}
else
{
this
.
$message
.
error
(
res
.
Message
)
}
}).
catch
(
err
=>
{
this
.
saveLoading
=
false
})
},
uploadFile
(
files
)
{
UploadSelfFile
(
'studentIcon'
,
files
,
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
msg
.
EventPicList
.
push
(
res
.
FileUrl
);
}
})
},
//删除图片
deleteItemImg
(
index
)
{
this
.
msg
.
EventPicList
.
splice
(
index
,
1
);
}
},
}
</
script
>
<
style
>
.avatar-uploader
.el-upload
{
border-radius
:
6px
;
cursor
:
pointer
;
width
:
100%
;
height
:
100%
;
color
:
#8c939d
;
position
:
relative
;
overflow
:
hidden
;
}
.addDutyMain
{
display
:
inline-block
;
width
:
118px
;
height
:
118px
;
font-size
:
70px
;
border
:
1px
dashed
#d9d9d9
;
line-height
:
120px
;
}
.ItemImgDiv
{
width
:
118px
;
height
:
118px
;
position
:
relative
;
margin
:
0
10px
10px
0
;
display
:
inline-block
;
}
._delete_img
{
position
:
absolute
;
top
:
0px
;
height
:
82px
;
width
:
143px
;
line-height
:
34px
;
text-align
:
center
;
background-color
:
rgba
(
2
,
2
,
2
,
0.6
);
display
:
inherit
;
opacity
:
0
;
transition
:
all
linear
.5s
}
._delete_img
i
.iconfont
{
display
:
inline-block
;
width
:
32px
;
height
:
32px
;
border-radius
:
50%
;
color
:
#E95252
!important
;
background-color
:
rgba
(
251
,
251
,
251
,
0.9
);
margin-top
:
26px
;
}
._upload_box
ul
li
{
float
:
left
;
height
:
82px
;
width
:
143px
;
padding
:
0px
20px
20px
0
;
text-align
:
center
;
position
:
relative
;
cursor
:
pointer
;
margin-right
:
10px
;
}
._upload_box
ul
li
img
{
height
:
82px
;
width
:
143px
;
}
._upload_box
ul
li
:hover
._delete_img
{
opacity
:
1
;
}
._upload_tips
{
font-size
:
12px
;
position
:
absolute
;
top
:
71%
;
width
:
100%
;
left
:
0
;
text-align
:
center
;
color
:
#949494
;
}
</
style
>
src/components/stuMan/eventRecord.vue
0 → 100644
View file @
0a210e4d
<
template
>
<!-- 可补课时 -->
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 900px;max-width:900px;"
>
<q-card-section>
<div
class=
"text-h6"
>
事件记录
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table "
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<!--
<div
class=
"col-2 q-table__title"
>
可补课课时
</div>
-->
</
template
>
<
template
v-slot:body-cell-EventType=
"props"
>
<q-td
:props=
"props"
>
<div
v-if=
"props.row.EventType===1"
style=
"color:#ff0000"
>
处分
</div>
<div
v-if=
"props.row.EventType===2"
style=
"color:#00ff00"
>
奖励
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<div>
<q-btn
size=
"xs"
color=
"accent"
style=
"font-weight:400"
label=
"修改"
@
click=
"modify(props.row)"
/>
</div>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
</q-card-section>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
style=
"font-weight:400 !important"
@
click=
"closeSaveForm"
/>
<!-- <q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="save" /> -->
</q-card-actions>
</q-card>
</q-dialog>
</template>
<
script
>
import
{
getEventLogPageList
}
from
'../../api/stuMan/index.js'
export
default
{
props
:
{
setObj
:
{
type
:
Object
,
}
},
data
()
{
return
{
persistent
:
true
,
loading
:
false
,
pageCount
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
StuId
:
0
,
EventType
:
0
},
data
:
[],
columns
:
[
{
name
:
"Title"
,
label
:
"标题"
,
align
:
"left"
,
field
:
"Title"
,
},
{
name
:
"EventType"
,
label
:
"类型"
,
align
:
"left"
,
field
:
"EventType"
},
{
name
:
"EventContent"
,
label
:
"内容"
,
align
:
"left"
,
field
:
"EventContent"
,
required
:
true
,
},
{
name
:
"CreateByName"
,
label
:
"创建人"
,
align
:
"left"
,
field
:
"CreateByName"
,
},
{
name
:
"CreateTime"
,
label
:
"创建时间"
,
align
:
"left"
,
field
:
"CreateTime"
,
},
{
name
:
"optioned"
,
label
:
"操作"
,
align
:
"left"
,
},
]
}
},
mounted
()
{
if
(
this
.
setObj
)
{
this
.
msg
.
StuId
=
this
.
setObj
.
Student_Id
}
this
.
getList
();
},
methods
:
{
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
persistent
=
false
},
getList
()
{
getEventLogPageList
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
===
1
)
{
this
.
data
=
res
.
Data
.
PageData
this
.
pageCount
=
res
.
Data
.
PageCount
}
})
},
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
},
//修改
modify
(
item
){
this
.
persistent
=
false
this
.
$emit
(
'modify'
,
item
)
}
},
}
</
script
>
<
style
>
.avatar-uploader
.el-upload
{
border-radius
:
6px
;
cursor
:
pointer
;
width
:
100%
;
height
:
100%
;
color
:
#8c939d
;
position
:
relative
;
overflow
:
hidden
;
}
.addDutyMain
{
display
:
inline-block
;
width
:
118px
;
height
:
118px
;
font-size
:
70px
;
border
:
1px
dashed
#d9d9d9
;
line-height
:
120px
;
}
.ItemImgDiv
{
width
:
118px
;
height
:
118px
;
position
:
relative
;
margin
:
0
10px
10px
0
;
display
:
inline-block
;
}
._delete_img
{
position
:
absolute
;
top
:
0px
;
height
:
82px
;
width
:
143px
;
line-height
:
34px
;
text-align
:
center
;
background-color
:
rgba
(
2
,
2
,
2
,
0.6
);
display
:
inherit
;
opacity
:
0
;
transition
:
all
linear
.5s
}
._delete_img
i
.iconfont
{
display
:
inline-block
;
width
:
32px
;
height
:
32px
;
border-radius
:
50%
;
color
:
#E95252
!important
;
background-color
:
rgba
(
251
,
251
,
251
,
0.9
);
margin-top
:
26px
;
}
._upload_box
ul
li
{
float
:
left
;
height
:
82px
;
width
:
143px
;
padding
:
0px
20px
20px
0
;
text-align
:
center
;
position
:
relative
;
cursor
:
pointer
;
margin-right
:
10px
;
}
._upload_box
ul
li
img
{
height
:
82px
;
width
:
143px
;
}
._upload_box
ul
li
:hover
._delete_img
{
opacity
:
1
;
}
._upload_tips
{
font-size
:
12px
;
position
:
absolute
;
top
:
71%
;
width
:
100%
;
left
:
0
;
text-align
:
center
;
color
:
#949494
;
}
</
style
>
src/components/stuMan/makeUpHours.vue
0 → 100644
View file @
0a210e4d
<
template
>
<!-- 可补课时 -->
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 900px;max-width:900px;"
>
<q-card-section>
<div
class=
"text-h6"
v-if=
"type==1"
>
可补课课时
</div>
<div
class=
"text-h6"
v-if=
"type==2"
>
缺勤次数
</div>
<div
class=
"text-h6"
v-if=
"type==3"
>
请假
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table "
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<!--
<div
class=
"col-2 q-table__title"
>
可补课课时
</div>
-->
</
template
>
<!-- <template v-slot:body-cell-ContractNo="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="seeContract(props.row)">
{{props.row.ContractNo}}
</div>
</q-td>
</template> -->
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
</q-card-section>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
style=
"font-weight:400 !important"
@
click=
"closeSaveForm"
/>
<!-- <q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="save" /> -->
</q-card-actions>
</q-card>
</q-dialog>
</template>
<
script
>
import
{
getClassCheckPageList
}
from
'../../api/stuMan/index.js'
export
default
{
props
:
{
type
:
{
type
:
Number
,
default
:
1
},
setObj
:
{
type
:
Object
,
}
},
data
()
{
return
{
persistent
:
true
,
loading
:
false
,
pageCount
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
OrderGuestId
:
0
,
CheckStatus
:
1
,
MakeUpStatus
:
2
,
},
data
:
[],
columns
:
[
{
name
:
"GuestName"
,
label
:
"学生名称"
,
align
:
"left"
,
field
:
"GuestName"
,
},
{
name
:
"ClassName"
,
label
:
"班级名称"
,
align
:
"left"
,
field
:
"ClassName"
,
required
:
true
,
},
{
name
:
"ClassNo"
,
label
:
"班号"
,
align
:
"left"
,
field
:
"ClassNo"
},
{
name
:
"CourseName"
,
label
:
"课程"
,
align
:
"left"
,
field
:
"CourseName"
,
},
{
name
:
"RoomName"
,
label
:
"教室"
,
align
:
"left"
,
field
:
"RoomName"
,
},
{
name
:
"TeacherName"
,
label
:
"教师"
,
align
:
"left"
,
field
:
"TeacherName"
,
},
{
name
:
"ClassDate"
,
label
:
"上课时间"
,
align
:
"left"
,
field
:
"ClassDate"
,
},
{
name
:
"TimeBucket"
,
label
:
"上课时间段"
,
align
:
"left"
,
field
:
"TimeBucket"
,
},
{
name
:
"CreateTime"
,
label
:
"签到时间"
,
align
:
"left"
,
field
:
"CreateTime"
,
},
]
}
},
mounted
()
{
if
(
this
.
setObj
)
{
this
.
msg
.
OrderGuestId
=
this
.
setObj
.
Student_Id
}
if
(
this
.
type
===
1
)
{
//可补课时
this
.
msg
.
CheckStatus
=
1
this
.
msg
.
MakeUpStatus
=
2
}
else
if
(
this
.
type
===
2
)
{
// 缺勤
this
.
msg
.
CheckStatus
=
1
delete
this
.
msg
.
MakeUpStatus
}
else
if
(
this
.
type
===
3
)
{
// 请假
this
.
msg
.
CheckStatus
=
2
delete
this
.
msg
.
MakeUpStatus
}
this
.
getList
();
},
methods
:
{
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
persistent
=
false
},
getList
()
{
getClassCheckPageList
(
this
.
msg
).
then
(
res
=>
{
console
.
log
(
83
,
res
)
if
(
res
.
Code
===
1
)
{
this
.
data
=
res
.
Data
.
PageData
this
.
pageCount
=
res
.
Data
.
PageCount
}
})
},
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
},
},
}
</
script
>
<
style
>
.avatar-uploader
.el-upload
{
border-radius
:
6px
;
cursor
:
pointer
;
width
:
100%
;
height
:
100%
;
color
:
#8c939d
;
position
:
relative
;
overflow
:
hidden
;
}
.addDutyMain
{
display
:
inline-block
;
width
:
118px
;
height
:
118px
;
font-size
:
70px
;
border
:
1px
dashed
#d9d9d9
;
line-height
:
120px
;
}
.ItemImgDiv
{
width
:
118px
;
height
:
118px
;
position
:
relative
;
margin
:
0
10px
10px
0
;
display
:
inline-block
;
}
._delete_img
{
position
:
absolute
;
top
:
0px
;
height
:
82px
;
width
:
143px
;
line-height
:
34px
;
text-align
:
center
;
background-color
:
rgba
(
2
,
2
,
2
,
0.6
);
display
:
inherit
;
opacity
:
0
;
transition
:
all
linear
.5s
}
._delete_img
i
.iconfont
{
display
:
inline-block
;
width
:
32px
;
height
:
32px
;
border-radius
:
50%
;
color
:
#E95252
!important
;
background-color
:
rgba
(
251
,
251
,
251
,
0.9
);
margin-top
:
26px
;
}
._upload_box
ul
li
{
float
:
left
;
height
:
82px
;
width
:
143px
;
padding
:
0px
20px
20px
0
;
text-align
:
center
;
position
:
relative
;
cursor
:
pointer
;
margin-right
:
10px
;
}
._upload_box
ul
li
img
{
height
:
82px
;
width
:
143px
;
}
._upload_box
ul
li
:hover
._delete_img
{
opacity
:
1
;
}
._upload_tips
{
font-size
:
12px
;
position
:
absolute
;
top
:
71%
;
width
:
100%
;
left
:
0
;
text-align
:
center
;
color
:
#949494
;
}
</
style
>
src/components/stuMan/moreQuery.vue
View file @
0a210e4d
...
@@ -18,16 +18,16 @@
...
@@ -18,16 +18,16 @@
<div
class=
"text-h6"
>
高级查询
</div>
<div
class=
"text-h6"
>
高级查询
</div>
</q-card-section>
</q-card-section>
<div
class=
"row q-mb-md"
>
<div
class=
"row q-mb-md"
>
<q-input
clearable
standout=
"bg-primary text-white"
class=
"col-12"
v-model=
"msg.
classId
"
label=
"班号"
<q-input
clearable
standout=
"bg-primary text-white"
class=
"col-12"
v-model=
"msg.
ClassNo
"
label=
"班号"
maxlength=
"20"
/>
maxlength=
"20"
/>
</div>
</div>
<div
class=
"row q-mb-md"
>
<div
class=
"row q-mb-md"
>
<q-input
clearable
standout=
"bg-primary text-white"
class=
"col-12"
v-model=
"msg.
o
rderId"
label=
"订单号"
<q-input
clearable
standout=
"bg-primary text-white"
class=
"col-12"
v-model=
"msg.
O
rderId"
label=
"订单号"
maxlength=
"20"
/>
maxlength=
"20"
/>
</div>
</div>
<div
class=
"row q-mb-md"
>
<div
class=
"row q-mb-md"
>
<q-select
standout=
"bg-primary text-white"
class=
"col-12"
option-label=
"EmployeeName"
option-value=
"Id"
<q-select
standout=
"bg-primary text-white"
class=
"col-12"
option-label=
"EmployeeName"
option-value=
"Id"
v-model=
"msg.
employee
"
:options=
"EmployeeList"
emit-value
use-input
map-options
label=
"业务员"
clearable
v-model=
"msg.
EnterID
"
:options=
"EmployeeList"
emit-value
use-input
map-options
label=
"业务员"
clearable
@
filter=
"filterEmployee"
>
@
filter=
"filterEmployee"
>
<template
v-slot:no-option
>
<template
v-slot:no-option
>
<q-item>
<q-item>
...
@@ -41,26 +41,27 @@
...
@@ -41,26 +41,27 @@
<div
class=
"Sysuser_Date row q-mb-md"
>
<div
class=
"Sysuser_Date row q-mb-md"
>
<q-field
filled
class=
"col-12"
>
<q-field
filled
class=
"col-12"
>
<
template
v-slot:control
>
<
template
v-slot:control
>
<el-date-picker
v-model=
"msg.SelectStartTimeStr"
type=
"date"
placeholder=
"下单时间"
value-format=
"yyyy-MM-dd
"
<el-date-picker
v-model=
"dateList"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;
"
@
change=
"
"
>
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期
"
>
</el-date-picker>
</el-date-picker>
</
template
>
</
template
>
</q-field>
</q-field>
</div>
</div>
<div
class=
"row q-mb-md"
>
<div
class=
"row q-mb-md"
>
<q-select
standout=
"bg-primary text-white"
v-model=
"msg.
status"
class=
"col-12"
:options=
"statusOpts"
option-label=
"name"
option-value=
"Id
"
<q-select
standout=
"bg-primary text-white"
v-model=
"msg.
EffectStatus"
class=
"col-12"
:options=
"statusOpts
"
emit-value
map-options
label=
"状态"
/>
option-label=
"name"
option-value=
"Id"
emit-value
map-options
label=
"状态"
/>
</div>
</div>
<div
class=
"row q-mb-md"
>
<div
class=
"row q-mb-md"
>
<q-select
standout=
"bg-primary text-white"
v-model=
"msg.
type"
class=
"col-12"
:options=
"typeOpts"
option-label=
"name"
option-value=
"Id
"
<q-select
standout=
"bg-primary text-white"
v-model=
"msg.
JoinType"
class=
"col-12"
:options=
"typeEnum
"
emit-value
map-options
label=
"类型"
/>
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"类型"
/>
</div>
</div>
<div
class=
"row q-mb-md"
>
<div
class=
"row q-mb-md"
>
<q-select
standout=
"bg-primary text-white"
v-model=
"msg.
warn"
class=
"col-12"
:options=
"warnOpts"
option-label=
"name"
option-value=
"Id
"
<q-select
standout=
"bg-primary text-white"
v-model=
"msg.
EarlyWarning"
class=
"col-12"
:options=
"warnEnum
"
emit-value
map-options
label=
"预警"
/>
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"预警"
/>
</div>
</div>
<q-card-section>
<q-card-section>
<q-btn
color=
"accent"
label=
"查询"
@
click=
"query"
style=
"float:right"
></q-btn>
<q-btn
color=
"accent"
label=
"查询"
@
click=
"query"
style=
"float:right"
></q-btn>
<q-btn
text-color=
"accent q-mr-md"
label=
"重置"
@
click=
"resetForm"
style=
"float:right"
></q-btn>
</q-card-section>
</q-card-section>
</q-card>
</q-card>
<div
class=
"dialog-out-close"
@
click=
"closeEditOrder"
<div
class=
"dialog-out-close"
@
click=
"closeEditOrder"
...
@@ -73,135 +74,99 @@
...
@@ -73,135 +74,99 @@
import
{
import
{
queryEmployee
queryEmployee
}
from
'../../api/users/user'
;
//获取员工
}
from
'../../api/users/user'
;
//获取员工
import
{
getClassDropDownList
}
from
'../../api/school/index'
;
//获取校区列表
export
default
{
export
default
{
name
:
"editOrder-form"
,
props
:
{
props
:
{
typeEnum
:
{
type
:
Array
},
warnEnum
:
{
type
:
Array
},
saveQuery
:
{
type
:
Object
,
default
:
null
}
},
},
data
()
{
data
()
{
return
{
return
{
showquery
:
true
,
showquery
:
true
,
statusOpts
:[
statusOpts
:
[{
{
name
:
"不限"
,
name
:
"未生效"
,
Id
:
""
Id
:
1
},
},
{
{
name
:
"未生效"
,
name
:
"正常"
,
Id
:
0
Id
:
2
},
},
{
{
name
:
"正常"
,
name
:
"休学"
,
Id
:
1
Id
:
3
},
},
{
{
name
:
"退学"
,
name
:
"完课"
,
Id
:
2
Id
:
4
},
},
{
],
name
:
"申请中"
,
typeOpts
:[
Id
:
3
{
},
name
:
"插班"
,
{
Id
:
1
name
:
"驳回申请"
,
},
Id
:
4
{
},
name
:
"转班"
,
{
Id
:
2
name
:
"停课"
,
},
Id
:
5
{
},
name
:
"分拆"
,
{
Id
:
3
name
:
"停课申请中"
,
},
Id
:
6
{
},
name
:
"正常"
,
{
Id
:
4
name
:
"完结的订单"
,
},
Id
:
7
},
{
name
:
"转班申请中"
,
Id
:
8
},
],
],
warnOpts
:[
{
name
:
"无"
,
Id
:
1
},
{
name
:
"不足5课时"
,
Id
:
2
},
{
name
:
"不足10课时"
,
Id
:
3
},
{
name
:
"不足15课时"
,
Id
:
4
},
{
name
:
"不足20课时"
,
Id
:
5
},
],
classList
:
[],
msg
:
{
msg
:
{
classId
:
1
,
ClassNo
:
""
,
orderId
:
"1"
,
OrderId
:
0
,
employee
:
0
,
EnterID
:
0
,
status
:
1
,
EffectStatus
:
""
,
type
:
1
,
JoinType
:
0
,
date
:
""
,
OrderTime
:
""
,
warn
:
1
,
EndOrderTime
:
""
,
EarlyWarning
:
0
,
chooseNum
:
0
,
//选中几项
},
},
EmployeeList
:
[],
//员工列表
EmployeeList
:
[],
//员工列表
AllemployeeList
:
[],
//所有员工列表
AllemployeeList
:
[],
//所有员工列表
CourseList
:
[],
//课程列表
dateList
:
[],
courseObj
:
{},
//选择的课程
Teacher_Id
:
0
,
ClassName
:
''
}
}
},
},
mounted
()
{
mounted
()
{
if
(
this
.
saveQuery
)
{
this
.
msg
.
ClassNo
=
this
.
saveQuery
.
ClassNo
this
.
msg
.
OrderId
=
this
.
saveQuery
.
OrderId
this
.
msg
.
EnterID
=
this
.
saveQuery
.
EnterID
this
.
msg
.
EffectStatus
=
this
.
saveQuery
.
EffectStatus
this
.
msg
.
JoinType
=
this
.
saveQuery
.
JoinType
this
.
msg
.
EarlyWarning
=
this
.
saveQuery
.
EarlyWarning
this
.
msg
.
ClassNo
=
this
.
saveQuery
.
ClassNo
if
(
this
.
saveQuery
.
OrderTime
){
this
.
dateList
[
0
]
=
this
.
saveQuery
.
OrderTime
}
if
(
this
.
saveQuery
.
EndOrderTime
){
this
.
dateList
[
1
]
=
this
.
saveQuery
.
EndOrderTime
}
this
.
$forceUpdate
()
}
this
.
getEmployee
();
this
.
getEmployee
();
},
},
methods
:
{
methods
:
{
//获取课程信息
getClassList
(
ClassId
)
{
this
.
OrderMsg
.
CourseId
=
''
;
this
.
CourseList
=
[];
let
val
=
this
.
classList
.
find
(
x
=>
x
.
ClassId
==
ClassId
);
if
(
val
)
{
this
.
Teacher_Id
=
val
.
Teacher_Id
;
this
.
ClassName
=
val
.
ClassName
;
}
var
qMsg
=
{
ClassId
:
ClassId
};
queryChaClassInfo
(
qMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
CourseList
=
res
.
Data
.
otherCourse
;
}
});
},
//获取班级列表
getClass
()
{
getClassDropDownList
({
IsAddDefault
:
0
,
IsQuerySurplus
:
1
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
let
tempArray
=
res
.
Data
;
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
ClassId
:
0
,
ClassName
:
"不限"
})
this
.
classList
=
tempArray
;
}
})
},
//筛选员工
//筛选员工
filterEmployee
(
val
,
update
)
{
filterEmployee
(
val
,
update
)
{
update
(()
=>
{
update
(()
=>
{
...
@@ -234,12 +199,54 @@
...
@@ -234,12 +199,54 @@
this
.
showquery
=
false
;
this
.
showquery
=
false
;
this
.
$emit
(
'close'
)
this
.
$emit
(
'close'
)
},
},
resetForm
()
{
this
.
msg
=
{
ClassNo
:
""
,
OrderId
:
0
,
EnterID
:
0
,
EffectStatus
:
""
,
JoinType
:
0
,
OrderTime
:
""
,
EndOrderTime
:
""
,
EarlyWarning
:
0
,
chooseNum
:
0
,
//选中几项
}
this
.
dateList
=
[]
},
query
()
{
query
()
{
this
.
msg
.
chooseNum
=
0
if
(
!
this
.
dateList
)
{
this
.
dateList
=
[]
}
if
(
this
.
dateList
.
length
>
0
)
{
this
.
msg
.
chooseNum
++
this
.
msg
.
OrderTime
=
this
.
dateList
[
0
]
this
.
msg
.
EndOrderTime
=
this
.
dateList
[
1
]
}
else
{
this
.
msg
.
OrderTime
=
""
this
.
msg
.
EndOrderTime
=
""
}
if
(
this
.
msg
.
ClassNo
)
{
this
.
msg
.
chooseNum
++
}
if
(
this
.
msg
.
OrderId
)
{
this
.
msg
.
chooseNum
++
}
if
(
this
.
msg
.
EnterID
)
{
this
.
msg
.
chooseNum
++
}
if
(
this
.
msg
.
EffectStatus
>=
0
&&
this
.
msg
.
EffectStatus
!==
""
)
{
this
.
msg
.
chooseNum
++
}
if
(
this
.
msg
.
JoinType
)
{
this
.
msg
.
chooseNum
++
}
if
(
this
.
msg
.
EarlyWarning
)
{
this
.
msg
.
chooseNum
++
}
this
.
showquery
=
false
;
this
.
showquery
=
false
;
this
.
$emit
(
"success"
,
this
.
msg
)
this
.
$emit
(
"success"
,
this
.
msg
)
}
}
}
}
}
}
</
script
>
</
script
>
\ No newline at end of file
src/pages/financial/orderCompleteStatistics.vue
View file @
0a210e4d
...
@@ -37,24 +37,31 @@
...
@@ -37,24 +37,31 @@
.column-cell-class-name-test-lan-s
.v-table-body-cell
{
.column-cell-class-name-test-lan-s
.v-table-body-cell
{
background-color
:
#9cf
;
background-color
:
#9cf
;
}
}
.color-red
{
color
:
red
;
.color-red
{
color
:
red
;
}
}
.color-green
{
color
:
green
;
.color-green
{
color
:
green
;
}
}
.color-black
{
color
:
black
!important
;
.color-black
{
color
:
black
!important
;
}
}
.border-b
{
.border-b
{
border-bottom
:
1px
solid
#999
;
border-bottom
:
1px
solid
#999
;
}
}
td
.border-b
:last-child
{
border
:
none
;
td
.border-b
:last-child
{
border
:
none
;
}
}
.orderCompleteStatistics
td
{
color
:
#000
;
.orderCompleteStatistics
td
{
color
:
#000
;
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"page_EasyReport My_table_tell page-body"
v-loading=
"AALloading"
>
<div
class=
"page_EasyReport My_table_tell page-body"
v-loading=
"AALloading"
>
...
@@ -82,7 +89,7 @@
...
@@ -82,7 +89,7 @@
</div>
</div>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"6"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"班级名称:"
>
<el-form-item
label=
"班级名称:"
>
<div
style=
"width:190px"
>
<div
style=
"width:190px"
>
<el-input
v-model=
"msg.ClassName"
placeholder=
"请输入内容"
filterable
></el-input>
<el-input
v-model=
"msg.ClassName"
placeholder=
"请输入内容"
filterable
></el-input>
...
@@ -94,13 +101,13 @@
...
@@ -94,13 +101,13 @@
<el-form-item
label=
"课程名称:"
>
<el-form-item
label=
"课程名称:"
>
<div
style=
"width:190px"
>
<div
style=
"width:190px"
>
<el-input
v-model=
"msg.CourseName"
placeholder=
"请输入内容"
filterable
></el-input>
<el-input
v-model=
"msg.CourseName"
placeholder=
"请输入内容"
filterable
></el-input>
</div>
</div>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"6"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"业务员:"
>
<el-form-item
label=
"业务员:"
>
<el-select
v-model=
"msg.CreateBy"
filterable
>
<el-select
v-model=
"msg.CreateBy"
filterable
>
<el-option
label=
"不限"
:value=
"0"
></el-option>
<el-option
label=
"不限"
:value=
"0"
></el-option>
<el-option
v-for=
"item in EmployeeList"
:label=
"item.EmployeeName"
:key=
"item.Id"
:value=
"item.Id"
>
<el-option
v-for=
"item in EmployeeList"
:label=
"item.EmployeeName"
:key=
"item.Id"
:value=
"item.Id"
>
{{
item
.
EmployeeName
}}
</el-option>
{{
item
.
EmployeeName
}}
</el-option>
...
@@ -114,27 +121,27 @@
...
@@ -114,27 +121,27 @@
</div>
</div>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"6"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"账户类型:"
>
<el-form-item
label=
"账户类型:"
>
<el-select
filterable
v-model=
'msg.AccountType'
>
<el-select
filterable
v-model=
'msg.AccountType'
>
<el-option
:value=
"0"
label=
"不限"
></el-option>
<el-option
:value=
"0"
label=
"不限"
></el-option>
<el-option
v-for=
'item in AccList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
<el-option
v-for=
'item in AccList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"6"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"交易方式:"
>
<el-form-item
label=
"交易方式:"
>
<el-select
v-model=
"msg.TradeWay"
filterable
@
change=
"getAccountList(msg.AccountType,msg.TradeWay)"
>
<el-select
v-model=
"msg.TradeWay"
filterable
@
change=
"getAccountList(msg.AccountType,msg.TradeWay)"
>
<el-option
label=
"不限"
:value=
"0"
></el-option>
<el-option
label=
"不限"
:value=
"0"
></el-option>
<el-option
v-for=
'item in BranchAccountList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
<el-option
v-for=
'item in BranchAccountList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"6"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"账号:"
>
<el-form-item
label=
"账号:"
>
<el-select
v-model=
"msg.AccountId"
filterable
>
<el-select
v-model=
"msg.AccountId"
filterable
>
<el-option
label=
"不限"
:value=
"0"
></el-option>
<el-option
label=
"不限"
:value=
"0"
></el-option>
<el-option
v-for=
'item in accountList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
></el-option>
<el-option
v-for=
'item in accountList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
></el-option>
</el-select>
</el-select>
...
@@ -142,34 +149,35 @@
...
@@ -142,34 +149,35 @@
</el-col>
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"下单时间:"
>
<el-form-item
label=
"下单时间:"
>
<el-date-picker
class=
"h34"
v-model=
"datevalue"
type=
"daterange
"
<el-date-picker
class=
"h34"
v-model=
"datevalue"
type=
"daterange"
value-format=
"yyyy-MM-dd
"
value-format=
"yyyy-MM-dd"
range-separator=
"至"
></el-date-picker>
range-separator=
"至"
></el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"7"
>
<el-col
:span=
"7"
>
<el-form-item
label=
"消费课时:"
>
<el-form-item
label=
"消费课时:"
>
<el-date-picker
class=
"h34"
v-model=
"datevalue2"
type=
"daterange
"
<el-date-picker
class=
"h34"
v-model=
"datevalue2"
type=
"daterange"
value-format=
"yyyy-MM-dd
"
value-format=
"yyyy-MM-dd"
range-separator=
"至"
></el-date-picker>
range-separator=
"至"
></el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"7"
>
<el-col
:span=
"7"
>
<el-form-item
>
<el-form-item>
<!--
<button
class=
"normalBtn "
@
click=
"getData()"
>
查询
</button>
-->
<!--
<button
class=
"normalBtn "
@
click=
"getData()"
>
查询
</button>
-->
<q-btn
color=
"primary"
size=
"11px"
label=
"查询"
@
click=
"handleCurrentChange(1)"
style=
"marginRight:10px"
/>
<q-btn
color=
"primary"
size=
"11px"
label=
"查询"
@
click=
"handleCurrentChange(1)"
style=
"marginRight:10px"
/>
<!--
<button
class=
"normalBtn "
@
click=
"exportExcel"
>
导出EXCEL
</button>
-->
<!--
<button
class=
"normalBtn "
@
click=
"exportExcel"
>
导出EXCEL
</button>
-->
<q-btn
color=
"primary"
size=
"11px"
label=
"导出EXCEL"
@
click=
"exportExcel"
/>
<q-btn
color=
"primary"
size=
"11px"
label=
"导出EXCEL"
@
click=
"exportExcel"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
</el-form>
</el-form>
<!--
<button
class=
"normalBtn page_EasyReport_search"
v-if=
"userId==1"
@
click=
"getData(1)"
>
保存损失
</button>
<!--
<button
class=
"normalBtn page_EasyReport_search"
v-if=
"userId==1"
@
click=
"getData(1)"
>
保存损失
</button>
<p
class=
"easyUpdateTime"
v-if=
"UpdateStaus==1"
>
正在更新,更新开始时间
{{
UpdateStartTime
}}
</p>
<p
class=
"easyUpdateTime"
v-if=
"UpdateStaus==1"
>
正在更新,更新开始时间
{{
UpdateStartTime
}}
</p>
<p
class=
"easyUpdateTime"
v-if=
"UpdateStaus==2"
>
上次更新时间
{{
UpdateStartTime
}}
<br
/>
每日8点、12点、19点、22点数据更新~
</p>
-->
<p
class=
"easyUpdateTime"
v-if=
"UpdateStaus==2"
>
上次更新时间
{{
UpdateStartTime
}}
<br
/>
每日8点、12点、19点、22点数据更新~
</p>
-->
</div>
</div>
<div
style=
"width:100%; overflow-x:auto"
>
<div
style=
"width:100%; overflow-x:auto"
>
<table
:boeder=
"1"
class=
"singeRowTable orderCompleteStatistics"
style=
"width:3000px;border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
>
<table
:boeder=
"1"
class=
"singeRowTable orderCompleteStatistics"
style=
"width:3000px;border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<tr>
<th
colspan=
"15"
style=
"border-right:1px solid #999;border-bottom:1px solid #999"
>
合同信息
</th>
<th
colspan=
"15"
style=
"border-right:1px solid #999;border-bottom:1px solid #999"
>
合同信息
</th>
<th
colspan=
"6"
style=
"border-right:1px solid #999;border-bottom:1px solid #999"
>
收款信息
</th>
<th
colspan=
"6"
style=
"border-right:1px solid #999;border-bottom:1px solid #999"
>
收款信息
</th>
...
@@ -178,166 +186,203 @@
...
@@ -178,166 +186,203 @@
<th
colspan=
"3"
style=
"border-right:1px solid #999;border-bottom:1px solid #999"
>
剩余情况
</th>
<th
colspan=
"3"
style=
"border-right:1px solid #999;border-bottom:1px solid #999"
>
剩余情况
</th>
<th
rowspan=
"2"
:width=
'120'
>
操作
</th>
<th
rowspan=
"2"
:width=
'120'
>
操作
</th>
</tr>
</tr>
<tr>
<!-- -合同信息-- -->
<th
:width=
'120'
>
订单号
</th>
<th
:width=
'200'
>
签订时间
</th>
<th
:width=
'220'
>
合同编号
</th>
<th
:width=
'400'
>
产品名称
</th>
<th
:width=
'200'
>
班号
</th>
<th
:width=
'400'
>
班级
</th>
<th
:width=
'150'
>
学员名称
</th>
<th
:width=
'120'
>
业务员
</th>
<th
:width=
'120'
>
课时
</th>
<th
:width=
'120'
>
单价
</th>
<th
:width=
'120'
>
课程费
</th>
<th
:width=
'120'
>
教材费
</th>
<th
:width=
'120'
>
课件费
</th>
<th
:width=
'150'
>
优惠金额
</th>
<th
:width=
'180'
style=
"border-right:1px solid #999"
>
合同总金额
</th>
<!-- -收款信息(实收金额-- -->
<th
:width=
'150'
>
单据号
</th>
<th
:width=
'300'
>
收款日期
</th>
<th
:width=
'150'
>
收款金额
</th>
<th
:width=
'150'
>
收款方式
</th>
<th
:width=
'300'
>
收款账户
</th>
<th
:width=
'150'
style=
"border-right:1px solid #999"
>
应收金额
</th>
<!-- --合同有效金额-- -->
<th
:width=
'150'
>
有效课时
</th>
<th
:width=
'150'
style=
"border-right:1px solid #999"
>
有效金额
</th>
<!-- -消耗情况-- -->
<th
:width=
'200'
>
消耗教材费
</th>
<th
:width=
'200'
>
消耗课件费
</th>
<th
:width=
'150'
>
上课进度
</th>
<th
:width=
'150'
>
已上课时
</th>
<th
:width=
'200'
>
折后单价
</th>
<th
:width=
'200'
>
已上课金额
</th>
<th
:width=
'200'
style=
"border-right:1px solid #999"
>
退/付款金额
</th>
<!-- -剩余情况-- -->
<th
:width=
'200'
>
协调金额
</th>
<th
:width=
'120'
>
剩余课时
</th>
<th
:width=
'200'
style=
"border-right:1px solid #999"
>
剩余金额
</th>
<!--
<th
:width=
'120'
>
操作
</th>
-->
</tr>
<template
v-for=
"(item,index) in DataList"
v-loading=
"loading"
>
<tr>
<tr>
<!-- -合同信息-- -->
<!-- -合同信息-- -->
<td
@
click=
"goUrl3('/sale/orderStatistics',item.OrderId)"
>
<th
:width=
'120'
>
订单号
</th>
<template
v-if=
"item.JoinType==3"
>
<th
:width=
'200'
>
签订时间
</th>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"续费订单"
placement=
"top-start"
>
<th
:width=
'220'
>
合同编号
</th>
<span
style=
"cursor: pointer;text-decoration: underline;color:red"
>
<th
:width=
'400'
>
产品名称
</th>
{{
item
.
OrderId
}}
<th
:width=
'200'
>
班号
</th>
</span>
<th
:width=
'400'
>
班级
</th>
</el-tooltip>
<th
:width=
'150'
>
学员名称
</th>
</
template
>
<th
:width=
'120'
>
业务员
</th>
<
template
v-else-if=
"item.TargetJoinType==3"
>
<th
:width=
'120'
>
课时
</th>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"已续费"
placement=
"top-start"
>
<th
:width=
'120'
>
单价
</th>
<span
style=
"cursor: pointer;text-decoration: underline;color:green"
>
<th
:width=
'120'
>
课程费
</th>
{{
item
.
OrderId
}}
<th
:width=
'120'
>
教材费
</th>
</span>
<th
:width=
'120'
>
课件费
</th>
</el-tooltip>
<th
:width=
'150'
>
优惠金额
</th>
</
template
>
<th
:width=
'180'
style=
"border-right:1px solid #999"
>
合同总金额
</th>
<
template
v-else-if=
"item.TargetJoinType==4"
>
<!-- -收款信息(实收金额-- -->
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`已转班【$
{item.TargetClassName}】,关联订单号${item.TargetOrderId}`" placement="top-start">
<th
:width=
'150'
>
单据号
</th>
<span
style=
"cursor: pointer;text-decoration: underline;color:orange"
>
<th
:width=
'300'
>
收款日期
</th>
{{
item
.
OrderId
}}
<th
:width=
'150'
>
收款金额
</th>
</span>
<th
:width=
'150'
>
收款方式
</th>
</el-tooltip>
<th
:width=
'300'
>
收款账户
</th>
</
template
>
<th
:width=
'150'
style=
"border-right:1px solid #999"
>
应收金额
</th>
<
template
v-else-if=
"item.TargetJoinType==1"
>
<!-- --合同有效金额-- -->
<th
:width=
'150'
>
有效课时
</th>
<th
:width=
'150'
style=
"border-right:1px solid #999"
>
有效金额
</th>
<!-- -消耗情况-- -->
<th
:width=
'200'
>
消耗教材费
</th>
<th
:width=
'200'
>
消耗课件费
</th>
<th
:width=
'150'
>
上课进度
</th>
<th
:width=
'150'
>
已上课时
</th>
<th
:width=
'200'
>
折后单价
</th>
<th
:width=
'200'
>
已上课金额
</th>
<th
:width=
'200'
style=
"border-right:1px solid #999"
>
退/付款金额
</th>
<!-- -剩余情况-- -->
<th
:width=
'200'
>
协调金额
</th>
<th
:width=
'120'
>
剩余课时
</th>
<th
:width=
'200'
style=
"border-right:1px solid #999"
>
剩余金额
</th>
<!--
<th
:width=
'120'
>
操作
</th>
-->
</tr>
<template
v-for=
"(item,index) in DataList"
v-loading=
"loading"
>
<tr>
<!-- -合同信息-- -->
<td
@
click=
"goUrl3('/sale/orderStatistics',item.OrderId)"
>
<template
v-if=
"item.JoinType==3"
>
<template
v-if=
"item.JoinType==3"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`原订单$
{item.SourceOrderId}`" placement="top-start">
<el-tooltip
class=
"item"
effect=
"dark"
content=
"续费订单"
placement=
"top-start"
>
<span
style=
"cursor: pointer;text-decoration: underline;color:blue"
>
<span
style=
"cursor: pointer;text-decoration: underline;color:red"
>
{{
item
.
OrderId
}}
</span>
</el-tooltip>
</
template
>
<
template
v-else-if=
"item.TargetJoinType==3"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"已续费"
placement=
"top-start"
>
<span
style=
"cursor: pointer;text-decoration: underline;color:green"
>
{{
item
.
OrderId
}}
{{
item
.
OrderId
}}
</span>
</span>
</el-tooltip>
</el-tooltip>
</
template
>
</
template
>
<
template
v-else-if=
"item.JoinType==4"
>
<
template
v-else-if=
"item.TargetJoinType==4"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`从【$
{item.SourceClassName}】转入,关联订单号${item.SourceOrderId}`" placement="top-start">
<el-tooltip
class=
"item"
effect=
"dark"
<span
style=
"cursor: pointer;text-decoration: underline;color:blue"
>
:content=
"`已转班【$
{item.TargetClassName}】,关联订单号${item.TargetOrderId}`" placement="top-start">
<span
style=
"cursor: pointer;text-decoration: underline;color:orange"
>
{{
item
.
OrderId
}}
{{
item
.
OrderId
}}
</span>
</span>
</el-tooltip>
</el-tooltip>
</
template
>
</
template
>
<
template
v-else-if=
"item.TargetJoinType==1"
>
<template
v-if=
"item.JoinType==3"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`原订单$
{item.SourceOrderId}`" placement="top-start">
<span
style=
"cursor: pointer;text-decoration: underline;color:blue"
>
{{
item
.
OrderId
}}
</span>
</el-tooltip>
</
template
>
<
template
v-else-if=
"item.JoinType==4"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"`从【$
{item.SourceClassName}】转入,关联订单号${item.SourceOrderId}`" placement="top-start">
<span
style=
"cursor: pointer;text-decoration: underline;color:blue"
>
{{
item
.
OrderId
}}
</span>
</el-tooltip>
</
template
>
<
template
v-else
>
<span
style=
"cursor: pointer;text-decoration: underline;"
>
{{
item
.
OrderId
}}
</span>
</
template
>
</template>
<
template
v-else
>
<
template
v-else
>
<span
style=
"cursor: pointer;text-decoration: underline;"
>
<span
style=
"cursor: pointer;text-decoration: underline;"
>
{{
item
.
OrderId
}}
{{
item
.
OrderId
}}
</span>
</span>
</
template
>
</
template
>
</template>
</td>
<
template
v-else
>
<td>
{{item.CreateTime}}
</td>
<span
style=
"cursor: pointer;text-decoration: underline;"
>
<td
@
click=
"goUrl('/sale/contractManage',item.ContractNo)"
><span
{{
item
.
OrderId
}}
style=
"cursor: pointer;text-decoration: underline;"
>
{{item.ContractNo}}
</span></td>
</span>
<td
@
click=
"goUrl('/course/course',item.CourseName)"
><span
</
template
>
style=
"cursor: pointer;text-decoration: underline;"
>
{{item.CourseName}}
</span></td>
</td>
<td>
{{item.ClassNo}}
</td>
<td>
{{item.CreateTime}}
</td>
<td
@
click=
"goUrl2('/course/classManage',item.ClassName)"
>
<td
@
click=
"goUrl('/sale/contractManage',item.ContractNo)"
><span
style=
"cursor: pointer;text-decoration: underline;"
>
{{item.ContractNo}}
</span></td>
<div
style=
"cursor: pointer;text-decoration: underline;"
>
{{item.ClassName}}
</div>
<td
@
click=
"goUrl('/course/course',item.CourseName)"
><span
style=
"cursor: pointer;text-decoration: underline;"
>
{{item.CourseName}}
</span></td>
</td>
<td
>
{{item.ClassNo}}
</td>
<td>
{{item.StudentName}}
</td>
<td
@
click=
"goUrl2('/course/classManage',item.ClassName)"
><div
style=
"cursor: pointer;text-decoration: underline;"
>
{{item.ClassName}}
</div></td>
<td>
{{item.CreateByName}}
</td>
<td>
{{item.StudentName}}
</td>
<td>
{{item.TotalClassHours}}
</td>
<td>
{{item.CreateByName}}
</td>
<td>
{{item.TotalUnitPrice}}
</td>
<td>
{{item.TotalClassHours}}
</td>
<td>
{{item.TotalCourseFee}}
</td>
<td>
{{item.TotalUnitPrice}}
</td>
<td>
{{item.TotalBookFee}}
</td>
<td>
{{item.TotalCourseFee}}
</td>
<!--教材费-->
<td>
{{item.TotalBookFee}}
</td>
<!--教材费-->
<td>
{{item.TotalClassFee}}
</td>
<td>
{{item.TotalClassFee}}
</td>
<!--课件费-->
<!--课件费-->
<td>
{{item.TotalDiscountMoney}}
</td>
<!--优惠金额-------------------------->
<td>
{{item.TotalDiscountMoney}}
</td>
<td>
{{item.TotalMoney}}
</td>
<!--合同总金额-->
<!--优惠金额-------------------------->
<!-- -收款信息(实收金额-- -->
<td>
{{item.TotalMoney}}
</td>
<td>
<!--合同总金额-->
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
<!-- -收款信息(实收金额-- -->
{{ subitem.FrID }}
<td>
</div>
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
</td>
<!--单据号-->
{{ subitem.FrID }}
<td>
</div>
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
</td>
{{ subitem.TradeDate }}
<!--单据号-->
</div>
<td>
</td>
<!--收款日期-->
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
<td>
{{ subitem.TradeDate }}
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
</div>
{{ subitem.Money }}
</td>
</div>
<!--收款日期-->
</td>
<!--收款金额-->
<td>
<td>
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
{{ subitem.Money }}
<div
v-for=
"_subitem in subitem.TradeWayList"
>
</div>
{{ _subitem.TypeName }}
</td>
</div>
<!--收款金额-->
</div>
<td>
</td>
<!--收款方式-->
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
<td>
<div
v-for=
"_subitem in subitem.TradeWayList"
>
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
{{ _subitem.TypeName }}
<div
v-for=
"_subitem in subitem.TradeWayList"
>
</div>
{{ _subitem.Alias||'/' }}
</div>
</div>
</td>
</div>
<!--收款方式-->
</td>
<!--收款账户-->
<td>
<!-- ---- -->
<div
v-for=
"subitem in item.IncomeList"
class=
"border-b"
>
<td>
{{item.PreferPrice}}
</td>
<!--应收金额-->
<div
v-for=
"_subitem in subitem.TradeWayList"
>
<!-- -合同有效金额--- -->
{{ _subitem.Alias||'/' }}
<td>
{{item.EffectiveClassHours}}
</td>
<!--有效课时-->
</div>
<td>
{{item.Income}}
</td>
<!--有效金额-->
</div>
<!-- 消耗情况 -->
</td>
<td>
{{item.UseBookFee}}
</td>
<!--教材费-->
<!--收款账户-->
<td>
{{item.UseCoursewareFee}}
</td>
<!--课件费-->
<!-- ---- -->
<td>
{{item.Progress}}
</td>
<!--上课进度-->
<td>
{{item.PreferPrice}}
</td>
<td>
{{item.UseClassHours}}
</td>
<!--已上课时-->
<!--应收金额-->
<td>
{{item.Unit_Price}}
</td>
<!--单价-->
<!-- -合同有效金额--- -->
<td>
{{item.UseCourseFee}}
</td>
<!--已上课金额-->
<td>
{{item.EffectiveClassHours}}
</td>
<td>
{{item.Expend}}
</td>
<!--退/付款金额-->
<!--有效课时-->
<!-- -剩余情况-- -->
<td>
{{item.Income}}
</td>
<td>
{{item.AdjustPrice}}
</td>
<!--协调金额-->
<!--有效金额-->
<td>
{{item.SurplusCourseHours}}
</td>
<!--剩余课时-->
<!-- 消耗情况 -->
<td
:class=
"{'color-red':item.SurplusMoney<0,'color-green':item.SurplusMoney>0&&item.SurplusMoney<500,'color-black':item.SurplusMoney==0||item.SurplusMoney>=500}"
>
{{item.SurplusMoney}}
</td>
<!--剩余金额-->
<td>
{{item.UseBookFee}}
</td>
<td><q-btn
color=
"primary"
style=
"width:80px;font-size:10px"
label=
"协调金额"
@
click=
"show($event),AdjustPriceMsg.ContractId=item.Id,AdjustPriceMsg.AdjustPrice=item.AdjustPrice"
/></td>
<!--操作-->
<!--教材费-->
</tr>
<td>
{{item.UseCoursewareFee}}
</td>
<!--课件费-->
</template>
<td>
{{item.Progress}}
</td>
</table>
<!--上课进度-->
<div
class=
"noDataNotice"
v-if=
"DataList.length<1"
><i
class=
"iconfont icon-kong"
></i>
<p>
暂无数据
</p></div>
<td>
{{item.UseClassHours}}
</td>
<!--已上课时-->
<td>
{{item.Unit_Price}}
</td>
<!--单价-->
<td>
{{item.UseCourseFee}}
</td>
<!--已上课金额-->
<td>
{{item.Expend}}
</td>
<!--退/付款金额-->
<!-- -剩余情况-- -->
<td>
{{item.AdjustPrice}}
</td>
<!--协调金额-->
<td>
{{item.SurplusCourseHours}}
</td>
<!--剩余课时-->
<td
:class=
"{'color-red':item.SurplusMoney<0,'color-green':item.SurplusMoney>0&&item.SurplusMoney<500,'color-black':item.SurplusMoney==0||item.SurplusMoney>=500}"
>
{{item.SurplusMoney}}
</td>
<!--剩余金额-->
<td>
<q-btn
color=
"primary"
style=
"width:80px;font-size:10px"
label=
"协调金额"
v-if=
"from==1"
@
click=
"show($event),AdjustPriceMsg.ContractId=item.Id,AdjustPriceMsg.AdjustPrice=item.AdjustPrice"
/>
<q-btn
color=
"primary"
style=
"width:80px;font-size:10px"
label=
"查看明细"
v-if=
"from==2"
@
click=
"seeClassUseDetail(item)"
/>
</td>
<!--操作-->
</tr>
</template>
</table>
<div
class=
"noDataNotice"
v-if=
"DataList.length<1"
><i
class=
"iconfont icon-kong"
></i>
<p>
暂无数据
</p>
</div>
</div>
</div>
<!-- 对话框 -->
<!-- 对话框 -->
<
template
>
<
template
>
...
@@ -348,33 +393,21 @@
...
@@ -348,33 +393,21 @@
<div
class=
"text-h6"
style=
"textAlign:center"
>
设置协调金额
</div>
<div
class=
"text-h6"
style=
"textAlign:center"
>
设置协调金额
</div>
</q-card-section>
</q-card-section>
<q-form
@
submit=
"onSubmit"
class=
"q-gutter-md"
>
<q-form
@
submit=
"onSubmit"
class=
"q-gutter-md"
>
<q-input
<q-input
filled
ref=
"money"
v-model=
"AdjustPriceMsg.AdjustPrice"
label=
"协调金额"
lazy-rules
step=
"0.000001"
filled
type=
"number"
/>
ref=
"money"
v-model=
"AdjustPriceMsg.AdjustPrice"
label=
"协调金额"
lazy-rules
step=
"0.000001"
type=
"number"
/>
<div
style=
"display:flex; justify-content:flex-end"
>
<div
style=
"display:flex; justify-content:flex-end"
>
<q-btn
label=
"确认"
type=
"Submit"
color=
"primary"
style=
"margin-right:10px"
/>
<q-btn
label=
"确认"
type=
"Submit"
color=
"primary"
style=
"margin-right:10px"
/>
<q-btn
label=
"取消"
text-color=
"primary"
@
click=
"hide"
/>
<q-btn
label=
"取消"
text-color=
"primary"
@
click=
"hide"
/>
</div>
</div>
</q-form>
</q-form>
</div>
</div>
</q-card>
</q-card>
</q-dialog>
</q-dialog>
</
template
>
</
template
>
<div
v-if=
"DataList.length>0"
>
<div
v-if=
"DataList.length>0"
>
<el-pagination
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.pageIndex"
background
layout=
"total,prev, pager, next, jumper"
:page-size=
'msg.pageSize'
:total=
'total'
>
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.pageIndex"
layout=
"total,prev, pager, next, jumper"
:page-size=
'msg.pageSize'
:total=
'total'
>
</el-pagination>
</el-pagination>
</div>
</div>
</div>
</div>
...
@@ -383,10 +416,15 @@
...
@@ -383,10 +416,15 @@
import
{
import
{
getSchoolDropdown
,
//获取校区列表
getSchoolDropdown
,
//获取校区列表
}
from
'../../api/school/index'
;
}
from
'../../api/school/index'
;
import
{
queryEmployee
}
from
'../../api/users/user'
;
//获取业务员
import
{
import
{
getOrderCompleteStatisticsPageList
,
setContractAdjustPrice
}
from
"../../api/report/index"
queryEmployee
}
from
'../../api/users/user'
;
//获取业务员
import
{
getOrderCompleteStatisticsPageList
,
setContractAdjustPrice
}
from
"../../api/report/index"
import
Vue
from
"vue"
;
import
Vue
from
"vue"
;
import
{
import
{
getEasyReportList
,
getEasyReportList
,
outToExcelEasyReportList
outToExcelEasyReportList
...
@@ -397,27 +435,27 @@
...
@@ -397,27 +435,27 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
total
:
0
,
total
:
0
,
msg
:
{
msg
:
{
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
10
,
pageSize
:
10
,
OrderId
:
0
,
// 订单编号
OrderId
:
0
,
// 订单编号
ContractNo
:
""
,
//合同编号
ContractNo
:
""
,
//合同编号
StudentName
:
""
,
//学生姓名
StudentName
:
""
,
//学生姓名
ClassName
:
""
,
//班级名称
ClassName
:
""
,
//班级名称
CourseName
:
""
,
//课程名称
CourseName
:
""
,
//课程名称
CreateBy
:
0
,
//业务员
CreateBy
:
0
,
//业务员
FinanceId
:
0
,
//财务单据id
FinanceId
:
0
,
//财务单据id
TradeWay
:
0
,
//交易方式
TradeWay
:
0
,
//交易方式
AccountId
:
0
,
//账号id
AccountId
:
0
,
//账号id
AccountType
:
0
,
//账户类型
AccountType
:
0
,
//账户类型
StartTime
:
''
,
//下单时间
StartTime
:
''
,
//下单时间
EndTime
:
''
,
EndTime
:
''
,
XFStartTime
:
''
,
//消费课时时间
XFStartTime
:
''
,
//消费课时时间
XFEndTime
:
''
,
XFEndTime
:
''
,
},
},
datevalue
:[],
datevalue
:
[],
datevalue2
:[],
datevalue2
:
[],
data
:
[],
data
:
[],
DataList
:
[],
DataList
:
[],
UpdateStaus
:
0
,
UpdateStaus
:
0
,
...
@@ -428,23 +466,28 @@
...
@@ -428,23 +466,28 @@
loading
:
false
,
loading
:
false
,
AALloading
:
false
,
AALloading
:
false
,
userId
:
-
2
,
userId
:
-
2
,
EmployeeList
:
[],
//业务员列表
EmployeeList
:
[],
//业务员列表
AccList
:
[],
//账户类型列表
AccList
:
[],
//账户类型列表
BranchAccountList
:
[],
//交易方式列表
BranchAccountList
:
[],
//交易方式列表
accountList
:
[],
//账号id列表
accountList
:
[],
//账号id列表
AdjustPriceMsg
:{
AdjustPriceMsg
:
{
ContractId
:
""
,
//合同id
ContractId
:
""
,
//合同id
AdjustPrice
:
""
,
//协调金额
AdjustPrice
:
""
,
//协调金额
}
}
,
from
:
1
,
//来源页
}
}
},
},
created
()
{
created
()
{
let
userInfo
=
this
.
getLocalStorage
();
let
userInfo
=
this
.
getLocalStorage
();
this
.
userId
=
userInfo
.
EmployeeId
;
this
.
userId
=
userInfo
.
EmployeeId
;
},
},
mounted
()
{
mounted
()
{
if
(
this
.
$route
.
query
.
from
)
{
this
.
from
=
this
.
$route
.
query
.
from
this
.
$forceUpdate
();
}
this
.
getData
();
this
.
getData
();
this
.
getCompanyList
();
this
.
getCompanyList
();
this
.
getEmployee
(
0
);
this
.
getEmployee
(
0
);
...
@@ -452,38 +495,36 @@
...
@@ -452,38 +495,36 @@
this
.
Financial_post_GetBranchAccountList
();
this
.
Financial_post_GetBranchAccountList
();
},
},
methods
:
{
methods
:
{
handleCurrentChange
:
function
(
val
)
{
//翻页
handleCurrentChange
:
function
(
val
)
{
//翻页
this
.
msg
.
pageIndex
=
val
;
this
.
msg
.
pageIndex
=
val
;
this
.
getData
();
this
.
getData
();
},
},
exportExcel
:
function
()
{
exportExcel
:
function
()
{
EduDownLoad
(
"/finance/OutToExcelOrderStudentClassHoursList"
,
this
.
msg
,
"订单完成统计.xls"
)
EduDownLoad
(
"/finance/OutToExcelOrderStudentClassHoursList"
,
this
.
msg
,
"订单完成统计.xls"
)
},
},
getData
()
{
if
(
this
.
datevalue
&&
this
.
datevalue
.
length
>
0
)
{
getData
(){
this
.
msg
.
StartTime
=
this
.
datevalue
[
0
];
if
(
this
.
datevalue
&&
this
.
datevalue
.
length
>
0
)
{
this
.
msg
.
EndTime
=
this
.
datevalue
[
1
];
this
.
msg
.
StartTime
=
this
.
datevalue
[
0
];
}
else
{
this
.
msg
.
EndTime
=
this
.
datevalue
[
1
];
this
.
msg
.
StartTime
=
''
;
}
else
{
this
.
msg
.
EndTime
=
''
;
this
.
msg
.
StartTime
=
''
;
}
this
.
msg
.
EndTime
=
''
;
if
(
this
.
datevalue2
&&
this
.
datevalue2
.
length
>
0
)
{
}
this
.
msg
.
XFStartTime
=
this
.
datevalue2
[
0
];
if
(
this
.
datevalue2
&&
this
.
datevalue2
.
length
>
0
)
{
this
.
msg
.
XFEndTime
=
this
.
datevalue2
[
1
];
this
.
msg
.
XFStartTime
=
this
.
datevalue2
[
0
];
}
else
{
this
.
msg
.
XFEndTime
=
this
.
datevalue2
[
1
];
this
.
msg
.
XFStartTime
=
''
;
}
else
{
this
.
msg
.
XFEndTime
=
''
;
this
.
msg
.
XFStartTime
=
''
;
}
this
.
msg
.
XFEndTime
=
''
;
getOrderCompleteStatisticsPageList
(
this
.
msg
).
then
((
res
)
=>
{
}
res
.
Data
.
PageData
.
map
((
item
)
=>
{
getOrderCompleteStatisticsPageList
(
this
.
msg
).
then
((
res
)
=>
{
item
.
Progress
=
item
.
Progress
+
"%"
res
.
Data
.
PageData
.
map
((
item
)
=>
{
item
.
Progress
=
item
.
Progress
+
"%"
})
this
.
DataList
=
res
.
Data
.
PageData
this
.
total
=
res
.
Data
.
Count
})
})
this
.
DataList
=
res
.
Data
.
PageData
this
.
total
=
res
.
Data
.
Count
})
},
},
getCompanyList
()
{
getCompanyList
()
{
let
userInfo
=
this
.
getLocalStorage
();
let
userInfo
=
this
.
getLocalStorage
();
...
@@ -501,13 +542,13 @@
...
@@ -501,13 +542,13 @@
})
})
},
},
//获取业务员
//获取业务员
getEmployee
(
id
)
{
getEmployee
(
id
)
{
var
qMsg
=
{
var
qMsg
=
{
Dept_Id
:
0
Dept_Id
:
0
}
}
qMsg
.
Dept_Id
=
id
;
qMsg
.
Dept_Id
=
id
;
queryEmployee
(
qMsg
).
then
(
res
=>
{
queryEmployee
(
qMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
EmployeeList
=
res
.
Data
;
this
.
EmployeeList
=
res
.
Data
;
}
}
}).
catch
(()
=>
{
}).
catch
(()
=>
{
...
@@ -515,7 +556,7 @@
...
@@ -515,7 +556,7 @@
})
})
},
},
//获取账户类型下拉
//获取账户类型下拉
AccountType_post_GetList
()
{
AccountType_post_GetList
()
{
this
.
apipost
(
'AccountType_post_GetList'
,
this
.
queryAccMsg
,
res
=>
{
this
.
apipost
(
'AccountType_post_GetList'
,
this
.
queryAccMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
AccList
=
res
.
data
.
data
;
this
.
AccList
=
res
.
data
.
data
;
...
@@ -525,7 +566,7 @@
...
@@ -525,7 +566,7 @@
},
err
=>
{})
},
err
=>
{})
},
},
//获取交易方式列表
//获取交易方式列表
Financial_post_GetBranchAccountList
()
{
Financial_post_GetBranchAccountList
()
{
this
.
apipost
(
'Financial_post_GetBranchAccountList'
,
{},
res
=>
{
this
.
apipost
(
'Financial_post_GetBranchAccountList'
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
BranchAccountList
=
res
.
data
.
data
;
this
.
BranchAccountList
=
res
.
data
.
data
;
...
@@ -533,7 +574,7 @@
...
@@ -533,7 +574,7 @@
},
err
=>
{})
},
err
=>
{})
},
},
//账户id
//账户id
getAccountList
(
i
,
t
)
{
getAccountList
(
i
,
t
)
{
let
accountList
=
[];
let
accountList
=
[];
if
(
t
==
1
)
{
// 银行
if
(
t
==
1
)
{
// 银行
this
.
apipost
(
'bankaccount_post_GetList'
,
{
this
.
apipost
(
'bankaccount_post_GetList'
,
{
...
@@ -619,15 +660,18 @@
...
@@ -619,15 +660,18 @@
}
}
},
},
bodyCellSpan
({
row
,
column
,
rowIndex
})
{
bodyCellSpan
({
row
,
column
,
rowIndex
})
{
if
(
rowIndex
===
1
)
{
if
(
rowIndex
===
1
)
{
if
(
column
.
field
===
"date"
)
{
if
(
column
.
field
===
"date"
)
{
return
{
return
{
rowspan
:
1
,
rowspan
:
1
,
colspan
:
2
,
colspan
:
2
,
};
};
}
}
else
if
(
column
.
field
===
"hobby"
)
{
else
if
(
column
.
field
===
"hobby"
)
{
return
{
return
{
rowspan
:
0
,
rowspan
:
0
,
colspan
:
0
,
colspan
:
0
,
...
@@ -636,70 +680,78 @@
...
@@ -636,70 +680,78 @@
}
}
},
},
//对话框
//对话框
show
()
{
show
()
{
this
.
$refs
.
dialog
.
show
();
this
.
$refs
.
dialog
.
show
();
},
},
hide
()
{
hide
()
{
this
.
$refs
.
dialog
.
hide
();
this
.
$refs
.
dialog
.
hide
();
},
},
onDialogHide
()
{
onDialogHide
()
{
// QDialog发出“hide”事件时
// QDialog发出“hide”事件时
// 需要发出
// 需要发出
this
.
$emit
(
"hide"
);
this
.
$emit
(
"hide"
);
},
},
onCancelClick
()
{
onCancelClick
()
{
// 我们只需要隐藏对话框
// 我们只需要隐藏对话框
this
.
hide
();
this
.
hide
();
},
},
onSubmit
()
{
onSubmit
()
{
this
.
$refs
.
money
.
validate
();
this
.
$refs
.
money
.
validate
();
if
(
this
.
$refs
.
money
.
hasError
)
{
if
(
this
.
$refs
.
money
.
hasError
)
{
this
.
formHasError
=
true
;
this
.
formHasError
=
true
;
}
else
{
}
else
{
this
.
AdjustPriceMsg
.
ContractId
=
this
.
AdjustPriceMsg
.
ContractId
.
toString
();
this
.
AdjustPriceMsg
.
ContractId
=
this
.
AdjustPriceMsg
.
ContractId
.
toString
();
this
.
AdjustPriceMsg
.
AdjustPrice
=
this
.
AdjustPriceMsg
.
AdjustPrice
.
toString
();
this
.
AdjustPriceMsg
.
AdjustPrice
=
this
.
AdjustPriceMsg
.
AdjustPrice
.
toString
();
if
(
this
.
AdjustPriceMsg
.
AdjustPrice
==
''
){
if
(
this
.
AdjustPriceMsg
.
AdjustPrice
==
''
)
{
this
.
AdjustPriceMsg
.
AdjustPrice
=
0
;
this
.
AdjustPriceMsg
.
AdjustPrice
=
0
;
}
}
setContractAdjustPrice
(
this
.
AdjustPriceMsg
).
then
((
res
)
=>
{
this
.
$q
.
notify
({
type
:
"positive"
,
icon
:
"done"
,
position
:
"top"
,
color
:
"positive"
,
message
:
res
.
Message
,
});
if
(
res
.
Code
===
1
)
{
this
.
getData
()
}
this
.
$refs
.
dialog
.
hide
();
})
setContractAdjustPrice
(
this
.
AdjustPriceMsg
).
then
((
res
)
=>
{
}
this
.
$q
.
notify
({
},
type
:
"positive"
,
goUrl
(
path
,
Names
)
{
icon
:
"done"
,
let
Name
=
encodeURI
(
Names
)
position
:
"top"
,
this
.
OpenNewUrl
(
path
,
{
color
:
"positive"
,
Name
:
Name
,
message
:
res
.
Message
,
});
},
goUrl2
(
path
,
Names
)
{
//班级
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
ClassName
:
Name
,
});
});
if
(
res
.
Code
===
1
){
},
this
.
getData
()
goUrl3
(
path
,
ID
)
{
//订单跳转
this
.
OpenNewUrl
(
path
,
{
OrderId
:
ID
,
});
},
seeClassUseDetail
(
item
){
let
obj
=
{
StudentId
:
76
,
TeacherId
:
0
,
ClassId
:
16
}
}
this
.
$refs
.
dialog
.
hide
();
console
.
log
(
752
,
item
)
})
// this.OpenNewUrl("/teacher/studentsClassSee",obj)
}
}
},
goUrl
(
path
,
Names
){
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
Name
:
Name
,
});
},
goUrl2
(
path
,
Names
){
//班级
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
ClassName
:
Name
,
});
},
goUrl3
(
path
,
ID
){
//订单跳转
this
.
OpenNewUrl
(
path
,
{
OrderId
:
ID
,
});
},
}
}
}
}
...
...
src/pages/stuMan/stuList.vue
View file @
0a210e4d
...
@@ -3,33 +3,33 @@
...
@@ -3,33 +3,33 @@
list-style-type
:
none
;
list-style-type
:
none
;
}
}
.
activeType
ul
{
.
stuList
ul
{
padding
:
0px
;
padding
:
0px
;
}
}
.
activeType
li
{
.
stuList
li
{
background
:
rgba
(
221
,
222
,
224
,
0.2
);
background
:
rgba
(
221
,
222
,
224
,
0.2
);
border-radius
:
4px
;
border-radius
:
4px
;
margin-top
:
15px
;
margin-top
:
15px
;
}
}
.
activeType
li
.dline
{
.
stuList
li
.dline
{
display
:
table
;
display
:
table
;
width
:
100%
;
width
:
100%
;
display
:
flex
;
display
:
flex
;
flex-direction
:
row
;
flex-direction
:
row
;
}
}
.
activeType
li
.d1
,
.
stuList
li
.d1
,
.
activeType
li
.d2
,
.
stuList
li
.d2
,
.
activeType
li
.d3
,
.
stuList
li
.d3
,
.
activeType
li
.d4
,
.
stuList
li
.d4
,
.
activeType
li
.d5
{
.
stuList
li
.d5
{
width
:
18%
;
width
:
18%
;
padding
:
20px
20px
10px
;
padding
:
20px
20px
10px
;
}
}
.
activeType
li
.d7
{
.
stuList
li
.d7
{
flex
:
1
;
flex
:
1
;
width
:
1px
;
width
:
1px
;
display
:
flex
;
display
:
flex
;
...
@@ -38,19 +38,19 @@
...
@@ -38,19 +38,19 @@
justify-content
:
center
;
justify-content
:
center
;
}
}
.
activeType
li
.d1
.di-title
{
.
stuList
li
.d1
.di-title
{
font-size
:
16px
;
font-size
:
16px
;
color
:
#111111
;
color
:
#111111
;
}
}
.
activeType
li
.d1
.di-c
{
.
stuList
li
.d1
.di-c
{
font-size
:
14px
;
font-size
:
14px
;
display
:
flex
;
display
:
flex
;
line-height
:
28px
;
line-height
:
28px
;
color
:
#111111
;
color
:
#111111
;
}
}
.
activeType
li
.d6
{
.
stuList
li
.d6
{
padding
:
10px
20px
;
padding
:
10px
20px
;
width
:
100%
;
width
:
100%
;
height
:
inherit
;
height
:
inherit
;
...
@@ -58,7 +58,7 @@
...
@@ -58,7 +58,7 @@
border-top
:
1px
solid
#dddee0
;
border-top
:
1px
solid
#dddee0
;
}
}
.
activeType
li
.d6
.progress
{
.
stuList
li
.d6
.progress
{
width
:
100%
;
width
:
100%
;
height
:
5px
;
height
:
5px
;
position
:
absolute
;
position
:
absolute
;
...
@@ -66,41 +66,41 @@
...
@@ -66,41 +66,41 @@
bottom
:
0
;
bottom
:
0
;
}
}
.
activeType
li
.d2
div
{
.
stuList
li
.d2
div
{
margin
:
2px
0
;
margin
:
2px
0
;
font-size
:
14px
;
font-size
:
14px
;
color
:
#111111
;
color
:
#111111
;
}
}
.
activeType
li
.d2-n
{
.
stuList
li
.d2-n
{
font-size
:
12px
;
font-size
:
12px
;
color
:
#999999
;
color
:
#999999
;
margin-right
:
20px
;
margin-right
:
20px
;
}
}
.
activeType
li
.d3
.d3-s
{
.
stuList
li
.d3
.d3-s
{
color
:
var
(
--q-color-negative
);
color
:
var
(
--q-color-negative
);
font-weight
:
bold
;
font-weight
:
bold
;
}
}
.
activeType
li
.d3
div
{
.
stuList
li
.d3
div
{
margin
:
2px
0
;
margin
:
2px
0
;
font-size
:
14px
;
font-size
:
14px
;
}
}
.
activeType
li
.d4
div
{
.
stuList
li
.d4
div
{
font-size
:
14px
;
font-size
:
14px
;
color
:
#111111
;
color
:
#111111
;
margin
:
2px
0
;
margin
:
2px
0
;
}
}
.
activeType
li
.d5
div
{
.
stuList
li
.d5
div
{
font-size
:
14px
;
font-size
:
14px
;
color
:
#111111
;
color
:
#111111
;
margin
:
2px
0
;
margin
:
2px
0
;
}
}
.
activeType
.myCourseNName
{
.
stuList
.myCourseNName
{
width
:
25px
;
width
:
25px
;
height
:
25px
;
height
:
25px
;
border-radius
:
50%
;
border-radius
:
50%
;
...
@@ -110,7 +110,7 @@
...
@@ -110,7 +110,7 @@
background-color
:
#004d40
;
background-color
:
#004d40
;
}
}
.
activeType
.app-image
{
.
stuList
.app-image
{
background-position
:
center
center
;
background-position
:
center
center
;
width
:
50px
;
width
:
50px
;
height
:
50px
;
height
:
50px
;
...
@@ -131,6 +131,16 @@
...
@@ -131,6 +131,16 @@
background-color
:
transparent
;
background-color
:
transparent
;
}
}
.Sysuser_Date
.el-range-editor
.el-range-input
{
width
:
100%
;
border
:
none
;
background-color
:
transparent
;
}
.el-picker-panel
{
z-index
:
99999
!important
;
}
.syster_qDropdown
.q-btn__wrapper
{
.syster_qDropdown
.q-btn__wrapper
{
padding
:
0
3px
;
padding
:
0
3px
;
min-height
:
0
!important
;
min-height
:
0
!important
;
...
@@ -148,13 +158,13 @@
...
@@ -148,13 +158,13 @@
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"page-body
activeType
"
>
<div
class=
"page-body
stuList
"
>
<div
class=
"row q-mb-md"
>
<div
class=
"row q-mb-md"
>
<q-space></q-space>
<q-space></q-space>
<!--
<el-badge
:value=
"11"
style=
"float:right"
>
-->
<!--
<el-badge
:value=
"11"
style=
"float:right"
>
-->
<div
style=
"position:relative;"
>
<div
style=
"position:relative;"
>
<q-btn
color=
"accent"
label=
"高级查询"
@
click=
"IsShowQuery=true"
></q-btn>
<q-btn
color=
"accent"
label=
"高级查询"
@
click=
"IsShowQuery=true"
></q-btn>
<q-badge
floating
rounded
color=
"red"
>
11
</q-badge>
<q-badge
floating
rounded
color=
"red"
>
{{
queryNum
}}
</q-badge>
</div>
</div>
<!--
</el-badge>
-->
<!--
</el-badge>
-->
...
@@ -214,14 +224,86 @@
...
@@ -214,14 +224,86 @@
<
template
v-slot:top=
"props"
>
<
template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
学员名单
</div>
<div
class=
"col-2 q-table__title"
>
学员名单
</div>
</
template
>
</
template
>
<
template
v-slot:body-cell-ContractNo=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"seeContract(props.row)"
>
{{
props
.
row
.
ContractNo
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-ClassName=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"seeClassDetail(props.row)"
>
{{
props
.
row
.
ClassName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-OrderId=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"showOrderDetail(props.row,1)"
>
{{
props
.
row
.
OrderId
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-Income=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"showOrderDetail(props.row,4)"
>
{{
props
.
row
.
Income
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-Refund=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"showOrderDetail(props.row,4)"
>
{{
props
.
row
.
Refund
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-CompleteHours=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"seeStudentsClassUse(props.row)"
>
{{
props
.
row
.
CompleteHours
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-MakeUpHours=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"showList(props.row,1)"
>
{{
props
.
row
.
MakeUpHours
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-AbsenceNum=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"showList(props.row,2)"
>
{{
props
.
row
.
AbsenceNum
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-LeaveNum=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"showList(props.row,3)"
>
{{
props
.
row
.
LeaveNum
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-EventlogNum=
"props"
>
<q-td
:props=
"props"
>
<div
style=
"color:#f00;cursor:pointer;"
@
click=
"showEventLog(props.row)"
>
{{
props
.
row
.
EventlogNum
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div>
<div>
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight:400"
label=
"停课"
v-if=
"props.row.GuestState===1"
@
click=
""
/>
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight:400"
label=
"停课"
v-if=
"props.row.GuestState===1"
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight:400"
label=
"转班"
@
click=
""
/>
@
click=
"ShowStopLesson(props.row)"
/>
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight:400"
label=
"转班"
v-if=
"props.row.GuestState===1"
@
click=
"transferClass(props.row,1)"
/>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
<q-list>
<q-list>
<q-item
clickable
v-close-popup
@
click=
""
>
<q-item
clickable
v-close-popup
@
click=
"
showAddEvent(props.row)
"
>
<q-item-section>
<q-item-section>
<q-item-label>
添加事件
</q-item-label>
<q-item-label>
添加事件
</q-item-label>
</q-item-section>
</q-item-section>
...
@@ -238,9 +320,25 @@
...
@@ -238,9 +320,25 @@
</q-table>
</q-table>
</div>
</div>
<!-- 高级查询 -->
<!-- 高级查询 -->
<MoreQuery
v-if=
"IsShowQuery"
@
close=
"closeruleset"
:save-obj=
"typeObj"
@
success=
"morequery"
>
<MoreQuery
v-if=
"IsShowQuery"
:typeEnum=
"typeEnum"
:warnEnum=
"warnEnum"
:saveQuery=
"msg"
@
close=
"closeHandle"
@
success=
"morequery"
>
</MoreQuery>
</MoreQuery>
<!-- 停课申请 -->
<StopLesson-form
v-if=
"isShowStopLesson"
:setObj=
"stuObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
<!-- 转班申请 -->
<transferclass-form
v-if=
"isShowTransferClass"
:save-obj=
"orderObj"
:ChangeType=
"ChangeType"
@
close=
"closeHandle"
@
success=
"resetSearch"
></transferclass-form>
<!-- 添加事件 -->
<AddEvent-form
v-if=
"isShowAddEvent"
:setObj=
"eventObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
<!-- 班级详情 -->
<classinfo-form
v-if=
"isShowClassInfo"
:seting-obj=
"eventObj"
@
close=
"closeHandle"
@
success=
"refreshPage"
/>
<!-- 订单详情 -->
<myOrder-form
v-if=
"isShowmyorderForm"
:save-obj=
"eventObj"
@
close=
"closeHandle"
></myOrder-form>
<!-- 可补课课时,缺勤次数,请假次数 -->
<list
v-if=
"isShowList"
:type=
"showType"
:set-obj=
"eventObj"
@
close=
"closeHandle"
/>
<!-- 事件记录 -->
<eventLog
v-if=
"isShowEventLog"
:set-obj=
"eventObj"
@
modify=
"modifyEvent"
@
close=
"closeHandle"
/>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
...
@@ -251,15 +349,32 @@
...
@@ -251,15 +349,32 @@
import
{
import
{
queryCourseDropdownList
queryCourseDropdownList
}
from
'../../api/course/index'
}
from
'../../api/course/index'
import
{
getStuList
}
from
'../../api/stuMan/index.js'
import
{
getStuList
,
getEarlyWarningEnum
,
getTypeEnum
,
}
from
'../../api/stuMan/index.js'
import
MoreQuery
from
'../../components/stuMan/moreQuery.vue'
import
MoreQuery
from
'../../components/stuMan/moreQuery.vue'
import
StopLessonForm
from
'../../components/teacher/stopLessonForm'
import
transferclassForm
from
'../../components/sale/transferclass-form'
//转班信息
import
AddEventForm
from
'../../components/stuMan/addEvent-form.vue'
//转班信息
import
classinfoForm
from
'../../components/course/classinfo-form'
;
//班级详情
import
myOrderForm
from
'../../components/sale/myOrder-form'
;
//订单详情
import
list
from
'../../components/stuMan/makeUpHours.vue'
;
//可补课课时,缺勤次数,请假次数
import
eventLog
from
'../../components/stuMan/eventRecord.vue'
;
//事件记录
export
default
{
export
default
{
meta
:
{
meta
:
{
title
:
"学员名单"
title
:
"学员名单"
},
},
components
:
{
components
:
{
MoreQuery
MoreQuery
,
StopLessonForm
,
transferclassForm
,
AddEventForm
,
classinfoForm
,
myOrderForm
,
list
,
eventLog
,
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -270,18 +385,18 @@
...
@@ -270,18 +385,18 @@
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
10
,
pageSize
:
10
,
rowsPerPage
:
10
,
rowsPerPage
:
10
,
School_Id
:
-
1
,
//校区
School_Id
:
-
1
,
//校区
CourseId
:
0
,
//课程
CourseId
:
0
,
//课程
ClassId
:
0
,
//班级
ClassId
:
0
,
//班级
GuestName
:
''
,
//学生姓名
GuestName
:
''
,
//学生姓名
ClassNo
:
''
,
//班号
ClassNo
:
''
,
//班号
OrderId
:
""
,
//订单号
OrderId
:
0
,
//订单号
EnterID
:
0
,
//业务员
EnterID
:
0
,
//业务员
EffectStatus
:
0
,
//状态
EffectStatus
:
""
,
//状态
JoinType
:
0
,
//类型
JoinType
:
0
,
//类型
EarlyWarning
:
0
,
//预警
EarlyWarning
:
0
,
//预警
OrderTime
:
""
,
//下单时间
OrderTime
:
""
,
//下单时间
EndOrderTime
:
""
,
//下单结束时间
EndOrderTime
:
""
,
//下单结束时间
},
},
pageCount
:
0
,
pageCount
:
0
,
columns
:
[{
columns
:
[{
...
@@ -292,134 +407,134 @@
...
@@ -292,134 +407,134 @@
required
:
true
,
required
:
true
,
},
},
{
{
name
:
"Name"
,
name
:
"
Guest
Name"
,
label
:
"姓名"
,
label
:
"姓名"
,
align
:
"left"
,
align
:
"left"
,
field
:
"GuestName"
,
field
:
"GuestName"
,
required
:
true
,
required
:
true
,
},
},
{
{
name
:
"
ActivityTypeNam
e"
,
name
:
"
Mobil
e"
,
label
:
"电话"
,
label
:
"电话"
,
align
:
"left"
,
align
:
"left"
,
field
:
"Mobile"
field
:
"Mobile"
},
},
{
{
name
:
"
ActivityTime
"
,
name
:
"
ContractNo
"
,
label
:
"合同编号"
,
label
:
"合同编号"
,
align
:
"left"
,
align
:
"left"
,
field
:
"ContractNo"
,
field
:
"ContractNo"
,
},
},
{
{
name
:
"
AgeAndPeopleNum
"
,
name
:
"
ClassName
"
,
label
:
"班级"
,
label
:
"班级"
,
align
:
"left"
,
align
:
"left"
,
field
:
"ClassName"
,
field
:
"ClassName"
,
},
},
{
{
name
:
"
activePric
e"
,
name
:
"
CourseNam
e"
,
label
:
"课程"
,
label
:
"课程"
,
align
:
"left"
,
align
:
"left"
,
field
:
"CourseName"
,
field
:
"CourseName"
,
},
},
{
{
name
:
"
Location
Name"
,
name
:
"
Teacher
Name"
,
label
:
"老师"
,
label
:
"老师"
,
align
:
"left"
,
align
:
"left"
,
field
:
"TeacherName"
,
field
:
"TeacherName"
,
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
OrderId
"
,
label
:
"订单号"
,
label
:
"订单号"
,
align
:
"left"
,
align
:
"left"
,
field
:
"OrderId"
,
field
:
"OrderId"
,
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
OrderTime
"
,
label
:
"报名时间"
,
label
:
"报名时间"
,
align
:
"left"
,
align
:
"left"
,
field
:
"OrderTime"
,
field
:
"OrderTime"
,
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
EnterName
"
,
label
:
"业务员"
,
label
:
"业务员"
,
field
:
"EnterName"
,
field
:
"EnterName"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
PreferPrice
"
,
label
:
"应收金额"
,
label
:
"应收金额"
,
field
:
"PreferPrice"
,
field
:
"PreferPrice"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
Income
"
,
label
:
"实收金额"
,
label
:
"实收金额"
,
field
:
"Income"
,
field
:
"Income"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
Refund
"
,
label
:
"退款金额"
,
label
:
"退款金额"
,
field
:
"Refund"
,
field
:
"Refund"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStute
s"
,
name
:
"
TotalHour
s"
,
label
:
"课程总课时"
,
label
:
"课程总课时"
,
field
:
"TotalHours"
,
field
:
"TotalHours"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStute
s"
,
name
:
"
ValidClassHour
s"
,
label
:
"有效课时"
,
label
:
"有效课时"
,
field
:
"ValidClassHours"
,
field
:
"ValidClassHours"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStute
s"
,
name
:
"
CompleteHour
s"
,
label
:
"消耗课时"
,
label
:
"消耗课时"
,
field
:
"CompleteHours"
,
field
:
"CompleteHours"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStute
s"
,
name
:
"
SurplusHour
s"
,
label
:
"剩余课时"
,
label
:
"剩余课时"
,
field
:
"SurplusHours"
,
field
:
"SurplusHours"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStute
s"
,
name
:
"
MakeUpHour
s"
,
label
:
"可补课课时"
,
label
:
"可补课课时"
,
field
:
"MakeUpHours"
,
field
:
"MakeUpHours"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
AbsenceNum
"
,
label
:
"缺勤次数"
,
label
:
"缺勤次数"
,
field
:
"AbsenceNum"
,
field
:
"AbsenceNum"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
LeaveNum
"
,
label
:
"请假次数"
,
label
:
"请假次数"
,
field
:
"LeaveNum"
,
field
:
"LeaveNum"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
EventlogNum
"
,
label
:
"事件记录"
,
label
:
"事件记录"
,
field
:
"EventlogNum"
,
field
:
"EventlogNum"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
GuestStateStr
"
,
label
:
"状态"
,
label
:
"状态"
,
field
:
"GuestStateStr"
,
field
:
"GuestStateStr"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"
activeStutes
"
,
name
:
"
JoinTypeStr
"
,
label
:
"类型"
,
label
:
"类型"
,
field
:
"JoinTypeStr"
,
field
:
"JoinTypeStr"
,
align
:
"left"
align
:
"left"
...
@@ -431,8 +546,6 @@
...
@@ -431,8 +546,6 @@
align
:
"left"
align
:
"left"
}
}
],
],
showForm
:
false
,
typeObj
:
{},
SchoolList
:
[],
SchoolList
:
[],
CourseList
:
[],
CourseList
:
[],
AllCourseList
:
[],
AllCourseList
:
[],
...
@@ -446,12 +559,29 @@
...
@@ -446,12 +559,29 @@
MoreStatus
:
"1,2,3"
,
MoreStatus
:
"1,2,3"
,
IsQuerySurplusPlan
:
0
IsQuerySurplusPlan
:
0
},
},
typeEnum
:
[],
warnEnum
:
[],
queryNum
:
0
,
//高级查询个数
isShowStopLesson
:
false
,
stuObj
:
{},
//停课
isShowTransferClass
:
false
,
//是否显示转班
orderObj
:
{},
//转班
ChangeType
:
1
,
//1-转班 2-分拆
isShowAddEvent
:
false
,
//是否显示添加事件
eventObj
:
{},
isShowClassInfo
:
false
,
//是否显示班级详情
isShowmyorderForm
:
false
,
//是否显示订单详情
isShowList
:
false
,
//是否显示可补课课时,缺勤次数,请假次数
showType
:
1
,
isShowEventLog
:
false
,
//是否显示事件记录
}
}
},
},
mounted
()
{
mounted
()
{
this
.
getSchool
();
this
.
getSchool
();
this
.
getCourseList
();
this
.
getCourseList
();
this
.
getClass
();
this
.
getClass
();
this
.
getTypeEnum
();
this
.
getEarlyWarningEnum
();
this
.
getList
();
this
.
getList
();
},
},
methods
:
{
methods
:
{
...
@@ -534,52 +664,36 @@
...
@@ -534,52 +664,36 @@
this
.
resetSearch
();
this
.
resetSearch
();
},
},
getList
()
{
getList
()
{
//
this.loading = true;
this
.
loading
=
true
;
getStuList
(
this
.
msg
).
then
(
res
=>
{
getStuList
(
this
.
msg
).
then
(
res
=>
{
console
.
log
(
535
,
res
)
this
.
loading
=
false
if
(
res
.
Code
===
1
)
{
if
(
res
.
Code
===
1
)
{
this
.
data
=
res
.
Data
.
PageData
this
.
data
=
res
.
Data
.
PageData
this
.
pageCount
=
res
.
Data
.
PageCount
this
.
pageCount
=
res
.
Data
.
PageCount
}
}
}).
catch
(
err
=>
{
this
.
loading
=
false
;
})
})
},
},
delActive
(
item
)
{
//显示停课弹窗
let
that
=
this
;
ShowStopLesson
(
item
)
{
that
.
Confirm
(
"是否删除?"
,
function
()
{
this
.
isShowStopLesson
=
true
;
that
.
apipostDS
(
this
.
stuObj
=
item
"/api/Education/RemoveActivity"
,
{
Id
:
item
.
Id
,
Status
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
res
.
data
.
message
);
that
.
getList
();
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
},
);
})
},
//刷新页面
refreshPage
()
{
this
.
showForm
=
false
;
this
.
getList
();
},
//显示修改
editQuotation
(
item
)
{
this
.
showForm
=
true
;
if
(
item
)
{
this
.
typeObj
=
item
;
}
else
{
this
.
typeObj
=
{};
}
},
},
// 高级查询
// 高级查询
morequery
(
val
)
{
morequery
(
val
)
{
console
.
log
(
418
,
val
)
this
.
IsShowQuery
=
false
this
.
IsShowQuery
=
false
;
this
.
queryNum
=
val
.
chooseNum
this
.
msg
.
ClassNo
=
val
.
ClassNo
this
.
msg
.
OrderId
=
val
.
OrderId
this
.
msg
.
EnterID
=
val
.
EnterID
this
.
msg
.
EffectStatus
=
val
.
EffectStatus
this
.
msg
.
JoinType
=
val
.
JoinType
this
.
msg
.
EarlyWarning
=
val
.
EarlyWarning
this
.
msg
.
OrderTime
=
val
.
OrderTime
this
.
msg
.
EndOrderTime
=
val
.
EndOrderTime
this
.
resetSearch
();
},
},
//重新查询
//重新查询
resetSearch
()
{
resetSearch
()
{
...
@@ -592,10 +706,21 @@
...
@@ -592,10 +706,21 @@
this
.
getList
()
this
.
getList
()
},
},
//关闭弹窗
//关闭弹窗
closeruleset
()
{
closeHandle
()
{
this
.
showForm
=
false
;
this
.
IsShowQuery
=
false
;
this
.
IsShowQuery
=
false
;
this
.
isShowStopLesson
=
false
;
this
.
isShowTransferClass
=
false
;
this
.
isShowAddEvent
=
false
;
this
.
isShowClassInfo
=
false
;
this
.
isShowmyorderForm
=
false
;
this
.
isShowList
=
false
;
this
.
isShowEventLog
=
false
;
this
.
isShowEventLog
=
false
;
},
//刷新页面
refreshPage
()
{
this
.
closeHandle
();
this
.
getList
();
},
},
goUrl
(
url
,
item
)
{
goUrl
(
url
,
item
)
{
if
(
item
)
{
if
(
item
)
{
...
@@ -623,6 +748,76 @@
...
@@ -623,6 +748,76 @@
}
}
})
})
},
},
getTypeEnum
()
{
getTypeEnum
({}).
then
(
res
=>
{
if
(
res
.
Code
===
1
)
{
res
.
Data
.
unshift
({
Name
:
"不限"
,
Id
:
0
})
this
.
typeEnum
=
res
.
Data
}
})
},
getEarlyWarningEnum
()
{
getEarlyWarningEnum
({}).
then
(
res
=>
{
if
(
res
.
Code
===
1
)
{
this
.
warnEnum
=
res
.
Data
}
})
},
//转班
transferClass
(
item
,
type
)
{
this
.
orderObj
=
item
;
this
.
ChangeType
=
type
;
this
.
isShowTransferClass
=
true
;
},
//显示添加事件
showAddEvent
(
item
)
{
let
newitem
=
JSON
.
parse
(
JSON
.
stringify
(
item
))
newitem
.
Id
=
0
this
.
eventObj
=
newitem
this
.
isShowAddEvent
=
true
;
},
//查看合同
seeContract
(
item
){
this
.
OpenNewUrl
(
"/contractView"
,{
ContractId
:
item
.
ContractId
})
},
//查看课时消耗
seeStudentsClassUse
(
item
){
let
obj
=
{
StudentId
:
item
.
Id
,
TeacherId
:
item
.
Teacher_Id
,
ClassId
:
item
.
ClassId
}
this
.
OpenNewUrl
(
"/teacher/studentsClassSee"
,
obj
)
},
//查看班级详情
seeClassDetail
(
item
){
this
.
eventObj
=
item
this
.
isShowClassInfo
=
true
},
//查看订单详情
showOrderDetail
(
item
,
tab
){
item
.
tab
=
tab
this
.
eventObj
=
item
this
.
isShowmyorderForm
=
true
},
showList
(
item
,
type
){
this
.
eventObj
=
item
this
.
showType
=
type
this
.
isShowList
=
true
},
showEventLog
(
item
){
this
.
eventObj
=
item
this
.
isShowEventLog
=
true
},
// 修改事件
modifyEvent
(
val
){
this
.
closeHandle
();
this
.
eventObj
=
val
this
.
isShowAddEvent
=
true
}
}
}
}
}
...
...
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