Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SuperMan
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
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
罗超
SuperMan
Commits
8df9c3cf
Commit
8df9c3cf
authored
Sep 29, 2020
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改提成数据
parent
daac12bf
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
493 additions
and
474 deletions
+493
-474
CommissionDetail.vue
src/components/administrative/CommissionDetail.vue
+493
-474
No files found.
src/components/administrative/CommissionDetail.vue
View file @
8df9c3cf
<
template
>
<div
class=
"commissionDetails commissionDetails-box"
>
<div
class=
"commissionDetails commissionDetails-box"
>
<div
class=
"query-box"
>
<ul>
<li>
...
...
@@ -7,27 +7,11 @@
</li>
</ul>
</div>
<v-table
v-if=
"isReady"
is-horizontal-resize
column-width-drag
style=
"width:100%"
:columns=
"columns"
:table-data=
"dataList"
:filter-method=
"filterMethod"
:total=
"total"
:pageSize=
"msg.pageSize"
:pageIndex=
"msg.pageIndex"
:handleCurrentChange=
"handleCurrentChange"
:multiple-sort=
"multipleSort"
:is-loading=
"loading"
sort-always
@
sort-change=
"sortChange"
@
on-custom-comp=
"customCompFunc"
></v-table>
<v-table
v-if=
"isReady"
is-horizontal-resize
column-width-drag
style=
"width:100%"
:columns=
"columns"
:table-data=
"dataList"
:filter-method=
"filterMethod"
:total=
"total"
:pageSize=
"msg.pageSize"
:pageIndex=
"msg.pageIndex"
:handleCurrentChange=
"handleCurrentChange"
:multiple-sort=
"multipleSort"
:is-loading=
"loading"
sort-always
@
sort-change=
"sortChange"
@
on-custom-comp=
"customCompFunc"
></v-table>
<div
style=
"height:20px;"
>
</div>
</div>
</div>
</
template
>
<
script
>
import
Vue
from
'vue'
import
XLSX
from
'xlsx'
...
...
@@ -43,8 +27,8 @@ export default {
pageSize
:
20
,
ParentId
:
0
,
OrderStr
:
"RB_Branch_Id asc"
,
BName
:
-
1
,
RB_Branch_Id
:
-
1
,
BName
:
-
1
,
RB_Branch_Id
:
-
1
,
Periods
:
''
},
total
:
0
,
...
...
@@ -56,42 +40,66 @@ export default {
isReady
:
false
,
multipleSort
:
false
,
loading
:
true
,
CompanyList
:
[],
CompanyList
:
[],
dataListTwo
:
[],
stringPerons
:
''
,
stringPerons
:
''
,
userInfo
:
{},
companyID
:
''
,
disabledCPSelect
:
false
};
},
methods
:
{
exportExcel
(){
const
defaultCellStyle
=
{
'!cols'
:
[{
wpx
:
60
},
{
wpx
:
200
},
{
wpx
:
60
},
{
wpx
:
150
},{
wpx
:
60
}]};
const
wopts
=
{
bookType
:
'xlsx'
,
bookSST
:
false
,
type
:
'binary'
,
defaultCellStyle
:
defaultCellStyle
,
showGridLines
:
true
};
const
wb
=
{
SheetNames
:
[
'提成统计'
],
Sheets
:
{},
Props
:
{}
};
exportExcel
()
{
const
defaultCellStyle
=
{
'!cols'
:
[{
wpx
:
60
},
{
wpx
:
200
},
{
wpx
:
60
},
{
wpx
:
150
},
{
wpx
:
60
}]
};
const
wopts
=
{
bookType
:
'xlsx'
,
bookSST
:
false
,
type
:
'binary'
,
defaultCellStyle
:
defaultCellStyle
,
showGridLines
:
true
};
const
wb
=
{
SheetNames
:
[
'提成统计'
],
Sheets
:
{},
Props
:
{}
};
let
data
=
[]
this
.
dataList
.
forEach
(
x
=>
{
let
obj
=
{
'公司'
:
x
.
bName
,
'部门'
:
x
.
departmentName
,
'员工'
:
x
.
createByStr
,
'提成金额'
:
x
.
commissionMoney
.
toFixed
(
2
),
'额外奖励'
:
x
.
otherMoney
.
toFixed
(
2
),
'额外扣除'
:
x
.
backMoney
.
toFixed
(
2
),
'应发提成'
:
x
.
sumMoney
.
toFixed
(
2
),
'收客数'
:
x
.
peopleCount
,
'单签证人数'
:
x
.
visaPeopleCount
,
'所属期数'
:
x
.
periods
this
.
dataList
.
forEach
(
x
=>
{
let
obj
=
{
'公司'
:
x
.
bName
,
'部门'
:
x
.
departmentName
,
'员工'
:
x
.
createByStr
,
'提成金额'
:
x
.
commissionMoney
.
toFixed
(
2
),
'额外奖励'
:
x
.
otherMoney
.
toFixed
(
2
),
'额外扣除'
:
x
.
backMoney
.
toFixed
(
2
),
'应发提成'
:
x
.
sumMoney
.
toFixed
(
2
),
'收客数'
:
x
.
peopleCount
,
'单签证人数'
:
x
.
visaPeopleCount
,
'所属期数'
:
x
.
periods
}
data
.
push
(
obj
)
})
wb
.
Sheets
[
'提成统计'
]
=
XLSX
.
utils
.
json_to_sheet
(
data
)
//创建二进制对象写入转换好的字节流
let
tmpDown
=
new
Blob
([
this
.
s2ab
(
XLSX
.
write
(
wb
,
wopts
))],
{
type
:
"application/octet-stream"
})
let
tmpDown
=
new
Blob
([
this
.
s2ab
(
XLSX
.
write
(
wb
,
wopts
))],
{
type
:
"application/octet-stream"
})
FileSaver
.
saveAs
(
tmpDown
,
"提成统计.xls"
);
},
s2ab
(
s
)
{
s2ab
(
s
)
{
if
(
typeof
ArrayBuffer
!==
'undefined'
)
{
var
buf
=
new
ArrayBuffer
(
s
.
length
);
var
view
=
new
Uint8Array
(
buf
);
...
...
@@ -103,19 +111,19 @@ export default {
return
buf
;
}
},
filterMethod
(
filters
)
{
filterMethod
(
filters
)
{
let
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
dataListTwo
))
let
dataListTwo
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
dataListTwo
))
if
(
filters
.
bName
!=
''
&&
filters
.
bName
!=
'__all__'
)
{
data
=
data
.
filter
(
item
=>
item
.
bName
.
indexOf
(
filters
.
bName
)
!=
-
1
);
if
(
filters
.
bName
!=
''
&&
filters
.
bName
!=
'__all__'
)
{
data
=
data
.
filter
(
item
=>
item
.
bName
.
indexOf
(
filters
.
bName
)
!=
-
1
);
}
if
(
filters
.
departmentName
!=
''
)
{
data
=
data
.
filter
(
item
=>
item
.
departmentName
.
indexOf
(
filters
.
departmentName
)
!=
-
1
);
if
(
filters
.
departmentName
!=
''
)
{
data
=
data
.
filter
(
item
=>
item
.
departmentName
.
indexOf
(
filters
.
departmentName
)
!=
-
1
);
}
if
(
filters
.
createByStr
!=
''
)
{
data
=
data
.
filter
(
item
=>
item
.
createByStr
.
indexOf
(
filters
.
createByStr
)
!=
-
1
);
if
(
filters
.
createByStr
!=
''
)
{
data
=
data
.
filter
(
item
=>
item
.
createByStr
.
indexOf
(
filters
.
createByStr
)
!=
-
1
);
}
if
((
filters
.
bName
===
''
||
filters
.
bName
===
'__all__'
)
&&
filters
.
departmentName
===
''
&&
filters
.
createByStr
===
''
)
{
if
((
filters
.
bName
===
''
||
filters
.
bName
===
'__all__'
)
&&
filters
.
departmentName
===
''
&&
filters
.
createByStr
===
''
)
{
data
=
dataListTwo
}
this
.
dataList
=
data
...
...
@@ -136,19 +144,18 @@ export default {
data
.
forEach
(
x
=>
{
x
.
disabled
=
false
;
});
if
(
this
.
userInfo
.
RB_Branch_id
!=
0
)
{
this
.
CompanyList
=
data
.
filter
(
x
=>
{
if
(
x
.
BName
==
this
.
userInfo
.
BranchName
)
{
if
(
this
.
userInfo
.
RB_Branch_id
!=
0
)
{
this
.
CompanyList
=
data
.
filter
(
x
=>
{
if
(
x
.
BName
==
this
.
userInfo
.
BranchName
)
{
return
x
}
else
}
else
return
false
})
}
else
{
}
else
{
this
.
CompanyList
=
data
;
}
this
.
initColums
();
}
else
{
}
}
else
{}
},
err
=>
{}
);
...
...
@@ -164,7 +171,7 @@ export default {
companyList
.
push
(
item
);
});
let
company
=
{}
if
(
this
.
disabledCPSelect
)
{
if
(
this
.
disabledCPSelect
)
{
company
=
{
field
:
"bName"
,
title
:
"公司"
,
...
...
@@ -206,8 +213,8 @@ export default {
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
if
(
rowData
.
leaveStr
&&
rowData
.
leaveStr
!=
''
)
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
if
(
rowData
.
leaveStr
&&
rowData
.
leaveStr
!=
''
)
return
`<div>
${
rowData
.
createByStr
}
<span style="color:red;display:inline-block">(
${
rowData
.
leaveStr
}
)</span></div>`
else
return
`<div>
${
rowData
.
createByStr
}
</div>`
...
...
@@ -221,7 +228,7 @@ export default {
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
return
`<span>
${
rowData
.
commissionMoney
.
toFixed
(
2
)}
</span>`
}
};
...
...
@@ -233,7 +240,7 @@ export default {
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
return
`<span>
${
rowData
.
otherMoney
.
toFixed
(
2
)}
</span>`
}
};
...
...
@@ -245,7 +252,7 @@ export default {
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
return
`<span>
${
rowData
.
backMoney
.
toFixed
(
2
)}
</span>`
}
};
...
...
@@ -257,7 +264,7 @@ export default {
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
return
`<span style='color:red'>
${(
rowData
.
otherMoney
+
rowData
.
commissionMoney
-
rowData
.
backMoney
).
toFixed
(
2
)}
</span>`
}
};
...
...
@@ -269,8 +276,8 @@ export default {
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
return
`<span style='color:blue'>
${
rowData
.
peopleCount
+
rowData
.
visaP
eopleCount
}
人</span>`
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
return
`<span style='color:blue'>
${
rowData
.
p
eopleCount
}
人</span>`
}
};
let
visaPeopleCount
=
{
...
...
@@ -280,8 +287,8 @@ export default {
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
if
(
rowData
.
visaPeopleCount
>
0
)
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
if
(
rowData
.
visaPeopleCount
>
0
)
return
`<span style='color:orange'>
${
rowData
.
visaPeopleCount
}
人</span>`
else
return
''
...
...
@@ -294,8 +301,8 @@ export default {
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
if
(
rowData
.
periods
!=
that
.
stringPerons
)
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
if
(
rowData
.
periods
!=
that
.
stringPerons
)
return
`<div style='height:40px;line-height:40px;color:#f1f1f1;background: red;margin: 0 -5px;;padding-left: 10px;'>
${
rowData
.
periods
}
</div>`
else
return
rowData
.
periods
...
...
@@ -308,8 +315,8 @@ export default {
columnAlign
:
"left"
,
isResize
:
true
,
width
:
200
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
if
(
rowData
.
remark
)
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
if
(
rowData
.
remark
)
return
`<div class="outDiv">
<div class="toolDiv">
<div class="triangle_border_up">
...
...
@@ -343,25 +350,25 @@ export default {
this
.
isReady
=
true
;
},
sortChange
(
param
)
{
if
(
param
.
sumMoney
==
''
)
{
if
(
param
.
BName
!=
''
)
{
this
.
msg
.
OrderStr
=
'RB_Branch_Id '
+
param
.
bName
if
(
param
.
sumMoney
==
''
)
{
if
(
param
.
BName
!=
''
)
{
this
.
msg
.
OrderStr
=
'RB_Branch_Id '
+
param
.
bName
}
if
(
param
.
commissionMoney
!=
''
)
{
this
.
msg
.
OrderStr
=
'CommissionMoney '
+
param
.
commissionMoney
if
(
param
.
commissionMoney
!=
''
)
{
this
.
msg
.
OrderStr
=
'CommissionMoney '
+
param
.
commissionMoney
}
if
(
param
.
peopleCount
!=
''
)
{
this
.
msg
.
OrderStr
=
'PeopleCount '
+
param
.
peopleCount
if
(
param
.
peopleCount
!=
''
)
{
this
.
msg
.
OrderStr
=
'PeopleCount '
+
param
.
peopleCount
}
if
(
param
.
backMoney
!=
''
)
{
this
.
msg
.
OrderStr
=
'BackMoney '
+
param
.
backMoney
if
(
param
.
backMoney
!=
''
)
{
this
.
msg
.
OrderStr
=
'BackMoney '
+
param
.
backMoney
}
if
(
param
.
otherMoney
!=
''
)
{
this
.
msg
.
OrderStr
=
'OtherMoney '
+
param
.
otherMoney
if
(
param
.
otherMoney
!=
''
)
{
this
.
msg
.
OrderStr
=
'OtherMoney '
+
param
.
otherMoney
}
this
.
getList
();
}
else
{
let
d
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
dataList
))
}
else
{
let
d
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
dataList
))
this
.
dataList
=
this
.
orderBy
(
d
,
[
"sumMoney"
],
param
.
sumMoney
).
results
;
}
},
...
...
@@ -371,8 +378,8 @@ export default {
},
getList
()
{
this
.
loading
=
true
;
if
(
this
.
userInfo
.
RB_Branch_id
!=
0
)
{
this
.
msg
.
RB_Branch_Id
=
this
.
userInfo
.
RB_Branch_id
if
(
this
.
userInfo
.
RB_Branch_id
!=
0
)
{
this
.
msg
.
RB_Branch_Id
=
this
.
userInfo
.
RB_Branch_id
}
this
.
apipost
(
...
...
@@ -383,8 +390,8 @@ export default {
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
.
pageData
;
this
.
total
=
res
.
data
.
data
.
count
;
this
.
dataList
.
forEach
(
x
=>
{
x
.
sumMoney
=
x
.
commissionMoney
+
x
.
otherMoney
-
x
.
backMoney
this
.
dataList
.
forEach
(
x
=>
{
x
.
sumMoney
=
x
.
commissionMoney
+
x
.
otherMoney
-
x
.
backMoney
})
this
.
dataListTwo
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
dataList
))
}
else
{
...
...
@@ -424,7 +431,7 @@ export default {
EmployeeId
:
userId
,
starTime
:
startDay
,
endTime
:
entDay
,
blank
:
'y'
blank
:
'y'
}
});
}
...
...
@@ -432,36 +439,39 @@ export default {
mounted
()
{
this
.
msg
.
pageSize
=
10000
;
//不分页
this
.
msg
.
ParentId
=
this
.
$route
.
query
.
ParentId
;
if
(
this
.
$route
.
query
.
companyID
)
{
if
(
this
.
$route
.
query
.
companyID
)
{
this
.
companyID
=
this
.
$route
.
query
.
companyID
;
this
.
msg
.
RB_Branch_Id
=
this
.
$route
.
query
.
companyID
;
this
.
msg
.
Periods
=
this
.
$route
.
query
.
periods
;
this
.
disabledCPSelect
=
true
}
let
dt
=
new
Date
()
this
.
stringPerons
=
(
dt
.
getMonth
()
==
0
?(
dt
.
getFullYear
()
-
1
):
dt
.
getFullYear
())
+
''
+
(
dt
.
getMonth
().
toString
().
length
<
2
?
'0'
:
''
)
+
(
dt
.
getMonth
()
==
0
?
12
:
dt
.
getMonth
());
let
dt
=
new
Date
()
this
.
stringPerons
=
(
dt
.
getMonth
()
==
0
?
(
dt
.
getFullYear
()
-
1
)
:
dt
.
getFullYear
())
+
''
+
(
dt
.
getMonth
().
toString
().
length
<
2
?
'0'
:
''
)
+
(
dt
.
getMonth
()
==
0
?
12
:
dt
.
getMonth
());
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
getList
();
this
.
getCompanyList
();
},
created
()
{
Vue
.
component
(
'commission-table-operation'
,
{
template
:
`<div style='border-bottom: 1px solid #e5e5e5;border-left: 1px solid #e5e5e5;width:80px;height:40px;background:#fff;text-align:center;position: relative;left:-5px;padding-top: 6px;padding-top:6px;box-sizing:border-box'><el-button type="primary" size='mini' icon="el-icon-view" circle @click="see(rowData,index)"></el-button></div>`
,
props
:
{
rowData
:
{
type
:
Object
created
()
{
Vue
.
component
(
'commission-table-operation'
,
{
template
:
`<div style='border-bottom: 1px solid #e5e5e5;border-left: 1px solid #e5e5e5;width:80px;height:40px;background:#fff;text-align:center;position: relative;left:-5px;padding-top: 6px;padding-top:6px;box-sizing:border-box'><el-button type="primary" size='mini' icon="el-icon-view" circle @click="see(rowData,index)"></el-button></div>`
,
props
:
{
rowData
:
{
type
:
Object
},
field
:
{
type
:
String
field
:
{
type
:
String
},
index
:
{
type
:
Number
index
:
{
type
:
Number
}
},
methods
:{
see
(){
let
params
=
{
type
:
'see'
,
data
:
this
.
rowData
};
this
.
$emit
(
'on-custom-comp'
,
params
);
methods
:
{
see
()
{
let
params
=
{
type
:
'see'
,
data
:
this
.
rowData
};
this
.
$emit
(
'on-custom-comp'
,
params
);
}
}
})
...
...
@@ -469,25 +479,29 @@ export default {
};
</
script
>
<
style
>
.commissionDetails
.triangle_border_up
{
width
:
0
;
height
:
0
;
border-width
:
0
5px
5px
;
border-style
:
solid
;
border-color
:
transparent
transparent
#303133
;
/*透明 透明 灰*/
position
:
absolute
;
top
:
-5px
;
.commissionDetails
.triangle_border_up
{
width
:
0
;
height
:
0
;
border-width
:
0
5px
5px
;
border-style
:
solid
;
border-color
:
transparent
transparent
#303133
;
/*透明 透明 灰*/
position
:
absolute
;
top
:
-5px
;
}
.commissionDetails
.v-table-body-cell
:hover
.outDiv
.toolDiv
{
.commissionDetails
.v-table-body-cell
:hover
.outDiv
.toolDiv
{
display
:
block
;
}
.commissionDetails
.v-table-body-cell
{
.commissionDetails
.v-table-body-cell
{
overflow
:
initial
;
cursor
:
pointer
;
}
.commissionDetails
.toolDiv
{
.commissionDetails
.toolDiv
{
position
:
absolute
;
top
:
25px
;
background
:
#303133
;
...
...
@@ -497,15 +511,20 @@ export default {
max-width
:
220px
;
white-space
:
normal
;
border-radius
:
4px
;
word-wrap
:
break-word
;
word-wrap
:
break-word
;
display
:
none
;
}
.commissionDetails
.outDiv
{
.commissionDetails
.outDiv
{
position
:
relative
;
}
.commissionDetails-box
.el-button.is-circle
{
padding
:
5px
!important
;}
.commissionDetails-box
.el-button.is-circle
{
padding
:
5px
!important
;
}
.commissionDetails-box
.v-table-body-cell
span
{
display
:
block
;
width
:
100%
;
...
...
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