index.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <view class="balance">
  3. <view class="date_picker">
  4. <picker mode="date" :value="selectedDate" fields="month" @change="_bindDateChange">
  5. <view>{{ formattedDate }}</view>
  6. </picker>
  7. </view>
  8. <view class="balance_list">
  9. <view class="balance_date">2025年1月</view>
  10. <view class="balance_item" @click="_goDetail">
  11. <view class="balance_item_left">
  12. <view style="margin-bottom: 10rpx">签到打卡</view>
  13. <view>2025-01-01 12:00</view>
  14. </view>
  15. <view class="balance_item_right">
  16. <view class="price">+1.00</view>
  17. <view>余额:78.78</view>
  18. </view>
  19. </view>
  20. </view>
  21. </view>
  22. </template>
  23. <script setup>
  24. import { ref, computed } from "vue";
  25. const selectedDate = ref("请选择日期");
  26. const _bindDateChange = (e) => {
  27. selectedDate.value = e.detail.value;
  28. };
  29. const _goDetail = () => {
  30. uni.navigateTo({
  31. url: "/pages/balance/detail",
  32. });
  33. };
  34. const formattedDate = computed(() => {
  35. if (selectedDate.value === "请选择日期") {
  36. return selectedDate.value;
  37. }
  38. const [year, month] = selectedDate.value.split("-");
  39. return `${year}年${parseInt(month)}月`;
  40. });
  41. </script>
  42. <style scoped lang="less">
  43. .balance {
  44. padding: 36rpx;
  45. box-sizing: border-box;
  46. width: 100vw;
  47. .date_picker {
  48. padding: 0 16rpx;
  49. border: 1px solid #e5e5e5;
  50. width: 250rpx;
  51. height: 60rpx;
  52. line-height: 60rpx;
  53. margin-bottom: 40rpx;
  54. }
  55. .balance_list {
  56. .balance_date {
  57. font-weight: bold;
  58. padding-bottom: 20rpx;
  59. border-bottom: 2rpx solid #ddd;
  60. }
  61. .balance_item {
  62. margin-bottom: 20rpx;
  63. display: flex;
  64. justify-content: space-between;
  65. align-items: center;
  66. .balance_item_left,
  67. .balance_item_right {
  68. display: flex;
  69. flex-direction: column;
  70. font-size: 26rpx;
  71. margin-top: 20rpx;
  72. }
  73. .balance_item_right {
  74. align-items: flex-end;
  75. > .price {
  76. font-weight: bold;
  77. margin-bottom: 10rpx;
  78. }
  79. }
  80. }
  81. }
  82. }
  83. </style>