Browse Source

打印功能尝试

lwx_dev
erdanergou 3 years ago
parent
commit
17f2f20dcd
  1. 29
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  2. 10
      src/main/resources/static/js/JcPrinter/index_Demo.js
  3. 26
      src/main/resources/static/js/JcPrinter/jcPrinterSdk_api_third.js
  4. 6
      src/main/resources/templates/pages/JcPrinter/PrinterIndex.html
  5. 2
      src/main/resources/templates/pages/group/group_edit.html
  6. 2
      src/main/resources/templates/pages/material/material-view.html
  7. 35
      src/main/resources/templates/pages/place/place_edit.html
  8. 28
      src/main/resources/templates/pages/warehouse/warehouse_view.html

29
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -2258,13 +2258,30 @@ public class PageController {
@GetMapping("/printCode")
public ModelAndView printCode(int mid) {
public ModelAndView printCode(int mid,int flag) {
ModelAndView mv = new ModelAndView();
// 获取当前对应物料
Material materialById = materialService.findMaterialById(mid);
// 获取当前物料对应的码值
String qrCodeByMcode = materialService.findQrCodeByMcode(materialById.getCode());
mv.addObject("qrCode",qrCodeByMcode);
if(flag == 1){
// 如果是物料
// 获取当前对应物料
Material materialById = materialService.findMaterialById(mid);
// 获取当前物料对应的码值
String qrCodeByMcode = materialService.findQrCodeByMcode(materialById.getCode());
mv.addObject("qrCode",qrCodeByMcode);
}else if(flag == 2){
// 如果是仓库
// 获取当前仓库对应的码值
String qrCodeByDepository = depositoryService.findQrCodeByDepository(mid);
mv.addObject("qrCode",qrCodeByDepository);
}else if(flag == 3){
// 如果是库位
// 获取当前库位对应的码值
String qrCodeByPlace = placeService.findQrCodeByPlace(mid);
mv.addObject("qrCode",qrCodeByPlace);
}
mv.setViewName("pages/JcPrinter/PrinterIndex");
return mv;
}

10
src/main/resources/static/js/JcPrinter/index_Demo.js

@ -281,7 +281,7 @@ var app = new Vue({
// 创建画板
/**
* 1.绘制元素前必须先初始化画板否则会引起崩溃
2.初始化画板时会清空画板上次绘制的内容
2.初始化画板时会清空画板上次绘制的内容
*/
InitDrawingBoard(this.InitDrawingBoardParam, callbackFunction);
this.dialogInitDrawingBoardParam = false;
@ -390,8 +390,8 @@ var app = new Vue({
/**
* 开始打印任务
* @param {*} pageCount 页数
* @param {*} quantityCount 份数
* @param {*} pageCount 打印页数
* @param {*} quantityCount 打印份数
* @param {*} density 浓度
* @param {*} paperType 纸张类型
* @param {*} paperType 材质
@ -432,13 +432,15 @@ var app = new Vue({
});
return;
}
// 为了防止打印时未生成对应图像
// 初始化画板
InitDrawingBoard(this.InitDrawingBoardParam, (data1 => {
// 添加文字
this.DrawLableBarCodeApiDemo(this.DrawLableBarCodeParam, (data => {
// 提交数据
var totalCount = parseInt(pageCount) * parseInt(quantityCount);
startJob(parseInt(density), parseInt(paperType), parseInt(printMode), totalCount, function (data) {
startJob(parseInt(density), parseInt(paperType), parseInt(printMode), totalCount, function (data) {
bCanclePrint = false;
var arrParse = JSON.parse(JSON.stringify(data));
if (arrParse.resultAck.result !== 0) {

26
src/main/resources/static/js/JcPrinter/jcPrinterSdk_api_third.js

@ -72,7 +72,7 @@ function websocketLifePeriod() {
websocket.onerror = errorCallback;
console.log(websocket);
//console.log(websocket);
return websocket;
}
@ -173,11 +173,13 @@ function init() {
var arrParse = JSON.parse(JSON.stringify(data));
if (arrParse.resultAck.result !== 0) {
// 如果初始化失败
this.$message.error("初始化打印服务失败,请重试");
setTimeout(function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}, 500);
this.$alert('初始化打印服务失败,请重试', '提示', {
confirmButtonText: '确定',
callback: action => {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
});
return;
}
@ -185,11 +187,13 @@ function init() {
let arrParse = JSON.parse(JSON.stringify(data));
if (!arrParse.resultAck.result) {
this.$message.error("打印机获取失败,请重试");
setTimeout(function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}, 500);
this.$alert('打印机获取失败,请重试', '提示', {
confirmButtonText: '确定',
callback: action => {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
});
return;
} else if (isJSON(arrParse.resultAck.info)) {
allPrinters = JSON.parse(arrParse.resultAck.info);

6
src/main/resources/templates/pages/JcPrinter/PrinterIndex.html

@ -9,6 +9,12 @@
<body>
<div id="app" class="container">
<input style="display:none;" id="materialQrCode" th:value="${qrCode}">
<div class="title">
<H2>刷新</H2>
<div><el-button @click="initSdkApi()" type="primary">SDK初始化</el-button></div>
</div>
<br>
<br>
<div class="link">
<H2>打印设备</H2>
<el-row>

2
src/main/resources/templates/pages/group/group_edit.html

@ -116,7 +116,7 @@
{field: 'quantity', width: 200, title: '数量'},
{field: 'tname', width: 150, title: '物料种类'},
{field: 'texture', width: 100, title: '材质'},
{field: 'unit', width: 150, title: '计量单位'},
{field: 'showUnit', width: 150, title: '计量单位'},
{field: 'brand', width: 150, title: '品牌'},
{field: 'shelfLife', width: 150, title: '保质期'},
{field: 'productionPlace', width: 150, title: '产地'},

2
src/main/resources/templates/pages/material/material-view.html

@ -258,7 +258,7 @@
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/printCode?mid='+$("#mid").val(),
content: '/printCode?mid='+$("#mid").val()+'&flag=1',
})
};

35
src/main/resources/templates/pages/place/place_edit.html

@ -58,10 +58,13 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">二维</label>
<label class="layui-form-label">打印</label>
<div class="layui-input-inline">
<img id="qrCode" style="display:none;">
<input id="createCode" type="button" class="layui-btn layui-btn-radius layui-btn-normal" onclick="createQrCode()" value="生成二维码"/>
<div id="codeItem" style="display:none;">
<img id="qrCode" >
<button id="printer" type="button" onclick="print_code()" class="layui-btn">打印</button>
</div>
</div>
</div>
<div class="layui-form-item">
@ -88,7 +91,11 @@
var data;
function createQrCode() {
};
}
function print_code() {
}
layui.use(['form', 'layer','dropdown','tree'], function () {
var $ = layui.jquery,
form = layui.form,
@ -149,12 +156,28 @@
success: function (d) {
var data = d.data;
layer.close(this.layerIndex);
$("#qrCode").attr("src",data);
$("#qrCode").show();
//$("#qrCode").attr("src", data);
$("#codeItem").show();
$("#createCode").hide();
}
})
}
};
print_code = function(){
layer.open({
type: 2,
title: '打印',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/printCode?mid='+$("#placeId").val()+'&flag=3',
})
};
});
</script>

28
src/main/resources/templates/pages/warehouse/warehouse_view.html

@ -83,9 +83,12 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">二维</label>
<label class="layui-form-label">打印</label>
<div class="layui-input-inline">
<img id="qrCode" style="display:none;">
<div id="codeItem" style="display:none;">
<img id="qrCode" >
<button id="printer" type="button" onclick="print_code()" class="layui-btn">打印</button>
</div>
<input id="createCode" type="button" class="layui-btn layui-btn-radius layui-btn-normal" onclick="createQrCode()" value="生成二维码"/>
</div>
</div>
@ -182,12 +185,27 @@
success: function (d) {
var data = d.data;
layer.close(this.layerIndex);
$("#qrCode").attr("src",data);
$("#qrCode").show();
//$("#qrCode").attr("src", data);
$("#codeItem").show();
$("#createCode").hide();
}
})
}
};
print_code = function(){
layer.open({
type: 2,
title: '打印',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/printCode?mid='+$("#did").val()+'&flag=2',
})
};
});
</script>

Loading…
Cancel
Save