|
|
@ -31,78 +31,29 @@ const markets = ref([]) |
|
|
|
|
|
|
|
|
// 充值明细表格 |
|
|
// 充值明细表格 |
|
|
// 替换你代码中的 tableData 初始化部分 |
|
|
// 替换你代码中的 tableData 初始化部分 |
|
|
const tableData = ref([ |
|
|
|
|
|
{ |
|
|
|
|
|
name: "张三", |
|
|
|
|
|
jwcode: "100001", |
|
|
|
|
|
market: "香港总部", |
|
|
|
|
|
hkGold: 15800.50, |
|
|
|
|
|
sgHcGold: 8900.00, |
|
|
|
|
|
myGold: 5600.75, |
|
|
|
|
|
sgGold: 7800.20, |
|
|
|
|
|
caGold: 3200.00, |
|
|
|
|
|
thHsGold: 1800.50, |
|
|
|
|
|
thHaGold: 2500.80, |
|
|
|
|
|
vnGold: 950.30, |
|
|
|
|
|
bjGold: 4500.00 |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
name: "李四", |
|
|
|
|
|
jwcode: "100002", |
|
|
|
|
|
market: "新加坡分部", |
|
|
|
|
|
hkGold: 9800.00, |
|
|
|
|
|
sgHcGold: 12500.80, |
|
|
|
|
|
myGold: 7800.00, |
|
|
|
|
|
sgGold: 15600.90, |
|
|
|
|
|
caGold: 4200.50, |
|
|
|
|
|
thHsGold: 3600.00, |
|
|
|
|
|
thHaGold: 1900.20, |
|
|
|
|
|
vnGold: 1200.75, |
|
|
|
|
|
bjGold: 3800.00 |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
name: "王五", |
|
|
|
|
|
jwcode: "100003", |
|
|
|
|
|
market: "马来西亚分部", |
|
|
|
|
|
hkGold: 6500.30, |
|
|
|
|
|
sgHcGold: 4800.50, |
|
|
|
|
|
myGold: 18900.00, |
|
|
|
|
|
sgGold: 5600.80, |
|
|
|
|
|
caGold: 2100.00, |
|
|
|
|
|
thHsGold: 2800.60, |
|
|
|
|
|
thHaGold: 3200.00, |
|
|
|
|
|
vnGold: 1800.50, |
|
|
|
|
|
bjGold: 2900.75 |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
name: "赵六", |
|
|
|
|
|
jwcode: "100004", |
|
|
|
|
|
market: "加拿大分部", |
|
|
|
|
|
hkGold: 4200.00, |
|
|
|
|
|
sgHcGold: 3600.80, |
|
|
|
|
|
myGold: 2900.50, |
|
|
|
|
|
sgGold: 4100.00, |
|
|
|
|
|
caGold: 25800.90, |
|
|
|
|
|
thHsGold: 1500.30, |
|
|
|
|
|
thHaGold: 1800.00, |
|
|
|
|
|
vnGold: 850.20, |
|
|
|
|
|
bjGold: 1800.50 |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
name: "孙七", |
|
|
|
|
|
jwcode: "100005", |
|
|
|
|
|
market: "泰国HS分部", |
|
|
|
|
|
hkGold: 7800.75, |
|
|
|
|
|
sgHcGold: 6500.00, |
|
|
|
|
|
myGold: 4200.80, |
|
|
|
|
|
sgGold: 5900.50, |
|
|
|
|
|
caGold: 1800.00, |
|
|
|
|
|
thHsGold: 32500.20, |
|
|
|
|
|
thHaGold: 8900.00, |
|
|
|
|
|
vnGold: 2500.80, |
|
|
|
|
|
bjGold: 3600.30 |
|
|
|
|
|
} |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
const tableData = ref([]); |
|
|
|
|
|
const walletMap = { |
|
|
|
|
|
2: 'hkGold', |
|
|
|
|
|
3: 'sgHcGold', |
|
|
|
|
|
4: 'myGold', |
|
|
|
|
|
5: 'sgGold', |
|
|
|
|
|
6: 'caGold', |
|
|
|
|
|
7: 'thHsGold', |
|
|
|
|
|
8: 'thHaGold', |
|
|
|
|
|
9: 'vnGold', |
|
|
|
|
|
10: 'bjGold' |
|
|
|
|
|
}; |
|
|
|
|
|
const propToWalletId = { |
|
|
|
|
|
hkGold: 2, |
|
|
|
|
|
sgHcGold: 3, |
|
|
|
|
|
myGold: 4, |
|
|
|
|
|
sgGold: 5, |
|
|
|
|
|
caGold: 6, |
|
|
|
|
|
thHsGold: 7, |
|
|
|
|
|
thHaGold: 8, |
|
|
|
|
|
vnGold: 9, |
|
|
|
|
|
bjGold: 10 |
|
|
|
|
|
}; |
|
|
const tableRef = ref(null) |
|
|
const tableRef = ref(null) |
|
|
const scrollTableTop = () => { |
|
|
const scrollTableTop = () => { |
|
|
tableRef.value?.setScrollTop?.(0) |
|
|
tableRef.value?.setScrollTop?.(0) |
|
|
@ -152,28 +103,65 @@ const get = async function (val) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
console.log('搜索参数', getObj.value, selectData.value) |
|
|
console.log('搜索参数', getObj.value, selectData.value) |
|
|
// const result = await API({ |
|
|
|
|
|
// url: '/goldDetail/getGold', |
|
|
|
|
|
// method: 'post', |
|
|
|
|
|
// data: { ...getObj.value, selectData: { ...selectData.value, flag: flag.value } } |
|
|
|
|
|
// }) |
|
|
|
|
|
// console.log('响应数据', result) |
|
|
|
|
|
// tableData.value = result.data.list |
|
|
|
|
|
// total.value = result.data.total |
|
|
|
|
|
|
|
|
|
|
|
// 获取合计数 |
|
|
|
|
|
// const resultGoldTotal = await API({ |
|
|
|
|
|
// url: '/goldDetail/goldTotal', |
|
|
|
|
|
// data: { |
|
|
|
|
|
// jwcode: selectData.value.jwcode, |
|
|
|
|
|
// markets: selectData.value.markets, |
|
|
|
|
|
// flag: flag.value |
|
|
|
|
|
// } |
|
|
|
|
|
// }) |
|
|
|
|
|
// 判断精网号是否存在,假设精网号不存在时 result.data.list 为空数组 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构建请求参数 |
|
|
|
|
|
const params = { |
|
|
|
|
|
pageNum: getObj.value.pageNum, |
|
|
|
|
|
pageSize: getObj.value.pageSize |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 只有当有值时才加入参数,且转换类型 |
|
|
|
|
|
if (selectData.value.jwcode) { |
|
|
|
|
|
params.jwcode = Number(selectData.value.jwcode) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (selectData.value.markets && selectData.value.markets.length > 0) { |
|
|
|
|
|
// 确保市场代码也是正确类型(根据示例是字符串) |
|
|
|
|
|
params.market = String(selectData.value.markets[0]) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
console.log('最终请求参数', params) |
|
|
|
|
|
|
|
|
|
|
|
const result = await API({ |
|
|
|
|
|
url: '/cashCollection/selectUserWallets', |
|
|
|
|
|
method: 'post', |
|
|
|
|
|
data: params |
|
|
|
|
|
}) |
|
|
|
|
|
console.log('响应数据', result) |
|
|
|
|
|
|
|
|
|
|
|
if (result.code === 200) { |
|
|
|
|
|
tableData.value = result.data.list.map(item => { |
|
|
|
|
|
const row = { |
|
|
|
|
|
name: item.userName, |
|
|
|
|
|
jwcode: item.jwcode, |
|
|
|
|
|
market: item.marketName, |
|
|
|
|
|
hkGold: 0, |
|
|
|
|
|
sgHcGold: 0, |
|
|
|
|
|
myGold: 0, |
|
|
|
|
|
sgGold: 0, |
|
|
|
|
|
caGold: 0, |
|
|
|
|
|
thHsGold: 0, |
|
|
|
|
|
thHaGold: 0, |
|
|
|
|
|
vnGold: 0, |
|
|
|
|
|
bjGold: 0 |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
if (item.walletList && Array.isArray(item.walletList)) { |
|
|
|
|
|
item.walletList.forEach(wallet => { |
|
|
|
|
|
const prop = walletMap[wallet.walletId]; |
|
|
|
|
|
if (prop) { |
|
|
|
|
|
row[prop] = wallet.currentPermanentGold; |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
return row; |
|
|
|
|
|
}); |
|
|
|
|
|
total.value = result.data.total; |
|
|
|
|
|
} else { |
|
|
|
|
|
ElMessage.error(result.msg || '获取数据失败'); |
|
|
|
|
|
} |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
console.log('请求失败', error) |
|
|
console.log('请求失败', error) |
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
// 精网号去空格,同时处理 selectData 和 putExcel 中的 jwcode |
|
|
// 精网号去空格,同时处理 selectData 和 putExcel 中的 jwcode |
|
|
@ -204,8 +192,8 @@ const reset = function () { |
|
|
} |
|
|
} |
|
|
const cellClick = function (row, column) { |
|
|
const cellClick = function (row, column) { |
|
|
console.log('cellClick', column) |
|
|
console.log('cellClick', column) |
|
|
|
|
|
|
|
|
const propToMarketName = { |
|
|
|
|
|
|
|
|
const walletId = propToWalletId[column.property]; |
|
|
|
|
|
const propToMarketName = { |
|
|
hkGold: '香港', |
|
|
hkGold: '香港', |
|
|
sgHcGold: '新加坡HC', |
|
|
sgHcGold: '新加坡HC', |
|
|
myGold: '马来西亚', |
|
|
myGold: '马来西亚', |
|
|
@ -215,20 +203,22 @@ const cellClick = function (row, column) { |
|
|
thHaGold: '泰国HA', |
|
|
thHaGold: '泰国HA', |
|
|
vnGold: '越南', |
|
|
vnGold: '越南', |
|
|
bjGold: '北京' |
|
|
bjGold: '北京' |
|
|
} |
|
|
|
|
|
const marketName = propToMarketName[column.property] |
|
|
|
|
|
if (marketName) { |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
const marketName = propToMarketName[column.property] |
|
|
|
|
|
|
|
|
|
|
|
if (marketName && walletId) { |
|
|
currentWalletInfo.value = { |
|
|
currentWalletInfo.value = { |
|
|
userName: row.name, |
|
|
userName: row.name, |
|
|
jwcode: row.jwcode, |
|
|
jwcode: row.jwcode, |
|
|
marketName: row.market, // 用户所属地区 |
|
|
marketName: row.market, // 用户所属地区 |
|
|
walletName: marketName + '钱包', // 钱包名称 |
|
|
walletName: marketName + '钱包', // 钱包名称 |
|
|
currentBalance: row[column.property] || 0 |
|
|
|
|
|
|
|
|
currentBalance: row[column.property] || 0, |
|
|
|
|
|
walletId: walletId |
|
|
} |
|
|
} |
|
|
walletDetailQuery.value.pageNum = 1 |
|
|
walletDetailQuery.value.pageNum = 1 |
|
|
getWalletDetail() |
|
|
getWalletDetail() |
|
|
walletDetailVisible.value = true |
|
|
walletDetailVisible.value = true |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 钱包明细弹窗相关 |
|
|
// 钱包明细弹窗相关 |
|
|
@ -245,20 +235,34 @@ const walletDetailQuery = ref({ |
|
|
const getWalletDetail = async () => { |
|
|
const getWalletDetail = async () => { |
|
|
walletDetailLoading.value = true |
|
|
walletDetailLoading.value = true |
|
|
try { |
|
|
try { |
|
|
// 模拟数据,实际应调用接口 |
|
|
|
|
|
// const res = await API({ url: '/goldDetail/getWalletDetail', data: { ...walletDetailQuery.value, jwcode: currentWalletInfo.value.jwcode, walletType: currentWalletInfo.value.walletName } }) |
|
|
|
|
|
// 模拟延迟 |
|
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 500)) |
|
|
|
|
|
|
|
|
|
|
|
walletDetailList.value = Array(10).fill(0).map((_, index) => ({ |
|
|
|
|
|
time: '2026-01-02 12:00:00', |
|
|
|
|
|
type: index % 2 === 0 ? '充值' : '消耗', |
|
|
|
|
|
amount: index % 2 === 0 ? 5000 : -5000, |
|
|
|
|
|
desc: index % 2 === 0 ? 'Stripe充值' : '购买大黄蜂', |
|
|
|
|
|
orderNo: 'CZLINKXXXXXXXXX' + index, |
|
|
|
|
|
status: index % 2 === 0 ? 1 : 2, |
|
|
|
|
|
})) |
|
|
|
|
|
walletDetailTotal.value = 400 |
|
|
|
|
|
|
|
|
const params = { |
|
|
|
|
|
pageNum: walletDetailQuery.value.pageNum, |
|
|
|
|
|
pageSize: walletDetailQuery.value.pageSize, |
|
|
|
|
|
userWalletRecord: { |
|
|
|
|
|
jwcode: Number(currentWalletInfo.value.jwcode), |
|
|
|
|
|
walletId: currentWalletInfo.value.walletId |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const result = await API({ |
|
|
|
|
|
url: '/cashCollection/selectWalletRecords', |
|
|
|
|
|
method: 'post', |
|
|
|
|
|
data: params |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
if (result.code === 200) { |
|
|
|
|
|
walletDetailList.value = result.data.list.map(item => ({ |
|
|
|
|
|
time: item.createTime, |
|
|
|
|
|
type: item.type === 0 ? '充值' : '消耗', |
|
|
|
|
|
amount: item.type === 1 ? -Math.abs(item.amount) : Math.abs(item.amount), |
|
|
|
|
|
desc: item.description, |
|
|
|
|
|
orderNo: item.orderCode, |
|
|
|
|
|
status: item.status === 0 ? 1 : 2 |
|
|
|
|
|
})) |
|
|
|
|
|
walletDetailTotal.value = result.data.total |
|
|
|
|
|
} else { |
|
|
|
|
|
ElMessage.error(result.msg || '获取明细失败') |
|
|
|
|
|
} |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
console.error(error) |
|
|
console.error(error) |
|
|
} finally { |
|
|
} finally { |
|
|
@ -534,8 +538,8 @@ const format3 = (num) => { |
|
|
</el-card> |
|
|
</el-card> |
|
|
<el-card class="card2"> |
|
|
<el-card class="card2"> |
|
|
<!-- 设置表格容器的高度和滚动样式 --> |
|
|
<!-- 设置表格容器的高度和滚动样式 --> |
|
|
<div style="flex: 1; overflow-y: auto"> |
|
|
|
|
|
<el-table ref="tableRef" :data="tableData" @cellClick="cellClick" |
|
|
|
|
|
|
|
|
<div style="height: 69vh; overflow-y: auto"> |
|
|
|
|
|
<el-table ref="tableRef" :data="tableData" @cellClick="cellClick" style="width: 100%; height: 69vh" |
|
|
@sort-change="handleSortChange" :row-style="{ height: '50px' }"> |
|
|
@sort-change="handleSortChange" :row-style="{ height: '50px' }"> |
|
|
<el-table-column type="index" :label="$t('common_list.id')" width="100px" fixed="left"> |
|
|
<el-table-column type="index" :label="$t('common_list.id')" width="100px" fixed="left"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
|