first commit

This commit is contained in:
Mr.Qin
2022-08-19 19:48:37 +08:00
commit afdd648b65
3275 changed files with 631084 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改密码</title>
<include file="user:include"/>
</head>
<body>
<div class="layui-card-body">
<form action="/user/changePwd" class="layui-form layui-form-fixed">
<input type="text" name="nickname" value="{$user.nickname}" hidden="">
<div class="layui-form-item">
<label class="layui-form-label">原密码</label>
<div class="layui-input-block">
<input type="password" id="oldpwd" name="oldpwd" class="layui-input" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">新密码</label>
<div class="layui-input-block">
<input type="password" id="pwd" name="pwd" class="layui-input" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">确认密码</label>
<div class="layui-input-block">
<input type="password" id="repwd" name="repwd" class="layui-input" >
</div>
</div>
<div class="layui-form-item" style="margin-top: 22px;text-align: center;">
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
<button type="submit" class="layui-btn layui-btn-normal" lay-submit="" lay-filter="submit">立即提交</button>
</div>
</form>
</div>
<script>
layui.use(['jquery','form'],function(){
let $ = layui.jquery;
let form = layui.form;
//监听提交
form.on('submit(submit)', function(data){
if($("#pwd").val().length < 6){
layer.tips('请至少输入6个字符作为密码',"#pwd",{'tips':3});
return false;
}
if ($("#pwd").val() !== $("#repwd").val()) {
layer.tips('两次输入的密码不一样!',"#repwd",{'tips':3});
return false;
}
$.ajax({
url: $(this).attr('action'),
type: 'POST',
dataType: 'json',
timeout: 6000,
data: data.field,
success: function(res){
if (res.code === 200) {
top.layer.msg(res.msg);
}
else {
top.layer.msg(res.msg,'error');
}
}
});
return false;
});
})
</script>
</body>
</html>

View File

@@ -0,0 +1,32 @@
<layout name="layout:layout"/>
<!-- 内容主体区域 -->
<div id="content">
<div class="layui-fluid ">
<form class="layui-form layui-form-fixed" action="/user/email">
<div class="layui-form-item">
<label class="layui-form-label">{:__('邮箱地址')}</label>
<div class="layui-input-inline" style="width: 265px">
<input name="email" placeholder="{:__('请输入邮箱地址')}" type="text" class="layui-input email"
autocomplete="off" lay-verify="required|email"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('验证码')}</label>
<div class="layui-input-inline">
<input name="captcha" placeholder="{:__('请输入验证码')}" type="text" class="layui-input"
autocomplete="off" lay-verify="required" maxlength="10"/>
</div>
<button class="layui-btn layui-btn-normal" type="button" lay-ajax data-url="/user/email"
data-object="email:email,event:event">{:__('获取')}
</button>
</div>
<input type="text" hidden name="event" class="event" value="change">
<div class="layui-footer layui-form-item layui-center">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn layui-btn-normal" data-reload="parent" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,5 @@
<div class="layui-footer">
<!-- 底部固定区域 -->
copyright © <php>echo date('Y');</php> <a href="http://www.swiftadmin.net" target="_blank">SwiftAdmin</a> all rights reserved.
<span class="layui-layout-right" style="margin-right: 10px;">Build {:release()}</span>
</div>

View File

@@ -0,0 +1,86 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SwiftAdmin 用户登录</title>
<include file="public:header"/>
</head>
<body>
<style>
.layui-form-checked[lay-skin="primary"] i {
border-color: #1890ff !important;
background-color: #1890ff;
color: #fff;
}
.layui-form-item {
margin-bottom: 25px;
}
.red {
color: red;
}
.layui-input:hover {
border: 1px solid #1890ff!important;
}
</style>
<div class="layui-fluid">
<form class="layui-form layui-form-fixed" action="/user/forgot" method="post" >
<input type="hidden" name="__token__" value="{:token()}"/>
<div class="layui-form-item">
<label class="layui-form-label"><span class="red">*</span> {:__('手机/邮箱')}</label>
<div class="layui-input-inline" style="width: 306px">
<input id="string" name="mobile" placeholder="{:__('请输入邮箱或手机号')}" type="text" class="layui-input string"
autocomplete="off" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="red">*</span> {:__('验证码')}</label>
<div class="layui-input-inline">
<input name="captcha" placeholder="{:__('请输入验证码')}" type="text" class="layui-input" autocomplete="off" lay-verify="required" maxlength="10"/>
</div>
<button id="send" class="layui-btn layui-btn-normal" type="button"
lay-ajax data-url="/ajax/smssend" data-object="mobile:string,event:event">{:__('获取')}
</button>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="red">*</span> {:__('新密码')}</label>
<div class="layui-input-inline" style="width: 306px">
<input type="password" id="pwd" name="pwd" lay-verify="required" placeholder="{:__('密码')}" class="layui-input" >
</div>
</div>
<input type="text" hidden name="event" class="event" value="forgot">
<div class="layui-footer layui-form-item layui-center">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn layui-btn-normal" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
</body>
<script>
layui.use('jquery', function() {
let $ = layui.jquery;
$('#string').on('keyup',function (e) {
let val = $(this).val();
let string = $('#string');
let send = $('#send');
let regx = /^[1][3,4,5,6.7,8,9][0-9]{9}$/
if (regx.test(val)) {
string.attr('name','mobile');
send.attr('data-object','mobile:string,event:event');
send.attr('data-url','/ajax/smssend');
} else {
string.attr('name','email');
send.attr('data-object','email:string,event:event');
send.attr('data-url','/ajax/emailsend');
}
})
})
</script>
</html>

View File

@@ -0,0 +1,40 @@
<div class="layui-header">
<div class="layui-logo layui-hide-xs layui-bg-black">
<span class="logo-text">SAPHP <span style="font-size: medium ">用户后台</span></span>
</div>
<!-- 头部区域可配合layui 已有的水平导航) -->
<ul class="layui-nav layui-layout-left">
<!-- 移动端显示 -->
<li class="layui-nav-item layui-show-xs-inline-block" lay-header-event="menuLeft">
<i class="layui-icon layui-icon-spread-left"></i>
</li>
</ul>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item" lay-unselect="">
<a href="{$site_http}" lay-text="主页">
<i class="layui-icon layui-icon-website"></i>
</a>
</li>
<li class="layui-nav-item" lay-unselect="">
<a href="javascript:;" sa-event="message" lay-text="消息中心" data-url="/admin.php/system.admin/message">
<i class="layui-icon fa-bell-o"></i>
<!-- 如果有新消息,则显示小圆点 -->
<span class="layui-badge-dot"></span>
</a>
</li>
<li class="layui-nav-item layui-hide layui-show-md-inline-block">
<a href="javascript:;"><img src="{$user.avatar}" alt="{$user.nickname}" class="layui-nav-img">{$user.nickname}</a>
<dl class="layui-nav-child">
<dd><a lay-open lay-title="修改密码" lay-url="/user/changepwd" lay-area="470px,330px" href="javascript:;">修改密码</a>
</dd>
<dd><a href="/user/logout" >退出</a></dd>
</dl>
</li>
<li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
<a href="javascript:;"><i class="layui-icon layui-icon-more-vertical"></i></a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,26 @@
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="/static/js/layui/css/layui.css">
<link href="/static/js/layui/css/font-awesome.css?v={:config('app.version')}" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="/static/css/center.css?v={:release()}">
<script src="/static/js/layui/layui.js"></script>
<script src="/static/js/common.js?v={:release()}"></script>
<!-- // 加载font-awesome图标 -->
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
/* 移动端 */
@media screen and (max-width: 768px) {
.layui-layout-admin .layui-layout-left,
.layui-layout-admin .layui-body,
.layui-layout-admin .layui-footer{left: 0;}
.layui-layout-admin .layui-side{width: 0px;}
}
</style>

View File

@@ -0,0 +1,166 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>控制台 | 用户中心</title>
<include file="user:include"/>
</head>
<body>
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<div class="layui-logo layui-side-body layui-hide-xs layui-bg-black">
<!-- // 可以增加LOGO-->
<img src="/static/system/images/logo.png" style="margin-bottom: 8px;margin-right: 10px" alt="logo" width="22" height="22" >
<span class="logo-text">用户中心</span>
</div>
<ul class="layui-nav layui-layout-left">
<li id="shrink" class="layui-nav-item layui-show-xs-inline-block" >
<i class="layui-icon layui-icon-shrink-right"></i>
</li>
</ul>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item" lay-unselect="">
<a href="/" title="主页">
<i class="layui-icon fa-home"></i>
</a>
</li>
<li class="layui-nav-item" >
<a href="javascript:;" id="notice">
<i class="layui-icon fa-bell-o"></i>
<span class="layui-badge-dot"></span>
</a>
</li>
<li class="layui-nav-item layui-hide layui-show-md-inline-block">
<a href="javascript:;"><img src="{$user.avatar}" alt="{$user.nickname}" class="layui-nav-img">{$user.nickname}</a>
<dl class="layui-nav-child">
<dd><a lay-open data-title="修改密码" data-url="/user/changepwd" data-area="470px,330px" href="javascript:;">修改密码</a>
</dd>
<dd><a href="/user/logout">退出</a></dd>
</dl>
</li>
<li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
<a href="javascript:;">
<i id="skin" class="layui-icon fa-moon-o"></i>
</a>
</li>
</ul>
</div>
<div class="layui-side layui-side-body layui-bg-black">
<div class="layui-side-scroll">
<!-- 左侧导航区域可配合layui已有的垂直导航 -->
<include file="user:userNav"/>
</div>
</div>
<div class="layui-body">
<!-- 内容主体区域 -->
<iframe id="iframe" src="/user/profile" frameborder="0" class="layui-layer-load" onload="this.className='';" ></iframe>
</div>
<include file="user:footer"/>
</div>
<script !src="">
layui.use(['jquery','upload'],function(){
let $ = layui.jquery;
let upload = layui.upload;
// 默认展现首个菜单栏
$('.layui-nav-tree .layui-nav-item').each(function (k,e) {
if ($(e).find('dl.layui-nav-child').length) {
$(e).addClass('layui-nav-itemed');
return false;
}
})
// 点击切换页面地址
$('body').on('click', '.layui-nav-tree a', function () {
let href = $(this).attr('lay-href');
if (href && href !== 'javascript:;') {
$('#iframe').attr('class','layui-layer-load');
$('#iframe').attr('src',href);
}
})
// 上传头像
upload.render({
elem: '.layui-user-avatar'
,url: '/user/avatars'
,method: 'post'
,accept: 'file'
,before: function(res) {
layer.msg('上传中');
},done: function(res, index, upload) {
// 上传成功
if (res.code == 200) {
layer.msg(res.msg);
$('#imgHead img').attr('src',res.url);
} else {
layer.msg(res.msg,'error');
}
}
})
let leftAnimate = function (action = true) {
if (action) {
$('.layui-side').animate({width: '0px'});
$('.layui-body,.layui-footer').animate({left: '5px'});
} else {
$('.layui-side').animate({width: '200px'});
$('.layui-body,.layui-footer').animate({left: '200px'});
}
}
$('#shrink i.layui-icon').click(function () {
let right = 'layui-icon-shrink-right',
left = 'layui-icon-spread-left';
if ($(this).hasClass(right)) {
leftAnimate();
$(this).removeClass(right).addClass(left);
}else {
leftAnimate(false);
$(this).removeClass(left).addClass(right);
}
})
// 初始化宽度
if ($(window).width() <= 992) {
$('#shrink i.layui-icon-shrink-right').removeClass('layui-icon-shrink-right').addClass('layui-icon-spread-left');
}
let skin = layui.data('skin').theme || undefined;
if (skin === 'layui-bg-white') {
$('.layui-side-body').removeClass('layui-bg-black').addClass(skin);
$('#skin').removeClass('fa-moon-o').addClass('fa-sun-o');
}
// 切换皮肤
$('#skin').on('click',function () {
let value = $(this).hasClass('fa-moon-o');
console.log(value)
if (value) {
$(this).removeClass('fa-moon-o').addClass('fa-sun-o');
$('.layui-side-body').removeClass('layui-bg-black').addClass('layui-bg-white');
layui.data('skin',{
key: 'theme',
value: 'layui-bg-white'
});
} else {
$(this).removeClass('fa-sun-o').addClass('fa-moon-o');
$('.layui-side-body').removeClass('layui-bg-white').addClass('layui-bg-black');
layui.data('skin',{
key: 'theme',
value: 'layui-bg-black'
});
}
})
})
</script>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SwiftAdmin 用户登录</title>
<include file="public:header"/>
</head>
<body>
<style>
.layui-form-checked[lay-skin="primary"] i {
border-color: #1890ff !important;
background-color: #1890ff;
color: #fff;
}
.forget-link {
margin-top: 7px;
color: #1890ff;
}
</style>
<div id="userLogin" class="layui-fluid">
<div class="login-link">
<span class="other">第三方账号登录:</span>
<span>
<a href="{:url('/third/login',['type'=>'qq'])}&ref={$referer}" class="qq" target="_top"></a>
<a href="{:url('/third/login',['type'=>'weixin'])}&ref={$referer}" class="wx" target="_top"></a>
<a href="{:url('/third/login',['type'=>'weibo'])}&ref={$referer}" class="sina" target="_top"></a>
</span>
</div>
<form class="layui-form" action="/user/login" method="post" style="height: auto">
<input type="hidden" name="__token__" value="{:token()}"/>
<div class="layui-form-item">
<div class="item">
<label class="user-login-icon layui-icon layui-icon-username"></label>
<input type="text" id="nickname" name="nickname" lay-verify="required|email"
placeholder="{:__('请输入邮箱或手机号')}" class="layui-input" value="test@swiftadmin.net">
</div>
</div>
<div class="layui-form-item">
<div class="item">
<label class="user-login-icon layui-icon layui-icon-password"></label>
<input type="password" id="pwd" name="pwd" lay-verify="required" placeholder="{:__('密码')}"
class="layui-input" value="admin888">
</div>
</div>
<div class="layui-form-item" style="margin-bottom: 20px;">
<div class="fl">
<input type="checkbox" name="remember" lay-skin="primary" title="{:__('记住密码')}" checked>
</div>
<a lay-open data-title="找回密码" data-area="510px,360px" data-object="top" data-url="/user/forgot" class="forget-link fr" style="margin-top: 7px;">{:__('忘记密码?')}</a>
</div>
<div class="layui-form-item">
<input type="submit" value="{:__('立即登录')}" lay-submit="" lay-filter="submitIframe" data-reload="top"
class="layui-btn layui-btn-fluid layui-btn-normal">
</div>
</form>
</div>
</body>
</html>

View File

@@ -0,0 +1,30 @@
<layout name="layout:layout"/>
<!-- 内容主体区域 -->
<div id="content">
<div class="layui-fluid">
<form class="layui-form layui-form-fixed" action="/user/mobile">
<div class="layui-form-item">
<label class="layui-form-label">{:__('手机号')}</label>
<div class="layui-input-inline" style="width: 265px">
<input name="mobile" placeholder="{:__('请输入号码')}" type="text" class="layui-input mobile"
autocomplete="off" lay-verify="required|phone"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('验证码')}</label>
<div class="layui-input-inline">
<input name="captcha" placeholder="{:__('请输入验证码')}" type="text" class="layui-input"
autocomplete="off" lay-verify="required" maxlength="10"/>
</div>
<button class="layui-btn layui-btn-normal" type="button" lay-ajax data-url="/user/mobile"
data-object="mobile:mobile,event:event">{:__('获取')}
</button>
</div>
<input type="text" hidden name="event" class="event" value="change">
<div class="layui-footer layui-form-item layui-center">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn layui-btn-normal" data-reload="parent" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>消息管理 | {$site_name}</title>
<include file="user:include" />
</head>
<body>
<div class="layui-layout layui-layout-admin">
<include file="user:header" />
<div class="layui-side layui-bg-black">
<div class="layui-side-scroll">
<!-- 左侧导航区域可配合layui已有的垂直导航 -->
<include file="user:userNav" />
</div>
</div>
<div class="layui-body">
<!-- 内容主体区域 -->
<div id="content">
<h1>消息 示例页面</h1>
</div>
</div>
<include file="user:footer"/>
</div>
</body>
</html>
</body>
</html>

View File

@@ -0,0 +1,246 @@
<layout name="layout:layout"/>
<!-- 内容主体区域 -->
<div id="content">
<div class="layui-row layui-col-space20">
<div class="layui-col-md9">
<div class="layui-card">
<div class="layui-card-body goindex">
<div class="layui-col-md8">
<div class="tips"> Hi{$user.nickname} <span class="regular"> 下午好,今天是你加入的第 {$user.create_time|distance_day} 天~</span>
</div>
</div>
<div class="layui-col-md4">
</div>
</div>
</div>
<div id="profile" class="layui-card">
<div class="layui-card-body">
<h2>个人信息</h2>
<div class="clear">
<div class="layui-col-md3">
<div class="contract-title">手机</div>
<div class="contract-detail">+86 {$user.mobile}
<i class="layui-icon fa-edit" title="编辑" lay-open data-title="修改手机"
data-url="/user/mobile" data-area="500px,300px"></i>
</div>
</div>
<div class="layui-col-md3">
<div class="contract-title">微信号</div>
<div class="contract-detail">{$user.wechat|default='--'}</div>
</div>
<div class="layui-col-md3">
<div class="contract-title">办公室邮箱</div>
<div class="contract-detail">{$user.email}
<i class="layui-icon fa-edit" title="编辑" lay-open data-title="修改邮箱"
data-url="/user/email" data-area="500px,300px"></i>
</div>
</div>
<div class="layui-col-md3">
<div class="contract-title">登录IP</div>
<div class="contract-detail">{$user.login_ip}</div>
</div>
</div>
<div class="clear">
<div class="layui-col-md3">
<div class="contract-title">登陆次数</div>
<div class="contract-detail">{$user.login_count}</div>
</div>
<div class="layui-col-md3">
<div class="contract-title">用户组</div>
<div class="contract-detail">{$user.group.title}</div>
</div>
<div class="layui-col-md3">
<div class="contract-title">积分</div>
<div class="contract-detail">{$user.score}</div>
</div>
<div class="layui-col-md3">
<div class="contract-title">加入时间</div>
<div class="contract-detail">{$user.create_time}</div>
</div>
</div>
<div class="layui-col-md3">
<div class="contract-title">所在住址</div>
<div class="contract-detail">{$user.address}</div>
</div>
</div>
</div>
<div class="layui-card">
<div class="layui-card-header">我的帖子</div>
<div class="layui-card-body">
<table class="layui-table" lay-skin="nob">
<thead>
<tr>
<th>标题</th>
<th>回答数</th>
<th>发表时间</th>
<th>访问量</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<div class="layui-col-md3">
<div id="account" class="layui-card">
<div class="layui-card-body">
<div id="imgHead" class="layui-user-avatar">
<img src="{$user.avatar}" alt="{$user.nickname}" class="avatar">
</div>
<div class="nickname">
{$user.nickname}
<span class="edits">
<i class="layui-icon fa-edit" lay-open data-title="修改昵称" data-url="#nickname" data-area="398px,230px"></i>
</span>
</div>
<div class="intro">{$user.heart}</div>
<div id="thrid" class="layui-input-inline">
<if check_user_third(
'qq',$user['id']) >
<a lay-ajax data-url="{:url('/third/unbind',['type'=> 'qq'])}" title="点击解绑" type="button"
class="layui-btn layui-btn-sm"><i
class="layui-icon layui-icon-login-qq"></i></a>
<else/>
<a href="{:url('/third/bind?type=qq&ref=/user/index')}" title="点击绑定" type="button" target="_top"
class="layui-btn layui-btn-sm layui-bind-third"><i
class="layui-icon layui-icon-login-qq"></i></a>
</if>
<if check_user_third(
'weixin',$user['id']) >
<a lay-ajax data-url="{:url('/third/unbind?type=weixin')}" title="点击解绑" type="button"
class="layui-btn layui-btn-sm"><i
class="layui-icon layui-icon-login-wechat"></i></a>
<else/>
<a href="{:url('/third/bind')}?type=weixin&ref=/user/index" title="点击绑定" type="button"
target="_top"
class="layui-btn layui-btn-sm layui-bind-third"><i
class="layui-icon layui-icon-login-wechat"></i></a>
</if>
<if check_user_third(
'weibo',$user['id']) >
<a lay-ajax data-url="{:url('/third/unbind?type=weibo')}" title="点击解绑" type="button"
class="layui-btn layui-btn-sm"><i
class="layui-icon layui-icon-login-weibo"></i></a>
<else/>
<a href="{:url('/third/bind')}?type=wiebo&ref=/user/index" title="点击绑定" type="button"
target="_top"
class="layui-btn layui-btn-sm layui-bind-third"><i
class="layui-icon layui-icon-login-weibo"></i></a>
</if>
</div>
</div>
</div>
<div class="layui-card">
<div class="layui-card-header">APP KEY</div>
<div id="appkey" class="layui-card-body">
<notempty name="user.app_id">
<div class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">app_id</label>
<div class="layui-input-block">
<div class="layui-form-mid layui-word-aux">{$user.app_id}</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">app_secret</label>
<div class="layui-input-block">
<div class="layui-form-mid layui-word-aux">{$user.app_secret}</div>
</div>
</div>
<div class="layui-form-item">
<button type="submit" class="layui-btn layui-btn-normal" lay-ajax=""
data-url="/user/appid" data-reload="self">更换APPKEY
</button>
</div>
</div>
<else/>
<div class="layui-form">
<div class="layui-form-item">
<div class="layui-input-block">
<div class="layui-form-mid layui-word-aux">还没有生成appKey,请点击按钮生成!</div>
</div>
</div>
<div class="layui-form-item">
<button type="submit" class="layui-btn layui-btn-normal" lay-ajax=""
data-url="/user/appid" data-reload="self">生成APPKEY
</button>
</div>
</div>
</notempty>
</div>
</div>
</div>
</div>
</div>
<!-- // 修改用户昵称 -->
<script type="text/html" id="nickname">
<div class="layui-fluid layui-bg-white">
<form class="layui-form layui-form-fixed" action="/user/profile">
<div class="layui-form-item">
<label class="layui-form-label">{:__('用户昵称')}</label>
<div class="layui-input-inline">
<input name="nickname" autocomplete="off" placeholder="{:__('请输入昵称')}" type="text"
class="layui-input" lay-verify="required"/>
</div>
</div>
<div class="layui-footer layui-form-item layui-center">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn layui-btn-normal" lay-filter="submitPage" data-reload="parent" lay-submit>
{:__('提交')}
</button>
</div>
</form>
</div>
</script>
<script>
layui.use(['jquery', 'upload'], function () {
var $ = layui.jquery;
var upload = layui.upload;
// 上传头像
upload.render({
elem: '.layui-user-avatar'
, url: '/user/avatar?action=avatar' // 默认的上传地址
, method: 'post'
, accept: 'image'
, before: function (res) {
layer.msg('上传中');
}, done: function (res, index, upload) {
// 上传成功
if (res.code === 200) {
$('.avatar').attr('src', res.url + '?' + parseInt(100 * Math.random()));
return layer.msg(res.msg);
}
layer.msg(res.msg, 'error');
}
})
})
</script>

View File

@@ -0,0 +1,30 @@
<layout name="layout:layout"/>
<!-- 内容主体区域 -->
<div id="content">
<div class="layui-fluid">
<form class="layui-form layui-form-fixed" action="/user/protection">
<div class="layui-form-item">
<label class="layui-form-label">{:__('密保问题')}</label>
<div class="layui-input-inline" style="width: 260px">
<select name="question" lay-verify="required">
<volist name="validate" id="vo">
<option value="{$vo}">{$vo}</option>
</volist>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('密保答案')}</label>
<div class="layui-input-inline" style="width: 260px">
<input name="answer" placeholder="{:__('请输入密保答案')}" type="text" class="layui-input"
autocomplete="off" lay-verify="required"/>
</div>
</div>
<div class="layui-footer layui-form-item layui-center">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn layui-btn-normal" lay-filter="submitIframe" data-reload="parent" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,86 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SwiftAdmin 用户注册</title>
<include file="public:header"/>
</head>
<body>
<style>
.layui-form-item {
margin-bottom: 15px;
}
.red {
color: red;
}
.layui-input:hover {
border: 1px solid #1890ff !important;
}
</style>
<div id="register" class="layui-fluid">
<form class="layui-form layui-form-fixed" action="/user/register" method="post">
<div class="layui-form-item">
<label class="layui-form-label"><span class="red">*</span> 用户帐号</label>
<div class="layui-input-block">
<input type="text" name="nickname" placeholder="请输入帐号" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="red">*</span> 密码</label>
<div class="layui-input-block">
<input type="password" id="pwd" name="pwd" placeholder="请输入密码" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="red">*</span> 确认密码</label>
<div class="layui-input-block">
<input type="password" id="repwd" name="repwd" placeholder="请输入确认密码" class="layui-input">
</div>
</div>
<eq name="style" value="mobile">
<div class="layui-form-item">
<label class="layui-form-label"><span class="red">*</span> 手机号</label>
<div class="layui-input-block">
<input type="text" id="mobile" name="mobile" placeholder="请输入手机号" lay-verify="require|phone"
class="layui-input mobile">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="red">*</span> 验证码</label>
<div class="layui-input-block">
<input type="text" name="captcha" placeholder="{:__('验证码')}" class="layui-input captcha">
<div class="captcha fr">
<button id="captcha" type="button" class="layui-btn layui-btn-normal"
lay-ajax data-url="/ajax/smssend" data-object="mobile:mobile,event:event"
>获取验证码
</button>
</div>
</div>
</div>
<else/>
<div class="layui-form-item">
<label class="layui-form-label"><span class="red">*</span> 邮箱地址</label>
<div class="layui-input-block">
<input type="text" name="email" lay-verify="require|email" placeholder="请输入邮箱" class="layui-input">
</div>
</div>
</eq>
<input type="text" hidden name="event" class="event" value="register">
<div class="layui-footer layui-form-item layui-center">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn layui-btn-normal" lay-filter="submitIframe" data-reload="top" lay-submit>
{:__('立即注册')}
</button>
</div>
</form>
</div>
</body>
</html>

View File

@@ -0,0 +1,115 @@
<layout name="layout:layout"/>
<div id="content">
<div class="layui-card">
<div class="layui-card-header"><h5>安全设置</h5></div>
<div class="layui-card-body">
<div id="user-detail">
<div class="layui-user-avatar fl" >
<img src="{$user.avatar}" alt="" width="80">
</div>
<div class="fl" style="margin-left: 35px">
<div class="u-info"><span class="label">会员ID:</span>{$user.id}</div>
<div class="u-info"><span class="label">注册日期:</span>{$user.create_time}</div>
<div class="u-info">
<span class="label">安全级别:</span>
<div class="layui-progress layui-progress-big">
<div class="layui-progress-bar layui-bg-blue" lay-percent="{$progress}%"></div>
</div>
<span class="text-stress">建议您启动全部安全设置,以保障账户及资金安全。</span>
</div>
</div>
</div>
<div class="settings-tier">
<div class="settings-detail fl">
<span class="setting-status">
<i class="layui-icon fa-check"></i>
</span>
<span class="setting-name">修改密码</span>
<span class="setting-intro">安全性高的密码可以使账户更安全;互联网账号存在被盗风险,建议您定期更换密码</span>
</div>
<div class="setting-operate fr">
<a lay-open="" data-title="修改密码" data-url="/user/changepwd" data-area="470px,330px" href="javascript:;">修改</a>
</div>
</div>
<div class="settings-tier">
<div class="settings-detail fl">
<span class="setting-status">
<empty name="$user['mobile']">
<i class="layui-icon fa-warning"></i>
<else/>
<i class="layui-icon fa-check"></i>
</empty>
</span>
<span class="setting-name">手机绑定</span>
<span class="setting-intro">您的手机:
<empty name="$user['mobile']">
未绑定
<else/>
{:hide_str($user['mobile'])}
</empty>。绑定认证后可用于手机找回密码、接收手机动态验证码等,保障您的账户安全。
</span>
</div>
<div class="setting-operate fr">
<a lay-open data-title="修改手机" data-url="/user/mobile" data-area="500px,300px">修改</a>
</div>
</div>
<div class="settings-tier">
<div class="settings-detail fl">
<span class="setting-status">
<empty name="$user['email']">
<i class="layui-icon fa-warning"></i>
<else/>
<i class="layui-icon fa-check"></i>
</empty>
</span>
<span class="setting-name">邮箱绑定 </span>
<span class="setting-intro">您的邮箱:
<empty name="$user['email']">
未绑定
<else/>
{:hide_str($user['email'])}
</empty>。绑定认证后可用于邮箱找回密码、接收订单提醒等,保障您的账户安全。
</span>
</div>
<div class="setting-operate fr">
<a lay-open data-title="修改邮箱" data-url="/user/email" data-area="500px,300px">修改</a>
</div>
</div>
<div class="settings-tier">
<div class="settings-detail fl">
<span class="setting-status">
<empty name="$user['answer']">
<i class="layui-icon fa-warning"></i>
<else/>
<i class="layui-icon fa-check"></i>
</empty>
</span>
<span class="setting-name">密保问题 </span>
<span class="setting-intro">设置密保问题可以进一步提升您的账户安全性。是您找回登录密码的方式之一。</span>
</div>
<div class="setting-operate fr">
<a lay-open data-title="设置密保" data-url="/user/protection" data-area="500px,300px">设置</a>
</div>
</div>
<div class="settings-tier">
<div class="settings-detail fl">
<span class="setting-status">
<i class="layui-icon fa-wechat"></i>
</span>
<span class="setting-name">微信绑定</span>
<span class="setting-intro">暂未绑定。 绑定认证后可用于快捷登录、接收微信通知</span>
</div>
<div class="setting-operate fr"><a href="">绑定</a></div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,15 @@
<!--// 初始化菜单-->
<ul class="layui-nav layui-nav-tree" lay-filter="master">
<li class="layui-nav-item layui-this">
<a lay-href="/user/profile">控制台</a>
</li>
<!--// 前台菜单-->
{:get_plugin_menu()}
<li class="layui-nav-item">
<a class="#" href="javascript:;">账号设置</a>
<dl class="layui-nav-child">
<dd><a lay-href="/user/security">安全设置</a></dd>
</dl>
</li>
</ul>