mirror of
https://gitee.com/technical-laohu/mpay.git
synced 2025-09-17 09:16:40 +08:00
191 lines
8.9 KiB
HTML
191 lines
8.9 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>添加二维码</title>
|
||
<link rel="stylesheet" href="/component/pear/css/pear.css" />
|
||
<style>
|
||
.inputTxt {
|
||
margin-left: 10px;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<form id="set-channel" class="layui-form layui-form-pane" action="" lay-filter="channel-edit">
|
||
<div class="mainBox">
|
||
<div class="main-container">
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">终端编号</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="channel" autocomplete="off" class="layui-input" disabled>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">收款通道</label>
|
||
<div class="layui-input-block">
|
||
<select class="type" lay-filter="select-type">
|
||
<option value="">请选择</option>
|
||
<!-- <?php if ($platform == 'wxpay') { ?> -->
|
||
<option value="wxpay1">个人码</option>
|
||
<option value="wxpay2">赞赏码</option>
|
||
<option value="wxpay3">经营码</option>
|
||
<option value="wxpay4">商家码</option>
|
||
<option value="wxpay5">店员码</option>
|
||
<!-- <?php } ?> -->
|
||
<!-- <?php if ($platform == 'alipay') { ?> -->
|
||
<option value="alipay1">收钱码</option>
|
||
<option value="alipay2">经营码</option>
|
||
<!-- <?php } ?> -->
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">收款样式</label>
|
||
<div class="layui-input-block">
|
||
<select name="type" lay-filter="type">
|
||
<option value="">请选择</option>
|
||
<option value="0">付款链接</option>
|
||
<option value="1">图片地址</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">收款码</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="qrcode" autocomplete="off" lay-affix="upload-drag"
|
||
lay-filter="scanning" class="layui-input" data-type="">
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<blockquote class="layui-elem-quote">
|
||
<!-- <?php if ($platform == 'wxpay') { ?> -->
|
||
<p><strong>手机监控:</strong>微信个人码与经营码只能二选一,不能同时添加,且经营码只能通过个人码通道1添加成功,不然不回调;商家码监听需要关注“微信收款商业版”公众号,赞赏码和店员码正常添加。</p>
|
||
<p><strong>电脑监控:</strong>所有收款码均可监控,需要将收款通知聊天窗口单独拖出来</p>
|
||
<!-- <?php } ?> -->
|
||
<!-- <?php if ($platform == 'alipay') { ?> -->
|
||
<p><strong>手机监控:</strong>支付宝收钱码与经营码通知无法做区分,只能二选一,且只能通过收钱码选项添加</p>
|
||
<p><strong>电脑监控:</strong>暂不支持PC端监控,可以选择支付宝账单方式监听收款</p>
|
||
<!-- <?php } ?> -->
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="bottom">
|
||
<div class="button-container">
|
||
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="save">
|
||
<i class="layui-icon layui-icon-ok"></i>
|
||
提交
|
||
</button>
|
||
<button type="reset" class="pear-btn pear-btn-sm">
|
||
<i class="layui-icon layui-icon-refresh"></i>
|
||
重置
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script src="/component/layui/layui.js"></script>
|
||
<script src="/component/pear/pear.js"></script>
|
||
<script>
|
||
layui.use(['form'], function () {
|
||
let form = layui.form;
|
||
|
||
form.on('input-affix(scanning)', function (obj) {
|
||
const type = obj.elem.getAttribute('data-type');
|
||
if (type === '') {
|
||
layer.msg('请先选择二维码类型!', { tips: 2, time: 1200 });
|
||
return false;
|
||
}
|
||
if (type === 'img') {
|
||
uploadCodeImg(obj.elem);
|
||
return false;
|
||
}
|
||
if (type === 'link') {
|
||
window.open('https://cli.im/deqr', '_blank');
|
||
return false;
|
||
}
|
||
});
|
||
form.on('select(type)', function (data) {
|
||
const form = data.elem.form;
|
||
const value = data.value;
|
||
const inuptelem = form.querySelector('input[name="qrcode"]');
|
||
if (value === '0') {
|
||
inuptelem.setAttribute('data-type', 'link');
|
||
return false;
|
||
}
|
||
if (value === '1') {
|
||
inuptelem.setAttribute('data-type', 'img');
|
||
return false;
|
||
}
|
||
});
|
||
|
||
// select 事件
|
||
form.on('select(select-type)', function (data) {
|
||
const value = data.value; // 获得被选中的值
|
||
const channel = document.querySelector('input[name="channel"]');
|
||
channel.value = value + '#<?php echo $account ?>';
|
||
});
|
||
form.on('submit(save)', function (obj) {
|
||
let field = obj.field;
|
||
field.account_id = '<?php echo $aid ?>';
|
||
(async () => {
|
||
const url = '/api/PayManage/addChannel';
|
||
const info = field;
|
||
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.window.location.reload();
|
||
});
|
||
} else {
|
||
layer.msg(rec_info.msg, { icon: 2, time: 1200 });
|
||
}
|
||
})()
|
||
return false;
|
||
});
|
||
// 上传二维码图片
|
||
async function uploadCodeImg(elem) {
|
||
const input = document.createElement('input');
|
||
input.type = 'file';
|
||
input.accept = 'image/*';
|
||
input.onchange = async (event) => {
|
||
const file = event.target.files[0];
|
||
if (file) {
|
||
const formData = new FormData();
|
||
formData.append('codeimg', file);
|
||
try {
|
||
const response = await fetch('/api/PayManage/uploadQrcode', {
|
||
method: 'POST',
|
||
body: formData,
|
||
});
|
||
if (response.ok) {
|
||
const result = await response.json();
|
||
if (result.code === 0) {
|
||
layer.msg(result.msg, { icon: 1, time: 1200 });
|
||
elem.value = result.data.imgpath;
|
||
return result.data.imgpath;
|
||
} else {
|
||
layer.msg('上传失败:' + result.message, { tips: 2, time: 1200 });
|
||
}
|
||
} else {
|
||
layer.msg('上传失败:服务器错误', { tips: 2, time: 1200 });
|
||
}
|
||
} catch (error) {
|
||
layer.msg('上传失败:' + error.message, { tips: 2, time: 1200 });
|
||
}
|
||
}
|
||
};
|
||
input.click();
|
||
}
|
||
})
|
||
</script>
|
||
</body>
|
||
|
||
</html> |