118 lines
5.8 KiB
JavaScript
118 lines
5.8 KiB
JavaScript
var vue = new Vue({
|
|
el: "#vueDiv",
|
|
data: {
|
|
...pageModel,
|
|
TradeChilds: [],
|
|
checkResult: {
|
|
IsObservationDay: true, KOBarrier: pageModel.KOBarrier, PaymentNotional: "", PaymentAmount: "",
|
|
autocall_NeedCoupon: "否", snowball_ExerciseMoneyAtKO: "", rangeacc_BonusObservation: ""
|
|
},
|
|
},
|
|
created() {
|
|
let fmt = main.numberFormat(3, { trimTailZeros: true });
|
|
this.trade.TradeAmount = fmt(this.trade.TradeAmount);
|
|
this.trade.trade_barrier_option.BarrierPrice = fmt(this.trade.trade_barrier_option.BarrierPrice);
|
|
this.trade.trade_barrier_option.UpperBarrierPrice = fmt(this.trade.trade_barrier_option.UpperBarrierPrice);
|
|
this.trade.trade_double_sharkfin_option.BarrierLow = fmt(this.trade.trade_double_sharkfin_option.BarrierLow);
|
|
this.trade.trade_double_sharkfin_option.BarrierHigh = fmt(this.trade.trade_double_sharkfin_option.BarrierHigh);
|
|
this.trade.trade_rangeaccrual.LowerRange = fmt(this.trade.trade_rangeaccrual.LowerRange);
|
|
this.trade.trade_rangeaccrual.UpperRange = fmt(this.trade.trade_rangeaccrual.UpperRange);
|
|
this.trade.trade_snowball.KIBarrier = this.trade.trade_snowball.KIPayoffType === 0 ? "" : fmt(this.trade.trade_snowball.KIBarrier);
|
|
this.trade.trade_snowball.SpreadStrikeAtKO = fmt(this.trade.trade_snowball.SpreadStrikeAtKO);
|
|
this.trade.trade_autocall.KIBarrier = fmt(this.trade.trade_autocall.KIBarrier);
|
|
this.trade.trade_autocall.CouponBarrier = fmt(this.trade.trade_autocall.CouponBarrier);
|
|
this.trade.trade_airbag.Barrier = fmt(this.trade.trade_airbag.Barrier);
|
|
|
|
this.checkObservation();
|
|
},
|
|
mounted() {
|
|
main.setTradeDatePicker("", "#ObservationDate", null, this.setObservationDate.bind(this));
|
|
$("#ObservationDate").datepicker("option", "minDate", pageModel.TradeDate);
|
|
$("#ObservationDate").datepicker("option", "maxDate", pageModel.ExerciseDate);
|
|
let self = this;
|
|
//main.post("/trade/GetObserveTradeChildInfo", { tradeId: this.trade.id }).done(function (res) {
|
|
// self.TradeChilds = res;
|
|
//})
|
|
},
|
|
methods: {
|
|
getPostData() {
|
|
return { tradeId: this.trade.id, valueDate: this.SetObservationDate, price: this.SetObservationPrice };
|
|
},
|
|
checkObservation() {
|
|
var thisObj = this;
|
|
if (_.isNil(thisObj.SetObservationDate)) {
|
|
return main.message("请输入观察日期");
|
|
}
|
|
if (!thisObj.SetObservationPrice && thisObj.SetObservationPrice !== 0) {
|
|
return main.message("标的价格不能为空");
|
|
}
|
|
main.post("/OptionObservation/CheckObservation", this.getPostData()).done(function (res) {
|
|
|
|
let checkData = res.obj.CheckData;
|
|
|
|
thisObj.checkResult.IsObservationDay = res.obj.IsObservationDay;
|
|
|
|
thisObj.checkResult.KOBarrier = main.formatNumber(res.obj.KOBarrier, 4, { trimTailZeros: true });
|
|
|
|
thisObj.trade.KnockInOutStatusObservation = res.obj.KnockInOutStatusObservation;
|
|
|
|
thisObj.checkResult.autocall_NeedCoupon = checkData["autocall_NeedCoupon"] || "否";
|
|
thisObj.checkResult.snowball_ExerciseMoneyAtKO = checkData["snowball_ExerciseMoneyAtKO"] || "";
|
|
thisObj.checkResult.rangeacc_BonusObservation = checkData["rangeacc_BonusObservation"] || "";
|
|
|
|
thisObj.checkResult.PaymentAmount = checkData["累计结算金额"] || "";
|
|
thisObj.checkResult.PaymentNotional = checkData["累计结算数量"] || "";
|
|
|
|
if (thisObj.trade.TradeType === "累计期权") {
|
|
thisObj.trade.UnderlyingCode = res.obj.UnderlyingCode;
|
|
}
|
|
|
|
thisObj.trade.SettlementAmount = checkData["结算金额"] || "";
|
|
});
|
|
},
|
|
starttradeView: function (EncryptId) {
|
|
var srcurl = "/trade/TradeView/?enid=" + EncryptId + "&isFromPositionReport=true";
|
|
main.open("查看交易", srcurl);
|
|
},
|
|
setObservationDate(date) {
|
|
this.SetObservationDate = date;
|
|
this.checkObservation();
|
|
},
|
|
GetSettleMentAmount() {
|
|
var thisObj = this;
|
|
main.post("/OptionObservation/getTradeObservationCoupon", this.getPostData()).done(function (res) {
|
|
thisObj.trade.SettlementAmount = res.obj;
|
|
})
|
|
},
|
|
refreshUnderlyingPrice: function () {
|
|
var thisObj = this;
|
|
if (_.isNil(thisObj.SetObservationDate)) {
|
|
return main.message("请输入观察日期");
|
|
}
|
|
main.post("/underlying_manager/GetUnderlyingPriceByCode", { code: thisObj.trade.UnderlyingCode, valueDate: thisObj.SetObservationDate }).done(function (result) {
|
|
thisObj.SetObservationPrice = main.toNumber(result.obj);
|
|
thisObj.checkResult.IsObservationDay && thisObj.checkObservation();
|
|
});
|
|
},
|
|
submit: function () {
|
|
var thisObj = this;
|
|
if (_.isNil(this.SetObservationDate)) {
|
|
return main.message("请输入观察日期");
|
|
}
|
|
if (!this.checkResult.IsObservationDay) {
|
|
return main.message("请输入正确的观察日");
|
|
}
|
|
if (_.isNil(this.SetObservationPrice)) {
|
|
return main.message("请输入标的价格");
|
|
}
|
|
|
|
main.confirm("确认保存观察日价格?", function () {
|
|
let postData = thisObj.getPostData();
|
|
postData.SettlementAmount = thisObj.trade.SettlementAmount;
|
|
main.post("/OptionObservation/saveManuallyTradeObservationPrice", postData).done(function (res) {
|
|
main.message("设置观察日价格成功");
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}); |