diff --git a/src/views/Transfers.vue b/src/views/Transfers.vue
index b3103ec..3a65a3e 100644
--- a/src/views/Transfers.vue
+++ b/src/views/Transfers.vue
@@ -206,7 +206,7 @@
-
-
-
@@ -285,30 +271,34 @@ const returnForm = reactive({
const pendingTransfers = ref([])
const pendingAllocations = ref([])
-const transferHistory = ref([])
+const allTransferHistory = ref([])
+const filteredTransferHistory = ref([])
const userList = ref([])
-const pagination = reactive({
- page: 1,
- limit: 10,
- total: 0
-})
-
-// 移动端检测和分页布局
+// 移动端检测
const windowWidth = ref(window.innerWidth)
const isMobile = computed(() => {
return windowWidth.value <= 768
})
-const paginationLayout = computed(() => {
- if (windowWidth.value <= 480) {
- return 'prev, pager, next'
- } else if (windowWidth.value <= 768) {
- return 'total, prev, pager, next'
- } else {
- return 'total, sizes, prev, pager, next, jumper'
- }
+// 计算属性
+const totalCount = computed(() => allTransferHistory.value.length)
+const pendingCount = computed(() => {
+ return allTransferHistory.value.filter(t =>
+ t.status === 'pending' &&
+ t.to_user_id === userStore.user.id
+ ).length
+})
+const confirmedCount = computed(() => {
+ return allTransferHistory.value.filter(t =>
+ t.status === 'confirmed'
+ ).length
+})
+const rejectedCount = computed(() => {
+ return allTransferHistory.value.filter(t =>
+ t.status === 'rejected'
+ ).length
})
// 窗口大小变化监听
@@ -316,11 +306,6 @@ const handleResize = () => {
windowWidth.value = window.innerWidth
}
-// 上传配置
-const uploadUrl = ref(uploadURL)
-const uploadHeaders = computed(() => getUploadConfig().headers)
-
-// 生命周期
onMounted(() => {
loadPendingTransfers()
loadPendingAllocations()
@@ -336,34 +321,22 @@ onUnmounted(() => {
// 监听状态筛选
watch(statusFilter, () => {
- pagination.page = 1
- loadTransferHistory()
-})
-
-// 计算属性
-const filteredTransferHistory = computed(() => {
- if (!statusFilter.value) return transferHistory.value
-
- return transferHistory.value.filter(transfer => {
- if (statusFilter.value === 'pending') {
- return transfer.status === 'pending' && transfer.to_user_id === userStore.user.id
- }
- return transfer.status === statusFilter.value
- })
-})
-
-const totalCount = computed(() => pagination.total)
-const pendingCount = computed(() => {
- return transferHistory.value.filter(t => t.status === 'pending' && t.to_user_id === userStore.user.id).length
-})
-const confirmedCount = computed(() => {
- return transferHistory.value.filter(t => t.status === 'confirmed').length
-})
-const rejectedCount = computed(() => {
- return transferHistory.value.filter(t => t.status === 'rejected').length
+ filteredTransferHistory.value = filterTransfers(allTransferHistory.value)
})
// 方法
+const filterTransfers = (transfers) => {
+ if (!statusFilter.value) return transfers
+
+ return transfers.filter(transfer => {
+ if (statusFilter.value === 'pending') {
+ return transfer.status === 'pending' &&
+ transfer.to_user_id === userStore.user.id
+ }
+ return transfer.status === statusFilter.value
+ })
+}
+
const loadPendingTransfers = async () => {
try {
const response = await api.get('/transfers/pending', {
@@ -397,16 +370,10 @@ const loadPendingAllocations = async () => {
const loadTransferHistory = async () => {
try {
loading.value = true
- const params = {
- page: pagination.page,
- limit: pagination.limit,
- status: statusFilter.value || undefined
- }
-
- const response = await api.get(`/transfers/user/${userStore.user.id}`, { params })
+ const response = await api.get(`/transfers/user/${userStore.user.id}`)
if (response.data.success) {
- transferHistory.value = response.data.data.transfers
- Object.assign(pagination, response.data.data.pagination)
+ allTransferHistory.value = response.data.data.transfers || []
+ filteredTransferHistory.value = filterTransfers(allTransferHistory.value)
}
} catch (error) {
console.error('加载转账记录失败:', error)
@@ -564,10 +531,10 @@ const confirmReturn = async () => {
const confirmReceived = async (transferId) => {
try {
- const transfer = transferHistory.value.find(t => t.id === transferId)
+ const transfer = allTransferHistory.value.find(t => t.id === transferId);
if (!transfer) {
- ElMessage.error('转账记录不存在')
- return
+ ElMessage.error('转账记录不存在');
+ return;
}
await ElMessageBox.confirm(
@@ -578,25 +545,30 @@ const confirmReceived = async (transferId) => {
cancelButtonText: '取消',
type: 'warning'
}
- )
+ );
- confirmLoading.value = true
- const response = await api.post(`/transfers/confirm-received/${transferId}`)
+ confirmLoading.value = true;
+
+ // 使用 transferAPI.confirmReceived 方法
+ const response = await transferAPI.confirmReceived(transferId);
if (response.data.success) {
- ElMessage.success('收款确认成功')
- await loadTransferHistory()
- await loadPendingTransfers()
+ ElMessage.success('收款确认成功');
+ await loadTransferHistory();
+ await loadPendingTransfers();
}
} catch (error) {
if (error !== 'cancel') {
- console.error('确认收款失败:', error)
- ElMessage.error(error.response?.data?.message || '确认收款失败')
+ console.error('确认收款失败:', error);
+ const errorMsg = error.response?.data?.message ||
+ error.response?.data?.error?.message ||
+ '确认收款失败';
+ ElMessage.error(errorMsg);
}
} finally {
- confirmLoading.value = false
+ confirmLoading.value = false;
}
-}
+};
const confirmNotReceived = async (transferId) => {
try {
@@ -608,24 +580,30 @@ const confirmNotReceived = async (transferId) => {
cancelButtonText: '取消',
type: 'warning'
}
- )
+ );
- confirmLoading.value = true
- const response = await transferAPI.confirmNotReceived(transferId)
+ confirmLoading.value = true;
+
+ // 使用 transferAPI.confirmNotReceived 方法
+ const response = await transferAPI.confirmNotReceived(transferId);
if (response.data.success) {
- ElMessage.success(response.data.message)
- loadTransferHistory()
+ ElMessage.success(response.data.message || '操作成功');
+ await loadTransferHistory();
+ await loadPendingTransfers();
}
} catch (error) {
if (error !== 'cancel') {
- console.error('确认未收款失败:', error)
- ElMessage.error(error.response?.data?.message || '操作失败')
+ console.error('确认未收款失败:', error);
+ const errorMsg = error.response?.data?.message ||
+ error.response?.data?.error?.message ||
+ '操作失败';
+ ElMessage.error(errorMsg);
}
} finally {
- confirmLoading.value = false
+ confirmLoading.value = false;
}
-}
+};
\ No newline at end of file