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
3fb561df
Commit
3fb561df
authored
Jul 08, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
5516e5e9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1396 additions
and
1605 deletions
+1396
-1605
stulist.vue
src/components/school/student/stulist.vue
+658
-812
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
assessmentType.vue
src/pages/teacher/assessmentType.vue
+4
-3
No files found.
src/components/school/student/stulist.vue
View file @
3fb561df
<
style
lang=
"scss"
>
.stuList
.q-table__bottom
{
.stuList
.q-table__bottom
{
min-height
:
0
;
}
}
.stulistNum
{
.stulistNum
{
display
:
inline-block
;
width
:
25px
;
height
:
25px
;
...
...
@@ -13,23 +13,23 @@
border-radius
:
50%
;
cursor
:
pointer
;
color
:
#2961fe
;
}
}
.stuListTable
{
.stuListTable
{
width
:
200px
;
text-align
:
center
;
}
}
.stuListTable
tr
td
{
.stuListTable
tr
td
{
height
:
40px
;
}
}
.stuListTable
tr
th
{
.stuListTable
tr
th
{
height
:
40px
;
background-color
:
rgb
(
238
,
238
,
239
);
}
}
.stulistNumber
{
.stulistNumber
{
display
:
inline-block
;
width
:
25px
;
height
:
25px
;
...
...
@@ -39,155 +39,63 @@
border-radius
:
50%
;
cursor
:
pointer
;
color
:
#2961fe
;
}
}
.OCourseTable
{
.OCourseTable
{
width
:
600px
;
text-align
:
center
;
}
}
.OCourseTable
tr
td
{
.OCourseTable
tr
td
{
height
:
40px
;
}
}
.OCourseTable
tr
th
{
.OCourseTable
tr
th
{
height
:
40px
;
background-color
:
rgb
(
238
,
238
,
239
);
}
}
</
style
>
<
template
>
<div
class=
"stuList"
:style=
"
{ height: height }">
<q-table
:pagination=
"pageMsg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
: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
>
<q-table
:pagination=
"pageMsg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
: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
>
<div
class=
"col-2 q-table__title"
>
学员信息
</div>
<q-space
/>
<div
class=
"page-option"
v-if=
"!pushMode"
>
<q-btn
color=
"accent"
v-if=
"IsTrasferAll()"
outline
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"批量转交"
@
click=
"pushMode = true"
/>
<q-btn
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"
/>
<q-btn
color=
"accent"
v-if=
"IsTrasferAll()"
outline
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"批量转交"
@
click=
"pushMode = true"
/>
<q-btn
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
class=
"page-option"
v-if=
"pushMode"
>
<q-btn
color=
"accent"
unelevated
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转交"
@
click=
"isShowTrans = true"
>
<q-btn
color=
"accent"
unelevated
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转交"
@
click=
"isShowTrans = true"
>
<q-popup-proxy
:offset=
"[10, 10]"
>
<q-banner
v-if=
"isShowTrans"
>
<q-select
style=
"margin-top:20px;"
filled
v-model=
"transMsg.CreateBy"
@
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-select
style=
"margin-top:20px;"
filled
v-model=
"transMsg.CreateBy"
@
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-popup-proxy>
</q-btn>
<q-btn
color=
"accent"
unelevated
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=
"
<q-btn
color=
"accent"
unelevated
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;
selection = [];
"
/>
"
/>
</div>
</
template
>
<
template
v-slot:body-cell-StuIcon=
"props"
>
...
...
@@ -195,32 +103,20 @@
<q-avatar
size=
"md"
v-if=
"props.value"
>
<img
:src=
"props.value"
/>
</q-avatar>
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.value"
>
{{
props
.
row
.
StuName
.
substring
(
0
,
1
)
}}
</q-avatar
>
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.value"
>
{{
props
.
row
.
StuName
.
substring
(
0
,
1
)
}}
</q-avatar>
</q-td>
</
template
>
<
template
v-slot:body-cell-StuName=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row, 1)"
>
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row, 1)"
>
{{
props
.
value
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-StuSex=
"props"
>
<q-td
:props=
"props"
>
<q-badge
:color=
"props.value == 1 ? 'negative' : 'primary'"
:label=
"props.value == 1 ? '女' : '男'"
/>
<q-badge
:color=
"props.value == 1 ? 'negative' : 'primary'"
:label=
"props.value == 1 ? '女' : '男'"
/>
</q-td>
</
template
>
<
template
v-slot:body-cell-CreateTypeStr=
"props"
>
...
...
@@ -236,9 +132,7 @@
<
template
v-slot:body-cell-StuSourceIdName=
"props"
>
<q-td
:props=
"props"
>
<div
v-if=
"IsShowStuSourceIdName(props.row)"
>
<span
v-if=
"props.row.CreateType == 2 && props.row.EnterpriseName"
>
{{
props
.
row
.
EnterpriseName
}}
:
</span
>
<span
v-if=
"props.row.CreateType == 2 && props.row.EnterpriseName"
>
{{
props
.
row
.
EnterpriseName
}}
:
</span>
{{
props
.
row
.
StuSourceIdName
}}
</div>
<div
v-else
>
...
...
@@ -268,21 +162,15 @@
{{
props
.
row
.
AdvisorList
.
length
}}
<q-popup-proxy>
<q-banner>
<table
class=
"OCourseTable"
style=
"border-collapse:collapse;"
>
<table
class=
"OCourseTable"
style=
"border-collapse:collapse;"
>
<tr>
<th>
跟进状态
</th>
<th>
跟进日期
</th>
<th>
跟进比例
</th>
<th>
跟进备注
</th>
</tr>
<tr
v-for=
"(sItem, sIndex) in props.row.AdvisorList"
style=
"border-bottom:1px dashed #d1d1d1;"
:key=
"sIndex"
>
<tr
v-for=
"(sItem, sIndex) in props.row.AdvisorList"
style=
"border-bottom:1px dashed #d1d1d1;"
:key=
"sIndex"
>
<td>
{{
sItem
.
AdvisorStatusName
}}
</td>
<td>
{{
sItem
.
AdvisorDate
}}
</td>
<td>
{{
sItem
.
AdvisorRate
}}
</td>
...
...
@@ -305,21 +193,10 @@
<q-td
:props=
"props"
v-html=
"getCurseManager(props.row)"
></q-td>
</
template
>
<
template
v-slot:body-cell-OrderCount=
"props"
>
<q-td
:props=
"props"
v-if=
"!props.row.OrderCount || props.row.OrderCount == 0"
class=
"text-grey-4"
>
未报名
</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
>
<q-td
:props=
"props"
v-if=
"!props.row.OrderCount || props.row.OrderCount == 0"
class=
"text-grey-4"
>
未报名
</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
v-slot:body-cell-TeacherManager=
"props"
>
<q-td
:props=
"props"
v-html=
"getTeacherManager(props.row)"
></q-td>
...
...
@@ -337,21 +214,14 @@
<q-popup-proxy>
<q-banner>
<div
style=
"max-height:600px;overflow-y:auto;"
>
<table
class=
"stuListTable"
style=
"border-collapse:collapse;"
>
<table
class=
"stuListTable"
style=
"border-collapse:collapse;"
>
<tr>
<th>
角色
</th>
<th>
协同人
</th>
</tr>
<tr
v-for=
"(sItem, sIndex) in assistListFormat[
<tr
v-for=
"(sItem, sIndex) in assistListFormat[
props.pageIndex
]"
style=
"border-bottom:1px dashed #d1d1d1;"
:key=
"sIndex"
>
]"
style=
"border-bottom:1px dashed #d1d1d1;"
:key=
"sIndex"
>
<td>
{{
sItem
.
AssistTypeName
}}
</td>
<td>
{{
sItem
.
AssistName
}}
</td>
</tr>
...
...
@@ -368,61 +238,40 @@
</q-td>
</template>
</q-table>
<student-form
v-if=
"isShowStuForm"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
<student-form
v-if=
"isShowStuForm"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
</student-form>
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:checkType=
"checkType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"referDataHandler"
>
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:checkType=
"checkType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"referDataHandler"
>
</studentRight-form>
<studentAdd-form
v-if=
"isShowAdd"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
<studentAdd-form
v-if=
"isShowAdd"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
</studentAdd-form>
<transfer-order
v-if=
"isShowTransfer"
:select=
"selection"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
<transfer-order
v-if=
"isShowTransfer"
:select=
"selection"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
>
</transfer-order>
<abroad-form
v-if=
"isShowAbroad"
:select=
"selection"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
></abroad-form>
<abroad-form
v-if=
"isShowAbroad"
:select=
"selection"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
></abroad-form>
</div>
</template>
<
script
>
import
studentForm
from
"./student-form"
;
import
studentRightForm
from
"./studentRight-form"
;
import
studentAddForm
from
"./studentAdd-form"
;
import
transferOrder
from
"./transfer-order"
;
import
abroadForm
from
"./abroad-form"
;
import
{
mapGetters
}
from
"vuex"
;
import
{
import
studentForm
from
"./student-form"
;
import
studentRightForm
from
"./studentRight-form"
;
import
studentAddForm
from
"./studentAdd-form"
;
import
transferOrder
from
"./transfer-order"
;
import
abroadForm
from
"./abroad-form"
;
import
{
mapGetters
}
from
"vuex"
;
import
{
SetStudentAssistBatch
,
BatchForwardStudent
}
from
"../../../api/sale/sale"
;
import
{
EduDownLoad
}
from
"../../../api/common/common"
;
import
{
queryEmployee
}
from
"../../../api/users/user"
;
}
from
"../../../api/sale/sale"
;
import
{
EduDownLoad
}
from
"../../../api/common/common"
;
import
{
queryEmployee
}
from
"../../../api/users/user"
;
export
default
{
export
default
{
props
:
{
//数据列表
dataList
:
{
...
...
@@ -470,8 +319,7 @@ export default {
},
data
()
{
return
{
columns
:
[
{
columns
:
[{
name
:
"StuIcon"
,
label
:
""
,
field
:
"StuIcon"
,
...
...
@@ -808,8 +656,7 @@ export default {
this
.
$q
.
dialog
({
title
:
str
+
"学员"
,
message
:
"你正在进行"
+
str
+
"学员行为,一旦执行无法找回,是否确认执行?"
,
message
:
"你正在进行"
+
str
+
"学员行为,一旦执行无法找回,是否确认执行?"
,
persistent
:
true
,
cancel
:
{
label
:
"取消"
,
...
...
@@ -843,7 +690,6 @@ export default {
},
//刷新列表
refreshStuList
()
{
console
.
log
(
"change......"
);
this
.
$emit
(
"success"
);
this
.
selection
=
[];
},
...
...
@@ -1014,5 +860,5 @@ export default {
});
}
}
};
};
</
script
>
\ No newline at end of file
src/components/todolist/index.vue
View file @
3fb561df
...
...
@@ -193,7 +193,6 @@ export default {
},
mounted
()
{
this
.
currentMenu
=
this
.
menulist
[
0
].
id
.
toString
();
//console.log(this.todoTipList);
},
methods
:
{}
};
...
...
src/components/todolist/payee.vue
View file @
3fb561df
<
template
>
<div
class=
"full-height"
>
<div
class=
"row items-center"
>
<q-avatar
size=
"40px"
font-size=
"20px"
color=
"primary"
class=
"q-mr-md"
text-color=
"white"
rounded
:icon=
"`iconfont $
{node.icon}`"
/>
<q-avatar
size=
"40px"
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>
<div
class=
"q-my-md row"
>
<q-input
standout
v-model=
"msg.KeyWords"
dense
type=
"text"
style=
"width:250px;"
label=
"关键字(名称/微信/手机号)"
class=
"q-mr-md"
/>
<q-btn
color=
"primary"
class=
"q-px-md"
label=
"查询"
unelevated
dense
@
click=
"searchKeyHandler"
/>
<q-input
standout
v-model=
"msg.KeyWords"
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"
>
TIPS:创建订单后,请及时完成订单款项的入账动作,收款单据点击“修改-选择学员-制单”完成此项任务。
</div>
</div>
<div
style=
"height:calc(100% - 158px);overflow-y:auto;"
>
<orderlist
:dataList=
"stus"
@
success=
"refreshPage"
:loading=
"loading"
:authObj=
"authObj"
></orderlist>
<orderlist
:dataList=
"stus"
@
success=
"refreshPage"
:loading=
"loading"
:authObj=
"authObj"
></orderlist>
</div>
<div
class=
"row"
style=
"justify-content: flex-end;padding: 5px 20px"
>
<q-pagination
v-model=
"msg.PageIndex"
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
color=
"primary"
:input=
"true"
>
<q-pagination
v-model=
"msg.PageIndex"
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
color=
"primary"
:input=
"true"
>
</q-pagination>
</div>
</div>
</
template
>
<
script
>
import
orderlist
from
"../sale/orderlist.vue"
;
import
{
getMyOrderNotBalance
}
from
"../../api/stuMan/index"
;
export
default
{
components
:
{
orderlist
},
import
orderlist
from
"../sale/orderlist.vue"
;
import
{
getMyOrderNotBalance
}
from
"../../api/stuMan/index"
;
export
default
{
components
:
{
orderlist
},
props
:
[
"node"
],
data
()
{
return
{
...
...
@@ -97,7 +69,6 @@ export default {
.
then
(
r
=>
{
this
.
stus
=
r
.
Data
.
PageData
;
this
.
pageCount
=
r
.
Data
.
PageCount
;
console
.
log
(
this
.
stus
);
setTimeout
(()
=>
{
this
.
loading
=
false
;
},
1000
);
...
...
@@ -118,7 +89,7 @@ export default {
this
.
getStudent
();
}
}
};
};
</
script
>
<
style
><
/
style
>
<
style
>
</
style
>
\ No newline at end of file
src/pages/Work.vue
View file @
3fb561df
...
...
@@ -225,7 +225,6 @@ export default {
methods
:
{
initTodoList
()
{
getTodayStatic
().
then
(
r
=>
{
console
.
log
(
r
);
let
d
=
r
.
Data
;
this
.
todoList
.
result
=
d
;
let
tempCount
=
0
;
...
...
src/pages/classroom/Scheduling.vue
View file @
3fb561df
<
template
>
<div
class=
"page-body room-list"
v-loading=
"loading"
>
<div
v-for=
"(item, i) in classdata"
:key=
"item.Key"
>
<template
v-if=
"
<template
v-if=
"
item.SchoolName.indexOf('武侯') == -1 &&
item.SchoolName.indexOf('眉山') == -1
"
>
"
>
<div
class=
"row items-center"
>
<div
class=
"text-h6 col"
>
{{
item
.
SchoolName
}}
</div>
<div
v-if=
"i == 0"
class=
"f12"
>
只看在线:
</div>
<div
v-if=
"i == 0"
>
<el-switch
v-model=
"queryStatus"
@
change=
"changeViewStatusHandler"
></el-switch>
<el-switch
v-model=
"queryStatus"
@
change=
"changeViewStatusHandler"
></el-switch>
</div>
</div>
<div
class=
"q-mt-md q-mb-lg row"
>
<template
v-for=
"(x, xi) in item.RoomList"
>
<div
class=
"class-room"
style=
"width:calc(20% - 10px);margin-right:10px;margin-bottom:10px;"
v-if=
"queryStatus == 0 || (queryStatus == 1 && x.StatusInfo)"
:key=
"xi"
>
<div
class=
"class-room"
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"
>
<q-img
:src=
"x.RoomPicList[0]"
height=
"100%"
fit=
"fill"
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
/>
<q-img
:src=
"x.RoomPicList[0]"
height=
"100%"
fit=
"fill"
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
class=
"xuhua"
></div>
<div
class=
"q-pa-md"
>
...
...
@@ -58,37 +37,19 @@
</div>
<div
class=
"q-mt-lg f12 row items-center"
>
<div
class=
"text-grey-6 f12 col"
>
<span
class=
"q-px-xs text-white q-mr-md inline-block text-weight-bold"
style=
"border-radius:4px;font-size:15;"
:class=
"
{
<span
class=
"q-px-xs text-white q-mr-md inline-block text-weight-bold"
style=
"border-radius:4px;font-size:15;"
:class=
"
{
'bg-grey-3': !x.StatusInfo,
'bg-negative': x.StatusInfo
}"
>
}">
LIVE
</span>
<span
class=
"text-grey-6"
v-if=
"!x.StatusInfo"
>
设备离线
</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-if=
"!x.StatusInfo"
>
设备离线
</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
v-if=
"x.StatusInfo"
>
<q-btn
color=
"primary"
dense
class=
"f12"
flat
label=
"链接"
@
click=
"openVideo(x)"
/>
<q-btn
color=
"primary"
dense
class=
"f12"
flat
label=
"链接"
@
click=
"openVideo(x)"
/>
</div>
</div>
</div>
...
...
@@ -98,24 +59,20 @@
</template>
</div>
<q-dialog
v-model=
"showVideo"
@
hide=
"clearVideo"
>
<q-card
class=
"my-card"
style=
"width:64vw !important;max-width:64vw !important;max-height:32vw !important;height:32vw !important;"
flat
>
<div
id=
"player-con"
style=
"width:100%;height:100%;overflow:hidden;"
></div>
<q-card
class=
"my-card"
style=
"width:64vw !important;max-width:64vw !important;max-height:32vw !important;height:32vw !important;"
flat
>
<div
id=
"player-con"
style=
"width:100%;height:100%;overflow:hidden;"
></div>
</q-card>
</q-dialog>
</div>
</template>
<
script
>
import
{
getUseClassRoomList
}
from
"../../api/classroom/index"
;
import
*
as
signalR
from
"@aspnet/signalr"
;
export
default
{
import
{
getUseClassRoomList
}
from
"../../api/classroom/index"
;
import
*
as
signalR
from
"@aspnet/signalr"
;
export
default
{
meta
:
{
title
:
"教室状态"
},
...
...
@@ -135,7 +92,6 @@ export default {
created
()
{
let
thisVue
=
this
;
console
.
log
(
process
.
env
.
API_SIG
);
this
.
connection
=
new
signalR
.
HubConnectionBuilder
()
.
withUrl
(
process
.
env
.
API_SIG
,
{
skipNegotiation
:
true
,
...
...
@@ -143,9 +99,8 @@ export default {
})
.
configureLogging
(
signalR
.
LogLevel
.
Information
)
.
build
();
this
.
connection
.
on
(
"RoomStatusChange"
,
function
(
message
)
{
this
.
connection
.
on
(
"RoomStatusChange"
,
function
(
message
)
{
thisVue
.
roomStatusList
=
JSON
.
parse
(
message
);
console
.
log
(
thisVue
.
roomStatusList
);
thisVue
.
changeStatus
();
});
this
.
connection
.
onclose
(
async
()
=>
{
...
...
@@ -176,8 +131,7 @@ export default {
});
},
initPlayer
(
url
)
{
this
.
player
=
new
Aliplayer
(
{
this
.
player
=
new
Aliplayer
({
id
:
"player-con"
,
source
:
url
,
width
:
"100%"
,
...
...
@@ -190,7 +144,7 @@ export default {
controlBarVisibility
:
"hover"
,
useH5Prism
:
true
},
function
(
player
)
{}
function
(
player
)
{}
);
},
changeStatus
()
{
...
...
@@ -225,11 +179,9 @@ export default {
this
.
connection
.
start
()
.
then
(()
=>
{
console
.
log
(
"linke success"
);
thatVue
.
connection
.
invoke
(
"RegistErp"
,
"IMERP"
);
})
.
catch
(
e
=>
{
console
.
log
(
e
);
setTimeout
(()
=>
{
thatVue
.
linkHub
();
},
3000
);
...
...
@@ -263,35 +215,39 @@ export default {
});
}
}
};
};
</
script
>
<
style
>
.class-room
{
.class-room
{
border
:
1px
solid
#f5f5f5
;
border-radius
:
10px
;
position
:
relative
;
overflow
:
hidden
;
}
.class-room
.img-box
{
}
.class-room
.img-box
{
height
:
80px
;
}
.class-room
.xuhua
{
}
.class-room
.xuhua
{
position
:
absolute
;
top
:
0
;
height
:
80px
;
left
:
0
;
right
:
0
;
backdrop-filter
:
blur
(
4px
);
}
.class-room
:hover
.xuhua
{
}
.class-room
:hover
.xuhua
{
backdrop-filter
:
none
;
}
.no-data
{
}
.no-data
{
height
:
75px
;
font-size
:
14px
;
color
:
#000000
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
}
</
style
>
\ No newline at end of file
src/pages/financial/market/marketStatistics.vue
View file @
3fb561df
...
...
@@ -4,17 +4,23 @@
padding
:
18px
0
0
16px
;
text-align
:
right
;
}
.cycleOrderList
.border-bottom
{
/* border-bottom: 1px dashed #EEE; */
padding-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
{
background-color
:
#47BF8C
;
}
.cycleOrderList
._icon_btn
i
{
width
:
30px
;
height
:
30px
;
...
...
@@ -27,28 +33,28 @@
cursor
:
pointer
;
outline
:
none
;
}
.cycleOrderList
.el-table
td
,
.el-table
th
{
.cycleOrderList
.el-table
td
,
.el-table
th
{
padding
:
5px
0
;
}
</
style
>
</
style
>
<
template
>
<div
class=
"page-body cycleOrderList"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<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=
"校区
"
:dense=
"false"
emit-value
map-options
/>
option-label=
"SName"
v-model=
"msg.School_Id"
ref=
"School_Id"
:options=
"schoolList"
label=
"校区"
:dense=
"false
"
emit-value
map-options
/>
</div>
<div
class=
"col-3"
>
<selectTree
:treeData=
'DeptList'
:defaultArray=
"returnString"
nodeKey=
"DeptId"
:multiple=
"false"
labelKey=
"DeptName"
childrenKey=
"ChildList"
tipText=
"选择部门"
@
getChild=
"getChild"
></selectTree>
</div>
<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"
class=
"col-3 "
emit-value
map-options
@
filter=
"filterFn2"
>
v-model=
"msg.UserId"
ref=
"DeptTier"
:options=
"PersionList"
label=
"销售"
:dense=
"false"
class=
"col-3 "
emit-value
map-options
@
filter=
"filterFn2"
>
<template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
...
...
@@ -59,8 +65,8 @@
</q-select>
<div
class=
"col-3"
>
<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"
emit-value
map-options
@
filter=
"filterFn"
>
option-label=
"ClassName"
v-model=
"msg.ClassId"
:options=
"ClassList"
label=
"班级"
:dense=
"false"
emit-value
map-options
@
filter=
"filterFn"
>
<
template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
...
...
@@ -70,81 +76,74 @@
</
template
>
</q-select>
</div>
</div>
</div>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-select
filled
stack-label
@
input=
"resetSearch()"
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.PeriodId"
:options=
"PeriodsList"
label=
"周期"
:dense=
"false"
emit-value
map-options
/>
<q-select
filled
stack-label
@
input=
"resetSearch()"
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.PeriodId"
:options=
"PeriodsList"
label=
"周期"
:dense=
"false"
emit-value
map-options
/>
</div>
<div
class=
"col-3"
>
<q-input
filled
v-model=
"msg.OrderId"
@
keyup
.
enter
.
native=
"resetSearch()"
label=
"订单号"
/>
</div>
<div
class=
"col-3"
>
<q-select
filled
stack-label
input-debounce=
"0"
option-value=
"Id"
@
input=
"resetSearch()"
option-label=
"Name"
v-model=
"msg.UserType"
:options=
"UserTypeList"
label=
"类型"
:dense=
"false"
emit-value
map-options
>
<q-select
filled
stack-label
input-debounce=
"0"
option-value=
"Id"
@
input=
"resetSearch()"
option-label=
"Name"
v-model=
"msg.UserType"
:options=
"UserTypeList"
label=
"类型"
:dense=
"false"
emit-value
map-options
>
</q-select>
</div>
<div
class=
"col-3"
>
<q-select
filled
stack-label
input-debounce=
"0"
option-value=
"Id"
@
input=
"resetSearch()"
option-label=
"Name"
v-model=
"msg.IsDept"
:options=
"IsDeptList"
label=
"业绩方式"
:dense=
"false"
emit-value
map-options
>
<q-select
filled
stack-label
input-debounce=
"0"
option-value=
"Id"
@
input=
"resetSearch()"
option-label=
"Name"
v-model=
"msg.IsDept"
:options=
"IsDeptList"
label=
"业绩方式"
:dense=
"false"
emit-value
map-options
>
</q-select>
</div>
</div>
</div>
<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>
<q-btn
color=
"primary"
size=
"11px"
label=
"导出"
@
click=
"tcexport"
style=
"margin-left:10px"
/>
<span
style=
"font-size: 20px;font-weight: 400;"
>
提成统计
<span
style=
"font-size: 16px;"
>
(提成总计:{{TotalCommission}})
</span>
</span>
<q-btn
color=
"primary"
size=
"11px"
label=
"导出"
@
click=
"tcexport"
style=
"margin-left:10px"
/>
</div>
<
template
>
<el-table
ref=
"filterTable"
:data=
"tableData"
v-loading =
'loading'
: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
>
<el-table
ref=
"filterTable"
:data=
"tableData"
v-loading=
'loading'
: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"
>
<span
v-if=
"scope.row.UserType==1"
>
市场
</span>
<span
v-if=
"scope.row.UserType==2"
>
顾问
</span>
<span
v-if=
"scope.row.UserType==3"
>
教师
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"UserName"
label=
"人员"
>
</el-table-column>
<el-table-column
prop=
"IsDept"
label=
"业绩方式"
>
<el-table-column
prop=
"UserName"
label=
"人员"
>
</el-table-column>
<el-table-column
prop=
"IsDept"
label=
"业绩方式"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.IsDept==1"
>
部门
</span>
<span
v-if=
"scope.row.IsDept==2"
>
个人
</span>
</
template
>
</el-table-column>
<el-table-column
width=
'170'
prop=
"ClassName"
label=
"班级信息"
>
<el-table-column
width=
'170'
prop=
"ClassName"
label=
"班级信息"
>
<
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
.
ClassNo
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"OrderId"
label=
"订单号"
>
<el-table-column
prop=
"OrderId"
label=
"订单号"
>
<
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
>
</el-table-column>
<el-table-column
width=
'130'
prop=
"TotalCommissionMoney"
label=
"订单发放信息"
>
<
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
}}
<q-popup-proxy
transition-show=
"flip-up"
transition-hide=
"flip-down"
>
<div
style=
"padding: 10px;border-radius: 4px;background: #FFF;max-width: 500px;"
>
...
...
@@ -154,7 +153,6 @@
</div>
<div>
累计已发:
{{
scope
.
row
.
GiveOutMoney
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"IsFirstCommission"
label=
"首次发放"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -168,34 +166,29 @@
<div>
当期课时:
{{
scope
.
row
.
CurrentHours
>=
0
?
scope
.
row
.
CurrentHours
:
'-'
}}
</div>
</
template
>
</el-table-column>
<el-table-column
width=
'160'
prop=
"CurrentPeriodMoney"
label=
"当期发放信息"
>
<
template
slot-scope=
"scope"
>
<div
style=
"color: rgb(255, 156, 0);"
>
应发:
{{
scope
.
row
.
CurrentPeriodMoney
}}
</div>
<div>
抵扣:
{{
scope
.
row
.
DeductionMoney
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"YFMoney"
label=
"最终发放"
>
<
template
slot-scope=
"scope"
>
<div
style=
"color: rgb(233, 82, 82);"
>
{{
scope
.
row
.
YFMoney
}}
</div>
</
template
>
</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>
<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
"
:page-size=
"msg.PageSize"
:total=
'total'
>
<el-pagination
background
@
current-change=
"handleCurrentChanges"
layout=
"total,prev, pager, next, jumper
"
:current-page
.
sync=
"msg.PageIndex"
:page-size=
"msg.PageSize"
:total=
'total'
>
</el-pagination>
</div>
</template>
</div>
</template>
<
script
>
<
script
>
import
{
getSchoolDropdown
}
from
'../../../api/school/index'
...
...
@@ -206,7 +199,7 @@
getDeptTree
}
from
'../../../api/system/dept.js'
import
{
import
{
getSellAchievementsStatistics
,
getSellAchievementsPeriodsList
,
getSellAchievementsChangeLog
...
...
@@ -218,7 +211,9 @@
import
{
EduDownLoad
,
}
from
'../../../api/common/common'
;
import
{
number
}
from
'echarts'
import
{
number
}
from
'echarts'
export
default
{
meta
:
{
title
:
"业绩提成统计"
...
...
@@ -232,100 +227,112 @@ import { number } from 'echarts'
loading
:
false
,
//列表数据参数
msg
:
{
PageIndex
:
1
,
PageSize
:
10
,
School_Id
:
'-1'
,
Depart_Id
:
0
,
PageIndex
:
1
,
PageSize
:
10
,
School_Id
:
'-1'
,
Depart_Id
:
0
,
PeriodId
:
0
,
UserId
:
0
,
ClassId
:
0
,
OrderId
:
''
,
UserType
:
0
,
//类型 1市场、2顾问、3教师
IsDept
:
0
,
//业绩方式 1部门 2个人
ClassId
:
0
,
OrderId
:
''
,
UserType
:
0
,
//类型 1市场、2顾问、3教师
IsDept
:
0
,
//业绩方式 1部门 2个人
},
UserTypeList
:[{
Id
:
0
,
Name
:
'不限'
},{
Id
:
1
,
Name
:
'市场'
},{
Id
:
2
,
Name
:
'顾问'
},{
Id
:
3
,
Name
:
'教师'
},],
IsDeptList
:[{
Id
:
0
,
Name
:
'不限'
},{
Id
:
1
,
Name
:
'部门'
},{
Id
:
2
,
Name
:
'个人'
}],
UserTypeList
:
[{
Id
:
0
,
Name
:
'不限'
},
{
Id
:
1
,
Name
:
'市场'
},
{
Id
:
2
,
Name
:
'顾问'
},
{
Id
:
3
,
Name
:
'教师'
},
],
IsDeptList
:
[{
Id
:
0
,
Name
:
'不限'
},
{
Id
:
1
,
Name
:
'部门'
},
{
Id
:
2
,
Name
:
'个人'
}],
pageCount
:
0
,
persistent
:
false
,
listData
:
{},
tableData
:
[],
total
:
0
,
company
:
[],
department
:
[],
ClassList
:
[],
allClassList
:
[],
listData
:
{},
tableData
:
[],
total
:
0
,
company
:
[],
department
:
[],
ClassList
:
[],
allClassList
:
[],
returnString
:
[],
//默认岗位
see_tcdetailed
:
false
,
schoolList
:
[],
see_tcdetailed
:
false
,
schoolList
:
[],
DeptList
:
[],
// 部门下拉
PersionList
:
[],
//员工列表
AllemployeeList
:
[],
//所有员工
PeriodsList
:[],
//周期列表
TotalCommission
:
0
,
ChangeLog
:
''
,
PeriodsList
:
[],
//周期列表
TotalCommission
:
0
,
ChangeLog
:
''
,
}
},
created
()
{
let
userinfo
=
this
.
getLocalStorage
();
userinfo
.
ActionMenuList
.
map
(
x
=>
{
//判断权限
if
(
x
.
FunctionCode
==
"see_tcdetailed"
){
//判断是否可以查看其他明细
userinfo
.
ActionMenuList
.
map
(
x
=>
{
//判断权限
if
(
x
.
FunctionCode
==
"see_tcdetailed"
)
{
//判断是否可以查看其他明细
this
.
see_tcdetailed
=
true
;
}
})
if
(
this
.
see_tcdetailed
==
false
)
{
if
(
this
.
see_tcdetailed
==
false
)
{
this
.
msg
.
UserId
=
userinfo
.
Id
}
},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
OrderId
)
{
if
(
this
.
$route
.
query
&&
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
.
msg
.
UserId
=
this
.
$route
.
query
.
UserId
-
0
}
this
.
getList
()
this
.
getEmployee
();
//销售
this
.
getPeriodList
()
//周期
this
.
setClass
()
//班级
this
.
getBranchList
()
//校区
this
.
getEmployee
();
//销售
this
.
getPeriodList
()
//周期
this
.
setClass
()
//班级
this
.
getBranchList
()
//校区
this
.
getDepartList
(
0
);
},
methods
:
{
resetSearch
()
{
this
.
msg
.
PageIndex
=
1
;
this
.
getList
()
},
getList
(){
console
.
log
(
this
.
msg
,
'02222222222'
)
if
(
this
.
msg
)
getList
()
{
if
(
this
.
msg
)
this
.
loading
=
true
;
getSellAchievementsStatistics
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
tableData
=
res
.
Data
.
PageData
.
List
this
.
TotalCommission
=
res
.
Data
.
PageData
.
TotalCommission
this
.
total
=
res
.
Data
.
Count
}
})
},
unique
(
arr
,
Name
){
//数组去重
unique
(
arr
,
Name
)
{
//数组去重
const
res
=
new
Map
();
return
arr
.
filter
(
(
list
)
=>
!
res
.
has
(
list
.
text
)
&&
res
.
set
(
list
.
text
,
1
)
);
},
handleCurrentChanges
(
val
)
{
this
.
msg
.
PageIndex
=
val
;
handleCurrentChanges
(
val
)
{
this
.
msg
.
PageIndex
=
val
;
this
.
getList
()
},
//选择班级
...
...
@@ -338,8 +345,8 @@ import { number } from 'echarts'
if
(
res
.
Code
==
1
)
{
var
jsonData
=
res
.
Data
;
let
obj
=
{
ClassId
:
0
,
ClassName
:
'不限'
ClassId
:
0
,
ClassName
:
'不限'
}
jsonData
.
unshift
(
obj
)
if
(
jsonData
&&
jsonData
.
length
>
0
)
{
...
...
@@ -360,7 +367,7 @@ import { number } from 'echarts'
}
})
},
getBranchList
(){
//获取校区
getBranchList
()
{
//获取校区
getSchoolDropdown
({}).
then
(
res
=>
{
this
.
schoolList
=
res
.
Data
;
var
obj
=
{
...
...
@@ -374,7 +381,7 @@ import { number } from 'echarts'
},
//获取部门下拉数据
getDepartList
(
id
)
{
if
(
id
==-
1
)
{
if
(
id
==
-
1
)
{
id
=
0
}
let
msg
=
{
...
...
@@ -429,7 +436,7 @@ import { number } from 'echarts'
}
})
},
getPeriodList
(){
//获取周期下拉列表
getPeriodList
()
{
//获取周期下拉列表
getSellAchievementsPeriodsList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
PeriodsList
=
res
.
Data
...
...
@@ -439,9 +446,9 @@ import { number } from 'echarts'
}
this
.
PeriodsList
.
unshift
(
obj
)
// 从业绩表跳转带参
if
(
this
.
$route
.
query
.
Periods
)
{
this
.
PeriodsList
.
forEach
(
item
=>
{
if
(
item
.
Periods
==
this
.
$route
.
query
.
Periods
)
{
if
(
this
.
$route
.
query
.
Periods
)
{
this
.
PeriodsList
.
forEach
(
item
=>
{
if
(
item
.
Periods
==
this
.
$route
.
query
.
Periods
)
{
this
.
msg
.
PeriodId
=
item
.
Id
}
})
...
...
@@ -449,23 +456,22 @@ import { number } from 'echarts'
}
})
},
tcexport
(){
//导出
tcexport
()
{
//导出
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
EduDownLoad
(
"/SellAchievements/GetSellAchievementsStatisticsToExcel"
,
msg
,
"业绩提成统计.xls"
)
},
goUrlclass
(
path
,
Names
){
//班级
goUrlclass
(
path
,
Names
)
{
//班级
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
ClassName
:
Name
,
});
},
goUrlorderList
(
path
,
row
){
//订单跳转
goUrlorderList
(
path
,
row
)
{
//订单跳转
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
// EnterID:row.UserId
});
},
getmingxi
(
row
){
//明细
getmingxi
(
row
)
{
//明细
getSellAchievementsChangeLog
({
OrderId
:
row
.
OrderId
,
UserId
:
row
.
UserId
,
...
...
@@ -479,10 +485,7 @@ import { number } from 'echarts'
}
},
}
</
script
>
<
style
lang=
"sass"
>
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
</
style
>
\ No newline at end of file
src/pages/stuMan/classPlan.vue
View file @
3fb561df
...
...
@@ -34,7 +34,7 @@
<el-option
:key=
"0"
label=
"全部"
:value=
"0"
>
</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=
"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>
...
...
src/pages/stuMan/classRecord.vue
View file @
3fb561df
...
...
@@ -2,8 +2,7 @@
<div
class=
"page-body MainPlan xg"
>
<div
class=
"col row wrap q-col-gutter-md"
>
<div
class=
"col-2"
>
<el-select
v-model=
"msg.TeacherId"
style=
"width: 100%"
placeholder=
"教师"
size=
"small"
@
change=
"getTypeWay()"
>
<el-select
v-model=
"msg.TeacherId"
style=
"width: 100%"
placeholder=
"教师"
size=
"small"
@
change=
"getTypeWay()"
>
<el-option
v-for=
"item in TeacherList"
:key=
"item.TeacherName"
:label=
"item.TeacherName"
:value=
"item.TId"
>
</el-option>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000; padding-right: 10px"
>
...
...
@@ -36,13 +35,18 @@
<el-option
:key=
"0"
label=
"全部"
:value=
"0"
>
</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=
"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>
</el-select>
</div>
<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>
<teachTable
v-if=
"commonType == 2"
:tableData=
"tableData"
:PageCount=
"PageCount"
:setMsg=
"tabMsg"
:showCZ=
"true"
...
...
@@ -54,11 +58,13 @@
import
{
getTeacherDropDownList
,
queryClassRoomList
,
getStudentDorpDownList
,
}
from
"../../api/school/index"
;
import
{
GetClassPlanStatistical
,
GetClassPlanStatisticalPage
,
}
from
"../../api/teacher/index"
;
import
classmateForm
from
"../../components/course/classmate-form"
;
import
teachTable
from
"../teacher/components/teachTable"
;
import
changeClassForm
from
"../../components/teacher/changeClassForm.vue"
;
...
...
@@ -81,13 +87,15 @@
TeacherId
:
0
,
ClassRoomId
:
0
,
dataList
:
{},
loading
:
false
,
loading
:
false
,
msg
:
{
StartTime
:
""
,
EndTime
:
""
,
TeacherId
:
0
,
ClassRoomId
:
0
,
ClassType
:
0
,
Student_Id
:
""
,
StuName
:
""
,
},
commonType
:
2
,
//1日历模式 2列表模式
typeName
:
"列表模式"
,
...
...
@@ -101,6 +109,7 @@
ClassRoomId
:
0
,
ClassType
:
0
,
OrderBy
:
1
,
StuName
:
""
,
},
tableData
:
[],
//表格数据
PageCount
:
0
,
...
...
@@ -121,6 +130,7 @@
},
},
today
:
""
,
StuList
:
[],
//学员列表
};
},
created
()
{
...
...
@@ -148,6 +158,13 @@
this
.
getTableList
();
},
methods
:
{
queryStuList
()
{
getStudentDorpDownList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
StuList
=
res
.
Data
;
}
});
},
refreshPage
()
{
this
.
getPlanList
();
},
...
...
@@ -212,10 +229,11 @@
this
.
tabMsg
.
EndTime
=
this
.
msg
.
EndTime
;
this
.
tabMsg
.
ClassRoomId
=
this
.
msg
.
ClassRoomId
;
this
.
tabMsg
.
ClassType
=
this
.
msg
.
ClassType
;
this
.
tabMsg
.
TeacherId
=
this
.
msg
.
TeacherId
;
this
.
loading
=
true
;
this
.
tabMsg
.
TeacherId
=
this
.
msg
.
TeacherId
;
this
.
tabMsg
.
StuName
=
this
.
msg
.
StuName
;
this
.
loading
=
true
;
GetClassPlanStatisticalPage
(
this
.
tabMsg
).
then
((
res
)
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
tableData
=
res
.
Data
.
PageData
;
this
.
PageCount
=
res
.
Data
.
PageCount
;
...
...
@@ -235,11 +253,9 @@
},
},
};
</
script
>
<
style
lang=
"scss"
>
.xg
.el-input--prefix
.el-input__inner
{
padding-left
:
50px
;
}
</
style
>
\ No newline at end of file
src/pages/teacher/assessmentType.vue
View file @
3fb561df
...
...
@@ -38,7 +38,8 @@
</q-td>
<template
v-for=
"(subItem,subIndex) in props.row.SubtypeList[cIndex].OptionList"
>
<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
}}
分
</q-badge>
</div>
...
...
@@ -60,7 +61,8 @@
</q-td>
<template
v-for=
"(subItem,subIndex) in props.row.SubtypeList[cIndex].OptionList"
>
<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
}}
分
</q-badge>
</div>
...
...
@@ -113,7 +115,6 @@
this
.
columns
=
[];
queryAssessmentTypeList
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
console
.
log
(
"res"
,
res
);
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
result
;
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