define(['jquery', 'bootstrap', 'backend', 'table', 'form','bootstrap-datetimepicker','pako'], function ($, undefined, Backend, Table, Form) { var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'app/order/index' + location.search, add_url: 'app/order/add', edit_url: 'app/order/edit', del_url: 'app/order/del', multi_url: 'app/order/multi', import_url: 'app/order/import', table: 'order', } }); var table = $("#table"); var flag = 0; var nowtime = 0; //当表格数据加载完成时 table.on('load-success.bs.table', function (e, data) { //这里我们手动设置底部的值 $("#risenum").text(data.extend.risenum); $("#risewin").text(data.extend.risewin); $("#fallnum").text(data.extend.fallnum); $("#fallwin").text(data.extend.fallwin); var sock = null; var wsuri = "wss://api-aws.huobi.pro/ws"; var pako = window.pako; sock = new WebSocket(wsuri); sock.onopen = function() { console.log("connected to " + wsuri); sock.send(JSON.stringify({"sub":"market.btcusdt.trade.detail","id":"BTC"})) sock.send(JSON.stringify({"sub":"market.ethusdt.trade.detail","id":"ETH"})) sock.send(JSON.stringify({"sub":"market.eosusdt.trade.detail","id":"EOS"})) sock.send(JSON.stringify({"sub":"market.bchusdt.trade.detail","id":"BCH"})) sock.send(JSON.stringify({"sub":"market.ltcusdt.trade.detail","id":"LTC"})) } sock.onclose = function(e) { console.log("connection closed (" + e.code + ")"); } sock.onmessage = function(evt) { if(evt.data instanceof Blob){ var result = ''; var reader = new FileReader(); reader.onload = function() { result = JSON.parse(pako.inflate(reader.result,{to:'string'})); if(result.ping){ sock.send(JSON.stringify({pong:result.ping})); } if(result.ch == 'market.btcusdt.trade.detail') { $.each(result.tick.data,function (m,n) {//循环得出“speciesName” var increase = ((n.price-parseFloat(data.extend.coin.BTC))*100/data.extend.coin.BTC).toFixed(2); var text = n.price.toFixed(2)+'
'+increase+'%
'; $("#sbtcusdt").html(text); var color = '#EE6363'; if(increase>=0) color = '#00FF7F'; $("#sbtcusdt").css({"color":color}); }); }else if(result.ch == 'market.ethusdt.trade.detail') { $.each(result.tick.data,function (m,n) {//循环得出“speciesName” var increase = ((n.price-parseFloat(data.extend.coin.ETH))*100/data.extend.coin.ETH).toFixed(2); var text = n.price.toFixed(2)+'
'+increase+'%
'; $("#sethusdt").html(text); var color = '#EE6363'; if(increase>=0) color = '#00FF7F'; $("#sethusdt").css({"color":color}); }); }else if(result.ch == 'market.bchusdt.trade.detail') { $.each(result.tick.data,function (m,n) {//循环得出“speciesName” var increase = ((n.price-parseFloat(data.extend.coin.BCH))*100/data.extend.coin.BCH).toFixed(2); var text = n.price.toFixed(2)+'
'+increase+'%
'; $("#sbchusdt").html(text); var color = '#EE6363'; if(increase>=0) color = '#00FF7F'; $("#sbchusdt").css({"color":color}); }); }else if(result.ch == 'market.ltcusdt.trade.detail') { $.each(result.tick.data,function (m,n) {//循环得出“speciesName” var increase = ((n.price-parseFloat(data.extend.coin.LTC))*100/data.extend.coin.LTC).toFixed(2); var text = n.price.toFixed(2)+'
'+increase+'%
'; $("#sltcusdt").html(text); var color = '#EE6363'; if(increase>=0) color = '#00FF7F'; $("#sltcusdt").css({"color":color}); }); }else if(result.ch == 'market.eosusdt.trade.detail') { $.each(result.tick.data,function (m,n) {//循环得出“speciesName” var increase = ((n.price-parseFloat(data.extend.coin.EOS))*100/data.extend.coin.EOS).toFixed(2); var text = n.price.toFixed(2)+'
'+increase+'%
'; $("#seosusdt").html(text); var color = '#EE6363'; if(increase>=0) color = '#00FF7F'; $("#seosusdt").css({"color":color}); }); } // console.log(result); } reader.readAsBinaryString(evt.data); } } if(!flag){ flag = 1; nowtime = data.extend.nowtime; } }); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'id', columns: [ [ {checkbox: true}, {field: 'id', title: __('Id')}, // {field: 'daili_name', title: __('所属代理'), operate: 'LIKE'}, // {field: 'serial_no', title: __('Serial_no')}, {field: 'user_id', title: __('User_id')}, {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, {field: 'symbol', title: __('Symbol'), searchList: {"btcusdt":__('Symbol btcusdt'),"bchusdt":__('Symbol bchusdt'),"ethusdt":__('Symbol ethusdt'),"ltcusdt":__('Symbol ltcusdt'),"eosusdt":__('Symbol eosusdt')}, formatter: Table.api.formatter.normal}, {field: 'trade_num', title: __('Trade_num'), operate:'BETWEEN'}, {field: 'trade_cycle', title: __('Trade_cycle')}, {field: 'expect_percent', title: __('Expect_percent'), operate:'BETWEEN'}, // {field: 'expect_income', title: __('Expect_income'), operate:'BETWEEN'}, // {field: 'current_price', title: __('Current_price'), operate:'BETWEEN'}, // {field: 'order_hash', title: __('Order_hash'), operate: 'LIKE'}, {field: 'rise_or_fall', title: __('Rise_or_fall'), searchList: {"rise":__('Rise_or_fall rise'),"fall":__('Rise_or_fall fall')}, formatter: Table.api.formatter.normal}, {field: 'set_loss', title: __('设置盈亏'), searchList: {"0":__('默认'),"1":__('盈'),"2":__('亏')}, formatter: Table.api.formatter.normal}, { field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, buttons: [ { name: '设置盈亏', title: __('设置盈亏'), text: '设置盈亏', classname: 'btn btn-xs btn-primary btn-dialog', icon: 'fa fa-list', url: 'app/order/set_yk?', callback: function (data) { Layer.alert("success"); } }, { name: '设置比例', title: __('设置比例'), text: '设置比例', classname: 'btn btn-xs btn-success btn-dialog', icon: 'fa fa-list', url: 'app/order/set_bl?', callback: function (data) { Layer.alert("success"); } } ], formatter: Table.api.formatter.operate } ] ] }) var int=self.setInterval(function () { var params = {silent: true}; $('#table').bootstrapTable('refresh', params); },2000); var int1 = self.setInterval(function () { nowtime += 1; $("#nowtime").text(timestampToTime(nowtime)); }, 1000); function timestampToTime(timestamp) { var date = new Date();//时间戳为10位需*1000,时间戳为13位的话不需乘1000 var Y = date.getFullYear() + '-'; var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; var D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' '; var h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':'; var m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes()) + ':'; var s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds()); strDate = Y+M+D+h+m+s; return strDate; } $('#createstime').datetimepicker({ format: 'YYYY-MM-DD'}); $('#createprice').click(function(){ var symbols = $('#symbols').val(); var zhouqi = $('#zhouqi').val(); var rise_or_falls = $('#rise_or_falls').val(); var prices = $('#prices').val(); var createstime = $('#createstime').val(); $("#newcreate").html(''); $.post("app/order/createPrice",{"symbols":symbols,"zhouqi":zhouqi, "rise_or_falls":rise_or_falls,"prices":prices,"createstime":createstime},function(datas){ if(datas.code == 0){ alert(datas.msg); }else { var data = datas; var html = '
' + ' ' + '
' + '
' + '
' + '
' + ' ' + '
' + '
' + '
' + '
' + ' ' + '
' + '
' + '
' + '
' + ' ' + '
' + '
' + '
' + '
' + ' ' + '
' + '
' + '
' + '
' + ' ' + '
' + '
' + '
'; $("#newcreate").html(html); } }); }); $('#submitprice').on('click',function() { var symbols = $('#symbols').val(); var zhouqi = $('#zhouqi').val(); var rise_or_falls = $('#rise_or_falls').val(); var prices = $('#prices').val(); var createstime = $('#createstime').val(); var newpricetime1 = $('#newpricetime1').text(); var newpricetime2 = $('#newpricetime2').text(); var newpricetime3 = $('#newpricetime3').text(); var newpricetime4 = $('#newpricetime4').text(); var newpricetime5 = $('#newpricetime5').text(); var newprice1 = $('#newprice1').val(); var newprice2 = $('#newprice2').val(); var newprice3 = $('#newprice3').val(); var newprice4 = $('#newprice4').val(); var newprice5 = $('#newprice5').val(); // console.log(newpricetime1,newpricetime2,newpricetime3,newpricetime4,newpricetime5, // newprice1,newprice2,newprice3,newprice4,newprice5); $.post("app/order/buildPrice", { "symbols": symbols, "zhouqi": zhouqi, "rise_or_falls": rise_or_falls, "prices": prices, "createstime": createstime,'newpricetime1':newpricetime1,'newpricetime2':newpricetime2, 'newpricetime3':newpricetime3,'newpricetime4':newpricetime4,'newpricetime5':newpricetime5,'newprice1':newprice1, 'newprice2':newprice2,'newprice3':newprice3,'newprice4':newprice4,'newprice5':newprice5, }, function (datas) { alert(datas.msg); }); }); $('#cleanprice').on('click',function() { var r=confirm("确定取消所有调控价格吗?"); if (r==true){ $.post("app/order/cleanPrice", {}, function (datas) { alert(datas.msg); }); } }); // 为表格绑定事件 Table.api.bindevent(table); }, jianting: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'app/order/jianting' + location.search, table: 'order', } }); var table = $("#table"); var int=self.setInterval(function () { var params = {silent: true}; $('#table').bootstrapTable('refresh', params); },2000); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, columns: [ [ {field: 'createtimes', title: '操作',formatter: Controller.api.createtime}, {field: 'createtime', title: '场次',formatter: Controller.api.createtime, operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, {field: 'ordercount', title: '下单人数', operate:'BETWEEN',searchable:false}, {field: 'ordersum', title: '下单总金额',searchable:false}, {field: 'risep', title: '涨',searchable:false}, {field: 'fallp', title: '跌',searchable:false}, {field: 'normalp', title: '低仓',searchable:false}, {field: 'middlep', title: '中仓',searchable:false}, {field: 'weighestp', title: '重仓',searchable:false}, ] ] }); // 为表格绑定事件 Table.api.bindevent(table); }, add: function () { Controller.api.bindevent(); }, edit: function () { Controller.api.bindevent(); }, set_yk: function () { Controller.api.bindevent(); }, set_bl: function () { Controller.api.bindevent(); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); }, createtime: function (value, row, index) { //这里手动构造URL url = "app/order?" + this.field + "=" + value; //方式一,直接返回class带有addtabsit的链接,这可以方便自定义显示内容 return '查看明细'; //方式二,直接调用Table.api.formatter.addtabs // return Table.api.formatter.addtabs(value, row, index, url); } } }; // export default socket return Controller; });