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
38fc8ddb
Commit
38fc8ddb
authored
Jun 20, 2023
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
业绩提成规则 新增部门有效到访奖励
parent
8682cff8
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
237 additions
and
57 deletions
+237
-57
marketCommissionfrom.vue
src/components/finance/marketCommissionfrom.vue
+127
-21
stulist.vue
src/components/school/student/stulist.vue
+11
-5
AchievementsUserDetailList.vue
src/pages/financial/market/AchievementsUserDetailList.vue
+25
-8
commissionRule.vue
src/pages/financial/market/commissionRule.vue
+30
-11
marketStatistics.vue
src/pages/financial/market/marketStatistics.vue
+24
-7
mystu.vue
src/pages/sale/mystu.vue
+4
-2
student.vue
src/pages/school/student.vue
+16
-3
No files found.
src/components/finance/marketCommissionfrom.vue
View file @
38fc8ddb
...
...
@@ -155,7 +155,10 @@
<q-radio
v-model=
"addMsg.SendType"
val=
"1"
label=
"业绩比例"
/>
<q-radio
v-model=
"addMsg.SendType"
val=
"2"
label=
"固定金额"
/>
</div>
<div
style=
"margin-bottom: 80px;"
v-if=
"addMsg.SendType=='1'"
>
<!-- style="margin-bottom: 80px;" -->
<div
v-if=
"addMsg.SendType=='1'"
:style=
"
{'margin-bottom': addMsg.Type==1
&&
addMsg.ChildEmpList
&&
addMsg.ChildEmpList.length>0?'0':'80px'}">
<div>
业绩比例
</div>
<div
...
...
@@ -210,7 +213,9 @@
/>
</div>
</div>
<div
style=
"margin-bottom: 80px;"
v-if=
"addMsg.SendType=='2'"
>
<div
v-if=
"addMsg.SendType=='2'"
:style=
"
{'margin-bottom': addMsg.Type==1
&&
addMsg.ChildEmpList
&&
addMsg.ChildEmpList.length>0?'0':'80px'}">
<div>
固定金额
</div>
<div
style=
"display: flex;align-items: center;margin-bottom: 10px;"
>
...
...
@@ -242,6 +247,69 @@
<span
class=
"fz14 text-negative"
>
注释:额外奖励需确认邀约咨询30分钟以上
</span>
</div>
</div>
</div>
<div
v-if=
"addMsg.Type==1&&addMsg.ChildEmpList&&addMsg.ChildEmpList.length>0"
:style=
"{'margin-bottom': addMsg.EnableZGAward==0?'80px':''}"
>
<q-toggle
v-model=
"addMsg.EnableZGAward"
label=
"是否启用部门有效到访奖励"
left-label
false-value=
"0"
true-value=
"1"
/>
</div>
<div
style=
"margin-bottom: 80px;"
v-if=
"addMsg.EnableZGAward==1"
>
<div>
有效到访奖励阶梯列表
</div>
<div
v-for=
"(x,y) in addMsg.ZGAwardList"
:key=
"y"
style=
"display: flex;align-items: center;margin-bottom: 10px;"
>
<q-input
clearable
filled
v-model=
"x.StartValue"
style=
"width: 190px;margin-right: 5px;"
type=
"number"
@
input=
"$forceUpdate()"
label=
"初始值"
/>
<q-input
clearable
filled
v-model=
"x.EndValue"
style=
"width: 190px;margin-right: 5px;"
type=
"number"
@
input=
"$forceUpdate()"
label=
"结束值"
/>
<q-input
clearable
filled
v-model=
"x.Rate"
style=
"width: 190px;margin-right: 5px;"
type=
"number"
@
input=
"$forceUpdate()"
label=
"提成金额"
/>
<q-btn
round
size=
"xs"
color=
"deep-orange"
icon=
"delete"
v-if=
"addMsg.ZGAwardList.length > 1"
@
click=
"addMsg.ZGAwardList.splice(y, 1)"
style=
"margin-left: 10px;"
/>
<q-btn
round
size=
"xs"
color=
"primary"
icon=
"add"
v-if=
"addMsg.ZGAwardList.length == y + 1"
@
click=
"addMsg.ZGAwardList.push({ StartValue: '', EndValue: '', Rate: '' })"
style=
"margin-left: 10px;"
/>
</div>
</div>
<div
style=
"width: 100%;height: 50px;position: absolute;left: 0;bottom: 0;background: #FFF;display: flex;align-items: center;padding: 0 20px;justify-content: flex-end;"
>
<q-btn
...
...
@@ -328,7 +396,11 @@ export default {
],
SendType
:
'1'
,
PeopleMoney
:
0
,
ExtraMoney
:
0
ExtraMoney
:
0
,
EnableZGAward
:
'0'
,
ZGAwardList
:
[
{
StartValue
:
''
,
EndValue
:
''
,
Rate
:
''
}
],
}
}
else
{
//修改
this
.
addMsg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
selectData
))
...
...
@@ -341,7 +413,7 @@ export default {
this
.
addMsg
.
SendType
=
this
.
addMsg
.
SendType
?
String
(
this
.
addMsg
.
SendType
):
'1'
this
.
addMsg
.
PeopleMoney
=
this
.
addMsg
.
PeopleMoney
?
this
.
addMsg
.
PeopleMoney
:
0
this
.
addMsg
.
ExtraMoney
=
this
.
addMsg
.
ExtraMoney
?
this
.
addMsg
.
ExtraMoney
:
0
this
.
addMsg
.
EnableZGAward
=
this
.
addMsg
.
EnableZGAward
?
String
(
this
.
addMsg
.
EnableZGAward
):
'0'
if
(
this
.
addMsg
.
EmpList
.
length
==
this
.
employeeList
.
length
){
this
.
personnel
=
true
}
else
{
...
...
@@ -356,6 +428,9 @@ export default {
if
(
this
.
addMsg
.
RateList
.
length
==
0
){
this
.
addMsg
.
RateList
.
push
({
StartValue
:
''
,
EndValue
:
''
,
Rate
:
''
})
}
if
(
this
.
addMsg
.
ZGAwardList
&&
this
.
addMsg
.
ZGAwardList
.
length
==
0
&&
this
.
addMsg
.
EnableZGAward
){
this
.
addMsg
.
ZGAwardList
.
push
({
StartValue
:
''
,
EndValue
:
''
,
Rate
:
''
})
}
}
},
...
...
@@ -453,7 +528,35 @@ export default {
if
(
x
.
StartValue
===
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请输入初始值`
,
message
:
`请输入业绩比例初始值`
,
position
:
'top'
})
return
}
if
(
x
.
EndValue
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请输入业绩比例结束值`
,
position
:
'top'
})
return
}
if
(
x
.
Rate
<
0
){
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请输入业绩比例不小于0的提成比例`
,
position
:
'top'
})
return
}
}
if
(
msg
.
EnableZGAward
==
'1'
){
for
(
let
i
=
0
;
i
<
msg
.
ZGAwardList
.
length
;
i
++
){
let
x
=
msg
.
ZGAwardList
[
i
]
if
(
x
.
StartValue
===
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请输入有效到访奖励初始值`
,
position
:
'top'
})
return
...
...
@@ -461,7 +564,7 @@ export default {
if
(
x
.
EndValue
==
''
){
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请输入
结束值`
,
message
:
`请输入有效到访奖励
结束值`
,
position
:
'top'
})
return
...
...
@@ -469,12 +572,15 @@ export default {
if
(
x
.
Rate
<
0
){
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请输入
不小于0的提成比例`
,
message
:
`请输入有效到访奖励
不小于0的提成比例`
,
position
:
'top'
})
return
}
}
}
else
{
msg
.
ZGAwardList
=
[]
}
this
.
$emit
(
'success'
,
msg
)
}
},
...
...
src/components/school/student/stulist.vue
View file @
38fc8ddb
...
...
@@ -63,7 +63,9 @@
:class="{ 'my-sticky-header-table': height != 'unset' }" separator="none" :data="dataList" :columns="columns"
row-key="StuId" hide-bottom>
<template
v-if=
"showHeader"
v-slot:top
>
<div
class=
"col-2 q-table__title"
>
学员信息
</div>
<div
class=
"col-2 q-table__title"
>
学员信息
<template
v-if=
"Count>0"
>
(共
{{
Count
}}
条)
</
template
>
</div>
<q-space
/>
<div
class=
"page-option"
v-if=
"!pushMode"
>
<q-btn
color=
"accent"
v-if=
"IsTrasferAll()"
outline
class=
"q-mr-md"
size=
"sm"
icon=
"swap_horiz"
label=
"批量转交"
...
...
@@ -297,6 +299,10 @@
export
default
{
props
:
{
Count
:
{
type
:
Number
,
default
:
null
},
//数据列表
dataList
:
{
type
:
Array
,
...
...
src/pages/financial/market/AchievementsUserDetailList.vue
View file @
38fc8ddb
...
...
@@ -168,8 +168,11 @@
<div
v-if=
"scope.row.OrderId"
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goUrlorderList(scope.row.ClassType == -1 ?'/sale/studyOrderStatistics' : '/sale/orderStatistics', scope.row)"
>
{{
scope
.
row
.
OrderId
}}
</div>
@
click=
"goUrlorderList(scope.row.OrderId==-1?'/school/student'
:scope.row.OrderId!=-1&&scope.row.ClassType == -1 ?'/sale/studyOrderStatistics'
:scope.row.OrderId!=-1?'/sale/orderStatistics':'',
scope.row)"
>
{{
scope
.
row
.
OrderId
!=-
1
?
scope
.
row
.
OrderId
:
'有效到访奖励'
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"IssueNum"
label=
"发放次数"
width=
"94"
>
...
...
@@ -244,6 +247,7 @@
</div>
</template>
<
script
>
import
{
date
}
from
'quasar'
import
{
GetClassTypePageList
,
}
from
'../../../api/system/index'
;
...
...
@@ -294,7 +298,7 @@ export default {
created
()
{
},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
userId
)
{
this
.
msg
.
UserId
=
this
.
$route
.
query
.
userId
this
.
msg
.
UserId
=
Number
(
this
.
$route
.
query
.
userId
)
}
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
preriodId
)
{
this
.
msg
.
PeriodId
=
this
.
$route
.
query
.
preriodId
...
...
@@ -450,10 +454,23 @@ export default {
this
.
$router
.
go
(
-
1
);
},
goUrlorderList
(
path
,
row
)
{
//订单跳转
if
(
row
.
OrderId
!=-
1
){
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
// EnterID:row.UserId
});
}
else
{
// row.IsDept==2
let
newDate
=
row
.
Periods
.
split
(
'-'
)
let
MonthDayNum
=
new
Date
(
newDate
[
0
],
newDate
[
1
],
0
).
getDate
();
//计算当月的天数
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
startTime
:
row
.
Periods
+
'-01'
,
endTime
:
row
.
Periods
+
'-'
+
MonthDayNum
,
createBy
:
row
.
UserId
});
}
},
goUrlclass
(
path
,
Names
)
{
//班级
let
Name
=
encodeURI
(
Names
)
...
...
src/pages/financial/market/commissionRule.vue
View file @
38fc8ddb
...
...
@@ -214,6 +214,25 @@
<td
style=
"min-width: 220px;"
>
{{
item
.
ExtraMoney
}}
</td>
</tr>
</table>
<table
v-if=
"item.EnableZGAward=='1'"
class=
"po_content singeRowTable"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<td
rowspan=
"2"
width=
"100"
style=
"min-width: 100px;"
>
有效到访奖励
</td>
<th
style=
"min-width: 220px;"
v-for=
"( son , sIndex ) in item.ZGAwardList"
:key=
"sIndex"
>
{{
son
.
StartValue
}}
<span>
{{
son
.
EndValue
&&
son
.
EndValue
!=-
1
?
'<=有效到访<'
:
'<有效到访'
}}
</span><span
v-if=
"son.EndValue && son.EndValue!=-1"
>
{{
son
.
EndValue
}}
</span></th>
</tr>
<tr
style=
""
>
<td
style=
"min-width: 220px;"
v-for=
"( son , sIndex ) in item.ZGAwardList"
:key=
"sIndex"
>
{{
son
.
Rate
}}
</td>
</tr>
</table>
</div>
</div>
...
...
src/pages/financial/market/marketStatistics.vue
View file @
38fc8ddb
...
...
@@ -135,9 +135,14 @@
</el-table-column>
<el-table-column
prop=
"OrderId"
label=
"订单号"
>
<
template
slot-scope=
"scope"
>
<div
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goUrlorderList(scope.row.ClassType == -1 ?'/sale/studyOrderStatistics' : '/sale/orderStatistics',scope.row)"
>
{{
scope
.
row
.
OrderId
}}
</div>
<div
v-if=
"scope.row.OrderId"
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goUrlorderList(scope.row.OrderId==-1?'/school/student'
:scope.row.OrderId!=-1&&scope.row.ClassType == -1 ?'/sale/studyOrderStatistics'
:scope.row.OrderId!=-1?'/sale/orderStatistics':'',
scope.row)"
>
{{
scope
.
row
.
OrderId
!=-
1
?
scope
.
row
.
OrderId
:
'有效到访奖励'
}}
</div>
</
template
>
</el-table-column>
<el-table-column
width=
'130'
prop=
"TotalCommissionMoney"
label=
"订单发放信息"
>
...
...
@@ -467,9 +472,21 @@
});
},
goUrlorderList
(
path
,
row
)
{
//订单跳转
if
(
row
.
OrderId
!=-
1
){
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
});
}
else
{
// row.IsDept==2
let
newDate
=
row
.
Periods
.
split
(
'-'
)
let
MonthDayNum
=
new
Date
(
newDate
[
0
],
newDate
[
1
],
0
).
getDate
();
//计算当月的天数
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
startTime
:
row
.
Periods
+
'-01'
,
endTime
:
row
.
Periods
+
'-'
+
MonthDayNum
,
createBy
:
row
.
UserId
});
}
},
getmingxi
(
row
)
{
//明细
getSellAchievementsChangeLog
({
...
...
src/pages/sale/mystu.vue
View file @
38fc8ddb
...
...
@@ -79,7 +79,7 @@
</div>
<div
class=
"page-content"
>
<stulist
:dataList=
"data"
@
reload=
"getStudent"
@
success=
"refreshPage"
:loading=
"loading"
ref=
"stuList"
:isJudgeTrans=
"isJudgeTrans"
>
:isJudgeTrans=
"isJudgeTrans"
:Count=
"Count"
>
</stulist>
<div
class=
"row"
style=
"justify-content: flex-end;padding: 5px 20px"
>
<q-pagination
v-model=
"msg.pageIndex"
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
...
...
@@ -128,6 +128,7 @@
},
data
()
{
return
{
Count
:
0
,
currentUrl
:
""
,
data
:
[],
loading
:
true
,
...
...
@@ -348,6 +349,7 @@
this
.
loading
=
false
;
this
.
data
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
this
.
Count
=
res
.
Data
.
Count
this
.
data
.
forEach
(
x
=>
{
if
(
x
.
CreateBy
!=
this
.
userInfo
.
Id
)
{
x
.
BelongType
=
3
;
...
...
src/pages/school/student.vue
View file @
38fc8ddb
...
...
@@ -63,14 +63,19 @@
</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=
"渠道"
v-model=
"msg.StuChannel"
:options=
"channelList"
clearable
label=
"渠道"
class=
"col-6 q-pb-lg"
emit-value
map-options
/>
</div>
<div
class=
"col-3"
>
<q-select
filled
stack-label
option-value=
"Id"
@
input=
"resetSearch"
dense
option-label=
"Name"
v-model=
"msg.IsSureConsultTime"
:options=
"visitList"
clearable
label=
"有效到访"
class=
"col-6 q-pb-lg"
emit-value
map-options
/>
</div>
</div>
</div>
<div
class=
"page-content"
>
<stulist
:dataList=
"data"
@
success=
"refreshPage"
:loading=
"loading"
ref=
"stuList"
:authObj=
"AuthObj"
:queryMsg=
"msg"
>
:queryMsg=
"msg"
:Count=
"AuthObj.Count"
>
</stulist>
<div
class=
"row"
style=
"justify-content: flex-end;padding: 5px 20px"
>
<q-pagination
v-model=
"msg.pageIndex"
:max=
"pageCount"
@
input=
"changePage"
class=
"full-width justify-end"
...
...
@@ -139,6 +144,7 @@
CreateType
:
""
,
//来源类型
StuSourceId
:
""
,
//来源人编号
CategoryId
:
""
,
//同行编号
IsSureConsultTime
:
1
,
// 0不限 1有效到访 2无效到访
},
dateArray
:
[],
//日期数组
pageCount
:
0
,
...
...
@@ -149,8 +155,14 @@
customTypeList
:
[],
//客户类型
AuthObj
:
{
isShowDownload
:
true
,
Count
:
0
},
consultList
:
[],
visitList
:
[
{
Name
:
'不限'
,
Id
:
0
},
{
Name
:
'只看有效到访'
,
Id
:
1
},
{
Name
:
'只看无效到访'
,
Id
:
2
},
],
//渠道列表
channelList
:
[],
}
...
...
@@ -269,6 +281,7 @@
this
.
loading
=
false
;
this
.
data
=
res
.
Data
.
PageData
this
.
pageCount
=
res
.
Data
.
PageCount
this
.
AuthObj
.
Count
=
res
.
Data
.
Count
this
.
data
.
forEach
(
x
=>
{
if
(
x
.
CreateBy
!=
this
.
userInfo
.
Id
)
{
x
.
BelongType
=
3
;
...
...
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