代码功能更新
This commit is contained in:
Executable
+208
@@ -0,0 +1,208 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form" id="htmlNode"></form>
|
||||
|
||||
<script type="text/html" id="loginTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<blockquote class="layui-elem-quote">
|
||||
此处登录laytp官网账号
|
||||
如果没有laytp官网账号
|
||||
请先 <a style="color:#2d8cf0;" href="https://www.laytp.com" target="_blank">注册</a>
|
||||
</blockquote>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="用户名"> <text title="必填项" style="color:red;">*</text> 用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="username" id="username" placeholder="用户名" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="密码"> <text title="必填项" style="color:red;">*</text> 密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="password" name="password" id="password" placeholder="密码" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm addBtn" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="userTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<blockquote class="layui-elem-quote">
|
||||
您已登录,昵称:{{d.nickname}}。请先购买插件<br />
|
||||
</blockquote>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="插件名">插件名</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid">{{d.name}}({{d.alias}})</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="价格">价格</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid">¥{{d.price/100}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="支付方式">支付方式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="payment" value="ali" title="支付宝" checked>
|
||||
<button type="button" class="layui-btn layui-btn-normal createOrder">生成支付二维码</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="支付二维码">支付二维码</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid" id="qrCode">请点击[生成支付二维码]按钮,生成支付二维码</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="支付状态">支付状态</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid" id="payStatus">
|
||||
请点击[生成支付二维码]按钮,生成支付二维码
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery.qrcode.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/qrcode.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery.qrcode.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/qrcode.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var name = decodeURI(facade.getUrlParam('name'));
|
||||
var alias = facade.getUrlParam('alias');
|
||||
var price = facade.getUrlParam('price');
|
||||
facade.ajax({
|
||||
headers: layui.context.get("laytpGwToken"),
|
||||
url: "https://api.laytp.com/user/info",
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
if(res.data){
|
||||
res.data.name = name;
|
||||
res.data.alias = alias;
|
||||
res.data.price = price;
|
||||
layui.laytpl($("#userTemplate").html()).render(res.data, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
layui.form.render();
|
||||
});
|
||||
}else{
|
||||
layui.laytpl($("#loginTemplate").html()).render({}, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var interval;
|
||||
|
||||
// 监听生成支付二维码按钮点击
|
||||
$(document).off("click", ".createOrder").on("click", ".createOrder", function () {
|
||||
var createOrderBtnAnim = layui.button.load({elem:$(".createOrder")});
|
||||
var data = layui.form.val("layui-form");
|
||||
facade.ajax({
|
||||
headers: layui.context.get("laytpGwToken"),
|
||||
url: "https://api.laytp.com/plugins/createOrder",
|
||||
data:{plugin:alias, payment:data.payment},
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
createOrderBtnAnim.stop();
|
||||
clearInterval(interval);
|
||||
if(res.code === 0){
|
||||
$('#qrCode').html('');
|
||||
$('#qrCode').qrcode(res.data.code_url);
|
||||
$('#payStatus').html('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i><span style="color:red">等待扫码支付中,支付完成请勿关闭当前页面,程序将自动安装插件...</span>');
|
||||
// 开始轮询获取订单支付状态
|
||||
interval = setInterval(function(){
|
||||
facade.ajax({
|
||||
url: "https://api.laytp.com/plugins/getOrderStatus",
|
||||
data: {order_no:res.data.order_no},
|
||||
successAlert: false,
|
||||
errorAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0 && parseInt(res.data) === 2){
|
||||
clearInterval(interval);
|
||||
$('#payStatus').html('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i><span style="color:#36b368">支付完成,正在安装插件</span>');
|
||||
facade.ajax({
|
||||
route:"/admin.plugins/install",
|
||||
data:{"plugin":alias, "laytpGwToken":layui.context.get("laytpGwToken").token}
|
||||
}).done(function(installRes){
|
||||
if(installRes.code === 0){
|
||||
parent.facade.success("安装成功");
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}else{
|
||||
facade.error("插件包程序错误,无法安装,请联系管理员");
|
||||
}
|
||||
}).fail(function(){
|
||||
facade.error("插件购买成功,安装时网络错误,请重新安装");
|
||||
});
|
||||
}
|
||||
});
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
}).fail(function(){
|
||||
createOrderBtnAnim.stop();
|
||||
});
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+88
@@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>插件市场</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="所属分类">所属分类</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="category_id"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.plugins/category"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择所属分类"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="offLineInstall">
|
||||
<i class="layui-icon layui-icon-download-circle"></i>
|
||||
离线安装
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="user">
|
||||
<i class="layui-icon layui-icon-user"></i>
|
||||
会员信息
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(d.installed == 2){ }}
|
||||
<div class="layui-btn-group">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs version_list_{{ d.id }}" title="查看版本列表" layer-tips="查看版本列表"><i class="layui-icon layui-icon-triangle-d"></i> </button>
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="installNewest">安装最新版本</button>
|
||||
</div>
|
||||
{{# }else{ }}
|
||||
<button class="laytp-btn laytp-btn-xs" lay-event="uninstall"><i class="layui-icon layui-icon-delete"></i> 卸载</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/plugins.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/plugins.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+129
@@ -0,0 +1,129 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form" id="htmlNode">
|
||||
|
||||
</form>
|
||||
<script type="text/html" id="loginTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<blockquote class="layui-elem-quote">
|
||||
此处登录laytp官网账号
|
||||
如果没有laytp官网账号
|
||||
请先 <a style="color:#2d8cf0;" href="https://www.laytp.com" target="_blank">注册</a>
|
||||
</blockquote>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="用户名"> <text title="必填项" style="color:red;">*</text> 用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="username" id="username" placeholder="用户名" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="密码"> <text title="必填项" style="color:red;">*</text> 密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="password" name="password" id="password" placeholder="密码" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm addBtn" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<script type="text/html" id="userTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<blockquote class="layui-elem-quote">
|
||||
您已经登录<br />
|
||||
用户名:{{d.username}}<br />
|
||||
可以 <a style="color:#2d8cf0;" href="javascript:void(0);" class="logout">退出</a> 后切换账号
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
facade.ajax({
|
||||
headers: layui.context.get("laytpGwToken"),
|
||||
url: "https://api.laytp.com/user/info",
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
if(res.data){
|
||||
layui.laytpl($("#userTemplate").html()).render(res.data, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
});
|
||||
}else{
|
||||
layui.laytpl($("#loginTemplate").html()).render({}, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 退出登录
|
||||
$(document).off("click", ".logout").on("click", ".logout", function () {
|
||||
localStorage.removeItem('laytpGwToken');
|
||||
facade.success("退出成功");
|
||||
layui.laytpl($("#loginTemplate").html()).render({}, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
});
|
||||
});
|
||||
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(".addBtn")});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
url:'https://api.laytp.com/user/clientLogin',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.context.put('laytpGwToken', res.data);
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.facade.success("登录成功");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user