diff --git a/package-lock.json b/package-lock.json
index d68aa18..0ecbcfc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3789,6 +3789,11 @@
"randombytes": "^2.0.0"
}
},
+ "dijkstrajs": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+ "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
+ },
"dns-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
@@ -4033,11 +4038,21 @@
"minimalistic-crypto-utils": "^1.0.0"
}
},
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
"emojis-list": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
"integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
},
+ "encode-utf8": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/encode-utf8/-/encode-utf8-1.0.3.tgz",
+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
+ },
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -15300,6 +15315,11 @@
"integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
"dev": true
},
+ "pngjs": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz",
+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
+ },
"portfinder": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz",
@@ -16404,6 +16424,183 @@
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
},
+ "qrcode": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.3.tgz",
+ "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
+ "requires": {
+ "dijkstrajs": "^1.0.1",
+ "encode-utf8": "^1.0.3",
+ "pngjs": "^5.0.0",
+ "yargs": "^15.3.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "requires": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
diff --git a/package.json b/package.json
index a43e490..246fd38 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"build": "gulp"
},
"dependencies": {
+ "qrcode": "^1.5.3",
"axios": "0.17.1",
"babel-plugin-component": "0.10.1",
"babel-polyfill": "6.26.0",
diff --git a/src/api/partspare/inventorystock.js b/src/api/partspare/inventorystock.js
index 93bc164..db14058 100644
--- a/src/api/partspare/inventorystock.js
+++ b/src/api/partspare/inventorystock.js
@@ -104,8 +104,8 @@ export function partSpareTemp(dataList) {
LODOP.SET_PRINT_STYLEA(0,"LineSpacing",-3);
}
// LODOP.PRINT_DESIGN();
- //LODOP.PREVIEW();
- LODOP.PRINT();
+ LODOP.PREVIEW();
+ //LODOP.PRINT();
}
}
diff --git a/src/api/qc/qcPrint.js b/src/api/qc/qcPrint.js
new file mode 100644
index 0000000..0fcc1c4
--- /dev/null
+++ b/src/api/qc/qcPrint.js
@@ -0,0 +1,25 @@
+import getLodop from '@/utils/LodopFuncs.js'
+
+// 打印
+export function qcPrint(dataList) {
+ const LODOP = getLodop()
+ if (LODOP) {
+ for (const row of dataList) {
+ LODOP.NewPage()
+ LODOP.SET_PRINT_PAGESIZE(0,500,250,"")
+ LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE",1);
+ //LODOP.ADD_PRINT_BARCODE(8,5,80,85,"QRCode",row.inspectionNo)
+ LODOP.ADD_PRINT_IMAGE(2,-2,"16.85mm","18.44mm",`
`);
+ LODOP.SET_PRINT_STYLEA(0,"FontSize",8)
+ LODOP.ADD_PRINT_TEXT(23,67,127,22,row.inspectionNo)
+ LODOP.SET_PRINT_STYLEA(0,"FontName","@微软雅黑");
+ }
+ //LODOP.PRINT_DESIGN();
+ //LODOP.PREVIEW();
+ LODOP.PRINT();
+ }
+
+}
+
+
+
diff --git a/src/views/modules/common/QrCode.vue b/src/views/modules/common/QrCode.vue
new file mode 100644
index 0000000..f56ad4c
--- /dev/null
+++ b/src/views/modules/common/QrCode.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
diff --git a/src/views/modules/qc/FAIResultEntry.vue b/src/views/modules/qc/FAIResultEntry.vue
index 00ae5b9..089a40d 100644
--- a/src/views/modules/qc/FAIResultEntry.vue
+++ b/src/views/modules/qc/FAIResultEntry.vue
@@ -91,6 +91,7 @@
新增
审核
删除
+ 打印
+
+
+
@@ -951,12 +955,15 @@
getOperatorList
} from '@/api/eam/eam.js'
import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
+ import {qcPrint} from '@/api/qc/qcPrint.js'
import qcFAIUploadFile from "./qc_FAI_upload_file"
import comQcItemImageUploadFile from "./com_qc_itemImage_upload_file"
import subDetailUpload from "./sub_detail_upload"
+ import QrCode from "../common/QrCode.vue";
/*上传文件的組件*/
export default {
components: {
+ QrCode,
Chooselist,
qcFAIUploadFile,
comQcItemImageUploadFile,
@@ -2407,6 +2414,20 @@
},
methods: {
+
+ // 批量打印标签
+ printList () {
+ if (this.FAISelections.length === 0) {
+ this.$message.warning('请勾选要打印的检验单!')
+ return
+ }
+ const inspectionNos = this.$refs.qrCode.init(this.FAISelections.map(item => item.inspectionNo))
+ for (let i = 0; i < inspectionNos.length; i++) {
+ this.FAISelections[i].qrCode = inspectionNos[i]
+ }
+ qcPrint(this.FAISelections)
+ },
+
// 数据采集
dataAcquisition () {
this.loadFlag = true
diff --git a/src/views/modules/qc/FQCResultEntry.vue b/src/views/modules/qc/FQCResultEntry.vue
index 1179d62..845747b 100644
--- a/src/views/modules/qc/FQCResultEntry.vue
+++ b/src/views/modules/qc/FQCResultEntry.vue
@@ -92,6 +92,7 @@
新增
审核
删除
+ 打印
+
+
+
@@ -928,12 +932,15 @@
getOperatorList
} from '@/api/eam/eam.js'
import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
+ import {qcPrint} from '@/api/qc/qcPrint.js'
import qcFAIUploadFile from "./qc_FAI_upload_file"
import comQcItemImageUploadFile from "./com_qc_itemImage_upload_file"
import subDetailUpload from "./sub_detail_upload"
+ import QrCode from "../common/QrCode.vue";
/*上传文件的組件*/
export default {
components: {
+ QrCode,
Chooselist,
qcFAIUploadFile,
comQcItemImageUploadFile,
@@ -2382,6 +2389,20 @@
},
methods: {
+
+ // 批量打印标签
+ printList () {
+ if (this.FAISelections.length === 0) {
+ this.$message.warning('请勾选要打印的检验单!')
+ return
+ }
+ const inspectionNos = this.$refs.qrCode.init(this.FAISelections.map(item => item.inspectionNo))
+ for (let i = 0; i < inspectionNos.length; i++) {
+ this.FAISelections[i].qrCode = inspectionNos[i]
+ }
+ qcPrint(this.FAISelections)
+ },
+
// 数据采集
dataAcquisition () {
this.loadFlag = true
diff --git a/src/views/modules/qc/IPQCResultEntry.vue b/src/views/modules/qc/IPQCResultEntry.vue
index b2fe791..28d8efc 100644
--- a/src/views/modules/qc/IPQCResultEntry.vue
+++ b/src/views/modules/qc/IPQCResultEntry.vue
@@ -95,6 +95,7 @@
新增
审核
删除
+ 打印
+
+
+
@@ -954,12 +958,15 @@
getOperatorList
} from '@/api/eam/eam.js'
import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
+ import {qcPrint} from '@/api/qc/qcPrint.js'
import qcFAIUploadFile from "./qc_FAI_upload_file"
import comQcItemImageUploadFile from "./com_qc_itemImage_upload_file"
import subDetailUpload from "./sub_detail_upload";
+ import QrCode from "../common/QrCode.vue";
/*上传文件的組件*/
export default {
components: {
+ QrCode,
Chooselist,
qcFAIUploadFile,
comQcItemImageUploadFile,
@@ -2442,6 +2449,20 @@
},
methods: {
+
+ // 批量打印标签
+ printList () {
+ if (this.IPQCSelections.length === 0) {
+ this.$message.warning('请勾选要打印的检验单!')
+ return
+ }
+ const inspectionNos = this.$refs.qrCode.init(this.IPQCSelections.map(item => item.inspectionNo))
+ for (let i = 0; i < inspectionNos.length; i++) {
+ this.IPQCSelections[i].qrCode = inspectionNos[i]
+ }
+ qcPrint(this.IPQCSelections)
+ },
+
// 数据采集
dataAcquisition () {
this.loadFlag = true
diff --git a/src/views/modules/qc/IQCResultEntry.vue b/src/views/modules/qc/IQCResultEntry.vue
index fbda773..73dc22b 100644
--- a/src/views/modules/qc/IQCResultEntry.vue
+++ b/src/views/modules/qc/IQCResultEntry.vue
@@ -108,6 +108,7 @@
审核
删除
任务重载
+ 打印
+
+
+
@@ -660,11 +664,14 @@
getOperatorList
} from '@/api/eam/eam.js'
import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
+ import {qcPrint} from '@/api/qc/qcPrint.js'
import qcFAIUploadFile from "./qc_FAI_upload_file"
import comQcItemImageUploadFile from "./com_qc_itemImage_upload_file"
import subDetailUpload from "./sub_detail_upload"
+ import QrCode from "../common/QrCode.vue";
export default {
components: {
+ QrCode,
Chooselist,
qcFAIUploadFile,
comQcItemImageUploadFile,
@@ -1764,6 +1771,20 @@
},
methods: {
+
+ // 批量打印标签
+ printList () {
+ if (this.IQCSelections.length === 0) {
+ this.$message.warning('请勾选要打印的检验单!')
+ return
+ }
+ const inspectionNos = this.$refs.qrCode.init(this.IQCSelections.map(item => item.inspectionNo))
+ for (let i = 0; i < inspectionNos.length; i++) {
+ this.IQCSelections[i].qrCode = inspectionNos[i]
+ }
+ qcPrint(this.IQCSelections)
+ },
+
// 数据采集
dataAcquisition () {
this.loadFlag = true