document.addEventListener("DOMContentLoaded", function() {
|
//把对象赋值到JS中
|
try {
|
new QWebChannel(qt.webChannelTransport, function(channel) {
|
window.pyjs = channel.objects.Bridge;
|
console.log("回调成功");
|
});
|
} catch (e) {
|
|
}
|
});
|
|
$(function() {
|
new VConsole();
|
var app = new Vue({
|
el: "#app",
|
data: {
|
account_available_money: 0,
|
delegate_records: [],
|
delegate_records_updatetime: '',
|
delegates: [],//[{id:1,'code_info':["000333","美的集团"],'l_down_cancel_rate':0.3,'deal_big_money_info':[0,10000,0,0,0,100000],left_money:'200万'}],
|
now_timestamp: Date.now(),
|
warning_ids_info: { // ID: 生效时间
|
},
|
last_cancel_rate_dict: { // 上一次的撤单比例
|
// ID: 撤单比例
|
},
|
code_names: {},
|
deal_statistic_info: {},
|
},
|
mounted: function() {
|
setTimeout(function() {
|
app.get_delegate_list();
|
app.list_delegate_records('');
|
}, 500);
|
|
setInterval(function() {
|
if (is_trade_time()) {
|
app.get_delegate_list();
|
}
|
}, 2000);
|
|
setInterval(function() {
|
app.now_timestamp = Date.now();
|
}, 1000);
|
|
setInterval(function() {
|
if (is_trade_time()) {
|
app.list_delegate_records();
|
}
|
}, 3000);
|
|
},
|
methods: {
|
refresh_data: function() {
|
http_util.sync_trade_data("delegate_list", function(res) {
|
if (res.code === 0) {
|
layer.msg("刷新成功");
|
} else {
|
layer.msg(res.msg);
|
}
|
});
|
this.get_delegate_list();
|
},
|
|
get_delegate_list: function() {
|
http_util.get_delegated_buy_code_infos(function(res) {
|
if (res.code == 0) {
|
let data = res.data;
|
app.account_available_money = data.account_available_money;
|
app.delegates = data.delegates;
|
// 记录上一次的数据
|
app.delegates.forEach(function(item) {
|
// if (!(item.id in app.last_cancel_rate_dict)){
|
// app.last_cancel_rate_dict[item.id] = 0;
|
// }
|
|
if (item.id in app.last_cancel_rate_dict) {
|
// 实撤变大
|
if (item.l_down_watch_indexes_info.current[3] -
|
app.last_cancel_rate_dict[item.id] >= 5) {
|
app.warning_ids_info[item.id] = Date.now() +
|
1000 * 9;
|
// 变化5%以上才计数
|
app.last_cancel_rate_dict[item.id] = item
|
.l_down_watch_indexes_info.current[3]
|
}
|
if (item.l_down_watch_indexes_info.current[3] <
|
app.last_cancel_rate_dict[item.id]) {
|
// 变小的时候赋值
|
app.last_cancel_rate_dict[item.id] = item
|
.l_down_watch_indexes_info.current[3]
|
delete app.warning_ids_info[item.id];
|
}
|
} else {
|
app.last_cancel_rate_dict[item.id] = item
|
.l_down_watch_indexes_info.current[3];
|
}
|
});
|
}
|
});
|
|
},
|
parseMoneyAsW: function(money_str) {
|
if (money_str.indexOf('亿') >= 0) {
|
return parseFloat(money_str.replace("亿", "")) * 10000
|
} else if (money_str.indexOf('万') >= 0) {
|
return parseFloat(money_str.replace("万", ""))
|
} else {
|
return parseFloat(money_str) / 10000
|
}
|
},
|
toMoneyDesc: function(money) {
|
if (Math.abs(money) > 100000000) {
|
return (money / 100000000.0).toFixed(1) + "亿";
|
} else if (Math.abs(money) > 10000) {
|
return (money / 10000.0).toFixed(1) + "万";
|
} else {
|
return money + "";
|
}
|
},
|
update_l_down_cancel_rate: function(item) {
|
// 修改撤单比例
|
let code = item.code_info[0];
|
let prompt_index = layer.prompt({
|
title: 'L后撤单比例修改(保留2位小数:0-2)',
|
formType: 0, //输入框类型,支持0(文本)默认1(密码)2(多行文本)
|
value: '', //初始时的值,默认空字符
|
maxlength: 20, //可输入文本的最大长度,默认500
|
area: ['200px', '150px'], //自定义文本域宽高
|
// 绑定enter事件
|
success: function(layero, index) {
|
$(layero).on('keydown', function(e) {
|
if (e.keyCode === 13) {
|
// 绑定enter
|
var val = $('.layui-layer-input').val();
|
if (isNaN(val)) {
|
layer.msg("输入格式有误")
|
return;
|
}
|
let rate = parseFloat(val)
|
http_util.set_l_down_rate(code, rate,
|
function(res) {
|
if (res.code == 0) {
|
layer.msg("修改成功")
|
layer.close(prompt_index)
|
app.get_delegate_list();
|
} else {
|
layer.msg(res.msg)
|
}
|
});
|
}
|
});
|
}
|
}, function(val, index) {
|
if (isNaN(val)) {
|
layer.msg("输入格式有误")
|
return;
|
}
|
let rate = parseFloat(val)
|
|
http_util.set_l_down_rate(code, rate, function(res) {
|
if (res.code == 0) {
|
layer.msg("修改成功")
|
layer.close(prompt_index)
|
app.get_delegate_list();
|
} else {
|
layer.msg(res.msg)
|
}
|
});
|
});
|
},
|
|
reset_l_down_cancel_rate: function(item) {
|
// 将撤单比例设置和原来一样
|
let code = item.code_info[0];
|
let rate = item.l_down_cancel_rate;
|
http_util.set_l_down_rate(code, rate,
|
function(res) {
|
if (res.code == 0) {
|
layer.msg("立改成功")
|
app.get_delegate_list();
|
} else {
|
layer.msg(res.msg)
|
}
|
});
|
},
|
|
audo_increase_l_down_cancel_rate: function(item) {
|
let code = item.code_info[0];
|
let rate = item.l_down_cancel_rate + 0.1;
|
http_util.set_l_down_rate(code, rate,
|
function(res) {
|
if (res.code == 0) {
|
layer.msg("变大成功")
|
app.get_delegate_list();
|
} else {
|
layer.msg(res.msg)
|
}
|
});
|
},
|
|
|
audo_decrease_l_down_cancel_rate: function(item) {
|
let code = item.code_info[0];
|
let rate = item.l_down_cancel_rate - 0.1;
|
http_util.set_l_down_rate(code, rate,
|
function(res) {
|
if (res.code == 0) {
|
layer.msg("变小成功")
|
app.get_delegate_list();
|
} else {
|
layer.msg(res.msg)
|
}
|
});
|
},
|
|
|
forbiddenBuy: function(item) {
|
let code = item.code_info[0];
|
http_util.do_action_for_code(code, '', 0, function(res) {
|
|
|
});
|
|
this.cancelOrder(item);
|
},
|
cancelOrder: function(item) {
|
let code = item.code_info[0];
|
http_util.cancel_order(code, function() {
|
layer.msg("撤单成功");
|
})
|
|
|
},
|
viewDetail: function(item) {
|
pyjs.add_code_to_ths(item.code_info[0]);
|
},
|
|
open_trade_queue: function(item) {
|
let code = item.code_info[0];
|
let url = window.location.protocol + "//" + window.location.host +
|
"/kp/trade_queue.html?code=" + code;
|
let params = {
|
"url": url,
|
"title": code,
|
"key": "trade_queue",
|
"size": [400, 400]
|
};
|
pyjs.open_webview_window(JSON.stringify(params))
|
|
},
|
open_l2_down_watch_index_overview: function(code, name) {
|
let url = window.location.protocol + "//" + window.location.host +
|
"/kp/l_down_cancel_indexes.html?code=" + code;
|
let params = {
|
"url": url,
|
"title": "L后囊括(" + name + ")",
|
"key": "l_down_watch_index",
|
"size": [400, 400]
|
};
|
pyjs.open_webview_window(JSON.stringify(params))
|
},
|
getOrderStatusDesc: function(orderStatus) {
|
switch (orderStatus) {
|
case 0:
|
return "预埋";
|
case 1:
|
return "未知";
|
case 2:
|
return "交易所已接收";
|
case 3:
|
return "部分成交";
|
case 4:
|
return "全部成交";
|
case 5:
|
return "部成部撤";
|
case 6:
|
return "全部撤单";
|
case 7:
|
return "交易所已拒绝";
|
default:
|
return "发往交易核心";
|
}
|
|
},
|
getReversedDelegateRecords: function() {
|
return this.delegate_records.slice().reverse();
|
},
|
|
list_delegate_records: function() {
|
http_util.list_delegate_records(app.delegate_records_updatetime, function(
|
res) {
|
res = JSON.parse(res);
|
console.log("委托列表", res);
|
if (res.code == 0) {
|
if (res.data.list.length > 0) {
|
var index_dict = {};
|
for (var i = 0; i < app.delegate_records.length; i++) {
|
index_dict[app.delegate_records[i].orderLocalID] = i;
|
}
|
res.data.list.forEach(function(e) {
|
if (e.orderLocalID in index_dict) {
|
app.$set(app.delegate_records, index_dict[e
|
.orderLocalID], e);
|
} else {
|
app.delegate_records.push(e);
|
}
|
app.code_names[e.securityID] = e.securityName;
|
});
|
}
|
app.delegate_records_updatetime = res.data.update_time;
|
}
|
});
|
},
|
}
|
|
|
});
|
|
|
|
});
|