Browse Source

流水账页面序号问题

zhangyong/feature-20260211100322-日常优化2.0
ZhangYong 3 weeks ago
parent
commit
9cd27400df
  1. 161
      src/views/moneyManage/financialAccount/cashFlow.vue
  2. 6
      src/views/moneyManage/financialAccount/performanceAttribution.vue

161
src/views/moneyManage/financialAccount/cashFlow.vue

@ -108,17 +108,17 @@ const fetchData = async () => {
pageSize: queryParams.pageSize, pageSize: queryParams.pageSize,
fundsDTO: { fundsDTO: {
jwcode: queryParams.jwcode, jwcode: queryParams.jwcode,
localMarket:queryParams.markets,
localMarket: queryParams.markets,
startTime: queryParams.timeRange?.[0] ? dayjs(queryParams.timeRange[0]).format('YYYY-MM-DD HH:mm:ss') : '', startTime: queryParams.timeRange?.[0] ? dayjs(queryParams.timeRange[0]).format('YYYY-MM-DD HH:mm:ss') : '',
endTime: queryParams.timeRange?.[1] ? dayjs(queryParams.timeRange[1]).format('YYYY-MM-DD HH:mm:ss') : '', endTime: queryParams.timeRange?.[1] ? dayjs(queryParams.timeRange[1]).format('YYYY-MM-DD HH:mm:ss') : '',
payType: normalizePayType(queryParams.payType || ''), payType: normalizePayType(queryParams.payType || ''),
orderCode: queryParams.orderCode, orderCode: queryParams.orderCode,
statuses: formatStatuses(queryParams.statuses), statuses: formatStatuses(queryParams.statuses),
markets:[],
markets: [],
} }
} }
console.log('查询参数:', params) console.log('查询参数:', params)
const res = await Moneyfunds(params) const res = await Moneyfunds(params)
@ -192,10 +192,10 @@ const refundFormData = ref({})
const resetRefund = () => { const resetRefund = () => {
refundFormData.value.refundModel = ''
refundFormData.value.refundReason = ''
refundFormData.value.permanentGold = null
refundFormData.value.freeGold = null
refundFormData.value.refundModel = ''
refundFormData.value.refundReason = ''
refundFormData.value.permanentGold = null
refundFormData.value.freeGold = null
} }
const handleRefund = async () => { const handleRefund = async () => {
@ -244,35 +244,35 @@ const exportListLoading = ref(false)
const handleExport = async () => { const handleExport = async () => {
const formatStatuses = (statuses) => { const formatStatuses = (statuses) => {
// 1/
if (!Array.isArray(statuses)) {
return [];
}
// 2 null undefined
if (statuses.some(item => item === null || item === undefined)) {
return [];
}
// 3
return statuses;
};
// 1/
if (!Array.isArray(statuses)) {
return [];
}
// 2 null undefined
if (statuses.some(item => item === null || item === undefined)) {
return [];
}
// 3
return statuses;
};
try { try {
const params = {
const params = {
pageNum: queryParams.pageNum, pageNum: queryParams.pageNum,
pageSize: queryParams.pageSize, pageSize: queryParams.pageSize,
fundsDTO: { fundsDTO: {
jwcode: queryParams.jwcode, jwcode: queryParams.jwcode,
localMarket:queryParams.markets,
localMarket: queryParams.markets,
startTime: queryParams.timeRange?.[0] ? dayjs(queryParams.timeRange[0]).format('YYYY-MM-DD HH:mm:ss') : '', startTime: queryParams.timeRange?.[0] ? dayjs(queryParams.timeRange[0]).format('YYYY-MM-DD HH:mm:ss') : '',
endTime: queryParams.timeRange?.[1] ? dayjs(queryParams.timeRange[1]).format('YYYY-MM-DD HH:mm:ss') : '', endTime: queryParams.timeRange?.[1] ? dayjs(queryParams.timeRange[1]).format('YYYY-MM-DD HH:mm:ss') : '',
payType: normalizePayType(queryParams.payType || ''), payType: normalizePayType(queryParams.payType || ''),
orderCode: queryParams.orderCode, orderCode: queryParams.orderCode,
statuses: formatStatuses(queryParams.statuses), statuses: formatStatuses(queryParams.statuses),
markets:[],
markets: [],
} }
} }
// TODO: URL // TODO: URL
const res = await exportFunds( params )
const res = await exportFunds(params)
if (res.code == 200) { if (res.code == 200) {
console.log('导出参数', params) console.log('导出参数', params)
@ -372,7 +372,7 @@ const findValueByLabel = (options, label) => {
onMounted(async () => { onMounted(async () => {
await getMarket() await getMarket()
// //
// URL?region=a&region=b keyrouter['a','b'], ID // URL?region=a&region=b keyrouter['a','b'], ID
const regionName = Array.isArray(route.query.region) ? route.query.region[0] : route.query.region const regionName = Array.isArray(route.query.region) ? route.query.region[0] : route.query.region
@ -383,7 +383,7 @@ onMounted(async () => {
queryParams.markets = [matchedId] queryParams.markets = [matchedId]
} }
} }
fetchData() fetchData()
}) })
</script> </script>
@ -402,16 +402,9 @@ onMounted(async () => {
<div class="search-item"> <div class="search-item">
<span class="label">{{ t('common.market') }}</span> <span class="label">{{ t('common.market') }}</span>
<!-- 下拉多选使用 el-cascader 匹配地区树结构 --> <!-- 下拉多选使用 el-cascader 匹配地区树结构 -->
<el-cascader
v-model="queryParams.markets"
:options="marketOptions"
:props="{ multiple: true, emitPath: false }"
collapse-tags
collapse-tags-tooltip
:placeholder="t('common.marketPlaceholder')"
clearable
style="width: 220px;"
/>
<el-cascader v-model="queryParams.markets" :options="marketOptions"
:props="{ multiple: true, emitPath: false }" collapse-tags collapse-tags-tooltip
:placeholder="t('common.marketPlaceholder')" clearable style="width: 220px;" />
</div> </div>
<div class="search-item"> <div class="search-item">
<span class="label">{{ t('common.payPlatform1') }}</span> <span class="label">{{ t('common.payPlatform1') }}</span>
@ -425,22 +418,16 @@ onMounted(async () => {
<el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</div> </div>
<div class="search-item">
<span class="label">{{ t('common.orderNo') }}</span>
<el-input v-model="queryParams.orderCode" :placeholder="t('common.orderNoPlaceholder')" clearable />
</div>
<div class="search-item">
<span class="label">{{ t('common.orderNo') }}</span>
<el-input v-model="queryParams.orderCode" :placeholder="t('common.orderNoPlaceholder')" clearable />
</div>
<div class="search-item" style="width: auto;">
<div class="search-item" style="width: auto;">
<span class="label">{{ t('common.payTime2') }}</span> <span class="label">{{ t('common.payTime2') }}</span>
<el-date-picker
v-model="queryParams.timeRange"
type="datetimerange"
:range-separator="t('common.to')"
:start-placeholder="t('common.startTime')"
:end-placeholder="t('common.endTime')"
:default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]"
style="width: 350px;"
/>
<el-date-picker v-model="queryParams.timeRange" type="datetimerange" :range-separator="t('common.to')"
:start-placeholder="t('common.startTime')" :end-placeholder="t('common.endTime')"
:default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]" style="width: 350px;" />
</div> </div>
<div class="search-btn-group"> <div class="search-btn-group">
<el-button type="primary" @click="handleSearch">{{ t('common.search') }}</el-button> <el-button type="primary" @click="handleSearch">{{ t('common.search') }}</el-button>
@ -455,26 +442,34 @@ onMounted(async () => {
<!-- 表格区域 --> <!-- 表格区域 -->
<el-card class="table-card"> <el-card class="table-card">
<el-table :data="tableData" v-loading="loading" style="width: 100%; flex: 1;" :cell-style="{ textAlign: 'center' }" :header-cell-style="{ background: '#F3FAFE', color: '#333',textAlign: 'center' }">
<el-table-column type="index" :label="t('common_list.id')" width="60" align="center" fixed="left" />
<el-table :data="tableData" v-loading="loading" style="width: 100%; flex: 1;"
:cell-style="{ textAlign: 'center' }"
:header-cell-style="{ background: '#F3FAFE', color: '#333', textAlign: 'center' }">
<el-table-column type="index" :label="t('common_list.id')" width="60" align="center" fixed="left">
<template #default="scope">
<span>{{ scope.$index + 1 + (queryParams.pageNum - 1) * queryParams.pageSize }}</span>
</template>
</el-table-column>
<el-table-column prop="jwcode" :label="t('common_list.jwcode')" width="120" fixed="left" /> <el-table-column prop="jwcode" :label="t('common_list.jwcode')" width="120" fixed="left" />
<el-table-column prop="name" :label="t('common_list.name')" width="150" show-overflow-tooltip /> <el-table-column prop="name" :label="t('common_list.name')" width="150" show-overflow-tooltip />
<el-table-column prop="marketName" :label="t('common_list.market')" width="120" show-overflow-tooltip /> <el-table-column prop="marketName" :label="t('common_list.market')" width="120" show-overflow-tooltip />
<el-table-column prop="orderCode" :label="t('common_list.orderCode')" width="280" show-overflow-tooltip /> <el-table-column prop="orderCode" :label="t('common_list.orderCode')" width="280" show-overflow-tooltip />
<el-table-column prop="paymentAmount" :label="t('common_list.payAmount')" width="150" align="right"> <el-table-column prop="paymentAmount" :label="t('common_list.payAmount')" width="150" align="right">
<!-- <template #default="{ row }"> <!-- <template #default="{ row }">
{{ row.paymentAmount }} {{ row.paymentCurrency }} {{ row.paymentAmount }} {{ row.paymentCurrency }}
</template> --> </template> -->
</el-table-column> </el-table-column>
<el-table-column prop="paymentCurrencyName" :label="t('common_list.payCurrency')" width="120" show-overflow-tooltip />
<el-table-column prop="paymentCurrencyName" :label="t('common_list.payCurrency')" width="120"
show-overflow-tooltip />
<el-table-column prop="receivedAmount" :label="t('common_list.receiveAmount')" width="150" align="right"> <el-table-column prop="receivedAmount" :label="t('common_list.receiveAmount')" width="150" align="right">
<!-- <template #default="{ row }"> <!-- <template #default="{ row }">
{{ row.receivedAmount }} {{ row.receivedCurrency }} {{ row.receivedAmount }} {{ row.receivedCurrency }}
</template> --> </template> -->
</el-table-column> </el-table-column>
<el-table-column prop="receivedCurrencyName" :label="t('common_list.receiveCurrency')" width="120" show-overflow-tooltip />
<el-table-column prop="receivedCurrencyName" :label="t('common_list.receiveCurrency')" width="120"
show-overflow-tooltip />
<el-table-column prop="handlingCharge" :label="t('common_list.fee')" width="100" align="right" /> <el-table-column prop="handlingCharge" :label="t('common_list.fee')" width="100" align="right" />
<el-table-column prop="payType" :label="t('common_list.payModel')" width="120" align="center" /> <el-table-column prop="payType" :label="t('common_list.payModel')" width="120" align="center" />
@ -483,36 +478,28 @@ onMounted(async () => {
<el-table-column prop="status" :label="t('common_list.status')" width="120" align="center" fixed="right"> <el-table-column prop="status" :label="t('common_list.status')" width="120" align="center" fixed="right">
<template #default="{ row }"> <template #default="{ row }">
<div style="display: flex; align-items: center;"> <div style="display: flex; align-items: center;">
<el-tag :type="row.status === 4 ? 'success' : 'warning'" effect="plain">
{{ row.status === 4 ? t('common_list.received') : t('common_list.refunded') }}
</el-tag>
<el-popover
trigger="hover"
placement="top"
popper-class="refund-popover"
width="auto"
v-if="row.status === 6"
>
<div class="popover-content">
<div class="popover-title">{{ t('common_list.refundDetail') }}</div>
<div class="popover-item">
<span class="label">{{ t('common_list.refundAmount') }}</span>
<span class="value">{{ row.refundAmount || '-' }}</span>
</div>
<div class="popover-item">
<span class="label">{{ t('common_list.refundCurrency') }}</span>
<span class="value">{{ row.refundCurrency || '-' }}</span>
<el-tag :type="row.status === 4 ? 'success' : 'warning'" effect="plain">
{{ row.status === 4 ? t('common_list.received') : t('common_list.refunded') }}
</el-tag>
<el-popover trigger="hover" placement="top" popper-class="refund-popover" width="auto"
v-if="row.status === 6">
<div class="popover-content">
<div class="popover-title">{{ t('common_list.refundDetail') }}</div>
<div class="popover-item">
<span class="label">{{ t('common_list.refundAmount') }}</span>
<span class="value">{{ row.refundAmount || '-' }}</span>
</div>
<div class="popover-item">
<span class="label">{{ t('common_list.refundCurrency') }}</span>
<span class="value">{{ row.refundCurrency || '-' }}</span>
</div>
</div> </div>
</div>
<template #reference>
<img
@click.stop
src="@/assets/SvgIcons/consume.svg"
style="width: 15px; height: 15px; margin-left: 5px; cursor: pointer; display: inline-block;"
>
</template>
</el-popover>
</div>
<template #reference>
<img @click.stop src="@/assets/SvgIcons/consume.svg"
style="width: 15px; height: 15px; margin-left: 5px; cursor: pointer; display: inline-block;">
</template>
</el-popover>
</div>
</template> </template>
</el-table-column> </el-table-column>
@ -700,6 +687,7 @@ onMounted(async () => {
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
width: 100px; width: 100px;
min-width: none; min-width: none;
.el-popper__arrow::before { .el-popper__arrow::before {
background-color: #EEF5FE !important; background-color: #EEF5FE !important;
border-color: #EEF5FE !important; border-color: #EEF5FE !important;
@ -707,32 +695,35 @@ onMounted(async () => {
} }
</style> </style>
<style scoped lang="scss"> <style scoped lang="scss">
.popover-content {
.popover-content {
.popover-title { .popover-title {
color: #409EFF; color: #409EFF;
font-weight: bold; font-weight: bold;
font-size: 14px; font-size: 14px;
margin-bottom: 8px; margin-bottom: 8px;
} }
.popover-item { .popover-item {
display: flex; display: flex;
font-size: 13px; font-size: 13px;
color: #606266; color: #606266;
margin-bottom: 4px; margin-bottom: 4px;
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
.label { .label {
color: #606266; color: #606266;
} }
.value { .value {
color: #606266; color: #606266;
margin-left: 4px; margin-left: 4px;
} }
} }
} }
.cash-flow-container { .cash-flow-container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

6
src/views/moneyManage/financialAccount/performanceAttribution.vue

@ -313,7 +313,11 @@ onMounted( async() => {
<!-- 表格区域 --> <!-- 表格区域 -->
<el-card class="table-card"> <el-card class="table-card">
<el-table :data="tableData" v-loading="loading" style="width: 100%; flex: 1;" :cell-style="{ textAlign: 'center' }" :header-cell-style="{ background: '#F3FAFE', color: '#333',textAlign: 'center' }"> <el-table :data="tableData" v-loading="loading" style="width: 100%; flex: 1;" :cell-style="{ textAlign: 'center' }" :header-cell-style="{ background: '#F3FAFE', color: '#333',textAlign: 'center' }">
<el-table-column type="index" :label="t('common_list.id')" min-width="60" align="center" fixed="left" />
<el-table-column type="index" :label="t('common_list.id')" min-width="60" align="center" fixed="left" >
<template #default="scope">
<span>{{ scope.$index + 1 + (queryParams.pageNum - 1) * queryParams.pageSize }}</span>
</template>
</el-table-column>
<el-table-column prop="jwcode" :label="t('common_list.jwcode')" min-width="120" fixed="left" /> <el-table-column prop="jwcode" :label="t('common_list.jwcode')" min-width="120" fixed="left" />
<el-table-column prop="name" :label="t('common_list.name')" min-width="150" show-overflow-tooltip /> <el-table-column prop="name" :label="t('common_list.name')" min-width="150" show-overflow-tooltip />
<el-table-column prop="marketName" :label="t('common_list.market')" min-width="120" show-overflow-tooltip /> <el-table-column prop="marketName" :label="t('common_list.market')" min-width="120" show-overflow-tooltip />

Loading…
Cancel
Save