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
521493f2
Commit
521493f2
authored
Mar 04, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面Title修改
parent
2cce8bdf
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
1158 additions
and
1483 deletions
+1158
-1483
reservelist.vue
src/components/schedul/reservelist.vue
+0
-3
activeOrderStatistics.vue
src/pages/sale/activeOrderStatistics.vue
+18
-42
activityList.vue
src/pages/sale/activityList.vue
+133
-158
b2bcustomer.vue
src/pages/sale/b2bcustomer.vue
+1
-1
b2bwithdraw.vue
src/pages/sale/b2bwithdraw.vue
+264
-317
contractManage.vue
src/pages/sale/contractManage.vue
+338
-472
contractRefund.vue
src/pages/sale/contractRefund.vue
+1
-1
courseList.vue
src/pages/sale/courseList.vue
+2
-6
guestConsultation.vue
src/pages/sale/guestConsultation.vue
+5
-5
japaneseTrain.vue
src/pages/sale/japaneseTrain.vue
+1
-1
myOrder.vue
src/pages/sale/myOrder.vue
+1
-1
mystu.vue
src/pages/sale/mystu.vue
+1
-1
reserveClass.vue
src/pages/sale/reserveClass.vue
+11
-15
studyOrder.vue
src/pages/sale/studyOrder.vue
+1
-1
studyjob.vue
src/pages/sale/studyjob.vue
+1
-1
classPlan.vue
src/pages/stuMan/classPlan.vue
+10
-7
classRecord.vue
src/pages/stuMan/classRecord.vue
+1
-1
studentManage.vue
src/pages/stuMan/studentManage.vue
+13
-18
visitorRecord.vue
src/pages/stuMan/visitorRecord.vue
+6
-15
type.vue
src/pages/studyAbroad/common/type.vue
+1
-1
employment.vue
src/pages/studyAbroad/employment.vue
+3
-17
studyType.vue
src/pages/studyAbroad/studyType.vue
+3
-0
customneed.vue
src/pages/system/customneed.vue
+37
-43
stage.vue
src/pages/system/stage.vue
+1
-2
stuDistributionRule.vue
src/pages/system/stuDistributionRule.vue
+110
-120
stuFlow.vue
src/pages/system/stuFlow.vue
+34
-34
stuManageConfig.vue
src/pages/system/stuManageConfig.vue
+32
-35
stuReceiveChannel.vue
src/pages/system/stuReceiveChannel.vue
+7
-4
studyAim.vue
src/pages/system/studyAim.vue
+122
-161
No files found.
src/components/schedul/reservelist.vue
View file @
521493f2
...
...
@@ -106,9 +106,6 @@
}
from
'../../api/scheduling/schedu'
import
reserveForm
from
'../schedul/reserve-form'
export
default
{
meta
:
{
title
:
"班级列表"
},
props
:
{
data
:
{
type
:
Array
,
...
...
src/pages/sale/activeOrderStatistics.vue
View file @
521493f2
...
...
@@ -5,7 +5,6 @@
</div>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
change=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ActivityName"
label=
"活动名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
...
...
@@ -20,35 +19,34 @@
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"msg.EduUserId"
use-input
clearable
@
filter=
"filterFn"
:options=
"EmployeeList"
emit-value
map-options
label=
"业务员"
>
<template
v-slot:no-option
>
v-model=
"msg.EduUserId"
use-input
clearable
@
filter=
"filterFn"
:options=
"EmployeeList"
emit-value
map-options
label=
"业务员"
>
<template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
未找到相关数据
</q-item-section>
</q-item>
</
template
>
</q-select>
</q-select>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"msg.EnrollState"
:options=
"EnrollStateOpt"
emit-value
map-options
label=
"报名状态"
/>
</div>
<div
class=
"col-3"
>
<q-field
filled
>
<
template
v-slot:control
>
<q-field
filled
>
<
template
v-slot:control
>
<el-date-picker
v-model=
"dateList"
@
change=
"resetSearch()"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"报名开始时间"
end-placeholder=
"报名结束时间"
>
</el-date-picker>
range-separator=
"至"
start-placeholder=
"报名开始时间"
end-placeholder=
"报名结束时间"
/>
</
template
>
</q-field>
</div>
<div
class=
"col-3"
>
<q-field
filled
>
<
template
v-slot:control
>
<q-field
filled
>
<
template
v-slot:control
>
<el-date-picker
v-model=
"dateList2"
@
change=
"resetSearch()"
value-format=
"yyyy-MM-dd"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"活动开始时间"
end-placeholder=
"活动结束时间"
>
</el-date-picker>
range-separator=
"至"
start-placeholder=
"活动开始时间"
end-placeholder=
"活动结束时间"
/>
</
template
>
</q-field>
</div>
...
...
@@ -75,14 +73,6 @@
<span
class=
"stics-name"
>
取消人数
</span>
<span>
{{data.Statistics.CancelNum}}人
</span>
</div>
<!-- <div class="col stics">
<span class="stics-name">提成金额</span>
<span>{{data.Statistics.CommissionMoney}}</span>
</div>
<div class="col stics">
<span class="stics-name">额外奖励</span>
<span>{{data.Statistics.ExtraRewardMoney}}</span>
</div> -->
</div>
<div
class=
"row col"
style=
"justify-content: flex-end"
>
<div
class=
"row tis"
>
...
...
@@ -103,7 +93,7 @@
</div>
</div>
<div
class=
"page-content"
>
<activeOrder
:dataList=
"data.List"
:authObj=
"authObj"
@
success=
"refreshClassOrder"
:modityOrderType=
"1"
<activeOrder
:dataList=
"data.List"
:authObj=
"authObj"
@
success=
"refreshClassOrder"
:modityOrderType=
"1"
ref=
"orderL"
:loading=
"loading"
>
</activeOrder>
<div
class=
"row"
style=
"justify-content: flex-end;padding: 5px 20px"
>
...
...
@@ -112,21 +102,18 @@
</q-pagination>
</div>
</div>
</div>
</template>
<
script
>
import
{
queryEmployee
}
from
'../../api/users/user'
//获取业务员列表
// import myOrderForm from '../../components/sale/myOrder-form'
import
activeOrder
from
'../../components/sale/activeOrder-item'
export
default
{
meta
:
{
title
:
"
我的活动订单
"
title
:
"
活动报名统计
"
},
components
:
{
// myOrderForm,
activeOrder
},
data
()
{
...
...
@@ -148,7 +135,6 @@
EndTime
:
""
,
//活动结束时间
EnrollState
:
3
,
//报名状态
LinkMan
:
""
,
//联系人
},
EnrollStateOpt
:
[
//报名状态列表
{
...
...
@@ -169,8 +155,6 @@
//订单状态
OrderStateList
:
[],
pageCount
:
1
,
showone
:
false
,
//权限判断
authObj
:
{
...
...
@@ -188,15 +172,12 @@
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
;
this
.
msg
.
Id
=
this
.
$route
.
query
.
OrderId
;
}
this
.
getEmployee
(
0
);
this
.
getList
();
},
mounted
()
{
},
mounted
()
{},
methods
:
{
//筛选员工
//筛选员工
filterFn
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
''
)
{
...
...
@@ -223,11 +204,8 @@
this
.
EmployeeList
.
unshift
(
obj
)
this
.
AllemployeeList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
EmployeeList
));
}
}).
catch
(()
=>
{
})
}).
catch
(()
=>
{})
},
//翻页
changePage
(
val
)
{
if
(
this
.
showone
==
true
)
{
...
...
@@ -268,8 +246,8 @@
this
.
apipostDS
(
"/api/Education/GetConsultOrderStatisticsPage"
,
msg
,
(
res
)
=>
{
this
.
loading
=
false
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
data
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
this
.
data
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
})
},
...
...
@@ -279,7 +257,6 @@
},
}
}
</
script
>
<
style
>
li
{
...
...
@@ -338,5 +315,4 @@
font-weight
:
600
;
margin-right
:
20px
}
</
style
>
</
style
>
\ No newline at end of file
src/pages/sale/activityList.vue
View file @
521493f2
This diff is collapsed.
Click to expand it.
src/pages/sale/b2bcustomer.vue
View file @
521493f2
...
...
@@ -79,7 +79,7 @@
import
customcategorylist
from
"../../components/sale/customcategorylist"
export
default
{
meta
:
{
title
:
"
同行管理
"
title
:
"
我的同业
"
},
components
:
{
b2bcustomlist
,
...
...
src/pages/sale/b2bwithdraw.vue
View file @
521493f2
This diff is collapsed.
Click to expand it.
src/pages/sale/contractManage.vue
View file @
521493f2
This diff is collapsed.
Click to expand it.
src/pages/sale/contractRefund.vue
View file @
521493f2
...
...
@@ -35,7 +35,7 @@
import
courserefundForm
from
"../../components/course/courserefund-form"
export
default
{
meta
:
{
title
:
"
退课协议管理
"
,
title
:
"
语培退学合同
"
,
},
components
:
{
courserefundForm
...
...
src/pages/sale/courseList.vue
View file @
521493f2
...
...
@@ -136,7 +136,6 @@
<!--
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"创建报价单"
@
click=
"createQuotation"
/>
-->
</div>
</
template
>
<
template
v-slot:body=
"props"
>
<q-tr
:props=
"props"
>
<q-td
auto-width
>
...
...
@@ -305,10 +304,9 @@
}
from
"../../api/course/index"
;
import
quotationForm
from
'../../components/sale/quotation-form'
import
{
mapState
}
from
"vuex"
;
export
default
{
meta
:
{
title
:
"课程
预览
"
title
:
"课程
报价表
"
},
components
:
{
quotationForm
...
...
@@ -383,7 +381,6 @@
field
:
row
=>
row
.
PreferentialList
},
// 12月15号新增参数
{
name
:
"B2CRatio"
,
label
:
"直客优惠比例"
,
...
...
@@ -583,5 +580,4 @@
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
</
style
>
\ No newline at end of file
src/pages/sale/guestConsultation.vue
View file @
521493f2
...
...
@@ -72,8 +72,8 @@
</div>
<
template
v-if=
"morequery"
>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.StuStage"
:options=
"customState"
option-label=
"Name"
option-value=
"Id"
emit-value
map-options
label=
"客户状态"
clearable
/>
<q-select
@
input=
"resetSearch"
dense
filled
v-model=
"msg.StuStage"
:options=
"customState"
option-
label=
"Name"
option-
value=
"Id"
emit-value
map-options
label=
"客户状态"
clearable
/>
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"resetSearch"
dense
filled
option-value=
"Id"
option-label=
"EmployeeName"
...
...
@@ -94,8 +94,8 @@
</div>
<div>
<span
@
click=
"morequery=!morequery"
style=
"display:inline-flex;align-items:center;cursor: pointer;"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
label=
"下载"
v-if=
"isHaveDownLoad"
@
click=
"downLoadStudentConsult"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
label=
"下载"
v-if=
"isHaveDownLoad"
@
click=
"downLoadStudentConsult"
/>
<span
style=
"margin-right:5px;color: #089bab;"
>
高级查询
</span>
<img
v-show=
"morequery"
class=
"roatImg"
style=
"width:12px;height:12px"
src=
"../../assets/images/more.png"
alt=
""
>
...
...
@@ -186,7 +186,7 @@
export
default
{
meta
:
{
title
:
"客
户
咨询"
title
:
"客
人
咨询"
},
props
:
{},
components
:
{
...
...
src/pages/sale/japaneseTrain.vue
View file @
521493f2
...
...
@@ -328,7 +328,7 @@
export
default
{
meta
:
{
title
:
"
日语培训
"
title
:
"
语培产品
"
},
components
:
{
editorderForm
...
...
src/pages/sale/myOrder.vue
View file @
521493f2
...
...
@@ -132,7 +132,7 @@
import
orderlist
from
'../../components/sale/orderlist'
export
default
{
meta
:
{
title
:
"我的订单"
title
:
"我的
语培
订单"
},
components
:
{
myOrderForm
,
...
...
src/pages/sale/mystu.vue
View file @
521493f2
...
...
@@ -121,7 +121,7 @@
}
from
"vuex"
;
export
default
{
meta
:
{
title
:
"
客户管理
"
title
:
"
我的学员
"
},
components
:
{
stulist
...
...
src/pages/sale/reserveClass.vue
View file @
521493f2
...
...
@@ -10,8 +10,8 @@
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-4 Sysuser_Date"
>
<q-field
filled
>
<template
v-slot:control
>
<q-field
filled
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.StartClassDate"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"开始时间"
size=
"small"
style=
"width:47%;"
@
change=
"resetSearch"
clear-icon=
"iconfont icon-guanbi"
>
</el-date-picker>
至
...
...
@@ -32,17 +32,16 @@
class=
"col-6 q-pb-lg"
emit-value
map-options
/>
</div>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
filled
v-model=
"msg.LessonName
"
label=
"试听课程名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
<q-input
@
input=
"resetSearch"
clearable
filled
v-model=
"msg.LessonName"
label=
"试听课程名称"
@
clear=
"resetSearch
"
maxlength=
"20"
/>
</div>
</div>
</div>
<reservelist
:data=
"dataList"
:authObj=
"authObj"
:loading=
"loading"
@
success=
"refreshPage"
></reservelist>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"PageCount"
:input=
"true"
@
input=
"changePage"
/>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"PageCount"
:input=
"true"
@
input=
"changePage"
/>
</div>
</template>
<
script
>
import
{
GetReserveClassPage
...
...
@@ -51,12 +50,10 @@
getTeacherDropDownList
,
queryClassRoomList
}
from
"../../api/school/index"
;
import
reservelist
from
'../../components/schedul/reservelist'
export
default
{
meta
:
{
title
:
"试听
课
管理"
title
:
"试听
班级
管理"
},
components
:
{
reservelist
...
...
@@ -71,16 +68,15 @@
EndClassDate
:
""
,
//结束时间
TeacherId
:
""
,
//教师编号
ClassRoomId
:
""
,
//教室编号
LessonName
:
''
//课程名称
LessonName
:
''
//课程名称
},
dataList
:
[],
loading
:
false
,
PageCount
:
0
,
TeacherList
:
[],
ClassRoomList
:
[],
authObj
:
{
isShowEdit
:
true
isShowEdit
:
true
}
}
},
...
...
@@ -107,9 +103,9 @@
},
//获取课程系列分页列表
getList
()
{
this
.
loading
=
true
;
this
.
loading
=
true
;
GetReserveClassPage
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
PageCount
=
res
.
Data
.
PageCount
;
...
...
src/pages/sale/studyOrder.vue
View file @
521493f2
...
...
@@ -108,7 +108,7 @@
import
orderlist
from
'../../components/sale/orderlist'
export
default
{
meta
:
{
title
:
"我的订单"
title
:
"我的
留学就业
订单"
},
components
:
{
myOrderForm
,
...
...
src/pages/sale/studyjob.vue
View file @
521493f2
...
...
@@ -198,7 +198,7 @@
export
default
{
meta
:
{
title
:
"留学
产品审核
"
title
:
"留学
就业产品
"
},
components
:
{
quotationstudyForm
,
...
...
src/pages/stuMan/classPlan.vue
View file @
521493f2
...
...
@@ -41,11 +41,13 @@
</el-select>
</div>
<div
class=
"col-2 yuyuezhuangtai"
style=
"width: 10%"
v-if=
"msg.ClassType==3"
>
<el-select
v-model=
"msg.AppointState"
style=
"width: 100%;"
placeholder=
"预约状态"
size=
"small"
@
change=
"getTypeWay()"
>
<el-select
v-model=
"msg.AppointState"
style=
"width: 100%;"
placeholder=
"预约状态"
size=
"small"
@
change=
"getTypeWay()"
>
<el-option
:key=
"0"
label=
"不限"
:value=
"0"
>
</el-option>
<el-option
:key=
"0"
label=
"待确认"
:value=
"1"
>
</el-option>
<el-option
:key=
"1"
label=
"已确认"
:value=
"2"
>
</el-option>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000;margin-right:61px; white-space:nowrap;"
>
<div
slot=
"prefix"
class=
"full-height flex items-center"
style=
"color: #000;margin-right:61px; white-space:nowrap;"
>
预约状态:
</div>
</el-select>
...
...
@@ -82,7 +84,7 @@
export
default
{
meta
:
{
title
:
"
教师课表
"
,
title
:
"
上课计划
"
,
},
components
:
{
classmateForm
,
...
...
@@ -106,7 +108,7 @@
TeacherId
:
0
,
ClassRoomId
:
0
,
ClassType
:
0
,
AppointState
:
0
,
AppointState
:
0
,
},
commonType
:
1
,
//1日历模式 2列表模式
typeName
:
"列表模式"
,
...
...
@@ -142,7 +144,7 @@
}
},
},
loading
:
false
,
loading
:
false
,
};
},
created
()
{
...
...
@@ -231,9 +233,9 @@
this
.
tabMsg
.
EndTime
=
this
.
msg
.
EndTime
;
this
.
tabMsg
.
ClassRoomId
=
this
.
msg
.
ClassRoomId
;
this
.
tabMsg
.
ClassType
=
this
.
msg
.
ClassType
;
this
.
loading
=
true
;
this
.
loading
=
true
;
GetClassPlanStatisticalPage
(
this
.
tabMsg
).
then
((
res
)
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
tableData
=
res
.
Data
.
PageData
;
this
.
PageCount
=
res
.
Data
.
PageCount
;
...
...
@@ -258,6 +260,7 @@
.xg
.el-input--prefix
.el-input__inner
{
padding-left
:
50px
;
}
.yuyuezhuangtai
.el-input--prefix
.el-input__inner
{
padding-left
:
60px
;
}
...
...
src/pages/stuMan/classRecord.vue
View file @
521493f2
...
...
@@ -64,7 +64,7 @@
import
changeClassForm
from
"../../components/teacher/changeClassForm.vue"
;
export
default
{
meta
:
{
title
:
"
我的课表
"
,
title
:
"
上课记录
"
,
},
components
:
{
classmateForm
,
...
...
src/pages/stuMan/studentManage.vue
View file @
521493f2
...
...
@@ -4,6 +4,7 @@
border
:
none
;
background-color
:
transparent
;
}
.studentManage
.el-input__inner
{
width
:
100%
;
border
:
none
;
...
...
@@ -20,7 +21,7 @@
</div>
<div
class=
"col-3"
>
<q-select
@
input=
"getClass"
standout=
"bg-primary text-white"
option-value=
"CourseId"
option-label=
"CourseName"
v-model=
"msg.CouseId"
:options=
"CourseList"
emit-value
map-options
label=
"课程"
use-input
v-model=
"msg.CouseId"
:options=
"CourseList"
emit-value
map-options
label=
"课程"
use-input
@
filter=
"filterCourse"
>
<template
v-slot:no-option
>
<q-item>
...
...
@@ -36,10 +37,9 @@
option-label=
"ClassName"
v-model=
"msg.ClassId"
:options=
"ClassList"
emit-value
map-options
label=
"班级"
use-input
@
filter=
"filterClass"
/>
</div>
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
>
<
template
v-slot:control
>
<q-field
filled
>
<
template
v-slot:control
>
<el-date-picker
v-model=
"msg.StartDate"
type=
"date"
placeholder=
"开始日期"
value-format=
"yyyy-MM-dd"
:picker-options=
"option"
:clearable=
'false'
@
change=
"resetSearch"
>
</el-date-picker>
...
...
@@ -60,8 +60,8 @@
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table sticky-right-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<
template
v-slot:top
=
"props"
>
<div
class=
"col-2 q-table__title"
>
学员管理
</div>
<
template
v-slot:top
>
<div
class=
"col-2 q-table__title"
>
学员
出勤
管理
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"导出"
@
click=
"getexport()"
/>
...
...
@@ -69,7 +69,7 @@
</
template
>
<
template
v-slot:body-cell-GuestName=
"props"
>
<q-td
:props=
"props"
style=
"padding-right:0px"
>
<div
v-for=
"
x in props.row.GuestList
"
>
<div
v-for=
"
(x,index) in props.row.GuestList"
:key=
"index
"
>
<div
class=
"border-bottom"
>
{{
x
.
GuestName
}}
</div>
...
...
@@ -81,7 +81,7 @@
</
template
>
<
template
v-slot:body-cell-CurrentDeductionHours=
"props"
>
<q-td
:props=
"props"
>
<div
v-for=
"
x in props.row.GuestList
"
>
<div
v-for=
"
(x,index) in props.row.GuestList"
:key=
"index
"
>
<div
class=
"border-bottom"
>
{{
x
.
CurrentDeductionHours
}}
</div>
...
...
@@ -93,7 +93,7 @@
</
template
>
<
template
v-slot:body-cell-CheckStatus=
"props"
>
<q-td
:props=
"props"
>
<div
v-for=
"
x in props.row.GuestList
"
>
<div
v-for=
"
(x,index) in props.row.GuestList"
:key=
"index
"
>
<div
class=
"border-bottom"
>
<span
v-if=
"x.CheckStatus == 0"
>
正常
</span>
<span
v-if=
"x.CheckStatus == 1"
>
缺席
</span>
...
...
@@ -111,7 +111,7 @@
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<div
v-for=
"
x in props.row.GuestList
"
>
<div
v-for=
"
(x,index) in props.row.GuestList"
:key=
"index
"
>
<div
class=
"border-bottom"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditCourse(x,props.row)"
/>
...
...
@@ -143,7 +143,6 @@
</template>
<
script
>
import
{
addClassCheck
}
from
'../../api/course/class'
;
import
{
...
...
@@ -167,15 +166,14 @@
}
from
'../../api/common/common'
;
export
default
{
meta
:
{
title
:
"学员管理"
title
:
"学员
出勤
管理"
},
components
:
{
selectTree
,
},
data
()
{
return
{
columns
:
[
{
columns
:
[{
name
:
"ClassName"
,
required
:
true
,
label
:
"班级"
,
...
...
@@ -456,7 +454,6 @@
},
}
};
</
script
>
<
style
scoped
>
.border-bottom
{
...
...
@@ -464,9 +461,7 @@
padding-bottom
:
5px
;
margin-bottom
:
5px
;
}
</
style
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
</
style
>
\ No newline at end of file
src/pages/stuMan/visitorRecord.vue
View file @
521493f2
...
...
@@ -12,8 +12,8 @@
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table sticky-right-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top
=
"props"
>
<div
class=
"col-2 q-table__title"
>
客户名单
</div>
<template
v-slot:top
>
<div
class=
"col-2 q-table__title"
>
访客管理
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"添加客户"
@
click=
"editVisitor(null)"
/>
...
...
@@ -121,7 +121,7 @@
import
appointForm
from
'../../components/schedul/appoint-form'
export
default
{
meta
:
{
title
:
"
客户名单
"
title
:
"
访客管理
"
},
components
:
{
schedulFanke
,
...
...
@@ -147,12 +147,6 @@
field
:
'Name'
,
align
:
'left'
},
// {
// name: 'Age',
// field: 'Age',
// label: '年龄',
// align: 'left',
// },
{
name
:
'Tel'
,
field
:
'Tel'
,
...
...
@@ -289,14 +283,14 @@
//关闭访客弹窗
closeVisitorForm
()
{
this
.
isShowVisitor
=
false
;
this
.
isShowVisitorCreate
=
false
;
this
.
isShowVisitorCreate
=
false
;
this
.
isShowDetail
=
false
;
},
//刷新页面
refreshPage
()
{
this
.
isShowVisitor
=
false
;
this
.
isShowDetail
=
false
;
this
.
isShowVisitorCreate
=
false
;
this
.
isShowVisitorCreate
=
false
;
this
.
getList
();
},
//打开约课
...
...
@@ -309,7 +303,6 @@
}
}
}
</
script
>
<
style
scoped
>
.border-bottom
{
...
...
@@ -317,9 +310,7 @@
padding-bottom
:
5px
;
margin-bottom
:
5px
;
}
</
style
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
</
style
>
\ No newline at end of file
src/pages/studyAbroad/common/type.vue
View file @
521493f2
...
...
@@ -54,7 +54,7 @@
import
typeForm
from
'../../../components/system/type-form'
export
default
{
meta
:
{
title
:
"
客户阶段管理
"
title
:
"
留学产品分类
"
},
components
:
{
typeForm
...
...
src/pages/studyAbroad/employment.vue
View file @
521493f2
...
...
@@ -3,8 +3,8 @@
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
filled
v-model=
"msg.Name"
label=
"项目名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
<q-input
@
input=
"resetSearch"
clearable
filled
v-model=
"msg.Name"
label=
"项目名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
<div
class=
"col-3"
>
<q-select
class=
"q-pb-lg q-pr-lg"
filled
stack-label
clearable
option-value=
"Id"
option-label=
"Name"
...
...
@@ -41,10 +41,6 @@
<q-btn
size=
"sm"
color=
"accent"
round
dense
@
click=
"props.row.expand = !props.row.expand"
:icon=
"props.row.expand ? 'remove' : 'add'"
/>
</q-td>
<!--
<q-td
key=
"ProductTypeName"
:props=
"props"
style=
"width:100px;"
>
{{
props
.
row
.
ProductTypeName
}}
</q-td>
-->
<q-td
key=
"Name"
:props=
"props"
style=
"width:100px;"
>
{{
props
.
row
.
Name
}}
</q-td>
...
...
@@ -66,9 +62,6 @@
</a>
</div>
</q-td>
<!-- <q-td key="StudyCountryName" :props="props">
{{props.row.StudyCountryName}}
</q-td> -->
<q-td
key=
"SchoolName"
:props=
"props"
>
{{props.row.SchoolName}}
</q-td>
...
...
@@ -290,7 +283,6 @@
queryCountryList
}
from
'../../api/common/common'
import
studyAbroadForm
from
'../../components/studyAbroad/studyAbroad-form'
// import studyAbroadpriceForm from '../../components/studyAbroad/studyAbroadprice-form'
import
studyAbroadpriceForm
from
'../../components/studyAbroad/newstudyAbroadprice-form'
import
studyproauditinfoForm
from
'../../components/studyAbroad/studyproauditinfo-form'
import
{
...
...
@@ -298,7 +290,7 @@
}
from
"vuex"
;
export
default
{
meta
:
{
title
:
"就业
管理
"
title
:
"就业
产品
"
},
components
:
{
studyAbroadForm
,
...
...
@@ -326,12 +318,6 @@
field
:
'Remark'
,
align
:
'left'
},
// {
// name: 'ProductTypeName',
// label: '类型',
// field: 'ProductTypeName',
// align: 'left'
// },
{
name
:
'Name'
,
label
:
'项目名称'
,
...
...
src/pages/studyAbroad/studyType.vue
View file @
521493f2
...
...
@@ -9,6 +9,9 @@
<
script
>
import
type
from
"../studyAbroad/common/type"
;
export
default
{
meta
:
{
title
:
"留学产品分类"
},
components
:
{
type
},
...
...
src/pages/system/customneed.vue
View file @
521493f2
<
template
>
<div
class=
"page-body"
>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top
>
<div
class=
"col-2 q-table__title"
>
客户需求
</div>
<q-space
/>
<div
class=
"page-option"
>
...
...
@@ -31,7 +30,6 @@
</customneed-form>
</div>
</template>
<
script
>
import
{
GetNeedsPage
,
...
...
@@ -40,7 +38,7 @@
import
customneedForm
from
'../../components/system/customneed-form'
export
default
{
meta
:
{
title
:
"客户需求"
title
:
"客户需求
管理
"
},
components
:
{
customneedForm
...
...
@@ -48,39 +46,38 @@
data
()
{
return
{
columns
:
[{
name
:
'Id'
,
label
:
'Id'
,
field
:
row
=>
row
.
Id
,
align
:
'left'
},{
name
:
'Name'
,
label
:
'需求'
,
field
:
'Name'
,
align
:
'left'
},{
name
:
'CreateByName'
,
label
:
'创建人'
,
align
:
'left'
,
field
:
'CreateByName'
},{
name
:
'CreateTime'
,
label
:
'创建时间'
,
align
:
'left'
,
field
:
'CreateTime'
},{
name
:
'Group_Id'
,
label
:
'操作'
,
field
:
'Group_Id'
}
],
msg
:{
pageIndex
:
1
,
pageSize
:
12
,
Name
:
""
,
name
:
'Id'
,
label
:
'Id'
,
field
:
row
=>
row
.
Id
,
align
:
'left'
},
{
name
:
'Name'
,
label
:
'需求'
,
field
:
'Name'
,
align
:
'left'
},
{
name
:
'CreateByName'
,
label
:
'创建人'
,
align
:
'left'
,
field
:
'CreateByName'
},
{
name
:
'CreateTime'
,
label
:
'创建时间'
,
align
:
'left'
,
field
:
'CreateTime'
},
{
name
:
'Group_Id'
,
label
:
'操作'
,
field
:
'Group_Id'
}],
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
Name
:
""
,
rowsPerPage
:
12
},
dataList
:
[],
pageCount
:
0
,
pageCount
:
0
,
loading
:
true
,
isShowNeedForm
:
false
,
customObj
:
{}
...
...
@@ -127,7 +124,7 @@
this
.
loading
=
true
;
GetNeedsPage
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
}
...
...
@@ -136,10 +133,10 @@
closestageForm
()
{
this
.
isShowNeedForm
=
false
},
refreshPage
(){
refreshPage
()
{
this
.
getList
();
},
addObj
(
obj
){
addObj
(
obj
)
{
if
(
obj
)
{
this
.
customObj
=
obj
}
else
{
...
...
@@ -149,10 +146,7 @@
}
},
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
</
style
>
\ No newline at end of file
src/pages/system/stage.vue
View file @
521493f2
...
...
@@ -4,7 +4,7 @@
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table no-bottom-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top
=
"props"
>
<template
v-slot:top
>
<div
class=
"col-2 q-table__title"
>
客户阶段
</div>
<q-space
/>
<div
class=
"page-option"
>
...
...
@@ -27,7 +27,6 @@
</stage-form>
</div>
</template>
<
script
>
import
{
GetStageList
,
...
...
src/pages/system/stuDistributionRule.vue
View file @
521493f2
...
...
@@ -8,23 +8,12 @@
</div>
<div
class=
"q-mb-md row"
>
<div
class=
"col"
>
<q-btn
outline
color=
"primary"
class=
"q-px-lg"
@
click=
"outerVisible = true"
>
选择部门/成员
</q-btn
>
<q-btn
outline
color=
"primary"
class=
"q-px-lg"
@
click=
"outerVisible = true"
>
选择部门/成员
</q-btn>
</div>
<div
class=
"col"
>
已选择:
{{
chosenUser
.
length
}}
人
</div>
</div>
<div
class=
"q-mb-xl"
>
<q-badge
color=
"primary"
class=
"q-mr-md"
v-for=
"(x, i) in chosenUser"
:key=
"i"
>
<q-badge
color=
"primary"
class=
"q-mr-md"
v-for=
"(x, i) in chosenUser"
:key=
"i"
>
{{
x
.
DeptName
}}
</q-badge>
</div>
...
...
@@ -36,127 +25,128 @@
<q-radio
v-model=
"ruleType"
val=
"1"
label=
"随机分配"
/>
</div>
</div>
<q-btn
class=
"q-mt-xl q-px-lg"
unelevated
color=
"primary"
:loading=
"saving"
@
click=
"saveHandler"
>
立即保存
</q-btn
>
<q-btn
class=
"q-mt-xl q-px-lg"
unelevated
color=
"primary"
:loading=
"saving"
@
click=
"saveHandler"
>
立即保存
</q-btn>
</q-card>
<choiceapproval
v-if=
"outerVisible"
@
close=
"getclose()"
@
success=
"getsuccess2"
:byval=
"chosenUser"
cptype=
"0"
></choiceapproval>
<choiceapproval
v-if=
"outerVisible"
@
close=
"getclose()"
@
success=
"getsuccess2"
:byval=
"chosenUser"
cptype=
"0"
>
</choiceapproval>
</div>
</
template
>
<
script
>
import
choiceapproval
from
"../../components/enterprise/choiceapproval"
;
import
{
getDictValueList
}
from
"../../api/administration/administration"
;
import
{
saveDict
}
from
"../../api/system/notiveSysSet"
;
export
default
{
components
:
{
choiceapproval
},
data
()
{
return
{
chosenUser
:
[],
outerVisible
:
false
,
ruleType
:
"0"
,
saving
:
false
,
loading
:
true
,
dictObjEmp
:
{},
dictObjRule
:
{}
};
},
created
()
{
this
.
init
();
},
methods
:
{
getclose
()
{
// 企业关闭
this
.
ismember
=
false
;
this
.
outerVisible
=
false
;
import
choiceapproval
from
"../../components/enterprise/choiceapproval"
;
import
{
getDictValueList
}
from
"../../api/administration/administration"
;
import
{
saveDict
}
from
"../../api/system/notiveSysSet"
;
export
default
{
meta
:
{
title
:
"语培客户分配规则"
},
getsuccess2
(
list
,
type
)
{
this
.
chosenUser
=
list
;
this
.
outerVisible
=
false
;
components
:
{
choiceapproval
},
init
()
{
getDictValueList
({
Key
:
"PUSH_STU_UNION_EMP"
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
dictObjEmp
=
res
.
Data
[
0
];
if
(
res
.
Data
[
0
].
Content
!=
""
&&
res
.
Data
[
0
].
Content
!=
null
)
{
let
tempVal
=
res
.
Data
[
0
].
Content
.
split
(
","
);
let
tempLabel
=
res
.
Data
[
0
].
Mask
.
split
(
","
);
tempVal
.
forEach
((
x
,
i
)
=>
{
let
temp
=
{
DeptId
:
x
,
DeptName
:
tempLabel
[
i
]
};
this
.
chosenUser
.
push
(
temp
);
data
()
{
return
{
chosenUser
:
[],
outerVisible
:
false
,
ruleType
:
"0"
,
saving
:
false
,
loading
:
true
,
dictObjEmp
:
{},
dictObjRule
:
{}
};
},
created
()
{
this
.
init
();
},
methods
:
{
getclose
()
{
// 企业关闭
this
.
ismember
=
false
;
this
.
outerVisible
=
false
;
},
getsuccess2
(
list
,
type
)
{
this
.
chosenUser
=
list
;
this
.
outerVisible
=
false
;
},
init
()
{
getDictValueList
({
Key
:
"PUSH_STU_UNION_EMP"
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
dictObjEmp
=
res
.
Data
[
0
];
if
(
res
.
Data
[
0
].
Content
!=
""
&&
res
.
Data
[
0
].
Content
!=
null
)
{
let
tempVal
=
res
.
Data
[
0
].
Content
.
split
(
","
);
let
tempLabel
=
res
.
Data
[
0
].
Mask
.
split
(
","
);
tempVal
.
forEach
((
x
,
i
)
=>
{
let
temp
=
{
DeptId
:
x
,
DeptName
:
tempLabel
[
i
]
};
this
.
chosenUser
.
push
(
temp
);
});
}
getDictValueList
({
Key
:
"PUSH_STU_RULETYPE"
}).
then
(
r
=>
{
this
.
dictObjRule
=
r
.
Data
[
0
];
if
(
r
.
Code
==
1
)
{
if
(
r
.
Data
[
0
].
Content
!=
""
&&
res
.
Data
[
0
].
Content
!=
null
)
{
this
.
ruleType
=
r
.
Data
[
0
].
Content
;
}
}
this
.
loading
=
false
;
});
}
getDictValueList
({
Key
:
"PUSH_STU_RULETYPE"
}).
then
(
r
=>
{
this
.
dictObjRule
=
r
.
Data
[
0
];
});
},
saveHandler
()
{
if
(
this
.
chosenUser
.
length
>
0
)
{
this
.
saving
=
true
;
let
contentTemp
=
""
;
let
maskTemp
=
""
;
this
.
chosenUser
.
forEach
(
x
=>
{
contentTemp
+=
","
+
x
.
DeptId
;
maskTemp
+=
","
+
x
.
DeptName
;
});
this
.
dictObjEmp
.
Content
=
contentTemp
.
substring
(
1
);
this
.
dictObjEmp
.
Mask
=
maskTemp
.
substring
(
1
);
saveDict
(
this
.
dictObjEmp
).
then
(
r
=>
{
if
(
r
.
Code
==
1
)
{
if
(
r
.
Data
[
0
].
Content
!=
""
&&
res
.
Data
[
0
].
Content
!=
null
)
{
this
.
ruleType
=
r
.
Data
[
0
].
Content
;
}
setTimeout
(()
=>
{
this
.
dictObjRule
.
Content
=
this
.
ruleType
;
saveDict
(
this
.
dictObjRule
).
then
(
res
=>
{
if
(
r
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"数据保存成功!"
,
position
:
"top"
});
}
this
.
saving
=
false
;
});
},
1000
);
}
else
{
this
.
saving
=
false
;
}
this
.
loading
=
false
;
});
}
else
{
this
.
$q
.
notify
({
icon
:
""
,
color
:
"negative"
,
timeout
:
2000
,
message
:
"请选择适用的部门成员"
,
position
:
"top"
});
}
});
},
saveHandler
()
{
if
(
this
.
chosenUser
.
length
>
0
)
{
this
.
saving
=
true
;
let
contentTemp
=
""
;
let
maskTemp
=
""
;
this
.
chosenUser
.
forEach
(
x
=>
{
contentTemp
+=
","
+
x
.
DeptId
;
maskTemp
+=
","
+
x
.
DeptName
;
});
this
.
dictObjEmp
.
Content
=
contentTemp
.
substring
(
1
);
this
.
dictObjEmp
.
Mask
=
maskTemp
.
substring
(
1
);
saveDict
(
this
.
dictObjEmp
).
then
(
r
=>
{
if
(
r
.
Code
==
1
)
{
setTimeout
(()
=>
{
this
.
dictObjRule
.
Content
=
this
.
ruleType
;
saveDict
(
this
.
dictObjRule
).
then
(
res
=>
{
if
(
r
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"数据保存成功!"
,
position
:
"top"
});
}
this
.
saving
=
false
;
});
},
1000
);
}
else
{
this
.
saving
=
false
;
}
});
}
else
{
this
.
$q
.
notify
({
icon
:
""
,
color
:
"negative"
,
timeout
:
2000
,
message
:
"请选择适用的部门成员"
,
position
:
"top"
});
}
}
}
};
};
</
script
>
<
style
></
style
>
<
style
></
style
>
\ No newline at end of file
src/pages/system/stuFlow.vue
View file @
521493f2
...
...
@@ -35,7 +35,6 @@
</flow-form>
</div>
</template>
<
script
>
import
{
GetStudentAdvisorConfigPage
,
...
...
@@ -44,7 +43,7 @@
import
flowForm
from
'../../components/system/flow-form'
export
default
{
meta
:
{
title
:
"
客户阶段
管理"
title
:
"
跟进状态
管理"
},
components
:
{
flowForm
...
...
@@ -52,38 +51,39 @@
data
()
{
return
{
columns
:
[{
name
:
'Name'
,
label
:
'名称'
,
field
:
'Name'
,
align
:
'left'
},
{
name
:
'Num'
,
label
:
'排序'
,
field
:
'Num'
,
align
:
'left'
},
{
name
:
'Rate'
,
label
:
'胜率'
,
field
:
'Rate'
,
align
:
'left'
},
{
name
:
'CreateByName'
,
label
:
'创建人'
,
field
:
'CreateByName'
,
align
:
'left'
},
{
name
:
'CreateTimeStr'
,
label
:
'创建时间'
,
field
:
'CreateTimeStr'
,
align
:
'left'
},
{
name
:
'Id'
,
label
:
'操作'
,
field
:
'Id'
}],
name
:
'Name'
,
label
:
'名称'
,
field
:
'Name'
,
align
:
'left'
},
{
name
:
'Num'
,
label
:
'排序'
,
field
:
'Num'
,
align
:
'left'
},
{
name
:
'Rate'
,
label
:
'胜率'
,
field
:
'Rate'
,
align
:
'left'
},
{
name
:
'CreateByName'
,
label
:
'创建人'
,
field
:
'CreateByName'
,
align
:
'left'
},
{
name
:
'CreateTimeStr'
,
label
:
'创建时间'
,
field
:
'CreateTimeStr'
,
align
:
'left'
},
{
name
:
'Id'
,
label
:
'操作'
,
field
:
'Id'
}
],
dataList
:
[],
loading
:
true
,
isShowFlowForm
:
false
,
...
...
src/pages/system/stuManageConfig.vue
View file @
521493f2
<
template
>
<div
class=
"page-body"
>
<q-tabs
v-model=
"tabCheck"
narrow-indicator
dense
align=
"left"
class=
"text-primary q-mb-sm"
>
<q-tabs
v-model=
"tabCheck"
narrow-indicator
dense
align=
"left"
class=
"text-primary q-mb-sm"
>
<q-tab
:ripple=
"false"
:name=
"1"
label=
"客户阶段"
/>
<q-tab
:ripple=
"false"
:name=
"2"
label=
"客户类型"
/>
<q-tab
:ripple=
"false"
:name=
"3"
label=
"学习目的"
/>
...
...
@@ -29,31 +23,34 @@
</div>
</
template
>
<
script
>
import
stage
from
"./stage"
;
import
cusType
from
"./customType"
;
import
aim
from
"./studyAim"
;
import
channel
from
"./stuReceiveChannel"
;
import
customneed
from
"./customneed"
;
import
stuDistributionRule
from
"./stuDistributionRule"
;
import
stuTarget
from
"./stuTarget"
;
import
stuFlow
from
"./stuFlow"
;
import
stuAbroad
from
"./stuAbroad"
;
export
default
{
components
:
{
stage
,
cusType
,
aim
,
channel
,
customneed
,
stuDistributionRule
,
stuTarget
,
stuFlow
,
stuAbroad
},
data
()
{
return
{
tabCheck
:
1
};
}
};
</
script
>
import
stage
from
"./stage"
;
import
cusType
from
"./customType"
;
import
aim
from
"./studyAim"
;
import
channel
from
"./stuReceiveChannel"
;
import
customneed
from
"./customneed"
;
import
stuDistributionRule
from
"./stuDistributionRule"
;
import
stuTarget
from
"./stuTarget"
;
import
stuFlow
from
"./stuFlow"
;
import
stuAbroad
from
"./stuAbroad"
;
export
default
{
meta
:
{
title
:
"留学客户分配规则"
},
components
:
{
stage
,
cusType
,
aim
,
channel
,
customneed
,
stuDistributionRule
,
stuTarget
,
stuFlow
,
stuAbroad
},
data
()
{
return
{
tabCheck
:
1
};
}
};
</
script
>
\ No newline at end of file
src/pages/system/stuReceiveChannel.vue
View file @
521493f2
...
...
@@ -5,7 +5,7 @@
</div>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top
=
"props"
>
<template
v-slot:top
>
<div
class=
"col-2 q-table__title"
>
收客渠道
</div>
<q-space
/>
<div
class=
"page-option"
>
...
...
@@ -14,7 +14,8 @@
</
template
>
<
template
v-slot:body-cell-StaticTypeList=
"props"
>
<q-td
:props=
"props"
>
<q-chip
v-for=
"(item,index) in props.row.StaticTypeList"
color=
"primary"
text-color=
"white"
size=
"sm"
:key=
"index"
>
<q-chip
v-for=
"(item,index) in props.row.StaticTypeList"
color=
"primary"
text-color=
"white"
size=
"sm"
:key=
"index"
>
<span
v-if=
"item==1"
>
普通员工统计
</span>
<span
v-if=
"item==2"
>
主管统计
</span>
</q-chip>
...
...
@@ -46,6 +47,9 @@
}
from
"../../api/system/index"
;
import
stuReceiveChannelForm
from
"../../components/system/stuReceiveChannel-form"
;
export
default
{
meta
:
{
title
:
"收客渠道管理"
},
components
:
{
stuReceiveChannelForm
},
...
...
@@ -156,5 +160,4 @@
this
.
getList
();
}
};
</
script
>
</
script
>
\ No newline at end of file
src/pages/system/studyAim.vue
View file @
521493f2
<
template
>
<div>
<div
class=
"row q-my-sm"
>
<q-input
filled
v-model=
"msg.Name"
dense
label=
"学习目的"
class=
"col-3"
@
input=
"refreshPage"
/>
<q-input
filled
v-model=
"msg.Name"
dense
label=
"学习目的"
class=
"col-3"
@
input=
"refreshPage"
/>
</div>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top
>
<div
class=
"col-2 q-table__title"
>
学习目的
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"新增"
@
click=
"showForm(null)"
/>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"新增"
@
click=
"showForm(null)"
/>
</div>
</
template
>
<
template
v-slot:body-cell-Group_Id=
"props"
>
<q-td
:props=
"props"
>
<div>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"showForm(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"delete"
color=
"negative"
class=
"q-mr-xs"
label=
"删除"
@
click=
"del(props.row.Id)"
/>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"showForm(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"delete"
color=
"negative"
class=
"q-mr-xs"
label=
"删除"
@
click=
"del(props.row.Id)"
/>
</div>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
:max=
"pageCount"
input
color=
"primary"
@
input=
"changePage"
/>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
:max=
"pageCount"
input
color=
"primary"
@
input=
"changePage"
/>
</
template
>
</q-table>
<studyAimForm
v-if=
"showStudyAimForm"
@
success=
"refreshPage"
@
close=
"closeForm"
:row=
"row"
></studyAimForm>
<studyAimForm
v-if=
"showStudyAimForm"
@
success=
"refreshPage"
@
close=
"closeForm"
:row=
"row"
></studyAimForm>
</div>
</template>
<
script
>
import
{
GetLearningGoalsPage
,
RemoveLearningGoals
}
from
"../../api/system/index"
;
import
studyAimForm
from
"../../components/system/studyAim-form"
;
export
default
{
components
:
{
studyAimForm
},
data
()
{
return
{
showStudyAimForm
:
false
,
columns
:
[
{
name
:
"Id"
,
label
:
"Id"
,
field
:
"Id"
,
align
:
"left"
},
{
name
:
"Name"
,
label
:
"学习目的"
,
align
:
"left"
,
field
:
"Name"
},
{
name
:
"CreateByName"
,
label
:
"创建人"
,
align
:
"left"
,
field
:
"CreateByName"
},
{
name
:
"CreateTime"
,
label
:
"创建时间"
,
align
:
"left"
,
field
:
"CreateTime"
},
{
name
:
"Group_Id"
,
label
:
"操作"
,
field
:
"Group_Id"
}
],
msg
:
{
rowsPerPage
:
12
,
pageIndex
:
1
,
pageSize
:
12
,
Name
:
""
},
dataList
:
[],
pageCount
:
0
,
loading
:
false
,
isShowStageForm
:
false
,
row
:
{}
};
},
methods
:
{
getList
()
{
GetLearningGoalsPage
(
this
.
msg
).
then
(
res
=>
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
});
import
{
GetLearningGoalsPage
,
RemoveLearningGoals
}
from
"../../api/system/index"
;
import
studyAimForm
from
"../../components/system/studyAim-form"
;
export
default
{
meta
:
{
title
:
"学习目的管理"
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
components
:
{
studyAimForm
},
refreshPage
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
showForm
(
row
)
{
this
.
showStudyAimForm
=
true
;
this
.
row
=
row
;
},
closeForm
()
{
this
.
showStudyAimForm
=
false
;
},
del
(
Id
)
{
let
delMsg
=
{
Id
:
Id
data
()
{
return
{
showStudyAimForm
:
false
,
columns
:
[{
name
:
"Id"
,
label
:
"Id"
,
field
:
"Id"
,
align
:
"left"
},
{
name
:
"Name"
,
label
:
"学习目的"
,
align
:
"left"
,
field
:
"Name"
},
{
name
:
"CreateByName"
,
label
:
"创建人"
,
align
:
"left"
,
field
:
"CreateByName"
},
{
name
:
"CreateTime"
,
label
:
"创建时间"
,
align
:
"left"
,
field
:
"CreateTime"
},
{
name
:
"Group_Id"
,
label
:
"操作"
,
field
:
"Group_Id"
}
],
msg
:
{
rowsPerPage
:
12
,
pageIndex
:
1
,
pageSize
:
12
,
Name
:
""
},
dataList
:
[],
pageCount
:
0
,
loading
:
false
,
isShowStageForm
:
false
,
row
:
{}
};
this
.
$q
.
dialog
({
title
:
"提示信息"
,
message
:
"是否确认删除?"
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
})
.
onOk
(()
=>
{
RemoveLearningGoals
(
delMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"删除成功!"
,
position
:
"top"
});
this
.
getList
();
}
});
},
methods
:
{
getList
()
{
GetLearningGoalsPage
(
this
.
msg
).
then
(
res
=>
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
});
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
refreshPage
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
showForm
(
row
)
{
this
.
showStudyAimForm
=
true
;
this
.
row
=
row
;
},
closeForm
()
{
this
.
showStudyAimForm
=
false
;
},
del
(
Id
)
{
let
delMsg
=
{
Id
:
Id
};
this
.
$q
.
dialog
({
title
:
"提示信息"
,
message
:
"是否确认删除?"
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
})
.
onOk
(()
=>
{
RemoveLearningGoals
(
delMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"删除成功!"
,
position
:
"top"
});
this
.
getList
();
}
});
});
}
},
created
()
{
this
.
getList
();
}
},
created
()
{
this
.
getList
();
}
};
</
script
>
};
</
script
>
\ No newline at end of file
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