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
Hide 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
...
@@ -79,4 +79,12 @@ export function getEventLogPageList(data) {
...
@@ -79,4 +79,12 @@ export function getEventLogPageList(data) {
method
:
'post'
,
method
:
'post'
,
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
This diff is collapsed.
Click to expand it.
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
=
[];
if
(
this
.
editType
==
2
)
{
this
.
allStuList
=
[];
this
.
getStu
();
if
(
this
.
editType
==
2
)
{
}
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
=>
{
if
(
res
.
Code
==
1
)
{
this
.
addLoading
=
false
;
this
.
getStu
();
if
(
res
.
Code
==
1
)
{
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
This diff is collapsed.
Click to expand it.
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
();
...
@@ -329,7 +337,7 @@
...
@@ -329,7 +337,7 @@
this
.
msg
.
StartTime
=
""
;
this
.
msg
.
StartTime
=
""
;
this
.
msg
.
EndTime
=
""
;
this
.
msg
.
EndTime
=
""
;
}
}
this
.
loading
=
true
;
this
.
loading
=
true
;
getStudentPage
(
this
.
msg
)
getStudentPage
(
this
.
msg
)
.
then
(
res
=>
{
.
then
(
res
=>
{
...
...
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