index.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
  4. <el-form-item label="时间" label-width="40px">
  5. <el-date-picker
  6. style="margin-top:5px;"
  7. v-model="dateRange"
  8. size="small"
  9. value-format="yyyy-MM-dd HH:mm:ss"
  10. type="datetimerange"
  11. range-separator="-"
  12. start-placeholder="开始日期"
  13. end-placeholder="结束日期"
  14. ></el-date-picker>
  15. </el-form-item>
  16. <el-form-item label="报表种类" prop="type">
  17. <el-select v-model="queryParams.type" placeholder="请选择报表种类" size="small" style="width: 80px">
  18. <el-option label="日" :value="1"/>
  19. <el-option label="周" :value="2"/>
  20. <el-option label="月" :value="3"/>
  21. <el-option label="年" :value="4"/>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item>
  25. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  26. <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  27. <el-button
  28. type="warning"
  29. plain
  30. icon="el-icon-download"
  31. size="mini"
  32. :loading="exportLoading"
  33. @click="handleExport"
  34. v-hasPermi="['system:admin:export']"
  35. >导出</el-button>
  36. </el-form-item>
  37. </el-form>
  38. <el-table v-loading="loading" :data="adminList" height="calc(100vh - 10vh - 120px)">
  39. <el-table-column label="序号" align="center" prop="" show-overflow-tooltip >
  40. <template slot-scope="scope">
  41. {{scope.$index + 1}}
  42. </template>
  43. </el-table-column>
  44. <el-table-column label="时间" align="center" prop="reportDate" show-overflow-tooltip />
  45. <el-table-column label="报表种类" align="center" show-overflow-tooltip >
  46. <template slot-scope="scope">
  47. <span>{{ scope.row.type == 1 ? '日':scope.row.type ==2 ? '周':scope.row.type ==3 ? '月':scope.row.type ==4 ? '年': '' }}</span>
  48. </template>
  49. </el-table-column>
  50. <el-table-column label="总金额" align="center" prop="totalMoney" show-overflow-tooltip >
  51. <template slot-scope="scope">
  52. <span>{{Number(scope.row.totalMoney).toFixed(2) || "0.00"}}</span>
  53. </template>
  54. </el-table-column>
  55. <el-table-column label="现金" align="center" prop="cashMoney" show-overflow-tooltip >
  56. <template slot-scope="scope">
  57. <span>{{Number(scope.row.cashMoney).toFixed(2) || "0.00"}}</span>
  58. </template>
  59. </el-table-column>
  60. <el-table-column label="微信" align="center" prop="wxMoney" show-overflow-tooltip >
  61. <template slot-scope="scope">
  62. <span>{{Number(scope.row.wxMoney).toFixed(2) || "0.00"}}</span>
  63. </template>
  64. </el-table-column>
  65. <el-table-column label="支付宝" align="center" prop="zfbMoney" show-overflow-tooltip >
  66. <template slot-scope="scope">
  67. <span>{{Number(scope.row.zfbMoney).toFixed(2) || "0.00"}}</span>
  68. </template>
  69. </el-table-column>
  70. </el-table>
  71. <pagination
  72. v-show="total>0"
  73. :total="total"
  74. :page.sync="queryParams.current"
  75. :limit.sync="queryParams.size"
  76. @pagination="getList"
  77. />
  78. </div>
  79. </template>
  80. <script>
  81. import { listReport, exportReport } from "@/api/recharge/reportForm";
  82. export default {
  83. name: "admin",
  84. data() {
  85. return {
  86. // 导出遮罩层
  87. exportLoading: false,
  88. // 显示搜索条件
  89. showSearch: true,
  90. // 总条数
  91. total: 0,
  92. // 参数表格数据
  93. adminList: [],
  94. // 日期范围
  95. dateRange: [],
  96. // 查询参数
  97. queryParams: {
  98. current: 1,
  99. size: 10,
  100. type: 1,
  101. },
  102. // 表单参数
  103. form: {},
  104. };
  105. },
  106. created() {
  107. this.getList();
  108. },
  109. methods: {
  110. /** 查询参数列表 */
  111. getList() {
  112. this.loading = true;
  113. listReport(this.addDateRange(this.queryParams,this.dateRange,'section')).then(response => {
  114. this.adminList = response.data.records.map(val=>{
  115. return {
  116. ...val,
  117. type:this.queryParams.type
  118. }
  119. });
  120. this.total = response.data.total;
  121. this.loading = false;
  122. }
  123. );
  124. },
  125. /** 搜索按钮操作 */
  126. handleQuery() {
  127. this.getList();
  128. },
  129. /** 重置按钮操作 */
  130. resetQuery() {
  131. this.queryParams.current = 1;
  132. this.queryParams.startTime = undefined;
  133. this.queryParams.endTime = undefined;
  134. this.queryParams.endTime = undefined;
  135. this.queryParams.type = 1
  136. this.dateRange = [];
  137. this.resetForm("queryForm");
  138. this.handleQuery();
  139. },
  140. /** 导出按钮操作 */
  141. handleExport() {
  142. let queryParams = {...this.queryParams};
  143. delete queryParams.current
  144. delete queryParams.size
  145. this.exportLoading = true;
  146. exportReport(queryParams).then(response =>{
  147. this.exportLoading = false;
  148. localStorage.setItem('fileExportId', response.data)
  149. this.$router.push({path:'/recharge/fileExport'})
  150. })
  151. // this.$confirm('是否确认导出数据?', "警告", {
  152. // confirmButtonText: "确定",
  153. // cancelButtonText: "取消",
  154. // type: "warning"
  155. // }).then(() => {
  156. // this.exportLoading = true;
  157. // return exportReport(queryParams);
  158. // }).then(res => {
  159. // this.downloadBlob(res)
  160. // this.exportLoading = false;
  161. // }).catch(() => {
  162. // this.exportLoading = false;
  163. // });
  164. },
  165. }
  166. };
  167. </script>