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
a3aa53d0
Commit
a3aa53d0
authored
Feb 15, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
25426656
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
550 additions
and
652 deletions
+550
-652
studentRight-form.vue
src/components/school/student/studentRight-form.vue
+543
-647
stulist.vue
src/components/school/student/stulist.vue
+7
-5
No files found.
src/components/school/student/studentRight-form.vue
View file @
a3aa53d0
<
template
>
<
template
>
<q-dialog
<q-dialog
v-model=
"persistent"
full-height
maximized
position=
"right"
persistent
@
hide=
"closeCutomer"
v-model=
"persistent"
transition-show=
"slide-left"
>
full-height
maximized
position=
"right"
persistent
@
hide=
"closeCutomer"
transition-show=
"slide-left"
>
<div
class=
"customMain"
>
<div
class=
"customMain"
>
<div
class=
"custom_Top"
>
<div
class=
"custom_Top"
>
<div
class=
"custom_HLeft"
>
<div
class=
"custom_HLeft"
>
<div
class=
"nameplate_avatar"
>
<div
class=
"nameplate_avatar"
>
<img
<img
v-if=
"baseObj.StuIcon"
style=
"width:100%;height:100%;"
:src=
"baseObj.StuIcon"
alt
/>
v-if=
"baseObj.StuIcon"
style=
"width:100%;height:100%;"
:src=
"baseObj.StuIcon"
alt
/>
<div
class=
"student_Name"
v-else
>
<div
class=
"student_Name"
v-else
>
<span
v-if=
"baseObj.StuName"
>
{{
<span
v-if=
"baseObj.StuName"
>
{{
baseObj
.
StuName
.
substring
(
0
,
1
)
baseObj
.
StuName
.
substring
(
0
,
1
)
...
@@ -29,58 +17,18 @@
...
@@ -29,58 +17,18 @@
</div>
</div>
</div>
</div>
<div
class=
"custom_HRight"
>
<div
class=
"custom_HRight"
>
<q-btn
<q-btn
v-if=
"userInfo.IsTenCccUser == 1"
@
click=
"callUserHandler"
class=
"q-mr-md"
round
unelevated
v-if=
"userInfo.IsTenCccUser == 1"
color=
"primary"
dense
icon=
"phone"
title=
"拨打电话"
></q-btn>
@
click=
"callUserHandler"
<q-btn
unelevated
color=
"positive"
v-if=
"
class=
"q-mr-md"
round
unelevated
color=
"primary"
dense
icon=
"phone"
title=
"拨打电话"
></q-btn>
<q-btn
unelevated
color=
"positive"
v-if=
"
!baseObj.IsHaveCurseManager && userInfo.Id == baseObj.CreateBy
!baseObj.IsHaveCurseManager && userInfo.Id == baseObj.CreateBy
"
"
size=
"sm"
:loading=
"pushing"
class=
"q-mr-md"
@
click=
"assistBatchHandler"
>
推送课程顾问
</q-btn>
size=
"sm"
<q-btn
v-if=
"getJudgeTrans()"
color=
"primary"
unelevated
size=
"sm"
label=
"转交"
@
click=
"isShowTrans = true"
>
:loading=
"pushing"
class=
"q-mr-md"
@
click=
"assistBatchHandler"
>
推送课程顾问
</q-btn
>
<q-btn
v-if=
"getJudgeTrans()"
color=
"primary"
unelevated
size=
"sm"
label=
"转交"
@
click=
"isShowTrans = true"
>
<q-popup-proxy
:offset=
"[10, 10]"
>
<q-popup-proxy
:offset=
"[10, 10]"
>
<q-banner
v-if=
"isShowTrans"
>
<q-banner
v-if=
"isShowTrans"
>
<q-select
<q-select
style=
"margin-top:20px;"
filled
v-model=
"transMsg.CreateBy"
@
filter=
"filterEmployee"
use-input
style=
"margin-top:20px;"
:options=
"myEmployeeList"
option-label=
"EmployeeName"
option-value=
"Id"
emit-value
map-options
/>
filled
<q-btn
label=
"保存"
style=
"float:right;margin-top:15px"
color=
"accent q-mb-lg"
size=
"sm"
v-model=
"transMsg.CreateBy"
@
click=
"saveTransForm"
/>
@
filter=
"filterEmployee"
use-input
:options=
"myEmployeeList"
option-label=
"EmployeeName"
option-value=
"Id"
emit-value
map-options
/>
<q-btn
label=
"保存"
style=
"float:right;margin-top:15px"
color=
"accent q-mb-lg"
size=
"sm"
@
click=
"saveTransForm"
/>
</q-banner>
</q-banner>
</q-popup-proxy>
</q-popup-proxy>
</q-btn>
</q-btn>
...
@@ -88,24 +36,12 @@
...
@@ -88,24 +36,12 @@
</div>
</div>
<div
class=
"custom_Bottom"
>
<div
class=
"custom_Bottom"
>
<div
class=
"detail-info"
>
<div
class=
"detail-info"
>
<student-left
<student-left
:stuData=
"stuData"
:save-obj=
"saveObj"
:BelongType=
"BelongType"
@
success=
"refreshStudentPage"
:stuData=
"stuData"
@
getrecord=
"getrecord"
@
update=
"queryStuInfo"
></student-left>
:save-obj=
"saveObj"
:BelongType=
"BelongType"
@
success=
"refreshStudentPage"
@
getrecord=
"getrecord"
@
update=
"queryStuInfo"
></student-left>
</div>
</div>
<div
class=
"detail-travel"
>
<div
class=
"detail-travel"
>
<div
class=
"detail_first"
>
<div
class=
"detail_first"
>
<q-tabs
<q-tabs
v-model=
"ckedTab"
dense
align=
"left"
class=
"text-teal"
style=
"margin-bottom:20px;"
>
v-model=
"ckedTab"
dense
align=
"left"
class=
"text-teal"
style=
"margin-bottom:20px;"
>
<q-tab
name=
"1"
label=
"记录"
/>
<q-tab
name=
"1"
label=
"记录"
/>
<q-tab
name=
"2"
label=
"操作"
/>
<q-tab
name=
"2"
label=
"操作"
/>
<q-tab
name=
"3"
label=
"订单"
/>
<q-tab
name=
"3"
label=
"订单"
/>
...
@@ -114,112 +50,53 @@
...
@@ -114,112 +50,53 @@
</q-tabs>
</q-tabs>
<div
class=
"operate_Content"
style=
"flex:1;"
>
<div
class=
"operate_Content"
style=
"flex:1;"
>
<div
class=
"detail_Main"
>
<div
class=
"detail_Main"
>
<div
<div
row
style=
"display: flex;justify-content: space-between;"
v-if=
"ckedTab == 2"
>
row
style=
"display: flex;justify-content: space-between;"
v-if=
"ckedTab == 2"
>
<div
class=
"tripTypeContent"
style=
"flex-shrink:0"
>
<div
class=
"tripTypeContent"
style=
"flex-shrink:0"
>
<div
<div
v-for=
"(qItem, qIndex) in visitList"
:key=
"qIndex"
v-for=
"(qItem, qIndex) in visitList"
:class=
"
{ StuCkedType: qIndex + 1 == secondType }" @click="getckedType(qItem)">
:key=
"qIndex"
:class=
"
{ StuCkedType: qIndex + 1 == secondType }"
@click="getckedType(qItem)"
>
{{
qItem
.
Name
}}
{{
qItem
.
Name
}}
</div>
</div>
</div>
</div>
<q-btn
<q-btn
label=
"客户情况"
color=
"accent q-mb-lg"
size=
"sm"
style=
"margin-bottom: 0;"
@
click=
"consultbtn"
/>
label=
"客户情况"
color=
"accent q-mb-lg"
size=
"sm"
style=
"margin-bottom: 0;"
@
click=
"consultbtn"
/>
</div>
</div>
<!-- 记录 -->
<!-- 记录 -->
<template
v-if=
"ckedTab == 1"
>
<template
v-if=
"ckedTab == 1"
>
<student-record
<student-record
:save-obj=
"baseObj"
@
success=
"refreshStudentPage"
ref=
"mychild"
></student-record>
:save-obj=
"baseObj"
@
success=
"refreshStudentPage"
ref=
"mychild"
></student-record>
</
template
>
</
template
>
<!-- 操作 -->
<!-- 操作 -->
<
template
v-if=
"ckedTab == 2"
>
<
template
v-if=
"ckedTab == 2"
>
<div
class=
"operate_Content"
style=
"margin-top:20px;"
>
<div
class=
"operate_Content"
style=
"margin-top:20px;"
>
<student-visit
<student-visit
:stateId=
"stateId"
:stateList=
"customStateList"
@
update=
"queryStuInfo"
:stateId=
"stateId"
:save-obj=
"baseObj"
:StuId=
"baseObj.StuId"
v-if=
"secondType == 1"
@
success=
"refreshStudentPage"
>
:stateList=
"customStateList"
</student-visit>
@
update=
"queryStuInfo"
<student-yuefang
:stateId=
"stateId"
:stateList=
"customStateList"
@
update=
"queryStuInfo"
:save-obj=
"baseObj"
:save-obj=
"baseObj"
v-if=
"secondType == 2"
@
success=
"refreshStudentPage"
></student-yuefang>
:StuId=
"baseObj.StuId"
<student-genjin
:stateId=
"stateId"
:stateList=
"customStateList"
@
update=
"queryStuInfo"
v-if=
"secondType == 1"
:save-obj=
"baseObj"
v-if=
"secondType == 3"
@
success=
"refreshStudentPage"
></student-genjin>
@
success=
"refreshStudentPage"
<student-shiting
:save-obj=
"baseObj"
v-if=
"secondType == 4"
@
success=
"refreshStudentPage"
>
></student-visit>
<student-yuefang
:stateId=
"stateId"
:stateList=
"customStateList"
@
update=
"queryStuInfo"
:save-obj=
"baseObj"
v-if=
"secondType == 2"
@
success=
"refreshStudentPage"
></student-yuefang>
<student-genjin
:stateId=
"stateId"
:stateList=
"customStateList"
@
update=
"queryStuInfo"
:save-obj=
"baseObj"
v-if=
"secondType == 3"
@
success=
"refreshStudentPage"
></student-genjin>
<student-shiting
:save-obj=
"baseObj"
v-if=
"secondType == 4"
@
success=
"refreshStudentPage"
>
</student-shiting>
</student-shiting>
<student-consult
<student-consult
:save-obj=
"baseObj"
v-if=
"secondType == 5"
@
success=
"refreshStudentPage"
>
:save-obj=
"baseObj"
v-if=
"secondType == 5"
@
success=
"refreshStudentPage"
>
</student-consult>
</student-consult>
</div>
</div>
</
template
>
</
template
>
<!-- 订单 -->
<!-- 订单 -->
<
template
v-if=
"ckedTab == 3"
>
<
template
v-if=
"ckedTab == 3"
>
<student-order
<student-order
:save-obj=
"baseObj"
@
success=
"refreshStudentPage"
></student-order>
:save-obj=
"baseObj"
@
success=
"refreshStudentPage"
></student-order>
</
template
>
</
template
>
<!-- 合同 -->
<!-- 合同 -->
<
template
v-if=
"ckedTab == 4"
>
<
template
v-if=
"ckedTab == 4"
>
<student-hetong
<student-hetong
:save-obj=
"baseObj"
@
success=
"refreshStudentPage"
></student-hetong>
:save-obj=
"baseObj"
@
success=
"refreshStudentPage"
></student-hetong>
</
template
>
</
template
>
<
template
v-if=
"ckedTab == 5"
>
<
template
v-if=
"ckedTab == 5"
>
<student-Assit
<student-Assit
:save-obj=
"baseObj"
:BelongType=
"BelongType"
@
success=
"refreshStudentPage"
>
:save-obj=
"baseObj"
</student-Assit>
:BelongType=
"BelongType"
@
success=
"refreshStudentPage"
></student-Assit>
</
template
>
</
template
>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<consultFrom
<consultFrom
v-if=
"isconsult"
:save-obj=
"baseObj"
@
close=
"isconsult = false"
@
consultsuccess=
"consultsuccess"
>
v-if=
"isconsult"
:save-obj=
"baseObj"
@
close=
"isconsult = false"
@
consultsuccess=
"consultsuccess"
>
</consultFrom>
</consultFrom>
<div
class=
"dialog-out-close"
@
click=
"closeCutomer"
>
<div
class=
"dialog-out-close"
@
click=
"closeCutomer"
>
<i
class=
"iconfont icon-close"
style=
"font-size:26px;"
/>
<i
class=
"iconfont icon-close"
style=
"font-size:26px;"
/>
...
@@ -228,507 +105,526 @@
...
@@ -228,507 +105,526 @@
</q-dialog>
</q-dialog>
</template>
</template>
<
script
>
<
script
>
import
{
queryEmployee
}
from
"../../../api/users/user"
;
import
{
import
{
ForwardStudent
}
from
"../../../api/customerstudent/customerstudent"
;
queryEmployee
import
{
}
from
"../../../api/users/user"
;
getStudentInfo
,
//获取学员客户信息
import
{
queryStuStageList
//获取客户阶段列表
ForwardStudent
}
from
"../../../api/school/index"
;
}
from
"../../../api/customerstudent/customerstudent"
;
import
studentLeft
from
"../student/student-left"
;
import
{
import
studentRecord
from
"../student/student-record"
;
getStudentInfo
,
//获取学员客户信息
import
studentVisit
from
"../student/student-visit"
;
queryStuStageList
//获取客户阶段列表
import
studentYuefang
from
"../student/student-yuefang"
;
}
from
"../../../api/school/index"
;
import
studentGenjin
from
"../student/student-genjin"
;
import
studentLeft
from
"../student/student-left"
;
import
studentShiting
from
"../student/student-shiting"
;
import
studentRecord
from
"../student/student-record"
;
import
studentConsult
from
"../student/student-consult"
import
studentVisit
from
"../student/student-visit"
;
import
studentHetong
from
"../student/student-hetong"
;
import
studentYuefang
from
"../student/student-yuefang"
;
import
studentOrder
from
"../student/student-order"
;
import
studentGenjin
from
"../student/student-genjin"
;
import
studentAssit
from
"../student/student-Assit"
;
import
studentShiting
from
"../student/student-shiting"
;
import
consultFrom
from
"../student/consult-from"
;
import
studentConsult
from
"../student/student-consult"
import
{
SetStudentAssistBatch
}
from
"../../../api/sale/sale"
;
import
studentHetong
from
"../student/student-hetong"
;
export
default
{
import
studentOrder
from
"../student/student-order"
;
meta
:
{
import
studentAssit
from
"../student/student-Assit"
;
title
:
"学员管理"
import
consultFrom
from
"../student/consult-from"
;
},
import
{
components
:
{
SetStudentAssistBatch
studentLeft
,
}
from
"../../../api/sale/sale"
;
studentRecord
,
export
default
{
studentVisit
,
meta
:
{
studentYuefang
,
title
:
"学员管理"
studentGenjin
,
studentShiting
,
studentHetong
,
studentOrder
,
studentAssit
,
consultFrom
,
studentConsult
},
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
},
},
isJudgeTrans
:
{
components
:
{
type
:
Number
,
studentLeft
,
default
:
null
studentRecord
,
studentVisit
,
studentYuefang
,
studentGenjin
,
studentShiting
,
studentHetong
,
studentOrder
,
studentAssit
,
consultFrom
,
studentConsult
},
},
BelongType
:
{
props
:
{
type
:
Number
,
saveObj
:
{
default
:
null
type
:
Object
,
}
default
:
null
},
data
()
{
return
{
persistent
:
true
,
ckedTab
:
"1"
,
secondType
:
1
,
visitList
:
[
{
Name
:
"到访"
,
Id
:
1
},
{
Name
:
"约访"
,
Id
:
2
},
{
Name
:
"跟进"
,
Id
:
3
},
{
Name
:
"试听"
,
Id
:
4
},
{
Name
:
"顾问"
,
Id
:
5
}
],
pushing
:
false
,
msg
:
{},
baseObj
:
{},
transMsg
:
{
StuId
:
1
,
CreateBy
:
""
},
},
//员工列表
isJudgeTrans
:
{
employeeList
:
[],
type
:
Number
,
myEmployeeList
:
[],
default
:
null
isShowTrans
:
false
,
},
customStateList
:
[],
BelongType
:
{
stateId
:
0
,
type
:
Number
,
stuData
:
{},
default
:
null
userInfo
:
{},
},
isconsult
:
false
//学生咨询弹窗
//选中的选项卡
};
checkType
:
{
},
type
:
Number
,
created
()
{
default
:
0
this
.
getStuStageList
();
this
.
queryStuInfo
();
this
.
userInfo
=
this
.
getLocalStorage
();
},
mounted
()
{
this
.
baseObj
=
this
.
saveObj
;
this
.
baseObj
.
IsHaveCurseManager
=
false
;
if
(
this
.
baseObj
.
AssistList
&&
this
.
baseObj
.
AssistList
.
length
>
0
)
{
this
.
baseObj
.
AssistList
.
forEach
(
x
=>
{
if
(
x
.
AssistType
==
2
)
{
this
.
baseObj
.
IsHaveCurseManager
=
true
;
}
});
}
this
.
getEmployeeList
();
},
methods
:
{
callUserHandler
()
{
tccc
.
callOut
({
phoneNumber
:
this
.
baseObj
.
StuRealMobile
,
phoneDesc
:
this
.
baseObj
.
StuName
});
//this.closeCutomer();
},
//判断是否显示转交
getJudgeTrans
()
{
let
userInfo
=
this
.
getLocalStorage
();
let
Id
=
userInfo
.
Id
;
if
(
this
.
isJudgeTrans
==
1
)
{
if
(
this
.
baseObj
.
CreateBy
==
Id
)
{
return
true
;
}
else
{
return
false
;
}
}
else
{
return
true
;
}
}
},
},
closeCutomer
()
{
data
()
{
this
.
$emit
(
"close"
);
return
{
},
persistent
:
true
,
//刷新列表
ckedTab
:
"1"
,
refreshStudentPage
()
{
secondType
:
1
,
this
.
$emit
(
"success"
);
visitList
:
[{
},
Name
:
"到访"
,
consultsuccess
(
data
)
{
Id
:
1
//质询信息的修改
},
this
.
$emit
(
"success"
);
{
this
.
isconsult
=
false
;
Name
:
"约访"
,
this
.
baseObj
.
PlanPrice
=
data
.
PlanPrice
;
Id
:
2
this
.
baseObj
.
BaseCondition
=
data
.
BaseCondition
;
},
this
.
baseObj
.
DemandPoint
=
data
.
DemandPoint
;
{
this
.
baseObj
.
ResistPoint
=
data
.
ResistPoint
;
Name
:
"跟进"
,
this
.
baseObj
.
ConsultingResults
=
data
.
ConsultingResults
;
Id
:
3
},
},
//点击第二排
{
getckedType
(
obj
)
{
Name
:
"试听"
,
this
.
secondType
=
obj
.
Id
;
Id
:
4
},
},
//获取员工列表
{
getEmployeeList
()
{
Name
:
"顾问"
,
queryEmployee
({
Id
:
5
IsLeave
:
1
}
}).
then
(
res
=>
{
],
this
.
employeeList
=
res
.
Data
;
pushing
:
false
,
this
.
myEmployeeList
=
res
.
Data
;
msg
:
{},
});
baseObj
:
{},
},
transMsg
:
{
//筛选员工
StuId
:
1
,
filterEmployee
(
val
,
update
,
abort
)
{
CreateBy
:
""
update
(()
=>
{
},
this
.
myEmployeeList
=
this
.
employeeList
.
filter
(
//员工列表
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
employeeList
:
[],
);
myEmployeeList
:
[],
});
isShowTrans
:
false
,
customStateList
:
[],
stateId
:
0
,
stuData
:
{},
userInfo
:
{},
isconsult
:
false
//学生咨询弹窗
};
},
},
//保存转交
created
()
{
saveTransForm
()
{
this
.
getStuStageList
();
this
.
transMsg
.
StuId
=
this
.
baseObj
.
StuId
;
this
.
queryStuInfo
();
ForwardStudent
(
this
.
transMsg
).
then
(
res
=>
{
this
.
userInfo
=
this
.
getLocalStorage
();
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"转交成功"
,
position
:
"top"
});
}
this
.
isShowTrans
=
false
;
});
},
},
//保存成功后调用记录
watch
:
{
getrecord
()
{
checkType
:
{
this
.
$refs
.
mychild
.
getStuLogPage
();
handler
(
val
)
{
if
(
val
&&
val
>
0
)
{
this
.
ckedTab
=
val
;
}
},
deep
:
true
},
},
},
//获取客户阶段列表
mounted
()
{
getStuStageList
()
{
this
.
baseObj
=
this
.
saveObj
;
queryStuStageList
().
then
(
res
=>
{
this
.
baseObj
.
IsHaveCurseManager
=
false
;
this
.
customStateList
=
res
.
Data
;
if
(
this
.
baseObj
.
AssistList
&&
this
.
baseObj
.
AssistList
.
length
>
0
)
{
});
this
.
baseObj
.
AssistList
.
forEach
(
x
=>
{
if
(
x
.
AssistType
==
2
)
{
this
.
baseObj
.
IsHaveCurseManager
=
true
;
}
});
}
this
.
getEmployeeList
();
},
},
queryStuInfo
()
{
methods
:
{
getStudentInfo
({
callUserHandler
()
{
StuId
:
this
.
saveObj
.
StuId
tccc
.
callOut
({
}).
then
(
res
=>
{
phoneNumber
:
this
.
baseObj
.
StuRealMobile
,
if
(
res
.
Code
==
1
)
{
phoneDesc
:
this
.
baseObj
.
StuName
this
.
stuData
=
res
.
Data
;
});
this
.
stateId
=
res
.
Data
.
StuStage
;
},
res
.
Data
.
BelongType
=
this
.
baseObj
.
BelongType
;
//判断是否显示转交
this
.
baseObj
=
res
.
Data
;
getJudgeTrans
()
{
let
userInfo
=
this
.
getLocalStorage
();
let
Id
=
userInfo
.
Id
;
if
(
this
.
isJudgeTrans
==
1
)
{
if
(
this
.
baseObj
.
CreateBy
==
Id
)
{
return
true
;
}
else
{
return
false
;
}
}
else
{
return
true
;
}
}
});
},
},
closeCutomer
()
{
assistBatchHandler
()
{
this
.
$emit
(
"close"
);
if
(
this
.
pushing
||
this
.
baseObj
.
IsHaveCurseManager
)
return
;
},
this
.
pushing
=
true
;
//刷新列表
let
parameter
=
{
refreshStudentPage
()
{
stuIds
:
this
.
baseObj
.
StuId
};
SetStudentAssistBatch
(
parameter
).
then
(
r
=>
{
this
.
$emit
(
"success"
);
this
.
$emit
(
"success"
);
this
.
baseObj
.
IsHaveCurseManager
=
true
;
},
this
.
pushing
=
false
;
consultsuccess
(
data
)
{
});
//质询信息的修改
},
this
.
$emit
(
"success"
);
consultbtn
()
{
this
.
isconsult
=
false
;
this
.
isconsult
=
true
;
this
.
baseObj
.
PlanPrice
=
data
.
PlanPrice
;
this
.
baseObj
.
BaseCondition
=
data
.
BaseCondition
;
this
.
baseObj
.
DemandPoint
=
data
.
DemandPoint
;
this
.
baseObj
.
ResistPoint
=
data
.
ResistPoint
;
this
.
baseObj
.
ConsultingResults
=
data
.
ConsultingResults
;
},
//点击第二排
getckedType
(
obj
)
{
this
.
secondType
=
obj
.
Id
;
},
//获取员工列表
getEmployeeList
()
{
queryEmployee
({
IsLeave
:
1
}).
then
(
res
=>
{
this
.
employeeList
=
res
.
Data
;
this
.
myEmployeeList
=
res
.
Data
;
});
},
//筛选员工
filterEmployee
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
myEmployeeList
=
this
.
employeeList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
);
});
},
//保存转交
saveTransForm
()
{
this
.
transMsg
.
StuId
=
this
.
baseObj
.
StuId
;
ForwardStudent
(
this
.
transMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"转交成功"
,
position
:
"top"
});
}
this
.
isShowTrans
=
false
;
});
},
//保存成功后调用记录
getrecord
()
{
this
.
$refs
.
mychild
.
getStuLogPage
();
},
//获取客户阶段列表
getStuStageList
()
{
queryStuStageList
().
then
(
res
=>
{
this
.
customStateList
=
res
.
Data
;
});
},
queryStuInfo
()
{
getStudentInfo
({
StuId
:
this
.
saveObj
.
StuId
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
stuData
=
res
.
Data
;
this
.
stateId
=
res
.
Data
.
StuStage
;
res
.
Data
.
BelongType
=
this
.
baseObj
.
BelongType
;
this
.
baseObj
=
res
.
Data
;
}
});
},
assistBatchHandler
()
{
if
(
this
.
pushing
||
this
.
baseObj
.
IsHaveCurseManager
)
return
;
this
.
pushing
=
true
;
let
parameter
=
{
stuIds
:
this
.
baseObj
.
StuId
};
SetStudentAssistBatch
(
parameter
).
then
(
r
=>
{
this
.
$emit
(
"success"
);
this
.
baseObj
.
IsHaveCurseManager
=
true
;
this
.
pushing
=
false
;
});
},
consultbtn
()
{
this
.
isconsult
=
true
;
}
}
}
}
};
};
</
script
>
</
script
>
<
style
>
<
style
>
.custom_RModel
{
.custom_RModel
{
width
:
500px
;
width
:
500px
;
height
:
100%
;
height
:
100%
;
}
}
.customMain
{
.customMain
{
width
:
1000px
!important
;
width
:
1000px
!important
;
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
height
:
100
vh
;
height
:
100
vh
;
padding
:
15px
17px
0
17px
;
padding
:
15px
17px
0
17px
;
background-color
:
#f4f4f6
;
background-color
:
#f4f4f6
;
}
}
.custom_Top
{
.custom_Top
{
width
:
100%
;
width
:
100%
;
padding
:
22px
;
padding
:
22px
;
background
:
#fff
;
background
:
#fff
;
border-radius
:
8px
;
border-radius
:
8px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
}
}
.custom_HLeft
{
.custom_HLeft
{
display
:
flex
;
display
:
flex
;
}
}
.nameplate_avatar
{
.nameplate_avatar
{
width
:
60px
;
width
:
60px
;
height
:
60px
;
height
:
60px
;
flex-shrink
:
0
;
flex-shrink
:
0
;
margin-right
:
14px
;
margin-right
:
14px
;
border-radius
:
5px
;
border-radius
:
5px
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.F_16
{
.F_16
{
font-size
:
16px
;
font-size
:
16px
;
}
}
.Name_List
{
.Name_List
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
justify-content
:
space-around
;
justify-content
:
space-around
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.wechat_Name
{
.wechat_Name
{
color
:
#9999a8
;
color
:
#9999a8
;
display
:
flex
;
display
:
flex
;
font-size
:
14px
;
font-size
:
14px
;
}
}
.custom_Bottom
{
.custom_Bottom
{
margin-top
:
17px
;
margin-top
:
17px
;
flex
:
1
;
flex
:
1
;
display
:
flex
;
display
:
flex
;
margin-top
:
17px
;
margin-top
:
17px
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.detail-info
{
.detail-info
{
flex-shrink
:
0
;
flex-shrink
:
0
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
width
:
350px
;
width
:
350px
;
height
:
100%
;
height
:
100%
;
padding
:
28px
0
;
padding
:
28px
0
;
margin-right
:
13px
;
margin-right
:
13px
;
background
:
#fff
;
background
:
#fff
;
border-radius
:
8px
8px
0
0
;
border-radius
:
8px
8px
0
0
;
overflow
:
auto
;
overflow
:
auto
;
}
}
.detail-info
::-webkit-scrollbar
{
.detail-info
::-webkit-scrollbar
{
display
:
none
;
display
:
none
;
}
}
.detail-travel
{
.detail-travel
{
width
:
100%
;
width
:
100%
;
flex-grow
:
1
;
flex-grow
:
1
;
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
padding-top
:
28px
;
padding-top
:
28px
;
background
:
#fff
;
background
:
#fff
;
border-radius
:
8px
8px
0
0
;
border-radius
:
8px
8px
0
0
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.edit_bar
{
.edit_bar
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
padding
:
12px
22px
;
padding
:
12px
22px
;
}
}
.edit_info_wrap
{
.edit_info_wrap
{
padding
:
0
22px
12px
;
padding
:
0
22px
12px
;
}
}
.custom_Line
{
.custom_Line
{
width
:
calc
(
100%
-
44px
);
width
:
calc
(
100%
-
44px
);
margin
:
16px
22px
;
margin
:
16px
22px
;
border-bottom
:
1px
solid
#d7d7d7
;
border-bottom
:
1px
solid
#d7d7d7
;
}
}
.custom_Edit
{
.custom_Edit
{
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
width
:
78px
;
width
:
78px
;
height
:
26px
;
height
:
26px
;
margin-right
:
3px
;
margin-right
:
3px
;
border
:
1px
dashed
#858598
;
border
:
1px
dashed
#858598
;
border-radius
:
4px
;
border-radius
:
4px
;
font-size
:
12px
;
font-size
:
12px
;
cursor
:
pointer
;
cursor
:
pointer
;
}
}
.tripTypeContent
{
.tripTypeContent
{
display
:
flex
;
display
:
flex
;
overflow-x
:
auto
;
overflow-x
:
auto
;
white-space
:
nowrap
;
white-space
:
nowrap
;
}
}
.StuCkedType
{
.StuCkedType
{
color
:
#3470ff
;
color
:
#3470ff
;
font-weight
:
700
;
font-weight
:
700
;
}
}
.tripTypeContent
div
{
.tripTypeContent
div
{
margin-right
:
20px
;
margin-right
:
20px
;
cursor
:
pointer
;
cursor
:
pointer
;
}
}
.q-timeline__title
{
.q-timeline__title
{
margin-bottom
:
5px
;
margin-bottom
:
5px
;
}
}
.customUpdateTime
{
.customUpdateTime
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
font-size
:
14px
;
font-size
:
14px
;
color
:
#9696a6
;
color
:
#9696a6
;
}
}
.q-timeline__subtitle
{
.q-timeline__subtitle
{
opacity
:
1
;
opacity
:
1
;
font-weight
:
normal
;
font-weight
:
normal
;
}
}
.follow_Component
{
.follow_Component
{
padding
:
0
22px
;
padding
:
0
22px
;
margin-top
:
10px
;
margin-top
:
10px
;
width
:
100%
;
width
:
100%
;
background-color
:
#f6f6f6
;
background-color
:
#f6f6f6
;
border-radius
:
5px
;
border-radius
:
5px
;
}
}
.detail_first
{
.detail_first
{
margin
:
0
22px
;
margin
:
0
22px
;
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
height
:
100%
;
height
:
100%
;
}
}
.detail_Main
{
.detail_Main
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
.student_Name
{
.student_Name
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
background
:
#004d40
;
background
:
#004d40
;
color
:
#fff
;
color
:
#fff
;
text-align
:
center
;
text-align
:
center
;
line-height
:
60px
;
line-height
:
60px
;
font-size
:
20px
;
font-size
:
20px
;
}
}
.TimeLineDiv
{
.TimeLineDiv
{
height
:
620px
;
height
:
620px
;
flex
:
1
;
flex
:
1
;
height
:
100%
;
height
:
100%
;
padding-right
:
20px
;
padding-right
:
20px
;
}
}
.Time_TopList
{
.Time_TopList
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
}
}
.visit_Cont
{
.visit_Cont
{
font-size
:
14px
;
font-size
:
14px
;
}
}
.visit_delete
{
.visit_delete
{
font-size
:
14px
;
font-size
:
14px
;
cursor
:
pointer
;
cursor
:
pointer
;
width
:
30px
;
width
:
30px
;
}
}
.operate_Content
{
.operate_Content
{
overflow
:
auto
;
overflow
:
auto
;
/* padding-right: 20px; */
/* padding-right: 20px; */
}
}
.operate_Content
::-webkit-scrollbar
{
.operate_Content
::-webkit-scrollbar
{
width
:
6px
;
width
:
6px
;
height
:
8px
;
height
:
8px
;
}
}
.operate_Content
::-webkit-scrollbar-thumb
{
.operate_Content
::-webkit-scrollbar-thumb
{
border-radius
:
4px
;
border-radius
:
4px
;
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#c9c9c9
;
background
:
#c9c9c9
;
}
}
.operate_Content
::-webkit-scrollbar-thumb
{
.operate_Content
::-webkit-scrollbar-thumb
{
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
4px
;
border-radius
:
4px
;
background
:
#ededed
;
background
:
#ededed
;
}
}
.Log_Content
{
.Log_Content
{
padding
:
10px
;
padding
:
10px
;
border-radius
:
5px
;
border-radius
:
5px
;
background-color
:
#f4f4f6
;
background-color
:
#f4f4f6
;
color
:
#818194
;
color
:
#818194
;
line-height
:
2
;
line-height
:
2
;
margin-top
:
10px
;
margin-top
:
10px
;
word-break
:
break-all
;
word-break
:
break-all
;
}
}
.stu_ComFeed
{
.stu_ComFeed
{
color
:
#3470ff
;
color
:
#3470ff
;
cursor
:
pointer
;
cursor
:
pointer
;
margin-left
:
20px
;
margin-left
:
20px
;
}
}
.StuCom_Remark
{
.StuCom_Remark
{
display
:
flex
;
display
:
flex
;
}
}
.StuCom_Inner
{
.StuCom_Inner
{
width
:
100%
;
width
:
100%
;
}
}
.StuCom_Left
{
.StuCom_Left
{
flex-shrink
:
0
;
flex-shrink
:
0
;
width
:
57px
;
width
:
57px
;
text-align-last
:
justify
;
text-align-last
:
justify
;
}
}
.Stu_OrderId
{
.Stu_OrderId
{
color
:
#2961fe
;
color
:
#2961fe
;
font-weight
:
bold
;
font-weight
:
bold
;
text-decoration
:
underline
;
text-decoration
:
underline
;
cursor
:
pointer
;
cursor
:
pointer
;
}
}
.Stu_HtLeft
{
.Stu_HtLeft
{
width
:
57px
;
width
:
57px
;
display
:
inline-block
;
display
:
inline-block
;
text-align-last
:
justify
;
text-align-last
:
justify
;
}
}
.fullscreen
{
.fullscreen
{
z-index
:
3000
;
z-index
:
3000
;
}
}
</
style
>
</
style
>
\ No newline at end of file
src/components/school/student/stulist.vue
View file @
a3aa53d0
...
@@ -92,7 +92,7 @@
...
@@ -92,7 +92,7 @@
</
template
>
</
template
>
<
template
v-slot:body-cell-StuName=
"props"
>
<
template
v-slot:body-cell-StuName=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row)"
>
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row
,1
)"
>
{{
props
.
value
}}
{{
props
.
value
}}
</div>
</div>
</q-td>
</q-td>
...
@@ -152,7 +152,7 @@
...
@@ -152,7 +152,7 @@
<
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"
>
<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"
>
...
@@ -197,7 +197,7 @@
...
@@ -197,7 +197,7 @@
</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"
:save-obj=
"stuOption"
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:
checkType=
"checkType"
:
save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"refreshStuList"
@
reload=
"referDataHandler"
>
@
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"
>
...
@@ -427,7 +427,8 @@
...
@@ -427,7 +427,8 @@
BelongType
:
1
,
BelongType
:
1
,
pushMode
:
false
,
pushMode
:
false
,
pushing
:
false
,
pushing
:
false
,
assistListFormat
:
[]
assistListFormat
:
[],
checkType
:
1
,
};
};
},
},
watch
:
{
watch
:
{
...
@@ -597,10 +598,11 @@
...
@@ -597,10 +598,11 @@
this
.
isShowTransfer
=
false
;
this
.
isShowTransfer
=
false
;
},
},
//点击学生姓名弹出
//点击学生姓名弹出
getStuRight
(
obj
)
{
getStuRight
(
obj
,
type
)
{
if
(
obj
)
{
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
stuOption
=
obj
;
this
.
BelongType
=
obj
.
BelongType
;
this
.
BelongType
=
obj
.
BelongType
;
this
.
checkType
=
type
;
}
else
{
}
else
{
this
.
stuOption
=
null
;
this
.
stuOption
=
null
;
}
}
...
...
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