| | |
| | | app = new Vue({ |
| | | el: "#app", |
| | | data: { |
| | | element: null, |
| | | code: "000000", |
| | | code_name: "测试代码", |
| | | account_available_money: 0, |
| | | origin_code: null, |
| | | trade_data: {}, |
| | | trade_record: { |
| | | open_limit_up: "", |
| | |
| | | passive_buy_codes: null, |
| | | data_type: 0, |
| | | trade_progress_index: -1, |
| | | latest_real_order_index: -1, |
| | | hidden_canceled: false, |
| | | trade_progress_percent: 0, |
| | | real_order_indexes: new Array(), |
| | | hidden_canceled: true, |
| | | //隐藏撤单 |
| | | hidden_cancel:true, |
| | | hidden_little_money:false, |
| | | hidden_sell:true, |
| | | hidden_cancel: true, |
| | | hidden_little_money: true, |
| | | hidden_sell: true, |
| | | // 不隐藏已撤大单 |
| | | not_hidden_canceled_big_money:true, |
| | | l2_datas: [], |
| | | l2_colors_class: ["color-single-start", "color-single-exec", "color-cancel", |
| | | "color-real-order" |
| | | ], |
| | | kpl_code_info: null, |
| | | l_up_cancel_indexes: [], |
| | | l_down_cancel_indexes: [], |
| | | h_cancel_indexes: [], |
| | | buy_single_indexes: [], |
| | | l2_code_name: '', |
| | | operate_index: -1 |
| | | operate_index: -1, |
| | | // 已经委托的买代码信息 |
| | | delegated_buy_code_infos: [], |
| | | layui_element: null, |
| | | l2_cant_buy_reasons: [], |
| | | latest_cancel_orders: [], |
| | | l2_min_volume:'', |
| | | l2_max_volume:'', |
| | | kpl_open_limit_up_count_rank:[], |
| | | // 大单买卖数量 |
| | | big_buy_order_count:0, |
| | | big_sell_order_count:0, |
| | | // 过滤的索引 |
| | | filter_indexes:[], |
| | | // 费用数据 |
| | | commission_data:{"total_commission":0, "month_commission":0}, |
| | | // L2数据结束索引 |
| | | l2_end_index:null |
| | | |
| | | }, |
| | | watch: { |
| | | delegated_buy_code_infos: function() { |
| | | if (app.layui_element) { |
| | | setTimeout(() => { |
| | | app.layui_element.render(); |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | mounted: function() { |
| | | layui.use('element', function() { |
| | | var element = layui.element; |
| | | app.layui_element = element; |
| | | }); |
| | | |
| | | layui.use('laydate', function(){ |
| | | var laydate = layui.laydate; |
| | | |
| | | //执行一个laydate实例 |
| | | laydate.render({ |
| | | elem: '#date' ,//指定元素 |
| | | type: 'date', |
| | | position:'abolute' |
| | | }); |
| | | }); |
| | | |
| | | setInterval(function() { |
| | | if (is_trade_time()) { |
| | | app.get_latest_cancel_orders(); |
| | | } |
| | | }, 1000 * 3); |
| | | |
| | | layui.use(function() { |
| | | app.element = layui.element; |
| | | }); |
| | | |
| | | }, |
| | | methods: { |
| | | change_data_type: function(type) { |
| | | if (app.data_type == type) { |
| | | return; |
| | | } |
| | | app.data_type = type; |
| | | window.scrollTo(0,0); |
| | | // if (app.data_type == type) { |
| | | // return; |
| | | // } |
| | | // app.data_type = type; |
| | | // window.scrollTo(0,0); |
| | | app.element.tabChange('test-handle', type); |
| | | }, |
| | | refresh_trade_progress: function() { |
| | | if (app.code == "000000") { |
| | |
| | | console.log("成交进度", res.data); |
| | | if (!res.data.is_default) { |
| | | app.trade_progress_index = res.data.trade_progress; |
| | | |
| | | app.trade_progress_percent = res.data.percent; |
| | | } |
| | | } |
| | | }); |
| | |
| | | alert("没有获取到代码") |
| | | return; |
| | | } |
| | | http_util.get_l2_l_cancel_datas(app.code, app.operate_index, function(res) { |
| | | console.log("L撤结果",res); |
| | | var date = $("#date").val(); |
| | | |
| | | http_util.get_l2_l_cancel_datas(app.code, app.operate_index, date, function(res) { |
| | | console.log("L撤结果", res); |
| | | res = JSON.parse(res); |
| | | if (res.code == 0) { |
| | | if (type_ == 0) { |
| | |
| | | } |
| | | http_util.get_l2_h_cancel_datas(app.code, app.operate_index, function(res) { |
| | | res = JSON.parse(res); |
| | | console.log("H撤數據",res) |
| | | if (res.code == 0) { |
| | | app.h_cancel_indexes = res.data; |
| | | } |
| | |
| | | alert("没有获取到代码") |
| | | return; |
| | | } |
| | | http_util.get_l2_datas(app.code, function(res) { |
| | | console.log("获取到数据:",res) |
| | | |
| | | var index = layer.load(1, { |
| | | shade: [0.1, '#fff'], //0.1透明度的白色背景 |
| | | shadeClose:true |
| | | }); |
| | | |
| | | var date = $("#date").val(); |
| | | |
| | | http_util.get_l2_datas(app.code, date, app.l2_end_index, function(res) { |
| | | layer.close(index); |
| | | res = JSON.parse(res); |
| | | if (res.code == 0) { |
| | | var real_order_index = -1; |
| | | var real_order_indexes = new Array(); |
| | | var buy_singles = []; |
| | | res.data.forEach(function(e) { |
| | | var big_buy_order=0; |
| | | var big_sell_order=0; |
| | | res.data.data.delegates.forEach(function(e) { |
| | | if (e[1] != null) { |
| | | if (e[1][0] == 3) { |
| | | //真实下单位置 |
| | | real_order_index = e[2][0]; |
| | | real_order_indexes.push(e[2][0]) |
| | | } else if (e[1][0] == 0) { |
| | | // 信号位置 |
| | | buy_singles.push(e[2][0]) |
| | |
| | | e[1] = ''; |
| | | } |
| | | e[2][3] = e[2][3].slice(0, e[2][3].length - 1) |
| | | |
| | | if(parseFloat(e[2][3])>=299&&e[2][6]=='买T'&&e[2][8]&&e[2][8].indexOf(":")>=0&&e[2][8].indexOf("-")<0&&e[2][8].indexOf("成交")<0){ |
| | | // 大单数量 |
| | | big_buy_order+=1; |
| | | } |
| | | |
| | | if(e[2][5] == 6){ |
| | | console.log("小单:", e) |
| | | } |
| | | |
| | | }); |
| | | console.log("最近真实下单位置:", real_order_index); |
| | | app.latest_real_order_index = real_order_index; |
| | | app.l2_datas = res.data; |
| | | app.l2_code_name = app.code_name.slice(0, app.code_name.indexOf( |
| | | " ")) |
| | | res.data.data.transactions.forEach(function(e) { |
| | | if(parseFloat(e[2][3])>=299){ |
| | | // 大单数量 |
| | | big_sell_order+=1; |
| | | } |
| | | |
| | | }); |
| | | |
| | | app.big_buy_order_count = big_buy_order; |
| | | app.big_sell_order_count = big_sell_order; |
| | | |
| | | console.log("大单信息:","买:"+big_buy_order,"卖:"+big_sell_order); |
| | | |
| | | console.log("最近真实下单位置:", real_order_indexes); |
| | | app.real_order_indexes = real_order_indexes; |
| | | app.l2_datas = res.data.data; |
| | | |
| | | console.log("第1条L2数据:", res.data.data[0]) |
| | | |
| | | // console.log("L2数据:", app.l2_datas); |
| | | var code_name = res.data.code_name; |
| | | var code_ = res.data.code; |
| | | app.l2_code_name = code_ + " " + code_name; |
| | | // 清除成交进度,L撤, H撤 |
| | | app.trade_progress_index = -1; |
| | | app.l_up_cancel_indexes = []; |
| | | app.l_down_cancel_indexes = []; |
| | | app.h_cancel_indexes = []; |
| | | app.buy_single_indexes = buy_singles; |
| | | }else{ |
| | | } else { |
| | | alert(res.msg); |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | get_delegated_buy_code_infos: function() { |
| | | // 获取数据 |
| | | http_util.get_delegated_buy_code_infos(function(result) { |
| | | if (result.code == 0) { |
| | | console.log("已挂买单数据:", result.data); |
| | | result.data.delegates.forEach(function(e) { |
| | | if (e.total_num > 0) { |
| | | e.percent = e.finish_num * 100 / e.total_num; |
| | | } else { |
| | | e.percent = 0; |
| | | } |
| | | }); |
| | | |
| | | result.data.delegates.forEach(function(e){ |
| | | if(e.buy1_money.indexOf("万")&&parseFloat(e.buy1_money.substring(0,e.buy1_money.indexOf("万")))<2000){ |
| | | //封单2000w以下提醒 |
| | | e.buy1_money_warning = 1; |
| | | }else{ |
| | | e.buy1_money_warning = 0; |
| | | } |
| | | }); |
| | | |
| | | |
| | | app.delegated_buy_code_infos = result.data.delegates; |
| | | app.account_available_money = result.data.account_available_money; |
| | | app.reset_l2_height(); |
| | | |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | get_latest_cancel_orders: function() { |
| | | http_util.get_latest_cancel_orders(function(res) { |
| | | res = JSON.parse(res); |
| | | console.log("最近的撤单", res); |
| | | if (res.code == 0) { |
| | | app.latest_cancel_orders = res.data; |
| | | app.reset_l2_height(); |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | |
| | | reset_l2_height: function() { |
| | | var height = document.documentElement.clientHeight; |
| | | console.log("屏幕:", height); |
| | | $(".l2-content").eq(0).css("height", (height - 390 - 76 * app |
| | | .delegated_buy_code_infos.length - 24 * app.latest_cancel_orders.length |
| | | ) + "px"); |
| | | }, |
| | | clear_cancel_mark: function() { |
| | | //清除撤单标记 |
| | |
| | | app.l_down_cancel_indexes = []; |
| | | app.h_cancel_indexes = []; |
| | | }, |
| | | get_last_trade_day_reasons: function(code) { |
| | | http_util.get_last_trade_day_reasons(code, function(res) { |
| | | res = JSON.parse(res); |
| | | console.log("返回内容", res); |
| | | if (res.code == 0) { |
| | | app.same_reason_codes = res.data; |
| | | } else { |
| | | app.same_reason_codes = null; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | hidden_canceled_check: function(e) { |
| | | |
| | | app.hidden_canceled = e.currentTarget.checked; |
| | | }, |
| | | |
| | | |
| | | hidden_cancel_check: function(e) { |
| | | |
| | | |
| | | app.hidden_cancel = e.currentTarget.checked; |
| | | }, |
| | | |
| | | |
| | | hidden_sell_check: function(e) { |
| | | app.hidden_sell = e.currentTarget.checked; |
| | | }, |
| | | |
| | | hidden_little_money_check:function(e){ |
| | | |
| | | hidden_little_money_check: function(e) { |
| | | app.hidden_little_money = e.currentTarget.checked; |
| | | }, |
| | | |
| | | hidden_canceled_big_money_check: function(e) { |
| | | app.not_hidden_canceled_big_money = e.currentTarget.checked; |
| | | }, |
| | | |
| | | select_row: function(index) { |
| | |
| | | console.log("交易数据", trade_data) |
| | | console.log("交易记录数据", trade_record) |
| | | app.code = code; |
| | | // app.get_last_trade_day_reasons(code); |
| | | app.code_name = code_name; |
| | | if (trade_data) { |
| | | console.log("交易数据类型", typeof trade_data) |
| | |
| | | console.log("处理出错") |
| | | console.log(e) |
| | | } |
| | | app.get_l2_cant_buy_reasons(code); |
| | | }, |
| | | show_more_records: function(items) { |
| | | var str_ = "" |
| | |
| | | }); |
| | | alert(str_); |
| | | }, |
| | | test: function() { |
| | | set_real_place_order_index: function() { |
| | | // 设置真实下单位 |
| | | if (app.code) { |
| | | layer.prompt({ |
| | | formType: 0, |
| | | value: '', |
| | | title: '设置真实下单位-' + app.code, |
| | | area: ['800px', '350px'] //自定义文本域宽高 |
| | | }, function(value, index, elem) { |
| | | try { |
| | | if (isNaN(value)) { |
| | | layer.msg("请输入数字"); |
| | | return; |
| | | } else { |
| | | http_util.set_real_place_order_index(app.code, parseInt( |
| | | value), function(res) { |
| | | // 获取到结果 |
| | | console.log(res); |
| | | if (res.code != 0) { |
| | | layer.msg(res.msg, { |
| | | icon: 5 |
| | | }); |
| | | } else { |
| | | layer.msg("设置成功", { |
| | | icon: 1 |
| | | }); |
| | | } |
| | | }) |
| | | } |
| | | } catch (e) {} |
| | | layer.close(index); |
| | | }); |
| | | |
| | | //set_real_place_order_index |
| | | |
| | | } else { |
| | | layer.msg("请先加载数据"); |
| | | } |
| | | |
| | | }, |
| | | need_show:function(item){ |
| | | if(app.hidden_canceled&&(item[2][6].indexOf('买撤')>=0||(item[2][8]!=null&&item[2][8].indexOf("-")>0))){ |
| | | need_show: function(item) { |
| | | |
| | | if(app.filter_indexes.length>0){ |
| | | if(app.filter_indexes.indexOf(item[2][0])>=0) |
| | | { |
| | | return true; |
| | | }else{ |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | if(app.real_order_indexes.includes( item[2][0])){ |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | if (app.hidden_canceled && (item[2][6].indexOf('买撤') >= 0 || (item[2][8] != null && |
| | | item[2][8].indexOf("-") > 0))) { |
| | | if(!app.not_hidden_canceled_big_money){ |
| | | // 隐藏已撤大单 |
| | | return false; |
| | | }else{ |
| | | // 不隐藏已撤大单 |
| | | if(parseFloat(item[2][3])<299) |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (app.hidden_sell && item[2][6].indexOf('卖') >= 0) { |
| | | return false; |
| | | } |
| | | |
| | | if(app.hidden_sell&&item[2][6].indexOf('卖')>=0){ |
| | | |
| | | if (app.hidden_cancel && (item[2][6].indexOf('买撤') >= 0)) { |
| | | return false; |
| | | } |
| | | if (app.hidden_little_money && parseFloat(item[2][3]) < 5) { |
| | | return false; |
| | | } |
| | | |
| | | if(app.hidden_cancel&&(item[2][6].indexOf('买撤')>=0)){ |
| | | return false; |
| | | } |
| | | if(app.hidden_little_money&&parseFloat(item[2][3])<50&&item[2][0]!=app.latest_real_order_index){ |
| | | if(app.l2_min_volume!=null&&!isNaN(app.l2_min_volume)&&parseInt(app.l2_min_volume) > parseInt(item[2][5])){ |
| | | return false; |
| | | } |
| | | |
| | | if(app.l2_max_volume!=null&&!isNaN(app.l2_max_volume)&&parseInt(app.l2_max_volume) < parseInt(item[2][5])){ |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | return true; |
| | | }, |
| | | get_score_data: function(code, name, callback) { |
| | | console.log("获取分数数据:", code, name); |
| | | var date = $("#date").val(); |
| | | http_util.get_score_data(code, name,date, function(res) { |
| | | res = JSON.parse(res) |
| | | console.log("分数请求结果:", res) |
| | | if (res.code == 0) { |
| | | console.log("获取分数", res) |
| | | app.code = res.data.code |
| | | app.code_name = res.data.code_name |
| | | if (res.data.score_data) { |
| | | app.score_data = res.data.score_data; |
| | | } else { |
| | | app.score_data = app.default_score_data; |
| | | } |
| | | if (res.data.trade_data) { |
| | | app.trade_data = { |
| | | order: res.data.trade_data.trade_state.order |
| | | } |
| | | } else { |
| | | res.data.trade_data = { |
| | | order: false |
| | | }; |
| | | app.trade_data = res.data.trade_data |
| | | } |
| | | app.kpl_code_info = res.data.kpl_code_info; |
| | | //通知副屏改变内容 |
| | | app.set_trade_info(app.code, app.code_name, |
| | | res.data.trade_data, |
| | | res.data.trade_record, |
| | | res.data.initiative_buy_codes, |
| | | res.data.passive_buy_codes); |
| | | |
| | | if (callback) { |
| | | callback() |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | set_target_code: function(code) { |
| | | console.log("设置目标代码", code); |
| | | app.origin_code = code; |
| | | app.code_name = code; |
| | | }, |
| | | load_data: function(refresh_l2) { |
| | | if (app.origin_code) { |
| | | app.get_score_data(app.origin_code, null, function(e) { |
| | | // if (refresh_l2) { |
| | | // app.refresh_l2_data(); |
| | | // } |
| | | }); |
| | | |
| | | app.get_l2_cant_buy_reasons(app.origin_code); |
| | | http_util.get_open_limit_up_count_rank(null,function(res){ |
| | | res = JSON.parse(res); |
| | | if(res.code ==0){ |
| | | app.kpl_open_limit_up_count_rank = res.data; |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | cancel_order: function(code) { |
| | | http_util.cancel_order(code, function(res) { |
| | | layer.msg("撤单成功"); |
| | | }); |
| | | }, |
| | | |
| | | view_details: function(code, need_l2) { |
| | | pyjs.add_code_to_ths(code); |
| | | // 设置目标代码 |
| | | app.set_target_code(code); |
| | | // 将目标票传递到首页 |
| | | pyjs.set_target_code(code); |
| | | if (need_l2) { |
| | | // 点击选择L2选项 |
| | | app.change_data_type(1); |
| | | app.load_data(true); |
| | | } else { |
| | | app.change_data_type(0); |
| | | app.load_data(false); |
| | | } |
| | | }, |
| | | |
| | | get_l2_cant_buy_reasons: function(code) { |
| | | http_util.get_l2_cant_buy_reasons(code, function(res) { |
| | | res = JSON.parse(res); |
| | | if (res.code == 0) { |
| | | app.l2_cant_buy_reasons = res.data; |
| | | } else { |
| | | app.l2_cant_buy_reasons = [] |
| | | } |
| | | }); |
| | | }, |
| | | screen_l2_data:function(code){ |
| | | // 筛选l2数据 |
| | | layer.open({ |
| | | title: 'L2数据筛选', |
| | | type: 1, |
| | | content: $("#l2_screen"), |
| | | }); |
| | | |
| | | |
| | | }, |
| | | l2_screen_click:function(){ |
| | | |
| | | // L2筛选 |
| | | if(!isNaN($("#min-volume").val())){ |
| | | app.l2_min_volume=$("#min-volume").val(); |
| | | }else{ |
| | | app.l2_min_volume=null; |
| | | } |
| | | |
| | | if(!isNaN($("#max-volume").val())){ |
| | | app.l2_max_volume=$("#max-volume").val(); |
| | | }else{ |
| | | app.l2_max_volume=null; |
| | | } |
| | | |
| | | |
| | | if(!isNaN($("#end-index").val())){ |
| | | app.l2_end_index=$("#end-index").val(); |
| | | }else{ |
| | | app.l2_end_index=null; |
| | | } |
| | | |
| | | watch_indexes_str = $("#watch_indexes").val(); |
| | | if(watch_indexes_str!=null&&watch_indexes_str.length>0){ |
| | | var final_indexes=[]; |
| | | var indexes = watch_indexes_str.split(","); |
| | | indexes.forEach(function(e){ |
| | | final_indexes.push(parseInt(e)); |
| | | }); |
| | | app.filter_indexes = final_indexes; |
| | | console.log("选中索引:",final_indexes); |
| | | }else{ |
| | | app.filter_indexes =[]; |
| | | } |
| | | layer.msg("设置成功") |
| | | |
| | | |
| | | }, |
| | | fordbidden_buy:function(code){ |
| | | // 加入黑名单 |
| | | http_util.do_action_for_code(code,null,0,function(res){ |
| | | if(res.code!=0){ |
| | | layer.msg(res.msg); |
| | | } |
| | | }); |
| | | }, |
| | | get_account_commission_detail:function(){ |
| | | |
| | | http_util.get_account_commission_detail(function(res){ |
| | | |
| | | res = JSON.parse(res); |
| | | console.log(res); |
| | | if(res.code!=0){ |
| | | layer.msg(res.msg); |
| | | }else{ |
| | | let commission_data ={}; |
| | | // commission_data.commission = =res.data.commission; |
| | | commission_data.delegates =res.data.delegates ; |
| | | commission_data.deals =res.data.deals; |
| | | var total_money = 0; |
| | | for(let k in commission_data.delegates){ |
| | | total_money -=commission_data.delegates[k]["money"]; |
| | | } |
| | | for(let k in commission_data.deals){ |
| | | total_money +=commission_data.deals[k]["money"]; |
| | | } |
| | | commission_data.total_commission = total_money.toFixed(2); |
| | | commission_data.commission = res.data.commission; |
| | | commission_data.month_commission = res.data.month_commission; |
| | | console.log(commission_data) |
| | | app.commission_data = commission_data; |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }) |