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
4e736e6f
Commit
4e736e6f
authored
Apr 12, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增考核页面,
parent
505a7c74
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
645 additions
and
39 deletions
+645
-39
invoicesManager.vue
src/components/FinancialModule/invoicesManager.vue
+72
-30
invoicesManagerDetail.vue
src/components/FinancialModule/invoicesManagerDetail.vue
+49
-6
enrollTotal.vue
src/components/SalesModule/enrollTotal.vue
+20
-2
groupTourOrder.vue
src/components/SalesModule/groupTourOrder.vue
+1
-1
groupTourOrderByTuan.vue
src/components/SalesModule/groupTourOrderByTuan.vue
+36
-0
ExaminationStatistics.vue
src/components/administrative/ExaminationStatistics.vue
+459
-0
config.js
src/router/config.js
+8
-0
No files found.
src/components/FinancialModule/invoicesManager.vue
View file @
4e736e6f
...
...
@@ -78,6 +78,17 @@
.page_iisMg
._icon_btn
i
.icon-sousuo
{
background-color
:
#47BF8C
;}
.page_iisMg
._icon_btn
i
.icon-sousuo
:hover
{
background-color
:
#66bb97
}
.page_iisMg
._icon_btn
i
.icon-sousuo
:active
{
background-color
:
#35ab79
}
._zhuihui
{
display
:
inline-block
;
height
:
20px
;
width
:
20px
;
border-radius
:
50%
;
color
:
white
;
background-color
:
#e42d2d
;
text-align
:
center
;
line-height
:
20px
;
cursor
:
pointer
;
}
</
style
>
<
template
>
<div
class=
"page_iisMg"
>
...
...
@@ -151,34 +162,55 @@
<th>
状态
</th>
<th>
操作
</th>
</tr>
<tr
v-for=
"(item, index) in dataList"
:key=
"index"
v-loading=
"loading"
>
<td
class=
"cursorpointer"
@
click=
"goUrlT('productQuery', item.TCNUM, '产品查询')"
>
{{
item
.
TCNUM
}}
(
{{
item
.
TCID
}}
)
</td>
<td>
{{
item
.
OrderId
}}
</td>
<td>
{{
item
.
CreateByStr
}}
</td>
<td>
{{
item
.
CustomerName
}}
:
{{
item
.
CustomerContact
}}
</td>
<td>
{{
item
.
ApplyMoney
}}
</td>
<td>
{{
item
.
ApplyMoney
-
item
.
AactualMoney
}}
</td>
<td>
{{
item
.
CreateDate
.
replace
(
'T'
,
' '
)
}}
</td>
<td>
<span
v-if=
"item.InvoiceApplyState === 1"
class=
"status_Application"
>
申请中
</span>
<span
v-else-if=
"item.InvoiceApplyState === 2"
class=
"status_Cancle"
>
已取消
</span>
<span
v-else-if=
"item.InvoiceApplyState === 3"
class=
"status_Passed"
>
已通过
</span>
<span
v-else-if=
"item.InvoiceApplyState === 4"
class=
"status_Rejected"
>
已拒绝
</span>
<span
v-else-if=
"item.InvoiceApplyState === 5"
class=
"status_owe"
>
欠票
</span>
<span
v-else-if=
"item.InvoiceApplyState === 6"
class=
"status_Recover"
>
发票追回
</span>
</td>
<td
class=
"_icon_btn"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"$t('fnc.chakan')"
placement=
"top"
>
<i
class=
"iconfont icon-sousuo"
@
click=
"goIisDetail(item.ID)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"追回"
placement=
"top"
>
<i
v-if=
"item.InvoiceApplyState === 5"
class=
"iconfont icon-ico_commodity_defaul"
@
click=
"setStatus(item.ID, 6)"
></i>
</el-tooltip>
<!--
<el-tooltip
class=
"item"
effect=
"dark"
content=
"拒绝"
placement=
"top"
>
<i
v-if=
"item.InvoiceApplyState === 1"
class=
"iconfont icon-quxiao1"
@
click=
"setStatus(item.ID, 4)"
></i>
</el-tooltip>
-->
</td>
</tr>
<template
v-for=
"(item, index) in dataList"
v-loading=
"loading"
>
<tr>
<td
class=
"cursorpointer"
@
click=
"goUrlT('productQuery', item.TCNUM, '产品查询')"
:rowspan=
"item.InvoiceApplyList.length"
>
{{
item
.
TCNUM
}}
(
{{
item
.
TCID
}}
)
</td>
<td
class=
"cursorpointer"
:rowspan=
"item.InvoiceApplyList.length"
@
click=
"goUrlO(item.OrderId)"
>
{{
item
.
OrderId
}}
</td>
<td
:rowspan=
"item.InvoiceApplyList.length"
>
{{
item
.
CreateByStr
}}
</td>
<td
:rowspan=
"item.InvoiceApplyList.length"
>
{{
item
.
CustomerName
}}
:
{{
item
.
CustomerContact
}}
</td>
<td
:rowspan=
"item.InvoiceApplyList.length"
>
{{
item
.
ApplyTotalPrice
}}
</td>
<td
:rowspan=
"item.InvoiceApplyList.length"
>
<span>
{{
item
.
DpreadPrice
-
item
.
ApplyTotalPrice
}}
</span>
<span
v-if=
"(item.DpreadPrice - item.ApplyTotalPrice)
<
0
"
class=
"_zhuihui"
@
click=
"zhuihui(item.OrderId)"
>
追
</span>
</td>
<td>
{{
item
.
InvoiceApplyList
[
0
].
CreateDate
}}
</td>
<td>
<span
v-if=
"item.InvoiceApplyList[0].InvoiceApplyState === 1"
class=
"status_Application"
>
申请中
</span>
<span
v-else-if=
"item.InvoiceApplyList[0].InvoiceApplyState === 2"
class=
"status_Cancle"
>
已取消
</span>
<span
v-else-if=
"item.InvoiceApplyList[0].InvoiceApplyState === 3"
class=
"status_Passed"
>
已通过
</span>
<span
v-else-if=
"item.InvoiceApplyList[0].InvoiceApplyState === 4"
class=
"status_Rejected"
>
已拒绝
</span>
<span
v-else-if=
"item.InvoiceApplyList[0].InvoiceApplyState === 5"
class=
"status_owe"
>
欠票
</span>
<span
v-else-if=
"item.InvoiceApplyList[0].InvoiceApplyState === 6"
class=
"status_Recover"
>
发票追回
</span>
</td>
<td
class=
"_icon_btn"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"$t('fnc.chakan')"
placement=
"top"
>
<i
class=
"iconfont icon-sousuo"
@
click=
"goIisDetail(item.InvoiceApplyList[0].ID)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"追回"
placement=
"top"
>
<i
v-if=
"item.InvoiceApplyList[0].InvoiceApplyState === 5"
class=
"iconfont icon-ico_commodity_defaul"
@
click=
"setStatus(item.InvoiceApplyList[0].ID, 6)"
></i>
</el-tooltip>
</td>
</tr>
<tr
v-for=
"(item2, index2) in item.InvoiceApplyList"
:key=
"index2"
v-if=
"index2!==0"
>
<td>
{{
item2
.
CreateDate
}}
</td>
<td>
<span
v-if=
"item2.InvoiceApplyState === 1"
class=
"status_Application"
>
申请中
</span>
<span
v-else-if=
"item2.InvoiceApplyState === 2"
class=
"status_Cancle"
>
已取消
</span>
<span
v-else-if=
"item2.InvoiceApplyState === 3"
class=
"status_Passed"
>
已通过
</span>
<span
v-else-if=
"item2.InvoiceApplyState === 4"
class=
"status_Rejected"
>
已拒绝
</span>
<span
v-else-if=
"item2.InvoiceApplyState === 5"
class=
"status_owe"
>
欠票
</span>
<span
v-else-if=
"item2.InvoiceApplyState === 6"
class=
"status_Recover"
>
发票追回
</span>
</td>
<td
class=
"_icon_btn"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"$t('fnc.chakan')"
placement=
"top"
>
<i
class=
"iconfont icon-sousuo"
@
click=
"goIisDetail(item2.ID)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"追回"
placement=
"top"
>
<i
v-if=
"item2.InvoiceApplyState === 5"
class=
"iconfont icon-ico_commodity_defaul"
@
click=
"setStatus(item2.ID, 6)"
></i>
</el-tooltip>
</td>
</tr>
</
template
>
</table>
<div
class=
"noDataNotice"
v-if=
"dataList.length<1"
><i
class=
"iconfont icon-kong"
></i>
<p>
没有找到你需要的数据
</p></div>
<div
v-if=
"dataList.length>0"
>
...
...
@@ -220,6 +252,13 @@ export default {
};
},
methods
:
{
zhuihui
:
function
(
OrderId
)
{
this
.
apipost
(
'InvoiceApply_get_BatchUpdateInvoiceApply'
,
{
OrderId
:
OrderId
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
getPageList
()
}
},
null
)
},
goIisDetail
:
function
(
id
)
{
this
.
$router
.
push
({
name
:
'invoicesManagerDetail'
,
...
...
@@ -253,7 +292,7 @@ export default {
if
(
this
.
msg
.
OrderId
===
''
)
{
this
.
msg
.
OrderId
=
0
}
this
.
apipost
(
'InvoiceApply_get_GetInvoiceApplyList'
,
this
.
msg
,
res
=>
{
this
.
apipost
(
'InvoiceApply_get_Get
GroupBy
InvoiceApplyList'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
total
=
res
.
data
.
data
.
count
;
this
.
dataList
=
res
.
data
.
data
.
pageData
...
...
@@ -272,7 +311,10 @@ export default {
},
goUrlT
:
function
(
path
,
obj
,
title
){
this
.
$router
.
push
({
name
:
path
,
query
:{
"id"
:
obj
,
blank
:
'y'
,
tab
:
title
}})
},
},
goUrlO
:
function
(
OrderId
)
{
this
.
$router
.
push
({
name
:
'enrollTotal'
,
query
:
{
id
:
OrderId
,
blank
:
'y'
,
tab
:
'报名统计'
}
});
},
handleCurrentChange
:
function
(
val
)
{
//翻页
this
.
msg
.
pageIndex
=
val
;
this
.
getPageList
();
...
...
src/components/FinancialModule/invoicesManagerDetail.vue
View file @
4e736e6f
...
...
@@ -79,9 +79,18 @@
</td>
</tr>
<tr>
<td>
平台ID
</td>
<td
colspan=
"3"
class=
"w600 text-align-left font-weight"
>
{{
detail
.
OrderId
}}
<td>
订单号
</td>
<td
colspan=
"3"
class=
"w600 text-align-left font-weight cursorpointer"
>
<span
@
click=
"goUrlO(detail.OrderId)"
>
{{
detail
.
OrderId
}}
</span>
</td>
</tr>
<tr>
<td>
财务单据
</td>
<td
colspan=
"3"
class=
"w600 text-align-left font-weight cursorpointer"
>
<template
v-for=
"item in orderList.FrIDs"
>
<span
@
click=
"goUrlSFD('SalesFinancialDetail', '销售财务单据', detail.OrderId, detail.TCNUM, detail.TCID)"
>
{{
item
}}
</span>
</
template
>
<span
v-if=
"orderList.FrIDs && orderList.FrIDs.length<1"
>
暂无
</span>
</td>
</tr>
<tr>
...
...
@@ -128,9 +137,25 @@
</td>
</tr>
</table>
<el-dialog
title=
"提示信息"
width=
"400px"
:visible
.
sync=
"dialogFormVisible2"
center
:before-close=
"closeChangeMachie"
>
<el-form
label-width=
"110px"
>
<el-form-item
label=
"税号:"
>
<el-input
class=
""
v-model=
"msg.InvoiceNo"
placeholder=
"请输入税号"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
class=
"hollowFixedBtn"
@
click=
"dialogFormVisible2=false"
>
{{$t('pub.cancelBtn')}}
</el-button>
<el-button
class=
"normalBtn"
type=
"primary"
@
click=
"setStatus(3)"
>
{{$t('pub.sureBtn')}}
</el-button>
</div>
</el-dialog>
<div
style=
"padding:20px 0"
>
<el-row
v-if=
"detail.InvoiceNo"
>
税号:{{detail.InvoiceNo}}
</el-row>
</div>
<div
class=
"iis_save"
v-if=
"!noDetail && detail.InvoiceApplyState===1"
>
<button
class=
"normalBtn"
@
click=
"
setStatus(3)
"
>
通过
</button>
<button
class=
"
normal
Btn"
@
click=
"dialogFormVisible = true"
>
拒绝
</button>
<button
class=
"normalBtn"
@
click=
"
dialogFormVisible2 = true
"
>
通过
</button>
<button
class=
"
hollowFixed
Btn"
@
click=
"dialogFormVisible = true"
>
拒绝
</button>
</div>
<div
class=
"iis_save"
v-else-if=
"noDetail && detail.InvoiceApplyState===1"
>
<button
class=
"normalBtn"
@
click=
"setStatus(2)"
>
{{$t('pub.cancelBtn')}}
</button>
...
...
@@ -156,16 +181,21 @@ export default {
orderList
:
{},
loading
:
true
,
dialogFormVisible
:
false
,
dialogFormVisible2
:
false
,
AccountInfo
:
''
,
msg
:
{
RefuseRemarks
:
''
,
ID
:
0
,
InvoiceApplyState
:
0
,
InvoiceNo
:
''
,
},
noDetail
:
false
,
};
},
methods
:
{
goUrlO
:
function
(
OrderId
)
{
this
.
$router
.
push
({
name
:
'enrollTotal'
,
query
:
{
id
:
OrderId
,
blank
:
'y'
,
tab
:
'报名统计'
}
});
},
goUrlT
:
function
(
path
,
obj
,
title
){
// 跳转团页面
this
.
$router
.
push
({
name
:
path
,
query
:{
"id"
:
obj
,
blank
:
'y'
,
tab
:
title
}})
},
...
...
@@ -182,6 +212,9 @@ export default {
},
setStatus
:
function
(
type
)
{
// 审核发票单据
this
.
msg
.
InvoiceApplyState
=
type
if
(
type
===
3
&&
this
.
msg
.
InvoiceNo
===
''
)
{
return
this
.
$message
.
error
(
'请填写税号!'
)
}
this
.
apipost
(
'InvoiceApply_get_UpdateInvoiceApply'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
)
...
...
@@ -189,7 +222,6 @@ export default {
setTimeout
(()
=>
{
this
.
$router
.
push
({
name
:
'invoicesManager'
,
query
:
{
blank
:
"y"
,}
});
},
1000
)
}
else
{
...
...
@@ -229,6 +261,17 @@ export default {
}
)
},
goUrlSFD
:
function
(
path
,
name
,
OrderId
,
tcnum
,
tcid
)
{
let
obj
=
{
OrderId
:
OrderId
,
tcnum
:
tcnum
,
tcid
:
tcid
}
this
.
$router
.
push
({
name
:
path
,
query
:
{
blank
:
'y'
,
tab
:
name
,
item
:
JSON
.
stringify
(
obj
)}
})
},
},
mounted
()
{
let
id
=
this
.
$route
.
query
.
id
...
...
src/components/SalesModule/enrollTotal.vue
View file @
4e736e6f
...
...
@@ -324,6 +324,18 @@
<span
v-if=
"item.financeList.length===0"
style=
"cursor: default;"
>
暂无数据
</span>
</div>
</div>
<div>
<div>
发票单据:
</div>
<div>
<span
v-for=
"(item2,index2) in item.invoiceApplyList"
:key=
"index2"
>
<span
v-if=
"item2.invoiceApplyState===6"
class=
"groupTourOrder_tickets_blue"
@
click=
"goIisDetail(item2.id)"
>
{{
item2
.
id
}}
</span>
<span
v-else-if=
"item2.invoiceApplyState===1"
class=
"groupTourOrder_tickets_green"
@
click=
"goIisDetail(item2.id)"
>
{{
item2
.
id
}}
</span>
<span
v-else-if=
"item2.invoiceApplyState===5"
class=
"groupTourOrder_tickets_red"
@
click=
"goIisDetail(item2.id)"
>
{{
item2
.
id
}}
</span>
<span
v-else-if=
"item2.invoiceApplyState===3"
class=
"groupTourOrder_tickets_black"
@
click=
"goIisDetail(item2.id)"
>
{{
item2
.
id
}}
</span>
</span>
<span
v-if=
"item.invoiceApplyList.length===0"
style=
"cursor: default;"
>
暂无数据
</span>
</div>
</div>
</td>
</tr>
</tbody>
...
...
@@ -608,7 +620,13 @@
//关闭修改业务员
closeSalseDiv
(){
this
.
showChangeSales
=
false
;
}
},
goIisDetail
:
function
(
id
)
{
// 跳转发票详情页面
this
.
$router
.
push
({
name
:
'invoicesManagerDetail'
,
query
:
{
id
:
id
,
noDetail
:
1
,
blank
:
"y"
,}
});
},
},
mounted
()
{
let
userInfo
=
this
.
getLocalStorage
();
...
...
@@ -632,7 +650,7 @@
this
.
msg
.
CreateBy
=
this
.
$route
.
query
.
EmployeeId
===
undefined
?
"-1"
:
this
.
$route
.
query
.
EmployeeId
;
this
.
msg
.
QStartDate
=
this
.
$route
.
query
.
starTime
===
undefined
?
""
:
this
.
$route
.
query
.
starTime
;
this
.
msg
.
QEndDate
=
this
.
$route
.
query
.
endTime
===
undefined
?
""
:
this
.
$route
.
query
.
endTime
;
if
(
this
.
msg
.
QStartDate
===
""
&&
this
.
msg
.
QEndDate
===
""
)
{
if
(
this
.
msg
.
QStartDate
===
""
&&
this
.
msg
.
QEndDate
===
""
&&
!
this
.
msg
.
tempOrderId
)
{
let
nowDay
=
new
Date
().
toLocaleDateString
();
this
.
msg
.
QStartDate
=
nowDay
;
this
.
msg
.
QEndDate
=
nowDay
;
...
...
src/components/SalesModule/groupTourOrder.vue
View file @
4e736e6f
...
...
@@ -1810,7 +1810,7 @@
</table>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
msg.pageSize
:total=
total
></el-pagination>
layout=
"total,prev, pager, next, jumper"
:page-size=
'msg.pageSize'
:total=
'total'
></el-pagination>
<el-dialog
custom-class=
'w450'
title=
"行程下载"
:visible
.
sync=
"travelControlTripLayerShow"
center
>
<tripDownLoadCommon
ref=
"tripDownLoadCommon"
:tripObj=
"tripObj"
@
headCallBack=
"hideTripDown"
:downType=
"2"
></tripDownLoadCommon>
...
...
src/components/SalesModule/groupTourOrderByTuan.vue
View file @
4e736e6f
...
...
@@ -1739,6 +1739,7 @@
<div
v-if=
"isUpdateOrder"
@
click=
'zhuanLoading = true,OPRemarkMsg.OrderId = item.orderId'
>
OP备注
</div>
<!-- v-if="item.isUpdateOrderCommission" -->
<div
v-if=
"isUpdateOrderCommission"
@
click=
'TCMsg.OrderId = item.orderId, TCMsg.CommissionMinusRate = item.commissionMinusRate,TCMsg.LatestCommissionMoney=item.latestCommissionMoney, TiChengLoading = true'
>
修改提成
</div>
<div
v-if=
'item.confirmFileList.length>0 && ((item.receivableMoney - item.invoiceApplyTotal) > 0)'
@
click=
'goUrlAdd("invoicesManagerAdd", item.orderId, item.tcid, item.customerId)'
>
申请发票
</div>
<div
v-if=
"item.isOrder=='1'&&(item.orderState=='1'||item.orderState=='2')"
@
click=
'setChargeLoss(item)'
>
<span
v-if=
"item.isChargeLossOrders==1"
>
恢复收损单
</span>
<span
v-else
>
设为收损单
</span>
...
...
@@ -1819,6 +1820,18 @@
<span
v-if=
"item.refundFinanceList.length===0"
style=
"cursor: default;"
>
暂无数据
</span>
</div>
</div>
<div>
<div>
发票单据:
</div>
<div>
<span
v-for=
"(item2,index2) in item.invoiceApplyList"
:key=
"index2"
>
<span
v-if=
"item2.invoiceApplyState===6"
class=
"groupTourOrder_tickets_blue"
@
click=
"goIisDetail(item2.id)"
>
{{
item2
.
id
}}
</span>
<span
v-else-if=
"item2.invoiceApplyState===1"
class=
"groupTourOrder_tickets_green"
@
click=
"goIisDetail(item2.id)"
>
{{
item2
.
id
}}
</span>
<span
v-else-if=
"item2.invoiceApplyState===5"
class=
"groupTourOrder_tickets_red"
@
click=
"goIisDetail(item2.id)"
>
{{
item2
.
id
}}
</span>
<span
v-else-if=
"item2.invoiceApplyState===3"
class=
"groupTourOrder_tickets_black"
@
click=
"goIisDetail(item2.id)"
>
{{
item2
.
id
}}
</span>
</span>
<span
v-if=
"item.invoiceApplyList.length===0"
style=
"cursor: default;"
>
暂无数据
</span>
</div>
</div>
</td>
</tr>
</tbody>
...
...
@@ -2053,6 +2066,16 @@
<span
v-if=
"item.refundFinanceList.length===0"
style=
"cursor: default;"
>
暂无数据
</span>
</div>
</div>
<div>
发票单据:
</div>
<div>
<span
v-for=
"(item2,index2) in item.invoiceApplyList"
:key=
"index2"
>
<span
v-if=
"item2.invoiceApplyState===6"
class=
"groupTourOrder_tickets_blue"
@
click=
"goIisDetail(item2.id)"
>
{{item2.id}}
</span>
<span
v-else-if=
"item2.invoiceApplyState===1"
class=
"groupTourOrder_tickets_green"
@
click=
"goIisDetail(item2.id)"
>
{{item2.id}}
</span>
<span
v-else-if=
"item2.invoiceApplyState===5"
class=
"groupTourOrder_tickets_red"
@
click=
"goIisDetail(item2.id)"
>
{{item2.id}}
</span>
<span
v-else-if=
"item2.invoiceApplyState===3"
class=
"groupTourOrder_tickets_black"
@
click=
"goIisDetail(item2.id)"
>
{{item2.id}}
</span>
</span>
<span
v-if=
"item.invoiceApplyList.length===0"
style=
"cursor: default;"
>
暂无数据
</span>
</div>
</td>
</tr>
</tbody>
...
...
@@ -2450,6 +2473,19 @@ export default {
}
},
methods
:
{
goIisDetail
:
function
(
id
)
{
// 跳转发票详情页面
this
.
$router
.
push
({
name
:
'invoicesManagerDetail'
,
query
:
{
id
:
id
,
noDetail
:
1
,
blank
:
"y"
,}
});
},
// 申请发票
goUrlAdd
:
function
(
path
,
OrderId
,
TCID
,
customerId
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
OrderId
:
OrderId
,
TCID
:
TCID
,
customerId
:
customerId
,
blank
:
"y"
,}
});
},
//跳转
goUrlTS
(
path
,
id
,
orderId
,
title
)
{
this
.
$router
.
push
({
...
...
src/components/administrative/ExaminationStatistics.vue
0 → 100644
View file @
4e736e6f
<
template
>
<div
class=
"commissionDetails-box"
>
<!--
<div
class=
"query-box"
>
<ul>
<li>
<input
type=
"button"
class=
"normalBtn"
value=
"导出"
@
click=
"exportExcel"
>
</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>
<div
style=
"height:20px;"
>
</div>
</div>
</
template
>
<
script
>
import
Vue
from
'vue'
import
XLSX
from
'xlsx'
var
FileSaver
=
require
(
'file-saver'
)
export
default
{
data
()
{
return
{
activeName
:
"first"
,
commonName
:
"姓名"
,
loading
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
20
,
ParentId
:
0
,
OrderBy
:
""
,
BName
:
-
1
,
EmName
:
''
,
Periods
:
'201903'
,
RB_Branch_Id
:
-
1
,
RB_Department_Id
:
0
,
},
total
:
0
,
currentPage
:
1
,
columns
:
[],
remoteLoading
:
false
,
total
:
0
,
dataList
:
[],
isReady
:
false
,
multipleSort
:
false
,
loading
:
true
,
CompanyList
:[],
dataListTwo
:
[],
stringPerons
:
''
,
periodsList
:
[],
};
},
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
:
{}
};
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
}
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"
})
FileSaver
.
saveAs
(
tmpDown
,
"提成统计.xls"
);
},
s2ab
(
s
)
{
if
(
typeof
ArrayBuffer
!==
'undefined'
)
{
var
buf
=
new
ArrayBuffer
(
s
.
length
);
var
view
=
new
Uint8Array
(
buf
);
for
(
var
i
=
0
;
i
!=
s
.
length
;
++
i
)
view
[
i
]
=
s
.
charCodeAt
(
i
)
&
0xFF
;
return
buf
;
}
else
{
var
buf
=
new
Array
(
s
.
length
);
for
(
var
i
=
0
;
i
!=
s
.
length
;
++
i
)
buf
[
i
]
=
s
.
charCodeAt
(
i
)
&
0xFF
;
return
buf
;
}
},
filterMethod
(
filters
){
console
.
log
(
"filter"
,
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
.
departmentName
!=
''
){
data
=
data
.
filter
(
item
=>
item
.
departmentName
.
indexOf
(
filters
.
departmentName
)
!=-
1
);
}
if
(
filters
.
emName
!=
''
){
data
=
data
.
filter
(
item
=>
item
.
emName
.
indexOf
(
filters
.
emName
)
!=-
1
);
}
if
(
filters
.
periods
!=
''
){
data
=
data
.
filter
(
item
=>
item
.
periods
.
indexOf
(
filters
.
periods
)
!=-
1
);
}
if
((
filters
.
bName
===
''
||
filters
.
bName
===
'__all__'
)
&&
filters
.
departmentName
===
''
&&
filters
.
createByStr
===
''
){
data
=
dataListTwo
}
this
.
dataList
=
data
console
.
log
(
data
)
},
customCompFunc
(
params
)
{
if
(
params
.
type
===
"see"
)
{
this
.
getInfo
(
params
.
data
)
}
},
getCompanyList
()
{
//获取公司列表
this
.
apipost
(
"admin_get_BranchGetList"
,
this
.
getCompanyMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
x
.
disabled
=
false
;
});
this
.
CompanyList
=
data
;
this
.
initColums
();
}
else
{
}
},
err
=>
{}
);
},
initColums
()
{
this
.
isReady
=
false
;
let
that
=
this
;
let
companyList
=
[];
let
periodsList
=
this
.
periodsList
;
this
.
CompanyList
.
forEach
(
x
=>
{
let
item
=
{};
item
.
label
=
x
.
BName
;
item
.
value
=
x
.
BName
;
companyList
.
push
(
item
);
});
let
ppList
=
[];
this
.
dataList
.
forEach
(
x
=>
{
ppList
.
push
({
label
:
x
.
emName
,
value
:
x
.
emName
})
})
console
.
log
(
companyList
)
let
company
=
{
field
:
"bName"
,
title
:
"公司"
,
width
:
40
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
result
:
""
,
filterMultiple
:
false
,
filters
:
companyList
,
type
:
"select"
// filterMultiple: false,
// filters: companyList,
// result: "",
// type: "select",
// orderBy: "asc"
// isFrozen:true
};
let
department
=
{
field
:
"departmentName"
,
title
:
"部门"
,
width
:
80
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
result
:
""
,
filterMultiple
:
false
,
filters
:
companyList
,
type
:
"text"
};
let
userName
=
{
field
:
"emName"
,
title
:
"姓名"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
result
:
""
,
filterMultiple
:
false
,
filters
:
ppList
,
type
:
"select"
};
let
periods
=
{
field
:
"periods"
,
title
:
"期数"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
result
:
""
,
filterMultiple
:
false
,
filters
:
periodsList
,
type
:
"select"
};
let
rejectCount
=
{
field
:
"rejectCount"
,
title
:
"单据驳回次数"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
100
,
orderBy
:
""
,
};
let
receivedPeopleCount
=
{
field
:
"receivedPeopleCount"
,
title
:
"收客总人数"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
100
,
orderBy
:
""
,
};
let
orderCount
=
{
field
:
"orderCount"
,
title
:
"订单数量"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
};
let
uncollected
=
{
field
:
"uncollected"
,
title
:
"未收款金额"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
return
`<span>
${
rowData
.
uncollected
<=
0
?
''
:
that
.
moneyFormat
(
rowData
.
uncollected
)}
</span>`
}
};
let
lateCount
=
{
field
:
"lateCount"
,
title
:
"迟到次数"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
};
let
leaveEarlyCount
=
{
field
:
"leaveEarlyCount"
,
title
:
"早退次数"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
};
let
complainCount
=
{
field
:
"complainCount"
,
title
:
"投诉次数"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
};
let
discountPrice
=
{
field
:
"discountPrice"
,
title
:
"少价金额"
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
width
:
80
,
orderBy
:
""
,
formatter
:
function
(
rowData
,
rowIndex
,
pagingIndex
,
field
)
{
return
`<span>
${
rowData
.
discountPrice
<=
0
?
''
:
that
.
moneyFormat
(
rowData
.
discountPrice
)}
</span>`
}
};
this
.
columns
=
[];
this
.
columns
.
push
(
company
);
this
.
columns
.
push
(
department
);
this
.
columns
.
push
(
userName
);
this
.
columns
.
push
(
periods
);
this
.
columns
.
push
(
rejectCount
);
this
.
columns
.
push
(
receivedPeopleCount
);
this
.
columns
.
push
(
orderCount
);
this
.
columns
.
push
(
uncollected
);
this
.
columns
.
push
(
lateCount
);
this
.
columns
.
push
(
leaveEarlyCount
);
this
.
columns
.
push
(
complainCount
);
this
.
columns
.
push
(
discountPrice
);
this
.
isReady
=
true
;
},
sortChange
(
param
)
{
console
.
log
(
param
)
// if(param.sumMoney==''){
if
(
param
.
complainCount
!=
''
){
this
.
msg
.
OrderBy
=
'a.ComplainCount '
+
param
.
complainCount
}
if
(
param
.
discountPrice
!=
''
){
this
.
msg
.
OrderBy
=
'a.DiscountPrice '
+
param
.
discountPrice
}
if
(
param
.
lateCount
!=
''
){
this
.
msg
.
OrderBy
=
'a.LateCount '
+
param
.
lateCount
}
if
(
param
.
leaveEarlyCount
!=
''
){
this
.
msg
.
OrderBy
=
'a.LeaveEarlyCount '
+
param
.
leaveEarlyCount
}
if
(
param
.
orderCount
!=
''
){
this
.
msg
.
OrderBy
=
'a.OrderCount '
+
param
.
orderCount
}
if
(
param
.
receivedPeopleCount
!=
''
){
this
.
msg
.
OrderBy
=
'a.ReceivedPeopleCount '
+
param
.
receivedPeopleCount
}
if
(
param
.
rejectCount
!=
''
){
this
.
msg
.
OrderBy
=
'a.RejectCount '
+
param
.
rejectCount
}
if
(
param
.
uncollected
!=
''
){
this
.
msg
.
OrderBy
=
'a.Uncollected '
+
param
.
uncollected
}
//this.tableData = this.orderBy(d, ["incomeVal"], param.income).results;
this
.
getList
();
// }else{
// let d=JSON.parse(JSON.stringify(this.dataList))
// this.dataList = this.orderBy(d, ["sumMoney"], param.sumMoney).results;
// }
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
getList
()
{
this
.
loading
=
true
;
this
.
apipost
(
"user_get_assessment_simple"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
;
this
.
total
=
res
.
data
.
data
.
count
;
this
.
dataListTwo
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
dataList
))
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
null
);
},
//切换排序
handleClick
(
tab
,
event
)
{
if
(
this
.
activeName
==
"first"
)
{
// this.commonName='姓名'
this
.
msg
.
OrderStr
=
"UserId"
;
}
else
{
// this.commonName='公司名'
this
.
msg
.
OrderStr
=
"RB_Branch_Id"
;
}
this
.
getList
();
},
//跳转
getInfo
(
item
)
{
var
dateStr
=
item
.
periods
;
var
year
=
dateStr
.
substring
(
0
,
4
);
var
month
=
dateStr
.
substring
(
4
,
6
);
var
nextMonthFirstDay
=
new
Date
(
year
,
month
,
1
);
var
oneDay
=
1000
*
60
*
60
*
24
;
var
entDay
=
new
Date
(
nextMonthFirstDay
-
oneDay
).
Format
(
"yyyy-MM-dd"
);
var
startDay
=
year
+
"-"
+
month
+
"-"
+
"01"
;
var
userId
=
item
.
userId
;
this
.
$router
.
push
({
path
:
"enrollTotal"
,
query
:
{
EmployeeId
:
userId
,
starTime
:
startDay
,
endTime
:
entDay
,
blank
:
'y'
}
});
}
},
mounted
()
{
this
.
msg
.
pageSize
=
10000
;
//不分页
this
.
msg
.
ParentId
=
this
.
$route
.
query
.
ParentId
;
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
cont
=
dt
.
getMonth
()
for
(
let
i
=
1
;
i
<=
cont
;
i
++
){
let
o
=
i
<
10
?
'0'
+
i
:
i
;
this
.
periodsList
.
push
({
label
:
`2019
${
o
}
`
,
value
:
`2019
${
o
}
`
,
})
}
this
.
getList
();
this
.
getCompanyList
();
},
created
(){
Vue
.
component
(
'commission-table-operation'
,{
template
:
`<div style='width:80px;height:40px;background:#fff;text-align:center;position: relative;left:-5px;padding-top: 6px;padding-top:6px;'><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
},
index
:{
type
:
Number
}
},
methods
:{
see
(){
let
params
=
{
type
:
'see'
,
data
:
this
.
rowData
};
this
.
$emit
(
'on-custom-comp'
,
params
);
}
}
})
}
};
</
script
>
<
style
>
.commissionDetails-box
.el-button.is-circle
{
padding
:
5px
!important
;}
.commissionDetails-box
.v-table-body-cell
span
{
display
:
block
;
width
:
100%
;
}
</
style
>
src/router/config.js
View file @
4e736e6f
...
...
@@ -282,6 +282,14 @@ export default {
title
:
'提成详情'
},
},
{
path
:
'/ExaminationStatistics'
,
//考核管理
name
:
'ExaminationStatistics'
,
component
:
resolve
=>
require
([
'@/components/administrative/ExaminationStatistics'
],
resolve
),
meta
:
{
title
:
'考核管理'
},
},
{
path
:
'/leaderManagement'
,
//领队导游管理
name
:
'leaderManagement'
,
...
...
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