7 Commits

  1. 1
      src/components/locales/lang/en.js
  2. 4
      src/components/locales/lang/zh-CN.js
  3. 19
      src/views/moneyManage/financialAccount/cashFlow.vue
  4. 26
      src/views/moneyManage/financialAccount/performanceAttribution.vue

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

@ -204,6 +204,7 @@ export default {
refreshFailed: 'Refresh failed: {msg}', refreshFailed: 'Refresh failed: {msg}',
unknownError: 'Unknown error', unknownError: 'Unknown error',
refreshError: 'Refresh error, try again', refreshError: 'Refresh error, try again',
refundagain:'Refund submitted. Please do not submit again',
logoutSuccess: 'Logged out', logoutSuccess: 'Logged out',
staffHidden: 'Staff data hidden', staffHidden: 'Staff data hidden',
staffShown: 'Staff data shown', staffShown: 'Staff data shown',

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

@ -4,6 +4,8 @@ export default {
// 通用组 (筛选,按钮,币种计量) // 通用组 (筛选,按钮,币种计量)
common: { common: {
// 筛选 // 筛选
market:'所属地区',
marketPlaceholder:'请选择所属地区',
name: "姓名", name: "姓名",
none: "无", none: "无",
selectedValue: "当前选中", selectedValue: "当前选中",
@ -211,6 +213,7 @@ export default {
jumpSuccess: "跳转成功", jumpSuccess: "跳转成功",
jumpFailed: "跳转失败", jumpFailed: "跳转失败",
refundFailed: "退款失败", refundFailed: "退款失败",
refundagain:"已提交退款,请勿重复提交",
oldPasswordError: "原密码错误,请重新输入", oldPasswordError: "原密码错误,请重新输入",
addSuccess: "添加成功", // 大写是添加成功,小写是新增 addSuccess: "添加成功", // 大写是添加成功,小写是新增
addsuccess: "新增成功", addsuccess: "新增成功",
@ -1353,6 +1356,7 @@ export default {
bankHandlingFeePlaceholder:"请输入银行手续费", bankHandlingFeePlaceholder:"请输入银行手续费",
remarks:"备注", remarks:"备注",
remarksPlaceholder:"请输入备注 (选填,限制100字)", remarksPlaceholder:"请输入备注 (选填,限制100字)",
remarkPlaceholderDate:"需填写手续费结算周期(如“2026年3月12日iPay88手续费”)",
cancel: "取消", cancel: "取消",
submit: "提交", submit: "提交",
ipay88: "iPay88", ipay88: "iPay88",

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

@ -273,7 +273,6 @@ const openRefundConfirm = () => {
permanentGold: null, permanentGold: null,
freeGold: null, freeGold: null,
} }
} }
const openRefundDialog = () => { const openRefundDialog = () => {
refundDialog.value = true refundDialog.value = true
@ -297,6 +296,10 @@ const resetRefund = () => {
} }
const handleRefund = async () => { const handleRefund = async () => {
try { try {
if(refundFormData.value.status == 6){
ElMessage.error(t('elmessage.refundagain'))
return
}
if (refundFormData.value.refundModel == 1) { if (refundFormData.value.refundModel == 1) {
if (Number(refundFormData.value.permanentGold || 0) > Number(refundFormData.value.oldpermanentGold || 0)) { if (Number(refundFormData.value.permanentGold || 0) > Number(refundFormData.value.oldpermanentGold || 0)) {
ElMessage.error(t('elmessage.limitRefundGoldNotExceedOriginal')) ElMessage.error(t('elmessage.limitRefundGoldNotExceedOriginal'))
@ -593,9 +596,9 @@ const handleOther=async ()=>{
goodNum:String(addOtherForm.value.goodNum), goodNum:String(addOtherForm.value.goodNum),
payType:addOtherForm.value.payType, payType:addOtherForm.value.payType,
paymentCurrency:String(CurrencyForId(addOtherForm.value.paymentCurrency)), paymentCurrency:String(CurrencyForId(addOtherForm.value.paymentCurrency)),
paymentAmount:addOtherForm.value.paymentAmount,
paymentAmount:addOtherForm.value.paymentAmount*100,
payTime:addOtherForm.value.payTime, payTime:addOtherForm.value.payTime,
handlingCharge:addOtherForm.value.handlingCharge,
handlingCharge:addOtherForm.value.handlingCharge*100,
remark:addOtherForm.value.remark, remark:addOtherForm.value.remark,
isPerformance:addOtherForm.value.isPerformance, isPerformance:addOtherForm.value.isPerformance,
submitterId: addOtherForm.value.submitterId, submitterId: addOtherForm.value.submitterId,
@ -634,7 +637,7 @@ const ipay88Rules = {
handlingCharge: [ handlingCharge: [
{ required: true, message: t("common_add.feePlaceholder"),trigger: 'change'}, { required: true, message: t("common_add.feePlaceholder"),trigger: 'change'},
{ pattern: /^[0-9]+(\.[0-9]{1,2})?$/, message: t('cash.cashFlow.invalidFormat'),trigger: 'change' } ], { pattern: /^[0-9]+(\.[0-9]{1,2})?$/, message: t('cash.cashFlow.invalidFormat'),trigger: 'change' } ],
remark: [{ max: 100, message: t('cash.cashFlow.remarksexceed'), trigger: 'change' }]
remark: [ {required: true, max: 100, message: t('cash.cashFlow.remarksexceed'), trigger: 'change' }]
}; };
const handleIpay88 =async () =>{ const handleIpay88 =async () =>{
if (!ipay88FormRef.value) return; if (!ipay88FormRef.value) return;
@ -644,7 +647,7 @@ const handleIpay88 =async () =>{
performanceMarket:String(MarketNameForId(addIpay88Form.value.performanceMarket)), performanceMarket:String(MarketNameForId(addIpay88Form.value.performanceMarket)),
payType:addIpay88Form.value.payType, payType:addIpay88Form.value.payType,
paymentCurrency:String(CurrencyForId(addIpay88Form.value.paymentCurrency)), paymentCurrency:String(CurrencyForId(addIpay88Form.value.paymentCurrency)),
handlingCharge:addIpay88Form.value.handlingCharge,
handlingCharge:addIpay88Form.value.handlingCharge*100,
remark:addIpay88Form.value.remark, remark:addIpay88Form.value.remark,
submitterId: addIpay88Form.value.submitterId, submitterId: addIpay88Form.value.submitterId,
submitterMarket: addIpay88Form.value.submitterMarket, submitterMarket: addIpay88Form.value.submitterMarket,
@ -788,7 +791,7 @@ onMounted(async () => {
<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">
</el-table-column> </el-table-column>
<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" >
<template #default="{ row }">{{ row.paymentAmount || 0 }}</template>
<template #default="{ row }">{{ row.handlingCharge || 0 }}</template>
</el-table-column> </el-table-column>
<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">
</el-table-column> </el-table-column>
@ -907,7 +910,7 @@ onMounted(async () => {
</el-form> </el-form>
<div style="display:flex;justify-content: center;margin-top: 5vh;" class="btnDiv"> <div style="display:flex;justify-content: center;margin-top: 5vh;" class="btnDiv">
<el-button type="default" style="background-color: #7E91FF;" @click="showDetail = false">{{t('common.cancel')}}</el-button> <el-button type="default" style="background-color: #7E91FF;" @click="showDetail = false">{{t('common.cancel')}}</el-button>
<el-button type="primary" style="background-color: #2741DE; margin-left: 2.5vw;" @click="openRefundConfirm">{{ t('common.refund') }}</el-button>
<el-button v-show="formDataRow.orderCode.slice(0, 4) == 'GOLD' && formDataRow.status === 4 " type="primary" style="background-color: #2741DE; margin-left: 2.5vw;" @click="openRefundConfirm">{{ t('common.refund') }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -1014,7 +1017,6 @@ onMounted(async () => {
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
<!-- 导出列表弹窗 --> <!-- 导出列表弹窗 -->
<el-dialog v-model="exportListVisible" :title="t('common_export.exportList')" width="80%"> <el-dialog v-model="exportListVisible" :title="t('common_export.exportList')" width="80%">
<el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading"> <el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading">
@ -1333,6 +1335,7 @@ onMounted(async () => {
} }
.newAdd { .newAdd {
margin-left: auto;
display: flex; display: flex;
width: 240px; width: 240px;
justify-content: flex-end; justify-content: flex-end;

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

@ -103,6 +103,28 @@ const getMarket = async () => {
const fetchData = async () => { const fetchData = async () => {
loading.value = true loading.value = true
try { try {
// adminData ID
const adminMarketNames = adminData.value.marketName?.split(',').map(item => item.trim()).filter(Boolean) || [];
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);
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 = {
@ -110,7 +132,7 @@ const fetchData = async () => {
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') : '',
@ -386,7 +408,7 @@ const submitAdjustment = async () => {
onMounted(async () => { onMounted(async () => {
await initPermissions() await initPermissions()
await handleAdminInfo() await handleAdminInfo()
getMarket()
await getMarket()
await fetchData() await fetchData()
}) })
</script> </script>

Loading…
Cancel
Save