<!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>
                            <!-- <?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>微信个人码与经营码只能二选一，不能同时添加，商家码监听需要关注“微信收款商业版”公众号，赞赏码正常添加。</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>