diff --git a/src/views/material/lease/apply/component/homeApply.vue b/src/views/material/lease/apply/component/homeApply.vue index f504069b..50488651 100644 --- a/src/views/material/lease/apply/component/homeApply.vue +++ b/src/views/material/lease/apply/component/homeApply.vue @@ -267,148 +267,101 @@ @pagination="getList" /> - - -
- -
- 机具设备到货验收单 -
-
-
- 单据编号: -
-
- 生产厂家(供应商): -
+ + +
+ +
+
+ 施工机具设备出库检验记录表 +
+
+
+ 领用工程: + {{ checkDataInfo.leaseProject }} +
-
- 到货日期: -
-
- - - - - - - - - - - - - - - +
+ 使用单位: + {{ checkDataInfo.leaseUnit }} +
+
+ + + + + + + + + + + + + + - - - - - - - +
+
+
+ 检验单位: +
+
+ +
+
-
-
-
- 供应科: -
-
- -
-
- 生产技术科: -
-
- -
-
- 库管班: -
-
-
- -
- - - +
+
+ +
+ +
@@ -618,9 +571,11 @@ import { applyRemove, applySend, applySendAll, + getCheckInfo } from "@/api/lease/apply"; import vueEasyPrint from "vue-easy-print"; +import printJS from 'print-js'; export default { name: "Home", @@ -682,6 +637,7 @@ export default { open: false, printData: {}, printTableData: [], + checkDataInfo: {}, // 供应商 supplierStr: "", @@ -809,11 +765,26 @@ export default { }); }, //查看验收单 - handlePrint(row) { - // this.query.taskId = row.taskId - // this.getPrintTable(row.taskId) + async handlePrint(row) { + const res = await getCheckInfo({id:row.id}); + this.idTemp = row.id; + this.checkDataInfo = res.data.leaseApplyInfo; + + this.printTableData = res.data.leaseOutVoList; + setTimeout(() => { + this.chapter('检验专用章', '机具设备分公司') + }, 200); this.openPrint = true; - this.title = "机具设备到货验收单"; + this.title = "出库检验单"; + }, + + /** 导出按钮操作 */ + handleExportCheck() { + this.download( + "/material/lease_apply_info/exportInfo", + { id:this.idTemp }, + `出库检验单_${new Date().getTime()}.xlsx` + ); }, //打开领料单 @@ -822,10 +793,23 @@ export default { this.open = true; var ids = row.id; const res = await getApplyInfo(ids); - console.log(res); this.leaseApplyDetails = res.data.leaseApplyDetailsList; this.leaseApplyData = res.data.leaseApplyInfo; - console.log(this.leaseApplyData); + }, + + //出库检验单打印 + printCheck() { + printJS({ + printable: 'checkId', + type: 'html', + targetStyles: ['*'], + // 其他配置选项 + }); + }, + + // 关闭弹窗并刷新页面 + closeDialogAndRefresh() { + this.openPrint = false; }, codeInfo(row) { @@ -902,6 +886,82 @@ export default { }); } }, + + chapter(text, companyName) { + let canvas = document.getElementById("canvas"); + let context = canvas.getContext("2d"); + canvas.width = canvas.width; + context.height = canvas.height; + // // 清除画布内容 + // context.clearRect(0, 0, canvas.width, canvas.height); + //let text = "XXX专用章"; + //let companyName = "XXX科技股份有限公司"; + + // 绘制印章边框 + let width = canvas.width / 2; + let height = canvas.height / 2; + context.lineWidth = 3; + context.strokeStyle = "#f00"; + context.beginPath(); + context.arc(width, height, 80, 0, Math.PI * 2); //宽、高、半径 + context.stroke(); + + //画五角星 + this.create5star(context, width, height, 20, "#f00", 0); + + // 绘制印章名称 + context.font = "18px 宋体"; + context.textBaseline = "middle"; //设置文本的垂直对齐方式 + context.textAlign = "center"; //设置文本的水平对对齐方式 + context.lineWidth = 1; + context.strokeStyle = "#ff2f2f"; + context.strokeText(text, width, height + 50); + + // 绘制印章单位 + context.translate(width, height); // 平移到此位置, + context.font = "16px 宋体"; + let count = companyName.length; // 字数 + let angle = (4 * Math.PI) / (3 * (count - 1)); // 字间角度 + let chars = companyName.split(""); + let c; + for (let i = 0; i < count; i++) { + c = chars[i]; // 需要绘制的字符 + if (i == 0) { + context.rotate((5 * Math.PI) / 6); + } else { + context.rotate(angle); + } + + context.save(); + context.translate(65, 0); // 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离 + context.rotate(Math.PI / 2); // 旋转90度,让字平行于x轴 + context.strokeStyle = "#ff5050"; // 设置印章单位字体颜色为较浅的红色 + context.strokeText(c, 0, 0); // 此点为字的中心点 + context.restore(); + } + }, + + //绘制五角星 + create5star(context, sx, sy, radius, color, rotato) { + context.save(); + context.fillStyle = color; + context.translate(sx, sy); //移动坐标原点 + context.rotate(Math.PI + rotato); //旋转 + context.beginPath(); //创建路径 + // let x = Math.sin(0); + // let y = Math.cos(0); + let dig = (Math.PI / 5) * 4; + for (let i = 0; i < 5; i++) { + //画五角星的五条边 + let x = Math.sin(i * dig); + let y = Math.cos(i * dig); + context.lineTo(x * radius, y * radius); + } + context.closePath(); + context.stroke(); + context.fill(); + context.restore(); + } }, watch: { diff --git a/src/views/material/lease/outBound/index.vue b/src/views/material/lease/outBound/index.vue index b822277f..d9919479 100644 --- a/src/views/material/lease/outBound/index.vue +++ b/src/views/material/lease/outBound/index.vue @@ -486,10 +486,10 @@ -
+
- - + + - - - - - - - + + + + + + + @@ -1333,7 +1333,7 @@ export default { context.strokeText(c, 0, 0); // 此点为字的中心点 context.restore(); } - }, + }, //绘制五角星 create5star(context, sx, sy, radius, color, rotato) {