mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
完成账户管理;
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
- 服务器信息(已完成)
|
||||
- 系统配置(已完成)
|
||||
- 管理员管理
|
||||
- 账户管理
|
||||
- 账户管理(已完成)
|
||||
- 用户管理
|
||||
- 权限管理
|
||||
- 文件管理
|
||||
|
||||
72
app/admin/controller/Admin.php
Normal file
72
app/admin/controller/Admin.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\model\Admin as AppAdmin;
|
||||
use app\model\UploadFiles;
|
||||
use think\facade\View;
|
||||
use think\Request;
|
||||
|
||||
class Admin extends Common
|
||||
{
|
||||
public function edit()
|
||||
{
|
||||
|
||||
|
||||
$model_admin = AppAdmin::find($this->adminInfo['id']);
|
||||
|
||||
View::assign('admin',$model_admin);
|
||||
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
public function password()
|
||||
{
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
public function passwordUpdate()
|
||||
{
|
||||
|
||||
$post_data = $this->request->post();
|
||||
|
||||
if(empty($post_data['new_password'])){
|
||||
return $this->error('新密码不能为空');
|
||||
}
|
||||
$model_admin = AppAdmin::find($this->adminInfo['id']);
|
||||
|
||||
if(md5($post_data['original_password'].$model_admin->getData('salt')) != $model_admin->getData('password')){
|
||||
return $this->error('原密码错误');
|
||||
}
|
||||
|
||||
if($post_data['new_password'] != $post_data['check_password']){
|
||||
return $this->error('新密码与确认密码不一致');
|
||||
}
|
||||
|
||||
|
||||
$model_admin->password = md5($post_data['new_password'].$model_admin->getData('salt'));
|
||||
|
||||
$model_admin->save();
|
||||
|
||||
return $this->success('修改成功');
|
||||
|
||||
}
|
||||
|
||||
public function update()
|
||||
{
|
||||
$post_data = $this->request->post();
|
||||
$model_admin = AppAdmin::find($this->adminInfo['id']);
|
||||
|
||||
if($model_admin->getData('avatar') != $post_data['avatar']){
|
||||
UploadFiles::destroy(['save_name'=>$model_admin->getData('avatar')]);
|
||||
UploadFiles::update(['used_time'=>time()],['save_name'=>$post_data['avatar']]);
|
||||
}
|
||||
|
||||
|
||||
$model_admin->data($post_data);
|
||||
|
||||
$model_admin->save();
|
||||
|
||||
return $this->success('保存成功','Admin/edit');
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ use app\BaseController;
|
||||
use think\facade\Session;
|
||||
use app\model\Admin;
|
||||
use think\exception\HttpResponseException;
|
||||
use think\facade\View;
|
||||
|
||||
class Common extends BaseController{
|
||||
|
||||
@@ -30,5 +31,7 @@ class Common extends BaseController{
|
||||
}
|
||||
}
|
||||
|
||||
View::assign('admin',$this->adminInfo);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -48,4 +48,11 @@ class Login extends Common
|
||||
|
||||
return json_message();
|
||||
}
|
||||
|
||||
public function logout()
|
||||
{
|
||||
Session::clear();
|
||||
|
||||
$this->success('已经安全退出','Login/Index');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,15 +33,20 @@ function json_message($data = [],$code = 0,$msg = '')
|
||||
]);
|
||||
}
|
||||
|
||||
function get_system_config($name,$default = '')
|
||||
function get_system_config($name = '',$default = '')
|
||||
{
|
||||
|
||||
|
||||
$list = Cache::get('system_config');
|
||||
|
||||
if(empty($list)){
|
||||
$list = SystemConfig::column('value','name');
|
||||
}
|
||||
|
||||
if($name === ''){
|
||||
return $list;
|
||||
}
|
||||
|
||||
if(isset($list[$name])){
|
||||
return $list[$name];
|
||||
}
|
||||
|
||||
@@ -10,4 +10,9 @@ use think\Model;
|
||||
class Admin extends Model
|
||||
{
|
||||
//
|
||||
|
||||
public function getAvatarAttr($value)
|
||||
{
|
||||
return \get_source_link($value);
|
||||
}
|
||||
}
|
||||
|
||||
42
database/seeds/InitSystemConfig.php
Normal file
42
database/seeds/InitSystemConfig.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
use think\migration\Seeder;
|
||||
use app\model\SystemConfig;
|
||||
use think\facade\Cache;
|
||||
|
||||
class InitSystemConfig extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run Method.
|
||||
*
|
||||
* Write your database seeder using this method.
|
||||
*
|
||||
* More information on writing seeders is available here:
|
||||
* http://docs.phinx.org/en/latest/seeding.html
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
|
||||
$data = [
|
||||
'site_name'=>'奥宏后台管理小模板'
|
||||
];
|
||||
|
||||
$list = get_system_config();
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
|
||||
if(isset($list[$key])){
|
||||
SystemConfig::where('name',$key)->update(['value'=>$value]);
|
||||
}else{
|
||||
$model_sysconfig = new SystemConfig();
|
||||
$model_sysconfig->name = $key;
|
||||
$model_sysconfig->value = $value;
|
||||
$model_sysconfig->save();
|
||||
}
|
||||
|
||||
$list[$key] = $value;
|
||||
}
|
||||
|
||||
Cache::set('system_config',$list);
|
||||
}
|
||||
}
|
||||
100
view/admin/admin/edit.html
Normal file
100
view/admin/admin/edit.html
Normal file
@@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>基本资料</title>
|
||||
{include file="common/_require"}
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>基本资料</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>资料管理</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('Admin/update')}" method="POST" class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">登录账号</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account" value="{$admin.account}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">昵称</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" value="{$admin.nickname}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">头像</div>
|
||||
<div class="layui-input-block">
|
||||
<div>
|
||||
<div class="layui-btn upload-admin-avatar">上传</div>
|
||||
</div>
|
||||
<div>
|
||||
<img class="layui-circle admin-avatar" style="width: 80px" src="{$admin.avatar}" alt="" srcset="">
|
||||
</div>
|
||||
<input type="hidden" name="avatar" value="{$admin->getData('avatar')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
<script>
|
||||
layui.use(['layer','upload'],function(){
|
||||
var upload = layui.upload;
|
||||
|
||||
|
||||
var uploadSiteLogo = upload.render({
|
||||
elem:'.upload-admin-avatar',
|
||||
url:'{:url("api/Files/save")}',
|
||||
data:{
|
||||
type:1,
|
||||
dir:'admin_avatar'
|
||||
},
|
||||
accept:'images',
|
||||
done:function(result){
|
||||
if(result.code == 0){
|
||||
layer.msg('上传成功');
|
||||
$('input[name="avatar"]').val(result.data.save_name);
|
||||
$('.admin-avatar').attr('src',result.data.src);
|
||||
}else{
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
68
view/admin/admin/password.html
Normal file
68
view/admin/admin/password.html
Normal file
@@ -0,0 +1,68 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>基本资料</title>
|
||||
{include file="common/_require"}
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
{include file="common/_header"}
|
||||
|
||||
{include file="common/left_admin"}
|
||||
|
||||
<div class="layui-body">
|
||||
|
||||
<div style="padding:15px">
|
||||
<div class="main-header">
|
||||
<span class="layui-breadcrumb">
|
||||
<a>首页</a>
|
||||
<a><cite>密码管理</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="main-container">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>密码管理</legend>
|
||||
<div class="layui-field-box">
|
||||
<form action="{:url('Admin/passwordUpdate')}" method="POST" class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">原密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="original_password" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">新密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="new_password" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-label">确认密码</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="check_password" value="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" type="submit">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{include file="common/_footer"}
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -9,15 +9,15 @@
|
||||
<ul class="layui-nav layui-layout-right">
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">
|
||||
<img src="http://t.cn/RCzsdCq" class="layui-nav-img">
|
||||
贤心
|
||||
<img src="{$admin.avatar}" class="layui-nav-img">
|
||||
{$admin.nickname}
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="">基本资料</a></dd>
|
||||
<dd><a href="">安全设置</a></dd>
|
||||
<dd><a href="{:url('Admin/edit')}">基本资料</a></dd>
|
||||
<dd><a href="{:url('Admin/password')}">安全设置</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
|
||||
<li class="layui-nav-item"><a href="">退了</a></li>
|
||||
<li class="layui-nav-item"><a href="{:url('Login/logout')}">退出</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
13
view/admin/common/left_admin.html
Normal file
13
view/admin/common/left_admin.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<div class="layui-side layui-bg-black">
|
||||
<div class="layui-side-scroll">
|
||||
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="{:url('admin/Admin/edit')}">账号信息</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="{:url('Admin/password')}">密码管理</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="layui-col-md4 layui-col-md-offset4">
|
||||
<div class="login">
|
||||
<div class="title">
|
||||
超微H5应用
|
||||
{:get_system_config('site_name')}
|
||||
</div>
|
||||
<div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user