第三段完善 代理商绑定 激活等 正式上线的版本

This commit is contained in:
huangzhenpc
2025-02-13 15:25:19 +08:00
parent abfa783907
commit d1b0a26dd2
31 changed files with 2729 additions and 641 deletions

View File

@@ -0,0 +1,278 @@
{extend name="../../admin/view/main"}
{block name="button"}
{if auth("batchDisableCodes")}
<button class='layui-btn layui-btn-sm layui-btn-danger' data-batch-confirm="确定要禁用选中的激活码吗?" data-csrf="{:systoken('batchDisableCodes')}" data-action='{:url("batchDisableCodes")}' data-rule="ids#{key}">批量禁用</button>
{/if}
<button class='layui-btn layui-btn-sm layui-btn-warm' id="batchCopyBtn" data-checkbox="true">批量复制激活码</button>
<a class='layui-btn layui-btn-sm layui-btn-normal' href="{:url('exportCodes')}?{:http_build_query($get)}">导出激活码</a>
{/block}
{block name="content"}
<div class="think-box-shadow">
<form class="layui-form layui-form-pane form-search" action="{:sysuri()}" onsubmit="return false" method="get" autocomplete="off">
<div class="layui-form-item layui-inline">
<label class="layui-form-label">激活码</label>
<div class="layui-input-inline">
<input name="code" value="{$get.code|default=''}" placeholder="请输入激活码" class="layui-input">
</div>
</div>
{if $Think.admin.is_super}
<div class="layui-form-item layui-inline">
<label class="layui-form-label">代理商</label>
<div class="layui-input-inline">
<select name='agent_id' lay-search class='layui-select'>
<option value=''>-- 全部 --</option>
{foreach $agents as $agent}
<option value='{$agent.id}' {if isset($get.agent_id) and $get.agent_id==$agent.id}selected{/if}>
{$agent.username} ({if $agent.level==1}一级代理{else}二级代理{/if})
</option>
{/foreach}
</select>
</div>
</div>
{/if}
<div class="layui-form-item layui-inline">
<label class="layui-form-label">使用状态</label>
<div class="layui-input-inline">
<select name='is_used' lay-search class='layui-select'>
<option value=''>-- 全部 --</option>
<option value='0' {if isset($get.is_used) and $get.is_used=='0'}selected{/if}>未使用</option>
<option value='1' {if isset($get.is_used) and $get.is_used=='1'}selected{/if}>已使用</option>
</select>
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">禁用状态</label>
<div class="layui-input-inline">
<select name='status' lay-search class='layui-select'>
<option value=''>-- 全部 --</option>
<option value='1' {if isset($get.status) and $get.status=='1'}selected{/if}>正常</option>
<option value='0' {if isset($get.status) and $get.status=='0'}selected{/if}>已禁用</option>
</select>
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">卡类型</label>
<div class="layui-input-inline">
<select name='days' lay-search class='layui-select'>
<option value=''>-- 全部 --</option>
{foreach :app\manager\model\AgentCode::getCardTypes() as $days => $info}
<option value='{$days}' {if isset($get.days) and $get.days==$days}selected{/if}>{$info.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">生成时间</label>
<div class="layui-input-inline">
<input data-date-range name="create_time" value="{$get.create_time|default=''}" placeholder="请选择生成时间" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">使用时间</label>
<div class="layui-input-inline">
<input data-date-range name="use_time" value="{$get.use_time|default=''}" placeholder="请选择使用时间" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
</div>
</form>
<table class="layui-table margin-top-10" lay-skin="line">
{notempty name='list'}
<thead>
<tr>
<th class='list-table-check-td think-checkbox'>
<label><input data-auto-none data-check-target='.list-check-box' type='checkbox'></label>
</th>
<th class='text-left'>激活码</th>
<th class='text-left'>有效天数</th>
{if $Think.admin.is_super}
<th class='text-left'>代理商</th>
<th class='text-left'>代理级别</th>
{/if}
<th class='text-left'>销售价格</th>
<th class='text-left'>佣金</th>
<th class='text-left'>使用状态</th>
<th class='text-left'>使用时间</th>
<th class='text-left'>使用者</th>
<th class='text-left'>生成时间</th>
<th class='text-left'>状态</th>
<th></th>
</tr>
</thead>
{/notempty}
<tbody>
{foreach $list as $key=>$vo}
<tr>
<td class='list-table-check-td think-checkbox'>
<label><input class="list-check-box" value='{$vo.id}' type='checkbox'></label>
</td>
<td class='text-left'>{$vo.code}</td>
<td class='text-left'>{$vo.days} </td>
{if $Think.admin.is_super}
<td class='text-left'>{$vo.agent_name|default='--'}</td>
<td class='text-left'>
{if $vo.agent_level eq 1}
<span class="color-blue">一级代理</span>
{elseif $vo.agent_level eq 2}
<span class="color-green">二级代理</span>
{else}
--
{/if}
</td>
{/if}
<td class='text-left'>{$vo.price|default='--'}</td>
<td class='text-left'>{$vo.commission|default='--'}</td>
<td class='text-left'>
{if $vo.is_used eq 1}
<span class="color-red">已使用</span>
{else}
<span class="color-green">未使用</span>
{/if}
</td>
<td class='text-left'>{$vo.used_at|format_datetime|default='--'}</td>
<td class='text-left'>{$vo.used_by|default='--'}</td>
<td class='text-left'>{$vo.created_at|format_datetime}</td>
<td class='text-left'>
{if $vo.status eq 1}
<span class="color-green">正常</span>
{else}
<span class="color-red">已禁用</span>
{/if}
</td>
<td class='text-left'>
{if auth("disableCode") && $vo.status eq 1}
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要禁用该激活码吗?" data-csrf="{:systoken('disableCode')}" data-action='{:url("disableCode")}' data-value="id#{$vo.id}">禁用</a>
{/if}
</td>
</tr>
{/foreach}
</tbody>
</table>
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
</div>
<!-- 复制弹窗 -->
<div id="copyDialog" style="display:none;">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-form-item">
<textarea id="codeList" class="layui-textarea" style="height: 500px;margin:10px 0;font-size:14px;line-height:1.8;" readonly></textarea>
</div>
<div class="text-center">
<button class="layui-btn layui-btn-lg" onclick="copyToClipboard()">一键复制</button>
</div>
</div>
</div>
</div>
<script>
// 批量复制按钮点击事件
$('#batchCopyBtn').click(function(){
var codes = [];
$('.list-check-box:checked').each(function(){
var tr = $(this).closest('tr');
var code = tr.find('td:eq(1)').text(); // 激活码
var days = tr.find('td:eq(2)').text(); // 天数
codes.push(code + ' - ' + days);
});
if(codes.length === 0){
layer.msg('请选择要复制的激活码');
return;
}
// 格式化激活码列表
var formattedCodes = codes.map(function(item){
return item.trim();
}).join('\n\n');
// 显示弹窗
layer.open({
type: 1,
title: '复制激活码',
area: ['800px', '700px'],
content: $('#copyDialog'),
offset: '50px',
fixed: false,
resize: true,
shadeClose: true,
shade: [0.3, '#000'],
maxmin: true,
moveOut: true,
anim: 1,
zIndex: layer.zIndex + 1000, // 增加 zIndex 确保显示在最上层
success: function(layero, index){
layer.setTop(layero);
$('#codeList').val(formattedCodes);
// 添加自定义样式
$(layero).css({
'background-color': '#fff',
'box-shadow': '0 2px 8px rgba(0,0,0,.1)'
}).find('.layui-layer-content').css({
'padding': '30px'
});
}
});
});
// 复制到剪贴板
function copyToClipboard() {
var textarea = document.getElementById('codeList');
textarea.select();
try {
document.execCommand('copy');
layer.msg('复制成功!', {icon: 1, zIndex: layer.zIndex + 101});
} catch (err) {
layer.msg('复制失败,请手动复制', {icon: 2, zIndex: layer.zIndex + 101});
}
}
</script>
<style>
/* 美化时间选择器样式 */
.layui-laydate {
border: none !important;
box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
}
.layui-laydate-header {
border-bottom: 1px solid #f0f0f0;
}
.layui-laydate-content td:hover,
.layui-laydate-content td.laydate-selected {
border-radius: 2px;
}
.layui-laydate-footer {
border-top: 1px solid #f0f0f0;
}
.laydate-time-list>li:hover {
background-color: #f8f8f8;
}
.layui-laydate-content td.layui-this {
border-radius: 2px;
}
/* 输入框样式优化 */
.layui-input[readonly] {
background-color: #fff !important;
cursor: pointer;
}
.layui-input:hover {
border-color: #D2D2D2 !important;
}
.layui-input:focus {
border-color: #009688 !important;
box-shadow: 0 0 0 2px rgba(0,150,136,.2);
}
</style>
{/block}

View File

@@ -0,0 +1,44 @@
{extend name="../../admin/view/main"}
{block name="content"}
<form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post">
<div class="layui-card-body">
<div class="layui-form-item">
<label class="layui-form-label">选择代理商</label>
<div class="layui-input-block">
<select name='agent_id' class='layui-select' lay-search required>
<option value=''>请选择代理商</option>
{foreach $agents as $agent}
<option value='{$agent.id}'>{$agent.username} ({if $agent.level==1}一级代理{else}二级代理{/if})</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">销售价格</label>
<div class="layui-input-block">
<input name="price" value='' required placeholder="请输入销售价格" class="layui-input">
<tip class="help-block">设置激活码的销售价格,用于计算代理商佣金</tip>
</div>
</div>
<input type='hidden' name='code_ids' value=''>
</div>
<div class="hr-line-dashed"></div>
<div class="layui-form-item text-center">
<button class="layui-btn" type='submit'>保存设置</button>
<button class="layui-btn layui-btn-danger" type='button' data-close>取消</button>
</div>
</form>
<script>
// 获取选中的激活码ID
var ids = [];
parent.$('.list-check-box:checked').map(function(){
ids.push($(this).val());
});
// 设置到隐藏字段
$('input[name="code_ids"]').val(ids.join(','));
</script>
{/block}

View File

@@ -2,6 +2,13 @@
{block name="button"}
<button class='layui-btn layui-btn-sm layui-btn-primary' data-modal='{:url("generate")}'>生成激活码</button>
{if auth("batchRemoveCodes")}
<button class='layui-btn layui-btn-sm layui-btn-danger' data-batch-confirm="确定要删除选中的激活码吗?" data-csrf="{:systoken('batchRemoveCodes')}" data-action='{:url("batchRemoveCodes")}' data-rule="ids#{key}">批量删除</button>
{/if}
{if auth("batchChangeAgent")}
<button class='layui-btn layui-btn-sm layui-btn-normal' data-modal='{:url("batchChangeAgent")}' data-title="批量切换代理商" data-checkbox="true">批量切换代理商</button>
{/if}
<button class='layui-btn layui-btn-sm layui-btn-warm' id="batchCopyBtn" data-checkbox="true">批量复制激活码</button>
{/block}
{block name="content"}
@@ -39,6 +46,29 @@
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">禁用状态</label>
<div class="layui-input-inline">
<select name='status' lay-search class='layui-select'>
<option value=''>-- 全部 --</option>
<option value='1' {if isset($get.status) and $get.status=='1'}selected{/if}>正常</option>
<option value='0' {if isset($get.status) and $get.status=='0'}selected{/if}>已禁用</option>
</select>
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">卡类型</label>
<div class="layui-input-inline">
<select name='days' lay-search class='layui-select'>
<option value=''>-- 全部 --</option>
{foreach :app\manager\model\AgentCode::getCardTypes() as $days => $info}
<option value='{$days}' {if isset($get.days) and $get.days==$days}selected{/if}>{$info.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item layui-inline">
<button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
</div>
@@ -63,6 +93,7 @@
<th class='text-left'>使用时间</th>
<th class='text-left'>使用者</th>
<th class='text-left'>生成时间</th>
<th class='text-left'>状态</th>
<th></th>
</tr>
</thead>
@@ -109,9 +140,19 @@
<td class='text-left'>{$vo.used_at|format_datetime|default='--'}</td>
<td class='text-left'>{$vo.used_by|default='--'}</td>
<td class='text-left'>{$vo.created_at|format_datetime}</td>
<td class='text-left'>
{if $vo.status eq 1}
<span class="color-green">正常</span>
{else}
<span class="color-red">已禁用</span>
{/if}
</td>
<td class='text-left'>
{if auth("removeCode")}
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除该激活码吗?" data-csrf="{:systoken('removeCode')}" data-action='{:url("removeCode")}' data-value="id#{$vo.id}"> </a>
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除该激活码吗?" data-csrf="{:systoken('removeCode')}" data-action='{:url("removeCode")}' data-value="id#{$vo.id}">删除</a>
{/if}
{if auth("disableCode") && $vo.status eq 1}
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要禁用该激活码吗?" data-csrf="{:systoken('disableCode')}" data-action='{:url("disableCode")}' data-value="id#{$vo.id}">禁用</a>
{/if}
</td>
</tr>
@@ -120,4 +161,91 @@
</table>
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
</div>
<!-- 复制弹窗 -->
<div id="copyDialog" style="display:none;">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-form-item">
<textarea id="codeList" class="layui-textarea" style="height: 500px;margin:10px 0;font-size:14px;line-height:1.8;" readonly></textarea>
</div>
<div class="text-center">
<button class="layui-btn layui-btn-lg" onclick="copyToClipboard()">一键复制</button>
</div>
</div>
</div>
</div>
<script>
// 批量复制按钮点击事件
$('#batchCopyBtn').click(function(){
var codes = [];
$('.list-check-box:checked').each(function(){
var tr = $(this).closest('tr');
var code = tr.find('td:eq(1)').text(); // 激活码
var days = tr.find('td:eq(2)').text(); // 天数
codes.push(code + ' - ' + days);
});
if(codes.length === 0){
layer.msg('请选择要复制的激活码');
return;
}
// 格式化激活码列表
var formattedCodes = codes.map(function(item){
return item.trim();
}).join('\n\n');
// 显示弹窗
var index = layer.open({
type: 1,
title: '复制激活码',
area: ['800px', '700px'],
content: $('#copyDialog'),
offset: '50px',
fixed: false,
resize: true,
shadeClose: true,
shade: [0.3, '#000'],
maxmin: true,
moveOut: true,
anim: 1,
isOutAnim: false,
zIndex: layer.zIndex + 1000, // 增加 zIndex 确保显示在最上层
success: function(layero, index){
layer.setTop(layero);
$('#codeList').val(formattedCodes);
// 添加自定义样式
$(layero).css({
'background-color': '#fff',
'box-shadow': '0 2px 8px rgba(0,0,0,.1)'
}).find('.layui-layer-content').css({
'padding': '30px'
});
}
});
// 设置最高层级
layer.setTop($('.layui-layer[times="' + index + '"]'));
});
// 复制到剪贴板
function copyToClipboard() {
var textarea = document.getElementById('codeList');
textarea.select();
try {
document.execCommand('copy');
layer.msg('复制成功!', {icon: 1, zIndex: layer.zIndex + 1001});
} catch (err) {
layer.msg('复制失败,请手动复制', {icon: 2, zIndex: layer.zIndex + 1001});
}
}
function setDays(days) {
document.getElementById('daysInput').value = days;
document.querySelector('form.form-search').submit();
}
</script>
{/block}

View File

@@ -26,10 +26,14 @@
{notempty name='list'}
<thead>
<tr>
<th class='text-left'>账号邮箱</th>
<th class='text-left'>设备ID</th>
<th class='text-left'>使用时间</th>
<th class='text-left'>注册时间</th>
<th class='text-left'>账号邮箱</th>
<th class='text-left'>代理商</th>
<th class='text-left'>激活码数量</th>
<th class='text-left'>总天数</th>
<th class='text-left'>首次激活</th>
<th class='text-left'>到期时间</th>
<th class='text-left'>剩余天数</th>
<th class='text-left'>缓存状态</th>
<th class='text-left'>冷却状态</th>
<th class='text-left'>操作</th>
@@ -39,24 +43,30 @@
<tbody>
{foreach $list as $key=>$vo}
<tr>
<td class='text-left'>{$vo.email}</td>
<td class='text-left'>{$vo.used_by}</td>
<td class='text-left'>{$vo.used_at|format_datetime}</td>
<td class='text-left'>{$vo.registration_time|format_datetime}</td>
<td class='text-left'>{$vo.used_by|default='--'}</td>
<td class='text-left'>{if isset($vo.email)}{$vo.email}{else}--{/if}</td>
<td class='text-left'>{if isset($vo.agent_names)}{$vo.agent_names}{else}--{/if}</td>
<td class='text-left'>{if isset($vo.total_codes)}{$vo.total_codes}{else}0{/if}</td>
<td class='text-left'>{if isset($vo.total_days)}{$vo.total_days} {else}0 {/if}</td>
<td class='text-left'>{if isset($vo.first_activation)}{$vo.first_activation|format_datetime}{else}--{/if}</td>
<td class='text-left'>{if isset($vo.expire_time)}{$vo.expire_time}{else}--{/if}</td>
<td class='text-left'>
{if $vo.has_cache}
{if $vo.cache_match}
<span class="color-green">正常</span>
{else}
<span class="color-red">异常(缓存不匹配)</span>
{/if}
{if isset($vo.days_left) && $vo.days_left > 0}
<span class="color-green">{$vo.days_left} </span>
{else}
<span class="color-red">已过期</span>
{/if}
</td>
<td class='text-left'>
{if isset($vo.has_cache) && $vo.has_cache}
<span class="color-green">已缓存</span>
{else}
<span class="color-gray">无缓存</span>
{/if}
</td>
<td class='text-left'>
{if $vo.in_cooldown}
<span class="color-red">冷却中 ( {$vo.cooldown_time})</span>
{if isset($vo.in_cooldown) && $vo.in_cooldown}
<span class="color-red">冷却中 {if isset($vo.cooldown_time)}( {$vo.cooldown_time}){/if}</span>
{else}
<span class="color-green">可用</span>
{/if}

View File

@@ -6,52 +6,79 @@
<div class="layui-form-item">
<label class="layui-form-label">生成数量</label>
<div class="layui-input-block">
<input name="count" value="1" required placeholder="请输入生成的激活码数量" class="layui-input">
<tip class="help-block">一次最多可生成100个激活码</tip>
<input type="number" name="count" value="1" min="1" max="500" required placeholder="请输入生成数量(1-500)" class="layui-input">
<tip class="help-block">单次可生成1-500个激活码</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">有效天数</label>
<div class="layui-input-block">
<input name="days" value="30" required placeholder="请输入激活码有效天数" class="layui-input">
<div class="layui-btn-group-days" style="margin-bottom: 10px;">
{foreach :app\manager\model\AgentCode::getCardTypes() as $days => $info}
<button type="button" class="layui-btn layui-btn-sm" data-days="{$days}">{$info.name}</button>
{/foreach}
</div>
<input type="number" name="days" value="30" min="1" required placeholder="请输入有效天数" class="layui-input">
<tip class="help-block">激活码的有效使用天数</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择代理</label>
<div class="layui-input-block">
<select name='agent_id' class='layui-select' lay-filter='agent_id'>
<select name='agent_id' class='layui-select' lay-search>
<option value=''>不分配给代理商</option>
{foreach $agents as $agent}
<option value='{$agent.id}'>{$agent.username} ({if $agent.level==1}一级代理{else}二级代理{/if}) - 佣金比例{$agent.commission_rate}%</option>
<option value='{$agent.id}'>{$agent.username} ({if $agent.level==1}一级代理{else}二级代理{/if})</option>
{/foreach}
</select>
<tip class="help-block">如果选择代理商,需要设置销售价格</tip>
<tip class="help-block">可以选择直接分配给代理商</tip>
</div>
</div>
<div class="layui-form-item" id="price_item" style="display:none;">
<div class="layui-form-item">
<label class="layui-form-label">销售价格</label>
<div class="layui-input-block">
<input name="price" value="0" placeholder="请输入销售价格" class="layui-input">
<tip class="help-block">设置激活码的销售价格,用于计算佣金</tip>
<input type="number" name="price" value="0" min="0" step="0.01" placeholder="请输入销售价格" class="layui-input">
<tip class="help-block">设置激活码的销售价格,用于计算代理商佣金(选择代理商时必填)</tip>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="layui-form-item text-center">
<button class="layui-btn" type="submit">确定生成</button>
<button class="layui-btn layui-btn-danger" type="button" data-close>取消</button>
<button class="layui-btn" type='submit'>确定生成</button>
<button class="layui-btn layui-btn-danger" type='button' data-close>取消</button>
</div>
</form>
<script>
layui.form.on('select(agent_id)', function(data){
if(data.value){
$('#price_item').show();
$('input[name=price]').attr('required', true);
}else{
$('#price_item').hide();
$('input[name=price]').removeAttr('required');
}
layui.use(['form'], function(){
// 快捷选择天数
$('.layui-btn-group-days .layui-btn').click(function(){
var days = $(this).data('days');
$('input[name="days"]').val(days);
});
// 监听代理商选择
layui.form.on('select(agent_id)', function(data){
var price = $('input[name="price"]');
if(data.value){
price.attr('required', true);
} else {
price.removeAttr('required');
}
});
});
</script>
<style>
.layui-btn-group .layui-btn {
margin-right: 5px;
}
.layui-btn-group .layui-btn:hover {
opacity: 0.9;
}
</style>
{/block}

View File

@@ -0,0 +1,70 @@
{include file='../../admin/view/search'}
<fieldset>
<legend>条件搜索</legend>
<form class="layui-form layui-form-pane form-search" action="{:sysuri()}" onsubmit="return false" method="get" autocomplete="off">
<div class="layui-form-item layui-inline">
<label class="layui-form-label">邮箱账号</label>
<div class="layui-input-inline">
<input name="email" value="{$get.email|default=''}" placeholder="请输入邮箱账号" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">姓名</label>
<div class="layui-input-inline">
<input name="first_name" value="{$get.first_name|default=''}" placeholder="请输入名字" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">机器ID</label>
<div class="layui-input-inline">
<input name="machine_id" value="{$get.machine_id|default=''}" placeholder="请输入机器ID" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">使用状态</label>
<div class="layui-input-inline">
<select class="layui-select" name="is_used">
<option value=''>-- 全部 --</option>
<option value='0' {if $get.is_used eq '0'}selected{/if}>未使用</option>
<option value='1' {if $get.is_used eq '1'}selected{/if}>已使用</option>
</select>
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">使用者</label>
<div class="layui-input-inline">
<input name="used_by" value="{$get.used_by|default=''}" placeholder="请输入使用者" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">注册时间</label>
<div class="layui-input-inline">
<input data-date-range name="registration_time" value="{$get.registration_time|default=''}" placeholder="请选择注册时间" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">创建时间</label>
<div class="layui-input-inline">
<input data-date-range name="created_at" value="{$get.created_at|default=''}" placeholder="请选择创建时间" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">使用时间</label>
<div class="layui-input-inline">
<input data-date-range name="used_at" value="{$get.used_at|default=''}" placeholder="请选择使用时间" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
</div>
</form>
</fieldset>