This commit is contained in:
2025-11-21 01:42:54 +08:00
parent ff026c6f32
commit f89196c73c
1953 changed files with 9 additions and 15246 deletions
+70
View File
@@ -0,0 +1,70 @@
{layout name="layout"}
<div class="card">
<ul class="nav nav-tabs page-tabs" role="tablist">
<li class="active"> <a href="#base" role="tab" data-toggle="tab">基本信息</a> </li>
<li> <a href="#safe" role="tab" data-toggle="tab">安全设置</a> </li>
</ul>
<div class="tab-content">
<!-- 基本信息 -->
<div class="tab-pane fade in active" id="base">
<form class="form-horizontal" action="{:url('update')}" method="post">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">昵称</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="nickname" value="{$row.nickname|null}" data-rule="required" placeholder="请输入昵称" autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">邮箱</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="email" value="{$row.email|null}" placeholder="请输入邮箱" autocomplete="off" class="form-control" data-rule="email">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">联系电话</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="mobile" value="{$row.mobile|null}" placeholder="请输入联系电话" autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6">
<button type="submit" class="btn btn-primary">提交</button>
<button type="reset" class="btn btn-warning">重置</button>
</div>
</div>
</form>
</div>
<div class="tab-pane fade in" id="safe">
<form class="form-horizontal" action="{:url('password')}" method="post">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">原始密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="password" name="old_password" data-rule="required;password" placeholder="请输入原始密码" autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">新密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="password" name="password" data-rule="required;password" placeholder="请输入新密码" autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">确认新密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="password" name="password_confirm" data-rule="required;password" placeholder="请再次输入新密码" autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6">
<button type="submit" class="btn btn-primary">提交</button>
<button type="reset" class="btn btn-warning">重置</button>
</div>
</div>
</form>
</div>
</div>
</div>
+98
View File
@@ -0,0 +1,98 @@
{layout name="layout"}
<style>
.lyear-wrapper {
position: relative;
}
.lyear-login {
display: flex !important;
min-height: 100vh;
align-items: center !important;
justify-content: center !important;
}
.lyear-login:after {
content: '';
min-height: inherit;
font-size: 0;
}
.login-center {
background: #fff;
min-width: 29.25rem;
padding: 2.14286em 3.57143em;
border-radius: 3px;
margin: 2.85714em;
}
.login-header {
margin-bottom: 1.5rem !important;
}
.login-center .has-feedback.feedback-left .form-control {
padding-left: 38px;
padding-right: 12px;
}
.login-center .has-feedback.feedback-left .form-control-feedback {
left: 0;
right: auto;
width: 38px;
height: 38px;
line-height: 38px;
z-index: 4;
color: #dcdcdc;
}
.login-center .has-feedback.feedback-left.row .form-control-feedback {
left: 15px;
}
</style>
<div class="row lyear-wrapper" style="background-image: url(__IMG__/login-bg/3.jpg); background-size: cover;margin-top: -15px;">
<div class="lyear-login">
<div class="login-center">
<div class="login-header text-center">
<a href="javascript:;" style="font-size: 22px;display: flex;align-items: center;justify-content: center;"> <img alt="{$title}" src="{$logo}" width="32" class="m-r-5" />{$title}</a>
</div>
<form action="{:url('account/login')}" method="post" id="loginform" valid>
<div class="form-group has-feedback feedback-left">
<span class="mdi mdi-account form-control-feedback" aria-hidden="true"></span>
<input type="text" placeholder="请输入您的用户名" class="form-control" name="username" id="username" data-rule="required" data-msg="请输入您的用户名"/>
</div>
<!-- <div class="form-group has-feedback feedback-left">
<span class="mdi mdi-lock form-control-feedback" aria-hidden="true"></span>
<input type="password" placeholder="请输入密码" class="form-control" id="password" name="password" data-rule="required;password" />
</div> -->
<div class="form-group has-feedback feedback-left">
<span class="mdi mdi-lock form-control-feedback" aria-hidden="true"></span>
<input type="code" placeholder="请输入OTOP验证码" class="form-control" id="code" name="code" data-rule="required;length(4)" data-msg="请输入OTOP验证码" />
</div>
{if Config('site.admin_login_captcha')}
<div class="form-group has-feedback feedback-left row">
<div class="col-xs-7">
<span class="mdi mdi-check-all form-control-feedback" aria-hidden="true"></span>
<input type="text" name="captcha" class="form-control" placeholder="验证码" data-rule="required;length(4)">
</div>
<div class="col-xs-5">
<img src="{:url('account/captcha/login')}" class="pull-right codeImage" id="captcha"
style="cursor: pointer;" onclick="this.src=this.src+'?d='+Math.random();" title="点击刷新"
alt="captcha">
</div>
</div>
{/if}
<div class="form-group">
<label class="lyear-checkbox checkbox-primary m-t-10">
<input type="checkbox" name="keep" value="1"><span>5天内自动登录</span>
</label>
</div>
<div class="form-group">
<button class="btn btn-block btn-primary" type="submit">立即登录</button>
</div>
</form>
<hr>
<footer class="col-sm-12 text-center">
<p class="m-b-0">Copyright © {:Date('Y')} <a href="/">{$title}</a>. All right reserved</p>
</footer>
</div>
</div>
</div>
@@ -0,0 +1,33 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form action="__SELF__" method="post" class="row form-horizontal">
<div class="form-group">
<label for="old_password" class="control-label col-xs-12 col-sm-2">密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="password" class="form-control" id="old_password" name="old_password" value="" placeholder="请输入旧密码" data-rule="required;password" />
</div>
</div>
<div class="form-group">
<label for="password" class="control-label col-xs-12 col-sm-2">密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="password" class="form-control" id="password" name="password" value="" placeholder="请输入新密码" data-rule="required;password" />
</div>
</div>
<div class="form-group">
<label for="password_confirm" class="control-label col-xs-12 col-sm-2">密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="password" class="form-control" id="password_confirm" name="password_confirm" value="" placeholder="请再次输入新密码" data-rule="required;password" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview" /}
@@ -0,0 +1,66 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form action="__SELF__" method="post" class="row form-horizontal">
{if Request()->action == 'update'}
<input type="hidden" name="id" value="{$row.id}" />
{/if}
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">角色</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="roles" id="roles" class="form-control" data-value="{$row.roles|null}"></select>
</div>
</div>
<div class="form-group">
<label for="username" class="control-label col-xs-12 col-sm-2">用户名</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="username" name="username" value="{$row.username|null}" placeholder="请输入用户名" data-rule="required;username" />
</div>
</div>
<div class="form-group">
<label for="nickname" class="control-label col-xs-12 col-sm-2">昵称</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="nickname" name="nickname" value="{$row.nickname|null}" placeholder="请输入昵称" data-rule="required" />
</div>
</div>
<div class="form-group">
<label for="password" class="control-label col-xs-12 col-sm-2">密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="password" class="form-control" id="password" name="password" value="{$row.username|null}" placeholder="请输入密码" data-rule="required;password" />
</div>
</div>
<div class="form-group">
<label for="email" class="control-label col-xs-12 col-sm-2">邮箱</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="email" name="email" value="{$row.email|null}" placeholder="请输入邮箱" data-rule="required;email" />
</div>
</div>
<div class="form-group">
<label for="mobile" class="control-label col-xs-12 col-sm-2">手机</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="mobile" name="mobile" value="{$row.mobile|null}" placeholder="请输入手机" data-rule="required;phone" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">头像</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input id="c-avatar" class="form-control" size="50" name="avatar" type="hidden" value="{$row.avatar|null}" data-tip="头像">
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
</li>
</ul>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview" /}
+29
View File
@@ -0,0 +1,29 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
<!-- <a id="btn-refresh" class="btn btn-info btn-ajax {if $refreshBalance}btn-disabled disabled{/if}" data-url="{:url('address/refresh_balance')}" data-success="window.refreshBalanceSuccess">
{if $refreshBalance}
<span class="mdi mdi-loading mdi-spin " aria-hidden="true"></span>
{else /}
<span class="mdi mdi-refresh" aria-hidden="true"></span>
{/if}
刷新余额
</a> -->
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+62
View File
@@ -0,0 +1,62 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">network</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="network" value="{$row.network|null}" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">地址</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="address" value="{$row.address|null}" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">余额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="balance" value="{$row.balance|null}" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">私钥</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="private_key" value="{$row.private_key|null}" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">使用</label>
<div class="col-xs-12 col-sm-8 col-md-6">
{if $row.using}
<input type="text" value="{$row.using|null}" class="form-control" />
{else /}
未使用
{/if}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态</label>
<div class="col-xs-12 col-sm-8 col-md-6">
{volist name="statusList" id="rvo"}
<label class="lyear-radio radio-primary radio-inline">
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}">
<span>{$rvo}</span>
</label>
{/volist}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
+22
View File
@@ -0,0 +1,22 @@
{layout name="layout"}
<div class="card">
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="/app/admin/Admin/insert" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="table"></table>
</div>
</div>
</div>
+84
View File
@@ -0,0 +1,84 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form action="__SELF__" method="post" class="row form-horizontal">
{if Request()->action == 'update'}
<input type="hidden" name="id" value="{$row.id}" />
{/if}
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">角色</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="roles" id="roles" class="form-control" data-value="{$row.roles|null}"></select>
</div>
</div>
<div class="form-group">
<label for="username" class="control-label col-xs-12 col-sm-2">用户名</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="username" name="username" value="{$row.username|null}" placeholder="请输入用户名" data-rule="required;username" />
</div>
</div>
<div class="form-group">
<label for="nickname" class="control-label col-xs-12 col-sm-2">昵称</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="nickname" name="nickname" value="{$row.nickname|null}" placeholder="请输入昵称" data-rule="required" />
</div>
</div>
<div class="form-group">
<label for="password" class="control-label col-xs-12 col-sm-2">密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="password" class="form-control" id="password" name="password" value="" placeholder="请输入密码" />
</div>
</div>
<div class="form-group">
<label for="password" class="control-label col-xs-12 col-sm-2">密钥</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="totp_secret" name="totp_secret" value="{$row.totp_secret}" readonly />
<br />
{php}
$totp = \OTPHP\TOTP::create($row->totp_secret);
$totp->setLabel($row->username);
$totp->setIssuer('问卷');
$qrCodeUri =$totp->getProvisioningUri();
if(!$row->totp_secret){
$row->totp_secret = $totp->getSecret();
$row->save();
}
echo '<img src="https://api.qrtool.cn/?text='.urlencode($qrCodeUri).'" width="150" />';
{/php}
</div>
</div>
<div class="form-group">
<label for="email" class="control-label col-xs-12 col-sm-2">邮箱</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="email" name="email" value="{$row.email|null}" placeholder="请输入邮箱" data-rule="required;email" />
</div>
</div>
<div class="form-group">
<label for="mobile" class="control-label col-xs-12 col-sm-2">手机</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="mobile" name="mobile" value="{$row.mobile|null}" placeholder="请输入手机" data-rule="required;phone" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">头像</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input id="c-avatar" class="form-control" size="50" name="avatar" type="hidden" value="{$row.avatar|null}" data-tip="杀杀杀">
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
</li>
</ul>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview" /}
@@ -0,0 +1,19 @@
{layout name="layout"}
<div class="card">
<div class="toolbar toolbar-btn-action">
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.role.insert">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</button>
<button id="btn_add" type="button" class="btn btn-info m-r-5" permission="app.admin.role.update">
<span class="mdi mdi-pencil" aria-hidden="true"></span>编辑
</button>
<button id="btn_delete" type="button" class="btn btn-danger btn-del" permission="app.admin.role.delete">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</button>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="table"></table>
</div>
</div>
</div>
@@ -0,0 +1,40 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" method="post" action="__SELF__" role="form">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">父级:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="pid" class="form-control selectpicker">
<option value=""></option>
{foreach name="rolelist" item="vo"}
<option value="{$vo.id}" {if $vo.id==$row.pid}selected{/if}>{$vo.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">角色名:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="name" value="{$row.name|null}" data-rule="required" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">权限:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<div class="table-responsive" style="min-height: 500px;">
<div id="treeview"></div>
</div>
<input type="hidden" name="rules" value="{$row.rules|null}" data-rule="required" class="form-control">
</div>
</div>
<div class="form-group">
<label for="extend" class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
</div>
</div>
</form>
</div>
</div>
@@ -0,0 +1,23 @@
{layout name="layout"}
<link href="/app/admin/libs/jquery-treegrid/jquery.treegrid.min.css" rel="stylesheet" />
<div class="card">
<div class="toolbar toolbar-btn-action">
<button type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.adminrule.insert">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</button>
<button id="btn_delete" type="button" class="btn btn-danger m-r-5 btn-del" permission="app.admin.adminrule.delete">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</button>
<button type="button" class="btn btn-warning m-r-5 pop btn-ajax" href="{:url('buildcache')}" permission="app.admin.adminrule.insert">
<span class="mdi mdi-refresh" aria-hidden="true"></span>缓存
</button>
<button type="button" class="btn btn-info pop btn-ajax" href="{:url('syncRules')}" permission="app.admin.adminrule.syncRules">
<span class="mdi mdi-cloud-sync" aria-hidden="true"></span>同步
</button>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="table"></table>
</div>
</div>
</div>
@@ -0,0 +1,87 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标题</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="title" required lay-verify="required" value="{$row.title|null}" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标识</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="key" required lay-verify="required" value="{$row.key|null}" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">上级菜单</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="pid" id="pid" value="{$row.pid|null}" class="form-control">
<option value="0" {if !$row.pid}selected{/if}>顶级菜单</option>
{foreach name="RuleList" item="vo"}
<option value="{$vo.id}" {if $row.pid==$vo.id }selected{/if}>{$vo.title}</option>
{if $vo.children}
{foreach name="vo.children" item="vo1"}
<option value="{$vo1.id}" {if $row.pid==$vo1.id }selected{/if}>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$vo1.title}</option>
{/foreach}
{/if}
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">url</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="href" value="{$row.href|null}" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">图标</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<div class="input-group input-groupp-md">
<span class="input-group-addon"><i class="{$row.icon|null}" id="icon-style"></i></span>
<input type="text" class="form-control" id="icon" name="icon" value="{$row.icon|null}" />
<a href="javascript:;" class="btn-search-icon input-group-addon">搜索图标</a>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">类型</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="type" value="0" {if $row.type==0 || !$row.type}checked{/if}><span>目录</span>
</label>
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="type" value="1" {if $row.type==1}checked{/if}><span>菜单</span>
</label>
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="type" value="2" {if $row.type==2}checked{/if}><span>权限</span>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">排序</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="number" name="weight" value="{$row.weight|null=0}" class="form-control">
</div>
</div>
<div class="form-group">
<label for="extend" class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
<button type="reset" class="btn btn-danger m-r-5">重 置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/chooseicontpl" /}
+21
View File
@@ -0,0 +1,21 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+211
View File
@@ -0,0 +1,211 @@
{layout name="layout"}
<style>
.autocomplete-searchtitle {
padding: 0px 8px;
display: none;
}
.autocomplete-suggestions {
display: none;
}
.autocomplete-searchtitle .media {
border-bottom: 1px solid #eee;
margin-top: 10px;
padding-bottom: 10px;
}
.autocomplete-searchtitle .media:last-child {
border-bottom: 0;
}
.autocomplete-searchtitle .media h4.media-heading {
font-size: 14px;
}
.autocomplete-searchtitle .media .text-muted {
font-size: 12px;
}
.autocomplete-searchtitle .media:hover {
background: #fefefe;
}
@media (min-width: 992px) {
.form-archives>.row>.col-md-3 {
padding-left: 0;
}
.form-archives>.row>.col-md-3 .form-group .control-label {}
}
.panel-intro {
box-shadow: none;
}
</style>
<link href="__JS__/libs/jquery-tags-input/jquery.tagsinput.min.css?v={$Think.config.site.version}" rel="stylesheet">
<!-- <script src="/static/libs/froala/js/languages/zh_cn.js"></script> -->
<script type="text/html" id="headertpl">
<div class="px-2">
<div class="row">
<div class="col-12">
<div class="alert" style="border-radius: 0;color: #0084ff; background: rgba(0, 132, 255, 0.1);margin-bottom:0;">
共找到以下几篇相关文章:
</div>
</div>
</div>
</div>
</script>
<script type="text/html" id="itemtpl">
<div class="media">
<a class="" href="<%=item.url%>" target="_blank">
<div class="media-left">
<img src="<%=item.image%>" style="width: 50px; height: 50px;">
</div>
<div class="media-body">
<h4 class="media-heading"><%=#replace(item.title)%></h4>
<div class="text-muted"><%=#formatter.status.call(context, item.status, item)%></div>
</div>
</a>
</div>
</script>
<div class="card">
<div class="card-body">
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<input name="id" type="hidden" value="{$row.id}">
<input name="type" type="hidden" value="{$row.type}">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">分类:</label>
<div class="col-xs-12 col-sm-8">
<select name="category_id" class="form-control selectpicker">
{volist name="$categoryList" id="cvo"}
<option value="{$cvo.id}" {if $row['category_id']== $cvo.id}selected{/if}>{$cvo.title}</option>
{/volist}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标题:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-title" data-rule="required;length(2~100)" class="form-control" name="title"
type="text" value="{$row.title|htmlentities}" data-suggestion-url="{:url('archives/suggestion')}">
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">封面:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input id="c-image" class="form-control" size="50" name="image" type="hidden" value="{$row.image|default=''}" data-tip="image">
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-image">
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.image" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
</li>
</ul>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">图集:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input id="c-images" class="form-control" size="50" name="images" type="hidden" value="{$row.images|default=''}" data-tip="images">
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-images">
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.images" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-images" data-mimetype="image/*" data-multiple="false" data-preview-id="p-images"></a>
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-images" data-mimetype="image/*" data-multiple="false" data-preview-id="p-images"></a>
</li>
</ul>
</div>
</div>
<div class="form-group" data-field="intro">
<label for="c-intro" class="control-label col-xs-12 col-sm-2">简介:</label>
<div class="col-xs-12 col-sm-8">
<textarea id="c-intro" data-rule="required;length(0~560)" class="form-control" name="intro"
rows="5">{$row.intro}</textarea>
</div>
</div>
<!--@formatter:off-->
<div class="form-group" data-field="content">
<label for="c-content" class="control-label col-xs-12 col-sm-2">正文:</label>
<div class="col-xs-12 col-sm-8">
<textarea id="c-content" data-rule="required;length(100~20000)" class="form-control editor" name="content" data-role="editor"
rows="15">{$row.content}</textarea>
<div style="margin-top:5px;">
<a href="javascript:" class="btn btn-xs btn-info btn-getimage" data-toggle="tooltip"
data-title="将提取内容第一张图作为缩略图"><i class="fa fa-camera"></i> {:__('提取缩略图')}</a>
<a href="javascript:" class="btn btn-xs btn-info btn-getimages" data-toggle="tooltip"
data-title="将提取内容前4张图作为组图"><i class="fa fa-camera"></i> {:__('提取组图')}</a>
</div>
</div>
</div>
<!--@formatter:on-->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标签:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-tags" class="form-control" data-role="tagsinput" name="tags" type="text" value="{$row.tags|htmlentities}">
</div>
</div>
<!--@formatter:off-->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标识:</label>
<div class="col-xs-12 col-sm-8">
<!--@formatter:off-->
<select id="c-flag" class="form-control selectpicker" multiple name="flag[]">
{foreach name="flagList" item="vo"}
<option value="{$key}" data-subtext="{$key}" {in name="key" value="$row.flag" }selected{/in}>{$vo}
</option>
{/foreach}
</select>
<!--@formatter:on-->
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">权重:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-weigh" data-rule="required;integer(+)" class="form-control" name="weigh" type="number"
value="{$row.weigh|default=0}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">浏览:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-views" data-rule="required;integer(+)" min="0" class="form-control" name="views" type="number"
value="{$row.views|default=0}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">备注:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-memo" class="form-control" name="memo" type="text" value="{$row.memo|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态:</label>
<div class="col-xs-12 col-sm-8">
{foreach name="statusList" item="vo"}
<label for="status-{$key}" class="lyear-radio radio-inline radio-primary">
<input id="status-{$key}" name="status" type="radio" value="{$key}" {in name="key" value="$row.status" }checked{/in} />
<span>{$vo}</span>
</label>
{/foreach}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview"/}
@@ -0,0 +1,20 @@
{layout name="layout"}
<!-- 数据表格 -->
<div class="card">
<ul class="nav nav-tabs page-tabs" id="filter_currency">
{volist name=":Config('site.allow_balance_log')" id="cvo"}
<li {if $cvo == 'money'}class="active" {/if} data-currency="{$cvo}"> <a href="javascript:;">{:__($cvo)}</a> </li>
{/volist}
</ul>
<div class="tab-pane fade in form-horizontal">
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
<!-- <input type="text" class="form-control js-datepicker" style="display: inline-block;width: 150px;" /> -->
</div>
<div class="card-body" style="padding-top: 0px;">
<table id="table"></table>
</div>
</div>
</div>
+21
View File
@@ -0,0 +1,21 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action" style="display: hide;">
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
<a class="btn btn-info" target="_blank" href="{:url('card/export')}?ids={:Request()->get('ids')}">
<span class="mdi mdi-export" aria-hidden="true"></span>导出
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+21
View File
@@ -0,0 +1,21 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+64
View File
@@ -0,0 +1,64 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<input type="hidden" name="user_id" value="{$row.user_id|default=1}" />
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标题</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="title" value="{$row.title|null}" data-rule="required;length(2~100)" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">类型</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="type" class="form-control">
{volist name=":config('site.cdkey_category')" id="tvo"}
<option value="{$key}">{$tvo}</option>
{/volist}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">数量</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="total" value="{$row.total|null}" data-rule="required;number(0~4)" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">金额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="days" value="{$row.days|null=0}" data-rule="required;number" class="form-control" />
</div>
</div>
<div class="form-group hidden">
<label class="control-label col-xs-12 col-sm-2">有效期</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="expires" value="{$row.expires|default=date('Y-m-d H:i:s')}" data-rule="required;datetime" class="form-control datetimepicker" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-switch switch-primary">
<input type="checkbox" name="status" {if !$row.status} checked{/if} value="1">
<span></span>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-info m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
+21
View File
@@ -0,0 +1,21 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
@@ -0,0 +1,39 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">分类</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="type" class="form-control" value="{$row.type}">
{volist name="config.categorytype" id="cvo"}
<option value="{$key}"{if $row.type == $key}selected{/if}>{$cvo}</option>
{/volist}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标志</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="name" value="{$row.name|null}" data-rule="required;length(2~64)" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标题</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="title" value="{$row.title|null}" data-rule="required;length(2~100)" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
+10
View File
@@ -0,0 +1,10 @@
{layout name="layout"}
<section class="error-page">
<div class="error-box">
<div class="error-body text-center">
<h1>403</h1>
<h4>抱歉,你无权访问该页面</h4>
<a href="{:url('index/index')}" class="btn btn-primary ">返回首页</a>
</div>
</div>
</section>
+10
View File
@@ -0,0 +1,10 @@
{layout name="layout"}
<section class="error-page">
<div class="error-box">
<div class="error-body text-center">
<h1>404</h1>
<h4>很抱歉,但是那个页面看起来已经不存在了。</h4>
<a href="{:url('index/index')}" class="btn btn-primary ">返回首页</a>
</div>
</div>
</section>
@@ -0,0 +1,44 @@
<style>
#chooseicon {
margin:10px;
}
#chooseicon ul {
margin:5px 0 0 0;
}
#chooseicon ul li{
width:41px;height:42px;
line-height:42px;
border:1px solid #efefef;
padding:1px;
margin:1px;
text-align: center;
font-size:18px;
}
#chooseicon ul li:hover{
border:1px solid #2c3e50;
cursor:pointer;
}
</style>
<script id="chooseicontpl" type="text/html">
<div id="chooseicon">
<div>
<form onsubmit="return false;">
<div class="input-group input-groupp-md">
<div class="input-group-addon">搜索图标</div>
<input class="js-icon-search form-control" type="text" placeholder="">
</div>
</form>
</div>
<div>
<ul class="list-inline">
<% for(var i=0; i<iconlist.length; i++){ %>
<li data-font="<%=iconlist[i]%>" data-toggle="tooltip" title="<%=iconlist[i]%>">
<i class="mdi mdi-<%=iconlist[i]%>"></i>
</li>
<% } %>
</ul>
</div>
</div>
</script>
+496
View File
@@ -0,0 +1,496 @@
{layout name="layout"}
<script type="text/javascript" src="__JS__/../libs/jquery.min.js"></script>
<style>
.debug-page {
min-height: 100vh;
padding: 20px;
}
.debug-header {
background: #fbcbcf;
color: white;
padding: 15px;
margin-bottom: 20px;
border-radius: 4px;
}
.debug-section {
background: white;
border-radius: 4px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
margin-bottom: 20px;
}
.debug-code {
/* background: #272822;
color: #f8f8f2; */
padding: 15px;
border-radius: 4px;
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
font-size: 13px;
line-height: 1.5;
overflow-x: auto;
white-space: pre;
margin: 0;
position: relative;
}
.debug-code::before {
content: '点击复制';
position: absolute;
top: 5px;
right: 5px;
background: rgba(0, 0, 0, 0.5);
color: white;
padding: 2px 8px;
border-radius: 3px;
font-size: 12px;
opacity: 0;
transition: opacity 0.3s;
}
.debug-code:hover::before {
opacity: 1;
}
.debug-info {
line-height: 30px;
font-size: 14px;
}
.debug-info-label {
font-weight: bold;
color: #495057;
margin-right: 10px;
}
.debug-trace {
counter-reset: line;
}
.debug-trace-line {
position: relative;
padding-left: 3.5em;
transition: background-color 0.2s;
display: flex;
gap: 5px;
}
.debug-trace-line::before {
counter-increment: line;
content: counter(line);
position: absolute;
left: 0;
width: 2.5em;
text-align: right;
color: #6c757d;
border-right: 1px solid #dee2e6;
padding-right: 1em;
}
.debug-trace-line.noline::before,.noline .debug-trace-line::before {
content: '';
width: 0;
}
.debug-trace-line.noline,.noline .debug-trace-line {
padding-left: 1em;
}
.debug-trace-line:hover {
background: #f8f9fa;
cursor: pointer;
}
.debug-trace-file {
color: #28a745;
}
.debug-trace-line-number {
color: #dc3545;
}
.debug-trace-function {
color: #007bff;
}
.debug-trace-class {
color: #6f42c1;
}
.debug-actions {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 1000;
}
.nav-tabs .nav-link {
color: #495057;
}
.nav-tabs .nav-item.active {
font-weight: bold;
}
.tab-content {
background: white;
border: 1px solid #dee2e6;
border-top: none;
border-radius: 0 0 4px 4px;
padding: 20px;
max-height: calc(100vh - 250px);
overflow-y: auto;
}
.highlight {
background-color: #fff3cd;
padding: 2px;
border-radius: 2px;
}
/* 暗色模式 */
.dark-mode {
background: #1a1a1a;
color: #fff;
}
.dark-mode .debug-section,
.dark-mode .tab-content {
background: #2d2d2d;
}
.dark-mode .nav-tabs {
border-color: #444;
}
.dark-mode .nav-tabs .nav-link {
color: #fff;
}
.dark-mode .nav-tabs .nav-link.active {
background: #2d2d2d;
border-color: #444;
}
.dark-mode .debug-code {
background: #000;
}
.dark-mode .debug-trace-line:hover {
background: #333;
}
.dark-mode .debug-info-label {
color: #adb5bd;
}
</style>
<script>
// 搜索功能
function toggleSearch() {
const $searchBox = $('#search-box');
$searchBox.toggle();
if ($searchBox.is(':visible')) {
$('#search-input').focus();
}
}
function clearSearch() {
$('#search-input').val('');
removeHighlights();
}
$('#search-input').on('input', function() {
const searchText = $(this).val().toLowerCase();
removeHighlights();
if (searchText) {
highlightText(searchText);
}
});
function highlightText(text) {
const $content = $('.tab-content');
const regex = new RegExp(text, 'gi');
$content.contents().each(function() {
if (this.nodeType === Node.TEXT_NODE &&
!$(this).parent().is('script, style')) {
const $parent = $(this).parent();
const newText = this.textContent.replace(regex, match =>
`<span class="highlight">${match}</span>`
);
if (newText !== this.textContent) {
$parent.html(newText);
}
}
});
}
function removeHighlights() {
$('.highlight').each(function() {
const $parent = $(this).parent();
$parent.html($parent.text());
});
}
const errorInfo = {
message: '{$msg}',
code: '{$code}',
file: '{$file}',
line: '{$line}',
trace: `{$trace_str}`,
request: {
method: '{$method}',
url: '{$url}',
param: {:json_encode($post,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)},
get: {:json_encode($get,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)},
header: {:json_encode($header,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)},
},
environment: {
php_version: '{$Think.PHP_VERSION}',
thinkphp_version: '{$Think.THINK_VERSION}',
os: '{$Think.PHP_OS}',
debug_time: '{$Think.APP_DEBUG_TIME}'
}
};
// 复制功能
function fallbackCopyToClipboard(text) {
const textArea = document.createElement('textarea');
textArea.value = text;
textArea.style.position = 'fixed';
textArea.style.left = '-999999px';
textArea.style.top = '-999999px';
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
document.execCommand('copy');
alert('已复制到剪贴板');
} catch (err) {
console.error('复制失败:', err);
alert('复制失败,请手动复制');
}
document.body.removeChild(textArea);
}
function copyToClipboard(text) {
if (navigator.clipboard && window.isSecureContext) {
navigator.clipboard.writeText(text)
.then(() => alert('已复制到剪贴板'))
.catch(() => fallbackCopyToClipboard(text));
} else {
fallbackCopyToClipboard(text);
}
}
function copyErrorInfo() {
copyToClipboard(JSON.stringify(errorInfo, null, 2));
}
// 导出功能
function exportError() {
const blob = new Blob([JSON.stringify(errorInfo, null, 2)], { type: 'application/json' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = `error-${new Date().toISOString().slice(0, 19).replace(/:/g, '-')}.json`;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
// 暗色模式
function toggleDarkMode() {
$('body').toggleClass('dark-mode');
localStorage.setItem('debug-dark-mode', $('body').hasClass('dark-mode'));
}
// 初始化
$(document).ready(function() {
// 检查暗色模式
if (localStorage.getItem('debug-dark-mode') === 'true') {
$('body').addClass('dark-mode');
}
// 为所有代码块添加点击复制功能
$('.debug-code').on('click', function() {
copyToClipboard($(this).text());
});
// 记住最后打开的标签页
const lastTab = localStorage.getItem('debug-last-tab');
if (lastTab) {
const $tab = $(`#${lastTab}-tab`);
if ($tab.length) {
$tab.tab('show');
}
}
// 保存标签页状态
$('.nav-link').on('shown.bs.tab', function(e) {
localStorage.setItem('debug-last-tab', $(e.target).attr('id').replace('-tab', ''));
});
});
</script>
<div class="debug-page">
<!-- 错误标题 -->
<div class="debug-header">
<h4 class="mb-0">
<i class="fas fa-exclamation-triangle mr-2"></i>
{$msg}
</h4>
</div>
<!-- 标签页导航 -->
<ul class="nav nav-tabs" id="debugTabs" role="tablist">
<li class="nav-item active">
<a class="nav-link" id="basic-tab" data-toggle="tab" href="#basic" role="tab">基本信息</a>
</li>
<li class="nav-item">
<a class="nav-link" id="request-tab" data-toggle="tab" href="#request" role="tab">请求信息</a>
</li>
<li class="nav-item">
<a class="nav-link" id="trace-tab" data-toggle="tab" href="#trace" role="tab">堆栈跟踪</a>
</li>
<li class="nav-item">
<a class="nav-link" id="env-tab" data-toggle="tab" href="#env" role="tab">环境信息</a>
</li>
<li class="nav-item">
<a class="nav-link" id="details-tab" data-toggle="tab" href="#details" role="tab">详细错误</a>
</li>
</ul>
<!-- 标签页内容 -->
<div class="tab-content" id="debugTabContent">
<!-- 基本信息 -->
<div class="tab-pane fade active in" id="basic" role="tabpanel">
<div class="debug-info">
<span class="debug-info-label">错误代码:</span>
<span class="badge badge-danger">{$code}</span>
</div>
<div class="debug-info" style="display: flex;align-items: center;">
<span class="debug-info-label">SQL:</span>
<div class="debug-trace noline" style="flex:1;">
<div class="debug-trace-line">
<span class="debug-trace-file" onclick="copyToClipboard('{$file}')">{$file}</span>
<span class="debug-trace-line-number">:{$line}</span>
</div>
</div>
</div>
{if isset($data) && isset($data['Database Status'])}
<div class="debug-info" style="display: flex;align-items: center;">
<span class="debug-info-label">SQL:</span>
<pre class="debug-code" style="flex:1;">{$data['Database Status']['Error SQL']}</pre>
</div>
{/if}
{if condition="$previous"}
<div class="debug-info">
<span class="debug-info-label">上一个错误:</span>
<span>{$previous}</span>
</div>
{/if}
</div>
<!-- 请求信息 -->
<div class="tab-pane fade" id="request" role="tabpanel">
<div class="debug-info">
<span class="debug-info-label">请求方法:</span>
<span class="badge badge-info">{$method}</span>
</div>
<div class="debug-info">
<span class="debug-info-label">请求URL:</span>
<span onclick="copyToClipboard('{$url}')">{$url}</span>
</div>
<div class="debug-info">
<span class="debug-info-label">GET参数:</span>
<pre class="debug-code">{:json_encode($get,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)}</pre>
</div>
<div class="debug-info">
<span class="debug-info-label">POST参数:</span>
<pre class="debug-code">{:json_encode($post,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)}</pre>
</div>
<div class="debug-info">
<span class="debug-info-label">请求头:</span>
<pre class="debug-code">{:json_encode($header,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)}</pre>
</div>
</div>
<!-- 堆栈跟踪 -->
<div class="tab-pane fade" id="trace" role="tabpanel">
<div class="debug-trace">
{volist name="trace" id="item"}
<div class="debug-trace-line">
<span class="debug-trace-file" onclick="copyToClipboard('{$item.file}')">{$item.file}</span>
<span class="debug-trace-line-number">:{$item.line}</span>
<span class="debug-trace-function">{$item.function}</span>
{if condition="$item.class"}
<span class="debug-trace-class">{$item.class}</span>
{/if}
</div>
{/volist}
</div>
</div>
<!-- 环境信息 -->
<div class="tab-pane fade" id="env" role="tabpanel">
<div class="debug-info">
<span class="debug-info-label">PHP版本:</span>
<span>{$Think.PHP_VERSION}</span>
</div>
<div class="debug-info">
<span class="debug-info-label">ThinkPHP版本:</span>
<span>{$Think.THINK_VERSION}</span>
</div>
<div class="debug-info">
<span class="debug-info-label">服务器系统:</span>
<span>{$Think.PHP_OS}</span>
</div>
<div class="debug-info">
<span class="debug-info-label">运行时间:</span>
<span>{$Think.APP_DEBUG_TIME}秒</span>
</div>
</div>
<!-- 详细错误信息 -->
<div class="tab-pane fade" id="details" role="tabpanel">
<pre class="debug-code">{$trace_str}</pre>
</div>
</div>
<!-- 调试工具 -->
<div class="debug-actions">
<div class="btn-group">
<button class="btn btn-primary" onclick="window.location.reload()">
<i class="fas fa-sync-alt"></i> 刷新
</button>
<button class="btn btn-secondary" onclick="history.back()">
<i class="fas fa-arrow-left"></i> 返回
</button>
<button class="btn btn-info" onclick="copyErrorInfo()">
<i class="fas fa-copy"></i> 复制
</button>
<button class="btn btn-warning" onclick="toggleSearch()">
<i class="fas fa-search"></i> 搜索
</button>
<button class="btn btn-success" onclick="exportError()">
<i class="fas fa-file-export"></i> 导出
</button>
<button class="btn btn-dark" onclick="toggleDarkMode()">
<i class="fas fa-moon"></i> 暗色
</button>
</div>
</div>
<!-- 搜索框 -->
<div id="search-box" class="position-fixed" style="display: none; top: 20px; right: 20px; z-index: 1001;">
<div class="input-group">
<input type="text" class="form-control" id="search-input" placeholder="搜索错误信息...">
<div class="input-group-append">
<button class="btn btn-outline-secondary" onclick="clearSearch()">
<i class="fas fa-times"></i>
</button>
</div>
</div>
</div>
</div>
@@ -0,0 +1,16 @@
<script type="text/html" id="[id]">
<li class="col-xs-4 col-sm-3 col-md-2 previewitem">
<figure>
<% if (suffix =='jpg' || suffix == 'png' || suffix=='gif' || suffix=='svg' || suffix=='webp'){ %>
<img src="<%= fullurl%>" width="120" data-url="<%= url%>" alt="图片一" onerror="this.src=Fast.api.fixurl('ajax/icon') + '?suffix=<%= suffix%>;this.onerror=null;" class="img-responsive">
<% }else{ %>
<img src="__IMG__/ext/<%= suffix%>.svg" width="120" data-url="__IMG__/ext/<%= suffix%>.svg" alt="图片一" class="img-responsive">
<% }%>
<figcaption>
<a class="btn btn-round btn-square btn-primary btn-preview" href="javascript:;"><i class="mdi mdi-eye"></i></a>
<a class="btn btn-round btn-square btn-danger btn-remove" href="javascript:;"><i class="mdi mdi-delete"></i></a>
</figcaption>
</figure>
</li>
</script>
+353
View File
@@ -0,0 +1,353 @@
{layout name="layout"}
<style>
.tab-pane {
display: none;
}
.tab-pane.active {
display: block;
}
</style>
<div class="row">
<div class="col-lg-12">
<div class="card">
<ul class="nav nav-tabs page-tabs">
{volist name="configlist" id="cvo"}
<li {if $i==1}class="active" {/if}> <a
href="#{$key}">{:Config('site.configgroup.'.$key)}</a> </li>
{/volist}
<li> <a href="#addform"><i class="mdi mdi-plus"></i></a> </li>
</ul>
<div class="tab-content">
<form class="form-horizontal" action="{:url('config/update')}" method="post" id="settingsform">
{foreach name="configlist" item="cvo" key="k" }
<div class="tab-pane fade in {if $k=='basic'}active{/if}" id="{$k}">
{volist name="cvo" id="item" key="ckey"}
{if $item.is_show}
<div class="form-group" data-favisible="{$item.visible}">
<label class="col-sm-3 col-md-2 col-xs-12 control-label" for="{$item.name}">{$item.title}</label>
<div class="col-sm-6 col-md-6 col-xs-12">
{switch $item.type}
{case string}
<input class="form-control" type="text" id="{$item.name}" name="{$item.name}"
value="{$item.value|htmlentities}" placeholder="请输入{$item.title}"
{if $item.rule}data-rule="{$item.rule}"{/if} data-tip="{$item.tip}" {$item.extend} />
{/case}
{case password}
<input class="form-control" type="password" id="{$item.name}" name="{$item.name}"
value="{$item.value}" placeholder="请输入{$item.title}" {if $item.rule}data-rule="{$item.rule}"{/if}
data-tip="{$item.tip}" {$item.extend} />
{/case}
{case text}
<textarea {$item.extend} name="{$item.name}" class="form-control" {if $item.rule}data-rule="{$item.rule}"{/if}
rows="5" data-tip="{$item.tip}">{$item.value|htmlentities}</textarea>
{/case}
{case editor}
<textarea {$item.extend} name="{$item.name}" id="editor-{$item.name}"
class="form-control editor" {if $item.rule}data-rule="{$item.rule}"{/if} rows="5"
data-tip="{$item.tip}">{$item.value|htmlentities}</textarea>
{/case}
{case array}
<dl class="list-group fieldlist" {$item.extend} data-name="{$item.name}">
<dd class="list-group-item m-b-5">
<b style="width: 110px;display: inline-block;">{:isset($item["setting"]["key"])&&$item["setting"]["key"]?$item["setting"]["key"]:__('键')}</b>
<b>{:isset($item["setting"]["value"])&&$item["setting"]["value"]?$item["setting"]["value"]:__('值')}</b>
</dd>
<dd>
<a href="javascript:;" class="btn btn-sm btn-success btn-append m-t-5">
<i class="fa fa-plus"></i> {:__('添加')}
</a>
</dd>
</dl>
<textarea name="{$item.name}" class="form-control hide" cols="30" rows="5">{$item.value|raw}</textarea>
{/case}
{case date}
<input class="form-control datetimepicker" data-date-format="YYYY-MM-DD" type="text"
id="{$item.name}" name="{$item.name}" value="{$item.value}"
placeholder="请输入{$item.title}" {if $item.rule}data-rule="{$item.rule}"{/if} data-tip="{$item.tip}"
{$item.extend} />
{/case}
{case time}
<input class="form-control datetimepicker" data-date-format="HH:mm:ss" type="text"
id="{$item.name}" name="{$item.name}" value="{$item.value}"
placeholder="请输入{$item.title}" {if $item.rule}data-rule="{$item.rule}"{/if} data-tip="{$item.tip}"
{$item.extend} />
{/case}
{case datetime}
<input class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss"
type="text" id="{$item.name}" name="{$item.name}" value="{$item.value}"
placeholder="请输入{$item.title}" {if $item.rule}data-rule="{$item.rule}"{/if} data-tip="{$item.tip}"
{$item.extend} />
{/case}
{case datetimerange}
<input class="form-control datetimerange" type="text" id="{$item.name}"
name="{$item.name}" value="{$item.value}" placeholder="请输入{$item.title}"
{if $item.rule}data-rule="{$item.rule}"{/if} data-tip="{$item.tip}" {$item.extend} />
{/case}
{case number}
<input class="form-control" type="number"
id="{$item.name}" name="{$item.name}" value="{$item.value}"
placeholder="请输入{$item.title}" {if $item.rule}data-rule="{$item.rule}"{/if} data-tip="{$item.tip}"
{$item.extend} />
{/case}
{case checkbox}
<div class="controls-box">
{html:checkbox options="$item.content" value="$item.value" name="$item.name" /}
</div>
{/case}
{case radio}
<div class="controls-box">
{html:radio options="$item.content" value="$item.value" name="$item.name" /}
</div>
{/case}
{case value="select" break="0"}{/case}
{case value="selects"}
<select {$item.extend} name="{$item.name}{$item.type=='selects'?'[]':''}"
class="form-control selectpicker" data-tip="{$item.tip}" {$item.type=='selects'
?'multiple':''}>
{foreach name="$item['content']" item="vo"}
<option value="{$key}" {in name="key" value="$item.value" }selected{/in}>{:__($vo)}
</option>
{/foreach}
</select>
{/case}
{case value="image" break="0"}{/case}
{case value="images"}
<div class="form-inline">
<!-- <input id="c-{$item.name}" class="form-control" size="50" name="{$item.name}" type="text" value="{$item.value|htmlentities}" data-tip="{$item.tip}">
<span><button type="button" id="faupload-{$item.name}" class="btn btn-danger faupload" data-input-id="c-{$item.name}" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="{$item.type=='image'?'false':'true'}" data-preview-id="p-{$item.name}"><i class="fa fa-upload"></i>{:__('Upload')}</button></span>
<span><button type="button" id="fachoose-{$item.name}" class="btn btn-primary fachoose" data-input-id="c-{$item.name}" data-mimetype="image/*" data-multiple="{$item.type=='image'?'false':'true'}"><i class="fa fa-list"></i> {:__('Choose')}</button></span> -->
{html:upload name="$item.name" value="$item.value" tip="$item.tip" /}
</div>
{/case}
{case value="file" break="0"}{/case}
{case value="files"}
<div class="form-inline">
<input id="c-{$item.name}" class="form-control" size="50" name="{$item.name}" type="text" value="{$item.value|htmlentities}" data-tip="{$item.tip}">
<span><button type="button" id="faupload-{$item.name}" class="btn btn-danger faupload" data-input-id="c-{$item.name}" data-multiple="{$item.type=='file'?'false':'true'}"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
<span><button type="button" id="fachoose-{$item.name}" class="btn btn-primary fachoose" data-input-id="c-{$item.name}" data-multiple="{$item.type=='file'?'false':'true'}"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
</div>
{/case}
{case switch}
<div class="form-control" style="display: flex;align-items: center;border:0;">
{html:switch name="$item.name" value="$item.value" /}
</div>
{/case}
{case bool}
<div class="controls-box">
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="{$item.name}" value="1" data-tip="{$item.tip}"
{$item.value?'checked':''}><span></span>
</label>
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="{$item.name}" value="0" data-tip="{$item.tip}"
{$item.value?'':'checked'}><span></span>
</label>
</div>
{/case}
{case city}
<div style="position:relative">
<input {$item.extend} type="text" name="{$item.name}" id="c-{$item.name}"
value="{$item.value|htmlentities}" class="form-control"
data-toggle="city-picker" data-tip="{$item.tip}" {if $item.rule}data-rule="{$item.rule}"{/if} />
</div>
{/case}
{case value="selectpage" break="0"}{/case}
{case value="selectpages"}
<input {$item.extend} type="text" name="{$item.name}" id="c-{$item.name}"
value="{$item.value|htmlentities}" class="form-control selectpage"
data-source="{:url($item.setting.table.'/selectpage')}?id={$item.id}"
data-primary-key="{$item.setting.primarykey}" data-field="{$item.setting.field}"
data-multiple="{$item.type=='selectpage'?'false':'true'}" data-tip="{$item.tip}"
{if $item.rule}data-rule="{$item.rule}"{/if} />
{/case}
{case custom}
{$item.extend}
{/case}
{/switch}
</div>
</div>
{/if}
{/volist}
{if $k=='email'}
<div class="form-group">
<label class="control-label col-sm-3 col-md-2 col-xs-12">测试发送</label>
<div class="col-sm-6 col-md-6 col-xs-12">
<div class="input-group">
<input class="form-control" name="test_mail_address" />
<div class="input-group-btn"><button id="test_send_mail_btn" type="button" class="btn btn-primary m-r-5">测试</button></div>
</div>
</div>
</div>
{/if}
<div class="form-group">
<label class="control-label col-sm-3 col-md-2 col-xs-12"></label>
<div class="col-sm-6 col-md-6 col-xs-12">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
<button type="button" class="btn btn-default"
onclick="javascript:history.back(-1);return false;">返 回</button>
</div>
</div>
</div>
{/foreach}
</form>
<form class="tab-pane fade in form-horizontal" action="{:url('config/insert')}" method="post"
id="addform">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('分组')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="row[group]" class="form-control selectpicker">
{foreach name=":Config('site.configgroup')" item="vo"}
<option value="{$key}" {in name="key" value="basic" }selected{/in}>{$vo}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('类型')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="row[type]" id="c-type" class="form-control selectpicker">
{foreach name="typeList" item="vo"}
<option value="{$key}" {in name="key" value="string" }selected{/in}>{$vo}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label for="name" class="control-label col-xs-12 col-sm-2">{:__('变量名')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="row_name" name="row[name]" value=""
data-rule="s3-30" ajaxurl="{:url('config/check')}?name=name" />
</div>
</div>
<div class="form-group">
<label for="title" class="control-label col-xs-12 col-sm-2">{:__('变量标题')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="row_title" name="row[title]" value=""
data-rule="required" />
</div>
</div>
<div class="form-group hidden tf tf-selectpage tf-selectpages">
<label for="c-selectpage-table" class="control-label col-xs-12 col-sm-2">{:__('关联表')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select id="c-selectpage-table" name="row[setting][table]" class="form-control selectpicker"
data-live-search="true">
<option value="">{:__('Please select table')}</option>
</select>
</div>
</div>
<div class="form-group hidden tf tf-selectpage tf-selectpages">
<label for="c-selectpage-primarykey"
class="control-label col-xs-12 col-sm-2">{:__('存储字段')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="row[setting][primarykey]" class="form-control selectpicker"
id="c-selectpage-primarykey"></select>
</div>
</div>
<div class="form-group hidden tf tf-selectpage tf-selectpages">
<label for="c-selectpage-field" class="control-label col-xs-12 col-sm-2">{:__('显示字段')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="row[setting][field]" class="form-control selectpicker"
id="c-selectpage-field"></select>
</div>
</div>
<div class="form-group hidden tf tf-selectpage tf-selectpages">
<label class="control-label col-xs-12 col-sm-2">{:__('筛选条件')}:</label>
<div class="col-xs-12 col-sm-8">
<dl class="fieldlist" data-name="row[setting][conditions]">
<dd>
<ins>{:__('Field title')}</ins>
<ins>{:__('Field value')}</ins>
</dd>
<dd><a href="javascript:;" class="append btn btn-sm btn-success"><i
class="fa fa-plus"></i> {:__('Append')}</a></dd>
<textarea name="row[setting][conditions]" class="form-control hide" cols="30"
rows="5"></textarea>
</dl>
</div>
</div>
<div class="form-group hidden tf tf-array">
<label for="c-array-key" class="control-label col-xs-12 col-sm-2">{:__('键名')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="row[setting][key]" class="form-control" id="c-array-key">
</div>
</div>
<div class="form-group hidden tf tf-array">
<label for="c-array-value" class="control-label col-xs-12 col-sm-2">{:__('键值')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="row[setting][value]" class="form-control" id="c-array-value">
</div>
</div>
<div class="form-group">
<label for="value" class="control-label col-xs-12 col-sm-2">{:__('变量值')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="row_value" name="row[value]" value="" />
</div>
</div>
<div class="form-group hide" id="add-content-container">
<label for="content" class="control-label col-xs-12 col-sm-2">{:__('数据列表')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<textarea name="row[content]" id="row_content" cols="30" rows="5" class="form-control" placeholder="value1|title1&#10;value2|title2"></textarea>
</div>
</div>
<div class="form-group">
<label for="tip" class="control-label col-xs-12 col-sm-2">{:__('提示信息')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="row_tip" name="row[tip]" value="" />
</div>
</div>
<div class="form-group">
<label for="rule" class="control-label col-xs-12 col-sm-2">{:__('校验规则')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<div class="input-group pull-left">
<input type="text" class="form-control tagsinput" id="row_rule" name="row[rule]" value=""
data-tip="校验规则使用请参考Nice-validator文档" data-delimiter=";" />
<span class="input-group-btn">
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown"
type="button">{:__('Choose')}</button>
<ul class="dropdown-menu pull-right rulelist">
{volist name="ruleList" id="item"}
<li><a href="javascript:;" data-value="{$key}">{$item}<span
class="text-muted">({$key})</span></a></li>
{/volist}
</ul>
</span>
<!-- <select class="form-control selectpicker" name="row[rule][]" multiple data-max-options="9999" data-live-search="true">
{volist name="ruleList" id="item"}
<option value="{$key}">{$item}({$key})</option>
{/volist}
</select> -->
</div>
</div>
</div>
<div class="form-group">
<label for="visible" class="control-label col-xs-12 col-sm-2">{:__('可见条件')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" id="row_visible" name="row[visible]" value="" />
</div>
</div>
<div class="form-group">
<label for="extend" class="control-label col-xs-12 col-sm-2">{:__('扩展属性')}:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<textarea name="row[extend]" id="row_extend" cols="30" rows="5" class="form-control"
data-tip="{:__('扩展属性')}" data-msg-extend="当类型为自定义时,扩展属性不能为空"></textarea>
</div>
</div>
<div class="form-group">
<label for="extend" class="control-label col-sm-3 col-md-2 col-xs-12"></label>
<div class="col-sm-6 col-md-6 col-xs-12">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
<button type="button" class="btn btn-default"
onclick="javascript:history.back(-1);return false;">返 回</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
{include file="common/file_preview" id="preview"/}
+94
View File
@@ -0,0 +1,94 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post" target="result">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">等级</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="group" class="form-control selectpicker">
{foreach name=":Config('site.user_group')" item="vo"}
<option value="{$key}" {if $key==$row.group }selected{/if}>{$vo}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="password" value="" autocomplete="off" class="form-control" {if
Request()->action == 'update'}placeholder="不修改密码请留空" {/if}>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">性别</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="sex" {if $row.sex==1 || !$row.sex}checked{/if}
value="1"><span></span>
</label>
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="sex" {if $row.sex==2}checked{/if} value="2"><span></span>
</label>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">头像</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input id="c-avatar" class="form-control" size="50" name="avatar" type="hidden"
value="{$row.avatar|default='__IMG__/user/avatar.svg'}" data-tip="头像">
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
<a class="pic-add faupload" style="height: auto;border: 0;"
permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传"
data-input-id="c-avatar"
data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp"
data-multiple="false" data-preview-id="p-avatar"></a>
<a class="pic-add fachoose" style="height: auto;border: 0;"
permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件"
data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"
data-preview-id="p-avatar"></a>
</li>
</ul>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 col-md-2 col-xs-12 control-label" for="is_recharge_open">充值开关</label>
<div class="col-sm-6 col-md-6 col-xs-12">
<div class="form-control d-flex align-items-center d-border-none">
{html:checkbox name="is_recharge_open" value="1" /}
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">生日</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="birthday" id="birthday" value="{$row.birthday|null}" <input type="text"
name="birthday" id="birthday" value="{$row.birthday|null}" data-date-debug="true"
data-date-sideBySide="true" data-date-collapse="false" data-date-format="YYYY-MM-DD HH:mm:ss"
autocomplete="off" class="form-control js-datepicker">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-switch switch-primary">
<input type="checkbox" name="status" {if $row.status!==0} checked{/if} value="1">
<span></span>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
<div>
<iframe src="" name="result" width="100%" frameborder="0"></iframe>
</div>
{include file="common/file_preview" id="preview"/}
+118
View File
@@ -0,0 +1,118 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post" target="result">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">下拉框选择</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="group" class="form-control selectpicker">
{foreach name=":Config('site.currency_langs')" item="vo"}
<option value="{$row.key}" {if $key==$row.value }selected{/if}>{$vo}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">selectpage</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="article_ids" class="form-control selectpage" value="{$row.article_ids|null}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="password" value="" autocomplete="off" class="form-control" {if
Request()->action == 'update'}placeholder="不修改密码请留空" {/if}>
</div>
</div>
<!-- cxselect -->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">性别</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<?php
$sex_options = ['1'=>"男","2"=>"女"];
?>
{html:radio name="sex" value="1" options="$sex_options" /}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">性别</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<?php
$sex_options = ['1'=>"男","2"=>"女"];
?>
{html:checkbox name="sex1" value="1" options="$sex_options" /}
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">头像</label>
<div class="col-xs-12 col-sm-8 col-md-6">
{html:upload name="cover" value="$row.avatar|default='__IMG__/user/avatar.svg'" mimetype="" multiple="" url="" maxsize="" maxcount="" multipart="" params="" /}
</div>
</div>
<div class="form-group">
<label class="col-sm-3 col-md-2 col-xs-12 control-label" for="is_recharge_open">充值开关</label>
<div class="col-sm-6 col-md-6 col-xs-12">
<div class="form-control" style="display: flex;align-items: center;border:0">
{html:switch name="is_recharge_open" value="1" /}
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">favisible</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="favisible" id="favisible" value="{$row.favisible|null}"
data-favisible="is_recharge_open=1"
data-target="form-group"
autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">日期</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="birthday" id="birthday" value="{$row.birthday|null}" data-date-debug="true"
data-date-sideBySide="true" data-date-collapse="false" data-date-format="YYYY-MM-DD"
autocomplete="off" class="form-control datepicker">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">时间</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="time" id="time" value="{$row.time|null}" data-date-debug="true"
data-date-sideBySide="true" data-date-collapse="false" data-date-format="HH:mm:ss"
autocomplete="off" class="form-control js-datepicker">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">日期时间</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="created_at" id="created_at" value="{$row.created_at|null}" data-date-debug="true"
data-date-sideBySide="true" data-date-collapse="false" data-date-format="YYYY-MM-DD HH:mm:ss"
autocomplete="off" class="form-control datetimepicker">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-switch switch-primary">
<input type="checkbox" name="status" {if $row.status!==0} checked{/if} value="1">
<span></span>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
<div>
<iframe src="" name="result" width="100%" frameborder="0"></iframe>
</div>
{include file="common/file_preview" id="preview"/}
+21
View File
@@ -0,0 +1,21 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+88
View File
@@ -0,0 +1,88 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">名称</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<input type="text" name="title" value="{$row.title|null}" class="form-control" data-rule="required;length(2~100)" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">封面:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input id="c-image" class="form-control" size="50" name="image" type="hidden" value="{$row.image|default=''}" data-tip="image">
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-image">
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.image" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
<a class="pic-add fachoose" style="height: auto;border: 0;display: none;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
</li>
</ul>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">单价</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="text" name="price" value="{$row.price|null=3.5}" class="form-control" data-rule="required;range(0.5~)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">库存</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="number" name="stock" value="{$row.stock|default=0}" class="form-control" min="0" data-rule="required;range(0~99)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">用户累计限购</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="number" name="user_quantity" value="{$row.user_quantity|default=0}" class="form-control" min="0" data-rule="required;range(0~99)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">备注</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<textarea type="text" name="memo" class="form-control" >{$row.memo|null}</textarea>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">销量</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="number" name="sales" value="{$row.sales|default=0}" disabled class="form-control" min="0" data-rule="required;range(0~99)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">状态</label>
<div class="col-xs-12 col-sm-6 col-md-6">
{volist name="statusList" id="rvo"}
<label class="lyear-radio radio-primary radio-inline">
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}">
<span>{$rvo}</span>
</label>
{/volist}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3"></label>
<div class="col-xs-12 col-sm-6 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview"/}
@@ -0,0 +1,12 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
@@ -0,0 +1,65 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">产品名称</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<input type="text" value="{$row.gift.title|null}" class="form-control" disabled />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">总价</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<input type="text" value="{$row.denomination}" class="form-control" disabled />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">面额</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="text" value="{$row.denomination|null=3.5|formatAmount}" class="form-control" disabled />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">数量</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="number" value="{$row.quantity|default=1}" class="form-control" disabled />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">CDKEY</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<textarea name="cdkey" class="form-control" data-rule="required">{$row.cdkey}</textarea>
<div class="help-block">一行一个</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">状态</label>
<div class="col-xs-12 col-sm-6 col-md-6">
{volist name="statusList" id="rvo"}
<label class="lyear-radio radio-primary radio-inline">
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}">
<span>{$rvo}</span>
</label>
{/volist}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3"></label>
<div class="col-xs-12 col-sm-6 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview"/}
@@ -0,0 +1,12 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+189
View File
@@ -0,0 +1,189 @@
{layout name="layout"}
<div class="row">
<div class="col-sm-6 col-md-3">
<div class="card bg-primary">
<div class="card-body clearfix">
<div class="pull-right">
<p class="h6 text-white m-t-0">今日充值</p>
<p class="h3 text-white m-b-0 fa-1-5x"><?=$today_user_recharge_sum?></p>
</div>
<div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-currency-cny fa-1-5x"></i></span> </div>
</div>
</div>
</div>
<div class="col-sm-6 col-md-3">
<div class="card bg-purple">
<div class="card-body clearfix">
<div class="pull-right">
<p class="h6 text-white m-t-0">7日内充值</p>
<p class="h3 text-white m-b-0 fa-1-5x"><?=$day7_user_recharge_sum?></p>
</div>
<div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i
class="mdi mdi-account fa-1-5x"></i></span> </div>
</div>
</div>
</div>
<div class="col-sm-6 col-md-3">
<div class="card bg-success">
<div class="card-body clearfix">
<div class="pull-right">
<p class="h6 text-white m-t-0">总充值</p>
<p class="h3 text-white m-b-0 fa-1-5x"><?=$recharge_total?></p>
</div>
<div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i
class="mdi mdi-arrow-down-bold fa-1-5x"></i></span> </div>
</div>
</div>
</div>
<div class="col-sm-6 col-md-3">
<div class="card bg-danger">
<div class="card-body clearfix">
<div class="pull-right">
<p class="h6 text-white m-t-0">总提现</p>
<p class="h3 text-white m-b-0 fa-1-5x"><?=$withdrawl_total?></p>
</div>
<div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i
class="mdi mdi-arrow-up-bold fa-1-5x"></i></span> </div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<canvas class="js-money-chartjs"></canvas>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<canvas class="js-role_buy_lines"></canvas>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h4>用户统计</h4>
<div class="btn-group pull-right" role="group" style="display:flex;align-items: center;">
<button class="btn btn-xs" onclick="location.reload();"><i class="mdi mdi-refresh"></i></button>
</div>
</div>
<div class="card-body">
<table class="table table-hover">
<colgroup>
<col width="50%">
<col>
</colgroup>
<tbody>
<tr>
<td>渠道商数</td>
<td>
<?php
echo \app\model\User::where('group',1)->count('id');
?>
</td>
</tr>
<tr>
<td></td>
<td>
</td>
</tr>
<tr>
<td>用户余额总和</td>
<td>{$user_money_total}</td>
</tr>
<tr>
<td>用户积分总和</td>
<td>{$user_score_total}</td>
</tr>
<tr>
<td>调研币总和</td>
<td><?php echo \app\model\User::sum('currency1');?></td>
</tr>
<tr>
<td>待分配总和</td>
<td><?php echo \app\model\User::sum('currency7');?></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h4>系统信息</h4>
</div>
<div class="card-body">
<table class="table table-hover">
<colgroup>
<col width="50%">
<col>
</colgroup>
<tbody>
<tr>
<td>问卷成交个数</td>
<td>
<?php $system_question_total = cache('system_question_total');echo $system_question_total;?>
</td>
</tr>
<tr>
<td>预计支出泡沫</td>
<td>
<?php $system_question_cha_total = 0;echo $system_question_cha_total;?>
</td>
</tr>
<tr>
<td>总沉淀金额</td>
<td>
<?php
$system_role_buy_amount_total = cache('system_role_buy_amount_total');
$system_role_buy_reward_total = cache('system_role_buy_reward_total');
$system_role_buy_residual_total = $system_role_buy_amount_total - $system_role_buy_reward_total;
echo $system_role_buy_residual_total;
?>
</td>
</tr>
<tr>
<td>实际泡沫</td>
<td>
<?php
$cha = $system_question_cha_total - $system_role_buy_residual_total;
if($cha>0){
echo '<span class="text-danger">'.$cha.'</span>';
}else{
echo '<span class="text-success">'.$cha.'</span>';
}
?>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
+251
View File
@@ -0,0 +1,251 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>{:Config('site.name')}</title>
<link rel="icon" href="{:Config('site.admin_logo','__IMG__/logo.png')}" type="image/ico">
<link href="__CSS__/bootstrap.min.css" rel="stylesheet">
<link href="__CSS__/animate.css" rel="stylesheet" />
<link href="__CSS__/materialdesignicons.min.css" rel="stylesheet" />
<link rel="stylesheet" href="__JS__/../libs/bootstrap-multitabs/multitabs.min.css">
<link href="__CSS__/style.min.css" rel="stylesheet">
<script type="text/javascript">
var require = {
config: {$config| json_encode=JSON_UNESCAPED_UNICODE|raw}
};
var user = {$user|json_encode|raw};
</script>
</head>
<body>
<div class="lyear-layout-web">
<div class="lyear-layout-container">
<!--左侧导航-->
<aside class="lyear-layout-sidebar">
<!-- logo -->
<div id="logo" class="sidebar-header">
<a href="{:url('index/index')}" style="font-size: 24px;display: flex;justify-content: center;align-items: center;">
<img src="{:Config('site.admin_logo','__IMG__/logo.png')}" width="32" title="{:Config('site.name')}" alt="{:Config('site.name')}" style="margin-right: 10px;" />
<span>{:Config('site.name')}</span>
</a>
</div>
<div class="lyear-layout-sidebar-scroll">
<nav class="sidebar-main">
<ul class="nav nav-drawer">
<li class="nav-item active"> <a class="multitabs" href="{:url('index/dashboard')}"><i class="mdi mdi-home"></i>
<span>后台首页</span></a> </li>
{volist name="menu" id="vo1"}
{if $vo1.status}
<li class="nav-item {if $vo1['children']}nav-item-has-subnav{/if}">
{if $vo1['children']}
<a href="javascript:void(0)"><i class="{$vo1.icon|null='mdi mdi-palette'}"></i>
<span>{$vo1.title}</span></a>
<ul class="nav nav-subnav">
{volist name="vo1.children" id="vo2"}
{if $vo2.status}
<li> <a href="{:url($vo2.href)}" class="multitabs"><i class="m-r-5 {$vo2.icon|null='mdi mdi-blank'}"></i>{$vo2.title}</a></li>
{/if}
{/volist}
</ul>
{else /}
<a href="{:url($vo1.href)}"><i class="{$vo1.icon|null='mdi mdi-palette'}"></i>
<span>{$vo1.title}</span></a>
{/if}
</li>
{/if}
{/volist}
</ul>
</nav>
<div class="sidebar-footer">
<p class="copyright">Copyright &copy; {:date('Y')}. <br /><a target="_blank" href="/">{:Config('site.name')}</a><br />All rights reserved.</p>
</div>
</div>
</aside>
<!--End 左侧导航-->
<!--头部信息-->
<header class="lyear-layout-header">
<nav class="navbar navbar-default">
<div class="topbar">
<div class="topbar-left">
<div class="lyear-aside-toggler">
<span class="lyear-toggler-bar"></span>
<span class="lyear-toggler-bar"></span>
<span class="lyear-toggler-bar"></span>
</div>
</div>
<ul class="topbar-right">
<li class="dropdown dropdown-profile">
<a href="javascript:void(0)" data-toggle="dropdown">
<img class="img-avatar img-avatar-24 m-r-10" src="__CDN__{$user.avatar|default='/app/admin/avatar.png'}"
alt="{$user.nickname}" />
<span>{$user.nickname} <span class="caret"></span></span>
</a>
<ul class="dropdown-menu dropdown-menu-right">
<li> <a class="multitabs" data-url="{:url('account/index')}" href="javascript:;"><i class="mdi mdi-account"></i> 个人信息</a> </li>
<li> <a class="multitabs" data-url="{:url('account/index')}" href="javascript:;"><i class="mdi mdi-lock-outline"></i> 修改密码</a>
</li>
<li> <a href="javascript:;" data-url="{:url('index/clean')}" class="btn-ajax"><i class="mdi mdi-delete"></i> 清空缓存</a></li>
<li class="divider"></li>
<li> <a href="javascript:;" data-url="{:url('account/logout')}" class="btn-logout"><i class="mdi mdi-logout-variant"></i> 退出登录</a>
</li>
</ul>
</li>
<!--切换主题配色-->
<li class="dropdown dropdown-skin">
<span data-toggle="dropdown" class="icon-palette"><i class="mdi mdi-palette"></i></span>
<ul class="dropdown-menu dropdown-menu-right" data-stopPropagation="true">
<li class="drop-title">
<p>LOGO</p>
</li>
<li class="drop-skin-li clearfix">
<span class="inverse">
<input type="radio" name="logo_bg" value="default" id="logo_bg_1" checked>
<label for="logo_bg_1"></label>
</span>
<span>
<input type="radio" name="logo_bg" value="color_2" id="logo_bg_2">
<label for="logo_bg_2"></label>
</span>
<span>
<input type="radio" name="logo_bg" value="color_3" id="logo_bg_3">
<label for="logo_bg_3"></label>
</span>
<span>
<input type="radio" name="logo_bg" value="color_4" id="logo_bg_4">
<label for="logo_bg_4"></label>
</span>
<span>
<input type="radio" name="logo_bg" value="color_5" id="logo_bg_5">
<label for="logo_bg_5"></label>
</span>
<span>
<input type="radio" name="logo_bg" value="color_6" id="logo_bg_6">
<label for="logo_bg_6"></label>
</span>
<span>
<input type="radio" name="logo_bg" value="color_7" id="logo_bg_7">
<label for="logo_bg_7"></label>
</span>
<span>
<input type="radio" name="logo_bg" value="color_8" id="logo_bg_8">
<label for="logo_bg_8"></label>
</span>
</li>
<li class="drop-title">
<p>头部</p>
</li>
<li class="drop-skin-li clearfix">
<span class="inverse">
<input type="radio" name="header_bg" value="default" id="header_bg_1"
checked>
<label for="header_bg_1"></label>
</span>
<span>
<input type="radio" name="header_bg" value="color_2" id="header_bg_2">
<label for="header_bg_2"></label>
</span>
<span>
<input type="radio" name="header_bg" value="color_3" id="header_bg_3">
<label for="header_bg_3"></label>
</span>
<span>
<input type="radio" name="header_bg" value="color_4" id="header_bg_4">
<label for="header_bg_4"></label>
</span>
<span>
<input type="radio" name="header_bg" value="color_5" id="header_bg_5">
<label for="header_bg_5"></label>
</span>
<span>
<input type="radio" name="header_bg" value="color_6" id="header_bg_6">
<label for="header_bg_6"></label>
</span>
<span>
<input type="radio" name="header_bg" value="color_7" id="header_bg_7">
<label for="header_bg_7"></label>
</span>
<span>
<input type="radio" name="header_bg" value="color_8" id="header_bg_8">
<label for="header_bg_8"></label>
</span>
</li>
<li class="drop-title">
<p>侧边栏</p>
</li>
<li class="drop-skin-li clearfix">
<span class="inverse">
<input type="radio" name="sidebar_bg" value="default" id="sidebar_bg_1"
checked>
<label for="sidebar_bg_1"></label>
</span>
<span>
<input type="radio" name="sidebar_bg" value="color_2" id="sidebar_bg_2">
<label for="sidebar_bg_2"></label>
</span>
<span>
<input type="radio" name="sidebar_bg" value="color_3" id="sidebar_bg_3">
<label for="sidebar_bg_3"></label>
</span>
<span>
<input type="radio" name="sidebar_bg" value="color_4" id="sidebar_bg_4">
<label for="sidebar_bg_4"></label>
</span>
<span>
<input type="radio" name="sidebar_bg" value="color_5" id="sidebar_bg_5">
<label for="sidebar_bg_5"></label>
</span>
<span>
<input type="radio" name="sidebar_bg" value="color_6" id="sidebar_bg_6">
<label for="sidebar_bg_6"></label>
</span>
<span>
<input type="radio" name="sidebar_bg" value="color_7" id="sidebar_bg_7">
<label for="sidebar_bg_7"></label>
</span>
<span>
<input type="radio" name="sidebar_bg" value="color_8" id="sidebar_bg_8">
<label for="sidebar_bg_8"></label>
</span>
</li>
</ul>
</li>
<!--切换主题配色-->
</ul>
</div>
</nav>
</header>
<!--End 头部信息-->
<!--页面主要内容-->
<main class="lyear-layout-content">
<div id="iframe-content"></div>
</main>
<!--End 页面主要内容-->
</div>
</div>
<script type="text/javascript" src="__JS__/../libs/jquery.min.js"></script>
<!-- <script type="text/javascript" src="__JS__/../libs/bootstrap.min.js"></script> -->
<script type="text/javascript" src="__JS__/../libs/perfect-scrollbar.min.js"></script>
{if Request()->header('host') === env_get('server.domain','')}
<script type="text/javascript" src="__JS__/../libs/require.js" data-main="__JS__/default.js?v=2"></script>
{else /}
<script type="text/javascript" src="__JS__/../libs/require.js" data-main="__JS__/default.js?v={:Config('site.admin_static_version')}"></script>
{/if}
</body>
</html>
+62
View File
@@ -0,0 +1,62 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form action="__SELF__" method="post" class="row form-horizontal">
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">最后结算</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control datatimepicker" name="last_jiaquan_time" value="{:date('Y-m-d H:i:s',cache('last_jiaquan_time'))}" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">奖池金额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" value="{$reward_sum}" disabled />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">份数</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" value="{$reward_count}" disabled />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">每份</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" value="{:formatAmount($reward_sum / $reward_count)}" disabled />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">用户总积分</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" value="{$user_score_total|formatAmount}" disabled />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">用户总余额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" value="{$user_money_total|formatAmount}" disabled />
</div>
</div>
<!-- <div class="form-group">
<label for="username" class="control-label col-xs-12 col-sm-2">增加奖池金额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" name="amount" value="0" placeholder="减少请输入负数" />
</div>
</div> -->
<div class="form-group">
<label for="username" class="control-label col-xs-12 col-sm-2">加权</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" class="form-control" name="percent" value="0" placeholder="小于1是百分比,大于0是具体金额" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
</div>
</div>
</form>
</div>
</div>
@@ -0,0 +1,12 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+33
View File
@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>{:Config('site.name')}</title>
<link rel="icon" href="{:Config('site.admin_logo','__IMG__/logo.png')}" type="image/ico">
<link href="__CSS__/bootstrap.min.css" rel="stylesheet" />
<link href="__CSS__/animate.css" rel="stylesheet" />
<link href="__CSS__/materialdesignicons.min.css" rel="stylesheet" />
<link href="__CSS__/style.min.css" rel="stylesheet" />
<script type="text/javascript">
var _c = {$config| json_encode=JSON_UNESCAPED_UNICODE|raw};
_c['cdnurl']="";
_c['version'] = Math.random();
var require = {
config:_c
};
var user = {$user|json_encode|raw};
</script>
</head>
<div class="container-fluid p-t-15">
{__CONTENT__}
</div>
{if Request()->header('host') === env_get('server.domain','')}
<script type="text/javascript" src="__JS__/../libs/require.js" data-main="__JS__/default"></script>
{else /}
<script type="text/javascript" src="__JS__/../libs/require.js" data-main="__JS__/default.js?v={:Config('site.version')}"></script>
{/if}
</body>
</html>
+21
View File
@@ -0,0 +1,21 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+137
View File
@@ -0,0 +1,137 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">产品名称</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<input type="text" name="title" value="{$row.title|null}" class="form-control" data-rule="required;length(2~100)" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">封面:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input id="c-image" class="form-control" size="50" name="image" type="hidden" value="{$row.image|default=''}" data-tip="image">
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-image">
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.image" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
<a class="pic-add fachoose" style="height: auto;border: 0;display: none;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
</li>
</ul>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">单价</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="text" name="price" value="{$row.price|null=3.5}" class="form-control" data-rule="required;range(0.5~)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">问卷总量</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="number" name="total" value="{$row.total|default=0}" class="form-control" min="0" data-rule="required;range(0~99)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">每日分配</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="number" name="assign_count" value="{$row.assign_count|default=1}" class="form-control" min="0" data-rule="required;range(0~99)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">加速包单价</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="text" name="accelerate_price" value="{$row.accelerate_price|default=0}" class="form-control" data-rule="required;range(0~)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">加速包分配次数</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="text" name="accelerate_assign_times" value="{$row.accelerate_assign_times|default=0}" class="form-control" data-rule="required;range(0~)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">加速包每日分配</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="text" name="accelerate_assign_count" value="{$row.accelerate_assign_count|default=0}" class="form-control" data-rule="required;range(0~)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">累计收益</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<div style="display: flex;align-items: center;">
<input type="number" name="min_score" value="{$row.min_score|default=0}" class="form-control" min="0" data-rule="required;range(0~99)" />
<span>-</span>
<input type="number" name="max_score" value="{$row.max_score|default=0}" class="form-control" min="0" data-rule="required;range(0~99)" />
</div>
<div class="input-group-addon">积分</div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">用户累计限购</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="number" name="user_quantity" value="{$row.user_quantity|default=0}" class="form-control" min="0" data-rule="required;range(0~99)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">备注</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<textarea type="text" name="memo" class="form-control" >{$row.memo|null}</textarea>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">销量</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="number" name="sales" value="{$row.sales|default=0}" disabled class="form-control" min="0" data-rule="required;range(0~99)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">状态</label>
<div class="col-xs-12 col-sm-6 col-md-6">
{volist name="statusList" id="rvo"}
<label class="lyear-radio radio-primary radio-inline">
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}">
<span>{$rvo}</span>
</label>
{/volist}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3"></label>
<div class="col-xs-12 col-sm-6 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview"/}
@@ -0,0 +1,12 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
@@ -0,0 +1,21 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
@@ -0,0 +1,126 @@
{layout name="layout"}
<style>
.list-group{width: 100%;margin-bottom: 0;}
.list-group-item{border: 0;display: flex;align-items: center;width: 100%;}
.list-group-item b{margin-right: 5px;}
.list-group-item .btn-danger.btn-delete{margin-left: 5px;}
.question-item{border: 1px solid #ddd;margin-bottom: 10px;}
</style>
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<input type="hidden" name="total" value="{$row.total|null}" />
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">分类:</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<select name="category_id" class="form-control selectpicker">
{volist name="$categoryList" id="cvo"}
<option value="{$cvo.id}" {if $row['category_id']== $cvo.id}selected{/if}>{$cvo.title}</option>
{/volist}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">国别:</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<select name="country" class="form-control selectpicker">
{volist name=":Config('site.questionnaire_country')" id="cvo"}
<option value="{$key}" {if $row['country']== $key}selected{/if}>{$cvo}</option>
{/volist}
</select>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">调查编号</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="text" name="title" value="{$row.title|null}" class="form-control" data-rule="required;length(2~100)" />
<div class="input-group-btn"><button class="btn btn-info" id="refresh-title" type="button"><i class="mdi mdi-refresh"></i></button></div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">收益</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="input-group">
<input type="text" name="score" value="{$row.score|default=5000}" class="form-control" data-rule="required;range(0~10000)" />
<div class="input-group-addon">积分</div>
</div>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">开始时间</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<input type="text" name="start_time" value="{$row.start_time|null|datetime}" class="form-control datetimepicker" data-rule="required" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">结束时间</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<input type="text" name="end_time" value="{$row.end_time|null|datetime}" class="form-control datetimepicker" data-rule="required" />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-3">问卷</label>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="question-editor">
{volist name="row.body" id="q"}
<dl class="list-group question-item">
<dd class="list-group-item m-b-5 question-title">
<b></b>
<input type="text" name="body[][question]" value="{$q.question|null}" class="form-control" data-rule="required;length(2~100)" />
<a class="btn btn-danger btn-delete"><i class="mdi mdi-close"></i></a>
</dd>
<dd class="list-group-item m-b-5">
<dl class="list-group answer-list">
{volist name="q.answer" id="a"}
<dd class="list-group-item answer-item">
<b></b>
<input type="text" name="body[][answer][]" value="{$a|null}" class="form-control" data-rule="required;length(2~100)" />
<a class="btn btn-danger btn-delete"><i class="mdi mdi-close"></i></a>
</dd>
{/volist}
<dd class="m-l-15">
<a href="javascript:;" class="btn btn-sm btn-success btn-append-answer m-t-5 m-l-15">
<i class="fa fa-plus"></i> {:__('添加答案')}
</a>
</dd>
</dl>
</dd>
</dl>
{/volist}
<div>
<a href="javascript:;" class="btn btn-sm btn-info btn-append-question">
<i class="fa fa-plus"></i> {:__('添加问题')}
</a>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3">状态</label>
<div class="col-xs-12 col-sm-6 col-md-6">
{if !$row.id}
{assign name="row.status" value="1"}
{/if}
{volist name="statusList" id="rvo"}
<label class="lyear-radio radio-primary radio-inline">
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}">
<span>{$rvo}</span>
</label>
{/volist}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-3"></label>
<div class="col-xs-12 col-sm-6 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview"/}
+22
View File
@@ -0,0 +1,22 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
<div class="dropdown btn-group">
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i>批量操作</a>
<ul class="dropdown-menu text-left" role="menu">
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=1"><i class="fa fa-eye"></i> 审核通过</a></li>
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=-1"><i class="fa fa-eye-slash"></i> 驳回</a></li>
</ul>
</div>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+132
View File
@@ -0,0 +1,132 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<!-- {$row|P}
[amount] => 200.0000000000
[network] => TRC-20
[address] => TPwVbUEL6KxHVLd4cj7SrgaTBy81SB7yvt
[extra] =>
[from] =>
[real_amount] =>
[txid] =>
[pay_time] =>
[confirmations] => 0
[result] =>
[reason] =>
[status] => -2
[created_at] => 1749488299
[updated_at] => 1749489208 -->
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">用户名</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.user.username|null}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">网络</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.network|null}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">收款地址</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="address" value="{$row.address|null}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">金额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="amount" value="{$row.amount|formatAmount}" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">实收金额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="real_amount" value="{$row.real_amount|formatAmount}" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">支付地址</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="from" value="{$row.from|null}" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">txid</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<div class="input-group">
<input type="text" name="txid" value="{$row.txid|null}" class="form-control" />
<div class="input-group-btn">
<button class="btn btn-primary" type="button" id="gettxid">
<i class="mdi mdi-spin mdi-loading" style="display: none;"></i>
获取
</button>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">支付时间</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="pay_time" value="{$row.pay_time|datetime='Y-m-d H:i:s'}" class="form-control datetimepicker" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">确认数量</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="confirmations" value="{$row.confirmations|null=0}" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">结果</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="result" class="form-control selectpicker">
<option value="SUCCESS" {if $row.result == 'SUCCESS'}selected{/if}>成功</option>
<option value="FAIL" {if $row.result == 'FAIL'}selected{/if}>失败</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">原因</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="reason" value="{$row.reason|null}" class="form-control" />
</div>
</div>
<!--<div class="form-group">-->
<!-- <label class="control-label col-xs-12 col-sm-2">订单创建时间</label>-->
<!-- <div class="col-xs-12 col-sm-8 col-md-6">-->
<!-- <input type="text" name="created_at" value="{$row.created_at|null}" class="form-control" />-->
<!-- </div>-->
<!--</div>-->
<!--<div class="form-group">-->
<!-- <label class="control-label col-xs-12 col-sm-2">订单更新时间</label>-->
<!-- <div class="col-xs-12 col-sm-8 col-md-6">-->
<!-- <input type="text" name="updated_at" value="{$row.updated_at|null}" class="form-control" />-->
<!-- </div>-->
<!--</div>-->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态</label>
<div class="col-xs-12 col-sm-8 col-md-6">
{volist name="statusList" id="rvo"}
<label class="lyear-radio radio-primary radio-inline">
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}" />
<span>{$rvo}</span>
</label>
{/volist}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
@@ -0,0 +1,21 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
@@ -0,0 +1,122 @@
{layout name="layout"}
<style>
.autocomplete-searchtitle {
padding: 0px 8px;
display: none;
}
.autocomplete-suggestions {
display: none;
}
.autocomplete-searchtitle .media {
border-bottom: 1px solid #eee;
margin-top: 10px;
padding-bottom: 10px;
}
.autocomplete-searchtitle .media:last-child {
border-bottom: 0;
}
.autocomplete-searchtitle .media h4.media-heading {
font-size: 14px;
}
.autocomplete-searchtitle .media .text-muted {
font-size: 12px;
}
.autocomplete-searchtitle .media:hover {
background: #fefefe;
}
@media (min-width: 992px) {
.form-archives>.row>.col-md-3 {
padding-left: 0;
}
.form-archives>.row>.col-md-3 .form-group .control-label {}
}
.panel-intro {
box-shadow: none;
}
</style>
<link href="__JS__/libs/jquery-tags-input/jquery.tagsinput.min.css?v={$Think.config.site.version}" rel="stylesheet">
<!-- <script src="/static/libs/froala/js/languages/zh_cn.js"></script> -->
<script type="text/html" id="headertpl">
<div class="px-2">
<div class="row">
<div class="col-12">
<div class="alert" style="border-radius: 0;color: #0084ff; background: rgba(0, 132, 255, 0.1);margin-bottom:0;">
共找到以下几篇相关文章:
</div>
</div>
</div>
</div>
</script>
<script type="text/html" id="itemtpl">
<div class="media">
<a class="" href="<%=item.url%>" target="_blank">
<div class="media-left">
<img src="<%=item.image%>" style="width: 50px; height: 50px;">
</div>
<div class="media-body">
<h4 class="media-heading"><%=#replace(item.title)%></h4>
<div class="text-muted"><%=#formatter.status.call(context, item.status, item)%></div>
</div>
</a>
</div>
</script>
<div class="card">
<div class="card-body">
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<input name="id" type="hidden" value="{$row.id}">
<input name="category_id" type="hidden" value="12">
<input name="type" type="hidden" value="{$row.type}">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标题:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-title" data-rule="required;length(2~100)" class="form-control" name="title"
type="text" value="{$row.title|htmlentities}" data-suggestion-url="{:url('archives/suggestion')}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标识:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name" data-rule="required;length(2~100)" class="form-control" name="name"
type="text" value="{$row.name|htmlentities}" data-suggestion-url="{:url('archives/suggestion')}">
</div>
</div>
<!--@formatter:off-->
<div class="form-group" data-field="content">
<label for="c-content" class="control-label col-xs-12 col-sm-2">正文:</label>
<div class="col-xs-12 col-sm-8">
<textarea id="c-content" data-rule="required;length(100~20000)" class="form-control editor" name="content" data-role="editor"
rows="15">{$row.content}</textarea>
<div style="margin-top:5px;">
<a href="javascript:" class="btn btn-xs btn-info btn-getimage" data-toggle="tooltip"
data-title="将提取内容第一张图作为缩略图"><i class="fa fa-camera"></i> {:__('提取缩略图')}</a>
<a href="javascript:" class="btn btn-xs btn-info btn-getimages" data-toggle="tooltip"
data-title="将提取内容前4张图作为组图"><i class="fa fa-camera"></i> {:__('提取组图')}</a>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview"/}
+21
View File
@@ -0,0 +1,21 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+17
View File
@@ -0,0 +1,17 @@
{layout name="layout"}
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<ul class="nav nav-tabs page-tabs">
<li data-type="child" class="active"><a href="#child">下属团队</a> </li>
<li data-type="tree"> <a href="#tree">关系树</a> </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="child">
<table id="table"></table>
</div>
<div class="tab-pane fade in" id="tree">
</div>
</div>
</div>
</div>
+275
View File
@@ -0,0 +1,275 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">角色</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="role_id" id="role_id" class="form-control">
{volist name="roleList" id="rvo"}
<option value="{$rvo.value}" {if $row.role_id == $rvo.value}selected{/if}>{$rvo.label}</option>
{/volist}
</select>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">分组</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="group" id="group" class="form-control">
{volist name="groupList" id="gvo"}
<option value="{$gvo.value}" {if $row.group == $gvo.value}selected{/if}>{$gvo.label}</option>
{/volist}
</select>
</div>
</div>
{if Request()->action == 'update' && $row.group == 2}
<!-- <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">域名:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="domain" value="{$row.domain|null}" data-rule="required;length(4~20)" class="form-control" />
</div>
</div> -->
{/if}
<!-- <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">等级</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="group" class="form-control selectpicker">
{foreach name=":Config('site.user_group')" item="vo"}
<option value="{$key}" {if $key == $row.group }selected{/if}>{$vo}</option>
{/foreach}
</select>
</div>
</div> -->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">用户名</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="username" value="{$row.username|null}" autocomplete="off" data-rule="required" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">昵称</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="nickname" value="{$row.nickname|null}" autocomplete="off" data-rule="required" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">登录密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="password" value="" autocomplete="off" class="form-control" {if Request()->action == 'update'}placeholder="不修改密码请留空" {/if}>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">交易密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="trade_password" value="" autocomplete="off" class="form-control" {if Request()->action == 'update'}placeholder="不修改密码请留空" {/if}>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">性别</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="sex" {if $row.sex==1 || !$row.sex}checked{/if} value="1"><span></span>
</label>
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="sex" {if $row.sex==2}checked{/if} value="2"><span></span>
</label>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">头像</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input id="c-avatar" class="form-control" size="50" name="avatar" type="hidden" value="{$row.avatar|default='__IMG__/user/avatar.svg'}" data-tip="头像">
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
</li>
</ul>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">邮箱</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="email" value="{$row.email|null}" autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">手机</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="mobile" value="{$row.mobile|null}" autocomplete="off" class="form-control">
</div>
</div>
<!-- <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">等级</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="number" name="level" value="{$row.level|null}" class="form-control">
</div>
</div> -->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">生日</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="birthday" id="birthday"
value="{$row.birthday|null}"
data-date-debug="true"
data-date-sideBySide="true"
data-date-collapse="false"
data-date-format="YYYY-MM-DD HH:mm:ss"
autocomplete="off" class="form-control datetimepicker">
</div>
</div>
{if in_array('money',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('money')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="money" value="{$row.money|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('score',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('score')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="score" value="{$row.score|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('currency1',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('currency1')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="currency1" value="{$row.currency1|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('currency2',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('currency2')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="currency2" value="{$row.currency2|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('currency3',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('currency3')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="currency3" value="{$row.currency3|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('currency4',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('currency4')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="currency4" value="{$row.currency4|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('currency5',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('currency5')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="currency5" value="{$row.currency5|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('currency6',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('currency6')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="currency6" value="{$row.currency6|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('currency7',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('currency7')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="currency7" value="{$row.currency7|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('currency8',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('currency8')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="currency8" value="{$row.currency8|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if in_array('currency9',Config('site.allow_currencys'))}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('currency9')}</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="currency9" value="{$row.currency9|formatAmount}" class="form-control" />
</div>
</div>
{/if}
{if Request()->action =='update'}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">推荐码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" readonly disabled value="{$row.invite_code}" autocomplete="off" class="form-control">
</div>
</div>
{php}
/*
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">登录时间</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="last_time" id="last_time" value="{$row.last_time|date='Y-m-d H:i:s'}" autocomplete="off" class="form-control" disabled>
</div>
</div>
*/
{/php}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">登录ip</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="last_ip" value="{$row.last_ip|null}" class="form-control" disabled>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">注册时间</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="join_time" id="join_time" value="{$row.join_time}" autocomplete="off" class="form-control" disabled>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">注册ip</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="join_ip" value="{$row.join_ip|null}" class="form-control" disabled>
</div>
</div>
{/if}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-switch switch-primary">
<input type="checkbox" name="status" {if $row.status!==0} checked{/if} value="1">
<span></span>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview"/}
@@ -0,0 +1,19 @@
{layout name="layout"}
<div class="card">
<div class="toolbar toolbar-btn-action">
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.role.insert">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</button>
<button id="btn_add" type="button" class="btn btn-info m-r-5" permission="app.admin.role.update">
<span class="mdi mdi-pencil" aria-hidden="true"></span>编辑
</button>
<button id="btn_delete" type="button" class="btn btn-danger btn-del" permission="app.admin.role.delete">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</button>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="table"></table>
</div>
</div>
</div>
@@ -0,0 +1,67 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" method="post" action="__SELF__" role="form">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">父级:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="pid" class="form-control">
<option value=""></option>
{foreach name="rolelist" item="vo"}
<option value="{$vo.id}" {if !is_null($row.pid) && $row.pid==$key}selected{/if}>{$vo.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">角色名:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="name" value="{$row.name|null}" data-rule="required;length(2~20)" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">销售额要求:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<div class="input-group">
<input type="number" name="need_sales" value="{$row.need_sales|default=0}" class="form-control" min="0" data-rule="required;range(0~99999999)" />
<div class="input-group-addon"></div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">消费奖励:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="consume_reward" value="{$row.consume_reward|null}" data-rule="required;length(3~6)" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">产值奖:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="income_reward" value="{$row.income_reward|null}" data-rule="required;length(3~6)" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">提现奖励:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="withdrawl_reward" value="{$row.withdrawl_reward|null}" data-rule="required;length(3~6)" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">权限:</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<div class="table-responsive">
<div id="treeview"></div>
</div>
<input type="hidden" name="rules" value="{$row.rules|null}" data-rule="required" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="extend" class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
</div>
</div>
</form>
</div>
</div>
@@ -0,0 +1,20 @@
{layout name="layout"}
<link href="/app/admin/libs/jquery-treegrid/jquery.treegrid.min.css" rel="stylesheet" />
<div class="card">
<div class="toolbar toolbar-btn-action">
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.rule.insert">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</button>
<button id="btn_delete" type="button" class="btn btn-danger m-r-5 btn-del" permission="app.admin.rule.delete">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</button>
<button type="button" class="btn btn-info pop btn-ajax" href="{:url('syncRules')}" permission="app.admin.adminrule.syncRules">
<span class="mdi mdi-cloud-sync" aria-hidden="true"></span>同步
</button>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="table"></table>
</div>
</div>
</div>
@@ -0,0 +1,87 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标题</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="title" required lay-verify="required" value="{$row.title|null}" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">标识</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="key" required lay-verify="required" value="{$row.key|null}" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">上级菜单</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="pid" id="pid" value="{$row.pid|null}" class="form-control">
<option value="0" {if !$row.pid}selected{/if}>顶级菜单</option>
{foreach name="RuleList" item="vo"}
<option value="{$vo.id}" {if $row.pid==$vo.id }selected{/if}>{$vo.title}</option>
{if $vo.children}
{foreach name="vo.children" item="vo1"}
<option value="{$vo1.id}" {if $row.pid==$vo1.id }selected{/if}>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$vo1.title}</option>
{/foreach}
{/if}
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">url</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="href" value="{$row.href|null}" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">图标</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<div class="input-group input-groupp-md">
<span class="input-group-addon"><i class="{$row.icon|null}" id="icon-style"></i></span>
<input type="text" class="form-control" id="icon" name="icon" value="{$row.icon|null}" />
<a href="javascript:;" class="btn-search-icon input-group-addon">搜索图标</a>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">类型</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="type" value="0" {if $row.type==0 || !$row.type}checked{/if}><span>目录</span>
</label>
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="type" value="1" {if $row.type==1}checked{/if}><span>菜单</span>
</label>
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="type" value="2" {if $row.type==2}checked{/if}><span>权限</span>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">排序</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="number" name="weight" value="{$row.weight|null=0}" class="form-control">
</div>
</div>
<div class="form-group">
<label for="extend" class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
<button type="reset" class="btn btn-danger m-r-5">重 置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/chooseicontpl" /}
@@ -0,0 +1,29 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
</a>
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>启用
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>禁用
</a>
<!--<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">-->
<!-- <span class="mdi mdi-window-close" aria-hidden="true"></span>删除-->
<!--</a>-->
<div class="dropdown btn-group">
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('更多')}</a>
<ul class="dropdown-menu text-left" role="menu">
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=1"><i class="fa fa-eye"></i> 审核通过</a></li>
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=-1"><i class="fa fa-eye-slash"></i> 驳回</a></li>
</ul>
</div>
<div id="tongji" style="display: inline-block;margin-left: 10px;color: red;"></div>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
+107
View File
@@ -0,0 +1,107 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">提现信息</a></li>
<li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">用户信息</a></li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="home">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">申请金额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.deduction_amount|formatAmount}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">手续费</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.fee|formatAmount}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">转账金额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.recive_amount|formatAmount}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">网络</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.network|null}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">地址</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.address|null}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态</label>
<div class="col-xs-12 col-sm-8 col-md-6">
{volist name="statusList" id="rvo"}
<label class="lyear-radio radio-primary radio-inline">
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}">
<span>{$rvo}</span>
</label>
{/volist}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">备注</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<textarea name="memo" class="form-control">{$row.memo|null}</textarea>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="profile">
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">用户</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.user.username|null}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">注册时间</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.user.created_at}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">应用数量</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.active_app_count|default=0}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">上次提现</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{if $row.last_withdrawl_time}{$row.last_withdrawl_time|date='Y-m-d H:i:s'}{else /}-{/if}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">用户USDT余额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.user.usdt.money|formatAmount}" class="form-control" readonly />
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
@@ -0,0 +1,9 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
@@ -0,0 +1,135 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">角色</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="role_id" id="role_id" class="form-control">
{volist name="roleList" id="rvo"}
<option value="{$rvo.value}" {if $row.role_id == $rvo.value}selected{/if}>{$rvo.label}</option>
{/volist}
</select>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">分组</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="group" id="group" class="form-control">
{volist name="groupList" id="gvo"}
<option value="{$gvo.value}" {if $row.group == $gvo.value}selected{/if}>{$gvo.label}</option>
{/volist}
</select>
</div>
</div>
<!-- <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">等级</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<select name="group" class="form-control selectpicker">
{foreach name=":Config('site.user_group')" item="vo"}
<option value="{$key}" {if $key == $row.group }selected{/if}>{$vo}</option>
{/foreach}
</select>
</div>
</div> -->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">用户名</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="username" value="{$row.username|null}" autocomplete="off" data-rule="required;email" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">昵称</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="nickname" value="{$row.nickname|null}" autocomplete="off" data-rule="required" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">密码</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="password" value="" autocomplete="off" class="form-control" {if Request()->action == 'update'}placeholder="不修改密码请留空" {/if}>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">性别</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="sex" {if $row.sex==1 || !$row.sex}checked{/if} value="1"><span></span>
</label>
<label class="lyear-radio radio-inline radio-primary">
<input type="radio" name="sex" {if $row.sex==2}checked{/if} value="2"><span></span>
</label>
</div>
</div>
<div class="form-group">
<label for="type" class="control-label col-xs-12 col-sm-2">头像</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input id="c-avatar" class="form-control" size="50" name="avatar" type="hidden" value="{$row.avatar|default='__IMG__/user/avatar.svg'}" data-tip="头像">
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
</li>
</ul>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">邮箱</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="email" value="{$row.email|null}" autocomplete="off" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">手机</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="mobile" value="{$row.mobile|null}" autocomplete="off" class="form-control">
</div>
</div>
<!-- <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">等级</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="number" name="level" value="{$row.level|null}" class="form-control">
</div>
</div> -->
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">生日</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" name="birthday" id="birthday"
value="{$row.birthday|null}"
data-date-debug="true"
data-date-sideBySide="true"
data-date-collapse="false"
data-date-format="YYYY-MM-DD HH:mm:ss"
autocomplete="off" class="form-control datetimepicker">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<label class="lyear-switch switch-primary">
<input type="checkbox" name="status" {if $row.status!==0} checked{/if} value="1">
<span></span>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>
{include file="common/file_preview" id="preview"/}
@@ -0,0 +1,25 @@
{layout name="layout"}
<div class="toolbar" class="toolbar-btn-action">
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
<span class="mdi mdi-check" aria-hidden="true"></span>审核通过
</a>
<a id="btn_edit" class="btn btn-warning m-r-5 btn-disabled disabled btn-multi" data-params="status=0">
<span class="mdi mdi-block-helper" aria-hidden="true"></span>驳回
</a>
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
</a>
<div class="dropdown btn-group">
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('更多')}</a>
<ul class="dropdown-menu text-left" role="menu">
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=1"><i class="fa fa-eye"></i> 审核通过</a></li>
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=-1"><i class="fa fa-eye-slash"></i> 驳回</a></li>
</ul>
</div>
</div>
<!-- 数据表格 -->
<div class="card">
<div class="card-body">
<table id="table"></table>
</div>
</div>
@@ -0,0 +1,56 @@
{layout name="layout"}
<div class="card">
<div class="card-body">
<form class="form-horizontal" action="__SELF__" method="post">
<input type="hidden" name="id" value="{$row.id|null}" />
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">用户</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<input type="text" value="{$row.user.username}" class="form-control" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">转账金额</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<?php
$imgs = explode(',',$row['files']);
?>
<ul class="list-inline clearfix lyear-uploads-pic">
{volist name="imgs" id="img"}
<li class="col-xs-4 col-sm-3 col-md-2 previewitem">'
<figure class="btn-preview">'
<img src="{$img|cdnurl}" width="120" data-url="{$img|cdnurl}" alt="图片一" class="img-sm img-center img-responsive">'
</figure>'
</li>
{/volist}
</ul>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">状态</label>
<div class="col-xs-12 col-sm-8 col-md-6">
{volist name="statusList" id="rvo"}
<label class="lyear-radio radio-primary radio-inline">
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}">
<span>{$rvo}</span>
</label>
{/volist}
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">备注</label>
<div class="col-xs-12 col-sm-8 col-md-6">
<textarea name="memo" class="form-control">{$row.memo|null}</textarea>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
<button type="submit" class="btn btn-primary m-r-5">提交</button>
<button type="reset" class="btn btn-warning m-r-5">重置</button>
</div>
</div>
</form>
</div>
</div>