sum_print.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <template>
  2. <div class="detail-container">
  3. <!-- <div class="top-container">
  4. <el-radio-group v-model="currentType" size="medium" @change="changeType()">
  5. <el-radio-button v-for="(item, index) in typeList" :key="index" :label="item.value">{{item.label}}</el-radio-button>
  6. </el-radio-group>
  7. </div> -->
  8. <div id="printMe">
  9. <template v-for="(item,i) in detailArr">
  10. <PrintCommon v-if="currentType === 0" :key="i" :detail-data="item" :company="company" />
  11. <PrintFoshan v-if="currentType === 1" :key="i" :detail-data="item" :company="company" />
  12. <PrintGuangzhou v-if="currentType === 2" :key="i" :detail-data="item" :company="company" />
  13. <PrintShaoguan v-if="currentType === 3" :key="i" :detail-data="item" :company="company" />
  14. </template>
  15. </div>
  16. <div class="page-footer">
  17. <div class="footer">
  18. <el-button v-print="printObj" type="primary" icon="el-icon-printer">打 印</el-button>
  19. <el-button @click="goBack">关 闭</el-button>
  20. </div>
  21. </div>
  22. </div>
  23. </template>
  24. <script>
  25. import print from 'vue-print-nb'
  26. import { getDeliverDetail } from '@/api/supply/deliver'
  27. import { addPrint } from '@/api/supply/pickup'
  28. import { getCompanyList } from '@/api/user'
  29. import PrintCommon from '@/components/Common/print-common'
  30. import PrintFoshan from '@/components/Common/print-foshan'
  31. import PrintGuangzhou from '@/components/Common/print-guangzhou'
  32. import PrintShaoguan from '@/components/Common/print-shaoguan'
  33. export default {
  34. name: 'ReturnDetail',
  35. componentName: 'ReturnDetail',
  36. components: {
  37. PrintFoshan,
  38. PrintGuangzhou,
  39. PrintShaoguan,
  40. PrintCommon
  41. },
  42. directives: {
  43. print
  44. },
  45. props: ['listItem'],
  46. data() {
  47. return {
  48. currentType: 0,
  49. typeList: [
  50. { label: '通用', value: 0 },
  51. { label: '佛山', value: 1 },
  52. { label: '广州', value: 2 },
  53. { label: '韶关', value: 3 }
  54. ],
  55. printObj: {
  56. id: 'printMe',
  57. closeCallback: () => {
  58. this.addPrint()
  59. }
  60. },
  61. detailData: {},
  62. company: '',
  63. detailArr: []
  64. }
  65. },
  66. created() {
  67. console.log(this.listItem,'454')
  68. this.listItem.map(k => {
  69. this.getDetail(k.id)
  70. })
  71. this.getCompanyList()
  72. },
  73. methods: {
  74. // 返回列表
  75. goBack() {
  76. this.$emit('backListFormDetail')
  77. },
  78. changeType() {
  79. },
  80. // 获取详情
  81. getDetail(id) {
  82. getDeliverDetail({ id: id }).then(res => {
  83. this.detailArr.push(res.data)
  84. })
  85. },
  86. getCompanyList() {
  87. getCompanyList().then(res => {
  88. this.company = res.data ? res.data[0].companyName : ''
  89. })
  90. },
  91. // 添加次数
  92. addPrint() {
  93. const ids = this.listItem.map(item => {
  94. return item.invoiceOrderId
  95. })
  96. addPrint({ ids: ids.join(',') }).then(res => {
  97. // this.$successMsg('提交成功');
  98. this.$parent.getList()
  99. })
  100. }
  101. }
  102. }
  103. </script>
  104. <style>
  105. body{
  106. height: auto !important;
  107. }
  108. </style>
  109. <style scoped lang="scss">
  110. .detail-container {
  111. width: 100%;
  112. height: auto !important;
  113. margin-bottom: 50px;
  114. font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
  115. color: #000 !important;
  116. }
  117. .top-container {
  118. margin-bottom: 20px;
  119. }
  120. </style>