Dcat Admin实现弹框显示二维码(支持下载)

效果

Dcat Admin实现弹框显示二维码(支持下载)

Dcat Admin实现弹框显示二维码(支持下载)

Controller代码

$grid->column('', '预览')->display(function () {
    return '二维码';
})->modal(function ($modal) {
    $modal->title('扫码领取');//模态框标题
    $modal->icon('feather icon-eye');//按钮图标
    return view('activity/qrcode', ['code' => $modal->row->code]);//配置view,传入自定义参数
});

View代码

<?php
$path = env('QR_CODE_DOMAIN');
$base64Image = (new \chillerlan\QRCode\QRCode())->render(sprintf($path, '#', $code));
?>
<style>
    .container {
        display: flex;
        align-items: center; /* 垂直居中 */
        justify-content: center; /* 水平居中 */
        margin: 0;
        text-align: center; /* 水平居中 */
        flex-flow: column;
    }

    .container img {
        display: block; /* 设置图片为块级元素,以便应用垂直居中样式 */
        margin: 0 auto; /* 使用外边距自动居中 */
    }

</style>
<div class="container">
    <div>
        <img src="<?= $base64Image ?>" alt="Base64 Image">
    </div>
    <div class="btn btn-primary  btn-outline">
        <a href="<?= $base64Image ?>" download="<?= $code ?>.png">下载</a>
    </div>
</div>

扩展

我使用的是chillerlan/php-qrcode,大家可自行选择适合的二维码扩展,也可以直接在view中使用js生成

本作品采用《CC 协议》,转载必须注明作者和本文链接
DaiChongWeb
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

下载
下载 的图片为什么打不开,格式不支持

4周前 评论

@huluobo 可能是代码解析的问题

<a href="<?= $base64Image ?>" download="<?= $code ?>.png">下载</a>
改成
$codePng = $code.'.png';
<a href="<?= $base64Image ?>" download="<?= $codePng ?>">下载</a>
4周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!