mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-09 03:22:51 +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 think\facade\Session;
|
||||||
use app\model\Admin;
|
use app\model\Admin;
|
||||||
use think\exception\HttpResponseException;
|
use think\exception\HttpResponseException;
|
||||||
|
use think\facade\View;
|
||||||
|
|
||||||
class Common extends BaseController{
|
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();
|
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');
|
$list = Cache::get('system_config');
|
||||||
|
|
||||||
if(empty($list)){
|
if(empty($list)){
|
||||||
$list = SystemConfig::column('value','name');
|
$list = SystemConfig::column('value','name');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($name === ''){
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
|
||||||
if(isset($list[$name])){
|
if(isset($list[$name])){
|
||||||
return $list[$name];
|
return $list[$name];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,4 +10,9 @@ use think\Model;
|
|||||||
class Admin extends 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">
|
<ul class="layui-nav layui-layout-right">
|
||||||
<li class="layui-nav-item">
|
<li class="layui-nav-item">
|
||||||
<a href="javascript:;">
|
<a href="javascript:;">
|
||||||
<img src="http://t.cn/RCzsdCq" class="layui-nav-img">
|
<img src="{$admin.avatar}" class="layui-nav-img">
|
||||||
贤心
|
{$admin.nickname}
|
||||||
</a>
|
</a>
|
||||||
<dl class="layui-nav-child">
|
<dl class="layui-nav-child">
|
||||||
<dd><a href="">基本资料</a></dd>
|
<dd><a href="{:url('Admin/edit')}">基本资料</a></dd>
|
||||||
<dd><a href="">安全设置</a></dd>
|
<dd><a href="{:url('Admin/password')}">安全设置</a></dd>
|
||||||
</dl>
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="layui-nav-item"><a href="">退了</a></li>
|
<li class="layui-nav-item"><a href="{:url('Login/logout')}">退出</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</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="layui-col-md4 layui-col-md-offset4">
|
||||||
<div class="login">
|
<div class="login">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
超微H5应用
|
{:get_system_config('site_name')}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user