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
2c2e8931
Commit
2c2e8931
authored
Sep 24, 2019
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
报价单修改
parent
f072a3dc
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
193 additions
and
49 deletions
+193
-49
CostNewPrice.vue
...ponents/TravelManager/TravelNewQuotation/CostNewPrice.vue
+169
-36
QuotationNewPrice.vue
...ts/TravelManager/TravelNewQuotation/QuotationNewPrice.vue
+24
-13
No files found.
src/components/TravelManager/TravelNewQuotation/CostNewPrice.vue
View file @
2c2e8931
...
...
@@ -129,11 +129,11 @@
<tr>
<td
class=
"CP_comBack"
>
汇率
</td>
<td
v-for=
'item in CostCurrencyList'
>
<el-input
class=
"w80"
v-model=
'item.ExchangeRate'
@
keyup
.
native=
"checkRate(item,'ExchangeRate')"
>
<el-input
class=
"w80"
v-model=
'item.ExchangeRate'
@
keyup
.
native=
"checkRate(item,'ExchangeRate')
,getchange()
"
>
</el-input>
</td>
<td>
<el-input
class=
"w100"
v-model=
'queryMsg.RateInput'
@
keyup
.
native=
"checkRate(queryMsg,'RateInput')"
>
<el-input
class=
"w100"
v-model=
'queryMsg.RateInput'
@
keyup
.
native=
"checkRate(queryMsg,'RateInput')
,getchange()
"
>
</el-input>
</td>
</tr>
...
...
@@ -145,13 +145,13 @@
<el-input
class=
"w80"
v-model=
'item.PeopleNumber'
@
keyup
.
native=
"checkInteger(item,'PeopleNumber')"
>
</el-input>
<span>
<i
class=
"iconfont icon-quxiao"
@
click=
"DeletePNumber(index)"
></i>
<i
class=
"iconfont icon-quxiao"
@
click=
"DeletePNumber(index)
,getchange()
"
></i>
</span>
</td>
<td
width=
"150"
>
<el-form-item>
<el-input
class=
"w80"
v-model=
'queryMsg.PeopleNumber'
@
keyup
.
native=
"checkInteger(queryMsg,'PeopleNumber')"
></el-input>
@
keyup
.
native=
"checkInteger(queryMsg,'PeopleNumber')
,getchange()
"
></el-input>
</el-form-item>
<div
class=
"AS_addPeoNumer"
>
<i
class=
"iconfont icon-img_haha"
@
click=
"addPeoNunber"
></i>
...
...
@@ -163,11 +163,10 @@
<td
v-if=
"checkExists(item.CurrencyId)"
v-for=
"childItem in getCurrencyNumberList(item.CurrencyId)"
>
<el-form-item>
<el-input
class=
"w80"
v-model=
'childItem.Money'
@
keyup
.
native=
"checkPrice(childItem,'Money',true),
ReCalc
()"
></el-input>
@
keyup
.
native=
"checkPrice(childItem,'Money',true),
getchange
()"
></el-input>
</el-form-item>
</td>
<td>
</td>
</tr>
</table>
...
...
@@ -207,25 +206,25 @@
@
keyup
.
native=
"checkPrice(subItem,'HotelCostPrice')"
></el-input>
</td>
<td>
<el-input
type=
'text'
v-model=
"subItem.BusCostPrice"
@
keyup
.
native=
"checkPrice(subItem,'BusCostPrice')"
>
<el-input
type=
'text'
v-model=
"subItem.BusCostPrice"
@
keyup
.
native=
"checkPrice(subItem,'BusCostPrice')
,getchange()
"
>
</el-input>
</td>
<td>
<el-input
type=
'text'
v-model=
"subItem.ScenicCostPrice"
@
keyup
.
native=
"checkPrice(subItem,'ScenicCostPrice')"
></el-input>
@
keyup
.
native=
"checkPrice(subItem,'ScenicCostPrice')
,getchange()
"
></el-input>
</td>
<td>
<el-input
type=
"text"
v-model=
'subItem.BreakfastCostPrice'
@
keyup
.
native=
"checkPrice(subItem,'BreakfastCostPrice')"
>
@
keyup
.
native=
"checkPrice(subItem,'BreakfastCostPrice')
,getchange()
"
>
</el-input>
</td>
<td>
<el-input
type=
"text"
v-model=
'subItem.LunchCostPrice'
@
keyup
.
native=
"checkPrice(subItem,'LunchCostPrice')"
></el-input>
@
keyup
.
native=
"checkPrice(subItem,'LunchCostPrice')
,getchange()
"
></el-input>
</td>
<td>
<el-input
type=
"text"
v-model=
'subItem.DinnerCostPrice'
@
keyup
.
native=
"checkPrice(subItem,'DinnerCostPrice')"
></el-input>
@
keyup
.
native=
"checkPrice(subItem,'DinnerCostPrice')
,getchange()
"
></el-input>
</td>
</tr>
</table>
...
...
@@ -247,7 +246,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.InlandAirTicketMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'InlandAirTicketMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'InlandAirTicketMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -267,7 +266,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.InlandShipTicketMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'InlandShipTicketMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'InlandShipTicketMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -287,7 +286,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.InlandTrainTicketMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'InlandTrainTicketMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'InlandTrainTicketMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -300,7 +299,7 @@
<td
colspan=
'3'
>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.VisaMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'VisaMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'VisaMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -310,7 +309,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.SafeMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'SafeMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'SafeMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -320,7 +319,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.LeaderTripMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'LeaderTripMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'LeaderTripMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -330,7 +329,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.DriverGuideMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'DriverGuideMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'DriverGuideMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -343,7 +342,7 @@
<td
colspan=
'3'
>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.SalesCommissionMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'SalesCommissionMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'SalesCommissionMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -353,7 +352,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.OfficeCommissionMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'OfficeCommissionMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'OfficeCommissionMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -365,7 +364,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.AirTicketMoeny"
@
keyup
.
native=
"checkPrice(OtherPrice,'AirTicketMoeny')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'AirTicketMoeny')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -378,7 +377,7 @@
<td
colspan=
'3'
>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.TripMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'TripMoney',true)"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'TripMoney',true)
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -388,7 +387,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.GuidePeopleMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'GuidePeopleMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'GuidePeopleMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -419,7 +418,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.AirTicketShareMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'AirTicketShareMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'AirTicketShareMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
<td
v-for=
"item in CostNumberList"
:key=
"item.subCode"
>
...
...
@@ -431,7 +430,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.TicketShareMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'TicketShareMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'TicketShareMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
<td
v-for=
"item in CostNumberList"
:key=
"item.subCode"
>
...
...
@@ -443,7 +442,7 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.SingleRoomShareMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'SingleRoomShareMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'SingleRoomShareMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
<td
v-for=
"item in CostNumberList"
:key=
"item.subCode"
>
...
...
@@ -455,25 +454,31 @@
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.InlandTrafficShareMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'InlandTrafficShareMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'InlandTrafficShareMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
<td
v-for=
"item in CostNumberList"
:key=
"item.subCode"
>
{{item.InlandTrafficMoney}}
</td>
</tr>
<tr>
<td>
杂费
</td>
<td>
<el-form-item>
<el-input
type=
'text'
class=
"w120"
v-model=
"OtherPrice.OtherShareMoney"
@
keyup
.
native=
"checkPrice(OtherPrice,'OtherShareMoney')"
></el-input>
@
keyup
.
native=
"checkPrice(OtherPrice,'OtherShareMoney')
,getchange()
"
></el-input>
</el-form-item>
</td>
<td
v-for=
"item in CostNumberList"
:key=
"item.subCode"
>
{{item.OtherMoney}}
</td>
</tr>
<tr>
<td>
小计
</td>
<td></td>
<td
v-for=
"item in CostNumberList"
:key=
"item.subCode"
>
{{item.SubtotalMoney}}
</td>
</tr>
</table>
<div
class=
"Cost_Line"
></div>
...
...
@@ -483,14 +488,17 @@
<td
width=
'250'
rowspan=
"2"
class=
"CP_comBack"
>
人数统计
</td>
<td
v-for=
"item in CostNumberList"
:key=
"item.subCode"
class=
"CP_comBack"
>
{{item.PeopleNumber}}+1
</td>
</tr>
<tr>
<td
v-for=
"item in CostNumberList"
:key=
"item.subCode"
>
{{item.TotalMoney}}
</td>
</tr>
</table>
</el-form>
</div>
</div>
</template>
...
...
@@ -524,6 +532,16 @@
// );
// this.$emit("headCallBack", this.OfferCostPriceObj);
},
//获取汇率
getCurrencyMoney
(
currencyId
)
{
let
currency
=
0.0
;
this
.
CostCurrencyList
.
forEach
(
x
=>
{
if
(
x
.
CurrencyId
==
currencyId
)
{
currency
=
x
.
ExchangeRate
;
}
});
return
currency
;
},
//判断币种是否相等
checkExists
(
CurrencyId
)
{
var
flag
=
false
;
...
...
@@ -534,6 +552,47 @@
});
return
flag
;
},
//获取不同人数组合价
getCurrencyNumberTotalMoney
(
peopleNumber
)
{
let
totalMoney
=
0.0
;
this
.
CurrencyNumberListExt
.
forEach
(
x
=>
{
x
.
currencyNumberList
.
forEach
(
y
=>
{
if
(
peopleNumber
===
y
.
PeopleNumber
)
{
totalMoney
+=
this
.
getConvertMoney
(
y
.
Money
)
*
this
.
getCurrencyMoney
(
y
.
CurrencyId
);
}
});
});
return
totalMoney
;
},
//获取主成本价
getCostTotalMoney
()
{
let
totalMoney
=
this
.
getConvertMoney
(
this
.
OtherPrice
.
InlandAirTicketMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
InlandAirTicketCurrency
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
InlandShipTicketMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
InlandShipTicketCurrency
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
InlandTrainTicketMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
InlandTrainTicketCurrency
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
DriverGuideMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
LeaderTripMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
OfficeCommissionMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
SafeMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
SalesCommissionMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
TripMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
GuidePeopleMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
AirTicketMoeny
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
KBMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
VisaMoney
);
return
totalMoney
;
},
//获取系列列表
getLineTeamList
(
lineId
)
{
this
.
postConfig
.
LineteamId
=
0
;
...
...
@@ -711,11 +770,85 @@
err
=>
{}
);
},
//计算总价
getSubtotalMoney
()
{
let
that
=
this
;
this
.
CostNumberList
.
forEach
(
x
=>
{
x
.
SubtotalMoney
=
(
this
.
getConvertMoney
(
x
.
AirTicketMoney
)
+
this
.
getConvertMoney
(
x
.
TicketMoney
)
+
this
.
getConvertMoney
(
x
.
SingleRoomMoney
)
+
this
.
getConvertMoney
(
x
.
InlandTrafficMoney
)
+
this
.
getConvertMoney
(
x
.
OtherMoney
)
).
toFixed
(
2
);
x
.
TotalMoney
=
(
that
.
getLocalTotalMoney
()
+
that
.
getCostTotalMoney
()
+
this
.
getConvertMoney
(
x
.
SubtotalMoney
)
+
this
.
getCurrencyNumberTotalMoney
(
x
.
PeopleNumber
)
).
toFixed
(
2
);
});
},
//价格转换器
getConvertMoney
(
value
)
{
if
(
value
===
""
||
value
===
undefined
||
value
===
null
)
{
value
=
0.0
;
}
return
parseFloat
(
value
);
},
//获取地接项目报价
getLocalTotalMoney
()
{
let
totalMoney
=
0.0
;
this
.
dayCostPrice
.
forEach
(
x
=>
{
let
subTotalMoney
=
0.0
;
subTotalMoney
=
(
this
.
getConvertMoney
(
x
.
HotelCostPrice
)
+
this
.
getConvertMoney
(
x
.
BusCostPrice
)
+
this
.
getConvertMoney
(
x
.
ScenicCostPrice
)
+
this
.
getConvertMoney
(
x
.
BreakfastCostPrice
)
+
this
.
getConvertMoney
(
x
.
LunchCostPrice
)
+
this
.
getConvertMoney
(
x
.
DinnerCostPrice
))
*
this
.
getCurrencyMoney
(
x
.
CurrencyId
);
totalMoney
+=
subTotalMoney
;
});
return
totalMoney
;
},
//计算领队分摊
getLeaderShare
()
{
let
that
=
this
;
var
AirTicketShareMoney
=
this
.
OtherPrice
.
AirTicketShareMoney
;
var
TicketShareMoney
=
this
.
OtherPrice
.
TicketShareMoney
;
var
SingleRoomShareMoney
=
this
.
OtherPrice
.
SingleRoomShareMoney
;
var
InlandTrafficShareMoney
=
this
.
OtherPrice
.
InlandTrafficShareMoney
;
var
OtherShareMoney
=
this
.
OtherPrice
.
OtherShareMoney
;
this
.
CostNumberList
.
forEach
(
x
=>
{
x
.
AirTicketMoney
=
(
AirTicketShareMoney
/
x
.
PeopleNumber
).
toFixed
(
2
);
x
.
TicketMoney
=
(
TicketShareMoney
/
x
.
PeopleNumber
).
toFixed
(
2
);
x
.
SingleRoomMoney
=
(
SingleRoomShareMoney
/
x
.
PeopleNumber
).
toFixed
(
2
);
x
.
InlandTrafficMoney
=
(
InlandTrafficShareMoney
/
x
.
PeopleNumber
).
toFixed
(
2
);
x
.
OtherMoney
=
(
OtherShareMoney
/
x
.
PeopleNumber
).
toFixed
(
2
);
});
},
getchange
()
{
this
.
getLeaderShare
();
this
.
getSubtotalMoney
();
}
},
mounted
()
{
this
.
getAllCurrency
();
},
created
()
{},
watch
:
{}
watch
:
{
CostNumberList
:
{
handler
:
function
(
val
,
oldVal
)
{
console
.
log
(
"111"
);
this
.
getchange
()
},
deep
:
true
},
},
};
</
script
>
\ No newline at end of file
</
script
>
src/components/TravelManager/TravelNewQuotation/QuotationNewPrice.vue
View file @
2c2e8931
...
...
@@ -122,15 +122,24 @@
},
//保存数据
SaveData
()
{
var
currencyNumList
=
[];
if
(
this
.
CurrencyNumberListExt
!=
null
&&
this
.
CurrencyNumberListExt
.
length
>
0
)
{
this
.
CurrencyNumberListExt
.
forEach
((
item
,
index
)
=>
{
item
.
currencyNumberList
.
forEach
(
subItem
=>
{
currencyNumList
.
push
(
subItem
);
});
});
}
var
nObj
=
{
config
:
this
.
postData
,
dayCostPriceList
:
this
.
dayCostPriceList
,
otherPrice
:
this
.
otherPrice
,
teamPrice
:
this
.
teamPrice
,
CostCurrencyList
:
this
.
CostCurrencyList
,
CostNumberList
:
this
.
CostNumberList
CostNumberList
:
this
.
CostNumberList
,
CurrencyNumberListExt
:
currencyNumList
};
console
.
log
(
"请求参数"
,
nObj
);
this
.
apipost
(
"travel_post_SetConfigOffer_V2"
,
nObj
,
res
=>
{
...
...
@@ -161,7 +170,6 @@
"travel_get_GetMyTravelInfo_V2"
,
msg
,
res
=>
{
console
.
log
(
"res.data.data"
,
res
.
data
);
if
(
res
.
data
.
resultCode
==
1
)
{
var
tempData
=
res
.
data
.
data
;
if
(
tempData
.
ID
&&
tempData
.
ID
>
0
)
{
...
...
@@ -205,13 +213,16 @@
if
(
tempData
.
teamPrice
)
{
this
.
teamPrice
=
tempData
.
teamPrice
;
}
if
(
tempData
.
CostNumberList
&&
tempData
.
CostNumberList
!=
null
&&
tempData
.
CostNumberList
.
length
>
0
)
{
this
.
CostNumberList
=
tempData
.
CostNumberList
;
if
(
tempData
.
CostNumberList
&&
tempData
.
CostNumberList
!=
null
&&
tempData
.
CostNumberList
.
length
>
0
)
{
this
.
CostNumberList
=
tempData
.
CostNumberList
;
}
if
(
tempData
.
CostCurrencyList
&&
tempData
.
CostCurrencyList
!=
null
&&
tempData
.
CostCurrencyList
.
length
>
0
)
{
this
.
CostCurrencyList
=
tempData
.
CostCurrencyList
;
if
(
tempData
.
CostCurrencyList
&&
tempData
.
CostCurrencyList
!=
null
&&
tempData
.
CostCurrencyList
.
length
>
0
)
{
this
.
CostCurrencyList
=
tempData
.
CostCurrencyList
;
}
if
(
tempData
.
CurrencyNumberListExt
&&
tempData
.
CurrencyNumberListExt
!=
null
&&
tempData
.
CurrencyNumberListExt
.
length
>
0
)
{
this
.
CurrencyNumberListExt
=
tempData
.
CurrencyNumberListExt
;
}
}
else
{
this
.
Error
(
res
.
data
.
message
);
...
...
@@ -219,14 +230,14 @@
},
err
=>
{}
);
}
},
},
created
()
{
this
.
getPostData
();
},
components
:
{
DirectQuotation
:
DirectQuotation
}
}
};
</
script
>
</
script
>
\ No newline at end of file
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