NodeJs+VueJs +前端实现批量打印二维码

 第一步 :html 设置DIV,用于存放批量生成的二维码 
<div class="x_panel" style="margin:0 auto;display:none;" id="qrcode2"> </div>
第二部:获取选中行的数据
1 获取选中行数据,点击全选或者选中多个
<tableclass="table table-striped jambo_table bulk_action"id='test_table'>
<thead>
<tr class="headings">
<th width="60"><label>
<inputtype="checkbox"v-model='all_check' @click="changecheck"/>
</label>全选
</th>
<th>
<!-- <input type="checkbox" id="check-all" class="flat"> -->
</th>

<th class="column-title">机器编码</th>
<th class="column-title">货品名称</th>
<th class="column-title">型号规格</th>
<th class="column-title">序列号</th>
<th class="column-title">单位</th>
<th class="column-title">数量</th>
<th class="column-title">机器归属</th>
<th class="column-title">存放地点</th>
<th class="column-title">机器类别</th>
<th class="column-title">品牌</th>
<th class="column-title">机器地址</th>
<th class="column-title">使用耗材类型</th>
<th class="column-title">负责人</th>
<th class="column-title">状态</th>
<th class="column-title">备注</th>
<th class="column-title no-link last"><spanclass="nobr">动作</span>
</th>
<th class="bulk-actions" colspan="7">
<a class="antoo" style="color:#fff; font-weight:500;">(<span class="action-cnt"></span> )<iclass="fa fa-chevron-down"></i></a>
</th>
</tr>
</thead>

<tbody>
<tr id="selectable" class="even pointer" v-for="(tempobj,index) in tempobjs" v-show="tempobjshow" style="display: none;">
<!-- <td class="a-center ">{{index+1}}</td> -->
<td><inputname='r' type="checkbox" v-model='items[index+1+(newpage-1)*10]'></td>
<td class="a-center ">{{index+1+(pagen-1)*10}}</td>
<td class="a-left">{{tempobj.printercode}}</td>
<td class="a-left">{{tempobj.name}}</td>
<td class=" ">{{tempobj.type}}</td>
<td class=" ">{{tempobj.serialnum}}</td>
<td class=" ">{{tempobj.unit}}</td>
<td class=" ">{{tempobj.amount}}</td>
<td class=" ">{{tempobj.belong}}</td>
<td class=" ">{{tempobj.location}}</td>
<td class=" ">{{tempobj.machinetype}}</td>
<td class=" ">{{tempobj.brand}}</td>
<td class=" ">{{tempobj.position}}</td>
<td class=" ">{{tempobj.materialtype}}</td>
<td class=" ">{{convertperson(tempobj.manager)}}</td>
<td class=" ">{{convertstatus(tempobj.status)}}</td>
<td class="a-right a-right ">{{tempobj.remarks}}</td>
<!--<td class=" ">{{tempobj.type}}</td>-->
<!-- <td class=" ">{{convertDate(tempobj.age)}}</td> -->
<td class="last">
<!-- <a class="btn btn-primary btn-xs" @click="viewtempobj(tempobj)"><i class="fa fa-folder" ></i>查看</a> -->
<a class="btn btn-info btn-xs" @click="edittempobj(tempobj,index)"><iclass="fa fa-pencil"></i>修改</a>
<a class="btn btn-danger btn-xs" @click="deletetempobj(tempobj,index)"><iclass="fa fa-trash-o"></i>删除</a>
<!--<a class="btn btn-success btn-xs" @click="qrcode(tempobj,index)"><i class="fa fa-qrcode"></i>设备二维码</a>-->
<!-- <a class="btn btn-warning btn-xs" @click="qrcoderepair(tempobj,index)"><i class="fa fa-qrcode"></i>维修二维码</a> -->
<a class="btn btn-success btn-xs" @click="qrcoderepair(tempobj,index)"><iclass="fa fa-qrcode"></i>设备二维码</a>
</td>
</tr>

</tbody>
</table>

 2 显示选中框

methods: {
//点击全选时
changecheck:function(){
for(vari=0;i<vm.items.length;i++){
vm.items[i]=vm.all_check;
}
},
<button class="btn btn-default source" onclick="doPrint()"><iclass="glyphicon glyphicon-plus">批量打印二维码</i></button>
3 点击 批量打印二维码时
<button class="btn btn-default source" onclick="doPrint()"><iclass="glyphicon glyphicon-plus">批量打印二维码</i></button>
 4 js 方法
//打印二维码 start jingcheng 2017.7.27
function doPrint(){
//获取选中行数据
var rows =document.getElementById("test_table").rows;
var a =document.getElementsByName("r");
var table =document.getElementById("test_table");
for(vari=0;i<a.length;i++) {
if(a[i].checked){
var row =a[i].parentElement.parentElement.rowIndex;

allprint_tempobjs.push(tempobjs[row -1+(vm.pagen-1)*10]);
}
}
var html ="";
allprint_tempobjs.forEach(function(item,index) {
html+=' <em ><div style=\"margin:0 auto;\" align=\"left\">';
html +='<div ><label class=\"control-label\" id=\"name\">设备名称:</label>';
html +=' <em id="printername">'+item.name +'</em></div>';//设备名称
html +='<div><label id=\"serialnum\">设备规格:</label>';
html +=' <em id=\"printerserialnum\">'+item.serialnum+'</em></div>';//设备规格
html +='<div ><label id=\"ID\">ID号:</label>';
html +='<em id=\"printerid\">'+item.id+'</em></div>'//ID号
html +='<div ><label id="serialnum">编码:</label>';
html +='<em id=\"code\">'+'</em></div>';//编码
html +='<div ><label id=\"tel\"></label>';
html +=' <em style=\"font-size:20px\"><strong>扫码呼叫服务</strong></em></div> </div>';//扫码呼叫服务
html +=' <div class=\"x_content\" id=\"qrcodepic'+index+'\" style=\"width:100%;height:100%;\"> </div></em>';//二维码
});
$("#qrcode2").append(html);


var head_str ='<html><head><title></title></head><body>';//先生成头部
var foot_str ="</body></html>";//生成尾部
//var older = document.body.innerHTML;
var new_str =document.getElementById("qrcode2").innerHTML;//获取指定打印区域
//构建新网页(关键步骤,必须先构建新网页,在生成二维码,否则不能显示二维码)
document.body.innerHTML =head_str + new_str +foot_str;
for(vari=0;i<allprint_tempobjs.length;i++){
$("#qrcodepic"+i).empty();
var qrcode="qrcodepic"+i;
str="http://192.168.21.36:3000/indexuser/indexuser.html?id="+allprint_tempobjs[i].id;
var qrcode =new QRCode(document.getElementById(qrcode), {
text: str,
width: 128,
height: 128,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.Q
});

}

window.print();//打印刚才新建的网页
window.location.reload();
return false;
}

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是基于nodejs+vuejs的商城系统实现详细设计。 1. 前端设计 使用Vue.js框架搭建前端实现用户浏览、购买商品等功能。需要实现的主要页面包括: - 首页:展示热门商品、促销活动等信息。 - 商品列表页:展示所有商品列表,支持按照价格、销量等条件进行排序。 - 商品详情页:展示商品详细信息,包括商品图片、价格、库存、购买数量等。 - 购物车页:展示用户添加到购物车的商品列表,支持修改数量、删除商品等操作。 - 订单确认页:展示用户选择的商品列表、总价等信息,并支持填写收货地址、发票信息等。 - 订单支付页:展示订单信息和支付方式,支持在线支付和货到付款两种方式。 2. 后端设计 使用Node.js搭建后端,实现用户登录、商品管理、订单管理等功能。需要实现的主要接口包括: - 用户登录接口:验证用户输入的用户名和密码,返回验证结果和用户信息。 - 商品列表接口:返回所有商品的基本信息,包括商品名称、价格、库存等。 - 商品详情接口:返回指定商品的详细信息,包括商品图片、价格、库存等。 - 添加商品接口:添加新的商品信息到数据库中。 - 修改商品接口:修改指定商品的基本信息。 - 删除商品接口:从数据库中删除指定商品信息。 - 添加购物车接口:将用户选择的商品添加到购物车中。 - 修改购物车接口:修改购物车中指定商品的数量。 - 删除购物车接口:从购物车中删除指定商品。 - 提交订单接口:将用户选择的商品生成订单,并将订单信息保存到数据库中。 - 获取订单列表接口:返回用户的所有订单列表。 - 获取订单详情接口:返回指定订单的详细信息。 3. 数据库设计 使用MySQL数据库存储商城系统中的所有数据。需要设计的主要表包括: - 用户表:存储用户的基本信息,包括用户名、密码、邮箱等。 - 商品表:存储所有商品的基本信息,包括商品名称、价格、库存等。 - 购物车表:存储用户添加到购物车中的商品信息。 - 订单表:存储用户提交的订单信息,包括订单编号、购买商品列表、收货地址等。 以上就是基于nodejs+vuejs的商城系统实现的详细设计,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值