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
59a07bee
Commit
59a07bee
authored
Sep 22, 2021
by
Mac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
54e4e7d9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
2029 additions
and
307 deletions
+2029
-307
index.js
src/api/finance/index.js
+98
-0
sale.js
src/api/sale/sale.js
+10
-0
orderlist.vue
src/components/sale/orderlist.vue
+49
-1
commissionDetail.vue
src/pages/financial/studyabroad/commissionDetail.vue
+228
-0
ordercommission.vue
src/pages/financial/studyabroad/ordercommission.vue
+320
-0
sBuserCommissionDetails.vue
src/pages/financial/studyabroad/sBuserCommissionDetails.vue
+319
-0
studyAbroadCommission.vue
src/pages/financial/studyabroad/studyAbroadCommission.vue
+401
-0
studyAbroadCommissionTJ.vue
src/pages/financial/studyabroad/studyAbroadCommissionTJ.vue
+409
-0
studyAbroadRules.vue
src/pages/financial/studyabroad/studyAbroadRules.vue
+167
-306
routes.js
src/router/routes.js
+28
-0
No files found.
src/api/finance/index.js
View file @
59a07bee
...
...
@@ -322,4 +322,102 @@ export function getActivityCommissionPeriodsList(data) {
});
}
// 获取留学提成规则
export
function
getSellStudyAbroadRuleList
(
data
)
{
return
request
({
url
:
'/SellCommission/GetSellStudyAbroadRuleList'
,
method
:
'post'
,
data
});
}
// 新增修改留学提成
export
function
setSellStudyAbroadRule
(
data
)
{
return
request
({
url
:
'/SellCommission/SetSellStudyAbroadRule'
,
method
:
'post'
,
data
});
}
// 新增修改留学提成
export
function
getSellStudyAbroadPeriodsPageList
(
data
)
{
return
request
({
url
:
'/SellCommission/GetSellStudyAbroadPeriodsPageList'
,
method
:
'post'
,
data
});
}
// 新增修改留学提成
export
function
getSellStudyAbroadUserList
(
data
)
{
return
request
({
url
:
'/SellCommission/GetSellStudyAbroadUserList'
,
method
:
'post'
,
data
});
}
// 获取留学销售提成明细列表
export
function
getSellStudyAbroadUserDetailList
(
data
)
{
return
request
({
url
:
'/SellCommission/GetSellStudyAbroadUserDetailList'
,
method
:
'post'
,
data
});
}
// 获取销售提成 - 订单跳转列表
export
function
getSellStudyAbroadForOrderList
(
data
)
{
return
request
({
url
:
'/SellCommission/GetSellStudyAbroadForOrderList'
,
method
:
'post'
,
data
});
}
// 获取留学提成统计
export
function
getSellStudyAbroadStatistics
(
data
)
{
return
request
({
url
:
'/SellCommission/GetSellStudyAbroadStatistics'
,
method
:
'post'
,
data
});
}
// 获取留学提成统计
export
function
getSellStudyAbroadPeriodsList
(
data
)
{
return
request
({
url
:
'/SellCommission/GetSellStudyAbroadPeriodsList'
,
method
:
'post'
,
data
});
}
// 生成留学提成
export
function
setSellStudyAbroadInfo
(
data
)
{
return
request
({
url
:
'/SellCommission/SetSellStudyAbroadInfo'
,
method
:
'post'
,
data
});
}
//获取提成发放人员
export
function
getSellStudyAbroadSendEmployeeList
(
data
)
{
return
request
({
url
:
'/SellCommission/GetSellStudyAbroadSendEmployeeList'
,
method
:
'post'
,
data
});
}
//设置已制单人员
export
function
setSellStudyAbroadSendEmployee
(
data
)
{
return
request
({
url
:
'/SellCommission/SetSellStudyAbroadSendEmployee'
,
method
:
'post'
,
data
});
}
src/api/sale/sale.js
View file @
59a07bee
...
...
@@ -367,3 +367,13 @@ export function regressSourceClass(data) {
data
})
}
// 留学订单确认完成
export
function
setStudyAboradOrderConfirm
(
data
)
{
return
request
({
url
:
'/SellCommission/SetStudyAboradOrderConfirm'
,
method
:
'post'
,
data
});
}
src/components/sale/orderlist.vue
View file @
59a07bee
...
...
@@ -332,6 +332,24 @@
</q-item-section>
</q-item>
</div>
<div
v-if=
"item.OrderType==2"
>
<q-item
clickable
v-close-popup
disabled
v-if=
"(item.DueInMoney&&item.DueInMoney!=0) "
>
<q-item-section>
<q-item-label>
订单确认
</q-item-label>
<q-tooltip
anchor=
"center left"
self=
"center right"
content-class=
"bg-red"
>
待收金额不为0,帐未平
</q-tooltip>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
v-else
>
<q-item-section
@
click=
"studyabroadorderconfirmation(item)"
>
<q-item-label>
订单确认
</q-item-label>
</q-item-section>
</q-item>
</div>
<q-item
clickable
v-close-popup
v-if=
"AuthorityObj.isShowBackClass"
>
<q-item-section>
<q-item-label
@
click=
"showBackClassForm(item)"
>
退课
</q-item-label>
...
...
@@ -931,6 +949,7 @@
setOrderHelpEnterId
,
//老师关联
cancelClassOrder
,
//取消订单
regressSourceClass
,
//拆分订单回到原班
setStudyAboradOrderConfirm
,
//留学订单确认
}
from
'../../api/sale/sale'
import
{
...
...
@@ -1613,7 +1632,36 @@
this
.
$emit
(
'success'
);
}
})
}
},
studyabroadorderconfirmation
(
item
){
//留学订单确认
console
.
log
(
item
)
let
that
=
this
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'<span style="color: var(--q-color-negative)">是否完成此订单</span>'
,
cancel
:
true
,
persistent
:
true
,
html
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
setStudyAboradOrderConfirm
({
OrderId
:
item
.
OrderId
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
//调用父页面成功方法
this
.
$emit
(
'success'
);
}
})
})
},
}
}
...
...
src/pages/financial/studyabroad/commissionDetail.vue
0 → 100644
View file @
59a07bee
<
style
>
.baseSet_Title
{
width
:
120px
!important
;
padding
:
18px
0
0
16px
;
text-align
:
right
;
}
.CommissionDetail
.border-bottom
{
/* border-bottom: 1px dashed #EEE; */
padding-bottom
:
5px
;
margin-bottom
:
5px
;
}
.CommissionDetail
.text-bottom
{
height
:
32px
;
line-height
:
32px
;
margin-bottom
:
10px
;
}
.CommissionDetail
._icon_btn
i
.icon-sousuo
{
background-color
:
#47BF8C
;
}
.CommissionDetail
._icon_btn
i
{
width
:
26px
;
height
:
26px
;
display
:
inline-block
;
color
:
white
!important
;
border-radius
:
50%
;
text-align
:
center
;
line-height
:
26px
;
margin-right
:
10px
;
cursor
:
pointer
;
outline
:
none
;
}
.CommissionDetail
.el-table
td
,
.el-table
th
{
padding
:
5px
0
;
}
</
style
>
<
template
>
<div
class=
"page-body CommissionDetail"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-btn
color=
"primary"
size=
"11px"
label=
"返回"
@
click=
"goreturn"
style=
"margin-left:10px"
/>
</div>
</div>
</div>
<template>
<el-table
ref=
"filterTable"
:data=
"tableData"
v-loading=
'loading'
:header-cell-style=
"
{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column
prop=
"SchoolName"
label=
"校区"
:filters=
'SchoolNamelist'
:filter-method=
"filterHandler"
>
</el-table-column>
<el-table-column
prop=
"DeptName"
label=
"部门"
:filters=
'DeptNamelist'
:filter-method=
"filterHandler"
>
</el-table-column>
<el-table-column
prop=
"UserName"
label=
"销售"
:filters=
'UserNamelist'
:filter-method=
"filterHandler"
>
</el-table-column>
<el-table-column
prop=
"StudentCount"
label=
"客人数量"
sortable
:sort-method=
"StudentCount"
>
</el-table-column>
<el-table-column
prop=
"CommissionMoney"
label=
"订单提成"
sortable
:sort-method=
"CommissionMoney"
>
</el-table-column>
<el-table-column
prop=
"OtherMoney"
label=
"额外奖励"
sortable
:sort-method=
"OtherMoney"
></el-table-column>
<el-table-column
prop=
"BackMoney"
label=
"额外扣除"
sortable
:sort-method=
"BackMoney"
></el-table-column>
<el-table-column
prop=
"FinalCommission"
label=
"最终提成"
sortable
:sort-method=
"FinalCommission"
>
</el-table-column>
<!--
<el-table-column
prop=
"Periods"
label=
"周期"
>
</el-table-column>
-->
<el-table-column
label=
"操作"
>
<template
slot-scope=
"scope"
>
<div
class=
"_icon_btn"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top"
>
<i
class=
"iconfont icon-sousuo"
@
click=
"goUrl('studyabroad/sBuserCommissionDetails',scope.row.UserId)"
></i>
</el-tooltip>
</div>
</
template
>
</el-table-column>
</el-table>
</template>
</div>
</template>
<
script
>
import
{
GetClassTypePageList
,
}
from
'../../../api/system/index'
;
import
{
getSellStudyAbroadUserList
,
}
from
'../../../api/finance/index'
import
{
getClassDropDownList
,
}
from
"../../../api/school/index"
;
export
default
{
meta
:
{
title
:
"销售提成详情"
},
props
:
{},
components
:
{},
data
()
{
return
{
loading
:
false
,
//列表数据参数
msg
:
{
PeriodId
:
0
,
UserId
:
0
,
SourceId
:
0
,
OrderId
:
''
,
School_Id
:
'-1'
,
},
pageCount
:
0
,
persistent
:
false
,
listData
:
{},
tableData
:
[],
company
:
[],
department
:
[],
see_tcdetailed
:
false
,
SchoolNamelist
:
[],
DeptNamelist
:
[],
UserNamelist
:
[],
}
},
created
()
{
let
userinfo
=
this
.
getLocalStorage
();
userinfo
.
ActionMenuList
.
map
(
x
=>
{
//判断权限
if
(
x
.
FunctionCode
==
"see_tcdetailed"
)
{
//判断是否可以查看其他明细
this
.
see_tcdetailed
=
true
;
}
})
if
(
this
.
see_tcdetailed
==
false
)
{
this
.
msg
.
UserId
=
userinfo
.
Id
}
},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
id
)
{
this
.
msg
.
PeriodId
=
this
.
$route
.
query
.
id
}
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
School_Id
)
{
this
.
msg
.
School_Id
=
this
.
$route
.
query
.
School_Id
}
this
.
getList
()
},
methods
:
{
getList
()
{
if
(
this
.
msg
)
this
.
loading
=
true
;
getSellStudyAbroadUserList
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
loading
=
false
;
this
.
tableData
=
res
.
Data
;
this
.
SchoolNamelist
=
[];
this
.
DeptNamelist
=
[];
this
.
UserNamelist
=
[];
this
.
tableData
.
forEach
(
x
=>
{
let
obj
=
{
text
:
x
.
SchoolName
,
value
:
x
.
SchoolName
}
let
obj2
=
{
text
:
x
.
DeptName
,
value
:
x
.
DeptName
}
let
obj3
=
{
text
:
x
.
UserName
,
value
:
x
.
UserName
}
this
.
SchoolNamelist
.
push
(
obj
)
this
.
DeptNamelist
.
push
(
obj2
)
this
.
UserNamelist
.
push
(
obj3
)
})
this
.
SchoolNamelist
=
this
.
unique
(
this
.
SchoolNamelist
)
this
.
DeptNamelist
=
this
.
unique
(
this
.
DeptNamelist
)
this
.
UserNamelist
=
this
.
unique
(
this
.
UserNamelist
)
}
})
},
unique
(
arr
,
Name
)
{
//数组去重
const
res
=
new
Map
();
return
arr
.
filter
(
(
list
)
=>
!
res
.
has
(
list
.
text
)
&&
res
.
set
(
list
.
text
,
1
)
);
},
goUrl
(
path
,
id
)
{
this
.
$router
.
push
({
path
:
'/financial/'
+
path
,
query
:
{
userId
:
id
,
preriodId
:
this
.
$route
.
query
.
id
,
blank
:
'y'
,
}
})
},
filterHandler
(
value
,
row
,
column
)
{
const
property
=
column
[
'property'
];
return
row
[
property
]
===
value
;
},
StudentCount
(
a
,
b
,
c
)
{
return
a
.
StudentCount
-
b
.
StudentCount
;
},
BackMoney
(
a
,
b
)
{
return
a
.
BackMoney
-
b
.
BackMoney
;
},
OtherMoney
(
a
,
b
)
{
return
a
.
OtherMoney
-
b
.
OtherMoney
;
},
CommissionMoney
(
a
,
b
)
{
return
a
.
CommissionMoney
-
b
.
CommissionMoney
;
},
FinalCommission
(
a
,
b
)
{
return
a
.
FinalCommission
-
b
.
FinalCommission
;
},
goreturn
()
{
this
.
$router
.
go
(
-
1
);
}
},
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
src/pages/financial/studyabroad/ordercommission.vue
0 → 100644
View file @
59a07bee
<
style
>
.baseSet_Title
{
width
:
120px
!important
;
padding
:
18px
0
0
16px
;
text-align
:
right
;
}
.userCommissionDetails
.border-bottom
{
/* border-bottom: 1px dashed #EEE; */
padding-bottom
:
5px
;
margin-bottom
:
5px
;
}
.userCommissionDetails
.text-bottom
{
height
:
32px
;
line-height
:
32px
;
margin-bottom
:
10px
;
}
.userCommissionDetails
._icon_btn
i
.icon-sousuo
{
background-color
:
#47BF8C
;
}
.userCommissionDetails
._icon_btn
i
{
width
:
30px
;
height
:
30px
;
display
:
inline-block
;
color
:
white
!important
;
border-radius
:
50%
;
text-align
:
center
;
line-height
:
30px
;
margin-right
:
10px
;
cursor
:
pointer
;
outline
:
none
;
}
.userCommissionDetails
.el-table
td
,
.el-table
th
{
padding
:
5px
0
;
}
</
style
>
<
template
>
<div
class=
"page-body userCommissionDetails"
>
<div
class=
"page-search row items-center"
>
<div
style=
"margin-right: 10px;"
>
<q-btn
color=
"primary"
size=
"11px"
label=
"返回"
@
click=
"goreturn"
style=
"margin-left:10px"
/>
</div>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-select
filled
stack-label
use-input
input-debounce=
"0"
option-value=
"Id"
clearable
@
input=
"getList"
option-label=
"Name"
v-model=
"msg.SourceId"
:options=
"StudyAbroadList"
label=
"留学/就业"
:dense=
"false"
emit-value
map-options
@
filter=
"filterFn"
>
<template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
未找到相关数据
</q-item-section>
</q-item>
</
template
>
</q-select>
</div>
<div
class=
"col-3"
>
<q-input
filled
v-model=
"msg.OrderId"
@
keyup
.
enter
.
native=
"getList()"
label=
"订单号"
/>
</div>
</div>
</div>
<
template
>
<el-table
ref=
"filterTable"
:data=
"tableData"
v-loading=
'loading'
:header-cell-style=
"
{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column
prop=
"SchoolName"
width=
'150'
label=
"校区"
></el-table-column>
<el-table-column
prop=
"DeptName"
label=
"部门"
></el-table-column>
<el-table-column
prop=
"UserName"
label=
"销售"
>
</el-table-column>
<el-table-column
prop=
"SourceName"
label=
"项目名称"
>
</el-table-column>
<el-table-column
width=
'170'
prop=
"ClassName"
label=
"客人信息"
>
<template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.SourceType"
>
类型:
{{
scope
.
row
.
SourceType
==
1
?
'留学'
:
'就业'
}}
</div>
<div
v-if=
"scope.row.StudentCount"
>
客人数量:
{{
scope
.
row
.
StudentCount
}}
人
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"OrderId"
label=
"订单号"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.OrderId"
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goUrlorderList('/sale/orderStatistics',scope.row)"
>
{{
scope
.
row
.
OrderId
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"CommissionMoney"
label=
"订单提成"
></el-table-column>
<el-table-column
prop=
"OtherMoney"
label=
"额外奖励"
></el-table-column>
<el-table-column
prop=
"BackMoney"
label=
"额外扣除"
></el-table-column>
<el-table-column
prop=
"YFMoney"
label=
"最终发放"
>
<
template
slot-scope=
"scope"
>
<div
style=
"color: rgb(233, 82, 82);"
>
{{
scope
.
row
.
YFMoney
}}
</div>
</
template
>
</el-table-column>
<el-table-column
width=
'90'
prop=
"Periods"
label=
"期数"
>
</el-table-column>
<el-table-column
prop=
"Remark"
width=
'160'
label=
"备注"
>
</el-table-column>
</el-table>
</template>
</div>
</template>
<
script
>
import
{
GetClassTypePageList
,
}
from
'../../../api/system/index'
;
import
{
getSellStudyAbroadForOrderList
,
}
from
'../../../api/finance/index'
import
{
getClassDropDownList
,
}
from
"../../../api/school/index"
;
import
{
queryStudyAbroadPage
}
from
'../../../api/studyabroad/index'
export
default
{
meta
:
{
title
:
"留学销售提成列表"
},
props
:
{},
components
:
{},
data
()
{
return
{
loading
:
false
,
//列表数据参数
msg
:
{
PeriodId
:
0
,
UserId
:
0
,
SourceId
:
'-1'
,
OrderId
:
1
,
UserIds
:
''
,
},
pageCount
:
0
,
persistent
:
false
,
listData
:
{},
tableData
:
[],
company
:
[],
department
:
[],
StudyAbroadList
:
[],
allStudyAbroadList
:
[],
}
},
created
()
{},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
userId
)
{
this
.
msg
.
UserId
=
this
.
$route
.
query
.
userId
}
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
preriodId
)
{
this
.
msg
.
PeriodId
=
this
.
$route
.
query
.
preriodId
}
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
UserIds
)
{
this
.
msg
.
UserIds
=
this
.
$route
.
query
.
UserIds
}
console
.
log
(
this
.
msg
.
PeriodId
)
this
.
getList
()
this
.
getStudyAbroad
()
},
methods
:
{
getList
()
{
if
(
this
.
msg
)
this
.
loading
=
true
;
if
(
this
.
msg
.
SourceId
==
''
||
this
.
msg
.
SourceId
==
null
){
this
.
msg
.
SourceId
=
'-1'
}
getSellStudyAbroadForOrderList
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
loading
=
false
;
this
.
tableData
=
res
.
Data
if
(
this
.
tableData
.
length
>
0
)
{
this
.
getAskfor
()
}
}
})
},
getAskfor
()
{
//求值
let
obj
=
{
SchoolName
:
'合计'
,
YFMoney
:
0
,
}
this
.
tableData
.
forEach
((
x
)
=>
{
if
(
x
.
YFMoney
)
{
obj
.
YFMoney
=
this
.
accAdd
(
x
.
YFMoney
,
obj
.
YFMoney
)
};
})
this
.
tableData
.
push
(
obj
)
},
accAdd
(
arg1
,
arg2
)
{
//js 加法精确计算
var
r1
,
r2
,
m
;
try
{
r1
=
arg1
.
toString
().
split
(
"."
)[
1
].
length
;
}
catch
(
e
)
{
r1
=
0
;
}
try
{
r2
=
arg2
.
toString
().
split
(
"."
)[
1
].
length
;
}
catch
(
e
)
{
r2
=
0
;
}
m
=
Math
.
pow
(
10
,
Math
.
max
(
r1
,
r2
));
return
(
arg1
*
m
+
arg2
*
m
)
/
m
;
},
getStudyAbroad
()
{
let
msg
=
{
pageIndex
:
0
,
pageSize
:
9000
,
Name
:
""
,
IsQPrice
:
1
,
Type
:
-
1
,
//项目类型
SaleState
:
3
,
//已上架
}
queryStudyAbroadPage
(
msg
).
then
(
res
=>
{
let
data
=
res
.
Data
.
PageData
let
obj
=
{
Name
:
'不限'
,
Id
:
'-1'
}
data
.
unshift
(
obj
)
this
.
StudyAbroadList
=
data
;
this
.
allStudyAbroadList
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
})
.
catch
(()
=>
{
});
},
filterFn
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
''
)
{
this
.
StudyAbroadList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allStudyAbroadList
))
}
else
{
const
needle
=
val
.
toLowerCase
()
this
.
StudyAbroadList
=
this
.
allStudyAbroadList
.
filter
(
v
=>
v
.
Name
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
)
}
})
},
goUrl
(
path
,
id
)
{
this
.
$router
.
push
({
path
:
'/financial/'
+
path
,
query
:
{
"id"
:
id
,
blank
:
'y'
,
tab
:
'单据详情'
}
})
},
filterHandler
(
value
,
row
,
column
)
{
const
property
=
column
[
'property'
];
return
row
[
property
]
===
value
;
},
StudentCount
(
a
,
b
)
{
return
a
.
StudentCount
-
b
.
StudentCount
;
},
goorderUrl
(
row
)
{
this
.
$router
.
push
({
path
:
'/financial/cycleOrderList'
,
query
:
{
OrderId
:
row
.
OrderId
,
UserId
:
row
.
UserId
,
blank
:
'y'
,
}
})
},
goreturn
()
{
this
.
$router
.
go
(
-
1
);
},
goUrlorderList
(
path
,
row
){
//订单跳转
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
// EnterID:row.UserId
});
},
goUrlclass
(
path
,
Names
){
//班级
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
ClassName
:
Name
,
});
},
goUrlkehao
(
path
,
row
){
//跳转到学生课耗
let
StartMonth
=
''
let
EndMonth
=
''
if
(
row
.
IsFirstCommission
==
1
){
EndMonth
=
row
.
Periods
}
else
{
if
(
row
.
Periods
.
indexOf
(
'~'
)
!=-
1
){
StartMonth
=
row
.
Periods
.
split
(
'~'
)[
0
];
EndMonth
=
row
.
Periods
.
split
(
'~'
)[
1
];
}
else
{
StartMonth
=
row
.
Periods
;
EndMonth
=
row
.
Periods
}
}
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
StartMonth
:
StartMonth
,
EndMonth
:
EndMonth
,
comefrom
:
1
,
});
}
},
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
src/pages/financial/studyabroad/sBuserCommissionDetails.vue
0 → 100644
View file @
59a07bee
<
style
>
.baseSet_Title
{
width
:
120px
!important
;
padding
:
18px
0
0
16px
;
text-align
:
right
;
}
.userCommissionDetails
.border-bottom
{
/* border-bottom: 1px dashed #EEE; */
padding-bottom
:
5px
;
margin-bottom
:
5px
;
}
.userCommissionDetails
.text-bottom
{
height
:
32px
;
line-height
:
32px
;
margin-bottom
:
10px
;
}
.userCommissionDetails
._icon_btn
i
.icon-sousuo
{
background-color
:
#47BF8C
;
}
.userCommissionDetails
._icon_btn
i
{
width
:
30px
;
height
:
30px
;
display
:
inline-block
;
color
:
white
!important
;
border-radius
:
50%
;
text-align
:
center
;
line-height
:
30px
;
margin-right
:
10px
;
cursor
:
pointer
;
outline
:
none
;
}
.userCommissionDetails
.el-table
td
,
.el-table
th
{
padding
:
5px
0
;
}
</
style
>
<
template
>
<div
class=
"page-body userCommissionDetails"
>
<div
class=
"page-search row items-center"
>
<div
style=
"margin-right: 10px;"
>
<q-btn
color=
"primary"
size=
"11px"
label=
"返回"
@
click=
"goreturn"
style=
"margin-left:10px"
/>
</div>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-select
filled
stack-label
use-input
input-debounce=
"0"
option-value=
"Id"
clearable
@
input=
"getList"
option-label=
"Name"
v-model=
"msg.SourceId"
:options=
"StudyAbroadList"
label=
"留学/就业"
:dense=
"false"
emit-value
map-options
@
filter=
"filterFn"
>
<template
v-slot:no-option
>
<q-item>
<q-item-section
class=
"text-grey"
>
未找到相关数据
</q-item-section>
</q-item>
</
template
>
</q-select>
</div>
<div
class=
"col-3"
>
<q-input
filled
v-model=
"msg.OrderId"
@
keyup
.
enter
.
native=
"getList()"
label=
"订单号"
/>
</div>
</div>
</div>
<
template
>
<el-table
ref=
"filterTable"
:data=
"tableData"
v-loading=
'loading'
:header-cell-style=
"
{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column
prop=
"SchoolName"
width=
'150'
label=
"校区"
></el-table-column>
<el-table-column
prop=
"DeptName"
label=
"部门"
></el-table-column>
<el-table-column
prop=
"UserName"
label=
"销售"
>
</el-table-column>
<el-table-column
prop=
"SourceName"
label=
"项目名称"
>
</el-table-column>
<el-table-column
width=
'170'
prop=
"ClassName"
label=
"客人信息"
>
<template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.SourceType"
>
类型:
{{
scope
.
row
.
SourceType
==
1
?
'留学'
:
'就业'
}}
</div>
<div
v-if=
"scope.row.StudentCount"
>
客人数量:
{{
scope
.
row
.
StudentCount
}}
人
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"OrderId"
label=
"订单号"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.OrderId"
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goUrlorderList('/sale/studyOrderStatistics',scope.row)"
>
{{
scope
.
row
.
OrderId
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"CommissionMoney"
label=
"订单提成"
></el-table-column>
<el-table-column
prop=
"OtherMoney"
label=
"额外奖励"
></el-table-column>
<el-table-column
prop=
"BackMoney"
label=
"额外扣除"
></el-table-column>
<el-table-column
prop=
"YFMoney"
label=
"最终发放"
>
<
template
slot-scope=
"scope"
>
<div
style=
"color: rgb(233, 82, 82);"
>
{{
scope
.
row
.
YFMoney
}}
</div>
</
template
>
</el-table-column>
<el-table-column
width=
'90'
prop=
"Periods"
label=
"期数"
>
</el-table-column>
<el-table-column
prop=
"Remark"
width=
'160'
label=
"备注"
>
</el-table-column>
</el-table>
</template>
</div>
</template>
<
script
>
import
{
GetClassTypePageList
,
}
from
'../../../api/system/index'
;
import
{
getSellStudyAbroadUserDetailList
,
}
from
'../../../api/finance/index'
import
{
getClassDropDownList
,
}
from
"../../../api/school/index"
;
import
{
queryStudyAbroadPage
}
from
'../../../api/studyabroad/index'
export
default
{
meta
:
{
title
:
"留学提成明细"
},
props
:
{},
components
:
{},
data
()
{
return
{
loading
:
false
,
//列表数据参数
msg
:
{
PeriodId
:
0
,
UserId
:
0
,
SourceId
:
'-1'
,
OrderId
:
''
,
UserIds
:
''
,
},
pageCount
:
0
,
persistent
:
false
,
listData
:
{},
tableData
:
[],
company
:
[],
department
:
[],
StudyAbroadList
:
[],
allStudyAbroadList
:
[],
}
},
created
()
{},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
userId
)
{
this
.
msg
.
UserId
=
this
.
$route
.
query
.
userId
}
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
preriodId
)
{
this
.
msg
.
PeriodId
=
this
.
$route
.
query
.
preriodId
}
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
UserIds
)
{
this
.
msg
.
UserIds
=
this
.
$route
.
query
.
UserIds
}
this
.
getList
()
this
.
getStudyAbroad
()
},
methods
:
{
getList
()
{
if
(
this
.
msg
)
this
.
loading
=
true
;
if
(
this
.
msg
.
SourceId
==
''
||
this
.
msg
.
SourceId
==
null
){
this
.
msg
.
SourceId
=
'-1'
}
getSellStudyAbroadUserDetailList
(
this
.
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
loading
=
false
;
this
.
tableData
=
res
.
Data
if
(
this
.
tableData
.
length
>
0
)
{
this
.
getAskfor
()
}
}
})
},
getAskfor
()
{
//求值
let
obj
=
{
SchoolName
:
'合计'
,
YFMoney
:
0
,
}
this
.
tableData
.
forEach
((
x
)
=>
{
if
(
x
.
YFMoney
)
{
obj
.
YFMoney
=
this
.
accAdd
(
x
.
YFMoney
,
obj
.
YFMoney
)
};
})
this
.
tableData
.
push
(
obj
)
},
accAdd
(
arg1
,
arg2
)
{
//js 加法精确计算
var
r1
,
r2
,
m
;
try
{
r1
=
arg1
.
toString
().
split
(
"."
)[
1
].
length
;
}
catch
(
e
)
{
r1
=
0
;
}
try
{
r2
=
arg2
.
toString
().
split
(
"."
)[
1
].
length
;
}
catch
(
e
)
{
r2
=
0
;
}
m
=
Math
.
pow
(
10
,
Math
.
max
(
r1
,
r2
));
return
(
arg1
*
m
+
arg2
*
m
)
/
m
;
},
getStudyAbroad
()
{
let
msg
=
{
pageIndex
:
0
,
pageSize
:
9000
,
Name
:
""
,
IsQPrice
:
1
,
Type
:
-
1
,
//项目类型
SaleState
:
3
,
//已上架
}
queryStudyAbroadPage
(
msg
).
then
(
res
=>
{
let
data
=
res
.
Data
.
PageData
let
obj
=
{
Name
:
'不限'
,
Id
:
'-1'
}
data
.
unshift
(
obj
)
this
.
StudyAbroadList
=
data
;
this
.
allStudyAbroadList
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
})
.
catch
(()
=>
{
});
},
//筛选员工
filterFn
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
''
)
{
this
.
StudyAbroadList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allStudyAbroadList
))
}
else
{
const
needle
=
val
.
toLowerCase
()
this
.
StudyAbroadList
=
this
.
allStudyAbroadList
.
filter
(
v
=>
v
.
Name
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
)
}
})
},
goUrl
(
path
,
id
)
{
this
.
$router
.
push
({
path
:
'/financial/'
+
path
,
query
:
{
"id"
:
id
,
blank
:
'y'
,
tab
:
'单据详情'
}
})
},
filterHandler
(
value
,
row
,
column
)
{
const
property
=
column
[
'property'
];
return
row
[
property
]
===
value
;
},
StudentCount
(
a
,
b
)
{
return
a
.
StudentCount
-
b
.
StudentCount
;
},
goorderUrl
(
row
)
{
this
.
$router
.
push
({
path
:
'/financial/cycleOrderList'
,
query
:
{
OrderId
:
row
.
OrderId
,
UserId
:
row
.
UserId
,
blank
:
'y'
,
}
})
},
goreturn
()
{
this
.
$router
.
go
(
-
1
);
},
goUrlorderList
(
path
,
row
){
//订单跳转
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
// EnterID:row.UserId
});
},
goUrlclass
(
path
,
Names
){
//班级
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
ClassName
:
Name
,
});
},
goUrlkehao
(
path
,
row
){
//跳转到学生课耗
let
StartMonth
=
''
let
EndMonth
=
''
if
(
row
.
IsFirstCommission
==
1
){
EndMonth
=
row
.
Periods
}
else
{
if
(
row
.
Periods
.
indexOf
(
'~'
)
!=-
1
){
StartMonth
=
row
.
Periods
.
split
(
'~'
)[
0
];
EndMonth
=
row
.
Periods
.
split
(
'~'
)[
1
];
}
else
{
StartMonth
=
row
.
Periods
;
EndMonth
=
row
.
Periods
}
}
this
.
OpenNewUrl
(
path
,
{
OrderId
:
row
.
OrderId
,
StartMonth
:
StartMonth
,
EndMonth
:
EndMonth
,
comefrom
:
1
,
});
}
},
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
src/pages/financial/studyabroad/studyAbroadCommission.vue
0 → 100644
View file @
59a07bee
This diff is collapsed.
Click to expand it.
src/pages/financial/studyabroad/studyAbroadCommissionTJ.vue
0 → 100644
View file @
59a07bee
This diff is collapsed.
Click to expand it.
src/pages/financial/studyabroad/studyAbroadRules.vue
View file @
59a07bee
This diff is collapsed.
Click to expand it.
src/router/routes.js
View file @
59a07bee
...
...
@@ -608,6 +608,34 @@ const routes = [{
component
:
()
=>
import
(
"pages/financial/studyabroad/studyAbroadRules.vue"
)
},
{
path
:
"/financial/studyabroad/studyAbroadCommission"
,
//工作台 留学销售提成
component
:
()
=>
import
(
"pages/financial/studyabroad/studyAbroadCommission.vue"
)
},
{
path
:
"/financial/studyabroad/studyAbroadCommissionTJ"
,
//工作台 留学销售统计
component
:
()
=>
import
(
"pages/financial/studyabroad/studyAbroadCommissionTJ.vue"
)
},
{
path
:
"/financial/studyabroad/commissionDetail"
,
//工作台 留学销售列表
component
:
()
=>
import
(
"pages/financial/studyabroad/commissionDetail.vue"
)
},
{
path
:
"/financial/studyabroad/sBuserCommissionDetails"
,
//工作台 留学销售明细
component
:
()
=>
import
(
"pages/financial/studyabroad/sBuserCommissionDetails.vue"
)
},
{
path
:
"/financial/studyabroad/ordercommission"
,
//工作台 获取销售提成-订单跳转列表 传的参数不同
component
:
()
=>
import
(
"pages/financial/studyabroad/ordercommission.vue"
)
},
{
...
...
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