Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/trade/setObservationPrice.js
T
2024-05-09 14:06:26 +08:00

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("设置观察日价格成功");
});
});
}
}
});