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
0a27e6ac
Commit
0a27e6ac
authored
Jun 12, 2023
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
成本月结查询
parent
bda18f31
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1321 additions
and
2 deletions
+1321
-2
BasicDocuments.vue
src/components/FinancialModule/BasicDocuments.vue
+5
-1
FinancialDocumentsDetail.vue
src/components/FinancialModule/FinancialDocumentsDetail.vue
+8
-1
index.vue
...components/FinancialModule/MonthlyCostStatement/index.vue
+1164
-0
addFinancialDocuments.vue
src/components/FinancialModule/addFinancialDocuments.vue
+5
-0
CostmonthDetails.vue
...omponents/FinancialModule/components/CostmonthDetails.vue
+131
-0
config.js
src/router/config.js
+8
-0
No files found.
src/components/FinancialModule/BasicDocuments.vue
View file @
0a27e6ac
...
@@ -649,6 +649,9 @@
...
@@ -649,6 +649,9 @@
<div
class=
"_tit _tit2 w890px"
>
<div
class=
"_tit _tit2 w890px"
>
<!-- 预付款冲抵 电商商品 -->
<!-- 预付款冲抵 电商商品 -->
<czBillModule
:FrID=
'ID'
/>
<czBillModule
:FrID=
'ID'
/>
<!-- 关联单号 -->
<CostmonthDetails
v-if=
"GetDetail.OtherType==75||GetDetail.CostMonthTemplate"
:GetDetail=
"GetDetail"
>
</CostmonthDetails>
<myGuanBill
:ID=
"FrID"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
v-if=
"(((GetDetail.TemplateId === 36 || GetDetail.TemplateId === 37) && LeadState) || GetDetail.TemplateId === 63 || GetDetail.TemplateId === 59 || GetDetail.TemplateId === 43 || GetDetail.TemplateId === 48 || GetDetail.TemplateId === 53 || GetDetail.TemplateId === 56) && showModel"
/>
<myGuanBill
:ID=
"FrID"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
v-if=
"(((GetDetail.TemplateId === 36 || GetDetail.TemplateId === 37) && LeadState) || GetDetail.TemplateId === 63 || GetDetail.TemplateId === 59 || GetDetail.TemplateId === 43 || GetDetail.TemplateId === 48 || GetDetail.TemplateId === 53 || GetDetail.TemplateId === 56) && showModel"
/>
<myJiPiaoBill
:ID=
"FrID"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
v-if=
"GetDetail.TemplateId === 2 || GetDetail.TemplateId === 12 && showModel"
/>
<myJiPiaoBill
:ID=
"FrID"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
v-if=
"GetDetail.TemplateId === 2 || GetDetail.TemplateId === 12 && showModel"
/>
<huijiBill
:ID=
"ID"
:disabled=
"true"
:loopNumN=
"1"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
v-if=
"GetDetail.AccountantMergeDetailList && GetDetail.AccountantMergeDetailList.length>0"
/>
<huijiBill
:ID=
"ID"
:disabled=
"true"
:loopNumN=
"1"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
v-if=
"GetDetail.AccountantMergeDetailList && GetDetail.AccountantMergeDetailList.length>0"
/>
...
@@ -1527,6 +1530,7 @@ import myJiPiaoBill from "./FinancialSubmodule/JiPiaoBillModule.vue";
...
@@ -1527,6 +1530,7 @@ import myJiPiaoBill from "./FinancialSubmodule/JiPiaoBillModule.vue";
import
huijiBill
from
"./FinancialSubmodule/huijiBill.vue"
;
import
huijiBill
from
"./FinancialSubmodule/huijiBill.vue"
;
import
czBillModule
from
"./FinancialSubmodule/czBillModule.vue"
;
import
czBillModule
from
"./FinancialSubmodule/czBillModule.vue"
;
// import MsgBus from '../../assets/utils/msgBus.js';
// import MsgBus from '../../assets/utils/msgBus.js';
import
CostmonthDetails
from
'./components/CostmonthDetails'
;
export
default
{
export
default
{
data
(){
data
(){
return
{
return
{
...
@@ -1708,7 +1712,7 @@ export default {
...
@@ -1708,7 +1712,7 @@ export default {
'myJiPiaoBill'
:
myJiPiaoBill
,
'myJiPiaoBill'
:
myJiPiaoBill
,
'huijiBill'
:
huijiBill
,
'huijiBill'
:
huijiBill
,
'czBillModule'
:
czBillModule
,
'czBillModule'
:
czBillModule
,
CostmonthDetails
},
},
methods
:{
methods
:{
goSigningCustomer
(
id
,
name
)
{
goSigningCustomer
(
id
,
name
)
{
...
...
src/components/FinancialModule/FinancialDocumentsDetail.vue
View file @
0a27e6ac
...
@@ -1096,6 +1096,9 @@
...
@@ -1096,6 +1096,9 @@
<div
class=
"_tit _tit2 w890px"
>
<div
class=
"_tit _tit2 w890px"
>
<!-- 预付款冲抵 电商商品-->
<!-- 预付款冲抵 电商商品-->
<czBillModule
:FrID=
'ID'
/>
<czBillModule
:FrID=
'ID'
/>
<!-- 关联单号 -->
<CostmonthDetails
v-if=
"GetDetail.OtherType==75||GetDetail.CostMonthTemplate"
:GetDetail=
"GetDetail"
>
</CostmonthDetails>
<myGuanBill
:ID=
"FrID"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
<myGuanBill
:ID=
"FrID"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
v-if=
"(((GetDetail.TemplateId === 36 || GetDetail.TemplateId === 37) && LeadState) || GetDetail.TemplateId === 63 || GetDetail.TemplateId === 59 || GetDetail.TemplateId === 43 || GetDetail.TemplateId === 48 || GetDetail.TemplateId === 53 || GetDetail.TemplateId === 56) && showModel"
/>
v-if=
"(((GetDetail.TemplateId === 36 || GetDetail.TemplateId === 37) && LeadState) || GetDetail.TemplateId === 63 || GetDetail.TemplateId === 59 || GetDetail.TemplateId === 43 || GetDetail.TemplateId === 48 || GetDetail.TemplateId === 53 || GetDetail.TemplateId === 56) && showModel"
/>
<myJiPiaoBill
:ID=
"FrID"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
<myJiPiaoBill
:ID=
"FrID"
:FrID=
'FrID'
:TemplateId=
'GetDetail.TemplateId'
...
@@ -1137,6 +1140,8 @@
...
@@ -1137,6 +1140,8 @@
</div>
</div>
</div>
</div>
<div
class=
"w890px"
>
<div
class=
"w890px"
>
<SaleOrderModule
v-if=
"OrderSource==10&&SourceID&&OrderID"
:SourceID=
'SourceID'
:OrderID=
'OrderID'
/>
<SaleOrderModule
v-if=
"OrderSource==10&&SourceID&&OrderID"
:SourceID=
'SourceID'
:OrderID=
'OrderID'
/>
<TicketFinace
v-if=
"OrderSource==4&&SourceID&&Callback&&ID"
:SourceID=
'SourceID'
:Callback=
'Callback'
<TicketFinace
v-if=
"OrderSource==4&&SourceID&&Callback&&ID"
:SourceID=
'SourceID'
:Callback=
'Callback'
...
@@ -1436,6 +1441,7 @@
...
@@ -1436,6 +1441,7 @@
import
czBillModule
from
"./FinancialSubmodule/czBillModule.vue"
;
import
czBillModule
from
"./FinancialSubmodule/czBillModule.vue"
;
import
dmcTravelBill
from
'./FinancialSubmodule/DmcTravelBillModule'
;
//线路
import
dmcTravelBill
from
'./FinancialSubmodule/DmcTravelBillModule'
;
//线路
import
CostmonthDetails
from
'./components/CostmonthDetails'
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -1536,7 +1542,8 @@
...
@@ -1536,7 +1542,8 @@
'huijiBill'
:
huijiBill
,
'huijiBill'
:
huijiBill
,
"czBillModule"
:
czBillModule
,
"czBillModule"
:
czBillModule
,
"dmcTravelBill"
:
dmcTravelBill
"dmcTravelBill"
:
dmcTravelBill
,
CostmonthDetails
},
},
created
()
{
created
()
{
// // crm自动登陆传过来的参数
// // crm自动登陆传过来的参数
...
...
src/components/FinancialModule/MonthlyCostStatement/index.vue
0 → 100644
View file @
0a27e6ac
<
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
}
.zhuiClass
{
}
.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
;
}
/
deep
/
.page_RecPayQuery
.horizontal-border
>
span
{
/* display: flex; */
}
/
deep
/
.page_RecPayQuery
.horizontal-border
>
span
>
span
{
/* display: flex;
flex-wrap: wrap !important; */
}
</
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-input
placeholder=
""
class=
""
v-model=
"msg.FrID"
@
keyup
.
native=
"checkInteger(msg,'FrID')"
maxlength=
"8"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"团队编号:"
>
<el-input
v-model=
"msg.TCNUM"
class=
""
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"结算状态:"
>
<el-select
v-model=
'msg.IsSelectAduiting'
>
<el-option
v-for=
'item in SelectAduitingList'
:label=
'item.Name'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"所属公司:"
>
<el-select
filterable
v-model=
'msg.RB_Branch_Id'
@
change=
"getDepartmentMsg.RB_Branch_Id=msg.RB_Branch_Id,msg.RB_Depart_Id='',msg.UpdateBy='',getDepartment()"
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>
<el-col
:span=
"4"
>
<el-form-item
label=
"费用部门:"
>
<el-select
filterable
v-model=
'msg.RB_Depart_Id'
@
change=
"employeeMsg.DepartmentId=msg.RB_Depart_Id,getEmployee(),msg.UpdateBy=''"
class=
""
>
<el-option
:value=
"0"
label=
"不限"
></el-option>
<el-option
v-for=
'item in DepartmentList'
:label=
'item.DepartmentName'
:value=
'item.DepartmentID'
:key=
'item.DepartmentID'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"制单人员:"
>
<el-select
filterable
v-model=
'msg.UpdateBy'
class=
""
>
<el-option
:value=
"0"
label=
"不限"
></el-option>
<el-option
v-for=
'item in EmployeeList'
:label=
'item.EmName'
:value=
'item.EmployeeId'
:key=
'item.EmployeeId'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"单据类型:"
>
<el-select
filterable
v-model=
'msg.Type'
class=
""
>
<el-option
key=
"-1"
value=
"-1"
label=
"不限"
></el-option>
<el-option
key=
"1"
value=
"1"
label=
"收入"
></el-option>
<el-option
key=
"2"
value=
"2"
label=
"支出"
></el-option>
</el-select>
</el-form-item>
</el-col>
<template
v-if=
"heightQueryBox"
>
<el-col
:span=
"4"
>
<el-form-item
label=
"费用类型:"
>
<el-select
filterable
v-model=
'msg.CostTypeID'
>
<el-option
:value=
"0"
label=
"不限"
></el-option>
<el-option
v-for=
"item in GetCostTypeList"
:key=
"item.ID"
:value=
"item.ID"
:label=
"item.Name"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"账户类型:"
>
<el-select
filterable
v-model=
'msg.AccountType'
>
<el-option
value=
""
label=
"不限"
></el-option>
<el-option
v-for=
'item in AccList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"交易方式:"
>
<el-select
filterable
v-model=
'msg.TradeWay'
@
change=
"getAccountList(msg.AccountType,msg.TradeWay),msg.ClientID=''"
>
<el-option
value=
"0"
label=
"不限"
></el-option>
<el-option
v-for=
'item in BranchAccountList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"收付款账户:"
>
<el-select
filterable
v-model=
'msg.BankID'
>
<el-option
value=
""
label=
"不限"
></el-option>
<el-option
v-for=
'item in accountList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"排序:"
>
<el-select
filterable
v-model=
'msg.Sort'
>
<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-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"模板类型:"
>
<el-select
v-model=
"msg.TemplateIds"
filterable
>
<el-option
value=
""
label=
"不限"
></el-option>
<el-option
v-for=
'item in TemplateGetList'
:label=
'item.Name'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<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=
"4"
>
<el-form-item
label=
"币种类型:"
>
<el-select
filterable
v-model=
'msg.CurrencyId'
>
<el-option
key=
"0"
value=
"0"
label=
"不限"
></el-option>
<el-option
v-for=
"item in currencyTypeList"
:key=
"item.ID"
:value=
"item.ID"
:label=
"item.Name"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"订单编号:"
>
<el-input
v-model=
"msg.OrderID"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"金额:"
>
<el-input
v-model=
"msg.sMoney"
class=
"w64d5"
@
keyup
.
native=
"checkPrice(msg,'sMoney')"
></el-input>
-
<el-input
v-model=
"msg.eMoney"
@
keyup
.
native=
"checkPrice(msg,'eMoney')"
class=
"w64d5"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"制单日期:"
>
<el-date-picker
class=
"h34"
@
change=
"timeAdd(1)"
v-model=
"productionDate"
type=
"daterange"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"交易日期:"
>
<el-date-picker
class=
"h34"
v-model=
"transactionDate"
@
change=
"timeAdd(3)"
type=
"daterange"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"发团日期:"
>
<el-date-picker
class=
"h34"
v-model=
"missionDate"
@
change=
"timeAdd(4)"
type=
"daterange"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"备注查询:"
>
<el-input
v-model=
"msg.Remark"
></el-input>
</el-form-item>
</el-col>
<!--
<el-col
:span=
"4"
>
<el-form-item
label=
"凭证费用:"
>
<el-select
filterable
v-model=
'msg.KJCostTypeId'
>
<el-option
:value=
"0"
label=
"不限"
></el-option>
<el-option
v-for=
"item in GetCostTypeList"
:key=
"item.ID"
:value=
"item.ID"
:label=
"item.Name"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"只查询凭证:"
>
<el-select
filterable
v-model=
'msg.IsSelectKJSetCostType'
>
<el-option
:value=
"0"
label=
"否"
></el-option>
<el-option
:value=
"1"
label=
"是"
></el-option>
</el-select>
</el-form-item>
</el-col>
-->
</
template
>
</el-row>
</el-form>
<ul
class=
"clearfix"
>
<li
class=
"hight_query"
>
<span>
<em
@
click
.
stop=
"heightQueryBox=!heightQueryBox"
>
高级查询
<i
class=
"iconfont icon-gengduo"
></i></em>
</span>
<button
class=
"hollowFixedBtn"
@
click=
"resetPageIndex(),getPageList()"
>
{{$t('pub.searchBtn')}}
</button>
<!-- <button class="normalBtn" @click="method5()">导出</button> -->
<button
class=
"normalBtn"
@
click=
"GenerateDocuments()"
>
生成财务单据
</button>
</li>
</ul>
</div>
<div
class=
"_fnDm_content"
v-loading=
'loading'
>
<el-table
ref=
"multipleTable"
:data=
"DataList"
tooltip-effect=
"dark"
style=
"width: 100%"
row-key=
"FrID"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
:selectable=
"selectable"
width=
"55"
:reserve-selection=
"true"
/>
</el-table-column>
<el-table-column
label=
"单号"
width=
"120"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
FrID
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"单据类型"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.Type==2"
style=
"display: inline-block;
padding: 2px 8px;
color: white;
background-color: #E95252;
line-height: 16px;
border-radius: 4px;"
>
支出
</span>
<span
v-if=
"scope.row.Type==1"
style=
"display: inline-block;
padding: 2px 8px;
color: white;
background-color: #2BB87C;
line-height: 16px;
border-radius: 4px;"
>
收入
</span>
<span
v-if=
"scope.row.Type==5"
style=
"display: inline-block;
padding: 2px 8px;
color: white;
background-color: #2BB87C;
line-height: 16px;
border-radius: 4px;"
>
应收
</span>
<span
v-if=
"scope.row.Type==6"
style=
"display: inline-block;
padding: 2px 8px;
color: white;
background-color: #E95252;
line-height: 16px;
border-radius: 4px;"
>
应付
</span>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"追加团款"
placement=
"top"
>
<span
v-if=
"scope.row.OtherType == 1"
style=
"width: 20px;
height: 20px;
display: inline-block;
border-radius: 50%;
text-align: center;
line-height: 20px;
color: #E95252;
border: 1px solid #E95252;
font-size: 12px;"
class=
"zhuiClass"
>
追
</span>
</el-tooltip>
</
template
>
</el-table-column>
<el-table-column
prop=
""
label=
"关联信息"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<template
v-if=
"scope.row.TCIDAndTCNUMList.length>0"
>
<p
class=
"_TCIDAndTCNUMList"
style=
"display: flex;"
>
<span>
团号:
</span>
<template
v-if=
"scope.row.TCIDAndTCNUMList&&scope.row.TCIDAndTCNUMList.length>0"
>
<p><span
v-for=
"(i,ix) in scope.row.TCIDAndTCNUMList"
>
{{
i
.
TCNUM
}}
(
{{
i
.
TCID
}}
)
<span
v-if=
"ix!=scope.row.TCIDAndTCNUMList.length-1"
>
,
</br></span></span></p>
</
template
>
<
template
v-else
>
<span>
无
</span>
</
template
>
</p>
<p
v-if=
"scope.row.OrderID>0 && scope.row.OrderSource==8"
>
单号:
<span
class=
""
>
{{scope.row.OrderID}}
</span></p>
</template>
<
template
v-else-if=
"scope.row.OrderSource==8 && scope.row.TCIDAndTCNUMList.length==0"
>
<p
class=
"_TCIDAndTCNUMList"
>
暂无团期信息
</p>
</
template
>
<
template
v-else-if=
"scope.row.OrderSource==4 && scope.row.TCIDAndTCNUMList.length==0"
>
<p
class=
"_TCIDAndTCNUMList"
style=
"text-decoration: underline;cursor: pointer;"
@
click=
"goTicketPage(rowData)"
>
机票编号:
{{
scope
.
row
.
SourceID
}}
</p>
<p
style=
"margin-top: 5px;"
>
线路:
<span>
{{
scope
.
row
.
LineName
?
scope
.
row
.
LineName
:
'机票尚未选择线路'
}}
</span></p>
</
template
>
<
template
v-else-if=
"scope.row.OrderSource==9 && scope.row.TCIDAndTCNUMList.length==0"
>
<p
class=
"_TCIDAndTCNUMList"
>
国内票务期数:
{{
scope
.
row
.
Term
}}
</p>
</
template
>
<
template
v-else-if=
"scope.row.OrderSource==10 && scope.row.TCIDAndTCNUMList.length==0"
>
<p
class=
"_TCIDAndTCNUMList"
>
签证产品编号:
{{
scope
.
row
.
SourceID
}}
</p>
</
template
>
<
template
v-else-if=
"scope.row.OrderSource==0 || scope.row.OrderSource==null"
>
<p
class=
"_TCIDAndTCNUMList"
>
{{
scope
.
row
.
BranchName
}}
-
{{
scope
.
row
.
DepartName
}}
</p>
</
template
>
<
template
v-else
>
<p
class=
"_TCIDAndTCNUMList"
>
暂无
</p>
</
template
>
</template>
</el-table-column>
<el-table-column
prop=
""
label=
"费用类型"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<template
v-for=
"(s,si) in scope.row.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
>
</template>
</el-table-column>
<el-table-column
prop=
""
label=
"金额"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
style=
"line-height:20px"
>
{{
scope
.
row
.
Type
==
1
?
'应收'
:
'应付'
}}
:
<span>
{{
scope
.
row
.
Money
}}
</span></p>
<p
style=
"line-height:20px"
>
{{
scope
.
row
.
Type
==
1
?
'实收'
:
'实付'
}}
:
<span>
{{
scope
.
row
.
PayMoney
}}
</span></p>
<p
v-if=
"scope.row.IsAdvanceFinance==1"
style=
"line-height:20px"
>
冲抵:
<span>
{{
scope
.
row
.
MatchMoney
}}
</span></p>
</
template
>
</el-table-column>
<el-table-column
prop=
""
label=
"付款对象"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<span
style=
"color: gray"
>
{{
scope
.
row
.
Type
==
2
?
scope
.
row
.
ClientTypeName
+
':'
:
'汇款人:'
}}
</span><span>
{{
scope
.
row
.
RemitterName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
""
label=
"制单人员"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<div>
{{
scope
.
row
.
EmName
}}
</div>
<div>
{{
scope
.
row
.
CreateDate
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
""
label=
"当前状态"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<i
v-if=
"scope.row.Status==1"
class=
"iconfont icon-daiqueren"
style=
"color: #4BCA81"
></i>
<i
v-if=
"scope.row.Status==4"
class=
"iconfont icon-yiquxiao"
style=
"color: #4BCA81"
></i>
<i
v-if=
"scope.row.Status==2"
class=
"iconfont icon-yiqueren"
style=
"color: #959595"
></i>
<i
v-if=
"scope.row.Status==3"
class=
"iconfont icon-shenhebohui"
style=
"color: #E95252"
></i>
<i
v-if=
"scope.row.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(scope.row.FrID)"
>
{{
scope
.
row
.
StatusStr
}}
</span>
</el-popover>
</
template
>
</el-table-column>
</el-table>
<div
style=
"padding-bottom:15px"
>
<el-pagination
background
@
current-change=
"handleCurrentChanges"
layout=
"total,prev, pager, next, jumper"
:page-size=
"pageSize"
:total=
'total'
>
</el-pagination>
</div>
</div>
</div>
</template>
<
script
>
import
myBill
from
"../FinancialSubmodule/BillModule.vue"
;
import
myrbvBill
from
"../FinancialSubmodule/ReceivablesModule.vue"
;
import
myhrBill
from
"../FinancialSubmodule/MergeBillModule.vue"
;
import
editExchangeRate
from
"../components/editExchangeRate.vue"
;
import
Vue
from
'vue'
export
default
{
data
(){
return
{
multipleSelection
:
[],
SelectAduitingList
:[
{
Name
:
'不限'
,
Id
:
'0'
},
{
Name
:
'已结算'
,
Id
:
'1'
},
{
Name
:
'未结算'
,
Id
:
'2'
},
],
transTax
:{
FrId
:
0
,
Fee
:
"0.0"
,
loading
:
false
,
ClientType
:
''
,
ClientID
:
''
},
transactionTax
:
false
,
showID
:
false
,
active
:
1
,
userId
:
0
,
zhuanjiaoBox
:
false
,
searchList
:[],
msg
:{
pageIndex
:
1
,
pageSize
:
8
,
FrID
:
''
,
sDate
:
''
,
eDate
:
''
,
Status
:
'-1'
,
TemplateIds
:
'0'
,
RB_Branch_Id
:
''
,
RB_Depart_Id
:
''
,
sTradeDate
:
''
,
eTradeDate
:
''
,
ClientType
:
''
,
RemitterName
:
''
,
ClientID
:
''
,
sMoney
:
''
,
eMoney
:
''
,
CurrencyId
:
'0'
,
CostTypeID
:
''
,
Conditon
:
''
,
TCNUM
:
''
,
TradeWay
:
''
,
Type
:
'-1'
,
AccountType
:
''
,
QEndDate
:
''
,
QStartDate
:
''
,
UpdateBy
:
''
,
IsFormRecPayQuery
:
'1'
,
KJCostTypeId
:
0
,
IsSelectKJSetCostType
:
0
,
Remark
:
''
,
//备注查询
Sort
:
'2'
,
EmployeeId
:
''
,
IsSelectAduiting
:
'0'
,
},
getCompanyMsg
:{
// 公司
RB_Group_Id
:
'0'
,
Status
:
'0'
,
},
getDepartmentMsg
:{
// 部门
RB_Group_Id
:
''
,
RB_Branch_Id
:
''
,
Status
:
0
,
ParentId
:
-
1
,
Tier
:
0
,
},
employeeMsg
:{
// 员工
GroupId
:
''
,
BranchId
:
-
1
,
DepartmentId
:
0
,
PostId
:
0
,
IsLeave
:
0
,
},
zhuanMsg
:{
AuditEmId
:
null
,
WorkFlowId
:
0
,
},
//转交信息
zhuanjiaoMsg
:{
CreateBy
:
''
,
FrIDList
:[]
},
DataList
:[],
GetFinancLogList
:[],
StatusList
:[],
ClientAccountList
:[],
ClientTypeList
:[],
accountList
:[],
BranchAccountList
:[],
DepartmentList
:[],
EmployeeList
:[],
ConditionList
:[],
CompanyList
:[],
productionDate
:[],
approvalDate
:[],
transactionDate
:[],
missionDate
:[],
currencyTypeList
:[],
GetCostTypeList
:[],
TemplateGetList
:[],
AccList
:[],
checkList
:[],
checkAllList
:[],
dateStart
:
''
,
dateEnd
:
''
,
dateArr
:
''
,
status
:
'1'
,
type
:
'1'
,
loading
:
false
,
LogLoading
:
false
,
isCkedAll
:
false
,
currentPage
:
1
,
total
:
0
,
ChineseStr
:
''
,
mathNumber
:
''
,
DepartIDs
:
''
,
loading2
:
false
,
tableData
:
[],
pageSize
:
5
,
pageIndex
:
1
,
heightQueryBox
:
false
,
costmode
:
false
,
//费用类型的修改弹窗
costmodeHL
:
false
,
bianjiShow
:
false
,
trabeList
:[],
//修改费用类型的下拉数据
trabeListHL
:[],
//修改费率下拉数据
}
},
created
(){
if
(
this
.
$route
.
query
.
returnCode
){
this
.
active
=
this
.
$route
.
query
.
returnCode
;
this
.
msg
.
Conditon
=
this
.
$route
.
query
.
returnCode
;
}
if
(
this
.
$route
.
query
.
pageIndex
){
this
.
msg
.
pageIndex
=
this
.
$route
.
query
.
pageIndex
;
}
if
(
this
.
$route
.
query
.
Conditon
){
this
.
msg
.
Conditon
=
this
.
$route
.
query
.
Conditon
;
this
.
active
=
parseInt
(
this
.
$route
.
query
.
Conditon
);
}
if
(
this
.
$route
.
query
.
FrID
){
this
.
msg
.
FrID
=
this
.
$route
.
query
.
FrID
;
}
if
(
this
.
$route
.
query
.
Type
){
this
.
msg
.
Type
=
this
.
$route
.
query
.
Type
+
''
;
}
if
(
this
.
$route
.
query
.
rec
){
this
.
msg
.
AccountType
=
15
;
this
.
msg
.
TradeWay
=
4
;
this
.
getAccountList
(
this
.
msg
.
AccountType
,
this
.
msg
.
TradeWay
)
this
.
msg
.
BankID
=
this
.
$route
.
query
.
BankID
;
this
.
transactionDate
[
0
]
=
this
.
$route
.
query
.
StartDate
;
this
.
transactionDate
[
1
]
=
this
.
$route
.
query
.
StartDate
;
this
.
msg
.
sTradeDate
=
this
.
$route
.
query
.
StartDate
;
this
.
msg
.
eTradeDate
=
this
.
$route
.
query
.
StartDate
;
if
(
this
.
$route
.
query
.
BankID
==
''
){
// 费用类型:机票折让费
this
.
msg
.
CostTypeID
=
197
;
}
}
if
(
this
.
$route
.
query
.
air
){
this
.
msg
.
AccountType
=
17
;
this
.
msg
.
TradeWay
=
4
;
this
.
getAccountList
(
this
.
msg
.
AccountType
,
this
.
msg
.
TradeWay
)
this
.
msg
.
BankID
=
20
;
this
.
transactionDate
[
0
]
=
this
.
$route
.
query
.
StartDate
;
this
.
transactionDate
[
1
]
=
this
.
$route
.
query
.
StartDate
;
}
},
components
:
{
"my-Bill"
:
myBill
,
"my-RVB-Bill"
:
myrbvBill
,
editExchangeRate
},
mounted
(){
let
userInfo
=
this
.
getLocalStorage
();
this
.
getCompanyMsg
.
RB_Group_Id
=
this
.
employeeMsg
.
GroupId
=
this
.
getDepartmentMsg
.
RB_Group_Id
=
userInfo
.
RB_Group_id
;
//集团ID
this
.
DepartIDs
=
userInfo
.
RB_Department_Id
;
this
.
userId
=
userInfo
.
EmployeeId
;
this
.
msg
.
EmployeeId
=
userInfo
.
EmployeeId
;
this
.
financeinfo_post_GetList
();
this
.
financeinfo_post_GetCostTypeList
();
this
.
FinancialFlowTemplate_post_GetList
();
this
.
getCompanyList
();
this
.
Financial_post_GetConditionList
();
this
.
getEmployee
();
this
.
getDepartment
();
this
.
Financial_post_GetBranchAccountList
();
this
.
financeinfo_post_GetClientTypeList
();
this
.
FinancialFlowTemplate_post_GetStatusList
();
this
.
getPageList
();
this
.
AccountType_post_GetList
();
var
that
=
this
;
},
methods
:{
selectable
(
row
,
index
){
if
(
!
this
.
DataList
[
index
].
ReFinanceId
)
{
return
true
;
}
else
{
return
false
;
}
},
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
},
// 数据筛选
filterMethod
(
filters
){
},
handleCurrentChanges
(
val
){
this
.
pageIndex
=
this
.
msg
.
pageIndex
=
val
;
this
.
getPageList
();
},
AccountType_post_GetList
(){
//获取账户类型下拉
this
.
apipost
(
'AccountType_post_GetList'
,
this
.
queryAccMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
AccList
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{})
},
getPageList
(){
// 获取列表数据
if
(
!
this
.
msg
.
ClientID
)
this
.
msg
.
ClientID
=
0
;
if
(
!
this
.
msg
.
ClientType
)
this
.
msg
.
ClientType
=
0
;
if
(
!
this
.
msg
.
CurrencyId
)
this
.
msg
.
CurrencyId
=
0
;
if
(
!
this
.
msg
.
CostTypeID
)
this
.
msg
.
CostTypeID
=
0
;
if
(
this
.
msg
.
TemplateIds
==
'0'
)
this
.
msg
.
TemplateIds
=
''
;
if
(
this
.
msg
.
RB_Branch_Id
===
''
)
this
.
msg
.
RB_Branch_Id
=-
1
;
if
(
!
this
.
msg
.
RB_Depart_Id
)
this
.
msg
.
RB_Depart_Id
=
0
;
if
(
!
this
.
msg
.
UpdateBy
)
this
.
msg
.
UpdateBy
=
0
;
if
(
!
this
.
msg
.
TCID
)
this
.
msg
.
TCID
=
0
;
if
(
!
this
.
msg
.
OrderID
)
this
.
msg
.
OrderID
=
0
;
if
(
!
this
.
msg
.
Status
)
this
.
msg
.
Status
=
0
;
if
(
!
this
.
msg
.
FrID
)
this
.
msg
.
FrID
=
0
;
if
(
!
this
.
msg
.
Conditon
)
this
.
msg
.
Conditon
=
1
;
if
(
!
this
.
msg
.
TradeWay
)
this
.
msg
.
TradeWay
=
0
;
if
(
!
this
.
msg
.
AccountType
)
this
.
msg
.
AccountType
=
0
;
if
(
!
this
.
msg
.
KJCostTypeId
)
this
.
msg
.
KJCostTypeId
=
0
;
if
(
!
this
.
msg
.
IsSelectKJSetCostType
)
this
.
msg
.
IsSelectKJSetCostType
=
0
;
this
.
loading
=
true
;
this
.
apipost
(
'Financial_post_GetCostMonthALLPageList'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
.
pageData
;
let
arrList
=
function
(
arr
){
arr
.
forEach
(
x
=>
{
x
.
_checked
=
true
x
.
_disabled
=
false
})
}
arrList
(
data
)
let
userInfo
=
this
.
getLocalStorage
();
data
.
forEach
(
x
=>
{
if
((
","
+
userInfo
.
ActionMenuCode
+
","
).
indexOf
(
',Finance_CreateByCareOf,'
)
!=-
1
){
x
.
isExchange
=
true
}
else
{
x
.
isExchange
=
false
}
})
this
.
total
=
res
.
data
.
data
.
count
;
if
(
this
.
total
==
0
){
this
.
DataList
=
[];
}
else
{
data
.
forEach
(
x
=>
{
// this.columns[0].filters.push({label:x.FrID,value:x.FrID})
x
.
modelShow
=
false
;
})
this
.
DataList
=
data
;
}
this
.
loading
=
false
;
}
else
{
this
.
loading
=
false
;
this
.
$message
.
error
(
res
.
data
.
message
);
}
// this.msg.TCID= this.msg.TCID==0?this.msg.TCID:'';
// this.queryInfoInit();
this
.
currentPage
=
parseInt
(
this
.
msg
.
pageIndex
);
},
err
=>
{})
},
method5
:
function
()
{
if
(
!
this
.
msg
.
ClientID
)
this
.
msg
.
ClientID
=
0
;
if
(
!
this
.
msg
.
ClientType
)
this
.
msg
.
ClientType
=
0
;
if
(
!
this
.
msg
.
CurrencyId
)
this
.
msg
.
CurrencyId
=
0
;
if
(
!
this
.
msg
.
CostTypeID
)
this
.
msg
.
CostTypeID
=
0
;
if
(
!
this
.
msg
.
TemplateIds
)
this
.
msg
.
TemplateIds
=
0
;
if
(
this
.
msg
.
RB_Branch_Id
===
''
)
this
.
msg
.
RB_Branch_Id
=-
1
;
if
(
!
this
.
msg
.
RB_Depart_Id
)
this
.
msg
.
RB_Depart_Id
=
0
;
if
(
!
this
.
msg
.
UpdateBy
)
this
.
msg
.
UpdateBy
=
0
;
if
(
!
this
.
msg
.
TCID
)
this
.
msg
.
TCID
=
0
;
if
(
!
this
.
msg
.
OrderID
)
this
.
msg
.
OrderID
=
0
;
if
(
!
this
.
msg
.
Status
)
this
.
msg
.
Status
=
0
;
if
(
!
this
.
msg
.
FrID
)
this
.
msg
.
FrID
=
0
;
if
(
!
this
.
msg
.
Conditon
)
this
.
msg
.
Conditon
=
1
;
if
(
!
this
.
msg
.
TradeWay
)
this
.
msg
.
TradeWay
=
0
;
if
(
!
this
.
msg
.
AccountType
)
this
.
msg
.
AccountType
=
0
;
if
(
!
this
.
msg
.
KJCostTypeId
)
this
.
msg
.
KJCostTypeId
=
0
;
if
(
!
this
.
msg
.
IsSelectKJSetCostType
)
this
.
msg
.
IsSelectKJSetCostType
=
0
;
this
.
GetLocalFile
(
"Financial_post_DownInOrOut"
,
this
.
msg
,
"收支款.xls"
);
}
,
financeRemove
(
id
){
//作废
this
.
$confirm
(
'是否对申请单进行作废操作?作废后不可恢复!'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
deletFinance
(
id
)
}).
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'已取消'
});
});
},
deletFinance
(
id
){
this
.
apipost
(
'Financial_post_Cancel'
,{
ID
:
id
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
)
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
this
.
getPageList
();
},
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
=>
{})
},
mathMoney
(
n
){
// 数字转中文大写 1
this
.
ChineseStr
=
this
.
$commonUtils
.
changeMoneyToChinese
(
n
)
},
FinancialFlowTemplate_post_GetStatusList
(){
// 获取审核状态枚举
this
.
apipost
(
'FinancialFlowTemplate_post_GetStatusList'
,{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
StatusList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
financeinfo_post_GetClientTypeList
(){
// 获取对象类型
this
.
apipost
(
'financeinfo_post_GetClientTypeList'
,{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
ClientTypeList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
financeinfo_post_GetClientAccountList
(
t
){
// 获取对象类型
let
msg
=
{
Type
:
t
,
ObjID
:
0
,
CardNum
:
''
}
this
.
apipost
(
'financeinfo_post_GetClientAccountList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
let
ClientAccountList
=
[];
data
.
forEach
(
x
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
AccountAlias
,
Nom
:
x
.
CardNum
}
ClientAccountList
.
push
(
obj
)
})
this
.
ClientAccountList
=
ClientAccountList
;
}
},
err
=>
{})
},
getAccountList
(
i
,
t
){
//收款账户
let
accountList
=
[];
if
(
t
==
1
){
// 银行
this
.
apipost
(
'bankaccount_post_GetList'
,{
TypeId
:
i
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
Alias
,
Nom
:
0
,
}
accountList
.
push
(
obj
)
})
this
.
accountList
=
accountList
;
}
},
err
=>
{})
}
if
(
t
==
2
){
//平台账户
let
msg
=
{
BackId
:
0
,
TypeId
:
i
,
BranchId
:
-
1
,
Alias
:
''
}
this
.
apipost
(
'BankAccount_post_GetPlatformList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
Alias
,
Nom
:
x
.
PlatformNo
}
accountList
.
push
(
obj
)
})
this
.
accountList
=
accountList
;
}
},
err
=>
{})
}
if
(
t
==
3
){
//现金账户
let
msg
=
{
TypeId
:
i
,
BranchId
:
-
1
,
Alias
:
''
}
this
.
apipost
(
'BankAccount_post_GetCashAccountList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
Alias
,
Nom
:
0
}
accountList
.
push
(
obj
)
})
this
.
accountList
=
accountList
}
},
err
=>
{})
}
if
(
t
==
4
){
//资金池账户
let
msg
=
{
TypeId
:
i
,
BranchId
:
-
1
,
Alias
:
''
}
this
.
apipost
(
'BankAccount_post_GetCashPoolList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
Alias
,
Nom
:
0
}
accountList
.
push
(
obj
)
})
this
.
accountList
=
accountList
}
},
err
=>
{})
}
},
Financial_post_GetBranchAccountList
(){
//获取交易方式列表
this
.
apipost
(
'Financial_post_GetBranchAccountList'
,{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
BranchAccountList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
getDepartment
(){
//部门
this
.
apipost
(
'admin_get_DepartmentGetList'
,
this
.
getDepartmentMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
DepartmentList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
getEmployee
()
{
//员工
this
.
apipost
(
'admin_get_EmployeeGetList'
,
this
.
employeeMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
EmployeeList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
getCompanyList
(){
//获取公司列表
this
.
apipost
(
'admin_get_BranchGetList'
,
this
.
getCompanyMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
CompanyList
=
res
.
data
.
data
;
}
else
{}
},
err
=>
{})
},
Financial_post_GetConditionList
(){
//获取财务单据枚举列表
this
.
apipost
(
'Financial_post_GetConditionList'
,{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
ConditionList
=
res
.
data
.
data
;
}
else
{}
},
err
=>
{})
},
financeinfo_post_GetList
(){
// 币种类型
this
.
apipost
(
'financeinfo_post_GetList'
,{
Name
:
''
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
currencyTypeList
=
res
.
data
.
data
;
}
else
{
}
},
err
=>
{})
},
financeinfo_post_GetCostTypeList
(){
// 费用类型
this
.
apipost
(
'financeinfo_post_GetCostTypeList'
,{
Name
:
''
,
type
:
0
,
DepartIDs
:
this
.
DepartIDs
,
IsBalanceOfTheQuery
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
GetCostTypeList
=
res
.
data
.
data
;
}
else
{
}
},
err
=>
{})
},
FinancialFlowTemplate_post_GetList
(){
// 单据类型
this
.
apipost
(
'Financial_post_GetList'
,{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
TemplateGetList
=
res
.
data
.
data
;
}
else
{
}
},
err
=>
{})
},
timeAdd
(
t
){
// 日期格式
if
(
t
==
1
){
//制单日期
if
(
!
this
.
productionDate
){
this
.
msg
.
sDate
=
''
;
this
.
msg
.
eDate
=
''
;
return
}
this
.
msg
.
sDate
=
this
.
productionDate
[
0
];
this
.
msg
.
eDate
=
this
.
productionDate
[
1
];
}
if
(
t
==
2
){
//审批日期
if
(
!
this
.
approvalDate
){
this
.
dateStart
=
''
;
this
.
dateEnd
=
''
;
return
}
this
.
dateStart
=
this
.
approvalDate
[
0
];
this
.
dateEnd
=
this
.
approvalDate
[
1
];
}
if
(
t
==
3
){
//交易日期
if
(
!
this
.
transactionDate
){
this
.
msg
.
sTradeDate
=
''
;
this
.
msg
.
eTradeDate
=
''
;
return
}
this
.
msg
.
sTradeDate
=
this
.
transactionDate
[
0
];
this
.
msg
.
eTradeDate
=
this
.
transactionDate
[
1
];
}
if
(
t
==
4
){
//发团日期
if
(
!
this
.
missionDate
){
this
.
dateStart
=
''
;
this
.
dateEnd
=
''
;
return
}
this
.
msg
.
QStartDate
=
this
.
missionDate
[
0
];
this
.
msg
.
QEndDate
=
this
.
missionDate
[
1
];
}
},
queryInfoInit
(){
// 初始化msg
let
msg
=
{
pageIndex
:
this
.
msg
.
pageIndex
,
pageSize
:
6
,
FrID
:
this
.
msg
.
FrID
==
0
?
''
:
this
.
msg
.
FrID
,
sDate
:
this
.
msg
.
sDate
,
eDate
:
this
.
msg
.
eDate
,
Status
:
this
.
msg
.
Status
,
TemplateIds
:
this
.
msg
.
TemplateIds
,
RB_Branch_Id
:
this
.
msg
.
RB_Branch_Id
,
RB_Depart_Id
:
this
.
msg
.
RB_Depart_Id
,
UpdateBy
:
this
.
msg
.
UpdateBy
,
sTradeDate
:
this
.
msg
.
sTradeDate
,
eTradeDate
:
this
.
msg
.
eTradeDate
,
ClientType
:
this
.
msg
.
ClientType
,
RemitterName
:
this
.
msg
.
RemitterName
,
ClientID
:
this
.
msg
.
ClientID
,
sMoney
:
this
.
msg
.
sMoney
,
eMoney
:
this
.
msg
.
eMoney
,
CurrencyId
:
this
.
msg
.
CurrencyId
,
CostTypeID
:
this
.
msg
.
CostTypeID
,
Conditon
:
this
.
msg
.
Conditon
,
TCNUM
:
this
.
msg
.
TCNUM
==
0
?
""
:
this
.
msg
.
TCNUM
,
TradeWay
:
this
.
msg
.
TradeWay
==
0
?
""
:
this
.
msg
.
TradeWay
,
Type
:
this
.
msg
.
Type
,
AccountType
:
this
.
msg
.
AccountType
==
0
?
''
:
this
.
msg
.
AccountType
,
QEndDate
:
this
.
msg
.
QEndDate
,
QStartDate
:
this
.
msg
.
QStartDate
,
OrderID
:
this
.
msg
.
OrderID
==
0
?
''
:
this
.
msg
.
OrderID
,
Sort
:
this
.
msg
.
Sort
,
EmployeeId
:
this
.
msg
.
EmployeeId
?
this
.
msg
.
EmployeeId
:
5
,
KJCostTypeId
:
this
.
msg
.
KJCostTypeId
==
0
?
''
:
this
.
msg
.
KJCostTypeId
,
IsSelectKJSetCostType
:
this
.
msg
.
IsSelectKJSetCostType
==
0
?
''
:
this
.
msg
.
IsSelectKJSetCostType
,
}
this
.
msg
=
msg
;
},
handleCurrentChange
(
val
)
{
//翻页
this
.
msg
.
pageIndex
=
val
;
this
.
getPageList
();
},
resetPageIndex
(){
// 重置页码
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
GenerateDocuments
(){
if
(
this
.
multipleSelection
.
length
==
0
){
this
.
Error
(
'请选择需要制单的数据'
);
return
;
}
let
ids
ids
=
this
.
multipleSelection
.
map
(
x
=>
{
return
x
.
FrID
})
let
orderObj
=
{
OtherType
:
75
,
ReFinanceIds
:
ids
.
join
(
','
),
//单号
ReFinanceId2
:
3
,
//成本
}
this
.
$router
.
push
({
name
:
'ChoiceAddFinancialDocuments'
,
query
:
{
'Type'
:
2
,
'blank'
:
'y'
,
'orderObj'
:
JSON
.
stringify
(
orderObj
),
}
});
}
}
}
</
script
>
src/components/FinancialModule/addFinancialDocuments.vue
View file @
0a27e6ac
...
@@ -1424,9 +1424,14 @@
...
@@ -1424,9 +1424,14 @@
this
.
msg
.
OtherType
=
this
.
orderObj
.
OtherType
?
this
.
orderObj
.
OtherType
:
0
;
this
.
msg
.
OtherType
=
this
.
orderObj
.
OtherType
?
this
.
orderObj
.
OtherType
:
0
;
this
.
msg
.
ReFinanceId
=
this
.
orderObj
.
ReFinanceId
?
this
.
orderObj
.
ReFinanceId
:
0
;
this
.
msg
.
ReFinanceId
=
this
.
orderObj
.
ReFinanceId
?
this
.
orderObj
.
ReFinanceId
:
0
;
this
.
msg
.
ReFinanceId2
=
this
.
orderObj
.
ReFinanceId2
?
this
.
orderObj
.
ReFinanceId2
:
0
;
this
.
msg
.
ReFinanceId2
=
this
.
orderObj
.
ReFinanceId2
?
this
.
orderObj
.
ReFinanceId2
:
0
;
this
.
msg
.
ReFinanceIds
=
this
.
orderObj
.
ReFinanceIds
?
this
.
orderObj
.
ReFinanceIds
:
''
;
this
.
msg
.
ECOrderList
=
this
.
orderObj
.
ECOrderList
?
this
.
orderObj
.
ECOrderList
:
[];
this
.
msg
.
ECOrderList
=
this
.
orderObj
.
ECOrderList
?
this
.
orderObj
.
ECOrderList
:
[];
this
.
msg
.
EduCommissionEmp
=
this
.
orderObj
.
EduCommissionEmp
?
this
.
orderObj
.
EduCommissionEmp
:
null
this
.
msg
.
EduCommissionEmp
=
this
.
orderObj
.
EduCommissionEmp
?
this
.
orderObj
.
EduCommissionEmp
:
null
}
}
if
(
this
.
orderObj
.
OtherType
==
75
&&
this
.
orderObj
.
ReFinances
==
''
){
this
.
Error
(
`成本月结数据不能为空!`
)
return
}
// 台湾提成汇率
// 台湾提成汇率
if
(
this
.
orderObj
&&
this
.
orderObj
.
Rate
&&
this
.
orderObj
.
Money
)
{
if
(
this
.
orderObj
&&
this
.
orderObj
.
Rate
&&
this
.
orderObj
.
Money
)
{
let
yballPrice
=
0
let
yballPrice
=
0
...
...
src/components/FinancialModule/components/CostmonthDetails.vue
0 → 100644
View file @
0a27e6ac
<
style
>
@import
url('../../../assets/css/domestic/TicketingModule.css')
;
.sanjiao-box
{
position
:
relative
;
}
.sanjiao-box
.Receipt_table
td
{
padding
:
0
10px
;
}
.hover_text
span
{
cursor
:
pointer
;
text-decoration
:
underline
;
}
.czBillModule
td
{
text-align
:
center
!important
;
padding
:
6px
0
!important
;
}
</
style
>
<
template
>
<div
class=
"m_TicketingModule"
v-if=
"DataList&&DataList.length>0"
>
<div>
<div
class=
"_tit"
>
<span
class=
"_text"
>
关联单号
</span>
<div>
<span
class=
"_btn"
v-if=
"tableShow"
@
click=
"tableShow=false"
>
收起
<i
class=
"iconfont icon-gengduo _rotate"
></i>
</span>
<span
class=
"_btn"
v-else
@
click=
"tableShow=true"
>
展开
<i
class=
"iconfont icon-gengduo"
></i>
</span>
</div>
</div>
<div
v-show=
"tableShow"
class=
"sanjiao-box _padding_20_15"
>
<table
border=
"1"
class=
"czBillModule _border_color_b Receipt_table"
bordercolor=
"#c94052"
style=
"border-collapse:collapse;width: 100%;"
v-loading=
'loading'
>
<tr>
<th>
单号
</th>
<th>
公司
</th>
<th>
费用类型
</th>
<th>
币种
</th>
<th>
原币金额
</th>
<th>
汇率
</th>
<th>
状态
</th>
<th>
金额
</th>
</tr>
<tr
class=
"_color_b"
v-for=
"(item,index) in DataList"
:key=
"index"
>
<td
class=
"hover_text"
@
click=
"goDetail(item.FrID)"
><span>
{{
item
.
FrID
}}
</span></td>
<td>
{{
item
.
BranchName
}}
</td>
<td>
{{
item
.
CostTypeName
}}
</td>
<td>
{{
item
.
CurrencyName
}}
</td>
<td>
{{
item
.
WBMoney
}}
</td>
<td>
{{
item
.
Rate
}}
</td>
<td>
{{
item
.
StatusStr
}}
</td>
<td>
{{
item
.
Money
}}
</td>
</tr>
<tr
class=
"_color_b"
>
<td
colspan=
"4"
>
原币合计
</td>
<td>
{{
ybtotal
}}
</td>
<td
colspan=
"2"
>
合计
</td>
<td>
{{
cdtotal
}}
</td>
</tr>
</table>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:[
"GetDetail"
],
data
(){
return
{
cdtotal
:
0
,
ybtotal
:
0
,
tableShow
:
true
,
DataList
:
[],
msg
:{
pageIndex
:
1
,
pageSize
:
10000
,
ReFinanceId
:
''
,
//354848
OtherType
:
''
,
TemplateId
:
0
,
//164
}
}
},
watch
:{
},
created
(){
},
mounted
(){
this
.
msg
.
ReFinanceId
=
this
.
GetDetail
.
FrID
if
(
this
.
GetDetail
.
OtherType
==
75
){
this
.
msg
.
OtherType
=
this
.
GetDetail
.
OtherType
this
.
msg
.
TemplateId
=
0
}
else
if
(
this
.
GetDetail
.
CostMonthTemplate
){
this
.
msg
.
OtherType
=
0
this
.
msg
.
TemplateId
=
this
.
GetDetail
.
TemplateId
}
this
.
Financial_post_GetDetail
();
},
methods
:{
goDetail
(
id
){
this
.
$router
.
push
({
name
:
'FinancialDocumentsDetail'
,
query
:{
"id"
:
id
,
blank
:
'y'
,
tab
:
'单据详情'
}
})
},
Financial_post_GetDetail
(){
//获取关联单
if
(
this
.
msg
.
ReFinanceId
){
this
.
loading
=
true
;
this
.
apipost
(
'Financial_post_GetCostMonthFinancePageList'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
.
pageData
;
let
ybtotal
=
0
let
cdtotal
=
0
data
.
forEach
(
item
=>
{
cdtotal
+=
(
item
.
Money
*
100
);
ybtotal
+=
(
item
.
WBMoney
*
100
)
});
this
.
cdtotal
=
cdtotal
/
100
this
.
ybtotal
=
ybtotal
/
100
this
.
DataList
=
data
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
this
.
loading
=
false
;
},
err
=>
{})
}
},
}
}
</
script
>
src/router/config.js
View file @
0a27e6ac
...
@@ -3981,6 +3981,14 @@ export default {
...
@@ -3981,6 +3981,14 @@ export default {
title
:
'手配收入查询'
title
:
'手配收入查询'
},
},
},
},
{
//财务 财务单据 手配收入查询
path
:
'/MonthlyCostStatementInquire'
,
name
:
'MonthlyCostStatementInquire'
,
component
:
resolve
=>
require
([
'@/components/FinancialModule/MonthlyCostStatement/index'
],
resolve
),
meta
:
{
title
:
'成本月结查询'
},
},
{
//财务 财务单据 费用单据
{
//财务 财务单据 费用单据
path
:
'/Costdocuments'
,
path
:
'/Costdocuments'
,
name
:
'Costdocuments'
,
name
:
'Costdocuments'
,
...
...
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