Khi bạn in một trang Web từ trình duyệt Web của mình, bạn sẽ nhận thấy rằng bản in có chứa một số thông tin bổ sung như số trang, ngày tháng và URL của trang web ở cuối trang. Đôi khi bạn có thể không cần thông tin này trong bản in của mình để thu dọn công việc của mình.
Vì vậy, đây là một vài phương pháp cho phép bạn in các trang web mà không cần thêm thông tin xuất hiện ở cuối trang.
Cấp cho quản trị viên của bạn quyền in chế độ xem tùy chỉnh. Không có cửa sổ mới, không nhảy trang - chỉ cần in bằng AJAX
Tôi đã thực hành Ba lô cho Laravel trong các dự án của mình từ năm 2017. Tất cả các dự án của tôi đều có nội dung cần in - Tôi cần một nút bên trong chế độ xem bảng để in thực thể đó nhưng không cần mở chế độ xem hiển thị [chế độ xem Hiển thị mặc định đã có nút in]. Tôi muốn nó in một chế độ xem tùy chỉnh, ngay lúc đó và ở đó trong chế độ xem bảng mà không phải tải một trang khác. Ví dụ tốt nhất cho điều này có lẽ là Hóa đơn cần có chế độ xem riêng vì hóa đơn cần có giao diện nhất định. Về cơ bản thì… đại loại như thế này
Print @endif
4] Tạo tiện ích khung nội tuyến ẩn
Đây là thành phần bí mật của công thức. Khung nội tuyến ẩn nơi trang được hiển thị để in. Chúng tôi thêm nó vào chế độ xem dưới dạng tiện ích con thay vì ghi đè tệp chế độ xem
//resources\views\vendor\backpack\base\widgets\iframe.blade.php
5] Thiết lập Thao tác & Widget trong Bộ điều khiển
Cuối cùng, chúng tôi đính kèm thao tác & tiện ích đã tạo vào CrudController nơi chúng tôi muốn
//app\Http\Controllers\Admin\OrderCrudController.php
use \App\Http\Controllers\Admin\Operations\BrowserPrintOperation;
public function setup[]{
CRUD::setModel[\App\Models\Order::class];
CRUD::setRoute[config['backpack.base.route_prefix'] . '/order'];
CRUD::setEntityNameStrings['order', 'orders'];
$this->crud->operation[['list', 'show'], function [] {
$this->data['widgets']['before_content'] = [
[
'type' => 'iframe',
],
];
}];
}
6] Xác định Print View trong Model
Mỗi Thực thể có bố cục in riêng. Vì vậy, chúng tôi chọn xác định nó trong chính mô hình. Chúng tôi truy cập thuộc tính này trong hoạt động được xác định. Bạn có thể xác định logic tùy chỉnh của mình bằng trình truy cập nếu bạn có các chế độ xem riêng biệt cho cùng một mô hình. Tôi. e;
//app/Models/Order.php
public function getPrintViewAttribute[]{
return "crud::operations.print";
}
Kết quả
Một nút in được đặt đối xứng trên chế độ xem bảng & xem trước bên trong
Khi được nhấp vào, nó sẽ hiển thị cửa sổ bật lên in của chế độ xem tùy chỉnh của mô hình.
Tóm lược
Chúng tôi đã tìm hiểu về tính linh hoạt của Ba lô và tạo hành động in tùy chỉnh. Chúng ta có thể sử dụng các nguyên tắc tương tự để xác định các hoạt động như sms, email, in, nhập, xuất. Tôi hy vọng nó là hữu ích. ]
Hãy cho chúng tôi biết suy nghĩ của bạn trong phần bình luận bên dưới. Hoặc cho chúng tôi biết về những gì bạn đã xây dựng, mà bạn cho là khá thú vị, tại [email được bảo vệ] - có lẽ bạn cũng có thể tạo một bài viết về điều đó