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

78 lines
2.4 KiB
JavaScript

var autoruleVue = new Vue({
el: '#autoRuelWrap',
data: {
ruleMap: {},
rawDatas: [],
alarmSum: 0
},
mounted: function () {
var map = {};
_.forEach(page.autoRules, function (rule, index) {
map[rule.UnderlyingCode] = rule;
rule.$delta = '';
rule.$alarm = false;
});
this.ruleMap = map;
},
methods: {
editRule: function (code) {
if (typeof code !== 'string') {
code = '';
}
var index = layer.open({
type: 2,
title: '对冲规则',
shadeClose: true,
area: ['550px', '600px'],
content: "/trade_autorule/edit2?code=" + code
});
},
hedging: function (code) {
if (!code) {
return main.alert("无效标的代码");
}
var postData = jqGridMgr.getPostData();
postData = _.assign(postData, { UnderlyingCodes: [code] });
var index = layer.open({
type: 2,
title: '实时对冲',
shadeClose: true,
area: ['90%', '90%'],
content: "/RiskHedging/Hedging?" + $.param(postData,true)
});
},
updateAlarm: function (datas) {
if (datas) {
this.rawDatas = datas;
}
else {
datas = this.rawDatas;
}
var map = this.ruleMap, sum = 0;
_.each(map, x => x.$delta = '');
_.forEach(datas, data => {
var rule = map[data.UnderlyingCode];
if (!rule) return;
rule.$delta = main.formatNumber(data.DeltaPercent, {percent:true});
var deltaPercent = data.DeltaPercent * 100;
rule.$alarm = deltaPercent < rule.MinDelta || deltaPercent > rule.MaxDelta;
if (rule.$alarm) sum++;
});
this.alarmSum = sum;
}
},
filters: {
toPercent: function (val) {
return val ? val + '%' : '';
}
}
});
function setRules(data) {
if (data.Enable) {
Vue.set(autoruleVue.ruleMap, data.UnderlyingCode, data);
} else {
Vue.delete(autoruleVue.ruleMap, data.UnderlyingCode);
}
autoruleVue.updateAlarm();
}