PrintExample.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <template>
  2. <h1>EPC发卡</h1>
  3. <PrintWidget v-model:selectedPrinter="selectedPrinter" />
  4. <div class="form-group">
  5. <label>EPC</label>
  6. <input v-model="epc" type="text" class="form-control" placeholder="发卡数据" />
  7. </div>
  8. <button class="btn btn-default" @click="printEpc">发卡1</button>
  9. <div class="form-group">
  10. <label>printPage</label>
  11. <textarea v-model="printPageText" type="text" class="form-control" placeholder="发卡数据" />
  12. </div>
  13. <button class="btn btn-default" @click="printPrintPage">发卡2</button>
  14. <button class="btn btn-default" @click="printByPrinter">打印</button>
  15. <button class="btn btn-default" @click="printPreviewByPrinter">打印预览</button>
  16. <PrintEpc ref="printEpc" v-model:visible="printEpcVisible" :printer-name="selectedPrinter" />
  17. <Modal
  18. v-model:show="previewModalVisible"
  19. title="打印预览"
  20. >
  21. <div class="row">
  22. <div v-for="(item,index) in printPreviews" :key="index" class="col-xs-6 col-md-4">
  23. <img :src="item" class="m-small-img" />
  24. </div>
  25. </div>
  26. </Modal>
  27. </template>
  28. <script>
  29. import PrintEpc from '@/print/print-epc.js';
  30. import PrintWidget from '@/print/print-widget.js';
  31. import PrintUtil from '@/print/src/PrintUtil.js';
  32. import Modal from '@/modal/src/Modal.vue';
  33. export default {
  34. components: {
  35. 'PrintEpc': PrintEpc,
  36. 'PrintWidget': PrintWidget,
  37. 'Modal': Modal,
  38. },
  39. data: function(){
  40. return {
  41. selectedPrinter: '',
  42. printEpcVisible: false,
  43. epc:'012345678901234567890123',
  44. // eslint-disable-next-line
  45. printPageText: '[{"paperWidth":65,"paperHeight":35,"paperMargin":2,"printheads":0,"imagePrint":true,"printItems":[{"content":"000000000000000000000352","text":"EPC:012345678901234567890123","hideTitle":null,"displayType":"EPC","enabled":true,"left":0,"top":0,"width":0,"height":0,"barCodeType":null,"barCodeDisplayValue":null,"barCodeSingleBarWidth":null,"barCodeTextAlign":null,"fontSize":null,"fontFamily":null,"fontStyle":null,"fontWeight":null,"errorCorrectionLevel":null,"qrCodeMargin":null,"qrCodeScale":null,"imageDataUrl":null,"sqlField":"","autoWrap":null,"lineHeight":0},{"content":"1000558","text":"123456","hideTitle":null,"displayType":"二维码","enabled":true,"left":46.5,"top":17,"width":11.6,"height":11.6,"barCodeType":null,"barCodeDisplayValue":null,"barCodeSingleBarWidth":null,"barCodeTextAlign":null,"fontSize":null,"fontFamily":null,"fontStyle":null,"fontWeight":null,"errorCorrectionLevel":"M","qrCodeMargin":4,"qrCodeScale":4,"imageDataUrl":null,"sqlField":"","autoWrap":null,"lineHeight":0},{"content":"使用部门:工程三室","text":"使用部门","hideTitle":null,"displayType":"文本","enabled":true,"left":4,"top":31,"width":30,"height":3.6,"barCodeType":null,"barCodeDisplayValue":null,"barCodeSingleBarWidth":null,"barCodeTextAlign":null,"fontSize":32,"fontFamily":"Arial","fontStyle":"normal","fontWeight":"normal","errorCorrectionLevel":null,"qrCodeMargin":null,"qrCodeScale":null,"imageDataUrl":null,"sqlField":"","autoWrap":null,"lineHeight":0},{"content":"资产名称:光学镜头","text":"资产名称","hideTitle":null,"displayType":"文本","enabled":true,"left":4,"top":13,"width":30,"height":3.6,"barCodeType":null,"barCodeDisplayValue":null,"barCodeSingleBarWidth":null,"barCodeTextAlign":null,"fontSize":32,"fontFamily":"Arial","fontStyle":"normal","fontWeight":"normal","errorCorrectionLevel":null,"qrCodeMargin":null,"qrCodeScale":null,"imageDataUrl":null,"sqlField":"","autoWrap":null,"lineHeight":0},{"content":"资产编号:2011739","text":"资产编号","hideTitle":null,"displayType":"文本","enabled":true,"left":4.2,"top":19,"width":30,"height":3.6,"barCodeType":null,"barCodeDisplayValue":null,"barCodeSingleBarWidth":null,"barCodeTextAlign":null,"fontSize":32,"fontFamily":"Arial","fontStyle":"normal","fontWeight":"normal","errorCorrectionLevel":null,"qrCodeMargin":null,"qrCodeScale":null,"imageDataUrl":null,"sqlField":"","autoWrap":null,"lineHeight":0},{"content":"启用日期:","text":"启用日期","hideTitle":null,"displayType":"文本","enabled":true,"left":4,"top":25,"width":30,"height":3.6,"barCodeType":null,"barCodeDisplayValue":null,"barCodeSingleBarWidth":null,"barCodeTextAlign":null,"fontSize":32,"fontFamily":"Arial","fontStyle":"normal","fontWeight":"normal","errorCorrectionLevel":null,"qrCodeMargin":null,"qrCodeScale":null,"imageDataUrl":null,"sqlField":"","autoWrap":null,"lineHeight":0},{"content":"维保单位:","text":"维保单位","hideTitle":null,"displayType":"文本","enabled":true,"left":4,"top":31,"width":30,"height":3.6,"barCodeType":null,"barCodeDisplayValue":null,"barCodeSingleBarWidth":null,"barCodeTextAlign":null,"fontSize":32,"fontFamily":"Arial","fontStyle":"normal","fontWeight":"normal","errorCorrectionLevel":null,"qrCodeMargin":null,"qrCodeScale":null,"imageDataUrl":null,"sqlField":"","autoWrap":null,"lineHeight":0},{"content":"有效期至:","text":"有效期至","hideTitle":null,"displayType":"文本","enabled":true,"left":4,"top":37,"width":30,"height":3.6,"barCodeType":null,"barCodeDisplayValue":null,"barCodeSingleBarWidth":null,"barCodeTextAlign":null,"fontSize":32,"fontFamily":"Arial","fontStyle":"normal","fontWeight":"normal","errorCorrectionLevel":null,"qrCodeMargin":null,"qrCodeScale":null,"imageDataUrl":null,"sqlField":"","autoWrap":null,"lineHeight":0}],"sqlClause":null}]',
  46. previewModalVisible: false,
  47. printPreviews: [],
  48. };
  49. },
  50. mounted: function(){
  51. },
  52. methods: {
  53. printEpc: function(){
  54. this.printEpcVisible = true;
  55. this.$refs.printEpc.printSingleEpc(this.epc);
  56. },
  57. printPrintPage: function(){
  58. this.printEpcVisible = true;
  59. this.$refs.printEpc.printPrintPages(JSON.parse(this.printPageText));
  60. },
  61. printByPrinter: function(){
  62. PrintUtil.printPrintPages(JSON.parse(this.printPageText), this.selectedPrinter).then(success => {
  63. // 补充提示信息
  64. console.log(success);
  65. }, error =>{
  66. // 补充提示信息
  67. console.log(error);
  68. });
  69. },
  70. printPreviewByPrinter: function(){
  71. let _self = this;
  72. PrintUtil.printPreview(JSON.parse(this.printPageText), this.selectedPrinter).then(success => {
  73. console.log(success);
  74. _self.previewModalVisible = true;
  75. _self.printPreviews = success;
  76. }, error =>{
  77. // 补充提示信息
  78. console.log(error);
  79. });
  80. },
  81. },
  82. };
  83. </script>
  84. <style scoped>
  85. </style>