2 Commits

Author SHA1 Message Date
ZhangYong c4f2fab06e iPay88 统一 4 days ago
ZhangYong 465f15a6ec 业绩归属导出 4 days ago
  1. 4
      src/components/locales/lang/en.js
  2. 4
      src/components/locales/lang/zh-CN.js
  3. 47
      src/views/moneyManage/financialAccount/performanceAttribution.vue

4
src/components/locales/lang/en.js

@ -1333,10 +1333,10 @@ export default {
bankHandlingFeePlaceholder: "Please enter bank handling fee", bankHandlingFeePlaceholder: "Please enter bank handling fee",
remarks: "Remarks", remarks: "Remarks",
remarksPlaceholder: "Please enter remarks (optional, limit 100 characters)", remarksPlaceholder: "Please enter remarks (optional, limit 100 characters)",
remarkPlaceholderDate:"Need to fill in the handling fee settlement period (e.g. 'March 12, 2026 iPay88 handling fee')",
remarkPlaceholderDate:"Need to fill in the handling fee settlement period (e.g. 'March 12, 2026 Ipay88 handling fee')",
cancel: "Cancel", cancel: "Cancel",
submit: "Submit", submit: "Submit",
ipay88:"iPay88",
ipay88:"Ipay88",
cardPayment:"Card Payment", cardPayment:"Card Payment",
fixedProcessingFee:"Fixed Processing Fee", fixedProcessingFee:"Fixed Processing Fee",
settlementRegion:"Settlement Region", settlementRegion:"Settlement Region",

4
src/components/locales/lang/zh-CN.js

@ -1356,10 +1356,10 @@ export default {
bankHandlingFeePlaceholder:"请输入银行手续费", bankHandlingFeePlaceholder:"请输入银行手续费",
remarks:"备注", remarks:"备注",
remarksPlaceholder:"请输入备注 (选填,限制100字)", remarksPlaceholder:"请输入备注 (选填,限制100字)",
remarkPlaceholderDate:"需填写手续费结算周期(如“2026年3月12日iPay88手续费”)",
remarkPlaceholderDate:"需填写手续费结算周期(如“2026年3月12日Ipay88手续费”)",
cancel: "取消", cancel: "取消",
submit: "提交", submit: "提交",
ipay88: "iPay88",
ipay88: "Ipay88",
cardPayment: "刷卡", cardPayment: "刷卡",
fixedProcessingFee: "固定手续费", fixedProcessingFee: "固定手续费",
settlementRegion: "到账地区", settlementRegion: "到账地区",

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

@ -99,6 +99,19 @@ const getMarket = async () => {
} }
} }
// ID
const findIdsByNames = (nodes, names, resultIds) => {
if (!nodes || nodes.length === 0) return;
nodes.forEach(node => {
if (names.includes(node.label)) {
resultIds.push(node.value);
}
if (node.children) {
findIdsByNames(node.children, names, resultIds);
}
});
};
// //
const fetchData = async () => { const fetchData = async () => {
loading.value = true loading.value = true
@ -106,25 +119,7 @@ const fetchData = async () => {
// adminData ID // adminData ID
const adminMarketNames = adminData.value.marketName?.split(',').map(item => item.trim()).filter(Boolean) || []; const adminMarketNames = adminData.value.marketName?.split(',').map(item => item.trim()).filter(Boolean) || [];
const adminMarketIds = []; const adminMarketIds = [];
// ID
const findIdsByNames = (nodes, names, resultIds) => {
if (!nodes || nodes.length === 0) return;
nodes.forEach(node => {
if (names.includes(node.label)) {
resultIds.push(node.value);
}
if (node.children) {
findIdsByNames(node.children, names, resultIds);
}
});
};
findIdsByNames(marketOptions.value, adminMarketNames, adminMarketIds); findIdsByNames(marketOptions.value, adminMarketNames, adminMarketIds);
console.log('adminMarketNames:', adminMarketNames)
console.log('adminMarketIds:', adminMarketIds)
console.log('adminMarketIds:', queryParams.adminMarketIds)
// //
console.log('adminData.value.markets:', adminData.value.markets) console.log('adminData.value.markets:', adminData.value.markets)
const params = { const params = {
@ -216,12 +211,15 @@ const exportListLoading = ref(false)
// Excel // Excel
const handleExport = async () => { const handleExport = async () => {
try { try {
const adminMarketNames = adminData.value.marketName?.split(',').map(item => item.trim()).filter(Boolean) || [];
const adminMarketIds = [];
findIdsByNames(marketOptions.value, adminMarketNames, adminMarketIds);
const params = { const params = {
pageNum: queryParams.pageNum, pageNum: queryParams.pageNum,
pageSize: queryParams.pageSize, pageSize: queryParams.pageSize,
performanceDTO: { performanceDTO: {
jwcode: queryParams.jwcode, jwcode: queryParams.jwcode,
adminMarket: adminData.value.marketName.split(',').filter(item => item.trim() !== '') || [],
adminMarket: adminMarketIds,
customerMarket: queryParams.customerMarket, customerMarket: queryParams.customerMarket,
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') : '',
@ -337,7 +335,7 @@ const handleAdjustment = () => {
const computedAdjustData = computed(() => { const computedAdjustData = computed(() => {
const data = [...adjustData.value] const data = [...adjustData.value]
const sumRow = { inMarket: t('cash.cashFlow.total'), isSum: true } const sumRow = { inMarket: t('cash.cashFlow.total'), isSum: true }
matrixMarkets.value.forEach(colMarket => { matrixMarkets.value.forEach(colMarket => {
let colSum = 0 let colSum = 0
adjustData.value.forEach(row => { adjustData.value.forEach(row => {
@ -346,7 +344,7 @@ const computedAdjustData = computed(() => {
}) })
sumRow[colMarket.key] = colSum sumRow[colMarket.key] = colSum
}) })
data.push(sumRow) data.push(sumRow)
return data return data
}) })
@ -554,8 +552,8 @@ onMounted(async () => {
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-for="col in matrixMarkets" :key="col.key" :label="col.label + ' ' + t('cash.cashFlow.marketTeam')"
min-width="120" align="center">
<el-table-column v-for="col in matrixMarkets" :key="col.key"
:label="col.label + ' ' + t('cash.cashFlow.marketTeam')" min-width="120" align="center">
<template #default="{ row }"> <template #default="{ row }">
<span v-if="row.isSum">{{ row[col.key] }}</span> <span v-if="row.isSum">{{ row[col.key] }}</span>
<el-input v-else v-model="row[col.key]" @input="row[col.key] = formatNumber($event)" placeholder="" <el-input v-else v-model="row[col.key]" @input="row[col.key] = formatNumber($event)" placeholder=""
@ -572,7 +570,8 @@ onMounted(async () => {
<template #footer> <template #footer>
<div class="dialog-footer" style="text-align: center;"> <div class="dialog-footer" style="text-align: center;">
<el-button type="primary" plain @click="adjustVisible = false" style="width: 100px;">{{ t('common.cancel') }}</el-button>
<el-button type="primary" plain @click="adjustVisible = false" style="width: 100px;">{{ t('common.cancel')
}}</el-button>
<el-button type="primary" @click="submitAdjustment" style="width: 100px;">{{ t('common.submit') }}</el-button> <el-button type="primary" @click="submitAdjustment" style="width: 100px;">{{ t('common.submit') }}</el-button>
</div> </div>
</template> </template>

Loading…
Cancel
Save