PrintEpc.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. /**
  2. * EPC 打印界面
  3. */
  4. <template>
  5. <div>
  6. <!-- 打印结果模态框 -->
  7. <Modal
  8. ref="printResultModal"
  9. title="发卡机发卡"
  10. >
  11. <div
  12. v-if="printResult != null && printResult.command == 'read'"
  13. class="alert alert-info"
  14. role="alert"
  15. >
  16. {{ printResult.success ? '操作成功' : '操作失败' }},读取到{{ printResult.tagCount }}个标签,{{ printResult.epcs }}
  17. </div>
  18. <div
  19. v-if="printResult != null && printResult.command == 'write'"
  20. class="alert alert-danger"
  21. role="alert"
  22. >
  23. {{ printResult.success ? '操作成功' : '操作失败' }},{{ printResult.message }}待写入EPC:{{ lastWriteEpc }}
  24. </div>
  25. <div
  26. v-if="printResult != null && printResult.command == 'restore'"
  27. class="alert alert-danger"
  28. role="alert"
  29. >
  30. {{ printResult.success ? '操作成功' : '操作失败' }},{{ printResult.message }}
  31. </div>
  32. <button
  33. type="button"
  34. class="btn btn-info"
  35. @click="printSingleEpc(lastWriteEpc)"
  36. >
  37. 再次打印
  38. </button>
  39. <button
  40. type="button"
  41. class="btn btn-info"
  42. @click="restoreEpc"
  43. >
  44. 恢复标签
  45. </button>
  46. <button
  47. type="button"
  48. class="btn btn-info"
  49. @click="readEpc"
  50. >
  51. 读取
  52. </button>
  53. <button
  54. type="button"
  55. class="btn btn-danger"
  56. @click="$refs.printResultModal.show = false"
  57. >
  58. 关闭
  59. </button>
  60. </Modal>
  61. <Loading ref="loading" />
  62. </div>
  63. </template>
  64. <script>
  65. var PrintEpcUtil = require('./PrintEpcUtil.js').default;
  66. var Modal = require('../../modal/src/Modal.vue').default;
  67. var Loading = require('../../loading/src/Loading.vue').default;
  68. export default {
  69. name: 'PrintEpc',
  70. components: {
  71. Modal, Loading,
  72. },
  73. props: {
  74. 'printerName':
  75. {
  76. type: String,
  77. default: '',
  78. },
  79. },
  80. data: function () {
  81. return {
  82. lastWriteEpc: '', // 最后写入的EPC
  83. // 打印结果
  84. printResult: {
  85. command: '', // 指令
  86. success: true, // 是否操作成功
  87. message: '', // 操作不成功的消息
  88. tagCount: 0, // 标签读取的数量
  89. epcs: '', // 读取的标签信息
  90. epc: '', // 打印的EPC
  91. },
  92. };
  93. },
  94. methods: {
  95. /**
  96. * 打印PrintPages
  97. */
  98. printPrintPages: function (printPages) {
  99. let _self = this;
  100. if (printPages == null || printPages.length == 0) {
  101. this.printResult.command = 'write';
  102. this.printResult.success = false;
  103. this.printResult.message = '无可打印的数据。';
  104. this.$refs.printResultModal.show = true;
  105. return;
  106. }
  107. if (printPages.length > 1) {
  108. this.printResult.command = 'write';
  109. this.printResult.success = false;
  110. this.printResult.message = '使用发卡机发卡,每次只能发一个标签,打印程序收到了' + printPages.length + '个标签数据。';
  111. this.$refs.printResultModal.show = true;
  112. return;
  113. }
  114. let printPage = printPages[0];
  115. let epc = null;
  116. for (let index = 0; index < printPage.printItems.length; index++) {
  117. if (printPage.printItems[index].displayType == 'EPC') {
  118. epc = printPage.printItems[index].content;
  119. }
  120. }
  121. _self.lastWriteEpc = epc;
  122. this.printSingleEpc(epc);
  123. },
  124. /**
  125. * 打印单张EPC
  126. * @param epc 待打印的EPC的内容
  127. */
  128. printSingleEpc: function (epc) {
  129. let _self = this;
  130. _self.$refs.printResultModal.show = false;
  131. let promise = PrintEpcUtil.printSingleEpc(this.printerName, epc);
  132. _self.$refs.loading.show();
  133. promise.then(successData => {
  134. _self.$refs.loading.hide();
  135. if (successData.success == false) {
  136. successData.command = 'write';
  137. _self.printResult = successData;
  138. _self.$refs.printResultModal.show = true;
  139. }
  140. }, errorData => {
  141. _self.$refs.loading.hide();
  142. if (errorData.success == false) {
  143. errorData.command = 'write';
  144. _self.printResult = errorData;
  145. _self.$refs.printResultModal.show = true;
  146. }
  147. });
  148. },
  149. /**
  150. * 恢复EPC
  151. */
  152. restoreEpc: function () {
  153. let _self = this;
  154. _self.$refs.printResultModal.show = true;
  155. let promise = PrintEpcUtil.resetTag(this.printerName);
  156. promise.then(successData => {
  157. successData.command = 'restore';
  158. _self.printResult = successData;
  159. _self.$refs.printResultModal.show = true;
  160. }, errorData => {
  161. errorData.command = 'restore';
  162. _self.printResult = errorData;
  163. _self.$refs.printResultModal.show = true;
  164. });
  165. },
  166. /**
  167. * 读取EPC
  168. */
  169. readEpc: function () {
  170. let _self = this;
  171. _self.$refs.printResultModal.show = true;
  172. let promise = PrintEpcUtil.readEpc(this.printerName);
  173. promise.then(successData => {
  174. successData.command = 'read';
  175. _self.printResult = successData;
  176. }, errorData => {
  177. errorData.command = 'read';
  178. _self.printResult = errorData;
  179. });
  180. },
  181. /**
  182. * 显示模态框
  183. */
  184. show: function () {
  185. this.$refs.printResultModal.show = true;
  186. },
  187. },
  188. };
  189. </script>