index.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. </template>
  3. <script>
  4. import {formMixin} from '@/mixins/form'
  5. import {hiprint} from "vue-plugin-hiprint";
  6. export default {
  7. mixins: [formMixin],
  8. components: {
  9. print
  10. },
  11. name: 'wx-print',
  12. data() {
  13. return {
  14. templateList: [],
  15. docs:{
  16. 'sa':{'docName':this.$config.docCode.order,'service':this.$service.orderService,}
  17. },
  18. }
  19. },
  20. methods: {
  21. },
  22. created() {
  23. },
  24. mounted() {
  25. console.log('this.$route.query',this.$route.query)
  26. if (!this.$route.query.layout_id) {
  27. this.$Message.warning('请先选择一个模板再打印')
  28. return
  29. }
  30. if (!this.$route.query.data_id) {
  31. this.$Message.warning('请先选择一条数据再打印')
  32. return
  33. }
  34. if (!this.$route.query.doc) {
  35. this.$Message.warning('请先选择单据类型再打印')
  36. return
  37. }
  38. // let template = this.templateList.find(it => it.layoutId == this.$route.query.layout_id)?.layoutData
  39. console.log('templateList',this.templateList)
  40. let layout = this.excute(this.$service.printLayoutService, this.$service.printLayoutService.selectByCond, { flgValid: true, docName: this.docs[this.$route.query.doc].docName, })
  41. let header=this.excuteNoParam(this.docs[this.$route.query.doc].service, this.docs[this.$route.query.doc].service.selectById,[this.$route.query.data_id])
  42. let detail=this.excuteNoParam(this.docs[this.$route.query.doc].service, this.docs[this.$route.query.doc].service.selectOrderInfoById, [this.$route.query.data_id])
  43. Promise.all([header, detail,layout])
  44. .then((results) => {
  45. // 在这里执行接下来的操作
  46. if(results?.[0]?.code === this.$config.SUCCESS_CODE && results?.[1]?.code === this.$config.SUCCESS_CODE){
  47. let header =results?.[0]?.data
  48. let detail =results?.[1]?.data
  49. let layout =results?.[2]?.data?.list.find(it => it.layoutId == this.$route.query.layout_id)?.layoutData
  50. this.$set(header, 'table', detail['orderItem'])
  51. let printData = {...header}
  52. let hiprintTemplate = new hiprint.PrintTemplate({
  53. template: layout,
  54. })
  55. hiprintTemplate.toPdf(printData,'单据打印')
  56. }else {
  57. this.$Message.warning(this.$t('W_006'))
  58. }
  59. })
  60. }
  61. }
  62. </script>
  63. <style scoped>
  64. </style>