瀏覽代碼

【Mod】余额提现提醒

liuxiangxin 2 月之前
父節點
當前提交
b20af2b168
共有 2 個文件被更改,包括 177 次插入132 次删除
  1. 165 132
      pages/balance/index.vue
  2. 12 0
      pages/user/withdraw.vue

+ 165 - 132
pages/balance/index.vue

@@ -1,143 +1,176 @@
 <template>
-  <view class="balance">
-    <!-- <view class="date_picker">
+	<view class="balance">
+		<!-- <view class="date_picker">
       <picker mode="date" :value="selectedDate" fields="month" @change="_bindDateChange">
         <view>{{ formattedDate }}</view>
       </picker>
     </view> -->
-    <view class="balance_list">
-      <!-- <view class="balance_date">2025年1月</view> -->
-      <view class="balance_item" @click="_goDetail(item.id)" v-for="(item, index) in balanceList" :key="item.id">
-        <view class="balance_item_left">
-          <view style="margin-bottom: 10rpx"
-            >{{ item.type_state }} <text v-if="item.state" style="font-size: 20rpx">({{ item.state }})</text>
-          </view>
-          <view>{{ item.insert_time }}</view>
-        </view>
-        <view class="balance_item_right">
-          <view class="price">{{ item.prefix == 1 ? "+" : "-" }}{{ item.amount }}</view>
-          <view>余额:{{ item.balance }}</view>
-        </view>
-      </view>
-    </view>
-    <Empty v-if="balanceList.length == 0 && !isReqing" text="----- 还没有记录啦 -----" />
-    <view class="to_bottom" v-if="isLast && balanceList.length"> -----到底啦-----</view>
-  </view>
+		<view class="balance_list">
+			<!-- <view class="balance_date">2025年1月</view> -->
+			<view class="balance_item" @click="_goDetail(item.id)" v-for="(item, index) in balanceList" :key="item.id">
+				<view class="balance_item_fix">
+					<view class="balance_item_left">
+						<view style="margin-bottom: 10rpx">{{ item.type_state }}
+							<text v-if="item.state" style="font-size: 20rpx">
+								({{ item.state }})
+							</text>
+						</view>
+						<view>{{ item.insert_time }}</view>
+					</view>
+					<view class="balance_item_right">
+						<view class="price">{{ item.prefix == 1 ? "+" : "-" }}{{ item.amount }}</view>
+						<view>余额:{{ item.balance }}</view>
+					</view>
+				</view>
+				<view class="alter_info"v-if="item.buy_type == 2 && item.status == 1" >若提现不成功,将在24小时内返回您的余额,可重新提现</view>
+			</view>
+		</view>
+		<Empty v-if="balanceList.length == 0 && !isReqing" text="----- 还没有记录啦 -----" />
+		<view class="to_bottom" v-if="isLast && balanceList.length"> -----到底啦-----</view>
+	</view>
 </template>
 
 <script setup>
-import { ref, computed, onMounted } from "vue";
-import { onReachBottom, onPullDownRefresh } from "@dcloudio/uni-app";
-import Empty from "@/components/Empty/Empty.vue";
-import http from "@/utils/request";
-
-const selectedDate = ref("请选择日期");
-const balanceList = ref([]);
-const page = ref(1);
-const pageSize = ref(15);
-const isLast = ref(false);
-const isReqing = ref(false);
-
-const _bindDateChange = (e) => {
-  selectedDate.value = e.detail.value;
-};
-
-onMounted(() => {
-  _getBalacnelist();
-});
-
-const _goDetail = (record_id) => {
-  uni.navigateTo({
-    url: `/pages/balance/detail?record_id=${record_id}`,
-  });
-};
-
-const _getBalacnelist = async () => {
-  if (isReqing.value) return;
-  isReqing.value = true;
-
-  try {
-    const callback = await http.request("api/custom_amount/get_record_list", { page: page.value, limit: pageSize.value });
-    if (callback.code == "success") {
-      if (callback.data.last_page <= page.value) isLast.value = true;
-      const balanceListData = callback.data.data || [];
-      balanceList.value = [...balanceList.value, ...balanceListData];
-    }
-  } finally {
-    isReqing.value = false;
-  }
-};
-
-onReachBottom(async () => {
-  console.log("上拉加载");
-  if (isLast.value || isReqing.value) return;
-  page.value += 1;
-  await _getBalacnelist();
-});
-
-onPullDownRefresh(async () => {
-  page.value = 1;
-  balanceList.value = [];
-  isLast.value = false;
-  await _getBalacnelist();
-  uni.stopPullDownRefresh();
-});
-
-const formattedDate = computed(() => {
-  if (selectedDate.value === "请选择日期") {
-    return selectedDate.value;
-  }
-  const [year, month] = selectedDate.value.split("-");
-  return `${year}年${parseInt(month)}月`;
-});
+	import {
+		ref,
+		computed,
+		onMounted
+	} from "vue";
+	import {
+		onReachBottom,
+		onPullDownRefresh
+	} from "@dcloudio/uni-app";
+	import Empty from "@/components/Empty/Empty.vue";
+	import http from "@/utils/request";
+
+	const selectedDate = ref("请选择日期");
+	const balanceList = ref([]);
+	const page = ref(1);
+	const pageSize = ref(15);
+	const isLast = ref(false);
+	const isReqing = ref(false);
+
+	const _bindDateChange = (e) => {
+		selectedDate.value = e.detail.value;
+	};
+
+	onMounted(() => {
+		_getBalacnelist();
+	});
+
+	const _goDetail = (record_id) => {
+		uni.navigateTo({
+			url: `/pages/balance/detail?record_id=${record_id}`,
+		});
+	};
+
+	const _getBalacnelist = async () => {
+		if (isReqing.value) return;
+		isReqing.value = true;
+
+		try {
+			const callback = await http.request("api/custom_amount/get_record_list", {
+				page: page.value,
+				limit: pageSize.value
+			});
+			if (callback.code == "success") {
+				if (callback.data.last_page <= page.value) isLast.value = true;
+				const balanceListData = callback.data.data || [];
+				balanceList.value = [...balanceList.value, ...balanceListData];
+			}
+		} finally {
+			isReqing.value = false;
+		}
+	};
+
+	onReachBottom(async () => {
+		console.log("上拉加载");
+		if (isLast.value || isReqing.value) return;
+		page.value += 1;
+		await _getBalacnelist();
+	});
+
+	onPullDownRefresh(async () => {
+		page.value = 1;
+		balanceList.value = [];
+		isLast.value = false;
+		await _getBalacnelist();
+		uni.stopPullDownRefresh();
+	});
+
+	const formattedDate = computed(() => {
+		if (selectedDate.value === "请选择日期") {
+			return selectedDate.value;
+		}
+		const [year, month] = selectedDate.value.split("-");
+		return `${year}年${parseInt(month)}月`;
+	});
 </script>
 
 <style scoped lang="less">
-.balance {
-  padding: 36rpx;
-  box-sizing: border-box;
-  width: 100vw;
-  .date_picker {
-    padding: 0 16rpx;
-    border: 1px solid #e5e5e5;
-    width: 250rpx;
-    height: 60rpx;
-    line-height: 60rpx;
-    margin-bottom: 40rpx;
-  }
-  .balance_list {
-    .balance_date {
-      font-weight: bold;
-      padding-bottom: 20rpx;
-      border-bottom: 2rpx solid #ddd;
-    }
-    .balance_item {
-      padding-bottom: 20rpx;
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-      border-bottom: 1px solid #ddd;
-      .balance_item_left,
-      .balance_item_right {
-        display: flex;
-        flex-direction: column;
-        font-size: 26rpx;
-        padding-top: 20rpx;
-      }
-      .balance_item_right {
-        align-items: flex-end;
-        > .price {
-          font-weight: bold;
-          margin-bottom: 10rpx;
-          &.red {
-            color: #ff0000;
-          }
-          &.green {
-            color: #00ff00;
-          }
-        }
-      }
-    }
-  }
-}
-</style>
+	.balance {
+		padding: 36rpx;
+		box-sizing: border-box;
+		width: 100vw;
+
+		.date_picker {
+			padding: 0 16rpx;
+			border: 1px solid #e5e5e5;
+			width: 250rpx;
+			height: 60rpx;
+			line-height: 60rpx;
+			margin-bottom: 40rpx;
+		}
+
+		.balance_list {
+			.balance_date {
+				font-weight: bold;
+				padding-bottom: 20rpx;
+				border-bottom: 2rpx solid #ddd;
+			}
+			.balance_item {
+				border-bottom: 1px solid #ddd;
+				padding-bottom: 20rpx;
+				.balance_item_fix {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					.balance_item_left,
+					.balance_item_right {
+						display: flex;
+						flex-direction: column;
+						font-size: 26rpx;
+						padding-top: 20rpx;
+					}
+
+					.balance_item_right {
+						align-items: flex-end;
+
+						>.price {
+							font-weight: bold;
+							margin-bottom: 10rpx;
+
+							&.red {
+								color: #ff0000;
+							}
+
+							&.green {
+								color: #00ff00;
+							}
+						}
+					}
+				}
+			}
+
+			.alter_info {
+				display: block;
+				color: #e03519;
+				font-size: 20rpx;
+				overflow: hidden;
+				margin: 0rpx auto;
+				line-height: 40rpx;
+				padding: 5rpx 0rpx;
+			}
+		}
+	}
+</style>

+ 12 - 0
pages/user/withdraw.vue

@@ -10,6 +10,7 @@
         <text>当前可提现余额{{ maxWithdrawAmount }}元</text>
         <view style="color: #5baff4" @click="_getAll">全部提现</view>
       </view>
+	  <view class="alter_info">若提现不成功,将在24小时内返回您的余额,可重新提现</view>
     </view>
     <button class="withdraw_btn" :class="isDisabled ? 'disabled' : ''" @click="_getMoney">确定提现</button>
   </view>
@@ -182,4 +183,15 @@ watch(withdrawAmount, (newValue) => {
     }
   }
 }
+.alter_info {
+  display: block;
+  color: #e03519;
+  font-size: 20rpx;
+  overflow: hidden;
+  margin: 20rpx auto;
+  background: #ffffff;
+  line-height: 40rpx;
+  padding: 35rpx 35rpx;
+  text-align: center;
+}
 </style>