fastadmin打印页面
如下图选中订单号进行打印

html中增加代码
<div id="toolbar" class="toolbar"><a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('shipments/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>--><a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('shipments/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('shipments/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>--><a href="javascript:;" class="btn btn-danger btn-print btn-disabled disabled " title="打印发货单" >打印发货单</a>
js总增加如下代码
$('.btn-print').click(function () {var ids = Table.api.selectedids(table);//获取选中列的idFast.api.open("shipments/print?id="+ids, __('打印出库单'), {area: ['100%', '100%']});})// 为表格绑定事件Table.api.bindevent(table);
打印对应的Controller中的方法
public function print(){$ids = $this->request->get('id');$ids = explode(',',$ids);$lists = $this->model->where('id','in',$ids)->select();foreach ($lists as $key=>$value){$lists[$key]['goods_info'] = \app\admin\model\Goods::where('id',$value['goods_id'])->field('id,name,xinghao,warehouse_id,jifei_list,weight,jiaban_num')->find();$lists[$key]['warehouse_name'] = \app\admin\model\Warehouse::where('id',$lists[$key]['goods_info']['warehouse_id'])->value('name');}
// dump($lists[0]->toArray());$this->assign('lists',$lists);$admin_nickname = Session::get("admin.nickname");$this->assign('admin_nickname',$admin_nickname);return $this->fetch();}
对应的html页面
<style>.wrap{width: 800px;margin: 0 auto;}.wenli{padding: 15px 40px;height: 434.73px;}.title{font-size: 18px;color: #000000;text-align: center;padding-bottom: 5px;letter-spacing: 2px;}.sizhi{text-align: center;font-size: 13px;color: #333333;padding-bottom: 5px;}.chutitle{font-size: 16px;color: #333333;letter-spacing: 25px;text-align: center;padding-bottom: 5px;}.kebox{display: flex;align-items: center;justify-content: space-between;padding-bottom: 5px;padding-top: 5px;}.ketxt{font-size: 14px;color: #333333;flex-shrink: 0;}.oneline{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:break-word;}table{border-collapse:collapse;border-spacing:0;width: 100%;}tr{margin: 0 !important;padding: 0 !important;}td{border: 1px solid #999999;padding: 1px;text-align: center;font-size: 14px;color: #333333;}label{font-size: 14px;color: #333333;padding-right: 15px;cursor: pointer;}
</style>
<div class="form-group layer-footer"><label class="control-label col-xs-12 col-sm-2"></label><div class="col-xs-12 col-sm-8"><button type="reset" class="btn btn-primary btn-embossed btn-close"onclick="Layer.closeAll()">{:__('Close')}</button><button type="reset" class="btn btn-primary btn-embossed btn-close" onclick="doPrint()">打印</button></div>
</div>
<div id="app"><div class="wrap">{volist name="lists" id="vo"}<div class="wenli"><div class="title">深圳XXX仓储有限公司</div><div class="sizhi">地址:深圳市龙岗区平吉大道1号 电话: 0755-XXXXXX</div><div class="chutitle">出仓单</div><div class="ketxt " >收货地址:{$vo.address}</div><div class="kebox"><div class="ketxt">姓名:{$vo.shouhuoren}</div><div class="ketxt">电话:{$vo.phone}</div><div class="ketxt">
<!-- 日期-->{$vo.createtime|date="Y年m月d日",###}</div></div><table ><tr><td>序号</td><td>品名</td><td>规格</td><td>件</td><td>支</td><td>备注</td></tr><tr><td>1</td><td>{$vo.goods_info.name}</td><td>{$vo.goods_info.xinghao}</td><td>{$vo.num}</td><td></td><td></td></tr><tr><td>--</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>--</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>--</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>--</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>--</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td colspan="3">合计:</td><td>{$vo.num}</td><td>--</td><td></td></tr></table><div class="kebox"><div class="ketxt">仓管:{$vo.warehouse_name}</div><div class="ketxt">制单:{$admin_nickname}</div><div class="ketxt">提货人:_____</div></div><input type="checkbox" name="drone" value="a" {if $vo.fahuo_list == 2}checked{/if} disabled><label > 物流自提</label><input type="checkbox" name="drone" value="b" {if $vo.fahuo_list == 3}checked{/if} disabled><label > 物流送货</label><input type="checkbox" name="drone" value="f" {if $vo.fahuo_list == 1}checked{/if} disabled><label > 快递</label><input type="checkbox" name="drone" value="g" {if $vo.fahuo_list == 4}checked{/if} disabled><label> 货拉拉</label><input type="checkbox" name="drone" value="d" {if $vo.pay_list == 2}checked{/if} disabled><label > 到付</label><input type="checkbox" name="drone" value="e" {if $vo.pay_list == 1}checked{/if} disabled><label > 现付</label></div>{/volist}</div></div>
<style></style>
<script>function doPrint() {window.print()}
</script>
打印时页面效果

相关文章:
fastadmin打印页面
如下图选中订单号进行打印 html中增加代码 <div id"toolbar" class"toolbar"><a href"javascript:;" class"btn btn-primary btn-refresh" title"{:__(Refresh)}" ><i class"fa fa-refresh">&l…...
Java 将word转为PDF的三种方式和处理在服务器上下载后乱码的格式
我这边是因为业务需要将之前导出的word文档转换为PDF文件,然后页面预览下载这样的情况。之前导出word文档又不是我做的,所以为了不影响业务,只是将最后在输出流时转换成了PDF,当时本地调用没什么问题,一切正常…...
C\C++ 获取最值
C C 语言的不同类型的最值可以在 limits.h 头文件里找到定义 #include <limits.h>int main() {printf("%d", INT_MAX); // 整数最大值printf("%d", INT_MIN); // 整数最小值 } C C 有模板,可以通过替换下面的 int 和 doubleÿ…...
机器学习之无监督学习:九大聚类算法
今天,和大家分享一下机器学习之无监督学习中的常见的聚类方法。 今天,和大家分享一下机器学习之无监督学习中的常见的聚类方法。 在无监督学习中,我们的数据并不带有任何标签,因此在无监督学习中要做的就是将这一系列无标签的数…...
Linux高级管理-搭建网站服务
在Ihternet 网络环境中,Web 服务无疑是最为流行的应用系统。有了Web站点,企业可以充分 展示自己的产品,宣传企业形象。Web站点还为企业提供了与客户交流、电子商务交易平台等丰富 的网络应用。部署与维护Web 服务是运维工程师必须掌握的一个技…...
Windows 系统,TortoiseSVN 无法修改 Log 信息解决方法
使用SVN提交版本信息时,注释内容写的不全。通过右键TortoiseSVN的Show log看到提交的的注释,右键看到Edit log message的选项,然而提交后却给出错误提示: Repository has not been enabled to accept revision propchanges; ask …...
编译 Android gradle-4.6-all.zip 报错问题记录
编译 Android gradle-4.6-all.zip 报错问题记录 方法一:替换资源:方法二:修改源方法三:修改版本 编译时候无法下载 gradle-4.6-all Downloading https://services.gradle.org/distributions/gradle-4.6-all.zip 方法一…...
Linux系统调试课:Valgrind 内存调试
文章目录 一、为什么要学会Valgrind二、什么是内存泄露三、Valgrind的移植四、Valgrind相关参数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Valgrind 是一个开源的内存调试和性能分析工具,用于帮助开发者找出程序中的内存错误,如内存泄漏、使用未初始化的内存、非…...
python主流开发工具排名,python开发工具有哪些
本篇文章给大家谈谈python的开发工具软件有哪些,以及python主流开发工具排名,希望对各位有所帮助,不要忘了收藏本站喔。 python中用到哪些软件 一、Python代码编辑器1、sublime Textsublime Text是一款非常流行的代码编辑器,支持P…...
Spring Boot Async:从入门到精通,原理详解与最佳实践
Spring Boot 的异步功能(Async)允许我们将某些任务异步执行,而不会阻塞主线程。这对于处理耗时的操作非常有用,如发送电子邮件、生成报表、调用外部 API 等。通过异步处理,我们可以释放主线程,让它继续处理…...
oracle 19c创建db_link名称带.com域名问题处理
文章目录 一、修改PDB的global_name二、重启数据库实例三、修改domain后重试 一、修改PDB的global_name SYSorcl1>sho pdbsCON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ----------2 PDB$SEED …...
银行卡二要素API的应用案例:从在线购物到金融投资
引言 随着互联网技术的不断发展,人们的金融需求也在不断增加。随之而来的是各种新型金融服务的涌现,让用户的金融体验更加便利快捷。其中,银行卡二要素API的应用,则为用户的金融体验和安全性提供了极大的保障。 银行卡二要素API…...
MySQL 忘记root密码后重置密码操作
在忘记 MySQL 密码的情况下,可以通过 --skip-grant-tables 关闭服务器的认证,然后重置 root 的密码,具体操作步骤如下。 步骤 1):关闭正在运行的 MySQL 服务。打开 cmd 进入 MySQL 的 bin 目录。 步骤 2):输入mysqld -…...
开源电子合同签署平台小程序源码/电子文件签字+在线合同签署系统源码/电子合同小程序源码
源码简介: 开源电子合同签署平台小程序源码,它是电子文件签字在线合同签署系统源码/电子合同小程序源码 目前商业端和开源端一致,免费开源状态! 聚合市场上各类电子合同解决方案商,你无需一个一个的对接电子合同厂商…...
J.408之数据结构
J-408之数据结构_北京信息科技大学第十五届程序设计竞赛(同步赛) (nowcoder.com) 思维好题,直接用两个set存没出现的数字就好了 // Problem: 408之数据结构 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/68572/J // Me…...
前端食堂技术周刊第 107 期:技术播客节、Deno Cron、FEDAY、XState v5、Electron 2023 生态系统回顾
美味值:🌟🌟🌟🌟🌟 口味:烤椰拿铁 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下…...
三防平板|手持终端PDA|8寸/10寸工业三防平板电脑主板方案定制
近年来,随着科技的快速发展,三防平板成为了各行各业中不可或缺的工具。三防平板采用IP67级别的防护设计,通过了多项测试标准,如国标和美标,具备防水、防摔、防尘、防撞、防震、防跌落以及防盐雾等多重防护功能。因此&a…...
【C语言】动态内存管理(C语言的难点与精华,数据结构的前置知识,你真的掌握了吗?)
文章目录 引言一、为什么要动态内存分配二、动态内存分配的相关函数2.1 malloc2.2 free2.3 calloc2.4 realloc 三、常见的动态内存的错误3.1 对NULL指针的解引用3.2 对动态内存越界访问3.3 对非动态内存释放3.4 对动态内存部分释放3.5 对动态内存多次释放3.6 未对动态内存释放&…...
最长子序列问题(LCS)--动态规划解法
题目描述: 如果Z既是X的子序列,又是Y的子序列,则称Z为X和Y的公共子序列。 如果给定X、Y,求出Y及其长度。 示例: 输入 ABCPDSFJGODIHJOFDIUSHGD OSDIHGKODGHBLKSJBHKAGHI 输出 SDIHODSHG 9 分析: c…...
实时流式计算 kafkaStream
文章目录 实时流式计算Kafka StreamKafka Streams 的关键概念KStreamKafka Stream入门案例编写SpringBoot 集成 Kafka Stream 实时流式计算 一般流式计算会与批量计算相比较 流式计算就相当于上图的右侧扶梯,是可以源源不断的产生数据,源源不断的接收数…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
