您的位置:首页 > 教育 > 锐评 > laravel Dcat Admin 入门应用(七)列copyable和自定义copy

laravel Dcat Admin 入门应用(七)列copyable和自定义copy

2025/5/13 23:44:48 来源:https://blog.csdn.net/nbplus_007/article/details/140036665  浏览:    关键词:laravel Dcat Admin 入门应用(七)列copyable和自定义copy

laravel Dcat Admin 入门应用(七)列copyable和自定义copy

Dcat Admin 是一个基于 Laravel-admin 二次开发而成的后台构建工具,只需很少的代码即可构建出一个功能完善的高颜值后台系统。支持页面一键生成 CURD 代码,内置丰富的后台常用组件,开箱即用,让开发者告别冗杂的 HTML 代码。
laravel Dcat Admin 入门应用(三)Grid 之 Column

福利彩蛋:没有好玩的 API 接口?上百款免费接口等你来,免费 API,免费 API 大全

copyable复制

系统自带列copy:方便快捷,但是不能满足自定义信息复制

    //当前类可以复制$grid->column('copy')->copyable() 

image.png

自定义复制

自定义复制,显示编号,点击复制:可以自定义需要复制的内容,不局限于显示的内容,
演示:

image.png

实现代码

js绑定和触发

首先在controller里面添加js脚本实现selector绑定和触发

    protected function script(){return <<<JS//绑定selector,触发的时候显示弹窗
$('.content-body').on('click', '.copy-author-id', function () {showCopy($(this))
})//点击 复制的是执行复制
$('body').on('click', '.custom-copy-id', function () {customCopy($(this))
})JS;}
页面渲染时候加载
     /*** 页面列表展示,可以附加一些页面设置** @param Content $content* @return Content*/public function index(Content $content){// 在这里可以引入你的js或css文件Admin::js(static::$js);// 需要在页面执行的JS代码,例如初始化代码// 通过 Admin::script 设置的JS代码会自动在所有JS脚本都加载完毕后执行Admin::script($this->script());//可以链式添加页面原始(html,js,css等)一个body相当于页面一个div.row层return $content->body($this->grid());}
grid列处理
//点击标题的时候复制标题对应的Id:其他需要复制的内容都可以放到data-content中$grid->column('title', admin_trans_field('nick_name'))->display(function ($title) {return "<span class='copy-author-id' data-content='" . encodeId($this->id) . "'>$title</span>";});
引入js copy文件
    public static $js = ['/js/previewImg.js'];

/js/previewImg.js 文件内容

    //显示信息copy的弹窗层function showCopy(that) {layer.closeAll()var sourceId = that.attr('data-content')var cp = ' <a class="custom-copy-id" href="javascript:;" data-content="' + sourceId + '" style="color:red;cursor: pointer;">复制ID</a>';var html = sourceId + cp;layer.tips(html, that, {tips: [1, 'black'], //还可配置颜色,area: ['auto', 'auto'],time: 10000,shadeClose:true,shade:0.01});}/*** 自定义copy** @param that*/function customCopy(that) {var content = that.data('content');var $temp = $('<input>');$("body").append($temp);$temp.val(content).select();document.execCommand("copy");$temp.remove();layer.closeAll()}

福利彩蛋:没有好玩的 API 接口?上百款免费接口等你来,免费 API,免费 API 大全

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com