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
263c8da2
Commit
263c8da2
authored
Jul 23, 2019
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增机票分摊详情
parent
45087608
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
738 additions
and
7 deletions
+738
-7
BasicDocuments.vue
src/components/FinancialModule/BasicDocuments.vue
+4
-2
FinancialDocumentsDetail.vue
src/components/FinancialModule/FinancialDocumentsDetail.vue
+5
-1
AirTicketLoss.vue
src/components/FinancialModule/ReportForm/AirTicketLoss.vue
+39
-4
AirTicketLossDetail.vue
...onents/FinancialModule/ReportForm/AirTicketLossDetail.vue
+682
-0
config.js
src/router/config.js
+8
-0
No files found.
src/components/FinancialModule/BasicDocuments.vue
View file @
263c8da2
...
...
@@ -319,7 +319,10 @@
<p>
附加说明:
<span
class=
"fr"
v-if=
"GetDetail.ComplainID > 0"
@
click=
"goUrl('ComplaintsDetail', GetDetail.ComplainID,GetDetail.OrderID)"
>
<span
style=
"color:#000"
>
投诉单号:
</span>
<span
class=
"cursorpointer text-decoration"
>
{{GetDetail.ComplainID}}
</span></span></p>
<table
border=
"1"
bordercolor=
"#D2D2D2"
style=
"border-collapse:collapse;margin-top:15px;"
width=
"100%"
v-if=
"GetDetail.TCIDAndTCNUMList.length>0"
>
<tr
v-for=
"(o,ox) in GetDetail.TCIDAndTCNUMList"
class=
"_fujiashuoming_tr"
>
<td
:colspan=
"4"
>
{{o.TCNUM}}({{o.TCID}})
</td>
<td
:colspan=
"3"
>
{{o.TCNUM}}({{o.TCID}})
<span
v-if=
"GetDetail.IsShowPlanUrl === 1"
style=
"margin-left:20px;"
>
旅客意见/{{o.GuestSurveyNum}}份
</span>
</td>
<td
@
click=
"jumpPage('TravelControlList',o.TCNUM,1)"
>
<span
class=
"_jump_page _font_bold"
>
查看团队
</span>
</td>
<td
@
click=
"jumpPage('RegistrationList',o.TCID,7)"
>
<span
class=
"_jump_page _font_bold"
>
查看报名
</span>
</td>
<td
@
click=
"GetDetail.TCIDAndTCNUMList.length==1?jumpPage('TeamBalancePayment',o.TCID,5):jumpPage('TeamBalancePayment',o.TCID,6)"
>
<span
class=
"_jump_page _font_bold"
>
团队收支
</span>
</td>
...
...
@@ -2265,7 +2268,6 @@ export default {
this
.
GetDetail
=
data
;
this
.
showModel
=
true
this
.
FrID
=
data
.
FrID
console
.
log
(
this
.
GetDetail
,
'GetDetail.OrderId'
);
this
.
ChongDiMsg
.
Types
=
''
this
.
ChongDiMsg
.
ClientType
=
data
.
Type
===
2
?
data
.
ClientType
:
''
this
.
ChongDiMsg
.
ClientID
=
data
.
Type
===
2
?
data
.
ClientID
:
''
...
...
src/components/FinancialModule/FinancialDocumentsDetail.vue
View file @
263c8da2
...
...
@@ -383,7 +383,10 @@
<table
border=
"1"
bordercolor=
"#D2D2D2"
style=
"border-collapse:collapse;margin-top:15px;"
width=
"100%"
v-if=
"GetDetail.TCIDAndTCNUMList.length>0"
>
<tr
v-for=
"(o,ox) in GetDetail.TCIDAndTCNUMList"
class=
"_fujiashuoming_tr"
>
<td
:colspan=
"4"
v-if=
"GetDetail.Is_Merge===1"
>
单据号:
{{
o
.
FinanceId
}}
</td>
<td
:colspan=
"4"
>
{{
o
.
TCNUM
}}
(
{{
o
.
TCID
}}
)
</td>
<td
:colspan=
"3"
>
{{
o
.
TCNUM
}}
(
{{
o
.
TCID
}}
)
<span
v-if=
"GetDetail.IsShowPlanUrl === 1"
style=
"margin-left:20px;"
>
旅客意见/
{{
o
.
GuestSurveyNum
}}
份
</span>
</td>
<td
@
click=
"jumpPage('TravelControlList',o.TCNUM,1)"
>
<span
class=
"_jump_page _font_bold"
>
查看团队
</span>
</td>
<td
@
click=
"jumpPage('RegistrationList',o.TCID,7)"
>
<span
class=
"_jump_page _font_bold"
>
查看报名
</span>
</td>
<td
@
click=
"GetDetail.TCIDAndTCNUMList.length==1?jumpPage('TeamBalancePayment',o.TCID,5):jumpPage('TeamBalancePayment',o.TCID,6)"
>
<span
class=
"_jump_page _font_bold"
>
团队收支
</span>
</td>
...
...
@@ -1303,6 +1306,7 @@ export default {
this
.
FrID
=
this
.
GetDetail
.
FrID
;
this
.
SourceID
=
this
.
GetDetail
.
SourceID
;
this
.
Callback
=
this
.
GetDetail
.
Callback
;
// 拼接团号显示团信息
let
str
=
''
;
if
(
data
.
TCIDList
.
length
>
0
){
...
...
src/components/FinancialModule/ReportForm/AirTicketLoss.vue
View file @
263c8da2
<
style
>
.AirClick
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
</
style
>
<
template
>
<div
class=
"AirTicketApp"
>
...
...
@@ -26,6 +29,11 @@
<th
v-if=
"index!=0 && index!=ColNameList.length"
colspan=
"2"
v-for=
"(item,index) in ColNameList"
:key=
"index"
>
{{
item
}}
</th>
<th
v-if=
"index==ColNameList.length"
v-for=
"(item,index) in ColNameList"
:key=
"index"
>
{{
item
}}
</th>
</tr>
<tr>
<td></td>
<td
v-for=
"item in LossList"
:class=
"
{'AirClick':item.Value!='损失占比'}" @click="goToDetail(item)">
{{
item
.
Value
}}
</td>
<td>
{{
SunMoney
}}
</td>
</tr>
<tr
v-for=
"(item,index) in Rlist"
:key=
"index"
>
<td>
{{
item
.
BranchName
}}
</td>
<td
v-for=
"(cl,index) in item.LossTL"
:key=
"index"
>
{{
cl
}}
</td>
...
...
@@ -41,8 +49,10 @@ export default {
return
{
loading
:
false
,
ColNameList
:[],
LossList
:[],
SunMoney
:
0
,
Rlist
:[],
value1
:
""
,
value1
:
[]
,
msg
:{
StartTime
:
""
,
EndTime
:
""
,
...
...
@@ -76,16 +86,41 @@ export default {
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
ColNameList
=
res
.
data
.
data
.
ColNameList
;
this
.
Rlist
=
res
.
data
.
data
.
Rlist
;
this
.
LossList
=
res
.
data
.
data
.
LossList
[
0
].
LossTL
;
this
.
SunMoney
=
res
.
data
.
data
.
LossList
[
0
].
TotalMoney
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
loading
=
false
;
},
err
=>
{})
},
//跳转至详情
goToDetail
(
item
){
if
(
item
.
Value
!=
'损失占比'
){
this
.
$router
.
push
({
name
:
'AirTicketLossDetail'
,
query
:
{
msg
:
JSON
.
stringify
(
item
),
blank
:
"y"
,
}
});
}
}
},
mounted
(){
//默认查询当月第一个到最后一天日期
var
now
=
new
Date
();
var
month
=
now
.
getMonth
()
+
1
;
//js获取到的是月份是 0-11 所以要加1
var
year
=
now
.
getFullYear
();
var
nextMonthFirstDay
=
new
Date
([
year
,
month
+
1
,
1
].
join
(
'-'
)).
getTime
();
var
oneDay
=
1000
*
24
*
60
*
60
;
var
monthLast
=
new
Date
(
nextMonthFirstDay
-
oneDay
).
getDate
()
if
(
month
<
10
){
month
=
'0'
+
month
;
}
var
startDate
=
[
year
,
month
,
1
].
join
(
'-'
);
var
endDate
=
[
year
,
month
,
monthLast
].
join
(
'-'
);
this
.
value1
.
push
(
startDate
,
endDate
);
this
.
getList
();
}
}
...
...
src/components/FinancialModule/ReportForm/AirTicketLossDetail.vue
0 → 100644
View file @
263c8da2
<
style
scoped
>
.page_fnDm
{
background-color
:
white
}
.query-box
{
overflow
:
inherit
}
._nav
{
margin
:
20px
0
0
0
;
background-color
:
#f5f5f5
;}
._nav
li
{
float
:
left
;
font-size
:
14px
;
color
:
#666666
;
padding
:
15px
20px
;
cursor
:
pointer
;
position
:
relative
;
background-color
:
#f1f1f1
;
margin-right
:
5px
}
._nav
li
._active
{
background-color
:
#FFFFFF
;
color
:
#333333
}
._nav
li
._active
::after
{
content
:
""
;
width
:
20px
;
height
:
3px
;
background-color
:
#E95252
;
display
:
inline-block
;
position
:
absolute
;
bottom
:
0
;
left
:
38%
;}
.el-range-editor.el-input__inner
{
border-radius
:
0
}
.query-box
{
border
:
none
}
.hight_query
{
position
:
relative
;}
.hight_query
span
{
height
:
34px
;
line-height
:
34px
;
color
:
#E95252
}
.hight_query
span
.icon-gengduo
{
font-size
:
12px
}
.hight_query
span
em
{
text-decoration
:
underline
;
cursor
:
pointer
;}
.hight_query_box
{
position
:
absolute
;
background-color
:
white
;
z-index
:
2000
;
right
:
200px
;
width
:
800px
;}
._hqb_shadow
{
box-shadow
:
3px
2px
10px
rgb
(
204
,
203
,
203
);
border
:
1px
solid
#ececec
;}
.query-box
ul
{
overflow
:
initial
;}
.hqb_t
{
padding
:
10px
20px
;
font-size
:
16px
;
background-color
:
#E95252
;
border
:
1px
solid
#E95252
;
color
:
#fff
;
text-align
:
center
;
margin-bottom
:
15px
}
.query-box
li
:last-child
{
float
:
left
}
.query-box
>
ul
>
li
:last-child
{
float
:
right
;}
.query-box
.hight_query
ul
.el-input
{
width
:
inherit
}
.hight_query_box
ul
li
{
margin-top
:
0
;
float
:
left
;
margin-right
:
15px
}
.hight_query_box
ul
li
label
{
font-size
:
14px
}
.hight_query_box
.el-form
{
padding
:
0
20px
}
.hight_query_box
ul
li
._hqb_btn
{
float
:
right
;
margin-right
:
25px
;
padding-top
:
5px
;
position
:
inherit
}
.Receipt_box
{
padding
:
15px
;
color
:
#c94052
;
width
:
614px
;
background-color
:
rgba
(
242
,
242
,
242
,
1
);
border
:
1px
solid
rgba
(
228
,
228
,
228
,
1
)}
.Receipt_box.color_blur
{
color
:
#106BAF
;}
.Receipt_box.color_blur
.rb_stit
span
{
display
:
inline-block
;
border-bottom
:
2px
solid
#106BAF
;
padding
:
0
20px
}
.rb_tit
{
font-size
:
18px
;
text-align
:
center
}
.rb_stit
{
font-size
:
14px
;
text-align
:
center
}
.rb_stit
span
{
display
:
inline-block
;
border-bottom
:
2px
solid
#C94052
;
padding
:
0
20px
}
.rb_top_row
{
display
:
flex
;
justify-content
:
space-between
;
font-size
:
12px
;}
.rb_top_row
span
._r_name
{
color
:
#333333
}
.rb_top_row
span
._r_bold
{
font-weight
:
bold
}
.rb_top_row
._r_time
span
{
color
:
#333333
}
._r_mb5
{
margin-bottom
:
5px
;}
.Receipt_table
{
width
:
100%
;
font-size
:
14px
;
text-align
:
center
}
.Receipt_table
.th
{
font-weight
:
200
!important
}
._r_mt10
{
margin-top
:
10px
;}
._bg__
{
display
:
inline-block
;
padding
:
2px
8px
;
color
:
white
;
border-radius
:
4px
}
._bg_red
{
background-color
:
#E95252
;}
._bg_green
{
background-color
:
#2BB87C
}
.text_d
{
text-decoration
:
underline
;
cursor
:
pointer
;}
.PingFangSC
{
font-weight
:
bold
}
.Bill_par
{
position
:
relative
;}
tr
th
,
tr
td
{
text-align
:
left
;
padding-left
:
20px
;}
tr
._item_list
{
border-bottom
:
1px
solid
#E5E5E5
;
height
:
78px
;}
tr
._item_list
td
{
border-bottom
:
1px
solid
#e5e5e5
;
padding
:
10px
;}
/* tr._t_head th{border-top: 1px solid #e5e5e5;} */
tr
._item_list
td
:first-child
{
border-left
:
1px
solid
#e5e5e5
;}
tr
._item_list
td
:last-child
{
border-right
:
1px
solid
#e5e5e5
;}
._head_img
{
width
:
28px
;
height
:
28px
;
border-radius
:
50%
;
vertical-align
:
middle
;}
._btn_group
{
font-size
:
14px
;}
.icon-daiqueren
{
color
:
#4BCA81
}
.icon-yiqueren
{
color
:
#4BCA81
}
.icon-yiquxiao
{
color
:
#959595
}
.icon-shenhebohui
{
color
:
#E95252
}
.icon-icon-zancun
{
color
:
#FF9C01
}
.singeRowTable
tr
:hover
{
background-color
:
white
}
._TradeWayList
{
padding
:
5px
10px
;
background-color
:
#EEEEEE
;
border-radius
:
4px
;
margin
:
10px
0
;
width
:
230px
}
._bold
{
font-weight
:
bold
}
._bank_name
,
._bank_type
{
display
:
inline-block
;
background-color
:
#333333
;
color
:
white
;
padding
:
2px
4px
;
border-radius
:
4px
;
margin-left
:
10px
;}
._bank_name
{
margin-left
:
10px
;}
._bank_type
{
background-color
:
#2AAEF2
}
._bank_type2
{
background-color
:
#FF9C01
}
._font_init
{
color
:
#333333
;
font-size
:
12px
;
vertical-align
:
top
;}
.InfoChangeLog
{
height
:
auto
;
max-height
:
220px
;
background-color
:
#FFFFFF
;}
.changLogList
{
padding-left
:
20px
;
max-height
:
180px
;
overflow
:
auto
;}
.changLogList_l
{
border-left
:
1px
solid
#E9E9E9
;
position
:
relative
;
padding-bottom
:
10px
;
padding-left
:
20px
;
padding-top
:
10px
;}
._radius_green
{
background-color
:
#47BF8C
;
width
:
7px
;
height
:
7px
;
border-radius
:
50%
;
display
:
inline-block
;
position
:
absolute
;
left
:
-4px
;
top
:
19px
;}
.changLog_time
{
color
:
#666666
;
font-size
:
12px
;
display
:
inline-block
;
padding-right
:
10px
}
._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
;}
._icon_btn
i
.edit
{
background-color
:
#00C6FF
;
font-size
:
16px
;}
._icon_btn
i
.edit
:hover
{
background-color
:
#59daff
}
._icon_btn
i
.edit
:active
{
background-color
:
#00b8ec
}
._icon_btn
i
.icon-sousuo
{
background-color
:
#47BF8C
;}
._icon_btn
i
.icon-sousuo
:hover
{
background-color
:
#66bb97
}
._icon_btn
i
.icon-sousuo
:active
{
background-color
:
#35ab79
}
._icon_btn
i
.icon-ico_commodity_defaul
{
background-color
:
#F16C3C
;}
._icon_btn
i
.icon-ico_commodity_defaul
:hover
{
background-color
:
#e87c54
}
._icon_btn
i
.icon-ico_commodity_defaul
:active
{
background-color
:
#f76630
}
._icon_btn
i
.icon-quxiao1
{
background-color
:
#E95252
;}
._icon_btn
i
.icon-quxiao1
:hover
{
background-color
:
#ea6d6d
}
._icon_btn
i
.icon-quxiao1
:active
{
background-color
:
#e42d2d
}
._icon_btn
i
.icon-zhuanjiao1
{
background-color
:
#E6A014
;
font-size
:
16px
;}
._icon_btn
i
.icon-zhuanjiao1
:hover
{
background-color
:
rgb
(
235
,
184
,
84
)}
._icon_btn
i
.icon-zhuanjiao1
:active
{
background-color
:
rgb
(
223
,
150
,
6
)}
._tag_span
{
background-color
:
rgba
(
64
,
158
,
255
,
.1
);
display
:
inline-block
;
padding
:
0
5px
;
height
:
22px
;
line-height
:
20px
;
font-size
:
12px
;
color
:
#409eff
;
border-radius
:
4px
;
box-sizing
:
border-box
;
border
:
1px
solid
rgba
(
64
,
158
,
255
,
.2
);
white-space
:
nowrap
;
margin-bottom
:
4px
;}
._tag_span._tag_warr
{
background-color
:
rgba
(
103
,
194
,
58
,
.1
);
border-color
:
rgba
(
103
,
194
,
58
,
.2
);
color
:
#67c23a
;}
._fex_cen
{
display
:
flex
;
align-items
:
center
}
._pad5
{
padding
:
5px
10px
;}
._color_gar
{
color
:
gray
}
._TCIDAndTCNUMList
{
display
:
flex
;
}
.JumpDivTitleOne
{
margin-left
:
20px
;
font-size
:
14px
;
}
.JumpDivTitleTwo
{
margin
:
10px
0
0
20px
;
font-size
:
14px
;
}
.JumpSpan
{
margin
:
0
20px
;
}
</
style
>
<
template
>
<div
class=
"page_fnDm page_RecPayQuery"
@
keyup
.
enter=
"resetPageIndex(),getPageList()"
>
<div
class=
"query-box"
>
<el-form
class=
"_info_box clearfix"
label-width=
"110px"
>
<el-row
style=
"padding:15px 20px 0 0;"
>
<el-col
:span=
"4"
>
<el-form-item
label=
"所属公司:"
>
<el-select
filterable
v-model=
'msg.RB_Branch_Id'
class=
""
>
<el-option
:value=
"-1"
label=
"不限"
></el-option>
<el-option
v-for=
'item in CompanyList'
:label=
'item.BName'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<template>
<el-col
:span=
"4"
>
<el-form-item
label=
"审核状态:"
>
<el-select
filterable
v-model=
'msg.Status'
class=
""
>
<el-option
key=
"-1"
value=
"-1"
label=
"不限"
></el-option>
<el-option
key=
"0"
value=
"0"
label=
"暂存"
></el-option>
<el-option
key=
"1"
value=
"1"
label=
"审核中"
></el-option>
<el-option
key=
"2"
value=
"2"
label=
"通过"
></el-option>
<el-option
key=
"3"
value=
"3"
label=
"驳回"
></el-option>
<el-option
key=
"4"
value=
"4"
label=
"作废"
></el-option>
<el-option
key=
"5"
value=
"5"
label=
"出纳暂存"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"发团日期:"
>
<el-date-picker
class=
"h34"
v-model=
"missionDate"
@
change=
"timeAdd()"
type=
"daterange"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
</el-col>
</
template
>
</el-row>
</el-form>
<ul
class=
"clearfix"
>
<li
class=
"hight_query"
>
<button
class=
"hollowFixedBtn"
@
click=
"resetPageIndex(),getPageList()"
>
{{$t('pub.searchBtn')}}
</button>
</li>
</ul>
<div
class=
"JumpDivTitleOne"
>
应收金额:{{SumYingShou}}
<span
class=
"JumpSpan"
>
实收金额:{{SumShiShou}}
</span>
待收金额:{{SumDaiShou}}
</div>
<div
class=
"JumpDivTitleTwo"
>
应付金额:{{SumYingFu}}
<span
class=
"JumpSpan"
>
实付金额:{{SumShiFu}}
</span>
待付金额:{{SumDaiFu}}
</div>
</div>
<div
class=
"_fnDm_content"
v-loading=
'loading'
>
<v-table
is-horizontal-resize
column-width-drag
style=
"width:100%"
:columns=
"columns"
:table-data=
"DataList"
:total=
'total'
:pageSize=
'msg.PageSize'
:pageIndex=
'msg.PageIndex'
:handleCurrentChange=
'handleCurrentChanges'
:row-height=
'100'
multiple-sort
>
<!-- 多个排序 -->
</v-table>
</div>
</div>
</template>
<
script
>
import
myBill
from
"../FinancialSubmodule/BillModule.vue"
;
import
myrbvBill
from
"../FinancialSubmodule/ReceivablesModule.vue"
;
import
myhrBill
from
"../FinancialSubmodule/MergeBillModule.vue"
;
import
Vue
from
'vue'
import
{
parse
}
from
'semver'
;
// 自定义列组件
Vue
.
component
(
'table-BranchName'
,{
//查看操作按钮
template
:
`<span>{{rowData.BranchName}}</span>`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
},
methods
:{
goUrl
(
path
){
this
.
$router
.
push
({
path
:
'/'
+
path
,
query
:
{
id
:
this
.
rowData
.
FrID
,
blank
:
'y'
,
tab
:
this
.
rowData
.
FrID
+
'单据详情'
}
})
},
}
})
Vue
.
component
(
'table-operation'
,{
//查看操作按钮
template
:
`<span>
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<i style="width: 30px;
height: 30px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
margin-right: 10px;
cursor: pointer;
background-color: #47BF8C;
outline: none;"
class="iconfont icon-sousuo" @click="goUrl('FinancialDocumentsDetail')">
</i>
</el-tooltip>
</span>`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
},
methods
:{
goUrl
(
path
){
this
.
$router
.
push
({
path
:
'/'
+
path
,
query
:
{
id
:
this
.
rowData
.
FrID
,
blank
:
'y'
,
tab
:
this
.
rowData
.
FrID
+
'单据详情'
}
})
},
}
})
Vue
.
component
(
'table-RecPay'
,{
//收支样式
template
:
`
<span>
<span v-if="rowData.Type==2" style="display: inline-block;
padding: 2px 8px;
color: white;
background-color: #E95252;
line-height: 16px;
border-radius: 4px;">
支出
</span>
<span v-if="rowData.Type==1" style="display: inline-block;
padding: 2px 8px;
color: white;
background-color: #2BB87C;
line-height: 16px;
border-radius: 4px;">
收入
</span>
</span>`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
},
methods
:{
}
})
Vue
.
component
(
'table-BillRVB'
,{
//单据样式
template
:
`
<el-popover
popper-class="detailsIT_Journal"
placement="bottom-start"
trigger="click">
<template v-if="rowData.Type!=1&&rowData.modelShow&&(rowData.Is_Merge==0||rowData.Is_Merge==null)">
<my-Bill :ID="rowData.FrID" :width="widthSon" :color="colorSon"></my-Bill>
</template>
<template v-else-if="rowData.Type==1&&rowData.modelShow&&(rowData.Is_Merge==0||rowData.Is_Merge==null)">
<my-RVB-Bill :ID="rowData.FrID" :width="widthSon" :color="colorSon"></my-RVB-Bill>
</template>
<template v-else-if="rowData.Is_Merge==1&&rowData.modelShow">
<my-HB-Bill :ID="rowData.FrID" :width="widthSon" :color="colorSon"></my-HB-Bill>
</template>
<span slot="reference" @click="rowData.modelShow = true,conSole(rowData)" style="text-decoration: underline;cursor: pointer;font-weight: bold" >{{rowData.FrID}}</span>
</el-popover>`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
},
components
:
{
"my-Bill"
:
myBill
,
"my-RVB-Bill"
:
myrbvBill
,
"my-HB-Bill"
:
myhrBill
,
},
data
(){
return
{
widthSon
:
'700px'
,
colorSon
:
"#f5f5f5"
,
}
},
methods
:{
conSole
(
rowData
){
console
.
log
(
rowData
)
}
}
})
Vue
.
component
(
'table-Info'
,{
//关联信息
template
:
`
<div>
<template v-if="rowData.TCIDAndTCNUMList.length>0">
<p class="_TCIDAndTCNUMList" style="display: flex;">
<span>团号:</span>
<template v-if="rowData.TCIDAndTCNUMList&&rowData.TCIDAndTCNUMList.length>0">
<p><span v-for="(i,ix) in rowData.TCIDAndTCNUMList">{{i.TCNUM}}({{i.TCID}}) <span v-if="ix!=rowData.TCIDAndTCNUMList.length-1">,</br></span></span></p>
</template>
<template v-else>
<span>无</span>
</template>
</p>
<p v-if="rowData.OrderID>0 && rowData.OrderSource==8">单号:<span class="">{{rowData.OrderID}}</span></p>
</template>
<template v-else-if="rowData.OrderSource==8 && rowData.TCIDAndTCNUMList.length==0">
<p class="_TCIDAndTCNUMList">暂无团期信息</p>
</template>
<template v-else-if="rowData.OrderSource==4 && rowData.TCIDAndTCNUMList.length==0">
<p class="_TCIDAndTCNUMList" style="text-decoration: underline;cursor: pointer;" @click="goTicketPage(rowData)">机票编号:{{rowData.SourceID}}</p>
<p style="margin-top: 5px;">线路:<span>{{rowData.LineName?rowData.LineName:'机票尚未选择线路'}}</span></p>
</template>
<template v-else-if="rowData.OrderSource==9 && rowData.TCIDAndTCNUMList.length==0">
<p class="_TCIDAndTCNUMList">国内票务期数:{{rowData.Term}}</p>
</template>
<template v-else-if="rowData.OrderSource==10 && rowData.TCIDAndTCNUMList.length==0">
<p class="_TCIDAndTCNUMList">签证产品编号:{{rowData.SourceID}}</p>
</template>
<template v-else-if="rowData.OrderSource==0 || rowData.OrderSource==null">
<p class="_TCIDAndTCNUMList">{{ rowData.BranchName }}-{{rowData.DepartName}} </p>
</template>
<template v-else>
<p class="_TCIDAndTCNUMList">暂无</p>
</template>
</div>`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
},
methods
:{
goTicketPage
(
data
)
{
// 跳转机票
this
.
$router
.
push
({
name
:
'TicketManager'
,
query
:{
id
:
data
.
SourceID
,
blank
:
'y'
,
tab
:
'票务管理'
}
})
},
}
})
Vue
.
component
(
'table-CostType'
,{
//费用类型
template
:
`
<div>
<template v-for="(s,si) in rowData.CostTypeList">
<span style="background-color: rgba(64,158,255,.1);display: inline-block;padding: 0 5px;height: 22px;line-height: 20px;font-size: 12px;color: #646464;border-radius: 4px;box-sizing: border-box;border: 1px solid rgba(64,158,255,.2);white-space: nowrap;margin-bottom: 4px;">{{s}}</span></br>
</template>
</div>`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
},
methods
:{
}
})
Vue
.
component
(
'table-TradeWay'
,{
//交易方式
template
:
`
<div>
<template v-if="rowData.TradeWayList&&rowData.TradeWayList.length>0">
<div class="_TradeWayList" v-for="(tw,twIn) in rowData.TradeWayList" style="line-height: normal !important;padding: 5px 10px;background-color: #EEEEEE;border-radius: 4px;margin: 10px 0;width:230px">
<p><span style="font-weight: bold;color:#333333">{{tw.Alias}}</span><span class="_bank_name" style="height:20px;;display: inline-block;background-color: #333333;color: white;padding: 2px 4px;border-radius: 4px;margin-left:10px;margin-letf:10px">{{rowData.TradeWayList[0].TypeName}}</span><span style="height:20px;display: inline-block;background-color: #333333;color: white;padding: 2px 4px;border-radius: 4px;margin-left:10px;" :style="{'background-color':tw.AccountType=='私'?'#2AAEF2':'#FF9C01'}">{{tw.AccountType==""?'无':tw.AccountType}}</span> </p>
<p style="color:#333333">{{tw.BankNo}}</p>
</div>
</template>
<template v-else>
<div class="_pad5">
无
</div>
</template>
</div>`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
},
methods
:{
}
})
Vue
.
component
(
'table-Money'
,{
//金额
template
:
`
<span>
<p style="line-height:20px">{{rowData.Type==1?'应收':'应付'}}:<span>{{rowData.Money}}</span></p>
<p style="line-height:20px">{{rowData.Type==1?'实收':'实付'}}:<span>{{rowData.PayMoney}}</span></p>
</span>`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
}
})
Vue
.
component
(
'table-ClientTypeName'
,{
//付款对象
template
:
`
<span>
<span style="color: gray">{{rowData.Type==2?rowData.ClientTypeName+':':'汇款人:'}}</span><span>{{rowData.RemitterName}}</span>
</span>
`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
}
})
Vue
.
component
(
'table-StatusStr'
,{
//单据状态
template
:
`
<i v-if="rowData.Status==1" class="iconfont icon-daiqueren" style="color: #4BCA81"></i>
<i v-if="rowData.Status==4" class="iconfont icon-yiquxiao" style="color: #4BCA81"></i>
<i v-if="rowData.Status==2" class="iconfont icon-yiqueren" style="color: #959595"></i>
<i v-if="rowData.Status==3" class="iconfont icon-shenhebohui" style="color: #E95252"></i>
<i v-if="rowData.Status==0" class="iconfont icon-zancun" style="color: #FF9C01"></i>
<el-popover
popper-class="detailsIT_Journal"
width="250"
trigger="click">
<div style="height: auto;max-height: 220px;background-color: #FFFFFF;">
<div class="changLog">
<p class="_log_t">流程日志</p>
<ul style="padding-left: 20px;max-height: 180px;overflow: auto;" v-if="GetFinancLogList" v-loading='LogLoading'>
<li style="border-left: 1px solid #E9E9E9;position: relative;padding-bottom: 10px;padding-left: 20px;padding-top: 10px;" v-for="(log,li) in GetFinancLogList">
<span style="background-color: #47BF8C;width: 7px;height: 7px;border-radius: 50%;display: inline-block;position: absolute;left: -4px;top: 19px;"></span>
<p> <span class="_color_blue">{{log.EmName}}</span> <span class="fr changLog_time">{{log.UpdateDate}}</span> </p>
<p class="_dtel">{{log.StartValue}}</p>
</li>
</ul>
<ul v-else>
<li>暂无修改日志</li>
</ul>
</div>
</div>
<span slot="reference" class="text_d _font_init" @click="Financial_post_GetFinancLogList(rowData.FrID)">{{rowData.StatusStr}}</span>
</el-popover>
`
,
props
:{
rowData
:{
type
:
Object
},
field
:{
type
:
String
},
index
:{
type
:
Number
}
},
data
(){
return
{
GetFinancLogList
:[],
}
},
methods
:{
Financial_post_GetFinancLogList
(
id
){
// 获取单据日志
if
(
this
.
checkboxShow
)
return
this
.
LogLoading
=
true
;
this
.
apipost
(
'Financial_post_GetFinancLogList'
,{
ID
:
id
,
Type
:
2
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
x
.
UpdateDate
=
this
.
$commonUtils
.
formatMsgTime
(
x
.
UpdateDate
)
})
this
.
LogLoading
=
false
;
this
.
GetFinancLogList
=
data
;
}
},
err
=>
{})
}
}
})
export
default
{
data
(){
return
{
showID
:
false
,
active
:
1
,
msg
:{
RB_Branch_Id
:
-
1
,
Status
:
'-1'
,
QStartDate
:
''
,
QEndDate
:
''
,
PageIndex
:
1
,
PageSize
:
5
,
AirLossId
:
1
,
LossType
:
1
,
CostTypeID
:
0
,
Type
:
2
},
getCompanyMsg
:{
// 公司
RB_Group_Id
:
'0'
,
Status
:
'0'
,
},
DataList
:[],
GetFinancLogList
:[],
CompanyList
:[],
missionDate
:[],
loading
:
false
,
LogLoading
:
false
,
currentPage
:
1
,
total
:
0
,
SumYingShou
:
0
,
SumShiShou
:
0
,
SumDaiShou
:
0
,
SumYingFu
:
0
,
SumShiFu
:
0
,
SumDaiFu
:
0
,
loading2
:
false
,
tableData
:
[],
columns
:
[
{
field
:
'BranchName'
,
title
:
'所属公司'
,
width
:
80
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
,
componentName
:
'table-BranchName'
},
{
field
:
'FrID'
,
title
:
'单号'
,
width
:
80
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
,
//orderBy排序 asc 升序 desc降序
result
:[],
//筛选项默认值 单选传字符串'1' 多选数组 [1,2,2]
type
:
'select'
,
// 筛选项方式 select 下拉 check 单选、多选 text搜索 datetime时间
isFrozen
:
true
,
componentName
:
'table-BillRVB'
},
{
field
:
'custome-RecPay'
,
title
:
'单据类型'
,
width
:
120
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
,
componentName
:
'table-RecPay'
},
{
field
:
'custome-Info'
,
title
:
'关联信息'
,
width
:
120
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
,
result
:
''
,
filterMultiple
:
false
,
type
:
'text'
,
componentName
:
'table-Info'
},
{
field
:
'dateRange'
,
title
:
'费用类型'
,
width
:
120
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
,
result
:{},
filterMultiple
:
false
,
type
:
'datetime'
,
componentName
:
'table-CostType'
},
{
field
:
'TradeWay'
,
title
:
'交易方式'
,
width
:
210
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
,
componentName
:
'table-TradeWay'
},
{
field
:
'Money'
,
title
:
'金额'
,
width
:
120
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
,
componentName
:
'table-Money'
},
{
field
:
'ClientTypeName'
,
title
:
'付款对象'
,
width
:
180
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
,
componentName
:
'table-ClientTypeName'
},
{
field
:
'EmName'
,
title
:
'制单人员'
,
width
:
120
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
},
{
field
:
'StatusStr'
,
title
:
'当前状态'
,
width
:
120
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
isResize
:
true
},
{
field
:
'custome-operation'
,
title
:
'操作'
,
width
:
200
,
titleAlign
:
'left'
,
columnAlign
:
'left'
,
componentName
:
'table-operation'
,
isResize
:
true
}
],
}
},
created
(){
},
components
:
{
"my-Bill"
:
myBill
,
"my-RVB-Bill"
:
myrbvBill
,
},
mounted
(){
let
userInfo
=
this
.
getLocalStorage
();
this
.
getCompanyMsg
.
RB_Group_Id
=
userInfo
.
RB_Group_id
;
//集团ID
let
msgList
=
JSON
.
parse
(
this
.
$route
.
query
.
msg
);
this
.
msg
.
AirLossId
=
msgList
.
AirLossId
;
this
.
msg
.
LossType
=
msgList
.
LossType
;
this
.
msg
.
CostTypeID
=
msgList
.
CostTypeID
;
this
.
msg
.
QStartDate
=
msgList
.
StartTime
;
this
.
msg
.
QEndDate
=
msgList
.
EndTime
;
this
.
missionDate
.
push
(
msgList
.
StartTime
,
msgList
.
EndTime
);
this
.
getCompanyList
();
this
.
getPageList
();
},
methods
:{
handleCurrentChanges
(
val
){
this
.
pageIndex
=
this
.
msg
.
pageIndex
=
val
;
this
.
getPageList
();
},
getPageList
(){
// 获取列表数据
if
(
this
.
missionDate
){
this
.
msg
.
QStartDate
=
this
.
missionDate
[
0
];
this
.
msg
.
QEndDate
=
this
.
missionDate
[
1
];
}
else
{
this
.
msg
.
QStartDate
=
""
;
this
.
msg
.
QEndDate
=
""
;
}
this
.
loading
=
true
;
this
.
apipost
(
'Financial_post_GetAirTicketLossDetailPageList'
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
.
pageData
.
list
;
this
.
total
=
res
.
data
.
data
.
count
;
this
.
SumYingShou
=
res
.
data
.
data
.
pageData
.
SumYingShou
;
this
.
SumShiShou
=
res
.
data
.
data
.
pageData
.
SumShiShou
;
this
.
SumDaiShou
=
res
.
data
.
data
.
pageData
.
SumDaiShou
;
this
.
SumYingFu
=
res
.
data
.
data
.
pageData
.
SumYingFu
;
this
.
SumShiFu
=
res
.
data
.
data
.
pageData
.
SumShiFu
;
this
.
SumDaiFu
=
res
.
data
.
data
.
pageData
.
SumDaiFu
;
if
(
this
.
total
==
0
){
this
.
DataList
=
[];
}
else
{
data
.
forEach
(
x
=>
{
x
.
modelShow
=
false
;
})
this
.
DataList
=
data
;
}
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{})
},
Financial_post_GetFinancLogList
(
id
){
// 获取单据日志
this
.
LogLoading
=
true
;
this
.
apipost
(
'Financial_post_GetFinancLogList'
,{
ID
:
id
,
Type
:
2
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
x
.
UpdateDate
=
this
.
$commonUtils
.
formatMsgTime
(
x
.
UpdateDate
)
})
this
.
LogLoading
=
false
;
this
.
GetFinancLogList
=
data
;
}
},
err
=>
{})
},
getCompanyList
(){
//获取公司列表
this
.
apipost
(
'admin_get_BranchGetList'
,
this
.
getCompanyMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
CompanyList
=
res
.
data
.
data
;
}
else
{}
},
err
=>
{})
},
timeAdd
(
t
){
// 日期格式
this
.
msg
.
QStartDate
=
this
.
missionDate
[
0
];
this
.
msg
.
QEndDate
=
this
.
missionDate
[
1
];
},
handleCurrentChange
(
val
)
{
//翻页
this
.
msg
.
pageIndex
=
val
;
this
.
getPageList
();
},
resetPageIndex
(){
// 重置页码
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
goUrl
(
path
,
id
,
Conditon
,
pageIndex
){
this
.
$router
.
push
({
name
:
path
,
query
:{
"id"
:
id
,
"Conditon"
:
Conditon
,
"pageIndex"
:
pageIndex
,
blank
:
'y'
,
tab
:
'单据详情'
}
})
},
goEit
(
path
,
type
,
id
,
edit
,
Conditon
,
pageIndex
){
this
.
$router
.
push
({
name
:
path
,
query
:{
"type"
:
type
,
"FrID"
:
id
,
"edit"
:
edit
,
"Conditon"
:
Conditon
,
"pageIndex"
:
pageIndex
}
})
}
}
}
</
script
>
src/router/config.js
View file @
263c8da2
...
...
@@ -2977,6 +2977,14 @@ export default {
title
:
'机票损失分摊'
},
},
{
//财务 机票损失分摊详情
path
:
'/AirTicketLossDetail'
,
name
:
'AirTicketLossDetail'
,
component
:
resolve
=>
require
([
'@/components/FinancialModule/ReportForm/AirTicketLossDetail'
],
resolve
),
meta
:
{
title
:
'机票损失分摊详情'
},
},
{
//财务 报表 团队人数统计
path
:
'/NumberStatistics'
,
name
:
'NumberStatistics'
,
...
...
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