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
942a5e06
Commit
942a5e06
authored
Feb 23, 2022
by
zhengke
Browse files
Options
Browse Files
Download
Plain Diff
1
parents
89de6cb8
18a23dab
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1665 additions
and
1470 deletions
+1665
-1470
App.vue
src/App.vue
+1
-1
index.js
src/api/stuMan/index.js
+8
-0
student-Assit.vue
src/components/school/student/student-Assit.vue
+223
-365
stulist.vue
src/components/school/student/stulist.vue
+53
-27
jumpCourse.vue
src/components/stuMan/jumpCourse.vue
+217
-0
changeCourse.vue
src/components/stuMan/subscribe/changeCourse.vue
+1
-0
detail.vue
src/components/stuMan/subscribe/detail.vue
+21
-4
subscribeForm.vue
src/components/stuMan/subscribe/subscribeForm.vue
+70
-66
rewardDetailed.vue
src/pages/course/rewardDetailed.vue
+7
-1
FinancialDocumentsDetail.vue
...s/financial/financalDocument/FinancialDocumentsDetail.vue
+87
-83
PassbookperiodsList.vue
src/pages/financial/returnPassbook/PassbookperiodsList.vue
+183
-209
ReturnUserList.vue
src/pages/financial/returnPassbook/ReturnUserList.vue
+338
-448
ReturnperiodsList.vue
src/pages/financial/returnPassbook/ReturnperiodsList.vue
+8
-1
makeupRate.vue
src/pages/sale/makeupRate.vue
+27
-1
mystu.vue
src/pages/sale/mystu.vue
+10
-2
visitTransform.vue
src/pages/sale/visitTransform.vue
+54
-5
student.vue
src/pages/school/student.vue
+33
-2
stuList.vue
src/pages/stuMan/stuList.vue
+31
-4
subscribe.vue
src/pages/studyAbroad/subscribe.vue
+293
-251
No files found.
src/App.vue
View file @
942a5e06
...
@@ -20,7 +20,7 @@ export default {
...
@@ -20,7 +20,7 @@ export default {
</
script
>
</
script
>
<
style
>
<
style
>
@import
url("//at.alicdn.com/t/font_2077629_
bgk17xi4zj
.css")
;
@import
url("//at.alicdn.com/t/font_2077629_
w1o8daso6r9
.css")
;
@font-face
{
@font-face
{
font-family
:
'din'
;
font-family
:
'din'
;
src
:
url('./assets/font/DIN-Bold.otf')
format
(
'opentype'
);
src
:
url('./assets/font/DIN-Bold.otf')
format
(
'opentype'
);
...
...
src/api/stuMan/index.js
View file @
942a5e06
...
@@ -80,3 +80,11 @@ export function getEventLogPageList(data) {
...
@@ -80,3 +80,11 @@ export function getEventLogPageList(data) {
data
data
})
})
}
}
// 设置学生跳课
export
function
setGuestStartChapter
(
data
)
{
return
request
({
url
:
'/Scroll/SetGuestStartChapter'
,
method
:
'post'
,
data
})
}
\ No newline at end of file
src/components/school/student/student-Assit.vue
View file @
942a5e06
<
style
>
<
style
>
.delAssist
{
.delAssist
{
position
:
absolute
;
position
:
absolute
;
right
:
-16px
;
right
:
-16px
;
top
:
-12px
;
top
:
-12px
;
...
@@ -12,148 +12,51 @@
...
@@ -12,148 +12,51 @@
text-align
:
center
;
text-align
:
center
;
line-height
:
20px
;
line-height
:
20px
;
cursor
:
pointer
;
cursor
:
pointer
;
}
}
.studentAssitTable
{
.studentAssitTable
{
width
:
100%
;
width
:
100%
;
text-align
:
center
;
text-align
:
center
;
}
}
.studentAssitTable
td
{
.studentAssitTable
td
{
height
:
40px
;
height
:
40px
;
line-height
:
40px
;
line-height
:
40px
;
border
:
1px
solid
#f2f2f2
;
border
:
1px
solid
#f2f2f2
;
}
}
.studentAssitTable
th
{
.studentAssitTable
th
{
height
:
40px
;
height
:
40px
;
background-color
:
#f2f2f2
;
background-color
:
#f2f2f2
;
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div>
<div>
<q-btn
<q-btn
label=
"新增"
color=
"accent q-mb-lg"
size=
"sm"
v-if=
"userInfo.IsCourseConsultant == 1"
label=
"新增"
@
click=
"isShowAdd = true"
/>
color=
"accent q-mb-lg"
size=
"sm"
v-if=
"userInfo.IsCourseConsultant == 1"
@
click=
"isShowAdd = true"
/>
<span
class=
"text-grey-4"
v-else
>
抱歉,你没有权限邀请其他服务人员
</span>
<span
class=
"text-grey-4"
v-else
>
抱歉,你没有权限邀请其他服务人员
</span>
<q-btn
<q-btn
label=
"取消"
style=
"margin-left:20px;"
v-if=
"isShowAdd"
flat
color=
"grey-10 q-mb-lg"
size=
"sm"
label=
"取消"
@
click=
"isShowAdd = false"
/>
style=
"margin-left:20px;"
v-if=
"isShowAdd"
flat
color=
"grey-10 q-mb-lg"
size=
"sm"
@
click=
"isShowAdd = false"
/>
<template
v-if=
"isShowAdd"
>
<template
v-if=
"isShowAdd"
>
<div
class=
"row wrap"
v-if=
"isHaveTeacher"
>
<div
class=
"row wrap"
>
<q-select
<q-select
filled
stack-label
option-label=
"Name"
@
input=
"getRole"
v-model=
"AssitMsg.AssistType"
filled
option-value=
"Id"
:options=
"AssistDropList"
label=
"角色"
dense
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
stack-label
map-options
/>
option-label=
"Name"
<q-select
filled
dense
v-if=
"AssitMsg.AssistType == 2"
v-model=
"AssitMsg.AssistId"
:options=
"RoleListData"
@
input=
"getRole"
option-label=
"EmployeeName"
class=
"col-6 q-pb-lg"
option-value=
"Id"
emit-value
map-options
/>
v-model=
"AssitMsg.AssistType"
<q-select
filled
dense
v-else
v-model=
"AssitMsg.AssistId"
@
filter=
"filterEmployee"
use-input
option-value=
"Id"
:options=
"myEmployeeList"
option-label=
"EmployeeName"
class=
"col-6 q-pb-lg"
option-value=
"Id"
emit-value
:options=
"AssistTeacherDropList"
map-options
/>
label=
"角色"
dense
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
dense
v-if=
"AssitMsg.AssistType == 2"
v-model=
"AssitMsg.AssistId"
:options=
"RoleListData"
option-label=
"EmployeeName"
class=
"col-6 q-pb-lg"
option-value=
"Id"
emit-value
map-options
/>
<q-select
filled
dense
v-else
v-model=
"AssitMsg.AssistId"
@
filter=
"filterEmployee"
use-input
:options=
"myEmployeeList"
option-label=
"EmployeeName"
class=
"col-6 q-pb-lg"
option-value=
"Id"
emit-value
map-options
/>
<i
class=
"iconfont icon-close delAssist"
></i>
</div>
<div
class=
"row wrap"
v-else
>
<q-select
filled
stack-label
option-label=
"Name"
@
input=
"getRole"
v-model=
"AssitMsg.AssistType"
option-value=
"Id"
:options=
"AssistDropList"
label=
"角色"
dense
class=
"col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
dense
v-if=
"AssitMsg.AssistType == 2"
v-model=
"AssitMsg.AssistId"
:options=
"RoleListData"
option-label=
"EmployeeName"
class=
"col-6 q-pb-lg"
option-value=
"Id"
emit-value
map-options
/>
<q-select
filled
dense
v-else
v-model=
"AssitMsg.AssistId"
@
filter=
"filterEmployee"
use-input
:options=
"myEmployeeList"
option-label=
"EmployeeName"
class=
"col-6 q-pb-lg"
option-value=
"Id"
emit-value
map-options
/>
<i
class=
"iconfont icon-close delAssist"
></i>
<i
class=
"iconfont icon-close delAssist"
></i>
</div>
</div>
<div
class=
"row wrap"
style=
"margin-bottom:10px;float:right;"
>
<div
class=
"row wrap"
style=
"margin-bottom:10px;float:right;"
>
<q-btn
<q-btn
label=
"保存"
color=
"accent q-mb-lg"
size=
"md"
@
click=
"saveAssit()"
/>
label=
"保存"
color=
"accent q-mb-lg"
size=
"md"
@
click=
"saveAssit()"
/>
</div>
</div>
</
template
>
</
template
>
<div
v-if=
"dataList.length > 0"
>
<div
v-if=
"dataList.length > 0"
>
<table
<table
class=
"studentAssitTable"
style=
"border:1px solid #f2f2f2;border-collapse:collapse;"
cellspacing=
"0"
class=
"studentAssitTable"
cellpadding=
"0"
>
style=
"border:1px solid #f2f2f2;border-collapse:collapse;"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<tr>
<th
style=
"width:180px;"
>
角色
</th>
<th
style=
"width:180px;"
>
角色
</th>
<th
style=
"width:180px;"
>
人员
</th>
<th
style=
"width:180px;"
>
人员
</th>
...
@@ -164,35 +67,14 @@
...
@@ -164,35 +67,14 @@
<td>
{{ item.AssistName }}
</td>
<td>
{{ item.AssistName }}
</td>
<td
v-if=
"userInfo.IsCourseConsultant == 1"
>
<td
v-if=
"userInfo.IsCourseConsultant == 1"
>
<div
v-if=
"item.AssistType != 2 && item.AssistType != 4"
>
<div
v-if=
"item.AssistType != 2 && item.AssistType != 4"
>
<q-btn
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"修改"
flat
@
click=
"getEditInfo(item)"
></q-btn>
size=
"xs"
<q-btn
flat
size=
"xs"
icon=
"delete"
color=
"negative"
style=
"font-weight:400"
label=
"删除"
icon=
"edit"
@
click=
"deleteAssits(item.Id)"
/>
color=
"accent"
style=
"font-weight:400"
label=
"修改"
@
click=
"getEditInfo(item)"
></q-btn>
<q-btn
flat
size=
"xs"
icon=
"delete"
color=
"negative"
style=
"font-weight:400"
label=
"删除"
@
click=
"deleteAssits(item.Id)"
/>
</div>
</div>
<div
v-if=
"isShowBian(item)"
>
<div
v-if=
"isShowBian(item)"
>
<q-btn
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"修改"
flat
@
click=
"getGuwenEditInfo(item)"
></q-btn>
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"修改"
@
click=
"getGuwenEditInfo(item)"
></q-btn>
</div>
</div>
</td>
</td>
</tr>
</tr>
...
@@ -201,16 +83,17 @@
...
@@ -201,16 +83,17 @@
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
import
{
GetAssistTypeList
,
GetAssistTypeList
,
SetStudentAssist
,
SetStudentAssist
,
GetStudentAssistList
,
GetStudentAssistList
,
RemoveStudentAssist
RemoveStudentAssist
}
from
"../../../api/sale/sale"
;
}
from
"../../../api/sale/sale"
;
import
{
queryEmployee
}
from
"../../../api/users/user"
;
import
{
import
{
mapState
}
from
"vuex"
;
queryEmployee
}
from
"../../../api/users/user"
;
export
default
{
export
default
{
meta
:
{
meta
:
{
title
:
""
title
:
""
},
},
...
@@ -241,7 +124,6 @@ export default {
...
@@ -241,7 +124,6 @@ export default {
dataList
:
[],
dataList
:
[],
page_Count
:
0
,
page_Count
:
0
,
AssistDropList
:
[],
//下拉数据
AssistDropList
:
[],
//下拉数据
AssistTeacherDropList
:[],
RoleListData
:
[],
//课程顾问下拉数据
RoleListData
:
[],
//课程顾问下拉数据
employeeList
:
[],
employeeList
:
[],
myEmployeeList
:
[],
myEmployeeList
:
[],
...
@@ -255,26 +137,6 @@ export default {
...
@@ -255,26 +137,6 @@ export default {
this
.
msg
.
StuId
=
this
.
saveObj
.
StuId
;
this
.
msg
.
StuId
=
this
.
saveObj
.
StuId
;
}
}
},
},
computed
:
mapState
({
isHaveTeacher
(
state
)
{
if
(
state
.
user
.
userInfo
&&
state
.
user
.
userInfo
.
ActionMenuList
&&
state
.
user
.
userInfo
.
ActionMenuList
.
length
>
0
)
{
let
action
=
state
.
user
.
userInfo
.
ActionMenuList
.
find
(
x
=>
{
if
(
x
.
FunctionCode
==
"Query_TeacherAssist"
)
{
return
x
;
}
});
if
(
action
)
{
return
true
;
}
}
return
false
;
}
}),
mounted
()
{
mounted
()
{
this
.
getList
();
this
.
getList
();
this
.
GetAssistTypeList
();
this
.
GetAssistTypeList
();
...
@@ -288,12 +150,9 @@ export default {
...
@@ -288,12 +150,9 @@ export default {
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
let
template
=
res
.
Data
;
let
template
=
res
.
Data
;
template
.
forEach
(
x
=>
{
template
.
forEach
(
x
=>
{
if
(
x
.
Id
!=
1
&&
x
.
Id
!=
4
)
{
if
(
x
.
Id
!=
1
)
{
this
.
AssistDropList
.
push
(
x
);
this
.
AssistDropList
.
push
(
x
);
}
}
if
(
x
.
Id
==
4
){
this
.
AssistTeacherDropList
.
push
(
x
);
}
});
});
}
}
});
});
...
@@ -317,7 +176,6 @@ export default {
...
@@ -317,7 +176,6 @@ export default {
this
.
RoleListData
=
res
.
Data
;
this
.
RoleListData
=
res
.
Data
;
});
});
},
},
//筛选员工
//筛选员工
filterEmployee
(
val
,
update
,
abort
)
{
filterEmployee
(
val
,
update
,
abort
)
{
update
(()
=>
{
update
(()
=>
{
...
@@ -361,11 +219,11 @@ export default {
...
@@ -361,11 +219,11 @@ export default {
.
catch
(()
=>
{});
.
catch
(()
=>
{});
},
},
//课程顾问是本人 显示编辑按钮
//课程顾问是本人 显示编辑按钮
isShowBian
(
item
)
{
isShowBian
(
item
)
{
let
isShow
=
false
;
let
isShow
=
false
;
if
(
item
.
AssistTypeName
==
'课程顾问'
)
{
if
(
item
.
AssistTypeName
==
'课程顾问'
)
{
if
(
this
.
userInfo
.
AccountName
==
item
.
AssistName
)
{
if
(
this
.
userInfo
.
AccountName
==
item
.
AssistName
)
{
isShow
=
true
isShow
=
true
}
}
}
}
return
isShow
;
return
isShow
;
...
@@ -404,7 +262,7 @@ export default {
...
@@ -404,7 +262,7 @@ export default {
this
.
AssitMsg
.
AssistType
=
obj
.
AssistType
;
this
.
AssitMsg
.
AssistType
=
obj
.
AssistType
;
this
.
isShowAdd
=
true
;
this
.
isShowAdd
=
true
;
},
},
getGuwenEditInfo
(
obj
)
{
getGuwenEditInfo
(
obj
)
{
this
.
getRole
();
this
.
getRole
();
this
.
AssitMsg
.
Id
=
obj
.
Id
;
this
.
AssitMsg
.
Id
=
obj
.
Id
;
this
.
AssitMsg
.
AssistId
=
obj
.
AssistId
;
this
.
AssitMsg
.
AssistId
=
obj
.
AssistId
;
...
@@ -412,5 +270,5 @@ export default {
...
@@ -412,5 +270,5 @@ export default {
this
.
isShowAdd
=
true
;
this
.
isShowAdd
=
true
;
}
}
}
}
};
};
</
script
>
</
script
>
\ No newline at end of file
src/components/school/student/stulist.vue
View file @
942a5e06
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
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
;
...
@@ -39,6 +40,7 @@
...
@@ -39,6 +40,7 @@
cursor
:
pointer
;
cursor
:
pointer
;
color
:
#2961FE
;
color
:
#2961FE
;
}
}
.OCourseTable
{
.OCourseTable
{
width
:
400px
;
width
:
400px
;
text-align
:
center
;
text-align
:
center
;
...
@@ -52,7 +54,6 @@
...
@@ -52,7 +54,6 @@
height
:
40px
;
height
:
40px
;
background-color
:
rgb
(
238
,
238
,
239
);
background-color
:
rgb
(
238
,
238
,
239
);
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"stuList"
>
<div
class=
"stuList"
>
...
@@ -71,8 +72,8 @@
...
@@ -71,8 +72,8 @@
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转留学"
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"转留学"
:disable=
"selection.length === 0"
@
click=
"transferAbroad"
/>
:disable=
"selection.length === 0"
@
click=
"transferAbroad"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"add"
label=
"新增学员"
@
click=
"EditStudent(null)"
/>
<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=
"下载"
<q-btn
v-if=
"authObj&&authObj.isShowDownload"
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
@
click=
"downloadStudent"
/>
label=
"下载"
@
click=
"downloadStudent"
/>
</div>
</div>
<div
class=
"page-option"
v-if=
"pushMode"
>
<div
class=
"page-option"
v-if=
"pushMode"
>
<q-btn
color=
"accent"
unelevated
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"立即推送"
:loading=
"pushing"
<q-btn
color=
"accent"
unelevated
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"立即推送"
:loading=
"pushing"
...
@@ -106,10 +107,13 @@
...
@@ -106,10 +107,13 @@
</
template
>
</
template
>
<
template
v-slot:body-cell-StuSourceIdName=
"props"
>
<
template
v-slot:body-cell-StuSourceIdName=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div>
<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
}}
{{
props
.
row
.
StuSourceIdName
}}
</div>
</div>
<div
v-else
>
-
</div>
</q-td>
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-AdvisorWinRate=
"props"
>
<
template
v-slot:body-cell-AdvisorWinRate=
"props"
>
...
@@ -131,7 +135,8 @@
...
@@ -131,7 +135,8 @@
<th>
跟进比例
</th>
<th>
跟进比例
</th>
<th>
跟进备注
</th>
<th>
跟进备注
</th>
</tr>
</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
.
AdvisorStatusName
}}
</td>
<td>
{{
sItem
.
AdvisorDate
}}
</td>
<td>
{{
sItem
.
AdvisorDate
}}
</td>
<td>
{{
sItem
.
AdvisorRate
}}
</td>
<td>
{{
sItem
.
AdvisorRate
}}
</td>
...
@@ -154,7 +159,8 @@
...
@@ -154,7 +159,8 @@
<
template
v-slot:body-cell-OrderCount=
"props"
>
<
template
v-slot:body-cell-OrderCount=
"props"
>
<q-td
:props=
"props"
v-if=
"props.row.OrderCount == 0"
class=
"text-grey-4"
>
未报名
</q-td>
<q-td
:props=
"props"
v-if=
"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)"
>
<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>
已报名
{{
props
.
row
.
OrderCount
}}
单
</q-td>
</
template
>
</
template
>
<
template
v-slot:body-cell-TeacherManager=
"props"
>
<
template
v-slot:body-cell-TeacherManager=
"props"
>
...
@@ -199,8 +205,9 @@
...
@@ -199,8 +205,9 @@
</q-table>
</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>
</student-form>
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:checkType=
"checkType"
:save-obj=
"stuOption"
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"referDataHandler"
>
:checkType=
"checkType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"referDataHandler"
>
</studentRight-form>
</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>
</studentAdd-form>
...
@@ -286,6 +293,18 @@
...
@@ -286,6 +293,18 @@
label
:
"是否报名"
,
label
:
"是否报名"
,
align
:
"left"
align
:
"left"
},
},
{
name
:
"VisitCount"
,
label
:
"到访次数"
,
field
:
"VisitCount"
,
align
:
"left"
},
{
name
:
"TrialLessonCount"
,
label
:
"试听次数"
,
field
:
"TrialLessonCount"
,
align
:
"left"
},
{
{
name
:
"StuSex"
,
name
:
"StuSex"
,
label
:
"性别"
,
label
:
"性别"
,
...
@@ -394,18 +413,7 @@
...
@@ -394,18 +413,7 @@
field
:
"StuChannelName"
,
field
:
"StuChannelName"
,
align
:
"left"
align
:
"left"
},
},
{
name
:
"VisitCount"
,
label
:
"到访次数"
,
field
:
"VisitCount"
,
align
:
"left"
},
{
name
:
"TrialLessonCount"
,
label
:
"试听次数"
,
field
:
"TrialLessonCount"
,
align
:
"left"
},
{
{
name
:
"CreateTimeStr"
,
name
:
"CreateTimeStr"
,
label
:
"创建时间"
,
label
:
"创建时间"
,
...
@@ -433,8 +441,9 @@
...
@@ -433,8 +441,9 @@
pushMode
:
false
,
pushMode
:
false
,
pushing
:
false
,
pushing
:
false
,
assistListFormat
:
[],
assistListFormat
:
[],
checkType
:
1
,
checkType
:
1
,
isShowAbroad
:
false
isShowAbroad
:
false
,
userInfo
:
{},
//当前登录人员
};
};
},
},
watch
:
{
watch
:
{
...
@@ -447,14 +456,31 @@
...
@@ -447,14 +456,31 @@
}
}
},
},
created
()
{
created
()
{
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
formatAssistList
();
this
.
formatAssistList
();
this
.
initAuth
();
this
.
initAuth
();
},
},
mounted
()
{},
mounted
()
{},
computed
:
{
computed
:
{
...
mapGetters
([
"
userInfo"
,
"
logo"
,
"name"
])
...
mapGetters
([
"logo"
,
"name"
])
},
},
methods
:
{
methods
:
{
IsShowStuSourceIdName
(
item
)
{
var
isHaveAuth
=
false
;
if
(
this
.
userInfo
&&
this
.
userInfo
.
ActionMenuList
&&
this
.
userInfo
.
ActionMenuList
.
length
>
0
)
{
this
.
userInfo
.
ActionMenuList
.
forEach
((
x
)
=>
{
if
(
x
.
FunctionCode
==
"Look_StuSourceId"
)
{
isHaveAuth
=
true
;
}
});
}
if
(
item
.
CreateBy
==
this
.
userInfo
.
Id
||
isHaveAuth
)
{
return
true
;
}
else
{
return
false
;
}
},
//下载文件
//下载文件
downloadStudent
()
{
downloadStudent
()
{
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
queryMsg
));
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
queryMsg
));
...
@@ -605,11 +631,11 @@
...
@@ -605,11 +631,11 @@
this
.
isShowAbroad
=
false
;
this
.
isShowAbroad
=
false
;
},
},
//点击学生姓名弹出
//点击学生姓名弹出
getStuRight
(
obj
,
type
)
{
getStuRight
(
obj
,
type
)
{
if
(
obj
)
{
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
stuOption
=
obj
;
this
.
BelongType
=
obj
.
BelongType
;
this
.
BelongType
=
obj
.
BelongType
;
this
.
checkType
=
type
;
this
.
checkType
=
type
;
}
else
{
}
else
{
this
.
stuOption
=
null
;
this
.
stuOption
=
null
;
}
}
...
@@ -632,7 +658,7 @@
...
@@ -632,7 +658,7 @@
this
.
isShowTransfer
=
true
;
this
.
isShowTransfer
=
true
;
},
},
//转留学
//转留学
transferAbroad
(){
transferAbroad
()
{
this
.
isShowAbroad
=
true
;
this
.
isShowAbroad
=
true
;
},
},
getCurseManager
(
row
)
{
getCurseManager
(
row
)
{
...
@@ -677,7 +703,7 @@
...
@@ -677,7 +703,7 @@
});
});
if
(
msg
==
""
)
{
if
(
msg
==
""
)
{
SetStudentAssistBatch
(
parameter
).
then
(
r
=>
{
SetStudentAssistBatch
(
parameter
).
then
(
r
=>
{
this
.
$emit
(
"reload"
);
this
.
refreshStuList
(
);
this
.
selection
=
[];
this
.
selection
=
[];
this
.
pushMode
=
false
;
this
.
pushMode
=
false
;
});
});
...
...
src/components/stuMan/jumpCourse.vue
0 → 100644
View file @
942a5e06
<
template
>
<!-- 跳课 -->
<q-dialog
v-model=
"show"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 900px; max-width: 900px"
>
<q-card-section
class=
"row items-center q-pb-none"
>
<div
class=
"text-h6"
>
跳课
</div>
<q-space
/>
<q-btn
icon=
"close"
flat
round
dense
@
click=
"changeDig(false)"
/>
</q-card-section>
<q-card-section
class=
"q-pt-none"
>
<div
class=
"row col flex q-col-gutter-md"
>
<q-field
filled
label=
"姓名"
readonly
stack-label
class=
"col-4"
>
<template
v-slot:control
>
<div>
{{
saveObj
.
GuestName
}}
</div>
</
template
>
</q-field>
<!-- <q-field filled label="课程" readonly stack-label class="col-4">
<template v-slot:control>
<div>{{ saveObj.CourseName }}</div>
</template>
</q-field>
<q-field filled label="班级" readonly stack-label class="col-4">
<template v-slot:control>
<div>{{ saveObj.ClassName }}</div>
</template>
</q-field> -->
<q-field
filled
label=
"已上课次数"
readonly
stack-label
class=
"col-4"
>
<
template
v-slot:control
>
<div>
{{
saveObj
.
CourseChapterNo
}}
</div>
</
template
>
</q-field>
<q-field
filled
label=
"预约次数"
readonly
stack-label
class=
"col-4"
>
<
template
v-slot:control
>
<div>
{{
saveObj
.
AppointNum
}}
</div>
</
template
>
</q-field>
</div>
<div
class=
"q-my-xs"
>
类型:
<q-radio
v-model=
"type"
val=
"a"
label=
"第一次课开始"
color=
"teal"
@
input=
"changeType"
/>
<q-radio
v-model=
"type"
val=
"b"
label=
"中途已上课"
color=
"teal"
@
input=
"changeType"
/>
<q-radio
v-model=
"type"
val=
"c"
label=
"后续未上课"
color=
"teal"
@
input=
"changeType"
/>
</div>
<div
class=
"row col q-col-gutter-md"
>
<q-input
filled
v-model
.
number=
"msg.SChapterNo"
label=
"跳课开始章节"
type=
"number"
class=
"col-4"
stack-label
:min=
"0"
v-if=
"type == 'b'"
@
change=
"changeStartChapter"
/>
<q-input
filled
v-model
.
number=
"endSChapterNo"
label=
"跳课结束章节"
type=
"number"
class=
"col-4"
stack-label
:min=
"0"
:max=
"999"
@
change=
"changeEndChapter"
/>
</div>
<div
class=
"q-my-xs"
style=
"word-wrap:break-word"
>
<span
style=
"white-space:nowrap"
>
跳课章节列表:
</span>
{{ msg.ChapterNos }}
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
@
click=
"changeDig(false)"
/>
<q-btn
label=
"保存"
color=
"accent q-px-md"
:loading=
"loading"
@
click=
"save"
/>
</q-card-actions>
</q-card>
</q-dialog>
</template>
<
script
>
import
{
setGuestStartChapter
}
from
"../../api/stuMan/index.js"
;
export
default
{
model
:
{
prop
:
"show"
,
event
:
"changeshow"
},
props
:
{
show
:
{
type
:
Boolean
,
default
:
false
},
saveObj
:
{
type
:
Object
}
},
watch
:
{
show
(){
this
.
loading
=
false
},
},
data
()
{
return
{
type
:
"c"
,
saveLoading
:
false
,
msg
:
{
StuId
:
0
,
GuestId
:
0
,
CourseId
:
0
,
ChapterNos
:
""
,
SChapterNo
:
0
},
endSChapterNo
:
0
,
loading
:
false
};
},
mounted
()
{},
methods
:
{
//开关弹窗
changeDig
(
val
)
{
this
.
$emit
(
"changeshow"
,
val
);
},
changeType
()
{
this
.
msg
.
SChapterNo
=
0
;
this
.
msg
.
ChapterNos
=
""
;
this
.
endSChapterNo
=
0
;
},
changeStartChapter
()
{
if
(
!
this
.
msg
.
SChapterNo
)
{
this
.
msg
.
SChapterNo
=
0
;
}
this
.
changeEndChapter
();
},
changeEndChapter
()
{
if
(
!
this
.
endSChapterNo
)
{
this
.
endSChapterNo
=
0
;
}
if
(
this
.
endSChapterNo
>=
999
)
{
this
.
endSChapterNo
=
999
;
}
const
end
=
parseInt
(
this
.
endSChapterNo
);
let
arr
=
[];
if
(
this
.
type
==
"a"
)
{
for
(
let
i
=
1
;
i
<=
end
;
i
++
)
{
arr
.
push
(
i
);
}
}
else
if
(
this
.
type
==
"b"
)
{
for
(
let
i
=
this
.
msg
.
SChapterNo
;
i
<=
end
;
i
++
)
{
arr
.
push
(
i
);
}
}
else
if
(
this
.
type
==
"c"
)
{
let
start
=
this
.
saveObj
.
CourseChapterNo
+
this
.
saveObj
.
AppointNum
;
for
(
let
i
=
start
+
1
;
i
<=
end
;
i
++
)
{
arr
.
push
(
i
);
}
}
this
.
msg
.
ChapterNos
=
arr
.
toString
();
},
save
()
{
if
(
this
.
endSChapterNo
==
0
)
{
this
.
$q
.
notify
({
message
:
"请输入跳课的章节"
,
position
:
"top"
});
return
;
}
this
.
msg
.
StuId
=
this
.
saveObj
.
Student_Id
;
this
.
msg
.
GuestId
=
this
.
saveObj
.
Id
;
this
.
msg
.
CourseId
=
this
.
saveObj
.
CourseId
;
this
.
loading
=
true
;
setGuestStartChapter
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
message
:
"操作成功"
,
position
:
"top"
});
this
.
changeDig
(
false
);
this
.
$emit
(
"success"
);
}
})
.
catch
(
err
=>
{
this
.
loading
=
false
;
});
}
}
};
</
script
>
src/components/stuMan/subscribe/changeCourse.vue
View file @
942a5e06
...
@@ -39,6 +39,7 @@
...
@@ -39,6 +39,7 @@
:key=
"_index"
:key=
"_index"
:val=
"_item"
:val=
"_item"
@
input=
"courseCheck(item.TeacherId, _item)"
@
input=
"courseCheck(item.TeacherId, _item)"
v-if=
"_item.ClassType==3"
>
>
{{
item
.
TeacherName
}}
{{
_item
.
CourseName
}}
{{
item
.
TeacherName
}}
{{
_item
.
CourseName
}}
{{
_item
.
RoomName
}}
{{
_item
.
StartTime
}}
-
{{
{{
_item
.
RoomName
}}
{{
_item
.
StartTime
}}
-
{{
...
...
src/components/stuMan/subscribe/detail.vue
View file @
942a5e06
...
@@ -73,7 +73,7 @@
...
@@ -73,7 +73,7 @@
color=
"accent"
color=
"accent"
size=
"xs"
size=
"xs"
label=
"确认"
label=
"确认"
v-if=
"saveObj.AppointState == 1&&saveObj.GuestList.length>=saveObj.ScrollMinNum"
v-if=
"saveObj.AppointState == 1&&saveObj.GuestList.length>=saveObj.ScrollMinNum
&&auth.IsEdit
"
@
click=
"confirmSub"
@
click=
"confirmSub"
class=
"q-ml-md"
class=
"q-ml-md"
/>
/>
...
@@ -110,7 +110,7 @@
...
@@ -110,7 +110,7 @@
v-if=
"saveObj.ClassType == 3"
v-if=
"saveObj.ClassType == 3"
>
>
<
template
v-slot:control
>
<
template
v-slot:control
>
<div
v-if=
"saveObj.AppointState == 1"
>
<div
v-if=
"saveObj.AppointState == 1
&&auth.IsEdit
"
>
<div
class=
"q-mt-sm flex justify-start"
>
<div
class=
"q-mt-sm flex justify-start"
>
<q-btn
<q-btn
color=
"accent"
color=
"accent"
...
@@ -179,6 +179,14 @@ export default {
...
@@ -179,6 +179,14 @@ export default {
saveObj
:
{
saveObj
:
{
type
:
Object
,
type
:
Object
,
default
:
null
default
:
null
},
auth
:{
type
:
Object
,
default
:()
=>
{
return
{
IsEdit
:
false
}
}
}
}
},
},
data
()
{
data
()
{
...
@@ -202,6 +210,14 @@ export default {
...
@@ -202,6 +210,14 @@ export default {
message
:
"操作成功"
,
message
:
"操作成功"
,
position
:
"top"
position
:
"top"
});
});
this
.
checkStuType2
.
map
((
e
)
=>
{
this
.
saveObj
.
GuestList
.
map
((
_e
,
_i
)
=>
{
if
(
e
==
_e
.
AppointmentId
){
this
.
saveObj
.
GuestList
.
splice
(
_i
,
1
)
}
})
})
this
.
checkStuType2
=
[]
this
.
$emit
(
"success"
);
this
.
$emit
(
"success"
);
}
}
});
});
...
@@ -229,7 +245,8 @@ export default {
...
@@ -229,7 +245,8 @@ export default {
position
:
"top"
,
position
:
"top"
,
type
:
"positive"
type
:
"positive"
});
});
this
.
$emit
(
"success"
);
// this.saveObj.AppointState = 2
this
.
$emit
(
"close"
);
}
}
});
});
},
},
...
@@ -243,7 +260,7 @@ export default {
...
@@ -243,7 +260,7 @@ export default {
},
},
ChangeCourseSuccessHandle
(){
ChangeCourseSuccessHandle
(){
this
.
$emit
(
"
success
"
);
this
.
$emit
(
"
close
"
);
}
}
}
}
};
};
...
...
src/components/stuMan/subscribe/subscribeForm.vue
View file @
942a5e06
...
@@ -21,8 +21,14 @@
...
@@ -21,8 +21,14 @@
</
template
>
</
template
>
</q-field>
</q-field>
<!-- 详情显示内容 start-->
<!-- 详情显示内容 start-->
<div
class=
"col-12"
v-if=
"editType==2"
>
<div
class=
"col-12"
v-if=
"editType == 2"
>
<Detail
:dateObj=
"dateObj"
:saveObj=
"saveObj"
@
success=
"detailSuccessHandle"
/>
<Detail
:dateObj=
"dateObj"
:saveObj=
"saveObj"
:auth=
"auth"
@
success=
"detailSuccessHandle"
@
close=
"detailCloseHandle"
/>
</div>
</div>
<!-- 详情显示内容 end -->
<!-- 详情显示内容 end -->
<q-select
<q-select
...
@@ -75,7 +81,7 @@
...
@@ -75,7 +81,7 @@
map-options
map-options
label=
"老师"
label=
"老师"
class=
"col-12"
class=
"col-12"
@
input=
"getCanTeacherTimeList
()
"
@
input=
"getCanTeacherTimeList"
/>
/>
<q-field
<q-field
filled
filled
...
@@ -129,7 +135,7 @@
...
@@ -129,7 +135,7 @@
</q-field>
</q-field>
<div
<div
class=
"row col"
class=
"row col"
v-show=
"(editType == 1 || saveObj.ClassType == 3)
&& showAddStu()
"
v-show=
"(editType == 1 || saveObj.ClassType == 3)
&&auth.IsEdit
"
>
>
<div
class=
"col-10"
>
<div
class=
"col-10"
>
<q-select
<q-select
...
@@ -145,7 +151,6 @@
...
@@ -145,7 +151,6 @@
:dense=
"false"
:dense=
"false"
class=
"col-6"
class=
"col-6"
@
filter=
"filterStu"
@
filter=
"filterStu"
@
input=
"addStu"
>
>
<
template
v-slot:no-option
>
<
template
v-slot:no-option
>
<q-item>
<q-item>
...
@@ -189,14 +194,14 @@
...
@@ -189,14 +194,14 @@
import
{
import
{
GetCanTeacherClassTimeList
,
GetCanTeacherClassTimeList
,
GetCanAppointmentStuList
,
GetCanAppointmentStuList
,
SetAdminScrollAppointment
,
SetAdminScrollAppointment
}
from
"../../../api/studyabroad/subscribe.js"
;
}
from
"../../../api/studyabroad/subscribe.js"
;
import
{
import
{
queryCourseDropdownList
,
queryCourseDropdownList
,
queryChapterTree
queryChapterTree
}
from
"../../../api/course/index"
;
}
from
"../../../api/course/index"
;
import
selectTree
from
"../../../components/common/select-tree"
;
import
selectTree
from
"../../../components/common/select-tree"
;
import
Detail
from
"./detail.vue"
import
Detail
from
"./detail.vue"
;
import
QCalendar
from
"@quasar/quasar-ui-qcalendar"
;
import
QCalendar
from
"@quasar/quasar-ui-qcalendar"
;
export
default
{
export
default
{
components
:
{
components
:
{
...
@@ -227,22 +232,32 @@ export default {
...
@@ -227,22 +232,32 @@ export default {
teacherList
:
{
teacherList
:
{
type
:
Array
,
type
:
Array
,
default
:
()
=>
[]
default
:
()
=>
[]
},
auth
:{
type
:
Object
,
default
:()
=>
{
return
{
IsEdit
:
false
}
}
}
}
},
},
watch
:
{
watch
:
{
show
(
val
){
show
(
val
)
{
console
.
log
(
1111111
)
this
.
addLoading
=
false
if
(
val
)
{
if
(
val
)
{
this
.
stuInfo
=
""
;
this
.
stuInfo
=
""
;
this
.
teaClassMsg
.
CourseId
=
0
this
.
teaClassMsg
.
CourseId
=
0
;
this
.
teaClassMsg
.
TeacherId
=
0
this
.
teaClassMsg
.
TeacherId
=
0
;
this
.
chapterList
=
[]
this
.
chapterList
=
[];
this
.
teacherTimeList
=
[]
this
.
teacherTimeList
=
[];
this
.
courseCheckList
=
[]
this
.
courseCheckList
=
[];
this
.
stuList
=
[]
this
.
stuList
=
[];
this
.
allStuList
=
[];
if
(
this
.
editType
==
2
)
{
if
(
this
.
editType
==
2
)
{
this
.
getStu
();
this
.
getStu
();
}
}
}
}
}
}
},
},
...
@@ -280,11 +295,10 @@ export default {
...
@@ -280,11 +295,10 @@ export default {
stuInfo
:
""
,
stuInfo
:
""
,
checkStuList
:
[],
checkStuList
:
[],
courseCheckList
:
[],
courseCheckList
:
[],
addLoading
:
false
,
addLoading
:
false
,
chapterList
:
[],
//章节列表,
chapterList
:
[],
//章节列表,
checkChapter
:
{},
//选择的章节
checkChapter
:
{},
//选择的章节
returnString
:
[],
//章节默认值
returnString
:
[],
//章节默认值
};
};
},
},
mounted
()
{
mounted
()
{
...
@@ -294,13 +308,17 @@ export default {
...
@@ -294,13 +308,17 @@ export default {
//开关弹窗
//开关弹窗
changeDig
(
val
)
{
changeDig
(
val
)
{
this
.
$emit
(
"changeshow"
,
val
);
this
.
$emit
(
"changeshow"
,
val
);
if
(
!
val
)
{
this
.
stuList
=
[];
this
.
allStuList
=
[];
}
},
},
//获取课程
//获取课程
getCourseList
()
{
getCourseList
()
{
queryCourseDropdownList
({
queryCourseDropdownList
({
IsQPrice
:
1
,
IsQPrice
:
1
,
IsQuerySalePlat
:
1
,
IsQuerySalePlat
:
1
,
IsScrollClass
:
1
IsScrollClass
:
1
}).
then
(
res
=>
{
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
CourseList
=
res
.
Data
;
this
.
CourseList
=
res
.
Data
;
...
@@ -337,11 +355,13 @@ export default {
...
@@ -337,11 +355,13 @@ export default {
//获取老师的空闲上课时段
//获取老师的空闲上课时段
getCanTeacherTimeList
()
{
getCanTeacherTimeList
()
{
this
.
teaClassMsg
.
Date
=
this
.
dateObj
.
date
;
this
.
teaClassMsg
.
Date
=
this
.
dateObj
.
date
;
this
.
stuInfo
=
""
;
if
(
this
.
teaClassMsg
.
TeacherId
==
0
)
return
;
if
(
this
.
teaClassMsg
.
TeacherId
==
0
)
return
;
GetCanTeacherClassTimeList
(
this
.
teaClassMsg
).
then
(
res
=>
{
GetCanTeacherClassTimeList
(
this
.
teaClassMsg
).
then
(
res
=>
{
this
.
teacherTimeList
=
res
.
Data
;
this
.
teacherTimeList
=
res
.
Data
;
});
});
},
},
//获取学生列表
getStu
()
{
getStu
()
{
this
.
stuMsg
.
CourseId
=
this
.
teaClassMsg
.
CourseId
||
0
;
this
.
stuMsg
.
CourseId
=
this
.
teaClassMsg
.
CourseId
||
0
;
this
.
stuMsg
.
CourseGradeId
=
this
.
stuMsg
.
CourseGradeId
=
...
@@ -353,7 +373,7 @@ export default {
...
@@ -353,7 +373,7 @@ export default {
this
.
allStuList
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
Data
));
this
.
allStuList
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
Data
));
});
});
},
},
//筛选学
员
//筛选学
生
filterStu
(
val
,
update
)
{
filterStu
(
val
,
update
)
{
update
(()
=>
{
update
(()
=>
{
if
(
val
===
""
)
{
if
(
val
===
""
)
{
...
@@ -366,7 +386,6 @@ export default {
...
@@ -366,7 +386,6 @@ export default {
}
}
});
});
},
},
addStu
()
{},
//获取章节
//获取章节
getChapterTree
()
{
getChapterTree
()
{
if
(
this
.
teaClassMsg
.
CourseId
==
0
)
return
;
if
(
this
.
teaClassMsg
.
CourseId
==
0
)
return
;
...
@@ -400,8 +419,8 @@ export default {
...
@@ -400,8 +419,8 @@ export default {
if
(
this
.
checkChapter
.
CourseRate
&&
this
.
checkChapter
.
ChapterNo
)
{
if
(
this
.
checkChapter
.
CourseRate
&&
this
.
checkChapter
.
ChapterNo
)
{
this
.
getStu
();
this
.
getStu
();
}
}
this
.
teaClassMsg
.
TeacherId
=
0
this
.
teaClassMsg
.
TeacherId
=
0
;
this
.
teacherTimeList
=
[]
this
.
teacherTimeList
=
[];
},
},
subscribeCourse
()
{
subscribeCourse
()
{
if
(
if
(
...
@@ -441,6 +460,7 @@ export default {
...
@@ -441,6 +460,7 @@ export default {
const
totalTime
=
this
.
courseCheckList
.
reduce
((
pre
,
cur
)
=>
{
const
totalTime
=
this
.
courseCheckList
.
reduce
((
pre
,
cur
)
=>
{
return
(
pre
+=
cur
.
Minutes
);
return
(
pre
+=
cur
.
Minutes
);
},
0
);
},
0
);
console
.
log
(
452
,
this
.
courseCheckList
,
totalTime
);
if
(
this
.
checkChapter
.
StudyMinutes
!==
totalTime
)
{
if
(
this
.
checkChapter
.
StudyMinutes
!==
totalTime
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
message
:
"课时不匹配,请重新上课时段"
,
message
:
"课时不匹配,请重新上课时段"
,
...
@@ -486,51 +506,35 @@ export default {
...
@@ -486,51 +506,35 @@ export default {
this
.
saveMsg
.
CourseGradeId
=
this
.
saveObj
.
CourseGradeId
;
this
.
saveMsg
.
CourseGradeId
=
this
.
saveObj
.
CourseGradeId
;
this
.
saveMsg
.
ShiftSort
=
this
.
saveObj
.
ShiftSort
;
this
.
saveMsg
.
ShiftSort
=
this
.
saveObj
.
ShiftSort
;
}
}
this
.
addLoading
=
true
this
.
addLoading
=
true
;
SetAdminScrollAppointment
(
this
.
saveMsg
).
then
(
res
=>
{
SetAdminScrollAppointment
(
this
.
saveMsg
)
this
.
addLoading
=
false
.
then
(
res
=>
{
this
.
addLoading
=
false
;
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
getStu
();
this
.
stuInfo
=
""
;
if
(
this
.
editType
==
1
){
this
.
$q
.
dialog
({
title
:
"预约成功"
,
message
:
"是否继续预约?"
,
cancel
:
"否"
,
ok
:
"是"
,
persistent
:
true
})
.
onOk
(()
=>
{})
.
onCancel
(()
=>
{
this
.
changeDig
(
false
);
});
}
else
if
(
this
.
editType
==
2
){
this
.
changeDig
(
false
);
this
.
$q
.
notify
({
this
.
$q
.
notify
({
message
:
"操作成功"
,
message
:
"操作成功"
,
position
:
"top"
,
position
:
"top"
});
if
(
this
.
editType
==
2
)
{
this
.
saveObj
.
GuestList
.
push
({
GuestName
:
this
.
stuInfo
.
StuName
,
AppointmentId
:
res
.
Data
});
});
}
}
this
.
stuInfo
=
""
;
this
.
getStu
();
this
.
$emit
(
"success"
);
this
.
$emit
(
"success"
);
}
}
}).
catch
(()
=>
{
})
this
.
addLoading
=
false
.
catch
(()
=>
{
this
.
addLoading
=
false
;
});
});
},
},
detailSuccessHandle
()
{
showAddStu
()
{
this
.
getStu
();
if
(
this
.
$emit
(
"success"
);
new
Date
(
this
.
dateObj
.
date
).
getTime
()
<
new
Date
(
QCalendar
.
today
()).
getTime
()
)
{
return
false
;
}
else
{
return
true
;
}
},
},
detail
SuccessHandle
()
{
detail
CloseHandle
()
{
this
.
changeDig
(
false
);
this
.
changeDig
(
false
);
this
.
$emit
(
"success"
);
this
.
$emit
(
"success"
);
}
}
...
...
src/pages/course/rewardDetailed.vue
View file @
942a5e06
...
@@ -229,7 +229,13 @@
...
@@ -229,7 +229,13 @@
this
.
msg
.
TeacherId
=
Number
(
this
.
$route
.
query
.
TeacherId
);
this
.
msg
.
TeacherId
=
Number
(
this
.
$route
.
query
.
TeacherId
);
}
}
if
(
this
.
$route
.
query
.
TeacherIds
){
if
(
this
.
$route
.
query
.
TeacherIds
){
this
.
msg
.
TeacherIds
=
this
.
$route
.
query
.
TeacherIds
;
let
arr
=
this
.
$route
.
query
.
TeacherIds
.
split
(
','
)
let
idsArr
=
[]
arr
.
map
(
e
=>
{
let
_arr
=
e
.
split
(
'-'
)
idsArr
.
push
(
_arr
[
1
])
})
this
.
msg
.
TeacherIds
=
idsArr
.
toString
();
}
}
}
}
this
.
getList
();
this
.
getList
();
...
...
src/pages/financial/financalDocument/FinancialDocumentsDetail.vue
View file @
942a5e06
This diff is collapsed.
Click to expand it.
src/pages/financial/returnPassbook/PassbookperiodsList.vue
View file @
942a5e06
...
@@ -4,20 +4,26 @@
...
@@ -4,20 +4,26 @@
padding
:
18px
0
0
16px
;
padding
:
18px
0
0
16px
;
text-align
:
right
;
text-align
:
right
;
}
}
.ReturnperiodsList
.border-bottom
{
.ReturnperiodsList
.border-bottom
{
/* border-bottom: 1px dashed #EEE; */
padding-bottom
:
5px
;
padding-bottom
:
5px
;
margin-bottom
:
5px
;
margin-bottom
:
5px
;
}
}
.ReturnperiodsList
.text-bottom
{
height
:
32px
;
line-height
:
32px
;
margin-bottom
:
10px
;
.ReturnperiodsList
.text-bottom
{
height
:
32px
;
line-height
:
32px
;
margin-bottom
:
10px
;
}
}
.ReturnperiodsList
._icon_btn
i
.icon-sousuo
{
.ReturnperiodsList
._icon_btn
i
.icon-sousuo
{
background-color
:
#47BF8C
;
background-color
:
#47BF8C
;
}
}
.ReturnperiodsList
._icon_btn
.icon-add
{
.ReturnperiodsList
._icon_btn
.icon-add
{
background-color
:
#47BF8C
;
background-color
:
#47BF8C
;
}
}
.ReturnperiodsList
._icon_btn
i
{
.ReturnperiodsList
._icon_btn
i
{
width
:
26px
;
width
:
26px
;
height
:
26px
;
height
:
26px
;
...
@@ -30,90 +36,62 @@
...
@@ -30,90 +36,62 @@
cursor
:
pointer
;
cursor
:
pointer
;
outline
:
none
;
outline
:
none
;
}
}
.ReturnperiodsList
.el-table
td
,
.el-table
th
{
.ReturnperiodsList
.el-table
td
,
.el-table
th
{
padding
:
5px
0
;
padding
:
5px
0
;
}
}
</
style
>
<
template
>
</
style
>
<
template
>
<div
class=
"page-body ReturnperiodsList"
>
<div
class=
"page-body ReturnperiodsList"
>
<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
style=
"margin-right: 20px;"
v-if=
'iscMaker==true'
>
<div
style=
"display:flex;justify-content: space-between;width: 100%;align-items: center;"
>
<div
class=
"block"
>
<span
style=
"margin-right: 5px;"
>
校区
</span>
<el-select
v-model=
"msg.SchoolId"
filterable
@
change=
"handleCurrentChanges(1)"
>
<el-option
value=
"-1"
label=
"不限"
></el-option>
<el-option
v-for=
'item in CompanyList'
:label=
'item.SName'
:value=
'item.SId'
:key=
'item.SId'
></el-option>
</el-select>
</div>
</div>
-->
<div
style=
"display:flex;justify-content: space-between;width: 100%;align-items: center;"
>
<div
class=
"block"
style=
"display:flex;"
>
<div
class=
"block"
style=
"display:flex;"
>
<span
style=
"margin-right: 5px;"
>
月份筛选
</span>
<span
style=
"margin-right: 5px;"
>
月份筛选
</span>
<el-date-picker
<el-date-picker
v-model=
"msg.Month"
value-format=
"yyyy-MM"
type=
"month"
placeholder=
"选择月"
v-model=
"msg.Month"
@
change=
"handleCurrentChanges(1)"
>
value-format=
"yyyy-MM"
type=
"month"
placeholder=
"选择月"
@
change=
"handleCurrentChanges(1)"
>
</el-date-picker>
</el-date-picker>
</div>
</div>
<div
v-if=
'isgenerate==true'
>
<div
v-if=
'isgenerate==true'
>
<q-btn
:loading=
"loading1"
color=
"primary"
size=
"11px"
label=
"生成幸福存折"
@
click=
"scCommission"
style=
"height:28px"
/>
<q-btn
:loading=
"loading1"
color=
"primary"
size=
"11px"
label=
"生成幸福存折"
@
click=
"scCommission"
style=
"height:28px"
/>
<div
style=
"font-size: 10px;color: #666;"
>
*默认生成上月幸福存折
</div>
<div
style=
"font-size: 10px;color: #666;"
>
*默认生成上月幸福存折
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</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=
"BatchName"
label=
"周期"
></el-table-column>
v-loading =
'loading'
<el-table-column
prop=
"TotalMoney"
label=
"累计金额"
>
</el-table-column>
:header-cell-style=
"
{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
<el-table-column
prop=
"CreateByName"
label=
"创建人"
>
</el-table-column>
border
<el-table-column
prop=
"CreateDate"
label=
"创建时间"
>
</el-table-column>
style="width: 100%">
<el-table-column
label=
"操作"
>
<!--
<el-table-column
prop=
"Id"
label=
"ID"
></el-table-column>
-->
<el-table-column
prop=
"BatchName"
label=
"周期"
></el-table-column>
<el-table-column
prop=
"TotalMoney"
label=
"累计金额"
>
</el-table-column>
<el-table-column
prop=
"CreateByName"
label=
"创建人"
>
</el-table-column>
<el-table-column
prop=
"CreateDate"
label=
"创建时间"
>
</el-table-column>
<el-table-column
label=
"操作"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<div
class=
"_icon_btn"
>
<div
class=
"_icon_btn"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top"
>
<i
class=
"iconfont icon-sousuo"
<i
class=
"iconfont icon-sousuo"
@
click=
"goUrl(scope.row.Id)"
></i>
@
click=
"goUrl(scope.row.Id)"
></i>
</el-tooltip>
</el-tooltip>
</div>
</div>
</
template
>
</
template
>
</el-table-column>
</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'
import
{
import
{
getCommissionPeriodsPageList
,
getCommissionPeriodsPageList
,
setSellCommissionRule
,
setSellCommissionRule
,
setUserReturnCommission
,
setUserReturnCommission
,
...
@@ -130,52 +108,49 @@
...
@@ -130,52 +108,49 @@
return
{
return
{
loading
:
false
,
loading
:
false
,
loading1
:
false
,
loading1
:
false
,
value2
:
''
,
value2
:
''
,
//列表数据参数
//列表数据参数
msg
:
{
msg
:
{
PageIndex
:
1
,
PageIndex
:
1
,
PageSize
:
15
,
PageSize
:
15
,
SchoolId
:
'-1'
,
SchoolId
:
'-1'
,
Month
:
''
,
Month
:
''
,
CommissionType
:
2
,
CommissionType
:
2
,
},
},
pageCount
:
0
,
pageCount
:
0
,
persistent
:
false
,
persistent
:
false
,
listData
:
{},
listData
:
{},
tableData
:
[],
tableData
:
[],
total
:
0
,
total
:
0
,
CompanyList
:
[],
CompanyList
:
[],
isgenerate
:
false
,
//是否有生成的权限
isgenerate
:
false
,
//是否有生成的权限
iscMaker
:
false
,
//是否有制单的权限
iscMaker
:
false
,
//是否有制单的权限
SendEmployeeList
:[],
//可发放提成的用户列表
SendEmployeeList
:
[],
//可发放提成的用户列表
costmode
:
false
,
costmode
:
false
,
multipleSelection
:
[],
multipleSelection
:
[],
totalAmount
:
0
,
//选中的金额总额
totalAmount
:
0
,
//选中的金额总额
CheckID
:
0
,
CheckID
:
0
,
}
}
},
},
created
()
{
created
()
{
let
userinfo
=
this
.
getLocalStorage
();
let
userinfo
=
this
.
getLocalStorage
();
userinfo
.
ActionMenuList
.
map
(
x
=>
{
//判断权限
userinfo
.
ActionMenuList
.
map
(
x
=>
{
//判断权限
if
(
x
.
FunctionCode
==
"SAGenerate_Commission"
){
//判断是否有生成的权限
if
(
x
.
FunctionCode
==
"SAGenerate_Commission"
)
{
//判断是否有生成的权限
this
.
isgenerate
=
true
;
this
.
isgenerate
=
true
;
}
}
if
(
x
.
FunctionCode
==
"SACommission_maker"
){
//判断是否有制单的权限
if
(
x
.
FunctionCode
==
"SACommission_maker"
)
{
//判断是否有制单的权限
this
.
iscMaker
=
true
;
this
.
iscMaker
=
true
;
}
}
})
})
var
myDate
=
new
Date
();
var
myDate
=
new
Date
();
myDate
.
setMonth
(
myDate
.
getMonth
()
-
1
);
myDate
.
setMonth
(
myDate
.
getMonth
()
-
1
);
// this.msg.Month = myDate.getFullYear() + "-" + (myDate.getMonth()+1)
},
},
mounted
()
{
mounted
()
{
this
.
getList
();
//获取提成周期列表
this
.
getList
();
//获取提成周期列表
// this.getBranchList()
},
},
methods
:
{
methods
:
{
getList
()
{
getList
()
{
this
.
loading
=
true
;
this
.
loading
=
true
;
getCommissionPeriodsPageList
(
this
.
msg
).
then
(
res
=>
{
getCommissionPeriodsPageList
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
...
@@ -185,10 +160,12 @@
...
@@ -185,10 +160,12 @@
}
}
})
})
},
},
scCommission
(){
//生成提成
scCommission
()
{
//生成提成
if
(
this
.
loading1
==
false
){
if
(
this
.
loading1
==
false
)
{
this
.
loading1
=
true
;
this
.
loading1
=
true
;
setUserReturnCommission
({
type
:
2
}).
then
(
res
=>
{
setUserReturnCommission
({
type
:
2
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
icon
:
'iconfont icon-chenggong'
,
...
@@ -199,20 +176,20 @@
...
@@ -199,20 +176,20 @@
})
})
this
.
getList
()
this
.
getList
()
}
}
this
.
loading1
=
false
;
this
.
loading1
=
false
;
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
this
.
loading1
=
false
;
this
.
loading1
=
false
;
})
})
}
}
},
},
getBranchList
(){
//获取校区
getBranchList
()
{
//获取校区
getSchoolDropdown
({}).
then
(
res
=>
{
getSchoolDropdown
({}).
then
(
res
=>
{
this
.
CompanyList
=
res
.
Data
;
this
.
CompanyList
=
res
.
Data
;
}).
catch
(()
=>
{
}).
catch
(()
=>
{
})
})
},
},
goUrl
(
id
)
{
goUrl
(
id
)
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/financial/returnPassbook/ReturnUserList'
,
path
:
'/financial/returnPassbook/ReturnUserList'
,
query
:
{
query
:
{
...
@@ -222,16 +199,13 @@
...
@@ -222,16 +199,13 @@
}
}
})
})
},
},
handleCurrentChanges
(
val
)
{
handleCurrentChanges
(
val
)
{
this
.
msg
.
PageIndex
=
val
;
this
.
msg
.
PageIndex
=
val
;
this
.
getList
()
this
.
getList
()
},
},
},
},
}
}
</
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/financial/returnPassbook/ReturnUserList.vue
View file @
942a5e06
This diff is collapsed.
Click to expand it.
src/pages/financial/returnPassbook/ReturnperiodsList.vue
View file @
942a5e06
...
@@ -206,7 +206,14 @@
...
@@ -206,7 +206,14 @@
this
.
msgFinance
.
BatchId
=
id
;
this
.
msgFinance
.
BatchId
=
id
;
SetCommissionPeriodsFinanace
(
this
.
msgFinance
).
then
(
res
=>
{
SetCommissionPeriodsFinanace
(
this
.
msgFinance
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
getList
()
this
.
getList
();
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
res
.
Message
,
position
:
'top'
})
}
}
this
.
loading1
=
false
;
this
.
loading1
=
false
;
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
...
...
src/pages/sale/makeupRate.vue
View file @
942a5e06
...
@@ -152,6 +152,11 @@
...
@@ -152,6 +152,11 @@
</
template
>
</
template
>
<
template
v-if=
"item.label=='合计回单'||item.label=='合计到访'||item.label=='合计转化率'"
>
<
template
v-if=
"item.label=='合计回单'||item.label=='合计到访'||item.label=='合计转化率'"
>
<el-table-column
:prop=
"item.prop"
:label=
"item.label"
fixed=
"right"
sortable
width=
"115"
:key=
"index"
>
<el-table-column
:prop=
"item.prop"
:label=
"item.label"
fixed=
"right"
sortable
width=
"115"
:key=
"index"
>
<template
slot-scope=
"scope"
>
<a
@
click=
"showDetail(scope.row)"
style=
"color:#67C23A;cursor:pointer;text-decoration:underline;"
>
{{
scope
.
row
[
item
.
prop
]
}}
</a>
</
template
>
</el-table-column>
</el-table-column>
</template>
</template>
<
template
v-if=
"item.SubList&&item.SubList.length>0"
>
<
template
v-if=
"item.SubList&&item.SubList.length>0"
>
...
@@ -213,6 +218,7 @@
...
@@ -213,6 +218,7 @@
};
};
},
},
created
()
{
created
()
{
this
.
getEmployeeList
();
this
.
CurrentUserInfo
=
this
.
getLocalStorage
();
this
.
CurrentUserInfo
=
this
.
getLocalStorage
();
if
(
this
.
CurrentUserInfo
&&
this
.
CurrentUserInfo
.
ActionMenuList
&&
this
.
CurrentUserInfo
.
ActionMenuList
.
length
>
if
(
this
.
CurrentUserInfo
&&
this
.
CurrentUserInfo
.
ActionMenuList
&&
this
.
CurrentUserInfo
.
ActionMenuList
.
length
>
0
)
{
0
)
{
...
@@ -248,13 +254,33 @@
...
@@ -248,13 +254,33 @@
this
.
msg
.
endTime
=
year
+
strLink
+
month
+
strLink
+
day
;
this
.
msg
.
endTime
=
year
+
strLink
+
month
+
strLink
+
day
;
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
'01'
);
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
'01'
);
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
day
);
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
day
);
this
.
getEmployeeList
();
this
.
getData
();
this
.
getData
();
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
tableHeight
=
window
.
innerHeight
-
this
.
$refs
.
table
.
$el
.
offsetTop
-
60
;
this
.
tableHeight
=
window
.
innerHeight
-
this
.
$refs
.
table
.
$el
.
offsetTop
-
60
;
},
200
)
},
200
)
},
},
methods
:
{
methods
:
{
//跳转到客户列表
showDetail
(
row
)
{
if
(
this
.
CurrentUserInfo
&&
(
this
.
CurrentUserInfo
.
IsMarket
==
1
||
this
.
CurrentUserInfo
.
IsCourseConsultant
==
1
))
{
var
url
=
"/sale/mystu"
;
this
.
OpenNewUrl
(
url
,
{
startTime
:
this
.
msg
.
startTime
,
endTime
:
this
.
msg
.
endTime
,
createBy
:
row
.
Id
,
})
}
else
{
var
url
=
'/school/student'
;
this
.
OpenNewUrl
(
url
,
{
startTime
:
this
.
msg
.
startTime
,
endTime
:
this
.
msg
.
endTime
,
createBy
:
row
.
Id
,
})
}
},
//下载渠道总表
downloadMarketChannelStudentStatic
()
{
downloadMarketChannelStudentStatic
()
{
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
this
.
loading
=
true
;
this
.
loading
=
true
;
...
...
src/pages/sale/mystu.vue
View file @
942a5e06
...
@@ -195,10 +195,12 @@
...
@@ -195,10 +195,12 @@
customFromList
:
[],
//客户来源
customFromList
:
[],
//客户来源
StuChannelList
:
[],
//收客渠道
StuChannelList
:
[],
//收客渠道
allStuChannelList
:
[],
//所有收客渠道
allStuChannelList
:
[],
//所有收客渠道
consultList
:
[]
consultList
:
[],
CurrentUserInfo
:
{},
};
};
},
},
created
()
{
created
()
{
this
.
CurrentUserInfo
=
this
.
getLocalStorage
();
this
.
getSchool
();
this
.
getSchool
();
this
.
getStuStageList
();
this
.
getStuStageList
();
this
.
getCustomTypeList
();
this
.
getCustomTypeList
();
...
@@ -217,6 +219,12 @@
...
@@ -217,6 +219,12 @@
if
(
this
.
$route
.
query
.
ChannelId
)
{
if
(
this
.
$route
.
query
.
ChannelId
)
{
this
.
msg
.
StuChannel
=
this
.
$route
.
query
.
ChannelId
;
this
.
msg
.
StuChannel
=
this
.
$route
.
query
.
ChannelId
;
}
}
if
(
this
.
$route
.
query
.
createBy
)
{
if
(
this
.
CurrentUserInfo
.
IsManager
==
1
&&
this
.
CurrentUserInfo
.
IsMarket
==
1
)
{
this
.
msg
.
BelongType
=
4
;
this
.
msg
.
CreateIds
.
push
(
Number
(
this
.
$route
.
query
.
createBy
));
}
}
this
.
getCustomerList
();
this
.
getCustomerList
();
this
.
getCustomFrom
();
this
.
getCustomFrom
();
this
.
GetStuChannelList
();
this
.
GetStuChannelList
();
...
...
src/pages/sale/visitTransform.vue
View file @
942a5e06
...
@@ -17,8 +17,8 @@
...
@@ -17,8 +17,8 @@
<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-4 Sysuser_Date"
>
<div
class=
"col-4 Sysuser_Date"
>
<q-field
filled
>
<q-field
filled
>
<template
v-slot:control
>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateList"
type=
"daterange"
style=
"width:100%"
:picker-options=
"pickerOptions0"
<el-date-picker
v-model=
"dateList"
type=
"daterange"
style=
"width:100%"
:picker-options=
"pickerOptions0"
align=
"right"
value-format=
"yyyy-MM-dd"
@
change=
"getData"
unlink-panels
range-separator=
"至"
align=
"right"
value-format=
"yyyy-MM-dd"
@
change=
"getData"
unlink-panels
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
...
@@ -27,8 +27,8 @@
...
@@ -27,8 +27,8 @@
</q-field>
</q-field>
</div>
</div>
<div
class=
"col-3 Sysuser_Date"
>
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
>
<q-field
filled
>
<
template
v-slot:control
>
<
template
v-slot:control
>
<el-select
class=
"topselect"
v-model=
"msg.empList"
@
change=
"getData"
style=
"width:100%;"
collapse-tags
<el-select
class=
"topselect"
v-model=
"msg.empList"
@
change=
"getData"
style=
"width:100%;"
collapse-tags
multiple
filterable
placeholder=
"请选择"
>
multiple
filterable
placeholder=
"请选择"
>
<el-option
v-for=
"item in EmployeeList"
:key=
"item.Id"
:label=
"item.EmployeeName"
:value=
"item.Id"
>
<el-option
v-for=
"item in EmployeeList"
:key=
"item.Id"
:label=
"item.EmployeeName"
:value=
"item.Id"
>
...
@@ -56,10 +56,25 @@
...
@@ -56,10 +56,25 @@
<el-table-column
prop=
"ChannelName"
label=
"渠道名"
>
<el-table-column
prop=
"ChannelName"
label=
"渠道名"
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"ClueCount"
label=
"回单"
sortable
>
<el-table-column
prop=
"ClueCount"
label=
"回单"
sortable
>
<
template
slot-scope=
"scope"
>
<a
@
click=
"showDetail(scope.row)"
style=
"color:#67C23A;cursor:pointer;text-decoration:underline;"
>
{{
scope
.
row
.
ClueCount
}}
</a>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"VisitCount"
label=
"到访"
sortable
>
<el-table-column
prop=
"VisitCount"
label=
"到访"
sortable
>
<
template
slot-scope=
"scope"
>
<a
@
click=
"showDetail(scope.row)"
style=
"color:#67C23A;cursor:pointer;text-decoration:underline;"
>
{{
scope
.
row
.
VisitCount
}}
</a>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"OrderCount"
label=
"合同数"
sortable
>
<el-table-column
prop=
"OrderCount"
label=
"合同数"
sortable
>
<
template
slot-scope=
"scope"
>
<a
@
click=
"showDetail(scope.row)"
style=
"color:#67C23A;cursor:pointer;text-decoration:underline;"
>
{{
scope
.
row
.
VisitCount
}}
</a>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"OrderIncome"
label=
"新业绩金额"
sortable
>
<el-table-column
prop=
"OrderIncome"
label=
"新业绩金额"
sortable
>
</el-table-column>
</el-table-column>
...
@@ -112,6 +127,7 @@
...
@@ -112,6 +127,7 @@
};
};
},
},
created
()
{
created
()
{
this
.
getEmployeeList
();
this
.
CurrentUserInfo
=
this
.
getLocalStorage
();
this
.
CurrentUserInfo
=
this
.
getLocalStorage
();
if
(
this
.
CurrentUserInfo
&&
this
.
CurrentUserInfo
.
ActionMenuList
&&
this
.
CurrentUserInfo
.
ActionMenuList
.
length
>
if
(
this
.
CurrentUserInfo
&&
this
.
CurrentUserInfo
.
ActionMenuList
&&
this
.
CurrentUserInfo
.
ActionMenuList
.
length
>
0
)
{
0
)
{
...
@@ -138,13 +154,46 @@
...
@@ -138,13 +154,46 @@
this
.
msg
.
endTime
=
year
+
strLink
+
month
+
strLink
+
day
;
this
.
msg
.
endTime
=
year
+
strLink
+
month
+
strLink
+
day
;
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
'01'
);
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
'01'
);
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
day
);
this
.
dateList
.
push
(
year
+
strLink
+
month
+
strLink
+
day
);
this
.
getEmployeeList
();
this
.
getData
();
this
.
getData
();
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
tableHeight
=
window
.
innerHeight
-
this
.
$refs
.
table
.
$el
.
offsetTop
-
90
;
this
.
tableHeight
=
window
.
innerHeight
-
this
.
$refs
.
table
.
$el
.
offsetTop
-
90
;
},
100
)
},
100
)
},
},
methods
:
{
methods
:
{
//跳转到列表
showDetail
(
row
)
{
var
url
=
"/sale/mystu"
;
if
(
this
.
CurrentUserInfo
&&
(
this
.
CurrentUserInfo
.
IsMarket
==
1
||
this
.
CurrentUserInfo
.
IsCourseConsultant
==
1
))
{
url
=
"/sale/mystu"
;
}
else
{
url
=
'/school/student'
;
}
var
CreateType
=
2
;
//同行渠道
if
(
this
.
msg
.
top_Check
==
1
)
{
CreateType
=
2
;
}
//内部渠道
if
(
this
.
msg
.
top_Check
==
2
)
{
CreateType
=
3
;
}
//学校渠道
if
(
this
.
msg
.
top_Check
==
3
)
{
CreateType
=
2
;
}
//转介绍渠道
if
(
this
.
msg
.
top_Check
==
4
)
{
CreateType
=
4
;
}
this
.
OpenNewUrl
(
url
,
{
CreateType
:
CreateType
,
StuSourceId
:
row
.
ChannelId
,
startTime
:
this
.
msg
.
startTime
,
endTime
:
this
.
msg
.
endTime
,
})
},
//下载同行渠道
downloadMarketCreateType
()
{
downloadMarketCreateType
()
{
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
var
fileName
=
"同行渠道.xls"
;
var
fileName
=
"同行渠道.xls"
;
...
...
src/pages/school/student.vue
View file @
942a5e06
...
@@ -61,6 +61,11 @@
...
@@ -61,6 +61,11 @@
v-model=
"msg.AdvisorStatus"
ref=
"AdvisorStatus"
:options=
"consultList"
clearable
label=
"当前状态"
v-model=
"msg.AdvisorStatus"
ref=
"AdvisorStatus"
:options=
"consultList"
clearable
label=
"当前状态"
class=
"col-6 q-pb-lg"
emit-value
map-options
/>
class=
"col-6 q-pb-lg"
emit-value
map-options
/>
</div>
</div>
<div
class=
"col-3"
>
<q-select
filled
stack-label
option-value=
"Id"
@
input=
"resetSearch"
dense
option-label=
"Name"
v-model=
"msg.StuChannel"
ref=
"AdvisorStatus"
:options=
"channelList"
clearable
label=
"渠道"
class=
"col-6 q-pb-lg"
emit-value
map-options
/>
</div>
</div>
</div>
</div>
</div>
<div
class=
"page-content"
>
<div
class=
"page-content"
>
...
@@ -94,6 +99,9 @@
...
@@ -94,6 +99,9 @@
import
{
import
{
GetStudentAdvisorConfigList
GetStudentAdvisorConfigList
}
from
"../../api/customerstudent/customerstudent"
;
}
from
"../../api/customerstudent/customerstudent"
;
import
{
GetStuChannelList
}
from
"../../api/sale/sale"
;
import
stulist
from
'../../components/school/student/stulist'
import
stulist
from
'../../components/school/student/stulist'
import
{
import
{
mapGetters
mapGetters
...
@@ -126,7 +134,10 @@
...
@@ -126,7 +134,10 @@
StuType
:
''
,
StuType
:
''
,
QStudentStatus
:
1
,
//客户状态 1有效 2无效
QStudentStatus
:
1
,
//客户状态 1有效 2无效
AdvisorStatus
:
''
,
//当前状态
AdvisorStatus
:
''
,
//当前状态
StuChannel
:
""
,
StuChannel
:
""
,
CreateIds
:
[],
CreateType
:
""
,
//来源类型
StuSourceId
:
""
,
//来源人编号
},
},
dateArray
:
[],
//日期数组
dateArray
:
[],
//日期数组
pageCount
:
0
,
pageCount
:
0
,
...
@@ -138,7 +149,9 @@
...
@@ -138,7 +149,9 @@
AuthObj
:
{
AuthObj
:
{
isShowDownload
:
true
,
isShowDownload
:
true
,
},
},
consultList
:
[]
consultList
:
[],
//渠道列表
channelList
:
[],
}
}
},
},
computed
:
{
computed
:
{
...
@@ -148,6 +161,7 @@
...
@@ -148,6 +161,7 @@
this
.
getEmployeeList
();
this
.
getEmployeeList
();
this
.
getStuStageList
();
this
.
getStuStageList
();
this
.
getCustomTypeList
();
this
.
getCustomTypeList
();
this
.
queryChannelList
();
},
},
mounted
()
{
mounted
()
{
this
.
currentUrl
=
this
.
$route
.
path
;
this
.
currentUrl
=
this
.
$route
.
path
;
...
@@ -162,10 +176,27 @@
...
@@ -162,10 +176,27 @@
if
(
this
.
$route
.
query
.
ChannelId
)
{
if
(
this
.
$route
.
query
.
ChannelId
)
{
this
.
msg
.
StuChannel
=
this
.
$route
.
query
.
ChannelId
;
this
.
msg
.
StuChannel
=
this
.
$route
.
query
.
ChannelId
;
}
}
if
(
this
.
$route
.
query
.
createBy
)
{
this
.
msg
.
CreateBy
=
Number
(
this
.
$route
.
query
.
createBy
);
}
if
(
this
.
$route
.
query
.
CreateType
)
{
this
.
msg
.
CreateType
=
Number
(
this
.
$route
.
query
.
CreateType
);
}
if
(
this
.
$route
.
query
.
StuSourceId
)
{
this
.
msg
.
StuSourceId
=
Number
(
this
.
$route
.
query
.
StuSourceId
);
}
this
.
getStatusList
();
this
.
getStatusList
();
this
.
getStudent
()
this
.
getStudent
()
},
},
methods
:
{
methods
:
{
//获取渠道列表
queryChannelList
()
{
GetStuChannelList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
channelList
=
res
.
Data
;
}
})
},
//获取跟进状态下拉
//获取跟进状态下拉
getStatusList
()
{
getStatusList
()
{
let
msg
=
{
let
msg
=
{
...
...
src/pages/stuMan/stuList.vue
View file @
942a5e06
...
@@ -384,9 +384,14 @@
...
@@ -384,9 +384,14 @@
@
click=
"transferClass(props.row, 1)"
/>
@
click=
"transferClass(props.row, 1)"
/>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left: 10px"
>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left: 10px"
>
<q-list>
<q-list>
<q-item
clickable
v-close-popup
@
click=
"showAddEvent(props.row)"
>
<q-item
dense
clickable
v-close-popup
@
click=
"showAddEvent(props.row)"
>
<q-item-section>
<q-item-section>
<q-item-label>
添加事件
</q-item-label>
<q-item-label
overline
>
添加事件
</q-item-label>
</q-item-section>
</q-item>
<q-item
dense
clickable
v-close-popup
@
click=
"showChangeCourse(props.row)"
>
<q-item-section>
<q-item-label
overline
>
跳课
</q-item-label>
</q-item-section>
</q-item-section>
</q-item>
</q-item>
</q-list>
</q-list>
...
@@ -422,6 +427,8 @@
...
@@ -422,6 +427,8 @@
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:save-obj=
"stuOption"
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"refreshStuList"
>
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"refreshStuList"
>
</studentRight-form>
</studentRight-form>
<!-- 跳课 -->
<JumpCourse
v-model=
"isShowChangeCourse"
:saveObj=
"ChangeCourseObj"
@
success=
"refreshPage"
></JumpCourse>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
...
@@ -453,6 +460,7 @@
...
@@ -453,6 +460,7 @@
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
{
import
{
queryEmployee
queryEmployee
}
from
"../../api/users/user"
;
}
from
"../../api/users/user"
;
...
@@ -469,7 +477,8 @@
...
@@ -469,7 +477,8 @@
myOrderForm
,
myOrderForm
,
list
,
list
,
eventLog
,
eventLog
,
studentRightForm
studentRightForm
,
JumpCourse
},
},
data
()
{
data
()
{
...
@@ -644,6 +653,18 @@
...
@@ -644,6 +653,18 @@
field
:
"MakeUpHours"
,
field
:
"MakeUpHours"
,
align
:
"left"
align
:
"left"
},
},
{
name
:
"CourseChapterNo"
,
label
:
"已上课次数"
,
field
:
"CourseChapterNo"
,
align
:
"left"
},
{
name
:
"AppointNum"
,
label
:
"预约次数"
,
field
:
"AppointNum"
,
align
:
"left"
},
{
{
name
:
"AbsenceNum"
,
name
:
"AbsenceNum"
,
label
:
"缺勤次数"
,
label
:
"缺勤次数"
,
...
@@ -742,7 +763,9 @@
...
@@ -742,7 +763,9 @@
TransListData
:
[],
//转介人数据
TransListData
:
[],
//转介人数据
MyTransListData
:
[],
MyTransListData
:
[],
source
:
0
,
//1:从课程列表进入
source
:
0
,
//1:从课程列表进入
courseName
:
""
courseName
:
""
,
isShowChangeCourse
:
false
,
ChangeCourseObj
:{}
};
};
},
},
created
()
{
created
()
{
...
@@ -1145,6 +1168,10 @@
...
@@ -1145,6 +1168,10 @@
},
},
refreshStuList
()
{
refreshStuList
()
{
this
.
getList
();
this
.
getList
();
},
showChangeCourse
(
item
){
this
.
isShowChangeCourse
=
true
this
.
ChangeCourseObj
=
item
}
}
}
}
};
};
...
...
src/pages/studyAbroad/subscribe.vue
View file @
942a5e06
This diff is collapsed.
Click to expand it.
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