electronicInvoiceRegistration.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <template>
  2. <section>
  3. <!--搜索栏-->
  4. <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
  5. <el-form :inline="true" @submit.native.prevent>
  6. <!-- <el-form-item label="姓名">
  7. <el-input v-model="keyword" placeholder="请输入" clearable @change="searchList" size="small"></el-input>
  8. </el-form-item>
  9. <el-form-item label="课程名称">
  10. <el-input v-model="courseName" placeholder="请输入" clearable @change="searchList" size="small"></el-input>
  11. </el-form-item> -->
  12. <el-button type="primary" size="small" style="float: right;margin-bottom: 10px" @click="exportExcel()"
  13. :loading="exportExcelLoading">导出</el-button>
  14. </el-form>
  15. </el-col>
  16. <!--表格-->
  17. <el-table :data="list" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
  18. <el-table-column prop="courseName" label="项目名称" min-width="180" align="center"></el-table-column>
  19. <el-table-column prop="invoiceType" label="发票类型" min-width="180" align="center">
  20. <template slot-scope="scope">
  21. {{ scope.row.invoiceType === 1 ? '增值税普通发票' : '增值税专用发票' }}
  22. </template>
  23. </el-table-column>
  24. <el-table-column prop="invoiceHeader" label="开票名称" min-width="150" align="center"></el-table-column>
  25. <el-table-column prop="taxCode" label="税号" min-width="120" align="center"></el-table-column>
  26. <el-table-column prop="address" label="地址" min-width="120" align="center"></el-table-column>
  27. <el-table-column prop="phone" label="电话" min-width="120" align="center"></el-table-column>
  28. <el-table-column prop="" label="开户行" min-width="150" align="center"></el-table-column>
  29. <el-table-column prop="" label="银行账号" min-width="180" align="center"></el-table-column>
  30. <el-table-column prop="email" label="邮箱" min-width="150" align="center"></el-table-column>
  31. <el-table-column prop="" label="备注" min-width="150" align="center"></el-table-column>
  32. <el-table-column prop="courseName" label="商品名称" min-width="150" align="center"></el-table-column>
  33. <el-table-column prop="" label="单位" min-width="150" align="center">
  34. <template slot-scope="scope">
  35. </template>
  36. </el-table-column>
  37. <el-table-column prop="" label="数量" min-width="150" align="center">
  38. <template slot-scope="scope">
  39. 1
  40. </template>
  41. </el-table-column>
  42. <el-table-column prop="money" label="单价(元)" min-width="150" align="center"></el-table-column>
  43. <el-table-column prop="money" label="金额(元)" min-width="150" align="center"></el-table-column>
  44. <el-table-column prop="payDate" label="汇款日期" min-width="150" align="center"></el-table-column>
  45. <el-table-column prop="name" label="汇款单位" min-width="150" align="center"></el-table-column>
  46. <el-table-column prop="money" label="实际汇款金额" min-width="150" align="center"></el-table-column>
  47. </el-table>
  48. <!--分页-->
  49. <el-col :span="24" class="toolbar">
  50. <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
  51. :page-sizes="[10, 20, 50, 100]" :page-size="size" layout="total, sizes, prev, pager, next" :total="total"
  52. style="float:right;"></el-pagination>
  53. </el-col>
  54. </section>
  55. </template>
  56. <script>
  57. import { fixedDataGender, fixedDataCertificateType, fixedDataOrNot, fixedDataInvoiceSubject, fixedDatainvoiceType } from '../../common/js/fixedData'
  58. export default {
  59. data() {
  60. return {
  61. // 搜索条件
  62. keyword: null,
  63. courseName: null,
  64. // 表格相关
  65. tableHeight: 0,
  66. listLoading: false,
  67. total: 0,
  68. page: 1,
  69. size: 20,
  70. list: [],
  71. exportExcelLoading: false
  72. }
  73. },
  74. methods: {
  75. exportExcel() {
  76. this.exportExcelLoading = true;
  77. this.http.post('/user-exam-info/exportInvoiceList', {
  78. // name: this.keyword,
  79. // courseName: this.courseName,
  80. invoiceType: '',
  81. }, res => {
  82. if (res.code == "ok") {
  83. var filePath = res.data;
  84. const a = document.createElement('a'); // 创建a标签
  85. a.setAttribute('download', '学员缴费情况.xls');// download属性
  86. a.setAttribute('href', filePath);// href链接
  87. a.click(); //自执行点击事件
  88. a.remove();
  89. } else {
  90. this.$message({
  91. message: res.msg,
  92. type: "error"
  93. });
  94. }
  95. }, () => {
  96. this.exportExcelLoading = false;
  97. })
  98. },
  99. searchList() {
  100. this.page = 1;
  101. this.getList();
  102. },
  103. getList() {
  104. this.listLoading = true;
  105. this.http.post('/user-exam-info/getInvoiceList', {
  106. // name: this.keyword,
  107. // courseName: this.courseName,
  108. invoiceType: '',
  109. pageIndex: this.page,
  110. pageSize: this.size
  111. }, res => {
  112. this.list = (res.data.records || []).map(item => {
  113. const { sex, idType, invoiceType, isIndivdual } = item
  114. return {
  115. ...item
  116. }
  117. });
  118. this.total = res.data.total;
  119. this.listLoading = false;
  120. }, () => {
  121. this.listLoading = false;
  122. })
  123. },
  124. // 分页相关
  125. handleCurrentChange(val) {
  126. this.page = val;
  127. this.getList();
  128. },
  129. handleSizeChange(val) {
  130. this.page = 1;
  131. this.size = val;
  132. this.getList();
  133. }
  134. },
  135. created() {
  136. let height = window.innerHeight;
  137. this.tableHeight = height - 195;
  138. const that = this;
  139. window.onresize = function temp() {
  140. that.tableHeight = window.innerHeight - 195;
  141. };
  142. },
  143. mounted() {
  144. this.getList();
  145. }
  146. }
  147. </script>
  148. <style lang="scss" scoped>
  149. .toolbar {
  150. padding-bottom: 10px;
  151. }
  152. </style>