Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2-margin
This commit is contained in:
@@ -2000,9 +2000,6 @@ const subView = (function (jqGridMgr) {
|
||||
|
||||
if (tradeType === "收益互换") {
|
||||
srcurl = "/swaptrade2/SwapUnwind/?enid=" + encryptId;
|
||||
if (StructureType=="多空组合") {
|
||||
srcurl = "/swaptrade2/SwapLongShortUnwind/?enid=" + encryptId;
|
||||
}
|
||||
area = ["1300px", "720px"];
|
||||
}
|
||||
if (tradeType.indexOf("远期") >= 0) {
|
||||
|
||||
@@ -112,7 +112,7 @@ const vue = new Vue({
|
||||
this.multiplier,
|
||||
isUseApproval);
|
||||
this.interestList = model.FlowEvents.filter((item) => {
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 7 || item.InterestMode == 8 || item.InterestMode == 9;
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 9;
|
||||
});
|
||||
this.marginList = model.FlowEvents.filter((item) => {
|
||||
return item.InterestMode == 5 || item.InterestMode == 6;
|
||||
@@ -255,7 +255,7 @@ const vue = new Vue({
|
||||
var postData = { ValueDate: thisObj.deal.ValueDate, unwindDate: thisObj.deal.UnwindDate, tradeId: thisObj.deal.SwapTradeId, closePercent: 1, eventType:3 }
|
||||
main.post("/swaptrade2/GetUnwindInterestList", postData, { async: true }).done(function (resp) {
|
||||
thisObj.interestList = resp.obj.filter((item) => {
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 7 || item.InterestMode == 8 || item.InterestMode == 9;
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 9;
|
||||
});
|
||||
thisObj.marginList = resp.obj.filter((item) => {
|
||||
return item.InterestMode == 5 || item.InterestMode == 6;
|
||||
|
||||
@@ -1,228 +0,0 @@
|
||||
//otcformat禁止千分位分组
|
||||
window.otcformat.options.disableGrouping = true;
|
||||
const inputFormatEqvNotional = swapPricePrecision.getCommonInputFormat('amount', { append: '' });
|
||||
const swapInstrumentType = (model.FlowEvents || []).find(item => item && item.UnderlyingInstrumentType)?.UnderlyingInstrumentType || model.UnderlyingInstrumentType || '';
|
||||
const formatSwapAmount = value => swapPricePrecision.normalizeCommon('amount', value);
|
||||
const formatSwapQuantity = value => swapPricePrecision.normalizeCommon('quantity', value, swapInstrumentType);
|
||||
let ValueDate = model.ValueDate;
|
||||
const vue = new Vue({
|
||||
el: '#vueDiv',
|
||||
data: {
|
||||
deal: model,
|
||||
interestList: [],
|
||||
marginList: [],
|
||||
},
|
||||
computed: {
|
||||
maxUnwindDate() {
|
||||
return ValueDate;
|
||||
},
|
||||
minStartDate() {
|
||||
return this.deal.StartDate;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initDeal();
|
||||
this.setValueDate();
|
||||
},
|
||||
methods: {
|
||||
formatAmount(value) {
|
||||
return swapPricePrecision.formatCommon('amount', value);
|
||||
},
|
||||
formatQuantity(value) {
|
||||
return swapPricePrecision.formatCommon('quantity', value, swapInstrumentType);
|
||||
},
|
||||
initDeal() {
|
||||
this.interestList = model.FlowEvents.filter((item) => {
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 7 || item.InterestMode == 8 || item.InterestMode == 9;
|
||||
});
|
||||
this.marginList = model.FlowEvents.filter((item) => {
|
||||
return item.InterestMode == 5 || item.InterestMode == 6;
|
||||
});
|
||||
},
|
||||
setValueDate(e) {//修改平仓日期
|
||||
if (e) {
|
||||
this.deal.ValueDate = e;
|
||||
this.deal.UnwindDate = e;
|
||||
}
|
||||
if (!isUseApproval) {
|
||||
this.getInterestList();
|
||||
} else {
|
||||
this.dataFormat();
|
||||
}
|
||||
},
|
||||
dataFormat() {
|
||||
this.deal.NotionalValue = formatSwapAmount(this.deal.NotionalValue);
|
||||
this.deal.PosiNotionalValue = formatSwapAmount(this.deal.PosiNotionalValue);
|
||||
this.deal.NotionalQty = formatSwapQuantity(this.deal.NotionalQty);
|
||||
this.deal.PositionQty = formatSwapQuantity(this.deal.PositionQty);
|
||||
this.deal.SwapCloseAmount = formatSwapAmount(this.deal.SwapCloseAmount);
|
||||
this.interestList.forEach(x => {
|
||||
//x.Principal = formatSwapAmount(x.Principal);
|
||||
//x.Rate = otcformat.fixed6(x.Rate);
|
||||
x.InterestFee = formatSwapAmount(x.InterestFee);
|
||||
x.InterestAmount = formatSwapAmount(x.InterestAmount);
|
||||
x.InterestClosePnL = formatSwapAmount(x.InterestClosePnL);
|
||||
//x.InterestStartDate = x.InterestStartDate ? x.InterestStartDate.substr(0, 10) : "";
|
||||
//x.InterestEndDate = x.InterestEndDate ? x.InterestEndDate.substr(0, 10) : "";
|
||||
});
|
||||
this.marginList.forEach(x => {
|
||||
x.InterestFee = formatSwapAmount(x.InterestFee);
|
||||
x.InterestAmount = formatSwapAmount(x.InterestAmount);
|
||||
x.InterestClosePnL = formatSwapAmount(x.InterestClosePnL);
|
||||
});
|
||||
},
|
||||
changeInterestAmount(item) {//修改利息金额
|
||||
let interestRatio = item.InterestDirection == 1 ? 1 : -1;
|
||||
item.InterestClosePnL = formatSwapAmount(parseFloat(item.InterestAmount) * interestRatio + parseFloat(item.InterestFee));
|
||||
this.calcCloseAmount();
|
||||
},
|
||||
calcCloseAmount() {//计算平仓总额=浮动收取+利息收取-浮动支付-利息支付
|
||||
let thisObj = this;
|
||||
thisObj.deal.SwapCloseAmount = 0;
|
||||
thisObj.deal.SwapRealizedPnL = 0;
|
||||
thisObj.deal.SwapMarginRebatePnl = 0;
|
||||
thisObj.deal.SwapMarginAmount = 0;
|
||||
this.interestList.forEach(x => {
|
||||
/*let interestRatio = x.InterestDirection == 1 ? 1 : -1;*/
|
||||
let interestAmount = parseFloat(x.InterestClosePnL);
|
||||
thisObj.deal.SwapCloseAmount = parseFloat(thisObj.deal.SwapCloseAmount) + interestAmount;
|
||||
thisObj.deal.SwapRealizedPnL = parseFloat(thisObj.deal.SwapRealizedPnL) + interestAmount;
|
||||
});
|
||||
this.marginList.forEach(x => {
|
||||
let interestAmount = parseFloat(x.InterestClosePnL);
|
||||
thisObj.deal.SwapCloseAmount = parseFloat(thisObj.deal.SwapCloseAmount) + interestAmount;
|
||||
thisObj.deal.SwapMarginRebatePnl = parseFloat(thisObj.deal.SwapMarginRebatePnl) + interestAmount;
|
||||
thisObj.deal.SwapRealizedPnL = parseFloat(thisObj.deal.SwapRealizedPnL) + interestAmount;
|
||||
thisObj.deal.SwapMarginAmount = parseFloat(thisObj.deal.SwapMarginAmount) + parseFloat(x.InterestPrincipal);
|
||||
});
|
||||
thisObj.deal.SwapCloseAmount = formatSwapAmount(thisObj.deal.SwapCloseAmount);
|
||||
thisObj.deal.SwapRealizedPnL = formatSwapAmount(thisObj.deal.SwapRealizedPnL);
|
||||
thisObj.deal.SwapMarginRebatePnl = formatSwapAmount(thisObj.deal.SwapMarginRebatePnl);
|
||||
thisObj.deal.SwapMarginAmount = formatSwapAmount(thisObj.deal.SwapMarginAmount);
|
||||
},
|
||||
getInterestList() {//根据平仓日期获取利息腿信息
|
||||
var thisObj = this;
|
||||
var postData = { valueDate: thisObj.deal.ValueDate, unwindDate: thisObj.deal.UnwindDate, tradeId: thisObj.deal.SwapTradeId, closePercent: 1, eventType: 3 }
|
||||
main.post("/swaptrade2/GetUnwindInterestList", postData, { async: true }).done(function (resp) {
|
||||
thisObj.interestList = resp.obj.filter((item) => {
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 7 || item.InterestMode == 8 || item.InterestMode == 9;
|
||||
});
|
||||
thisObj.marginList = resp.obj.filter((item) => {
|
||||
return item.InterestMode == 5 || item.InterestMode == 6;
|
||||
});
|
||||
thisObj.calcCloseAmount();
|
||||
thisObj.dataFormat();
|
||||
});
|
||||
},
|
||||
incomeTrade() {//互换
|
||||
var thisObj = this;
|
||||
if (main.isEmpty(thisObj.deal.ValueDate)) {
|
||||
main.message("请输入平仓日期");
|
||||
return;
|
||||
}
|
||||
let reqObj = _.cloneDeep(thisObj.deal);
|
||||
let marginCloneList = _.cloneDeep(thisObj.marginList);
|
||||
|
||||
reqObj.FlowEvents = _.cloneDeep(thisObj.interestList);
|
||||
marginCloneList.forEach((item) => {
|
||||
reqObj.FlowEvents.push(item);
|
||||
})
|
||||
var postData = { unwindData: reqObj };
|
||||
var msg = "确认提交收益结算?";
|
||||
var postUrl = "/swaptrade2/SwapLongShortJson";
|
||||
if (g_isShowReCheckClose) {
|
||||
msg = "确认提交收益结算审核?";
|
||||
postUrl = "/swaptrade2/ApplyUnwind";
|
||||
postData.eventType = 3;//互换3,平仓2
|
||||
}
|
||||
main.confirm(msg,
|
||||
function () {
|
||||
//重新计算百分比
|
||||
var thisObj2 = thisObj;
|
||||
main.post(postUrl, { unwindData: reqObj }).done(function (res) {
|
||||
if (res.success) {
|
||||
thisObj2.closetrade_cashWindow();
|
||||
}
|
||||
else {
|
||||
try {
|
||||
thisObj2.closetrade_cashWindow();
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
getSumbitText: function () {
|
||||
return g_isShowReCheckClose ? "审核提交" : "保存";
|
||||
},
|
||||
submitApproval(status) {
|
||||
var pop = '';
|
||||
if (status === 'pass') {
|
||||
pop = "确认通过审批?";
|
||||
}
|
||||
if (status === 'reject') {
|
||||
pop = "确认拒绝?";
|
||||
}
|
||||
var confirmFunc = function (additionalProcessing) {
|
||||
var pData = { tradeId: trade.id, status: status, text: "" };
|
||||
if (!main.isEmpty(additionalProcessing)) {
|
||||
pData.additionalProcessing = additionalProcessing;
|
||||
}
|
||||
var thisObj2 = thisObj;
|
||||
main.post("/processtradelog/UpdateTradeProcessLog", pData).done(
|
||||
function (data) {
|
||||
if (data.obj && data.obj.proccessType == "AdditionalProcessing") {
|
||||
if (data.obj.type == "LackOfMoney") {
|
||||
var htmlContent = `<div style="padding:10px">${data.obj.message}</div>`;
|
||||
var lackMoneyConfirmLayer = main.open2("提示",
|
||||
htmlContent,
|
||||
{
|
||||
area: ["430px", "175px"],
|
||||
btn: ['交易特批', '取消'],
|
||||
yes: function (index, layero) {
|
||||
var layerIndex = lackMoneyConfirmLayer;
|
||||
main.confirm("客户资金或授信不足,强制成交会导致本机构产生风险!要继续审批通过?", function () {
|
||||
layer.close(layerIndex);
|
||||
confirmFunc("LackOfMoney");
|
||||
});
|
||||
},
|
||||
cancel: function (index, layero) {
|
||||
if (window.parent && window.parent.reloadtrade) {
|
||||
thisObj2.closetrade_cashWindow();
|
||||
}
|
||||
(parent || window).layer.closeAll();
|
||||
}
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
(parent || window).main.message(data.msg);
|
||||
try { thisObj2.closetrade_cashWindow(); }
|
||||
catch (e) { }
|
||||
if (parent) {
|
||||
parent.layer.closeAll();
|
||||
}
|
||||
});
|
||||
}
|
||||
main.confirm(pop, confirmFunc);
|
||||
},
|
||||
closetrade_cashWindow: function () {
|
||||
layer.closeMe('reloadData');
|
||||
},
|
||||
closeCurrentWindow: function () {
|
||||
try {
|
||||
if (window.parent && window.parent.reload) window.parent.reload();
|
||||
} catch (e) {
|
||||
}
|
||||
try {
|
||||
var layer = window.parent.layer;
|
||||
layer.close(layer.getFrameIndex(window.name));
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'vue-datepicker': FastVue.vueDatePicker(),
|
||||
'vue-number-input': FastVue.vueNumberInput(),
|
||||
}
|
||||
});
|
||||
@@ -868,9 +868,6 @@ const vue = new Vue({
|
||||
}
|
||||
},
|
||||
changeInterestMode(item) {
|
||||
if (item.InterestMode == 7 || item.InterestMode == 8) {
|
||||
item.InterestType = 0;
|
||||
}
|
||||
},
|
||||
changeInterestType(item) {
|
||||
if (!item.interest_rest_days) {
|
||||
@@ -1462,28 +1459,7 @@ const vue = new Vue({
|
||||
},
|
||||
// 多空组合利息腿校验
|
||||
checkSwapRateList() {
|
||||
var thisObj = this;
|
||||
var longInterestModelCount = 0;
|
||||
var shortInterestModelCount = 0;
|
||||
var check = true;
|
||||
if (thisObj.getSwapList != null) {
|
||||
thisObj.getSwapList.forEach((val, num, arr) => {
|
||||
if (val.InterestMode==7) {
|
||||
longInterestModelCount++;
|
||||
}
|
||||
if (val.InterestMode == 8) {
|
||||
shortInterestModelCount++;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (longInterestModelCount > 1) {
|
||||
check = false;
|
||||
main.message("计息基本类型为多头存续名义本金的利息腿只能有一条");
|
||||
}
|
||||
if (shortInterestModelCount > 1) {
|
||||
check = false;
|
||||
main.message("计息基本类型为空头存续名义本金的利息腿只能有一条");
|
||||
}
|
||||
return check;
|
||||
},
|
||||
//观察日起始日期跟交易起始日期检查
|
||||
@@ -1619,7 +1595,7 @@ const vue = new Vue({
|
||||
//初始化利息端列表
|
||||
initSwapRateList() {
|
||||
var thisObj = this;
|
||||
thisObj.getSwapList = thisObj.trade.swap_positions.filter(x => { if ((x.UnderlyingCode == null || x.UnderlyingCode.length == 0) && x.IsInitial && (x.InterestMode == 1 || x.InterestMode == 2 || x.InterestMode == 7 || x.InterestMode == 8 || x.InterestMode == 9)) return x; });
|
||||
thisObj.getSwapList = thisObj.trade.swap_positions.filter(x => { if ((x.UnderlyingCode == null || x.UnderlyingCode.length == 0) && x.IsInitial && (x.InterestMode == 1 || x.InterestMode == 2 || x.InterestMode == 9)) return x; });
|
||||
thisObj.getSwapList.forEach((val, num, arr) => {
|
||||
arr[num].index = num;
|
||||
arr[num].category_tag = arr[num].category_tag || '互换利率';
|
||||
|
||||
@@ -330,46 +330,6 @@ function unWindSwap(id) {
|
||||
}
|
||||
});
|
||||
}
|
||||
function unWindSwapLongShort(id) {
|
||||
var title = "交易平仓";
|
||||
var srcurl = "/swaptrade2/SwapLongShortUnwind/?enid=" + id;
|
||||
main.post("/swaptrade2/CheckEodTrade?enid=" + id).done(function (res) {
|
||||
if (res.success) {
|
||||
main.open(title,
|
||||
srcurl,
|
||||
{
|
||||
area: ["1300px", "780px"],
|
||||
end: function () {
|
||||
if (window.parent && window.parent.reloadtrade) {
|
||||
window.parent.reloadtrade();
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
main.message(res.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
function unWindLongShortSwap(id) {
|
||||
var title = "期间互换";
|
||||
var srcurl = "/swaptrade2/SwapLongShortSwap/?enid=" + id;
|
||||
main.post("/swaptrade2/CheckEodTrade?enid=" + id).done(function (res) {
|
||||
if (res.success) {
|
||||
main.open(title,
|
||||
srcurl,
|
||||
{
|
||||
area: ["1300px", "780px"],
|
||||
end: function () {
|
||||
if (window.parent && window.parent.reloadtrade) {
|
||||
window.parent.reloadtrade();
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
main.message(res.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
function extensionTime(id) {
|
||||
var title = "展期信息";
|
||||
var srcurl = "/swaptrade2/ExtensionTime/?enid=" + id;
|
||||
|
||||
@@ -1,197 +0,0 @@
|
||||
//otcformat禁止千分位分组
|
||||
window.otcformat.options.disableGrouping = true;
|
||||
const inputFormatEqvNotional = swapPricePrecision.getCommonInputFormat('amount', { append: '' });
|
||||
const swapInstrumentType = (model.FlowEvents || []).find(item => item && item.UnderlyingInstrumentType)?.UnderlyingInstrumentType || model.UnderlyingInstrumentType || '';
|
||||
const formatSwapAmount = value => swapPricePrecision.normalizeCommon('amount', value);
|
||||
const formatSwapQuantity = value => swapPricePrecision.normalizeCommon('quantity', value, swapInstrumentType);
|
||||
let dealDate = model.DealDate;
|
||||
const vue = new Vue({
|
||||
el: '#vueDiv',
|
||||
data: {
|
||||
deal: model,
|
||||
interestList: [],
|
||||
marginList: [],
|
||||
oriClosePercent: model.ClosePercent
|
||||
},
|
||||
computed: {
|
||||
minStartDate() {
|
||||
return dealDate;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initDeal();
|
||||
this.calcCloseAmount();
|
||||
this.dataFormat();
|
||||
},
|
||||
methods: {
|
||||
formatAmount(value) {
|
||||
return swapPricePrecision.formatCommon('amount', value);
|
||||
},
|
||||
formatQuantity(value) {
|
||||
return swapPricePrecision.formatCommon('quantity', value, swapInstrumentType);
|
||||
},
|
||||
initDeal() {
|
||||
this.interestList = model.FlowEvents.filter((item) => {
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 7 || item.InterestMode == 8 || item.InterestMode == 9;
|
||||
});
|
||||
this.marginList = model.FlowEvents.filter((item) => {
|
||||
return item.InterestMode == 5 || item.InterestMode == 6;
|
||||
});
|
||||
},
|
||||
dataFormat() {
|
||||
this.deal.NotionalValue = formatSwapAmount(this.deal.NotionalValue);
|
||||
this.deal.PosiNotionalValue = formatSwapAmount(this.deal.PosiNotionalValue);
|
||||
this.deal.NotionalQty = formatSwapQuantity(this.deal.NotionalQty);
|
||||
this.deal.SwapCloseAmount = formatSwapAmount(this.deal.SwapCloseAmount);
|
||||
this.deal.PositionQty = formatSwapQuantity(this.deal.PositionQty);
|
||||
this.interestList.forEach(x => {
|
||||
//x.Principal = formatSwapAmount(x.Principal);
|
||||
//x.Rate = otcformat.fixed6(x.Rate);
|
||||
x.InterestAmount = formatSwapAmount(x.InterestAmount);
|
||||
x.InterestClosePnL = formatSwapAmount(x.InterestClosePnL);
|
||||
//x.InterestStartDate = x.InterestStartDate ? x.InterestStartDate.substr(0, 10) : "";
|
||||
//x.InterestEndDate = x.InterestEndDate ? x.InterestEndDate.substr(0, 10) : "";
|
||||
});
|
||||
this.marginList.forEach(x => {
|
||||
x.InterestAmount = formatSwapAmount(x.InterestAmount);
|
||||
x.InterestClosePnL = formatSwapAmount(x.InterestClosePnL);
|
||||
});
|
||||
},
|
||||
changeInterestAmount(item) {//修改利息金额
|
||||
let interestRatio = item.InterestDirection == 1 ? 1 : -1;
|
||||
item.InterestClosePnL = formatSwapAmount(parseFloat(item.InterestAmount) * interestRatio+ parseFloat(item.InterestFee));
|
||||
this.calcCloseAmount();
|
||||
},
|
||||
calcCloseAmount() {//计算平仓总额=浮动收取+利息收取-浮动支付-利息支付
|
||||
let thisObj = this;
|
||||
thisObj.deal.SwapCloseAmount = 0;
|
||||
thisObj.deal.SwapRealizedPnL = 0;
|
||||
thisObj.deal.SwapMarginRebatePnl = 0;
|
||||
thisObj.deal.SwapMarginAmount = 0;
|
||||
this.interestList.forEach(x => {
|
||||
/*let interestRatio = x.InterestDirection == 1 ? 1 : -1;*/
|
||||
let interestAmount = parseFloat(x.InterestClosePnL);
|
||||
thisObj.deal.SwapCloseAmount = parseFloat(thisObj.deal.SwapCloseAmount) + interestAmount;
|
||||
thisObj.deal.SwapRealizedPnL = parseFloat(thisObj.deal.SwapRealizedPnL) + interestAmount;
|
||||
});
|
||||
this.marginList.forEach(x => {
|
||||
let interestAmount = parseFloat(x.InterestClosePnL);
|
||||
let interestRatio = x.InterestDirection == 1 ? -1 : 1;
|
||||
thisObj.deal.SwapCloseAmount = parseFloat(thisObj.deal.SwapCloseAmount) + interestAmount;
|
||||
thisObj.deal.SwapMarginRebatePnl = parseFloat(thisObj.deal.SwapMarginRebatePnl) + interestAmount;
|
||||
thisObj.deal.SwapRealizedPnL = parseFloat(thisObj.deal.SwapRealizedPnL) + interestAmount;
|
||||
thisObj.deal.SwapMarginAmount = parseFloat(thisObj.deal.SwapMarginAmount) + parseFloat(x.InterestPrincipal) * interestRatio;
|
||||
});
|
||||
thisObj.deal.SwapCloseAmount = formatSwapAmount(thisObj.deal.SwapCloseAmount);
|
||||
thisObj.deal.SwapRealizedPnL = formatSwapAmount(thisObj.deal.SwapRealizedPnL);
|
||||
thisObj.deal.SwapMarginRebatePnl = formatSwapAmount(thisObj.deal.SwapMarginRebatePnl);
|
||||
thisObj.deal.SwapMarginAmount = formatSwapAmount(thisObj.deal.SwapMarginAmount);
|
||||
},
|
||||
closeTrade() {//平仓
|
||||
var thisObj = this;
|
||||
let reqObj = _.cloneDeep(thisObj.deal);
|
||||
let marginCloneList = _.cloneDeep(thisObj.marginList);
|
||||
reqObj.FlowEvents = _.cloneDeep(thisObj.interestList);
|
||||
marginCloneList.forEach((item) => {
|
||||
reqObj.FlowEvents.push(item);
|
||||
})
|
||||
var postData = { unwindData: reqObj };
|
||||
var msg = "确认提交平仓?";
|
||||
var postUrl = "/swaptrade2/SwapLongShortUnwindJson";
|
||||
if (g_isShowReCheckClose) {
|
||||
msg = "确认提交平仓审核?";
|
||||
postUrl = "/swaptrade2/ApplyUnwind";
|
||||
postData.eventType = 2;//互换3,平仓2
|
||||
}
|
||||
main.confirm(msg,
|
||||
function () {
|
||||
//重新计算百分比
|
||||
var thisObj2 = thisObj;
|
||||
main.post(postUrl, postData).done(function (res) {
|
||||
if (res.success) {
|
||||
thisObj2.closetrade_cashWindow();
|
||||
}
|
||||
else {
|
||||
try {
|
||||
thisObj2.closetrade_cashWindow();
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
getSumbitText: function () {
|
||||
return g_isShowReCheckClose ? "审核提交" : "保存";
|
||||
},
|
||||
submitApproval(status) {
|
||||
var pop = '';
|
||||
if (status === 'pass') {
|
||||
pop = "确认通过审批?";
|
||||
}
|
||||
if (status === 'reject') {
|
||||
pop = "确认拒绝?";
|
||||
}
|
||||
let thisObj = this;
|
||||
var confirmFunc = function (additionalProcessing) {
|
||||
var pData = { tradeId: thisObj.deal.SwapTradeId, status: status, text: "" };
|
||||
if (!main.isEmpty(additionalProcessing)) {
|
||||
pData.additionalProcessing = additionalProcessing;
|
||||
}
|
||||
var thisObj2 = thisObj;
|
||||
main.post("/processtradelog/UpdateTradeProcessLog", pData).done(
|
||||
function (data) {
|
||||
if (data.obj && data.obj.proccessType == "AdditionalProcessing") {
|
||||
if (data.obj.type == "LackOfMoney") {
|
||||
var htmlContent = `<div style="padding:10px">${data.obj.message}</div>`;
|
||||
var lackMoneyConfirmLayer = main.open2("提示",
|
||||
htmlContent,
|
||||
{
|
||||
area: ["430px", "175px"],
|
||||
btn: ['交易特批', '取消'],
|
||||
yes: function (index, layero) {
|
||||
var layerIndex = lackMoneyConfirmLayer;
|
||||
main.confirm("客户资金或授信不足,强制成交会导致本机构产生风险!要继续审批通过?", function () {
|
||||
layer.close(layerIndex);
|
||||
confirmFunc("LackOfMoney");
|
||||
});
|
||||
},
|
||||
cancel: function (index, layero) {
|
||||
if (window.parent && window.parent.reloadtrade) {
|
||||
thisObj2.closetrade_cashWindow();
|
||||
}
|
||||
(parent || window).layer.closeAll();
|
||||
}
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
(parent || window).main.message(data.msg);
|
||||
try { thisObj2.closetrade_cashWindow(); }
|
||||
catch (e) { }
|
||||
if (parent) {
|
||||
parent.layer.closeAll();
|
||||
}
|
||||
});
|
||||
}
|
||||
main.confirm(pop, confirmFunc);
|
||||
},
|
||||
closetrade_cashWindow: function () {
|
||||
layer.closeMe('reloadData');
|
||||
},
|
||||
closeCurrentWindow: function () {
|
||||
try {
|
||||
if (window.parent && window.parent.reload) window.parent.reload();
|
||||
} catch (e) {
|
||||
}
|
||||
try {
|
||||
var layer = window.parent.layer;
|
||||
layer.close(layer.getFrameIndex(window.name));
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'vue-datepicker': FastVue.vueDatePicker(),
|
||||
'vue-number-input': FastVue.vueNumberInput(),
|
||||
}
|
||||
});
|
||||
@@ -110,7 +110,7 @@ const vue = new Vue({
|
||||
this.floatPosition = positions[0];
|
||||
this.initPosiNetPrice = this.floatPosition.PosiGrossPrice;
|
||||
this.interestList = model.FlowEvents.filter((item) => {
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 7 || item.InterestMode == 8 || item.InterestMode == 9;
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 9;
|
||||
});
|
||||
this.marginList = model.FlowEvents.filter((item) => {
|
||||
return item.InterestMode == 5 || item.InterestMode == 6;
|
||||
@@ -375,7 +375,7 @@ const vue = new Vue({
|
||||
' closeNotionalValue=', thisObj.deal.CloseNotionalValue, ' posiNotionalValue=', thisObj.deal.PosiNotionalValue);
|
||||
main.post("/swaptrade2/GetUnwindInterestList", postData, { async: true }).done(function (resp) {
|
||||
thisObj.interestList = resp.obj.filter((item) => {
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 7 || item.InterestMode == 8 || item.InterestMode == 9;
|
||||
return item.InterestMode == 1 || item.InterestMode == 2 || item.InterestMode == 9;
|
||||
});
|
||||
thisObj.marginList = resp.obj.filter((item) => {
|
||||
return item.InterestMode == 5 || item.InterestMode == 6;
|
||||
|
||||
@@ -731,9 +731,6 @@ function passorreinfo(eid, tradeType, status, isGroup, StructureType) {
|
||||
else if (tradeType === "收益互换") {
|
||||
weight = "95%";
|
||||
url = "/swaptrade2/SwapUnwind/?enid=" + eid + "&isUseApproval=" + true;
|
||||
if (StructureType == "多空组合") {
|
||||
url = "/swaptrade2/SwapLongShortUnwind/?enid=" + eid + "&isUseApproval=" + true;
|
||||
}
|
||||
height = "800px";
|
||||
}
|
||||
else {
|
||||
@@ -744,9 +741,6 @@ function passorreinfo(eid, tradeType, status, isGroup, StructureType) {
|
||||
weight = "95%";
|
||||
title = "互换审批";
|
||||
url = "/swaptrade2/SwapIncome/?enid=" + eid + "&isUseApproval=" + true;
|
||||
if (StructureType == "多空组合") {
|
||||
url = "/swaptrade2/SwapLongShortSwap/?enid=" + eid + "&isUseApproval=" + true;
|
||||
}
|
||||
height = "800px";
|
||||
}
|
||||
else if (status === "行权待复核") {
|
||||
@@ -883,9 +877,6 @@ function unWindSelect(id, tradeType, isReCheck, StructureType) {
|
||||
});
|
||||
} else if (tradeType == "收益互换") {
|
||||
var url = "/swaptrade2/SwapUnwind/?enid=" + id + "&isUseApproval=" + true;;
|
||||
if (StructureType == "多空组合") {
|
||||
url = "/swaptrade2/SwapLongShortUnwind/?enid=" + id + "&isUseApproval=" + true;;
|
||||
}
|
||||
main.open(title, url, {
|
||||
area: ["1300px", "720px"],
|
||||
end: function () {
|
||||
|
||||
Reference in New Issue
Block a user