index.vue 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <view class="page-wrap">
  3. <view class="fixed-header">
  4. <view class="search-input">
  5. <input
  6. class="input"
  7. placeholder-style="color: #999"
  8. type="text"
  9. placeholder="关键词"
  10. maxlength="20"
  11. confirm-type="search"
  12. v-model="listForm.keyword"
  13. @confirm="getBillList"
  14. />
  15. <image class="icon" src="../../../static/icon_search.png"></image>
  16. </view>
  17. <button class="filter" @click="handleOpenFilter">筛选</button>
  18. </view>
  19. <view class="invoice-panel">
  20. <view class="item" @click="handleOpenDetail(item.billId)" v-for="(item, index) in listData" :key="index">
  21. <view class="name">{{ item.payType }}# {{ item.billType }}</view>
  22. <view class="desc">账单编号:{{ item.billId }}</view>
  23. <view class="desc">创建时间:{{ item.createTime }}</view>
  24. <view class="desc">所属订单:--</view>
  25. <view class="state">{{ numberfilter(item.amount) }}</view>
  26. </view>
  27. <view class="c-abnor" v-if="!listData.length">
  28. <image class="icon" src="@/static/svg/bags.svg"></image>
  29. 暂无数据
  30. </view>
  31. </view>
  32. </view>
  33. </template>
  34. <script>
  35. import billService from '@/api/bill.js';
  36. import { numberfilter } from '@/utils/filter';
  37. export default {
  38. data() {
  39. return {
  40. listForm: {
  41. keyword: '',
  42. type: '',
  43. date: '最近30天',
  44. sort: 'asc'
  45. },
  46. listData: []
  47. };
  48. },
  49. onLoad(option) {
  50. this.getBillList();
  51. uni.$on('updateData', (data) => {
  52. this.listForm = data;
  53. this.getBillList();
  54. });
  55. },
  56. onPullDownRefresh() {
  57. this.getBillList();
  58. },
  59. methods: {
  60. // 获取账单列表
  61. async getBillList() {
  62. const { rows } = await billService.getBillList(this.listForm);
  63. this.listData = rows;
  64. uni.pageScrollTo({ scrollTop: 0 });
  65. uni.stopPullDownRefresh();
  66. },
  67. // 打开筛选
  68. handleOpenFilter() {
  69. uni.navigateTo({
  70. url: 'filter',
  71. success: (res) => {
  72. res.eventChannel.emit('updateData', this.listForm);
  73. }
  74. });
  75. },
  76. // 打开详账单情
  77. handleOpenDetail(id) {
  78. uni.navigateTo({
  79. url: 'detail?id=' + id
  80. });
  81. },
  82. numberfilter
  83. }
  84. };
  85. </script>
  86. <style lang="scss" scoped>
  87. @import 'index.scss';
  88. </style>