feature
This commit is contained in:
@@ -3,91 +3,162 @@
|
||||
@section('title', '设备列表')
|
||||
|
||||
@section('content')
|
||||
@php $portal = $portal ?? 'admin'; @endphp
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">设备列表</div>
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form layui-form-pane" method="get" style="margin-bottom: 15px;">
|
||||
<div class="layui-form-item" style="margin-bottom:0;">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label" style="width:90px;">DeviceKey</label>
|
||||
<div class="layui-input-inline" style="width:160px;">
|
||||
<input type="text" name="device_key" value="{{ $filters['device_key'] ?? '' }}" placeholder="device key" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label" style="width:90px;">Channel</label>
|
||||
<div class="layui-input-inline" style="width:160px;">
|
||||
<input type="text" name="channel_id" value="{{ $filters['channel_id'] ?? '' }}" placeholder="channel id" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label" style="width:70px;">Model</label>
|
||||
<div class="layui-input-inline" style="width:120px;">
|
||||
<input type="text" name="model" value="{{ $filters['model'] ?? '' }}" placeholder="iPhone9,1" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label" style="width:50px;">IP</label>
|
||||
<div class="layui-input-inline" style="width:130px;">
|
||||
<input type="text" name="ip" value="{{ $filters['ip'] ?? '' }}" placeholder="ip" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label" style="width:50px;">iOS</label>
|
||||
<div class="layui-input-inline" style="width:100px;">
|
||||
<input type="text" name="ios" value="{{ $filters['ios'] ?? '' }}" placeholder="15.8" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label" style="width:90px;">安装时间</label>
|
||||
<div class="layui-input-inline" style="width:130px;">
|
||||
<input type="date" name="installed_from" value="{{ $filters['installed_from'] ?? '' }}" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid">-</div>
|
||||
<div class="layui-input-inline" style="width:130px;">
|
||||
<input type="date" name="installed_to" value="{{ $filters['installed_to'] ?? '' }}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn" type="submit">搜索</button>
|
||||
<a class="layui-btn layui-btn-primary" href="{{ route('admin.devices.index') }}">重置</a>
|
||||
<form class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-device-search">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">设备 ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="device_key" placeholder="设备 ID" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">渠道 ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="channel_id" placeholder="渠道 ID" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
@if ($portal === 'admin')
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">代理用户</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="agent_user_id">
|
||||
<option value="">全部</option>
|
||||
@foreach (($agents ?? []) as $a)
|
||||
<option value="{{ $a->id }}">{{ $a->username }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">设备型号</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="model" placeholder="iPhone9,1" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">IP</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="ip" placeholder="ip" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">iOS 版本</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="ios" placeholder="15.8" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">安装时间</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-input-inline" style="width: 150px;">
|
||||
<input type="text" name="installed_from" id="LAY-device-installed-from" placeholder="开始日期" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid">-</div>
|
||||
<div class="layui-input-inline" style="width: 150px;">
|
||||
<input type="text" name="installed_to" id="LAY-device-installed-to" placeholder="结束日期" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-list" lay-submit lay-filter="LAY-device-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
<button type="reset" class="layui-btn layuiadmin-btn-list" id="LAY-device-reset">
|
||||
<i class="layui-icon layui-icon-refresh-3 layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Device</th>
|
||||
<th>Channel</th>
|
||||
<th>Model</th>
|
||||
<th>iOS</th>
|
||||
<th>IP</th>
|
||||
<th>安装时间</th>
|
||||
<th>更新时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse ($devices as $d)
|
||||
<tr>
|
||||
<td>{{ $d->id }}</td>
|
||||
<td><code>{{ $d->device_id }}</code></td>
|
||||
<td><code>{{ $d->channel_id ?: '—' }}</code></td>
|
||||
<td>{{ $d->device_model ?: '—' }}</td>
|
||||
<td>{{ $d->ios_version ?: '—' }}</td>
|
||||
<td>{{ $d->ip ?: '—' }}</td>
|
||||
<td>{{ $d->created_at }}</td>
|
||||
<td>{{ $d->updated_at }}</td>
|
||||
<td><a class="layui-btn layui-btn-normal layui-btn-xs" href="{{ route('admin.devices.show', $d) }}">详情</a></td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr><td colspan="9">暂无设备</td></tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
{{ $devices->links() }}
|
||||
<div class="layui-card-body">
|
||||
<table id="LAY-device-list" lay-filter="LAY-device-list"></table>
|
||||
<script type="text/html" id="LAY-device-ops">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail"><i class="layui-icon layui-icon-form"></i> 详情</a>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
layui.use(['table', 'form', 'laydate'], function () {
|
||||
var table = layui.table;
|
||||
var form = layui.form;
|
||||
var laydate = layui.laydate;
|
||||
var $ = layui.$;
|
||||
var dash = function (v) { return v ? v : '—'; };
|
||||
var portal = @json($portal);
|
||||
|
||||
laydate.render({ elem: '#LAY-device-installed-from', type: 'date' });
|
||||
laydate.render({ elem: '#LAY-device-installed-to', type: 'date' });
|
||||
|
||||
table.render({
|
||||
elem: '#LAY-device-list',
|
||||
id: 'LAY-device-list',
|
||||
url: @json(route($portal.'.devices.data')),
|
||||
toolbar: true,
|
||||
defaultToolbar: ['filter', 'exports', 'print'],
|
||||
cols: [[
|
||||
{ field: 'id', title: 'ID', width: 80, sort: true },
|
||||
{ field: 'device_id', title: '设备 ID', minWidth: 180, sort: true },
|
||||
{ field: 'channel_id', title: '渠道 ID', width: 140, sort: true, templet: function (d) { return dash(d.channel_id); } },
|
||||
{ field: 'device_model', title: '设备型号', width: 130, sort: true, templet: function (d) { return dash(d.device_model); } },
|
||||
{ field: 'ios_version', title: 'iOS 版本', width: 110, sort: true, templet: function (d) { return dash(d.ios_version); } },
|
||||
{ field: 'ip', title: 'IP', width: 140, sort: true, templet: function (d) { return dash(d.ip); } },
|
||||
{ field: 'created_at', title: '安装时间', width: 170, sort: true },
|
||||
{ field: 'updated_at', title: '更新时间', width: 170, sort: true },
|
||||
{ title: '操作', width: 100, align: 'center', fixed: 'right', toolbar: '#LAY-device-ops' }
|
||||
]],
|
||||
page: true,
|
||||
limit: 15,
|
||||
limits: [10, 15, 20, 30, 50],
|
||||
height: 'full-220',
|
||||
text: { none: '暂无设备' },
|
||||
request: { pageName: 'page', limitName: 'limit' },
|
||||
response: { statusName: 'code', statusCode: 0, msgName: 'msg', countName: 'count', dataName: 'data' }
|
||||
});
|
||||
|
||||
form.on('submit(LAY-device-search)', function (data) {
|
||||
table.reload('LAY-device-list', {
|
||||
where: data.field,
|
||||
page: { curr: 1 }
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#LAY-device-reset').on('click', function () {
|
||||
setTimeout(function () {
|
||||
table.reload('LAY-device-list', {
|
||||
where: {
|
||||
device_key: '',
|
||||
channel_id: '',
|
||||
agent_user_id: '',
|
||||
model: '',
|
||||
ip: '',
|
||||
ios: '',
|
||||
installed_from: '',
|
||||
installed_to: ''
|
||||
},
|
||||
page: { curr: 1 }
|
||||
});
|
||||
}, 0);
|
||||
});
|
||||
|
||||
table.on('tool(LAY-device-list)', function (obj) {
|
||||
if (obj.event !== 'detail') return;
|
||||
var url = obj.data.detail_url;
|
||||
var title = '设备 #' + obj.data.id;
|
||||
try {
|
||||
if (parent && parent.layui && parent.layui.index) {
|
||||
parent.layui.index.openTabsPage(url, title);
|
||||
return;
|
||||
}
|
||||
} catch (e) {}
|
||||
location.href = url;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
Reference in New Issue
Block a user