index.vue 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <template>
  2. <div class="subPage">
  3. <div class="system-table-search">
  4. <div class="flex-h">
  5. <div class="flex-item flex-h"></div>
  6. <ul>
  7. <li>
  8. <el-select v-model="CaseId" placeholder="请选择案场">
  9. <el-option
  10. v-for="item in cases"
  11. :key="item.CaseId"
  12. :label="item.CaseName"
  13. :value="item.CaseId">
  14. </el-option>
  15. </el-select>
  16. </li>
  17. <li>
  18. <el-select v-model="postData.type" placeholder="请选择课程类别">
  19. <el-option
  20. v-for="item in typeList"
  21. :key="item.CaseId"
  22. :label="item.CaseName"
  23. :value="item.CaseId">
  24. </el-option>
  25. </el-select>
  26. </li>
  27. <li>
  28. <el-input
  29. placeholder="请输入课程名称"
  30. v-model="postData.name"
  31. clearable>
  32. </el-input>
  33. </li>
  34. </ul>
  35. <el-button
  36. size="mini"
  37. type="primary" @click="search">搜索</el-button>
  38. <el-button
  39. size="mini"
  40. type="success" @click="search">导出Excel</el-button>
  41. </div>
  42. <div class="moreFilter"></div>
  43. </div>
  44. <div class="system-table-box">
  45. <el-table
  46. :data="currentList"
  47. stripe
  48. style="width: 100%">
  49. <el-table-column
  50. prop="CaseName"
  51. label="所属案场">
  52. </el-table-column>
  53. <el-table-column
  54. prop="Name"
  55. label="课程名称">
  56. </el-table-column>
  57. <el-table-column
  58. prop="Type"
  59. label="课程类别">
  60. </el-table-column>
  61. <el-table-column
  62. prop="Date"
  63. label="课程时间">
  64. </el-table-column>
  65. <el-table-column
  66. prop="Price"
  67. label="课程价格">
  68. </el-table-column>
  69. <el-table-column
  70. prop="ApplyNum"
  71. label="报名人数">
  72. </el-table-column>
  73. <el-table-column
  74. prop="CheckedNum"
  75. label="核销人数">
  76. </el-table-column>
  77. <el-table-column
  78. prop="totalPrice"
  79. label="总费用">
  80. </el-table-column>
  81. </el-table>
  82. </div>
  83. <el-pagination
  84. @current-change="handleCurrentChange"
  85. :current-page.sync="postData.page"
  86. :page-size="postData.pagesize"
  87. layout="prev, pager, next, jumper"
  88. :total="total">
  89. </el-pagination>
  90. </div>
  91. </template>
  92. <script>
  93. import { mapState } from 'vuex'
  94. import tableSearch from '@/components/tableSearch/index'
  95. export default {
  96. name: '',
  97. data () {
  98. return {
  99. total: 0,
  100. postData: { // 表格搜索条件
  101. caseid: '', // 案场id
  102. type: '', // 卡券类型
  103. name: '', // 卡券名称
  104. page: 1, // 当前页码
  105. pagesize: 10, // 请求数据量
  106. },
  107. currentList: [],
  108. typeList: [],
  109. }
  110. },
  111. computed: {
  112. ...mapState({
  113. cases: x => x.app.cases.list,
  114. defaultCaseId: x => x.app.cases.default
  115. }),
  116. CaseId: {
  117. get () {
  118. return this.postData.caseid || this.defaultCaseId
  119. },
  120. set (val) {
  121. this.postData.caseid = val
  122. }
  123. }
  124. },
  125. components: {
  126. tableSearch,
  127. },
  128. mounted () {
  129. this.$nextTick(function () {
  130. })
  131. },
  132. methods: {
  133. search () { // 搜索
  134. // 1
  135. },
  136. handleCurrentChange (val) { // 跳转到分页
  137. // this.getList()
  138. },
  139. }
  140. }
  141. </script>
  142. <!-- Add "scoped" attribute to limit CSS to this component only -->
  143. <style lang="scss" scoped>
  144. @import "page.scss";
  145. </style>