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
b4394b76
Commit
b4394b76
authored
Jul 12, 2022
by
youjie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
aa6c1257
0fa4d329
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
2513 additions
and
2953 deletions
+2513
-2953
consult-form.vue
src/components/finance/consult-form.vue
+16
-6
stulist.vue
src/components/school/student/stulist.vue
+658
-812
subscribeForm.vue
src/components/stuMan/subscribe/subscribeForm.vue
+119
-100
index.vue
src/components/todolist/index.vue
+0
-1
payee.vue
src/components/todolist/payee.vue
+70
-99
Work.vue
src/pages/Work.vue
+0
-1
Scheduling.vue
src/pages/classroom/Scheduling.vue
+187
-231
marketStatistics.vue
src/pages/financial/market/marketStatistics.vue
+450
-447
classPlan.vue
src/pages/stuMan/classPlan.vue
+1
-1
classRecord.vue
src/pages/stuMan/classRecord.vue
+26
-10
stuList.vue
src/pages/stuMan/stuList.vue
+982
-1242
assessmentType.vue
src/pages/teacher/assessmentType.vue
+4
-3
No files found.
src/components/finance/consult-form.vue
View file @
b4394b76
...
@@ -87,7 +87,6 @@
...
@@ -87,7 +87,6 @@
.q-field__prepend
{
.q-field__prepend
{
padding-right
:
0px
!important
;
padding-right
:
0px
!important
;
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
>
...
@@ -362,9 +361,21 @@
...
@@ -362,9 +361,21 @@
saveConsult
()
{
saveConsult
()
{
this
.
$refs
.
PlanName
.
validate
();
this
.
$refs
.
PlanName
.
validate
();
if
(
!
this
.
$refs
.
PlanName
.
hasError
)
{
if
(
!
this
.
$refs
.
PlanName
.
hasError
)
{
if
(
this
.
SaleIdsArray
&&
this
.
SaleIdsArray
.
length
>
0
)
{
this
.
objOption
.
SaleIds
=
this
.
SaleIdsArray
.
toString
();
this
.
objOption
.
SaleIds
=
this
.
SaleIdsArray
.
toString
();
}
else
{
this
.
objOption
.
SaleIds
=
""
;
}
if
(
this
.
UseCourseIdsArray
&&
this
.
UseCourseIdsArray
.
length
>
0
)
{
this
.
objOption
.
UseCourseIds
=
this
.
UseCourseIdsArray
.
toString
();
this
.
objOption
.
UseCourseIds
=
this
.
UseCourseIdsArray
.
toString
();
}
else
{
this
.
objOption
.
UseCourseIds
=
""
;
}
if
(
this
.
NotUseCourseIdsArray
&&
this
.
NotUseCourseIdsArray
.
length
>
0
)
{
this
.
objOption
.
NotUseCourseIds
=
this
.
NotUseCourseIdsArray
.
toString
();
this
.
objOption
.
NotUseCourseIds
=
this
.
NotUseCourseIdsArray
.
toString
();
}
else
{
this
.
objOption
.
NotUseCourseIds
=
''
;
}
this
.
saveLoading
=
true
;
this
.
saveLoading
=
true
;
SetBounsPlan
(
this
.
objOption
).
then
(
res
=>
{
SetBounsPlan
(
this
.
objOption
).
then
(
res
=>
{
this
.
saveLoading
=
false
;
this
.
saveLoading
=
false
;
...
@@ -389,5 +400,4 @@
...
@@ -389,5 +400,4 @@
}
}
},
},
}
}
</
script
>
</
script
>
\ No newline at end of file
src/components/school/student/stulist.vue
View file @
b4394b76
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.stuList
.q-table__bottom
{
.stuList
.q-table__bottom
{
min-height
:
0
;
min-height
:
0
;
}
}
.stulistNum
{
.stulistNum
{
display
:
inline-block
;
display
:
inline-block
;
width
:
25px
;
width
:
25px
;
height
:
25px
;
height
:
25px
;
...
@@ -13,23 +13,23 @@
...
@@ -13,23 +13,23 @@
border-radius
:
50%
;
border-radius
:
50%
;
cursor
:
pointer
;
cursor
:
pointer
;
color
:
#2961fe
;
color
:
#2961fe
;
}
}
.stuListTable
{
.stuListTable
{
width
:
200px
;
width
:
200px
;
text-align
:
center
;
text-align
:
center
;
}
}
.stuListTable
tr
td
{
.stuListTable
tr
td
{
height
:
40px
;
height
:
40px
;
}
}
.stuListTable
tr
th
{
.stuListTable
tr
th
{
height
:
40px
;
height
:
40px
;
background-color
:
rgb
(
238
,
238
,
239
);
background-color
:
rgb
(
238
,
238
,
239
);
}
}
.stulistNumber
{
.stulistNumber
{
display
:
inline-block
;
display
:
inline-block
;
width
:
25px
;
width
:
25px
;
height
:
25px
;
height
:
25px
;
...
@@ -39,155 +39,63 @@
...
@@ -39,155 +39,63 @@
border-radius
:
50%
;
border-radius
:
50%
;
cursor
:
pointer
;
cursor
:
pointer
;
color
:
#2961fe
;
color
:
#2961fe
;
}
}
.OCourseTable
{
.OCourseTable
{
width
:
600px
;
width
:
600px
;
text-align
:
center
;
text-align
:
center
;
}
}
.OCourseTable
tr
td
{
.OCourseTable
tr
td
{
height
:
40px
;
height
:
40px
;
}
}
.OCourseTable
tr
th
{
.OCourseTable
tr
th
{
height
:
40px
;
height
:
40px
;
background-color
:
rgb
(
238
,
238
,
239
);
background-color
:
rgb
(
238
,
238
,
239
);
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"stuList"
:style=
"
{ height: height }">
<div
class=
"stuList"
:style=
"
{ height: height }">
<q-table
<q-table
:pagination=
"pageMsg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
:pagination=
"pageMsg"
:selection=
"noSelect ? 'none' : pushMode ? 'multiple' : 'single'"
:selected
.
sync=
"selection"
:loading=
"loading"
:style=
"
{ height: height }" class="sticky-right-column-table sticky-tow-column-table"
no-data-label=
"暂无相关数据"
:class="{ 'my-sticky-header-table': height != 'unset' }" separator="none" :data="dataList" :columns="columns"
flat
row-key="StuId" hide-bottom>
:selection=
"noSelect ? 'none' : pushMode ? 'multiple' : 'single'"
:selected
.
sync=
"selection"
:style=
"
{ height: height }"
class="sticky-right-column-table sticky-tow-column-table"
:class="{ 'my-sticky-header-table': height != 'unset' }"
separator="none"
:data="dataList"
:columns="columns"
row-key="StuId"
hide-bottom
>
<template
v-if=
"showHeader"
v-slot:top
>
<template
v-if=
"showHeader"
v-slot:top
>
<div
class=
"col-2 q-table__title"
>
学员信息
</div>
<div
class=
"col-2 q-table__title"
>
学员信息
</div>
<q-space
/>
<q-space
/>
<div
class=
"page-option"
v-if=
"!pushMode"
>
<div
class=
"page-option"
v-if=
"!pushMode"
>
<q-btn
<q-btn
color=
"accent"
v-if=
"IsTrasferAll()"
outline
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"批量转交"
color=
"accent"
@
click=
"pushMode = true"
/>
v-if=
"IsTrasferAll()"
<q-btn
color=
"accent"
outline
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"推送课程顾问"
outline
v-if=
"userInfo.IsCourseConsultant == 0"
@
click=
"pushMode = true"
/>
class=
"q-mr-md"
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转订单"
size=
"sm"
:disable=
"selection.length === 0"
@
click=
"transferOrder"
/>
icon=
"swap_horiz"
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转留学"
label=
"批量转交"
:disable=
"selection.length === 0"
@
click=
"transferAbroad"
/>
@
click=
"pushMode = true"
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"add"
label=
"新增学员"
@
click=
"EditStudent(null)"
/>
/>
<q-btn
v-if=
"authObj && authObj.isShowDownload"
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
<q-btn
label=
"下载"
@
click=
"downloadStudent"
/>
color=
"accent"
outline
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"推送课程顾问"
v-if=
"userInfo.IsCourseConsultant == 0"
@
click=
"pushMode = true"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转订单"
:disable=
"selection.length === 0"
@
click=
"transferOrder"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转留学"
:disable=
"selection.length === 0"
@
click=
"transferAbroad"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"add"
label=
"新增学员"
@
click=
"EditStudent(null)"
/>
<q-btn
v-if=
"authObj && authObj.isShowDownload"
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
label=
"下载"
@
click=
"downloadStudent"
/>
</div>
</div>
<div
class=
"page-option"
v-if=
"pushMode"
>
<div
class=
"page-option"
v-if=
"pushMode"
>
<q-btn
<q-btn
color=
"accent"
unelevated
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转交"
color=
"accent"
@
click=
"isShowTrans = true"
>
unelevated
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转交"
@
click=
"isShowTrans = true"
>
<q-popup-proxy
:offset=
"[10, 10]"
>
<q-popup-proxy
:offset=
"[10, 10]"
>
<q-banner
v-if=
"isShowTrans"
>
<q-banner
v-if=
"isShowTrans"
>
<q-select
<q-select
style=
"margin-top:20px;"
filled
v-model=
"transMsg.CreateBy"
@
filter=
"filterEmployee"
use-input
style=
"margin-top:20px;"
:options=
"myEmployeeList"
option-label=
"EmployeeName"
option-value=
"Id"
emit-value
map-options
/>
filled
<q-btn
label=
"保存"
style=
"float:right;margin-top:15px"
color=
"accent q-mb-lg"
size=
"sm"
v-model=
"transMsg.CreateBy"
@
click=
"saveTransForm"
/>
@
filter=
"filterEmployee"
use-input
:options=
"myEmployeeList"
option-label=
"EmployeeName"
option-value=
"Id"
emit-value
map-options
/>
<q-btn
label=
"保存"
style=
"float:right;margin-top:15px"
color=
"accent q-mb-lg"
size=
"sm"
@
click=
"saveTransForm"
/>
</q-banner>
</q-banner>
</q-popup-proxy>
</q-popup-proxy>
</q-btn>
</q-btn>
<q-btn
<q-btn
color=
"accent"
unelevated
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"立即推送"
:loading=
"pushing"
color=
"accent"
@
click=
"assistBatchHandler"
/>
unelevated
<q-btn
color=
"accent"
outline
size=
"sm"
label=
"退出"
:disable=
"pushing"
@
click=
"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"立即推送"
:loading=
"pushing"
@
click=
"assistBatchHandler"
/>
<q-btn
color=
"accent"
outline
size=
"sm"
label=
"退出"
:disable=
"pushing"
@
click=
"
pushMode = false;
pushMode = false;
selection = [];
selection = [];
"
"
/>
/>
</div>
</div>
</
template
>
</
template
>
<
template
v-slot:body-cell-StuIcon=
"props"
>
<
template
v-slot:body-cell-StuIcon=
"props"
>
...
@@ -195,32 +103,20 @@
...
@@ -195,32 +103,20 @@
<q-avatar
size=
"md"
v-if=
"props.value"
>
<q-avatar
size=
"md"
v-if=
"props.value"
>
<img
:src=
"props.value"
/>
<img
:src=
"props.value"
/>
</q-avatar>
</q-avatar>
<q-avatar
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.value"
>
size=
"md"
{{
props
.
row
.
StuName
.
substring
(
0
,
1
)
}}
</q-avatar>
color=
"teal-10"
text-color=
"white"
v-if=
"!props.value"
>
{{
props
.
row
.
StuName
.
substring
(
0
,
1
)
}}
</q-avatar
>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-StuName=
"props"
>
<
template
v-slot:body-cell-StuName=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row, 1)"
>
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row, 1)"
>
{{
props
.
value
}}
{{
props
.
value
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-StuSex=
"props"
>
<
template
v-slot:body-cell-StuSex=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<q-badge
<q-badge
:color=
"props.value == 1 ? 'negative' : 'primary'"
:label=
"props.value == 1 ? '女' : '男'"
/>
:color=
"props.value == 1 ? 'negative' : 'primary'"
:label=
"props.value == 1 ? '女' : '男'"
/>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-CreateTypeStr=
"props"
>
<
template
v-slot:body-cell-CreateTypeStr=
"props"
>
...
@@ -236,9 +132,7 @@
...
@@ -236,9 +132,7 @@
<
template
v-slot:body-cell-StuSourceIdName=
"props"
>
<
template
v-slot:body-cell-StuSourceIdName=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
v-if=
"IsShowStuSourceIdName(props.row)"
>
<div
v-if=
"IsShowStuSourceIdName(props.row)"
>
<span
v-if=
"props.row.CreateType == 2 && props.row.EnterpriseName"
<span
v-if=
"props.row.CreateType == 2 && props.row.EnterpriseName"
>
{{
props
.
row
.
EnterpriseName
}}
:
</span>
>
{{
props
.
row
.
EnterpriseName
}}
:
</span
>
{{
props
.
row
.
StuSourceIdName
}}
{{
props
.
row
.
StuSourceIdName
}}
</div>
</div>
<div
v-else
>
<div
v-else
>
...
@@ -268,21 +162,15 @@
...
@@ -268,21 +162,15 @@
{{
props
.
row
.
AdvisorList
.
length
}}
{{
props
.
row
.
AdvisorList
.
length
}}
<q-popup-proxy>
<q-popup-proxy>
<q-banner>
<q-banner>
<table
<table
class=
"OCourseTable"
style=
"border-collapse:collapse;"
>
class=
"OCourseTable"
style=
"border-collapse:collapse;"
>
<tr>
<tr>
<th>
跟进状态
</th>
<th>
跟进状态
</th>
<th>
跟进日期
</th>
<th>
跟进日期
</th>
<th>
跟进比例
</th>
<th>
跟进比例
</th>
<th>
跟进备注
</th>
<th>
跟进备注
</th>
</tr>
</tr>
<tr
<tr
v-for=
"(sItem, sIndex) in props.row.AdvisorList"
style=
"border-bottom:1px dashed #d1d1d1;"
v-for=
"(sItem, sIndex) in props.row.AdvisorList"
:key=
"sIndex"
>
style=
"border-bottom:1px dashed #d1d1d1;"
:key=
"sIndex"
>
<td>
{{
sItem
.
AdvisorStatusName
}}
</td>
<td>
{{
sItem
.
AdvisorStatusName
}}
</td>
<td>
{{
sItem
.
AdvisorDate
}}
</td>
<td>
{{
sItem
.
AdvisorDate
}}
</td>
<td>
{{
sItem
.
AdvisorRate
}}
</td>
<td>
{{
sItem
.
AdvisorRate
}}
</td>
...
@@ -305,21 +193,10 @@
...
@@ -305,21 +193,10 @@
<q-td
:props=
"props"
v-html=
"getCurseManager(props.row)"
></q-td>
<q-td
:props=
"props"
v-html=
"getCurseManager(props.row)"
></q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-OrderCount=
"props"
>
<
template
v-slot:body-cell-OrderCount=
"props"
>
<q-td
<q-td
:props=
"props"
v-if=
"!props.row.OrderCount || props.row.OrderCount == 0"
class=
"text-grey-4"
>
未报名
</q-td>
:props=
"props"
<q-td
:props=
"props"
v-if=
"props.row.OrderCount > 0"
class=
"bg-negative text-white"
v-if=
"!props.row.OrderCount || props.row.OrderCount == 0"
style=
"cursor:pointer;text-decoration:underline;"
@
click=
"getStuRight(props.row, 3)"
>
class=
"text-grey-4"
已报名
{{
props
.
row
.
OrderCount
}}
单
</q-td>
>
未报名
</q-td
>
<q-td
:props=
"props"
v-if=
"props.row.OrderCount > 0"
class=
"bg-negative text-white"
style=
"cursor:pointer;text-decoration:underline;"
@
click=
"getStuRight(props.row, 3)"
>
已报名
{{
props
.
row
.
OrderCount
}}
单
</q-td
>
</
template
>
</
template
>
<
template
v-slot:body-cell-TeacherManager=
"props"
>
<
template
v-slot:body-cell-TeacherManager=
"props"
>
<q-td
:props=
"props"
v-html=
"getTeacherManager(props.row)"
></q-td>
<q-td
:props=
"props"
v-html=
"getTeacherManager(props.row)"
></q-td>
...
@@ -337,21 +214,14 @@
...
@@ -337,21 +214,14 @@
<q-popup-proxy>
<q-popup-proxy>
<q-banner>
<q-banner>
<div
style=
"max-height:600px;overflow-y:auto;"
>
<div
style=
"max-height:600px;overflow-y:auto;"
>
<table
<table
class=
"stuListTable"
style=
"border-collapse:collapse;"
>
class=
"stuListTable"
style=
"border-collapse:collapse;"
>
<tr>
<tr>
<th>
角色
</th>
<th>
角色
</th>
<th>
协同人
</th>
<th>
协同人
</th>
</tr>
</tr>
<tr
<tr
v-for=
"(sItem, sIndex) in assistListFormat[
v-for=
"(sItem, sIndex) in assistListFormat[
props.pageIndex
props.pageIndex
]"
]"
style=
"border-bottom:1px dashed #d1d1d1;"
:key=
"sIndex"
>
style=
"border-bottom:1px dashed #d1d1d1;"
:key=
"sIndex"
>
<td>
{{
sItem
.
AssistTypeName
}}
</td>
<td>
{{
sItem
.
AssistTypeName
}}
</td>
<td>
{{
sItem
.
AssistName
}}
</td>
<td>
{{
sItem
.
AssistName
}}
</td>
</tr>
</tr>
...
@@ -368,61 +238,40 @@
...
@@ -368,61 +238,40 @@
</q-td>
</q-td>
</template>
</template>
</q-table>
</q-table>
<student-form
<student-form
v-if=
"isShowStuForm"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
v-if=
"isShowStuForm"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
</student-form>
</student-form>
<studentRight-form
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
v-if=
"isShowStuRight"
:checkType=
"checkType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
:isJudgeTrans=
"isJudgeTrans"
@
reload=
"referDataHandler"
>
:BelongType=
"BelongType"
:checkType=
"checkType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"referDataHandler"
>
</studentRight-form>
</studentRight-form>
<studentAdd-form
<studentAdd-form
v-if=
"isShowAdd"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
v-if=
"isShowAdd"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
</studentAdd-form>
</studentAdd-form>
<transfer-order
<transfer-order
v-if=
"isShowTransfer"
:select=
"selection"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
v-if=
"isShowTransfer"
:select=
"selection"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
</transfer-order>
</transfer-order>
<abroad-form
<abroad-form
v-if=
"isShowAbroad"
:select=
"selection"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
></abroad-form>
v-if=
"isShowAbroad"
:select=
"selection"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
></abroad-form>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
studentForm
from
"./student-form"
;
import
studentForm
from
"./student-form"
;
import
studentRightForm
from
"./studentRight-form"
;
import
studentRightForm
from
"./studentRight-form"
;
import
studentAddForm
from
"./studentAdd-form"
;
import
studentAddForm
from
"./studentAdd-form"
;
import
transferOrder
from
"./transfer-order"
;
import
transferOrder
from
"./transfer-order"
;
import
abroadForm
from
"./abroad-form"
;
import
abroadForm
from
"./abroad-form"
;
import
{
mapGetters
}
from
"vuex"
;
import
{
import
{
mapGetters
}
from
"vuex"
;
import
{
SetStudentAssistBatch
,
SetStudentAssistBatch
,
BatchForwardStudent
BatchForwardStudent
}
from
"../../../api/sale/sale"
;
}
from
"../../../api/sale/sale"
;
import
{
EduDownLoad
}
from
"../../../api/common/common"
;
import
{
import
{
queryEmployee
}
from
"../../../api/users/user"
;
EduDownLoad
}
from
"../../../api/common/common"
;
import
{
queryEmployee
}
from
"../../../api/users/user"
;
export
default
{
export
default
{
props
:
{
props
:
{
//数据列表
//数据列表
dataList
:
{
dataList
:
{
...
@@ -470,8 +319,7 @@ export default {
...
@@ -470,8 +319,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
columns
:
[
columns
:
[{
{
name
:
"StuIcon"
,
name
:
"StuIcon"
,
label
:
""
,
label
:
""
,
field
:
"StuIcon"
,
field
:
"StuIcon"
,
...
@@ -808,8 +656,7 @@ export default {
...
@@ -808,8 +656,7 @@ export default {
this
.
$q
this
.
$q
.
dialog
({
.
dialog
({
title
:
str
+
"学员"
,
title
:
str
+
"学员"
,
message
:
message
:
"你正在进行"
+
str
+
"学员行为,一旦执行无法找回,是否确认执行?"
,
"你正在进行"
+
str
+
"学员行为,一旦执行无法找回,是否确认执行?"
,
persistent
:
true
,
persistent
:
true
,
cancel
:
{
cancel
:
{
label
:
"取消"
,
label
:
"取消"
,
...
@@ -843,7 +690,6 @@ export default {
...
@@ -843,7 +690,6 @@ export default {
},
},
//刷新列表
//刷新列表
refreshStuList
()
{
refreshStuList
()
{
console
.
log
(
"change......"
);
this
.
$emit
(
"success"
);
this
.
$emit
(
"success"
);
this
.
selection
=
[];
this
.
selection
=
[];
},
},
...
@@ -1014,5 +860,5 @@ export default {
...
@@ -1014,5 +860,5 @@ export default {
});
});
}
}
}
}
};
};
</
script
>
</
script
>
\ No newline at end of file
src/components/stuMan/subscribe/subscribeForm.vue
View file @
b4394b76
...
@@ -33,6 +33,15 @@
...
@@ -33,6 +33,15 @@
</q-item-section>
</q-item-section>
</q-item>
</q-item>
</
template
>
</
template
>
<
template
v-slot:option=
"scope"
>
<q-item
v-bind=
"scope.itemProps"
v-on=
"scope.itemEvents"
>
<q-item-section>
<q-item-label
class=
"row flex justify-between"
>
<span>
{{
scope
.
opt
.
CourseName
}}
</span><span>
最小成班人数
{{
scope
.
opt
.
ScrollMinNum
}}
人
</span>
</q-item-label>
</q-item-section>
</q-item>
</
template
>
</q-select>
</q-select>
<select-tree
v-show=
"saveMsg.CourseId > 0 && editType == 1"
:treeData=
"chapterList"
<select-tree
v-show=
"saveMsg.CourseId > 0 && editType == 1"
:treeData=
"chapterList"
:defaultArray=
"returnString"
nodeKey=
"ChapterId"
labelKey=
"ChapterName"
childrenKey=
"ChildList"
:defaultArray=
"returnString"
nodeKey=
"ChapterId"
labelKey=
"ChapterName"
childrenKey=
"ChildList"
...
@@ -99,7 +108,7 @@
...
@@ -99,7 +108,7 @@
</q-field>
</q-field>
</template>
</template>
<div
class=
"row col-12"
v-if=
"(saveObj&& saveObj.ClassType==3)||editType==1"
>
<div
class=
"row col-12"
v-if=
"(saveObj&& saveObj.ClassType==3)||editType==1"
>
<div
class=
"row col-12"
>
<div
class=
"row col-12"
>
<div
class=
"col-9"
>
<div
class=
"col-9"
>
<q-select
filled
stack-label
use-input
option-value=
"StuId"
option-label=
"StuName"
v-model=
"stuInfo"
<q-select
filled
stack-label
use-input
option-value=
"StuId"
option-label=
"StuName"
v-model=
"stuInfo"
ref=
"StuId"
:options=
"stuList"
label=
"学员列表"
:dense=
"false"
class=
"col-6"
@
filter=
"filterStu"
ref=
"StuId"
:options=
"stuList"
label=
"学员列表"
:dense=
"false"
class=
"col-6"
@
filter=
"filterStu"
...
@@ -161,9 +170,9 @@
...
@@ -161,9 +170,9 @@
{{
item
.
CourseName
}}
{{
item
.
CourseName
}}
</td>
</td>
<td>
<td>
<template
v-if=
"item.AppointmentId==0"
>
{{
item
.
Course
ChapterNoName
}}
{{
item
.
Finish
ChapterNoName
}}
</
template
>
</td>
</td>
<td>
<td>
<template
v-if=
"item.AppointmentId>0"
>
<template
v-if=
"item.AppointmentId>0"
>
...
@@ -187,10 +196,8 @@
...
@@ -187,10 +196,8 @@
</template>
</template>
</td>
</td>
<td
width=
"60px"
>
<td
width=
"60px"
>
<q-btn
size=
"8px"
class=
"SurverDel"
<q-btn
size=
"8px"
class=
"SurverDel"
v-if=
"item.AppointmentId==0"
@
click=
"DeleteStu(index)"
@
click=
"DeleteStu(index)"
round
color=
"red"
icon=
"iconfont icon-shanchu"
/>
round
color=
"red"
icon=
"iconfont icon-shanchu"
/>
</td>
</td>
</tr>
</tr>
</tbody>
</tbody>
...
@@ -332,6 +339,7 @@
...
@@ -332,6 +339,7 @@
LearnCourseId
:
gItem
.
LearnCourseId
,
LearnCourseId
:
gItem
.
LearnCourseId
,
CourseName
:
gItem
.
LearnCourseName
,
CourseName
:
gItem
.
LearnCourseName
,
CourseGradeNo
:
gItem
.
CourseGradeNo
,
CourseGradeNo
:
gItem
.
CourseGradeNo
,
FinishChapterNoName
:
gItem
.
FinishChapterNoName
,
CourseChapterNoName
:
gItem
.
CourseChapterNoName
,
CourseChapterNoName
:
gItem
.
CourseChapterNoName
,
AppointmentId
:
gItem
.
AppointmentId
,
AppointmentId
:
gItem
.
AppointmentId
,
CourseGradeId
:
gItem
.
CourseGradeId
,
CourseGradeId
:
gItem
.
CourseGradeId
,
...
@@ -572,7 +580,7 @@
...
@@ -572,7 +580,7 @@
})
})
return
;
return
;
}
}
if
(
!
this
.
saveMsg
.
ChapterNo
)
{
if
(
!
this
.
saveMsg
.
ChapterNo
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
type
:
'negative'
,
type
:
'negative'
,
position
:
"top"
,
position
:
"top"
,
...
@@ -580,7 +588,7 @@
...
@@ -580,7 +588,7 @@
})
})
return
;
return
;
}
}
if
(
!
this
.
saveMsg
.
TeacherId
)
{
if
(
!
this
.
saveMsg
.
TeacherId
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
type
:
'negative'
,
type
:
'negative'
,
position
:
"top"
,
position
:
"top"
,
...
@@ -644,7 +652,7 @@
...
@@ -644,7 +652,7 @@
GuestId
:
this
.
stuInfo
.
GuestId
,
GuestId
:
this
.
stuInfo
.
GuestId
,
LearnCourseId
:
this
.
stuInfo
.
CourseId
,
LearnCourseId
:
this
.
stuInfo
.
CourseId
,
CourseName
:
this
.
stuInfo
.
CourseName
,
CourseName
:
this
.
stuInfo
.
CourseName
,
CourseChapterNoName
:
this
.
stuInfo
.
Course
ChapterNoName
,
FinishChapterNoName
:
this
.
stuInfo
.
Finish
ChapterNoName
,
AppointmentId
:
0
,
AppointmentId
:
0
,
//学员消课编号
//学员消课编号
CourseChapterList
:
[],
CourseChapterList
:
[],
...
@@ -653,79 +661,87 @@
...
@@ -653,79 +661,87 @@
sObj
.
CourseGradeNo
=
""
;
sObj
.
CourseGradeNo
=
""
;
// 对比是否存在改学员
// 对比是否存在改学员
if
(
this
.
saveMsg
.
ChooseStuList
.
length
>
0
){
if
(
this
.
saveMsg
.
ChooseStuList
.
length
>
0
)
{
let
ArrId
=
this
.
saveMsg
.
ChooseStuList
.
map
(
item
=>
{
return
item
.
GuestId
})
let
ArrId
=
this
.
saveMsg
.
ChooseStuList
.
map
(
item
=>
{
if
(
ArrId
.
indexOf
(
sObj
.
GuestId
)
==-
1
){
return
item
.
GuestId
})
if
(
ArrId
.
indexOf
(
sObj
.
GuestId
)
==
-
1
)
{
this
.
getCourseChapterList
(
sObj
);
this
.
getCourseChapterList
(
sObj
);
this
.
saveMsg
.
ChooseStuList
.
push
(
sObj
);
this
.
saveMsg
.
ChooseStuList
.
push
(
sObj
);
}
else
{
}
else
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
message
:
"该学员已选择,试试别的学员吧"
,
message
:
"该学员已选择,试试别的学员吧"
,
position
:
"top"
,
position
:
"top"
,
type
:
"negative"
type
:
"negative"
});
});
}
}
}
else
{
}
else
{
this
.
getCourseChapterList
(
sObj
);
this
.
getCourseChapterList
(
sObj
);
this
.
saveMsg
.
ChooseStuList
.
push
(
sObj
);
this
.
saveMsg
.
ChooseStuList
.
push
(
sObj
);
}
}
},
},
//保存约课
//保存约课
SaveStuAppointment
()
{
SaveStuAppointment
()
{
this
.
$refs
.
CourseId
.
validate
();
// this.$refs.CourseId.validate();
this
.
$refs
.
StuId
.
validate
();
// this.$refs.StuId.validate();
if
(
!
this
.
saveMsg
.
CourseId
)
{
// if (!this.saveMsg.CourseId) {
this
.
$q
.
notify
({
// this.$q.notify({
type
:
'negative'
,
// type: 'negative',
position
:
"top"
,
// position: "top",
message
:
`请选择课程`
// message: `请选择课程`
})
// })
return
;
// return;
}
// }
if
(
!
this
.
saveMsg
.
ChapterNo
){
// if(!this.saveMsg.ChapterNo){
this
.
$q
.
notify
({
// this.$q.notify({
type
:
'negative'
,
// type: 'negative',
position
:
"top"
,
// position: "top",
message
:
`请选择章节`
// message: `请选择章节`
})
// })
return
;
// return;
// }
// if(!this.saveMsg.TeacherId){
// this.$q.notify({
// type: 'negative',
// position: "top",
// message: `请选择老师`
// })
// return;
// }
// if (this.courseCheckList.length === 0) {
// this.$q.notify({
// message: "请选择上课时段",
// position: "top",
// type: "negative"
// });
// return;
// }
// if(this.saveMsg.ChooseStuList.length===0){
// this.$q.notify({
// message: "请添加学员",
// position: "top",
// type: "negative"
// });
// return;
// }
var
tipStr
=
""
if
(
this
.
saveMsg
.
ChooseStuList
&&
this
.
saveMsg
.
ChooseStuList
.
length
>
0
)
{
this
.
saveMsg
.
ChooseStuList
.
forEach
(
item
=>
{
if
(
item
.
CourseGradeNo
==
''
||
!
item
.
CourseGradeNo
)
{
tipStr
+=
"请选择【"
+
item
.
StuName
+
"】消课编号;"
;
}
}
if
(
!
this
.
saveMsg
.
TeacherId
){
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`请选择老师`
})
})
return
;
}
}
if
(
this
.
courseCheckList
.
length
===
0
)
{
if
(
tipStr
!=
''
)
{
this
.
$q
.
notify
({
message
:
"请选择上课时段"
,
position
:
"top"
,
type
:
"negative"
});
return
;
}
if
(
this
.
saveMsg
.
ChooseStuList
.
length
===
0
){
this
.
$q
.
notify
({
this
.
$q
.
notify
({
message
:
"请添加学员"
,
message
:
tipStr
,
position
:
"top"
,
type
:
"negative"
});
return
;
}
// 检查消课编号是否选择
let
ArrCourseGradeNo
=
this
.
saveMsg
.
ChooseStuList
.
map
(
item
=>
{
return
item
.
CourseGradeNo
})
if
(
ArrCourseGradeNo
.
indexOf
(
''
)
!=-
1
){
this
.
$q
.
notify
({
message
:
"请选择消课编号"
,
position
:
"top"
,
position
:
"top"
,
type
:
"negative"
type
:
"negative"
});
});
return
;
return
;
}
}
this
.
addLoading
=
true
;
this
.
addLoading
=
true
;
setAdminScrollAppointment_V3
(
this
.
saveMsg
)
setAdminScrollAppointment_V3
(
this
.
saveMsg
)
.
then
(
res
=>
{
.
then
(
res
=>
{
...
@@ -821,15 +837,18 @@
...
@@ -821,15 +837,18 @@
.timeItem
{
.timeItem
{
margin
:
10px
0
;
margin
:
10px
0
;
}
}
.table
{
.table
{
border-radius
:
5px
5px
0
0
;
border-radius
:
5px
5px
0
0
;
background
:
rgba
(
0
,
0
,
0
,
0.05
);
background
:
rgba
(
0
,
0
,
0
,
0.05
);
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.thead
{
.thead
{
background
:
rgba
(
0
,
0
,
0
,
0.09
);
background
:
rgba
(
0
,
0
,
0
,
0.09
);
}
}
.thead
tr
th
{
.thead
tr
th
{
padding
:
10px
0
;
padding
:
10px
0
;
}
}
</
style
>
</
style
>
\ No newline at end of file
src/components/todolist/index.vue
View file @
b4394b76
...
@@ -193,7 +193,6 @@ export default {
...
@@ -193,7 +193,6 @@ export default {
},
},
mounted
()
{
mounted
()
{
this
.
currentMenu
=
this
.
menulist
[
0
].
id
.
toString
();
this
.
currentMenu
=
this
.
menulist
[
0
].
id
.
toString
();
//console.log(this.todoTipList);
},
},
methods
:
{}
methods
:
{}
};
};
...
...
src/components/todolist/payee.vue
View file @
b4394b76
<
template
>
<
template
>
<div
class=
"full-height"
>
<div
class=
"full-height"
>
<div
class=
"row items-center"
>
<div
class=
"row items-center"
>
<q-avatar
<q-avatar
size=
"40px"
font-size=
"20px"
color=
"primary"
class=
"q-mr-md"
text-color=
"white"
rounded
size=
"40px"
:icon=
"`iconfont $
{node.icon}`" />
font-size=
"20px"
color=
"primary"
class=
"q-mr-md"
text-color=
"white"
rounded
:icon=
"`iconfont $
{node.icon}`"
/>
<div
class=
"pingfang text-subtitle1"
>
{{
node
.
name
}}
</div>
<div
class=
"pingfang text-subtitle1"
>
{{
node
.
name
}}
</div>
</div>
</div>
<div
class=
"q-my-md row"
>
<div
class=
"q-my-md row"
>
<q-input
<q-input
standout
v-model=
"msg.KeyWords"
dense
type=
"text"
style=
"width:250px;"
label=
"关键字(名称/微信/手机号)"
standout
class=
"q-mr-md"
/>
v-model=
"msg.KeyWords"
<q-btn
color=
"primary"
class=
"q-px-md"
label=
"查询"
unelevated
dense
@
click=
"searchKeyHandler"
/>
dense
type=
"text"
style=
"width:250px;"
label=
"关键字(名称/微信/手机号)"
class=
"q-mr-md"
/>
<q-btn
color=
"primary"
class=
"q-px-md"
label=
"查询"
unelevated
dense
@
click=
"searchKeyHandler"
/>
<div
class=
"col text-right text-grey-6 f12"
>
<div
class=
"col text-right text-grey-6 f12"
>
TIPS:创建订单后,请及时完成订单款项的入账动作,收款单据点击“修改-选择学员-制单”完成此项任务。
TIPS:创建订单后,请及时完成订单款项的入账动作,收款单据点击“修改-选择学员-制单”完成此项任务。
</div>
</div>
</div>
</div>
<div
style=
"height:calc(100% - 158px);overflow-y:auto;"
>
<div
style=
"height:calc(100% - 158px);overflow-y:auto;"
>
<orderlist
<orderlist
:dataList=
"stus"
@
success=
"refreshPage"
:loading=
"loading"
:authObj=
"authObj"
></orderlist>
:dataList=
"stus"
@
success=
"refreshPage"
:loading=
"loading"
:authObj=
"authObj"
></orderlist>
</div>
</div>
<div
class=
"row"
style=
"justify-content: flex-end;padding: 5px 20px"
>
<div
class=
"row"
style=
"justify-content: flex-end;padding: 5px 20px"
>
<q-pagination
<q-pagination
v-model=
"msg.PageIndex"
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
v-model=
"msg.PageIndex"
color=
"primary"
:input=
"true"
>
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
color=
"primary"
:input=
"true"
>
</q-pagination>
</q-pagination>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
orderlist
from
"../sale/orderlist.vue"
;
import
orderlist
from
"../sale/orderlist.vue"
;
import
{
getMyOrderNotBalance
}
from
"../../api/stuMan/index"
;
import
{
export
default
{
getMyOrderNotBalance
components
:
{
orderlist
},
}
from
"../../api/stuMan/index"
;
export
default
{
components
:
{
orderlist
},
props
:
[
"node"
],
props
:
[
"node"
],
data
()
{
data
()
{
return
{
return
{
...
@@ -97,7 +69,6 @@ export default {
...
@@ -97,7 +69,6 @@ export default {
.
then
(
r
=>
{
.
then
(
r
=>
{
this
.
stus
=
r
.
Data
.
PageData
;
this
.
stus
=
r
.
Data
.
PageData
;
this
.
pageCount
=
r
.
Data
.
PageCount
;
this
.
pageCount
=
r
.
Data
.
PageCount
;
console
.
log
(
this
.
stus
);
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
},
1000
);
},
1000
);
...
@@ -118,7 +89,7 @@ export default {
...
@@ -118,7 +89,7 @@ export default {
this
.
getStudent
();
this
.
getStudent
();
}
}
}
}
};
};
</
script
>
</
script
>
<
style
>
<
style
><
/
style
>
</
style
>
\ No newline at end of file
src/pages/Work.vue
View file @
b4394b76
...
@@ -225,7 +225,6 @@ export default {
...
@@ -225,7 +225,6 @@ export default {
methods
:
{
methods
:
{
initTodoList
()
{
initTodoList
()
{
getTodayStatic
().
then
(
r
=>
{
getTodayStatic
().
then
(
r
=>
{
console
.
log
(
r
);
let
d
=
r
.
Data
;
let
d
=
r
.
Data
;
this
.
todoList
.
result
=
d
;
this
.
todoList
.
result
=
d
;
let
tempCount
=
0
;
let
tempCount
=
0
;
...
...
src/pages/classroom/Scheduling.vue
View file @
b4394b76
<
template
>
<
template
>
<div
class=
"page-body room-list"
v-loading=
"loading"
>
<div
class=
"page-body room-list"
v-loading=
"loading"
>
<div
v-for=
"(item, i) in classdata"
:key=
"item.Key"
>
<div
v-for=
"(item, i) in classdata"
:key=
"item.Key"
>
<template
<template
v-if=
"
v-if=
"
item.SchoolName.indexOf('武侯') == -1 &&
item.SchoolName.indexOf('武侯') == -1 &&
item.SchoolName.indexOf('眉山') == -1
item.SchoolName.indexOf('眉山') == -1
"
"
>
>
<div
class=
"row items-center"
>
<div
class=
"row items-center"
>
<div
class=
"text-h6 col"
>
{{
item
.
SchoolName
}}
</div>
<div
class=
"text-h6 col"
>
{{
item
.
SchoolName
}}
</div>
<div
v-if=
"i == 0"
class=
"f12"
>
只看在线:
</div>
<div
v-if=
"i == 0"
class=
"f12"
>
只看在线:
</div>
<div
v-if=
"i == 0"
>
<div
v-if=
"i == 0"
>
<el-switch
<el-switch
v-model=
"queryStatus"
@
change=
"changeViewStatusHandler"
></el-switch>
v-model=
"queryStatus"
@
change=
"changeViewStatusHandler"
></el-switch>
</div>
</div>
</div>
</div>
<div
class=
"q-mt-md q-mb-lg row"
>
<div
class=
"q-mt-md q-mb-lg row"
>
<template
v-for=
"(x, xi) in item.RoomList"
>
<template
v-for=
"(x, xi) in item.RoomList"
>
<div
<div
class=
"class-room"
style=
"width:calc(20% - 10px);margin-right:10px;margin-bottom:10px;"
class=
"class-room"
v-if=
"queryStatus == 0 || (queryStatus == 1 && x.StatusInfo)"
:key=
"xi"
>
style=
"width:calc(20% - 10px);margin-right:10px;margin-bottom:10px;"
v-if=
"queryStatus == 0 || (queryStatus == 1 && x.StatusInfo)"
:key=
"xi"
>
<div
class=
"img-box"
>
<div
class=
"img-box"
>
<q-img
<q-img
:src=
"x.RoomPicList[0]"
height=
"100%"
fit=
"fill"
spinner-color=
"primary"
spinner-size=
"30px"
:src=
"x.RoomPicList[0]"
v-if=
"x.RoomPicList && x.RoomPicList.length > 0"
/>
height=
"100%"
<q-img
src=
"../../assets/images/classroom/bg-img.jpg"
fit=
"fill"
height=
"100%"
spinner-color=
"primary"
fit=
"fill"
spinner-size=
"30px"
v-else
/>
spinner-color=
"primary"
spinner-size=
"30px"
v-if=
"x.RoomPicList && x.RoomPicList.length > 0"
/>
<q-img
src=
"../../assets/images/classroom/bg-img.jpg"
fit=
"fill"
height=
"100%"
spinner-color=
"primary"
spinner-size=
"30px"
v-else
/>
</div>
</div>
<div
class=
"xuhua"
></div>
<div
class=
"xuhua"
></div>
<div
class=
"q-pa-md"
>
<div
class=
"q-pa-md"
>
...
@@ -58,37 +37,19 @@
...
@@ -58,37 +37,19 @@
</div>
</div>
<div
class=
"q-mt-lg f12 row items-center"
>
<div
class=
"q-mt-lg f12 row items-center"
>
<div
class=
"text-grey-6 f12 col"
>
<div
class=
"text-grey-6 f12 col"
>
<span
<span
class=
"q-px-xs text-white q-mr-md inline-block text-weight-bold"
class=
"q-px-xs text-white q-mr-md inline-block text-weight-bold"
style=
"border-radius:4px;font-size:15;"
:class=
"
{
style=
"border-radius:4px;font-size:15;"
:class=
"
{
'bg-grey-3': !x.StatusInfo,
'bg-grey-3': !x.StatusInfo,
'bg-negative': x.StatusInfo
'bg-negative': x.StatusInfo
}"
}">
>
LIVE
LIVE
</span>
</span>
<span
class=
"text-grey-6"
v-if=
"!x.StatusInfo"
<span
class=
"text-grey-6"
v-if=
"!x.StatusInfo"
>
设备离线
</span>
>
设备离线
</span
<span
class=
"text-grey-6"
v-else-if=
"x.StatusInfo.UnLockUserName == 'lock'"
>
设备在线,未解锁
</span>
>
<span
class=
"text-grey-6"
v-else
>
{{
x
.
StatusInfo
.
UnLockUserName
}}
正在使用
</span>
<span
class=
"text-grey-6"
v-else-if=
"x.StatusInfo.UnLockUserName == 'lock'"
>
设备在线,未解锁
</span
>
<span
class=
"text-grey-6"
v-else
>
{{
x
.
StatusInfo
.
UnLockUserName
}}
正在使用
</span
>
</div>
</div>
<div
v-if=
"x.StatusInfo"
>
<div
v-if=
"x.StatusInfo"
>
<q-btn
<q-btn
color=
"primary"
dense
class=
"f12"
flat
label=
"链接"
@
click=
"openVideo(x)"
/>
color=
"primary"
dense
class=
"f12"
flat
label=
"链接"
@
click=
"openVideo(x)"
/>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -98,24 +59,20 @@
...
@@ -98,24 +59,20 @@
</template>
</template>
</div>
</div>
<q-dialog
v-model=
"showVideo"
@
hide=
"clearVideo"
>
<q-dialog
v-model=
"showVideo"
@
hide=
"clearVideo"
>
<q-card
<q-card
class=
"my-card"
class=
"my-card"
style=
"width:64vw !important;max-width:64vw !important;max-height:32vw !important;height:32vw !important;"
flat
>
style=
"width:64vw !important;max-width:64vw !important;max-height:32vw !important;height:32vw !important;"
<div
id=
"player-con"
style=
"width:100%;height:100%;overflow:hidden;"
></div>
flat
>
<div
id=
"player-con"
style=
"width:100%;height:100%;overflow:hidden;"
></div>
</q-card>
</q-card>
</q-dialog>
</q-dialog>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
getUseClassRoomList
}
from
"../../api/classroom/index"
;
import
{
import
*
as
signalR
from
"@aspnet/signalr"
;
getUseClassRoomList
export
default
{
}
from
"../../api/classroom/index"
;
import
*
as
signalR
from
"@aspnet/signalr"
;
export
default
{
meta
:
{
meta
:
{
title
:
"教室状态"
title
:
"教室状态"
},
},
...
@@ -135,7 +92,6 @@ export default {
...
@@ -135,7 +92,6 @@ export default {
created
()
{
created
()
{
let
thisVue
=
this
;
let
thisVue
=
this
;
console
.
log
(
process
.
env
.
API_SIG
);
this
.
connection
=
new
signalR
.
HubConnectionBuilder
()
this
.
connection
=
new
signalR
.
HubConnectionBuilder
()
.
withUrl
(
process
.
env
.
API_SIG
,
{
.
withUrl
(
process
.
env
.
API_SIG
,
{
skipNegotiation
:
true
,
skipNegotiation
:
true
,
...
@@ -143,9 +99,8 @@ export default {
...
@@ -143,9 +99,8 @@ export default {
})
})
.
configureLogging
(
signalR
.
LogLevel
.
Information
)
.
configureLogging
(
signalR
.
LogLevel
.
Information
)
.
build
();
.
build
();
this
.
connection
.
on
(
"RoomStatusChange"
,
function
(
message
)
{
this
.
connection
.
on
(
"RoomStatusChange"
,
function
(
message
)
{
thisVue
.
roomStatusList
=
JSON
.
parse
(
message
);
thisVue
.
roomStatusList
=
JSON
.
parse
(
message
);
console
.
log
(
thisVue
.
roomStatusList
);
thisVue
.
changeStatus
();
thisVue
.
changeStatus
();
});
});
this
.
connection
.
onclose
(
async
()
=>
{
this
.
connection
.
onclose
(
async
()
=>
{
...
@@ -176,8 +131,7 @@ export default {
...
@@ -176,8 +131,7 @@ export default {
});
});
},
},
initPlayer
(
url
)
{
initPlayer
(
url
)
{
this
.
player
=
new
Aliplayer
(
this
.
player
=
new
Aliplayer
({
{
id
:
"player-con"
,
id
:
"player-con"
,
source
:
url
,
source
:
url
,
width
:
"100%"
,
width
:
"100%"
,
...
@@ -190,7 +144,7 @@ export default {
...
@@ -190,7 +144,7 @@ export default {
controlBarVisibility
:
"hover"
,
controlBarVisibility
:
"hover"
,
useH5Prism
:
true
useH5Prism
:
true
},
},
function
(
player
)
{}
function
(
player
)
{}
);
);
},
},
changeStatus
()
{
changeStatus
()
{
...
@@ -225,11 +179,9 @@ export default {
...
@@ -225,11 +179,9 @@ export default {
this
.
connection
this
.
connection
.
start
()
.
start
()
.
then
(()
=>
{
.
then
(()
=>
{
console
.
log
(
"linke success"
);
thatVue
.
connection
.
invoke
(
"RegistErp"
,
"IMERP"
);
thatVue
.
connection
.
invoke
(
"RegistErp"
,
"IMERP"
);
})
})
.
catch
(
e
=>
{
.
catch
(
e
=>
{
console
.
log
(
e
);
setTimeout
(()
=>
{
setTimeout
(()
=>
{
thatVue
.
linkHub
();
thatVue
.
linkHub
();
},
3000
);
},
3000
);
...
@@ -263,35 +215,39 @@ export default {
...
@@ -263,35 +215,39 @@ export default {
});
});
}
}
}
}
};
};
</
script
>
</
script
>
<
style
>
<
style
>
.class-room
{
.class-room
{
border
:
1px
solid
#f5f5f5
;
border
:
1px
solid
#f5f5f5
;
border-radius
:
10px
;
border-radius
:
10px
;
position
:
relative
;
position
:
relative
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.class-room
.img-box
{
.class-room
.img-box
{
height
:
80px
;
height
:
80px
;
}
}
.class-room
.xuhua
{
.class-room
.xuhua
{
position
:
absolute
;
position
:
absolute
;
top
:
0
;
top
:
0
;
height
:
80px
;
height
:
80px
;
left
:
0
;
left
:
0
;
right
:
0
;
right
:
0
;
backdrop-filter
:
blur
(
4px
);
backdrop-filter
:
blur
(
4px
);
}
}
.class-room
:hover
.xuhua
{
.class-room
:hover
.xuhua
{
backdrop-filter
:
none
;
backdrop-filter
:
none
;
}
}
.no-data
{
.no-data
{
height
:
75px
;
height
:
75px
;
font-size
:
14px
;
font-size
:
14px
;
color
:
#000000
;
color
:
#000000
;
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
}
}
</
style
>
</
style
>
\ No newline at end of file
src/pages/financial/market/marketStatistics.vue
View file @
b4394b76
...
@@ -4,17 +4,23 @@
...
@@ -4,17 +4,23 @@
padding
:
18px
0
0
16px
;
padding
:
18px
0
0
16px
;
text-align
:
right
;
text-align
:
right
;
}
}
.cycleOrderList
.border-bottom
{
.cycleOrderList
.border-bottom
{
/* border-bottom: 1px dashed #EEE; */
/* border-bottom: 1px dashed #EEE; */
padding-bottom
:
5px
;
padding-bottom
:
5px
;
margin-bottom
:
5px
;
margin-bottom
:
5px
;
}
}
.cycleOrderList
.text-bottom
{
height
:
32px
;
line-height
:
32px
;
margin-bottom
:
10px
;
.cycleOrderList
.text-bottom
{
height
:
32px
;
line-height
:
32px
;
margin-bottom
:
10px
;
}
}
.cycleOrderList
._icon_btn
i
.icon-sousuo
{
.cycleOrderList
._icon_btn
i
.icon-sousuo
{
background-color
:
#47BF8C
;
background-color
:
#47BF8C
;
}
}
.cycleOrderList
._icon_btn
i
{
.cycleOrderList
._icon_btn
i
{
width
:
30px
;
width
:
30px
;
height
:
30px
;
height
:
30px
;
...
@@ -27,28 +33,28 @@
...
@@ -27,28 +33,28 @@
cursor
:
pointer
;
cursor
:
pointer
;
outline
:
none
;
outline
:
none
;
}
}
.cycleOrderList
.el-table
td
,
.el-table
th
{
.cycleOrderList
.el-table
td
,
.el-table
th
{
padding
:
5px
0
;
padding
:
5px
0
;
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"page-body cycleOrderList"
>
<div
class=
"page-body cycleOrderList"
>
<div
class=
"page-search row items-center"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
filled
stack-label
@
input=
"getDepartList(msg.School_Id),resetSearch()"
option-value=
"SId"
<q-select
filled
stack-label
@
input=
"getDepartList(msg.School_Id),resetSearch()"
option-value=
"SId"
option-label=
"SName"
v-model=
"msg.School_Id"
ref=
"School_Id"
:options=
"schoolList"
label=
"校区
"
option-label=
"SName"
v-model=
"msg.School_Id"
ref=
"School_Id"
:options=
"schoolList"
label=
"校区"
:dense=
"false
"
:dense=
"false"
emit-value
map-options
/>
emit-value
map-options
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<selectTree
:treeData=
'DeptList'
:defaultArray=
"returnString"
nodeKey=
"DeptId"
:multiple=
"false"
<selectTree
:treeData=
'DeptList'
:defaultArray=
"returnString"
nodeKey=
"DeptId"
:multiple=
"false"
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"选择部门"
@
getChild=
"getChild"
></selectTree>
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"选择部门"
@
getChild=
"getChild"
></selectTree>
</div>
</div>
<q-select
@
input=
"resetSearch"
filled
stack-label
option-value=
"Id"
option-label=
"EmployeeName"
use-input
<q-select
@
input=
"resetSearch"
filled
stack-label
option-value=
"Id"
option-label=
"EmployeeName"
use-input
v-model=
"msg.UserId"
ref=
"DeptTier"
:options=
"PersionList"
label=
"销售"
:dense=
"false"
v-model=
"msg.UserId"
ref=
"DeptTier"
:options=
"PersionList"
label=
"销售"
:dense=
"false"
class=
"col-3 "
emit-value
class=
"col-3 "
emit-value
map-options
@
filter=
"filterFn2"
>
map-options
@
filter=
"filterFn2"
>
<template
v-slot:no-option
>
<template
v-slot:no-option
>
<q-item>
<q-item>
<q-item-section
class=
"text-grey"
>
<q-item-section
class=
"text-grey"
>
...
@@ -59,8 +65,8 @@
...
@@ -59,8 +65,8 @@
</q-select>
</q-select>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
filled
stack-label
use-input
input-debounce=
"0"
option-value=
"ClassId"
@
input=
"getList"
<q-select
filled
stack-label
use-input
input-debounce=
"0"
option-value=
"ClassId"
@
input=
"getList"
option-label=
"ClassName"
v-model=
"msg.ClassId"
:options=
"ClassList"
label=
"班级"
:dense=
"false"
option-label=
"ClassName"
v-model=
"msg.ClassId"
:options=
"ClassList"
label=
"班级"
:dense=
"false"
emit-value
emit-value
map-options
@
filter=
"filterFn"
>
map-options
@
filter=
"filterFn"
>
<
template
v-slot:no-option
>
<
template
v-slot:no-option
>
<q-item>
<q-item>
<q-item-section
class=
"text-grey"
>
<q-item-section
class=
"text-grey"
>
...
@@ -70,81 +76,74 @@
...
@@ -70,81 +76,74 @@
</
template
>
</
template
>
</q-select>
</q-select>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"page-search row items-center"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
filled
stack-label
@
input=
"resetSearch()"
option-value=
"Id"
<q-select
filled
stack-label
@
input=
"resetSearch()"
option-value=
"Id"
option-label=
"Name"
option-label=
"Name"
v-model=
"msg.PeriodId"
:options=
"PeriodsList"
label=
"周期"
v-model=
"msg.PeriodId"
:options=
"PeriodsList"
label=
"周期"
:dense=
"false"
emit-value
map-options
/>
:dense=
"false"
emit-value
map-options
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
filled
v-model=
"msg.OrderId"
@
keyup
.
enter
.
native=
"resetSearch()"
label=
"订单号"
/>
<q-input
filled
v-model=
"msg.OrderId"
@
keyup
.
enter
.
native=
"resetSearch()"
label=
"订单号"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
filled
stack-label
input-debounce=
"0"
option-value=
"Id"
@
input=
"resetSearch()"
<q-select
filled
stack-label
input-debounce=
"0"
option-value=
"Id"
@
input=
"resetSearch()"
option-label=
"Name"
option-label=
"Name"
v-model=
"msg.UserType"
:options=
"UserTypeList"
label=
"类型"
:dense=
"false"
emit-value
v-model=
"msg.UserType"
:options=
"UserTypeList"
label=
"类型"
:dense=
"false"
emit-value
map-options
>
map-options
>
</q-select>
</q-select>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
filled
stack-label
input-debounce=
"0"
option-value=
"Id"
@
input=
"resetSearch()"
<q-select
filled
stack-label
input-debounce=
"0"
option-value=
"Id"
@
input=
"resetSearch()"
option-label=
"Name"
option-label=
"Name"
v-model=
"msg.IsDept"
:options=
"IsDeptList"
label=
"业绩方式"
:dense=
"false"
emit-value
v-model=
"msg.IsDept"
:options=
"IsDeptList"
label=
"业绩方式"
:dense=
"false"
emit-value
map-options
>
map-options
>
</q-select>
</q-select>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"page-search row items-center"
style=
"justify-content: space-between;"
>
<div
class=
"page-search row items-center"
style=
"justify-content: space-between;"
>
<span
style=
"font-size: 20px;font-weight: 400;"
>
提成统计
<span
style=
"font-size: 16px;"
>
(提成总计:{{TotalCommission}})
</span>
</span>
<span
style=
"font-size: 20px;font-weight: 400;"
>
提成统计
<span
<q-btn
color=
"primary"
size=
"11px"
label=
"导出"
@
click=
"tcexport"
style=
"margin-left:10px"
/>
style=
"font-size: 16px;"
>
(提成总计:{{TotalCommission}})
</span>
</span>
<q-btn
color=
"primary"
size=
"11px"
label=
"导出"
@
click=
"tcexport"
style=
"margin-left:10px"
/>
</div>
</div>
<
template
>
<
template
>
<el-table
<el-table
ref=
"filterTable"
:data=
"tableData"
v-loading=
'loading'
ref=
"filterTable"
:header-cell-style=
"
{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
:data=
"tableData"
<el-table-column
prop=
"SchoolName"
label=
"校区"
width=
'150'
></el-table-column>
v-loading =
'loading'
<el-table-column
prop=
"DeptName"
label=
"部门"
></el-table-column>
<el-table-column
prop=
"UserType"
label=
"类型"
>
:header-cell-style=
"
{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border
style="width: 100%">
<el-table-column
prop=
"SchoolName"
label=
"校区"
width=
'150'
></el-table-column>
<el-table-column
prop=
"DeptName"
label=
"部门"
></el-table-column>
<el-table-column
prop=
"UserType"
label=
"类型"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.UserType==1"
>
市场
</span>
<span
v-if=
"scope.row.UserType==1"
>
市场
</span>
<span
v-if=
"scope.row.UserType==2"
>
顾问
</span>
<span
v-if=
"scope.row.UserType==2"
>
顾问
</span>
<span
v-if=
"scope.row.UserType==3"
>
教师
</span>
<span
v-if=
"scope.row.UserType==3"
>
教师
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"UserName"
label=
"人员"
>
</el-table-column>
<el-table-column
prop=
"UserName"
label=
"人员"
>
</el-table-column>
<el-table-column
prop=
"IsDept"
label=
"业绩方式"
>
<el-table-column
prop=
"IsDept"
label=
"业绩方式"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.IsDept==1"
>
部门
</span>
<span
v-if=
"scope.row.IsDept==1"
>
部门
</span>
<span
v-if=
"scope.row.IsDept==2"
>
个人
</span>
<span
v-if=
"scope.row.IsDept==2"
>
个人
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
'170'
prop=
"ClassName"
label=
"班级信息"
>
<el-table-column
width=
'170'
prop=
"ClassName"
label=
"班级信息"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div><span
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goUrlclass('/course/classManage',scope.row.ClassName)"
>
{{
scope
.
row
.
ClassName
}}
</span>
{{
scope
.
row
.
ClassTypeName
}}
<span
style=
"color: #409EFF;"
v-if=
'scope.row.IsContinueClass==1'
>
(续)
</span></div>
<div><span
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goUrlclass('/course/classManage',scope.row.ClassName)"
>
{{
scope
.
row
.
ClassName
}}
</span>
{{
scope
.
row
.
ClassTypeName
}}
<span
style=
"color: #409EFF;"
v-if=
'scope.row.IsContinueClass==1'
>
(续)
</span>
</div>
<div>
学生数量:
{{
scope
.
row
.
StudentCount
}}
人
</div>
<div>
学生数量:
{{
scope
.
row
.
StudentCount
}}
人
</div>
<div>
班号:
{{
scope
.
row
.
ClassNo
}}
</div>
<div>
班号:
{{
scope
.
row
.
ClassNo
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"OrderId"
label=
"订单号"
>
<el-table-column
prop=
"OrderId"
label=
"订单号"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goUrlorderList(scope.row.ClassType == -1 ?'/sale/studyOrderStatistics' : '/sale/orderStatistics',scope.row)"
>
{{
scope
.
row
.
OrderId
}}
</div>
<div
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goUrlorderList(scope.row.ClassType == -1 ?'/sale/studyOrderStatistics' : '/sale/orderStatistics',scope.row)"
>
{{
scope
.
row
.
OrderId
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
'130'
prop=
"TotalCommissionMoney"
label=
"订单发放信息"
>
<el-table-column
width=
'130'
prop=
"TotalCommissionMoney"
label=
"订单发放信息"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
style=
"color: rgb(255, 156, 0);cursor: pointer;text-decoration: underline;"
@
click=
"getmingxi(scope.row)"
>
<div
style=
"color: rgb(255, 156, 0);cursor: pointer;text-decoration: underline;"
@
click=
"getmingxi(scope.row)"
>
应发:
{{
scope
.
row
.
TotalCommissionMoney
}}
应发:
{{
scope
.
row
.
TotalCommissionMoney
}}
<q-popup-proxy
transition-show=
"flip-up"
transition-hide=
"flip-down"
>
<q-popup-proxy
transition-show=
"flip-up"
transition-hide=
"flip-down"
>
<div
style=
"padding: 10px;border-radius: 4px;background: #FFF;max-width: 500px;"
>
<div
style=
"padding: 10px;border-radius: 4px;background: #FFF;max-width: 500px;"
>
...
@@ -154,7 +153,6 @@
...
@@ -154,7 +153,6 @@
</div>
</div>
<div>
累计已发:
{{
scope
.
row
.
GiveOutMoney
}}
</div>
<div>
累计已发:
{{
scope
.
row
.
GiveOutMoney
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"IsFirstCommission"
label=
"首次发放"
>
<el-table-column
prop=
"IsFirstCommission"
label=
"首次发放"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
...
@@ -168,34 +166,29 @@
...
@@ -168,34 +166,29 @@
<div>
当期课时:
{{
scope
.
row
.
CurrentHours
>=
0
?
scope
.
row
.
CurrentHours
:
'-'
}}
</div>
<div>
当期课时:
{{
scope
.
row
.
CurrentHours
>=
0
?
scope
.
row
.
CurrentHours
:
'-'
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
'160'
prop=
"CurrentPeriodMoney"
label=
"当期发放信息"
>
<el-table-column
width=
'160'
prop=
"CurrentPeriodMoney"
label=
"当期发放信息"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
style=
"color: rgb(255, 156, 0);"
>
应发:
{{
scope
.
row
.
CurrentPeriodMoney
}}
</div>
<div
style=
"color: rgb(255, 156, 0);"
>
应发:
{{
scope
.
row
.
CurrentPeriodMoney
}}
</div>
<div>
抵扣:
{{
scope
.
row
.
DeductionMoney
}}
</div>
<div>
抵扣:
{{
scope
.
row
.
DeductionMoney
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"YFMoney"
label=
"最终发放"
>
<el-table-column
prop=
"YFMoney"
label=
"最终发放"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
style=
"color: rgb(233, 82, 82);"
>
{{
scope
.
row
.
YFMoney
}}
</div>
<div
style=
"color: rgb(233, 82, 82);"
>
{{
scope
.
row
.
YFMoney
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
'85'
prop=
"Periods"
label=
"期数"
>
</el-table-column>
<el-table-column
width=
'85'
prop=
"Periods"
label=
"期数"
>
</el-table-column>
<el-table-column
prop=
"Remark"
width=
'160'
label=
"备注"
>
</el-table-column>
<el-table-column
prop=
"Remark"
width=
'160'
label=
"备注"
>
</el-table-column>
</el-table>
</el-table>
<div
style=
"margin-top: 10px;text-align: center;"
>
<div
style=
"margin-top: 10px;text-align: center;"
>
<el-pagination
background
@
current-change=
"handleCurrentChanges"
layout=
"total,prev, pager, next, jumper"
:current-page
.
sync=
"msg.PageIndex
"
<el-pagination
background
@
current-change=
"handleCurrentChanges"
layout=
"total,prev, pager, next, jumper
"
:page-size=
"msg.PageSize"
:total=
'total'
>
:current-page
.
sync=
"msg.PageIndex"
:page-size=
"msg.PageSize"
:total=
'total'
>
</el-pagination>
</el-pagination>
</div>
</div>
</template>
</template>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
import
{
getSchoolDropdown
getSchoolDropdown
}
from
'../../../api/school/index'
}
from
'../../../api/school/index'
...
@@ -206,7 +199,7 @@
...
@@ -206,7 +199,7 @@
getDeptTree
getDeptTree
}
from
'../../../api/system/dept.js'
}
from
'../../../api/system/dept.js'
import
{
import
{
getSellAchievementsStatistics
,
getSellAchievementsStatistics
,
getSellAchievementsPeriodsList
,
getSellAchievementsPeriodsList
,
getSellAchievementsChangeLog
getSellAchievementsChangeLog
...
@@ -218,7 +211,9 @@
...
@@ -218,7 +211,9 @@
import
{
import
{
EduDownLoad
,
EduDownLoad
,
}
from
'../../../api/common/common'
;
}
from
'../../../api/common/common'
;
import
{
number
}
from
'echarts'
import
{
number
}
from
'echarts'
export
default
{
export
default
{
meta
:
{
meta
:
{
title
:
"业绩提成统计"
title
:
"业绩提成统计"
...
@@ -232,100 +227,112 @@ import { number } from 'echarts'
...
@@ -232,100 +227,112 @@ import { number } from 'echarts'
loading
:
false
,
loading
:
false
,
//列表数据参数
//列表数据参数
msg
:
{
msg
:
{
PageIndex
:
1
,
PageIndex
:
1
,
PageSize
:
10
,
PageSize
:
10
,
School_Id
:
'-1'
,
School_Id
:
'-1'
,
Depart_Id
:
0
,
Depart_Id
:
0
,
PeriodId
:
0
,
PeriodId
:
0
,
UserId
:
0
,
UserId
:
0
,
ClassId
:
0
,
ClassId
:
0
,
OrderId
:
''
,
OrderId
:
''
,
UserType
:
0
,
//类型 1市场、2顾问、3教师
UserType
:
0
,
//类型 1市场、2顾问、3教师
IsDept
:
0
,
//业绩方式 1部门 2个人
IsDept
:
0
,
//业绩方式 1部门 2个人
},
},
UserTypeList
:[{
Id
:
0
,
Name
:
'不限'
},{
Id
:
1
,
Name
:
'市场'
},{
Id
:
2
,
Name
:
'顾问'
},{
Id
:
3
,
Name
:
'教师'
},],
UserTypeList
:
[{
IsDeptList
:[{
Id
:
0
,
Name
:
'不限'
},{
Id
:
1
,
Name
:
'部门'
},{
Id
:
2
,
Name
:
'个人'
}],
Id
:
0
,
Name
:
'不限'
},
{
Id
:
1
,
Name
:
'市场'
},
{
Id
:
2
,
Name
:
'顾问'
},
{
Id
:
3
,
Name
:
'教师'
},
],
IsDeptList
:
[{
Id
:
0
,
Name
:
'不限'
},
{
Id
:
1
,
Name
:
'部门'
},
{
Id
:
2
,
Name
:
'个人'
}],
pageCount
:
0
,
pageCount
:
0
,
persistent
:
false
,
persistent
:
false
,
listData
:
{},
listData
:
{},
tableData
:
[],
tableData
:
[],
total
:
0
,
total
:
0
,
company
:
[],
company
:
[],
department
:
[],
department
:
[],
ClassList
:
[],
ClassList
:
[],
allClassList
:
[],
allClassList
:
[],
returnString
:
[],
//默认岗位
returnString
:
[],
//默认岗位
see_tcdetailed
:
false
,
see_tcdetailed
:
false
,
schoolList
:
[],
schoolList
:
[],
DeptList
:
[],
// 部门下拉
DeptList
:
[],
// 部门下拉
PersionList
:
[],
//员工列表
PersionList
:
[],
//员工列表
AllemployeeList
:
[],
//所有员工
AllemployeeList
:
[],
//所有员工
PeriodsList
:[],
//周期列表
PeriodsList
:
[],
//周期列表
TotalCommission
:
0
,
TotalCommission
:
0
,
ChangeLog
:
''
,
ChangeLog
:
''
,
}
}
},
},
created
()
{
created
()
{
let
userinfo
=
this
.
getLocalStorage
();
let
userinfo
=
this
.
getLocalStorage
();
userinfo
.
ActionMenuList
.
map
(
x
=>
{
//判断权限
userinfo
.
ActionMenuList
.
map
(
x
=>
{
//判断权限
if
(
x
.
FunctionCode
==
"see_tcdetailed"
){
//判断是否可以查看其他明细
if
(
x
.
FunctionCode
==
"see_tcdetailed"
)
{
//判断是否可以查看其他明细
this
.
see_tcdetailed
=
true
;
this
.
see_tcdetailed
=
true
;
}
}
})
})
if
(
this
.
see_tcdetailed
==
false
)
{
if
(
this
.
see_tcdetailed
==
false
)
{
this
.
msg
.
UserId
=
userinfo
.
Id
this
.
msg
.
UserId
=
userinfo
.
Id
}
}
},
},
mounted
()
{
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
OrderId
)
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
OrderId
)
{
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
}
}
// 从业绩表跳转带参
// 从业绩表跳转带参
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
UserId
)
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
UserId
)
{
this
.
PersionList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
AllemployeeList
))
this
.
PersionList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
AllemployeeList
))
this
.
msg
.
UserId
=
this
.
$route
.
query
.
UserId
-
0
this
.
msg
.
UserId
=
this
.
$route
.
query
.
UserId
-
0
}
}
this
.
getList
()
this
.
getList
()
this
.
getEmployee
();
//销售
this
.
getEmployee
();
//销售
this
.
getPeriodList
()
//周期
this
.
getPeriodList
()
//周期
this
.
setClass
()
//班级
this
.
setClass
()
//班级
this
.
getBranchList
()
//校区
this
.
getBranchList
()
//校区
this
.
getDepartList
(
0
);
this
.
getDepartList
(
0
);
},
},
methods
:
{
methods
:
{
resetSearch
()
{
resetSearch
()
{
this
.
msg
.
PageIndex
=
1
;
this
.
msg
.
PageIndex
=
1
;
this
.
getList
()
this
.
getList
()
},
},
getList
(){
getList
()
{
console
.
log
(
this
.
msg
,
'02222222222'
)
if
(
this
.
msg
)
if
(
this
.
msg
)
this
.
loading
=
true
;
this
.
loading
=
true
;
getSellAchievementsStatistics
(
this
.
msg
).
then
(
res
=>
{
getSellAchievementsStatistics
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
tableData
=
res
.
Data
.
PageData
.
List
this
.
tableData
=
res
.
Data
.
PageData
.
List
this
.
TotalCommission
=
res
.
Data
.
PageData
.
TotalCommission
this
.
TotalCommission
=
res
.
Data
.
PageData
.
TotalCommission
this
.
total
=
res
.
Data
.
Count
this
.
total
=
res
.
Data
.
Count
}
}
})
})
},
},
unique
(
arr
,
Name
){
//数组去重
unique
(
arr
,
Name
)
{
//数组去重
const
res
=
new
Map
();
const
res
=
new
Map
();
return
arr
.
filter
(
return
arr
.
filter
(
(
list
)
=>
!
res
.
has
(
list
.
text
)
&&
res
.
set
(
list
.
text
,
1
)
(
list
)
=>
!
res
.
has
(
list
.
text
)
&&
res
.
set
(
list
.
text
,
1
)
);
);
},
},
handleCurrentChanges
(
val
)
{
handleCurrentChanges
(
val
)
{
this
.
msg
.
PageIndex
=
val
;
this
.
msg
.
PageIndex
=
val
;
this
.
getList
()
this
.
getList
()
},
},
//选择班级
//选择班级
...
@@ -338,8 +345,8 @@ import { number } from 'echarts'
...
@@ -338,8 +345,8 @@ import { number } from 'echarts'
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
var
jsonData
=
res
.
Data
;
var
jsonData
=
res
.
Data
;
let
obj
=
{
let
obj
=
{
ClassId
:
0
,
ClassId
:
0
,
ClassName
:
'不限'
ClassName
:
'不限'
}
}
jsonData
.
unshift
(
obj
)
jsonData
.
unshift
(
obj
)
if
(
jsonData
&&
jsonData
.
length
>
0
)
{
if
(
jsonData
&&
jsonData
.
length
>
0
)
{
...
@@ -360,7 +367,7 @@ import { number } from 'echarts'
...
@@ -360,7 +367,7 @@ import { number } from 'echarts'
}
}
})
})
},
},
getBranchList
(){
//获取校区
getBranchList
()
{
//获取校区
getSchoolDropdown
({}).
then
(
res
=>
{
getSchoolDropdown
({}).
then
(
res
=>
{
this
.
schoolList
=
res
.
Data
;
this
.
schoolList
=
res
.
Data
;
var
obj
=
{
var
obj
=
{
...
@@ -374,7 +381,7 @@ import { number } from 'echarts'
...
@@ -374,7 +381,7 @@ import { number } from 'echarts'
},
},
//获取部门下拉数据
//获取部门下拉数据
getDepartList
(
id
)
{
getDepartList
(
id
)
{
if
(
id
==-
1
)
{
if
(
id
==
-
1
)
{
id
=
0
id
=
0
}
}
let
msg
=
{
let
msg
=
{
...
@@ -429,7 +436,7 @@ import { number } from 'echarts'
...
@@ -429,7 +436,7 @@ import { number } from 'echarts'
}
}
})
})
},
},
getPeriodList
(){
//获取周期下拉列表
getPeriodList
()
{
//获取周期下拉列表
getSellAchievementsPeriodsList
({}).
then
(
res
=>
{
getSellAchievementsPeriodsList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
PeriodsList
=
res
.
Data
this
.
PeriodsList
=
res
.
Data
...
@@ -439,9 +446,9 @@ import { number } from 'echarts'
...
@@ -439,9 +446,9 @@ import { number } from 'echarts'
}
}
this
.
PeriodsList
.
unshift
(
obj
)
this
.
PeriodsList
.
unshift
(
obj
)
// 从业绩表跳转带参
// 从业绩表跳转带参
if
(
this
.
$route
.
query
.
Periods
)
{
if
(
this
.
$route
.
query
.
Periods
)
{
this
.
PeriodsList
.
forEach
(
item
=>
{
this
.
PeriodsList
.
forEach
(
item
=>
{
if
(
item
.
Periods
==
this
.
$route
.
query
.
Periods
)
{
if
(
item
.
Periods
==
this
.
$route
.
query
.
Periods
)
{
this
.
msg
.
PeriodId
=
item
.
Id
this
.
msg
.
PeriodId
=
item
.
Id
}
}
})
})
...
@@ -449,23 +456,22 @@ import { number } from 'echarts'
...
@@ -449,23 +456,22 @@ import { number } from 'echarts'
}
}
})
})
},
},
tcexport
(){
//导出
tcexport
()
{
//导出
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
EduDownLoad
(
"/SellAchievements/GetSellAchievementsStatisticsToExcel"
,
msg
,
"业绩提成统计.xls"
)
EduDownLoad
(
"/SellAchievements/GetSellAchievementsStatisticsToExcel"
,
msg
,
"业绩提成统计.xls"
)
},
},
goUrlclass
(
path
,
Names
){
//班级
goUrlclass
(
path
,
Names
)
{
//班级
let
Name
=
encodeURI
(
Names
)
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
this
.
OpenNewUrl
(
path
,
{
ClassName
:
Name
,
ClassName
:
Name
,
});
});
},
},
goUrlorderList
(
path
,
row
){
//订单跳转
goUrlorderList
(
path
,
row
)
{
//订单跳转
this
.
OpenNewUrl
(
path
,
{
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
OrderId
:
row
.
OrderId
,
// EnterID:row.UserId
});
});
},
},
getmingxi
(
row
){
//明细
getmingxi
(
row
)
{
//明细
getSellAchievementsChangeLog
({
getSellAchievementsChangeLog
({
OrderId
:
row
.
OrderId
,
OrderId
:
row
.
OrderId
,
UserId
:
row
.
UserId
,
UserId
:
row
.
UserId
,
...
@@ -479,10 +485,7 @@ import { number } from 'echarts'
...
@@ -479,10 +485,7 @@ import { number } from 'echarts'
}
}
},
},
}
}
</
script
>
</
script
>
<
style
lang=
"sass"
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
@import
url('~assets/css/table.sass')
</
style
>
</
style
>
\ No newline at end of file
\ No newline at end of file
src/pages/stuMan/classPlan.vue
View file @
b4394b76
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
<el-option
:key=
"0"
label=
"全部"
:value=
"0"
>
</el-option>
<el-option
:key=
"0"
label=
"全部"
:value=
"0"
>
</el-option>
<el-option
:key=
"1"
label=
"跟班课"
:value=
"1"
>
</el-option>
<el-option
:key=
"1"
label=
"跟班课"
:value=
"1"
>
</el-option>
<el-option
:key=
"2"
label=
"试听课"
:value=
"2"
>
</el-option>
<el-option
:key=
"2"
label=
"试听课"
:value=
"2"
>
</el-option>
<el-option
:key=
"
2
"
label=
"预约课"
:value=
"3"
>
</el-option>
<el-option
:key=
"
3
"
label=
"预约课"
:value=
"3"
>
</el-option>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000; padding-right: 10px"
>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000; padding-right: 10px"
>
类型:
类型:
</div>
</div>
...
...
src/pages/stuMan/classRecord.vue
View file @
b4394b76
...
@@ -2,8 +2,7 @@
...
@@ -2,8 +2,7 @@
<div
class=
"page-body MainPlan xg"
>
<div
class=
"page-body MainPlan xg"
>
<div
class=
"col row wrap q-col-gutter-md"
>
<div
class=
"col row wrap q-col-gutter-md"
>
<div
class=
"col-2"
>
<div
class=
"col-2"
>
<el-select
v-model=
"msg.TeacherId"
style=
"width: 100%"
placeholder=
"教师"
size=
"small"
<el-select
v-model=
"msg.TeacherId"
style=
"width: 100%"
placeholder=
"教师"
size=
"small"
@
change=
"getTypeWay()"
>
@
change=
"getTypeWay()"
>
<el-option
v-for=
"item in TeacherList"
:key=
"item.TeacherName"
:label=
"item.TeacherName"
:value=
"item.TId"
>
<el-option
v-for=
"item in TeacherList"
:key=
"item.TeacherName"
:label=
"item.TeacherName"
:value=
"item.TId"
>
</el-option>
</el-option>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000; padding-right: 10px"
>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000; padding-right: 10px"
>
...
@@ -36,13 +35,18 @@
...
@@ -36,13 +35,18 @@
<el-option
:key=
"0"
label=
"全部"
:value=
"0"
>
</el-option>
<el-option
:key=
"0"
label=
"全部"
:value=
"0"
>
</el-option>
<el-option
:key=
"1"
label=
"跟班课"
:value=
"1"
>
</el-option>
<el-option
:key=
"1"
label=
"跟班课"
:value=
"1"
>
</el-option>
<el-option
:key=
"2"
label=
"试听课"
:value=
"2"
>
</el-option>
<el-option
:key=
"2"
label=
"试听课"
:value=
"2"
>
</el-option>
<el-option
:key=
"
2
"
label=
"预约课"
:value=
"3"
>
</el-option>
<el-option
:key=
"
3
"
label=
"预约课"
:value=
"3"
>
</el-option>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000; padding-right: 10px"
>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000; padding-right: 10px"
>
状态:
状态:
</div>
</div>
</el-select>
</el-select>
</div>
</div>
<div
class=
"col-2"
>
<div
class=
"col-2"
>
<el-input
v-model=
"msg.StuName"
style=
"width: 100%"
placeholder=
"学员姓名"
size=
"small"
@
input=
"getTypeWay()"
clearable
>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000; padding-right: 10px"
>
学员:
</div>
</el-input>
</div>
</div>
</div>
</div>
<teachTable
v-if=
"commonType == 2"
:tableData=
"tableData"
:PageCount=
"PageCount"
:setMsg=
"tabMsg"
:showCZ=
"true"
<teachTable
v-if=
"commonType == 2"
:tableData=
"tableData"
:PageCount=
"PageCount"
:setMsg=
"tabMsg"
:showCZ=
"true"
...
@@ -54,11 +58,13 @@
...
@@ -54,11 +58,13 @@
import
{
import
{
getTeacherDropDownList
,
getTeacherDropDownList
,
queryClassRoomList
,
queryClassRoomList
,
getStudentDorpDownList
,
}
from
"../../api/school/index"
;
}
from
"../../api/school/index"
;
import
{
import
{
GetClassPlanStatistical
,
GetClassPlanStatistical
,
GetClassPlanStatisticalPage
,
GetClassPlanStatisticalPage
,
}
from
"../../api/teacher/index"
;
}
from
"../../api/teacher/index"
;
import
classmateForm
from
"../../components/course/classmate-form"
;
import
classmateForm
from
"../../components/course/classmate-form"
;
import
teachTable
from
"../teacher/components/teachTable"
;
import
teachTable
from
"../teacher/components/teachTable"
;
import
changeClassForm
from
"../../components/teacher/changeClassForm.vue"
;
import
changeClassForm
from
"../../components/teacher/changeClassForm.vue"
;
...
@@ -81,13 +87,15 @@
...
@@ -81,13 +87,15 @@
TeacherId
:
0
,
TeacherId
:
0
,
ClassRoomId
:
0
,
ClassRoomId
:
0
,
dataList
:
{},
dataList
:
{},
loading
:
false
,
loading
:
false
,
msg
:
{
msg
:
{
StartTime
:
""
,
StartTime
:
""
,
EndTime
:
""
,
EndTime
:
""
,
TeacherId
:
0
,
TeacherId
:
0
,
ClassRoomId
:
0
,
ClassRoomId
:
0
,
ClassType
:
0
,
ClassType
:
0
,
Student_Id
:
""
,
StuName
:
""
,
},
},
commonType
:
2
,
//1日历模式 2列表模式
commonType
:
2
,
//1日历模式 2列表模式
typeName
:
"列表模式"
,
typeName
:
"列表模式"
,
...
@@ -101,6 +109,7 @@
...
@@ -101,6 +109,7 @@
ClassRoomId
:
0
,
ClassRoomId
:
0
,
ClassType
:
0
,
ClassType
:
0
,
OrderBy
:
1
,
OrderBy
:
1
,
StuName
:
""
,
},
},
tableData
:
[],
//表格数据
tableData
:
[],
//表格数据
PageCount
:
0
,
PageCount
:
0
,
...
@@ -121,6 +130,7 @@
...
@@ -121,6 +130,7 @@
},
},
},
},
today
:
""
,
today
:
""
,
StuList
:
[],
//学员列表
};
};
},
},
created
()
{
created
()
{
...
@@ -148,6 +158,13 @@
...
@@ -148,6 +158,13 @@
this
.
getTableList
();
this
.
getTableList
();
},
},
methods
:
{
methods
:
{
queryStuList
()
{
getStudentDorpDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
StuList
=
res
.
Data
;
}
});
},
refreshPage
()
{
refreshPage
()
{
this
.
getPlanList
();
this
.
getPlanList
();
},
},
...
@@ -212,10 +229,11 @@
...
@@ -212,10 +229,11 @@
this
.
tabMsg
.
EndTime
=
this
.
msg
.
EndTime
;
this
.
tabMsg
.
EndTime
=
this
.
msg
.
EndTime
;
this
.
tabMsg
.
ClassRoomId
=
this
.
msg
.
ClassRoomId
;
this
.
tabMsg
.
ClassRoomId
=
this
.
msg
.
ClassRoomId
;
this
.
tabMsg
.
ClassType
=
this
.
msg
.
ClassType
;
this
.
tabMsg
.
ClassType
=
this
.
msg
.
ClassType
;
this
.
tabMsg
.
TeacherId
=
this
.
msg
.
TeacherId
;
this
.
tabMsg
.
TeacherId
=
this
.
msg
.
TeacherId
;
this
.
loading
=
true
;
this
.
tabMsg
.
StuName
=
this
.
msg
.
StuName
;
this
.
loading
=
true
;
GetClassPlanStatisticalPage
(
this
.
tabMsg
).
then
((
res
)
=>
{
GetClassPlanStatisticalPage
(
this
.
tabMsg
).
then
((
res
)
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
tableData
=
res
.
Data
.
PageData
;
this
.
tableData
=
res
.
Data
.
PageData
;
this
.
PageCount
=
res
.
Data
.
PageCount
;
this
.
PageCount
=
res
.
Data
.
PageCount
;
...
@@ -235,11 +253,9 @@
...
@@ -235,11 +253,9 @@
},
},
},
},
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.xg
.el-input--prefix
.el-input__inner
{
.xg
.el-input--prefix
.el-input__inner
{
padding-left
:
50px
;
padding-left
:
50px
;
}
}
</
style
>
</
style
>
\ No newline at end of file
src/pages/stuMan/stuList.vue
View file @
b4394b76
<
style
>
<
style
>
li
{
li
{
list-style-type
:
none
;
list-style-type
:
none
;
}
}
.stuList
ul
{
.stuList
ul
{
padding
:
0px
;
padding
:
0px
;
}
}
.stuList
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
;
}
}
.stuList
li
.dline
{
.stuList
li
.dline
{
display
:
table
;
display
:
table
;
width
:
100%
;
width
:
100%
;
display
:
flex
;
display
:
flex
;
flex-direction
:
row
;
flex-direction
:
row
;
}
}
.stuList
li
.d1
,
.stuList
li
.d1
,
.stuList
li
.d2
,
.stuList
li
.d2
,
.stuList
li
.d3
,
.stuList
li
.d3
,
.stuList
li
.d4
,
.stuList
li
.d4
,
.stuList
li
.d5
{
.stuList
li
.d5
{
width
:
18%
;
width
:
18%
;
padding
:
20px
20px
10px
;
padding
:
20px
20px
10px
;
}
}
.stuList
li
.d7
{
.stuList
li
.d7
{
flex
:
1
;
flex
:
1
;
width
:
1px
;
width
:
1px
;
display
:
flex
;
display
:
flex
;
flex-direction
:
row
;
flex-direction
:
row
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
center
;
justify-content
:
center
;
}
}
.stuList
li
.d1
.di-title
{
.stuList
li
.d1
.di-title
{
font-size
:
16px
;
font-size
:
16px
;
color
:
#111111
;
color
:
#111111
;
}
}
.stuList
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
;
}
}
.stuList
li
.d6
{
.stuList
li
.d6
{
padding
:
10px
20px
;
padding
:
10px
20px
;
width
:
100%
;
width
:
100%
;
height
:
inherit
;
height
:
inherit
;
position
:
relative
;
position
:
relative
;
border-top
:
1px
solid
#dddee0
;
border-top
:
1px
solid
#dddee0
;
}
}
.stuList
li
.d6
.progress
{
.stuList
li
.d6
.progress
{
width
:
100%
;
width
:
100%
;
height
:
5px
;
height
:
5px
;
position
:
absolute
;
position
:
absolute
;
left
:
0
;
left
:
0
;
bottom
:
0
;
bottom
:
0
;
}
}
.stuList
li
.d2
div
{
.stuList
li
.d2
div
{
margin
:
2px
0
;
margin
:
2px
0
;
font-size
:
14px
;
font-size
:
14px
;
color
:
#111111
;
color
:
#111111
;
}
}
.stuList
li
.d2-n
{
.stuList
li
.d2-n
{
font-size
:
12px
;
font-size
:
12px
;
color
:
#999999
;
color
:
#999999
;
margin-right
:
20px
;
margin-right
:
20px
;
}
}
.stuList
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
;
}
}
.stuList
li
.d3
div
{
.stuList
li
.d3
div
{
margin
:
2px
0
;
margin
:
2px
0
;
font-size
:
14px
;
font-size
:
14px
;
}
}
.stuList
li
.d4
div
{
.stuList
li
.d4
div
{
font-size
:
14px
;
font-size
:
14px
;
color
:
#111111
;
color
:
#111111
;
margin
:
2px
0
;
margin
:
2px
0
;
}
}
.stuList
li
.d5
div
{
.stuList
li
.d5
div
{
font-size
:
14px
;
font-size
:
14px
;
color
:
#111111
;
color
:
#111111
;
margin
:
2px
0
;
margin
:
2px
0
;
}
}
.stuList
.myCourseNName
{
.stuList
.myCourseNName
{
width
:
25px
;
width
:
25px
;
height
:
25px
;
height
:
25px
;
border-radius
:
50%
;
border-radius
:
50%
;
...
@@ -108,45 +108,45 @@ li {
...
@@ -108,45 +108,45 @@ li {
text-align
:
center
;
text-align
:
center
;
line-height
:
25px
;
line-height
:
25px
;
background-color
:
#004d40
;
background-color
:
#004d40
;
}
}
.stuList
.app-image
{
.stuList
.app-image
{
background-position
:
center
center
;
background-position
:
center
center
;
width
:
50px
;
width
:
50px
;
height
:
50px
;
height
:
50px
;
border-radius
:
0%
;
border-radius
:
0%
;
float
:
left
;
float
:
left
;
margin-right
:
8px
;
margin-right
:
8px
;
}
}
.Sysuser_Date
.el-input
{
.Sysuser_Date
.el-input
{
width
:
100%
;
width
:
100%
;
border
:
none
;
border
:
none
;
background-color
:
transparent
;
background-color
:
transparent
;
}
}
.Sysuser_Date
.el-input__inner
{
.Sysuser_Date
.el-input__inner
{
width
:
100%
;
width
:
100%
;
border
:
none
;
border
:
none
;
background-color
:
transparent
;
background-color
:
transparent
;
}
}
.Sysuser_Date
.el-range-editor
.el-range-input
{
.Sysuser_Date
.el-range-editor
.el-range-input
{
width
:
100%
;
width
:
100%
;
border
:
none
;
border
:
none
;
background-color
:
transparent
;
background-color
:
transparent
;
}
}
.el-picker-panel
{
.el-picker-panel
{
z-index
:
99999
!important
;
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
;
}
}
.editOrderDrawerTop
{
.editOrderDrawerTop
{
width
:
100%
;
width
:
100%
;
height
:
50px
;
height
:
50px
;
display
:
flex
;
display
:
flex
;
...
@@ -154,37 +154,32 @@ li {
...
@@ -154,37 +154,32 @@ li {
background-color
:
#f0f5fb
;
background-color
:
#f0f5fb
;
padding
:
5px
10px
;
padding
:
5px
10px
;
align-items
:
center
;
align-items
:
center
;
}
}
.stics
{
.stics
{
padding
:
10px
20px
;
padding
:
10px
20px
;
background
:
#dddee0
;
background
:
#dddee0
;
border-radius
:
4px
;
border-radius
:
4px
;
font-size
:
13px
;
font-size
:
13px
;
color
:
#000000
;
color
:
#000000
;
font-weight
:
bold
;
font-weight
:
bold
;
}
}
.stics
.stics-name
{
.stics
.stics-name
{
color
:
#2d2d2d
;
color
:
#2d2d2d
;
font-weight
:
600
;
font-weight
:
600
;
margin-right
:
10px
;
margin-right
:
10px
;
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
<div
:class=
"[
:class=
"[
{ 'page-body stuList': !isComponent },
{ 'page-body stuList': !isComponent },
{ 'full-height': isComponent }
{ 'full-height': isComponent }
]"
]">
>
<div
class=
"row q-mb-md"
v-if=
"source != 1 && !isComponent"
>
<div
class=
"row q-mb-md"
v-if=
"source != 1 && !isComponent"
>
<q-space></q-space>
<q-space></q-space>
<div
style=
"position: relative"
>
<div
style=
"position: relative"
>
<q-btn
<q-btn
color=
"accent"
label=
"高级查询"
@
click=
"IsShowQuery = true"
></q-btn>
color=
"accent"
label=
"高级查询"
@
click=
"IsShowQuery = true"
></q-btn>
<q-badge
floating
rounded
color=
"red"
>
{{
queryNum
}}
</q-badge>
<q-badge
floating
rounded
color=
"red"
>
{{
queryNum
}}
</q-badge>
</div>
</div>
</div>
</div>
...
@@ -194,37 +189,13 @@ li {
...
@@ -194,37 +189,13 @@ li {
<div
class=
"page-search row items-center flex"
v-if=
"!isComponent"
>
<div
class=
"page-search row items-center flex"
v-if=
"!isComponent"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
<q-select
@
input=
"changeSchool"
dense
filled
v-model=
"msg.School_Id"
class=
"col-6"
option-label=
"SName"
@
input=
"changeSchool"
option-value=
"SId"
:options=
"SchoolList"
emit-value
map-options
label=
"校区"
/>
dense
filled
v-model=
"msg.School_Id"
class=
"col-6"
option-label=
"SName"
option-value=
"SId"
:options=
"SchoolList"
emit-value
map-options
label=
"校区"
/>
</div>
</div>
<div
class=
"col-3"
v-if=
"source != 1"
>
<div
class=
"col-3"
v-if=
"source != 1"
>
<q-select
<q-select
@
input=
"changeCourse"
dense
filled
v-model=
"msg.CourseId"
class=
"col-6"
option-label=
"CourseName"
@
input=
"changeCourse"
option-value=
"CourseId"
use-input
:options=
"CourseList"
@
filter=
"filterCourse"
emit-value
map-options
dense
label=
"课程"
clearable
>
filled
v-model=
"msg.CourseId"
class=
"col-6"
option-label=
"CourseName"
option-value=
"CourseId"
use-input
:options=
"CourseList"
@
filter=
"filterCourse"
emit-value
map-options
label=
"课程"
clearable
>
<template
v-slot:no-option
>
<template
v-slot:no-option
>
<q-item>
<q-item>
<q-item-section
class=
"text-grey"
>
<q-item-section
class=
"text-grey"
>
...
@@ -235,31 +206,16 @@ li {
...
@@ -235,31 +206,16 @@ li {
</q-select>
</q-select>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.ClassId"
class=
"col-6"
use-input
@
input=
"resetSearch"
@
filter=
"filterClass"
option-label=
"ClassName"
option-value=
"ClassId"
:options=
"classList"
emit-value
dense
map-options
label=
"班级"
clearable
>
filled
<
template
v-slot:option=
"{
v-model=
"msg.ClassId"
class=
"col-6"
use-input
@
filter=
"filterClass"
option-label=
"ClassName"
option-value=
"ClassId"
:options=
"classList"
emit-value
map-options
label=
"班级"
clearable
>
<
template
v-slot:option=
"{
itemProps,
itemProps,
itemEvents,
itemEvents,
opt,
opt,
selected,
selected,
toggleOption
toggleOption
}"
}"
>
>
<q-item
v-bind=
"itemProps"
v-on=
"itemEvents"
>
<q-item
v-bind=
"itemProps"
v-on=
"itemEvents"
>
<q-item-section>
<q-item-section>
<q-item-label
v-html=
"opt.ClassName"
></q-item-label>
<q-item-label
v-html=
"opt.ClassName"
></q-item-label>
...
@@ -279,33 +235,12 @@ li {
...
@@ -279,33 +235,12 @@ li {
</q-select>
</q-select>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
<q-input
@
keyup
.
enter
.
native=
"resetSearch"
clearable
dense
filled
v-model=
"msg.GuestName"
label=
"学员姓名"
@
keyup
.
enter
.
native=
"resetSearch"
@
clear=
"resetSearch"
maxlength=
"20"
/>
clearable
dense
filled
v-model=
"msg.GuestName"
label=
"学员姓名"
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.GuestState"
class=
"col-6"
option-label=
"Name"
@
input=
"resetSearch"
option-value=
"Id"
use-input
:options=
"GuestStateList"
emit-value
map-options
label=
"学员状态"
clearable
>
dense
filled
v-model=
"msg.GuestState"
class=
"col-6"
option-label=
"Name"
option-value=
"Id"
use-input
:options=
"GuestStateList"
emit-value
map-options
label=
"学员状态"
clearable
>
<
template
v-slot:no-option
>
<
template
v-slot:no-option
>
<q-item>
<q-item>
<q-item-section
class=
"text-grey"
>
<q-item-section
class=
"text-grey"
>
...
@@ -316,37 +251,13 @@ li {
...
@@ -316,37 +251,13 @@ li {
</q-select>
</q-select>
</div>
</div>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-select
<q-select
@
input=
"getShaixuanFrom()"
dense
filled
clearable
option-value=
"Id"
option-label=
"Name"
@
input=
"getShaixuanFrom()"
v-model=
"msg.CreateType"
:options=
"customFromList"
emit-value
map-options
label=
"客户来源"
/>
dense
filled
clearable
filled
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.CreateType"
:options=
"customFromList"
emit-value
map-options
label=
"客户来源"
/>
</div>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType == 1"
>
<div
class=
"col-3"
v-if=
"msg.CreateType == 1"
>
<q-select
<q-select
filled
v-model=
"msg.StuChannelId"
@
input=
"resetSearch"
label=
"收客渠道"
:dense=
"false"
filled
:options=
"StuChannelList"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
use-input
clearable
v-model=
"msg.StuChannelId"
@
filter=
"filterStuChannel"
>
@
input=
"resetSearch"
label=
"收客渠道"
:dense=
"false"
:options=
"StuChannelList"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
use-input
clearable
@
filter=
"filterStuChannel"
>
<
template
v-slot:no-option
>
<
template
v-slot:no-option
>
<q-item>
<q-item>
<q-item-section
class=
"text-grey"
>
<q-item-section
class=
"text-grey"
>
...
@@ -357,21 +268,9 @@ li {
...
@@ -357,21 +268,9 @@ li {
</q-select>
</q-select>
</div>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType == 2"
>
<div
class=
"col-3"
v-if=
"msg.CreateType == 2"
>
<q-select
<q-select
filled
v-model=
"msg.StuSourceId"
:dense=
"false"
:options=
"customList"
use-input
label=
"关联同行"
filled
@
filter=
"filterFn"
option-label=
"CustomerName"
@
input=
"resetSearch"
clearable
option-value=
"CustomerId"
v-model=
"msg.StuSourceId"
emit-value
map-options
>
:dense=
"false"
:options=
"customList"
use-input
label=
"关联同行"
@
filter=
"filterFn"
option-label=
"CustomerName"
@
input=
"resetSearch"
clearable
option-value=
"CustomerId"
emit-value
map-options
>
<
template
v-slot:no-option
>
<
template
v-slot:no-option
>
<q-item>
<q-item>
<q-item-section
class=
"text-grey"
>
<q-item-section
class=
"text-grey"
>
...
@@ -382,38 +281,14 @@ li {
...
@@ -382,38 +281,14 @@ li {
</q-select>
</q-select>
</div>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType == 3"
>
<div
class=
"col-3"
v-if=
"msg.CreateType == 3"
>
<q-select
<q-select
filled
v-model=
"msg.StuSourceId"
:dense=
"false"
@
filter=
"filterEmployee"
label=
"介绍人"
use-input
filled
:options=
"myEmployeeList"
option-label=
"EmployeeName"
@
input=
"resetSearch"
clearable
option-value=
"Id"
v-model=
"msg.StuSourceId"
emit-value
map-options
/>
:dense=
"false"
@
filter=
"filterEmployee"
label=
"介绍人"
use-input
:options=
"myEmployeeList"
option-label=
"EmployeeName"
@
input=
"resetSearch"
clearable
option-value=
"Id"
emit-value
map-options
/>
</div>
</div>
<div
class=
"col-3"
v-if=
"msg.CreateType == 4"
>
<div
class=
"col-3"
v-if=
"msg.CreateType == 4"
>
<q-select
<q-select
filled
v-model=
"msg.StuSourceId"
:dense=
"false"
use-input
@
filter=
"filterStudent"
label=
"转介人"
filled
:options=
"MyTransListData"
option-label=
"StuName"
@
input=
"resetSearch"
clearable
option-value=
"StuId"
v-model=
"msg.StuSourceId"
emit-value
map-options
/>
:dense=
"false"
use-input
@
filter=
"filterStudent"
label=
"转介人"
:options=
"MyTransListData"
option-label=
"StuName"
@
input=
"resetSearch"
clearable
option-value=
"StuId"
emit-value
map-options
/>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -424,62 +299,37 @@ li {
...
@@ -424,62 +299,37 @@ li {
</div>
</div>
<div
class=
"col stics"
>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
退课学员数量
</span>
<span
class=
"stics-name"
>
退课学员数量
</span>
<span
style=
"color: #F72E52"
<span
style=
"color: #F72E52"
>
{{ staticObj.DropOutNum ? staticObj.DropOutNum : 0 }}人
</span>
>
{{ staticObj.DropOutNum ? staticObj.DropOutNum : 0 }}人
</span
>
</div>
</div>
<div
class=
"col stics"
>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
停课学员数量
</span>
<span
class=
"stics-name"
>
停课学员数量
</span>
<span
style=
"color:#2961FE;"
<span
style=
"color:#2961FE;"
>
{{ staticObj.StopClassesNum ? staticObj.StopClassesNum : 0 }}人
</span>
>
{{ staticObj.StopClassesNum ? staticObj.StopClassesNum : 0 }}人
</span
>
</div>
</div>
<div
class=
"col stics"
>
<div
class=
"col stics"
>
<span
class=
"stics-name"
>
毕业学员数量
</span>
<span
class=
"stics-name"
>
毕业学员数量
</span>
<span>
{{ staticObj.GraduateNum ? staticObj.GraduateNum : 0 }}人
</span>
<span>
{{ staticObj.GraduateNum ? staticObj.GraduateNum : 0 }}人
</span>
</div>
</div>
</div>
</div>
<div
<div
:class=
"[
:class=
"[
{ 'page-content': !isComponent },
{ 'page-content': !isComponent },
{ 'full-height': isComponent }
{ 'full-height': isComponent }
]"
]"
>
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
:class=
"[
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
:class=
"[
{ 'my-sticky-header-table full-height': isComponent },
{ 'my-sticky-header-table full-height': isComponent },
{ 'sticky-right-column-table': !isComponent }
{ 'sticky-right-column-table': !isComponent }
]"
]"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
:hide-bottom=
"isComponent"
>
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
:hide-bottom=
"isComponent"
>
<
template
v-slot:top
>
<
template
v-slot:top
>
<!--
<div
class=
"col-2 q-table__title"
>
学员名单
</div>
-->
</
template
>
</
template
>
<
template
v-slot:body-cell-ContractNo=
"props"
>
<
template
v-slot:body-cell-ContractNo=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"seeContract(props.row)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"seeContract(props.row)"
>
{{
props
.
row
.
ContractNo
}}
{{
props
.
row
.
ContractNo
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-GuestName=
"props"
>
<
template
v-slot:body-cell-GuestName=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row)"
>
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row)"
>
{{
props
.
value
}}
{{
props
.
value
}}
</div>
</div>
</q-td>
</q-td>
...
@@ -488,99 +338,70 @@ li {
...
@@ -488,99 +338,70 @@ li {
<
template
v-slot:body-cell-StuSourceIdName=
"props"
>
<
template
v-slot:body-cell-StuSourceIdName=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div>
<div>
<span
v-if=
"props.row.CreateType == 2 && props.row.EnterpriseName"
<span
v-if=
"props.row.CreateType == 2 && props.row.EnterpriseName"
>
{{
props
.
row
.
EnterpriseName
}}
:
</span>
>
{{
props
.
row
.
EnterpriseName
}}
:
</span
>
{{
props
.
row
.
StuSourceIdName
}}
{{
props
.
row
.
StuSourceIdName
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-ClassName=
"props"
>
<
template
v-slot:body-cell-ClassName=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"seeClassDetail(props.row)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"seeClassDetail(props.row)"
>
{{
props
.
row
.
ClassName
}}
{{
props
.
row
.
ClassName
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-OrderId=
"props"
>
<
template
v-slot:body-cell-OrderId=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 1)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 1)"
>
{{
props
.
row
.
OrderId
}}
{{
props
.
row
.
OrderId
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-Income=
"props"
>
<
template
v-slot:body-cell-Income=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 4)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 4)"
>
{{
props
.
row
.
Income
}}
{{
props
.
row
.
Income
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-Refund=
"props"
>
<
template
v-slot:body-cell-Refund=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 4)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"showOrderDetail(props.row, 4)"
>
{{
props
.
row
.
Refund
}}
{{
props
.
row
.
Refund
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-CompleteHours=
"props"
>
<
template
v-slot:body-cell-CompleteHours=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"seeStudentsClassUse(props.row)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"seeStudentsClassUse(props.row)"
>
{{
props
.
row
.
CompleteHours
}}
{{
props
.
row
.
CompleteHours
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-MakeUpHours=
"props"
>
<
template
v-slot:body-cell-MakeUpHours=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 1)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 1)"
>
{{
props
.
row
.
MakeUpHours
}}
{{
props
.
row
.
MakeUpHours
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-AbsenceNum=
"props"
>
<
template
v-slot:body-cell-AbsenceNum=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 2)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 2)"
>
{{
props
.
row
.
AbsenceNum
}}
{{
props
.
row
.
AbsenceNum
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-LeaveNum=
"props"
>
<
template
v-slot:body-cell-LeaveNum=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 3)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"showList(props.row, 3)"
>
{{
props
.
row
.
LeaveNum
}}
{{
props
.
row
.
LeaveNum
}}
</div>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-EventlogNum=
"props"
>
<
template
v-slot:body-cell-EventlogNum=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
<div
style=
"color: #f00; cursor: pointer"
@
click=
"showEventLog(props.row)"
>
style=
"color: #f00; cursor: pointer"
@
click=
"showEventLog(props.row)"
>
{{
props
.
row
.
EventlogNum
}}
{{
props
.
row
.
EventlogNum
}}
</div>
</div>
</q-td>
</q-td>
...
@@ -594,38 +415,13 @@ li {
...
@@ -594,38 +415,13 @@ li {
<
template
v-slot:body-cell-optioned=
"props"
v-if=
"!isComponent"
>
<
template
v-slot:body-cell-optioned=
"props"
v-if=
"!isComponent"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div>
<div>
<q-btn
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight: 400"
label=
"停课"
v-if=
"props.row.GuestState === 1"
flat
@
click=
"ShowStopLesson(props.row)"
/>
size=
"xs"
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight: 400"
label=
"转班"
v-if=
"props.row.GuestState === 1"
color=
"accent"
@
click=
"transferClass(props.row, 1)"
/>
style=
"font-weight: 400"
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left: 10px"
>
label=
"停课"
v-if=
"props.row.GuestState === 1"
@
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-list>
<q-list>
<q-item
<q-item
dense
clickable
v-close-popup
@
click=
"showAddEvent(props.row)"
>
dense
clickable
v-close-popup
@
click=
"showAddEvent(props.row)"
>
<q-item-section>
<q-item-section>
<q-item-label
overline
>
添加事件
</q-item-label>
<q-item-label
overline
>
添加事件
</q-item-label>
</q-item-section>
</q-item-section>
...
@@ -641,124 +437,71 @@ li {
...
@@ -641,124 +437,71 @@ li {
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-if=
"!isComponent"
v-slot:bottom
>
<
template
v-if=
"!isComponent"
v-slot:bottom
>
<q-pagination
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
class=
"full-width justify-end"
:input=
"true"
@
input=
"changePage"
/>
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</
template
>
</q-table>
</q-table>
</div>
</div>
<!-- 高级查询 -->
<!-- 高级查询 -->
<MoreQuery
<MoreQuery
v-if=
"IsShowQuery"
:typeEnum=
"typeEnum"
:warnEnum=
"warnEnum"
:saveQuery=
"msg"
@
close=
"closeHandle"
v-if=
"IsShowQuery"
@
success=
"morequery"
>
:typeEnum=
"typeEnum"
:warnEnum=
"warnEnum"
:saveQuery=
"msg"
@
close=
"closeHandle"
@
success=
"morequery"
>
</MoreQuery>
</MoreQuery>
<!-- 停课申请 -->
<!-- 停课申请 -->
<StopLesson-form
<StopLesson-form
v-if=
"isShowStopLesson"
:setObj=
"stuObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
v-if=
"isShowStopLesson"
:setObj=
"stuObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
<!-- 转班申请 -->
<!-- 转班申请 -->
<transferclass-form
<transferclass-form
v-if=
"isShowTransferClass"
:save-obj=
"orderObj"
:ChangeType=
"ChangeType"
@
close=
"closeHandle"
v-if=
"isShowTransferClass"
@
success=
"resetSearch"
></transferclass-form>
:save-obj=
"orderObj"
:ChangeType=
"ChangeType"
@
close=
"closeHandle"
@
success=
"resetSearch"
></transferclass-form>
<!-- 添加事件 -->
<!-- 添加事件 -->
<AddEvent-form
<AddEvent-form
v-if=
"isShowAddEvent"
:setObj=
"eventObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
v-if=
"isShowAddEvent"
:setObj=
"eventObj"
@
success=
"resetSearch"
@
close=
"closeHandle"
/>
<!-- 班级详情 -->
<!-- 班级详情 -->
<classinfo-form
<classinfo-form
v-if=
"isShowClassInfo"
:seting-obj=
"eventObj"
@
close=
"closeHandle"
@
success=
"refreshPage"
/>
v-if=
"isShowClassInfo"
:seting-obj=
"eventObj"
@
close=
"closeHandle"
@
success=
"refreshPage"
/>
<!-- 订单详情 -->
<!-- 订单详情 -->
<myOrder-form
<myOrder-form
v-if=
"isShowmyorderForm"
:save-obj=
"eventObj"
@
close=
"closeHandle"
></myOrder-form>
v-if=
"isShowmyorderForm"
:save-obj=
"eventObj"
@
close=
"closeHandle"
></myOrder-form>
<!-- 可补课课时,缺勤次数,请假次数 -->
<!-- 可补课课时,缺勤次数,请假次数 -->
<list
<list
v-if=
"isShowList"
:type=
"showType"
:set-obj=
"eventObj"
@
close=
"closeHandle"
/>
v-if=
"isShowList"
:type=
"showType"
:set-obj=
"eventObj"
@
close=
"closeHandle"
/>
<!-- 事件记录 -->
<!-- 事件记录 -->
<eventLog
<eventLog
v-if=
"isShowEventLog"
:set-obj=
"eventObj"
@
modify=
"modifyEvent"
@
close=
"closeHandle"
/>
v-if=
"isShowEventLog"
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:save-obj=
"stuOption"
:set-obj=
"eventObj"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"refreshStuList"
>
@
modify=
"modifyEvent"
@
close=
"closeHandle"
/>
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"refreshStuList"
>
</studentRight-form>
</studentRight-form>
<!-- 跳课 -->
<!-- 跳课 -->
<JumpCourse
<JumpCourse
v-model=
"isShowChangeCourse"
:saveObj=
"ChangeCourseObj"
@
success=
"refreshPage"
></JumpCourse>
v-model=
"isShowChangeCourse"
:saveObj=
"ChangeCourseObj"
@
success=
"refreshPage"
></JumpCourse>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
import
{
getSchoolDropdown
,
getSchoolDropdown
,
getClassDropDownList
,
getClassDropDownList
,
getStudentDorpDownList
getStudentDorpDownList
}
from
"../../api/school/index"
;
}
from
"../../api/school/index"
;
import
{
queryCourseDropdownList
}
from
"../../api/course/index"
;
import
{
import
{
queryCourseDropdownList
}
from
"../../api/course/index"
;
import
{
getStuList
,
getStuList
,
getEarlyWarningEnum
,
getEarlyWarningEnum
,
getTypeEnum
getTypeEnum
}
from
"../../api/stuMan/index.js"
;
}
from
"../../api/stuMan/index.js"
;
import
{
import
{
queryGuestStateList
,
queryGuestStateList
,
CreateTypeList
,
CreateTypeList
,
GetStuChannelList
,
GetStuChannelList
,
GetCustomerList
GetCustomerList
}
from
"../../api/sale/sale.js"
;
}
from
"../../api/sale/sale.js"
;
import
MoreQuery
from
"../../components/stuMan/moreQuery.vue"
;
import
MoreQuery
from
"../../components/stuMan/moreQuery.vue"
;
import
StopLessonForm
from
"../../components/teacher/stopLessonForm"
;
import
StopLessonForm
from
"../../components/teacher/stopLessonForm"
;
import
transferclassForm
from
"../../components/sale/transferclass-form"
;
//转班信息
import
transferclassForm
from
"../../components/sale/transferclass-form"
;
//转班信息
import
AddEventForm
from
"../../components/stuMan/addEvent-form.vue"
;
//转班信息
import
AddEventForm
from
"../../components/stuMan/addEvent-form.vue"
;
//转班信息
import
classinfoForm
from
"../../components/course/classinfo-form"
;
//班级详情
import
classinfoForm
from
"../../components/course/classinfo-form"
;
//班级详情
import
myOrderForm
from
"../../components/sale/myOrder-form"
;
//订单详情
import
myOrderForm
from
"../../components/sale/myOrder-form"
;
//订单详情
import
list
from
"../../components/stuMan/makeUpHours.vue"
;
//可补课课时,缺勤次数,请假次数
import
list
from
"../../components/stuMan/makeUpHours.vue"
;
//可补课课时,缺勤次数,请假次数
import
eventLog
from
"../../components/stuMan/eventRecord.vue"
;
//事件记录
import
eventLog
from
"../../components/stuMan/eventRecord.vue"
;
//事件记录
import
studentRightForm
from
"../../components/school/student/studentRight-form"
;
import
studentRightForm
from
"../../components/school/student/studentRight-form"
;
import
JumpCourse
from
"../../components/stuMan/jumpCourse"
;
import
JumpCourse
from
"../../components/stuMan/jumpCourse"
;
import
{
queryEmployee
}
from
"../../api/users/user"
;
import
{
export
default
{
queryEmployee
}
from
"../../api/users/user"
;
export
default
{
props
:
{
props
:
{
isComponent
:
{
isComponent
:
{
type
:
Boolean
,
type
:
Boolean
,
...
@@ -792,7 +535,6 @@ export default {
...
@@ -792,7 +535,6 @@ export default {
studentRightForm
,
studentRightForm
,
JumpCourse
JumpCourse
},
},
data
()
{
data
()
{
return
{
return
{
IsShowQuery
:
false
,
IsShowQuery
:
false
,
...
@@ -820,8 +562,7 @@ export default {
...
@@ -820,8 +562,7 @@ export default {
StuSourceId
:
""
StuSourceId
:
""
},
},
pageCount
:
0
,
pageCount
:
0
,
columns
:
[
columns
:
[{
{
name
:
"Id"
,
name
:
"Id"
,
label
:
"编号"
,
label
:
"编号"
,
field
:
"Id"
,
field
:
"Id"
,
...
@@ -996,7 +737,6 @@ export default {
...
@@ -996,7 +737,6 @@ export default {
field
:
"EventlogNum"
,
field
:
"EventlogNum"
,
align
:
"left"
align
:
"left"
},
},
{
{
name
:
"GuestStateStr"
,
name
:
"GuestStateStr"
,
label
:
"状态"
,
label
:
"状态"
,
...
@@ -1089,7 +829,7 @@ export default {
...
@@ -1089,7 +829,7 @@ export default {
},
},
watch
:
{
watch
:
{
outData
:
{
outData
:
{
handler
:
function
(
val
)
{
handler
:
function
(
val
)
{
if
(
this
.
isComponent
)
{
if
(
this
.
isComponent
)
{
this
.
data
=
val
;
this
.
data
=
val
;
}
}
...
@@ -1097,7 +837,7 @@ export default {
...
@@ -1097,7 +837,7 @@ export default {
deep
:
true
deep
:
true
},
},
outLoading
:
{
outLoading
:
{
handler
:
function
(
val
)
{
handler
:
function
(
val
)
{
if
(
this
.
isComponent
)
{
if
(
this
.
isComponent
)
{
this
.
loading
=
val
;
this
.
loading
=
val
;
}
}
...
@@ -1270,7 +1010,7 @@ export default {
...
@@ -1270,7 +1010,7 @@ export default {
}
}
});
});
},
},
//
筛选课程
//
筛选课程
filterCourse
(
val
,
update
)
{
filterCourse
(
val
,
update
)
{
update
(()
=>
{
update
(()
=>
{
if
(
val
===
""
)
{
if
(
val
===
""
)
{
...
@@ -1527,8 +1267,8 @@ export default {
...
@@ -1527,8 +1267,8 @@ export default {
this
.
ChangeCourseObj
=
item
;
this
.
ChangeCourseObj
=
item
;
}
}
}
}
};
};
</
script
>
</
script
>
<
style
lang=
"sass"
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
@import
url('~assets/css/table.sass')
</
style
>
</
style
>
\ No newline at end of file
src/pages/teacher/assessmentType.vue
View file @
b4394b76
...
@@ -38,7 +38,8 @@
...
@@ -38,7 +38,8 @@
</q-td>
</q-td>
<template
v-for=
"(subItem,subIndex) in props.row.SubtypeList[cIndex].OptionList"
>
<template
v-for=
"(subItem,subIndex) in props.row.SubtypeList[cIndex].OptionList"
>
<q-td
:key=
"subIndex+200000"
class=
"assessmentType_td"
>
<q-td
:key=
"subIndex+200000"
class=
"assessmentType_td"
>
<div
style=
"width:150px;white-space:normal; "
>
{{
subItem
.
LevelDesc
}}
<q-badge
color=
"green"
v-if=
"subItem.LevelScore>0"
>
<div
style=
"width:150px;white-space:normal; "
>
{{
subItem
.
LevelDesc
}}
<q-badge
color=
"green"
v-if=
"subItem.LevelScore>0"
>
{{
subItem
.
LevelScore
}}
分
{{
subItem
.
LevelScore
}}
分
</q-badge>
</q-badge>
</div>
</div>
...
@@ -60,7 +61,8 @@
...
@@ -60,7 +61,8 @@
</q-td>
</q-td>
<template
v-for=
"(subItem,subIndex) in props.row.SubtypeList[cIndex].OptionList"
>
<template
v-for=
"(subItem,subIndex) in props.row.SubtypeList[cIndex].OptionList"
>
<q-td
:key=
"subIndex+400000"
class=
"assessmentType_td"
>
<q-td
:key=
"subIndex+400000"
class=
"assessmentType_td"
>
<div
style=
"width:150px;white-space:normal; "
>
{{
subItem
.
LevelDesc
}}
<q-badge
color=
"green"
v-if=
"subItem.LevelScore>0"
>
<div
style=
"width:150px;white-space:normal; "
>
{{
subItem
.
LevelDesc
}}
<q-badge
color=
"green"
v-if=
"subItem.LevelScore>0"
>
{{
subItem
.
LevelScore
}}
分
{{
subItem
.
LevelScore
}}
分
</q-badge>
</q-badge>
</div>
</div>
...
@@ -113,7 +115,6 @@
...
@@ -113,7 +115,6 @@
this
.
columns
=
[];
this
.
columns
=
[];
queryAssessmentTypeList
(
this
.
msg
).
then
(
res
=>
{
queryAssessmentTypeList
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
console
.
log
(
"res"
,
res
);
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
result
;
this
.
dataList
=
res
.
Data
.
result
;
this
.
columns
=
res
.
Data
.
header
;
this
.
columns
=
res
.
Data
.
header
;
...
...
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