feat: 期权交易后端 — 下单+自动结算+后台管理
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
@extends('admin._layoutNew')
|
||||
@section('title', '期权订单管理')
|
||||
@section('page-content')
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">期权订单管理</div>
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" style="margin-bottom:10px;">
|
||||
<div class="layui-inline">
|
||||
<input id="f_keyword" class="layui-input" placeholder="用户ID/邮箱">
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select id="f_status">
|
||||
<option value="">全部状态</option>
|
||||
<option value="0">待交割</option>
|
||||
<option value="1">盈利</option>
|
||||
<option value="2">亏损</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button type="button" class="layui-btn layui-btn-sm" onclick="searchList()">搜索</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="layui-btn-group" style="margin-bottom:15px;">
|
||||
<button class="layui-btn layui-btn-sm" onclick="loadData()"><i class="layui-icon"></i> 刷新</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal" onclick="settle('')"><i class="layui-icon"></i> 自动结算</button>
|
||||
<button class="layui-btn layui-btn-sm" style="background:#00c48c;" onclick="settle('win')"><i class="layui-icon"></i> 强制盈利</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger" onclick="settle('lose')"><i class="layui-icon">ဆ</i> 强制亏损</button>
|
||||
</div>
|
||||
<table id="optionTable" lay-filter="optionTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@section('scripts')
|
||||
<script>
|
||||
layui.use(['table','layer','form'], function(){
|
||||
var table = layui.table;
|
||||
window.loadData = function(){ table.reload('optionTable', {where:{keyword:$('#f_keyword').val(), status:$('#f_status').val()}}); };
|
||||
window.searchList = loadData;
|
||||
|
||||
table.render({
|
||||
elem:'#optionTable', id:'optionTable', url:'/admin/option/order/list', page:true,
|
||||
cols:[[
|
||||
{type:'checkbox'},
|
||||
{field:'id',title:'ID',width:60},
|
||||
{field:'user_id',title:'用户ID',width:70},
|
||||
{field:'user_email',title:'邮箱',width:170},
|
||||
{field:'coinname',title:'交易对',width:100},
|
||||
{field:'direction',title:'方向',width:80,templet:function(d){
|
||||
return d.direction=='up'?'<span style="color:#00c48c;font-weight:600">买涨</span>':'<span style="color:#ff4040;font-weight:600">买跌</span>';
|
||||
}},
|
||||
{field:'amount',title:'金额',width:100},
|
||||
{field:'open_price',title:'开仓价',width:110},
|
||||
{field:'close_price',title:'平仓价',width:110},
|
||||
{field:'profit_rate',title:'收益率%',width:80},
|
||||
{field:'income',title:'盈亏',width:100},
|
||||
{field:'status_text',title:'状态',width:90,templet:function(d){
|
||||
var cls=d.status==1?'layui-bg-green':(d.status==2?'':'layui-bg-orange');
|
||||
return '<span class="layui-badge '+cls+'">'+d.status_text+'</span>';
|
||||
}},
|
||||
{field:'delivery_time',title:'交割时间',width:160},
|
||||
{field:'created_at',title:'下单时间',width:160}
|
||||
]]
|
||||
});
|
||||
|
||||
window.settle = function(force){
|
||||
var checked = table.checkStatus('optionTable').data;
|
||||
if(!checked.length) return layer.msg('请先选择订单');
|
||||
var ids = checked.map(function(d){return d.id}).join(',');
|
||||
var msg = force==='win'?'强制盈利':(force==='lose'?'强制亏损':'自动结算');
|
||||
layer.confirm('确定对选中的 '+checked.length+' 个订单执行"'+msg+'"?', function(ci){
|
||||
layer.close(ci);
|
||||
$.post('/admin/option/order/settle',{ids:ids,force:force,_token:'{{csrf_token()}}'},function(r){
|
||||
if(r.type=='ok'){layer.msg(r.message);loadData();}else layer.msg(r.message,{icon:2});
|
||||
});
|
||||
});
|
||||
};
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user