mirror of
https://gitee.com/technical-laohu/mpay.git
synced 2025-10-16 23:43:44 +08:00
添加引导安装程序
This commit is contained in:
135
view/Install/index.html
Normal file
135
view/Install/index.html
Normal file
@@ -0,0 +1,135 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>程序安装</title>
|
||||
<link rel="stylesheet" href="/component/pear/css/pear.css" />
|
||||
<style>
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="layui-container" style="margin-top: 50px;">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md8 layui-col-md-offset2">
|
||||
<form class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">数据库地址</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="host" required lay-verify="required" placeholder="请输入数据库地址"
|
||||
autocomplete="off" class="layui-input" value="localhost">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">端口</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="port" required lay-verify="required" placeholder="请输入数据库名称"
|
||||
autocomplete="off" class="layui-input" value="3306">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">编码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="charset" required lay-verify="required" placeholder="请输入数据库名称"
|
||||
autocomplete="off" class="layui-input" value="utf8mb4">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">数据库</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" required lay-verify="required" placeholder="请输入数据库名称"
|
||||
autocomplete="off" class="layui-input" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="user" required lay-verify="required" placeholder="请输入数据库用户名"
|
||||
autocomplete="off" class="layui-input" value="root">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="pass" required lay-verify="required" placeholder="请输入数据库密码"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<hr style="margin: 24px 0px;" />
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">管理员昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" required lay-verify="required" placeholder="请输入管理员昵称"
|
||||
autocomplete="off" class="layui-input" value="管理大大">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">管理员账号</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="username" required lay-verify="required" placeholder="请输入管理员用户名"
|
||||
autocomplete="off" class="layui-input" value="admin">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">管理员密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password" required lay-verify="required" placeholder="请输入管理员密码"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="formSubmit">立即安装</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/component/layui/layui.js"></script>
|
||||
<script src="/component/pear/pear.js"></script>
|
||||
<script>
|
||||
layui.use(['form'], function () {
|
||||
var form = layui.form;
|
||||
var layer = layui.layer;
|
||||
|
||||
// 监听提交
|
||||
form.on('submit(formSubmit)', function (data) {
|
||||
const field = data.field;
|
||||
// 提交表单
|
||||
fetch('/install/install', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(field)
|
||||
}).then(res => {
|
||||
if (res.ok) {
|
||||
return res.json();
|
||||
}
|
||||
throw new Error('数据库配置错误');
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
layer.msg(res.msg, {
|
||||
time: 1000,
|
||||
end: () => {
|
||||
window.location.href = '/User/login';
|
||||
}
|
||||
});
|
||||
} else {
|
||||
layer.msg(res.msg);
|
||||
}
|
||||
}).catch(err => {
|
||||
layer.msg(err.message);
|
||||
})
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@@ -16,14 +16,6 @@
|
||||
<form id="set-user" class="layui-form layui-form-pane" action="" lay-filter="set-user">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item" pane>
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid inputTxt">
|
||||
<?php echo $pid ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" pane>
|
||||
<label class="layui-form-label">账号</label>
|
||||
<div class="layui-input-block">
|
||||
@@ -35,13 +27,18 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" autocomplete="off" class="layui-input">
|
||||
<input type="text" name="nickname" autocomplete="off" class="layui-input"
|
||||
value="<?php echo $nickname ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-form-item" pane>
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="password" autocomplete="off" class="layui-input">
|
||||
<div class="layui-form-mid inputTxt" style="float: none;">
|
||||
********
|
||||
<a href="javascript:;" lay-on="changePw" style="float: right;" title="修改密码"><span
|
||||
class="icon pear-icon pear-icon-edit"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -60,24 +57,51 @@
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script type="text/html" id="changePassWord">
|
||||
<div class="main-container">
|
||||
<form class="layui-form layui-form-pane">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">原密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="old_password" required lay-verify="required" placeholder="请输入原密码"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">新密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="new_password" required lay-verify="required" placeholder="请输入新密码"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">确认密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="confirm_password" required lay-verify="required" placeholder="请再次输入新密码"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="changePassWord">确认修改</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</script>
|
||||
<script src="/component/layui/layui.js"></script>
|
||||
<script src="/component/pear/pear.js"></script>
|
||||
<script>
|
||||
layui.use(['form'], function () {
|
||||
let form = layui.form;
|
||||
|
||||
form.val('set-user', {
|
||||
"nickname": "<?php echo $nickname ?>",
|
||||
"password": "<?php echo $password ?>",
|
||||
});
|
||||
let util = layui.util;
|
||||
|
||||
form.on('submit(user-save)', function (obj) {
|
||||
let field = obj.field;
|
||||
(async () => {
|
||||
const url = '/api/User/editUser';
|
||||
const info = field;
|
||||
const res = await fetch(url, { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(info) });
|
||||
const res = await fetch(url, { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ nickname: info.nickname }) });
|
||||
if (res.status !== 200) {
|
||||
layer.msg('请求失败,请重试!', { tips: 2, time: 1200 });
|
||||
return false;
|
||||
@@ -94,10 +118,55 @@
|
||||
})()
|
||||
return false;
|
||||
});
|
||||
|
||||
util.on({
|
||||
'changePw': (ele) => {
|
||||
layer.open({
|
||||
type: 1,
|
||||
area: '350px',
|
||||
resize: false,
|
||||
shadeClose: true,
|
||||
title: '修改密码',
|
||||
content: document.getElementById('changePassWord').innerHTML,
|
||||
success: () => {
|
||||
form.on('submit(changePassWord)', (data) => {
|
||||
var field = data.field;
|
||||
// 检查新密码和确认密码是否一致
|
||||
if (field.new_password !== field.confirm_password) {
|
||||
layer.msg('新密码和确认密码不一致,请重新输入', { icon: 2 });
|
||||
return false;
|
||||
}
|
||||
// 密码修改
|
||||
(async () => {
|
||||
const url = '/api/User/changePassword';
|
||||
const info = { old_password: field.old_password, new_password: field.new_password };
|
||||
const res = await fetch(url, {
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(info)
|
||||
});
|
||||
if (res.status !== 200) {
|
||||
layer.msg('请求失败,请重试!', { tips: 2, time: 1200 });
|
||||
return false;
|
||||
}
|
||||
const rec_info = await res.json();
|
||||
if (rec_info.code === 0) {
|
||||
layer.msg(rec_info.msg, { icon: 1, time: 1200 }, () => {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name)); //关闭当前页
|
||||
parent.location.reload();
|
||||
});
|
||||
} else {
|
||||
layer.msg(rec_info.msg, { icon: 2, time: 1200 });
|
||||
}
|
||||
})()
|
||||
return false;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
||||
<script>
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
Reference in New Issue
Block a user