添加网站文件

This commit is contained in:
2025-12-22 13:59:40 +08:00
commit 117aaf83d1
19468 changed files with 2111999 additions and 0 deletions

View File

@@ -0,0 +1,186 @@
{layout name="layout2" /}
<style>
.layui-form-label{
width: 120px;
}
.pay-li {
float: left;
opacity: 1;
position: relative;
}
.pay-img {
width: 80px;
height: 80px;
padding: 4px;
}
.pay-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-alipay" id="layuiadmin-form-alipay" style="padding: 20px 30px 0 0;">
<div class="layui-form-item">
<label class="layui-form-label">支付简称:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="short_name" value="{$info.short_name | default = ''}" lay-verify="check_required" lay-verType="tips" autocomplete="off" class="layui-input">
<div class="layui-form-mid layui-word-aux">会员在商城看见的支付名称</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">支付图标</label>
<div class="layui-input-inline">
<div style="height:80px;line-height:80px">
<input name="icon" type="hidden" value="{$info.icon}">
{if !empty($info.icon)}
<div class="pay-img-add" style="display: none" ></div>
<div class="pay-li">
<img class="pay-img" src="{$info.icon}">
<a class="pay-img-del-x" style="display: none">x</a>
</div>
{else}
<div class="pay-img-add" ></div>
{/if}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<label class=" layui-form-mid layui-word-aux">支付方式图标。建议尺寸宽100px*高100pxjpgjpegpng格式</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">应用ID</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="app_id" value="{$info.config.app_id | default = ''}" lay-verify="check_required" lay-verType="tips" autocomplete="off" class="layui-input">
<div class="layui-form-mid layui-word-aux">支付宝应用APP_ID</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">应用私钥:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="private_key" value="{$info.config.private_key | default = ''}" lay-verify="check_required" lay-verType="tips" autocomplete="off" class="layui-input">
<div class="layui-form-mid layui-word-aux">应用私钥private_key</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">支付宝公钥:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="ali_public_key" value="{$info.config.ali_public_key | default = ''}" lay-verify="check_required" lay-verType="tips" autocomplete="off" class="layui-input">
<div class="layui-form-mid layui-word-aux">支付宝公钥ali_public_key</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="number" name="sort" value="{$info.sort | default = ''}" placeholder="请输入排序" class="layui-input">
<div class=" layui-form-mid layui-word-aux">排序越小越前</div>
</div>
</div>
</div>
<div class="layui-form-item" id="pay_use">
<label class="layui-form-label" >状态:</label>
<div class="layui-input-block">
<input type="radio" name="status" value=1 title="启用"{if condition="$info.status eq 1" }checked{/if}>
<input type="radio" name="status" value=0 title="关闭" {if condition="$info.status eq 0" }checked{/if}>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="pay_config-submit-edit" id="pay_config-submit-edit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form','like'], function(){
var $ = layui.$
,form = layui.form
,like = layui.like;
//上传图片
like.imageUpload('.pay-img-add', function (uri, element) {
if(uri.length>1){
layer.msg('最多最能选中1张图片');
return;
}
var html = '<div class="pay-li">\n' +
'<img class="pay-img" ' +
'src="' + uri[0] + '">' +
'<a class="pay-img-del-x">x</a>' +
'</div>';
element.prev().val(like.getUrlFileName(uri[0], '{$storageUrl}'));
element.parent().append(html);
element.css('display','none');
}, true);
//删除图片
$(document).on('click', '.pay-img-del-x', function () {
$(this).parent().siblings('input').val('');
$(this).parent().prev().css('display','block');
$(this).parent().remove();
});
//显示图片
$(document).on('click', '.pay-img', function () {
var image = $(this).attr('src');
like.showImg(image,400);
});
// 删除按钮的显示与隐藏
$(document).on('mouseover', '.pay-img', function () {
$(this).next().show();
});
$(document).on('mouseout', '.pay-img', function () {
$(this).next().hide();
});
$(document).on('mouseover', '.pay-img-del-x', function () {
$(this).show();
});
$(document).on('mouseout', '.pay-img-del-x', function () {
$(this).hide();
});
form.verify({
check_required: function (value, item) {
var status = $('input[name="status"]:checked').val();
value = value.trim();
if (status == 1 && value.length == 0) {
return '请填写完整';
}
}
});
})
</script>

View File

@@ -0,0 +1,156 @@
{layout name="layout2" /}
<style>
.pay-li {
float: left;
opacity: 1;
position: relative;
}
.pay-img {
width: 80px;
height: 80px;
padding: 4px;
}
.pay-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-balance" id="layuiadmin-form-balance" style="padding: 20px 30px 0 0;">
<div class="layui-form-item">
<label class="layui-form-label">支付简称:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="short_name" value="{$info.short_name | default = ''}" lay-verify="check_required" lay-verType="tips" autocomplete="off" class="layui-input">
<div class="layui-form-mid layui-word-aux">会员在商城看见的支付名称</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">支付图标</label>
<div class="layui-input-inline">
<div style="height:80px;line-height:80px">
<input name="icon" type="hidden" value="{$info.icon}">
{if !empty($info.icon)}
<div class="pay-img-add" style="display: none" ></div>
<div class="pay-li">
<img class="pay-img" src="{$info.icon}">
<a class="pay-img-del-x" style="display: none">x</a>
</div>
{else}
<div class="pay-img-add" ></div>
{/if}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<label class=" layui-form-mid layui-word-aux">支付方式图标。建议尺寸宽100px*高100pxjpgjpegpng格式</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="number" name="sort" value="{$info.sort | default = ''}" class="layui-input" >
<div class=" layui-form-mid layui-word-aux">排序越小越前</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态:</label>
<div class="layui-input-block">
<input type="radio" name="status" value=1 title="启用"{if condition="$info.status eq 1" }checked{/if}>
<input type="radio" name="status" value=0 title="关闭" {if condition="$info.status eq 0" }checked{/if}>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="pay_config-submit-edit" id="pay_config-submit-edit" value="确认">
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form','like'], function(){
var $ = layui.$
,form = layui.form
,like = layui.like;
//上传图片
like.imageUpload('.pay-img-add', function (uri, element) {
if(uri.length>1){
layer.msg('最多最能选中1张图片');
return;
}
var html = '<div class="pay-li">\n' +
'<img class="pay-img" ' +
'src="' + uri[0] + '">' +
'<a class="pay-img-del-x">x</a>' +
'</div>';
element.prev().val(like.getUrlFileName(uri[0], '{$storageUrl}'));
element.parent().append(html);
element.css('display','none');
}, true);
//删除图片
$(document).on('click', '.pay-img-del-x', function () {
$(this).parent().siblings('input').val('');
$(this).parent().prev().css('display','block');
$(this).parent().remove();
});
//显示图片
$(document).on('click', '.pay-img', function () {
var image = $(this).attr('src');
like.showImg(image,400);
});
// 删除按钮的显示与隐藏
$(document).on('mouseover', '.pay-img', function () {
$(this).next().show();
});
$(document).on('mouseout', '.pay-img', function () {
$(this).next().hide();
});
$(document).on('mouseover', '.pay-img-del-x', function () {
$(this).show();
});
$(document).on('mouseout', '.pay-img-del-x', function () {
$(this).hide();
});
form.verify({
check_required: function (value, item) {
var status = $('input[name="status"]:checked').val();
value = value.trim();
if (status == 1 && value.length == 0) {
return '请填写完整';
}
}
});
})
</script>

View File

@@ -0,0 +1,303 @@
{layout name="layout2" /}
<style>
.layui-form-label {
width: 120px;
}
.pay-li {
float: left;
opacity: 1;
position: relative;
}
.pay-img {
width: 80px;
height: 80px;
padding: 4px;
}
.pay-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
.copy{
margin-left: 10px;
margin-top: 5px;
}
.cert-add,.key-add{
height: 80px;
width: 80px;
float: left;
opacity: 1;
position: relative;
border:1px dashed #a0a0a0;
background-image:url('/static/common/image/default/add_file.png');
background-repeat: no-repeat;
background-position: 50% 35%;
background-size:40px 40px;
margin: 4px;
text-align: center;
}
.upload-cert-a{
cursor: pointer;
position: absolute;
z-index: 100;
top: 58px;
right: -10%;
width: 100px;
height: 20px;
font-size: 8px;
line-height: 16px;
text-align: center;
border-radius: 10px;
color: #4e8bff;
}
.upload-cert-a:hover {
color: #0641cb;
}
.pay-cert{
height:80px;line-height:80px
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-official" id="layuiadmin-form-official" style="padding: 20px 30px 0 0;">
<div class="layui-form-item">
<label class="layui-form-label">支付简称:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="short_name" value="{$info.short_name}" lay-verify="check_required" lay-verType="tips" autocomplete="off" class="layui-input ">
<div class="layui-form-mid layui-word-aux">会员在商城看见的支付名称</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">支付图标</label>
<div class="layui-input-inline">
<div style="height:80px;line-height:80px">
<input name="icon" type="hidden" value="{$info.icon}">
{if !empty($info.icon)}
<div class="pay-img-add" style="display: none" ></div>
<div class="pay-li">
<img class="pay-img" src="{$info.icon}">
<a class="pay-img-del-x" style="display: none">x</a>
</div>
{else}
<div class="pay-img-add" ></div>
{/if}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<label class=" layui-form-mid layui-word-aux">支付方式图标。建议尺寸宽100px*高100pxjpgjpegpng格式</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商户API密钥</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="pay_sign_key" value="{$info.config.pay_sign_key | default = ''}" lay-verify="check_required" lay-verType="tips" autocomplete="off" class="layui-input">
<div class="layui-form-mid layui-word-aux">微信支付商户API密钥paySignKey</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">微信支付商户号:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" name="mch_id" value="{$info.config.mch_id | default = ''}" lay-verify="check_required" lay-verType="tips" autocomplete="off" class="layui-input">
<div class="layui-form-mid layui-word-aux">微信支付商户号MCHID</div>
</div>
</div>
</div>
<!--支付证书-->
<div class="layui-form-item">
<label class="layui-form-label">支付证书:</label>
<div class="layui-inline">
<div class="pay-cert">
<input class="text" type="hidden" name="apiclient_cert" value="{$info.config.apiclient_cert | default = ''}" >
{if !empty($info.config.apiclient_cert)}
<div class="cert-add" style="display: none;cursor: pointer;">
<a class="upload-cert-a">+ 添加文件</a>
</div>
<div class="pay-li">
<img class="pay-img" src="/static/common/image/default/upload.png">
<a class="pay-img-del-x" style="display: none">x</a>
</div>
{else/}
<div class="cert-add" style="cursor: pointer;">
<a class="upload-cert-a">+ 添加文件</a>
</div>
{/if}
</div>
<div class=" layui-form-mid layui-word-aux">
微信支付证书apiclient_cert.pem前往微信商家平台下载文件名一般为apiclient_cert.pem
</div>
</div>
</div>
<!--支付证书密钥-->
<div class="layui-form-item">
<label class="layui-form-label">支付证书密钥:</label>
<div class="layui-inline">
<div class="pay-cert">
<input class="text" type="hidden" name="apiclient_key" value="{$info.config.apiclient_key | default = ''}" >
{if !empty($info.config.apiclient_key)}
<div class="key-add" style="display: none;cursor: pointer;">
<a class="upload-cert-a">+ 添加文件</a>
</div>
<div class="pay-li">
<img class="pay-img" src="/static/common/image/default/upload.png">
<a class="pay-img-del-x" style="display: none">x</a>
</div>
{else/}
<div class="key-add" style="cursor: pointer;">
<a class="upload-cert-a">+ 添加文件</a>
</div>
{/if}
</div>
<div class=" layui-form-mid layui-word-aux">
微信支付证书密钥apiclient_key.pem前往微信商家平台下载。文件名一般为apiclient_key.pem
</div>
</div>
</div>
<!--支付授权目录-->
<div class="layui-form-item">
<label class="layui-form-label" >支付授权目录:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="text" value="{$domain}/" autocomplete="off" class="layui-input">
</div>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm copy" >复制</button>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<label class="layui-form-mid layui-word-aux">支付授权目录仅供参考,请根据微信支付的系统提示进行设置</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序:</label>
<div class="layui-input-block">
<div class="layui-col-md4">
<input type="number" name="sort" value="{$info.sort}" class="layui-input" autocomplete="off">
<div class=" layui-form-mid layui-word-aux">排序越小越前</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态:</label>
<div class="layui-input-block">
<input type="radio" name="status" value=1 title="启用"{if condition="$info.status eq 1" }checked{/if}>
<input type="radio" name="status" value=0 title="关闭" {if condition="$info.status eq 0" }checked{/if}>
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="pay_config-submit-edit" id="pay_config-submit-edit" value="确认">
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form','like','upload'], function(){
var $ = layui.$
,form = layui.form
,like = layui.like
,upload = layui.upload;
//复制
$(document).on('click', '.copy', function () {
var copyText = $(this).prev().children();
copyText.select();
document.execCommand("Copy");
});
//==========================================上传证书start=========================================================
like.certUpload('.cert-add', '{:url("file/other")}?local=1&sub_dir=cert', '{$storageUrl}');
like.certUpload('.key-add', '{:url("file/other")}?local=1&sub_dir=cert', '{$storageUrl}');
//==========================================上传证书end======================================================
//===========================================支付图标start======================================================
like.imageUpload('.pay-img-add', function (uri, element) {
if(uri.length>1){
layer.msg('最多最能选中1张图片');
return;
}
var html = '<div class="pay-li">\n' +
'<img class="pay-img" ' +
'src="' + uri[0] + '">' +
'<a class="pay-img-del-x">x</a>' +
'</div>';
element.prev().val(like.getUrlFileName(uri[0], '{$storageUrl}'));
element.parent().append(html);
element.css('display','none');
}, true);
//===========================================支付图标end======================================================
// 删除按钮的显示与隐藏
$(document).on('mouseover', '.pay-img', function () {
$(this).next().show();
});
$(document).on('mouseout', '.pay-img', function () {
$(this).next().hide();
});
$(document).on('mouseover', '.pay-img-del-x', function () {
$(this).show();
});
$(document).on('mouseout', '.pay-img-del-x', function () {
$(this).hide();
});
//删除图片/证书
$(document).on('click', '.pay-img-del-x', function () {
$(this).parent().siblings('input').val('');
$(this).parent().siblings().css('display','block');
$(this).parent().remove();
});
form.verify({
check_required: function (value, item) {
var status = $('input[name="status"]:checked').val();
value = value.trim();
if (status == 1 && value.length == 0) {
return '请填写完整';
}
}
});
})
</script>

View File

@@ -0,0 +1,139 @@
{layout name="layout1" /}
<style>
.layui-table-cell {height: auto; }
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*商城支付方式设置,不同应用场景支持的支付方式不同。</p>
<p>*请前往微信和支付宝平台申请对应的支付端口。</p>
<p>*微信支付的appidappsecret从微信功能模块获取</p>
</div>
</div>
</div>
</div>
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<h1 class="site-h1">支付设置</h1>
</div>
<div class="layui-card-body" id="card-body">
<table id="pay_config-lists" lay-filter="pay_config-lists"></table>
<script type="text/html" id="icon">
<img src="{{d.icon}}" style="width: 48px; height: 48px" class="image-show">
</script>
<script type="text/html" id="pay_config-operation">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">配置</a>
</script>
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index','table','like','form'], function(){
var $ = layui.$
,form = layui.form
,table = layui.table
,like = layui.like
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src, 400);
});
table.render({
id: 'pay_config-lists',
elem: '#pay_config-lists'
,url: '{:url("pay_config/lists")}'
,cols: [[
{field: 'name', title: '支付方式'}
,{field: 'icon', title: '图标', toolbar: '#icon', align: 'center'}
,{field: 'short_name', title: '简称', align: 'center'}
,{field: 'status_text', title: '状态', minWidth: 40, align: 'center'}
,{field: 'sort', title: '排序', event: 'tips', sort: true}
,{fixed: 'right', title: '操作', align: 'center', toolbar: '#pay_config-operation'}
]]
,text: {none: '暂无数据!'}
,parseData: function(res){
return {
"code":res.code,
"msg":res.msg,
"count": res.data.count,
"data": res.data.list,
};
}
,done: function(res, curr, count){
// 解决操作栏因为内容过多换行问题
$(".layui-table-main tr").each(function (index, val) {
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
$($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
});
}
});
table.on('tool(pay_config-lists)', function(obj){
if(obj.event === 'edit') {
var name = obj.data.name;
var code = obj.data.code;
var edit_page;
if (code == 'balance') {
edit_page = 'editBalance';
}else if (code == 'wechat') {
edit_page = 'editWechat';
}else if (code == 'alipay') {
edit_page = 'editAlipay';
}
layer.open({
type: 2
,title: '编辑'+name
,content: '{:url("pay_config/'+edit_page+'")}?name='+name
,area: ['90%', '90%']
,btn: ['确定', '取消']
,yes: function(index, layero) {
var iframeWindow = window['layui-layer-iframe'+ index]
,submit = layero.find('iframe').contents().find('#pay_config-submit-edit');
//监听提交
iframeWindow.layui.form.on('submit(pay_config-submit-edit)', function(data){
var field = data.field;
like.ajax({
url:'{:url("pay_config/'+edit_page+'")}',
data:field,
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
});
layer.close(index);
table.reload('pay_config-lists');
}
}
});
});
submit.trigger('click');
}
})
}
});
});
</script>