js包处理
1、下载clipboardjs包,上传到服务器
2、修改app/admin/bootstrap.php,插入:
Admin::js('/js/clipboard.min.js');
自定义操作类
namespace App\Admin\Extensions;
use Encore\Admin\Admin;
use App\Address;
class CopyUrl
{
protected $id;
public function __construct($id)
{
$this->id = $id;
}
protected function script()
{
return <<<SCRIPT
$('.grid-copyUrl-row').on('click', function () {
console.log($(this).data('id'));
});
var urls = document.getElementsByClassName('grid-copyUrl-row');
var clipboard = new ClipboardJS(urls);
clipboard.on('success', function(e) {
alert('复制收件地址成功!');
});
SCRIPT;
}
protected function render()
{
Admin::script($this->script());
$address = Address::find($this->id);
$string = $address->province.$address->city.$address->district.$address->street.' 联系人:'.$address->contact.' 联系电话:'.$address->mobile;
return "<a class='grid-copyUrl-row' data-clipboard-text='{$string}' title='复制收件地址'><i class='fa fa-location-arrow'></i></a>";
}
public function __toString()
{
return $this->render();
}
}
gird添加自定义按钮
//引入自定义操作类
use App\Admin\Extensions\CopyUrl;
protected function grid(){
$grid->actions(function ($actions) {
$actions->append(new CopyUrl($actions->row['address_id']));
});
}