diff --git a/src/components/locales/lang/en.js b/src/components/locales/lang/en.js
index 543d703..4dadb96 100644
--- a/src/components/locales/lang/en.js
+++ b/src/components/locales/lang/en.js
@@ -10,6 +10,7 @@ export default {
pleaseInputName: "Enter name",
customerName: "Customer",
customerNamePlaceholder: "Enter customer name",
+ customer: "Customer",
jwcode: "Homily ID",
jwcodePlaceholder: "Enter Homily ID",
activityName: "Activity",
@@ -1344,6 +1345,22 @@ export default {
invalidFormat:"Invalid amount format. Maximum 2 decimal places allowed.",
paymentMust:"Payment amount must be 0",
remarksexceed:"Remarks cannot exceed 100 characters",
+ marketConsumption:"Market Consumption Gold Performance Adjustment",
+ time:"Select Time",
+ coefficient:"Coefficient Adjustment",
+ coefficientPlaceholder:"Please enter coefficient adjustment",
+ adjustment:"Transfer In",
+ adjustmentOut:"Transfer Out",
+ marketTeam:"Market Team",
+ total:"Total",
+ performanceAdjustment:"Performance Adjustment",
+ payTime:"Payment Time",
+ orderCode:"System Transaction No.",
+ receivedMarketName:"Received Market",
+ performanceMarket:"Performance Market",
+ goodsName:"Income Category",
+ goodNum:"Quantity",
+ payType:"Payment Method",
}
},
diff --git a/src/components/locales/lang/zh-CN.js b/src/components/locales/lang/zh-CN.js
index 9d5c4cf..741328b 100644
--- a/src/components/locales/lang/zh-CN.js
+++ b/src/components/locales/lang/zh-CN.js
@@ -10,6 +10,7 @@ export default {
pleaseInputName: "请输入姓名",
customerName: "客户姓名",
customerNamePlaceholder: "请输入客户姓名",
+ customer: "客户",
jwcode: "精网号",
jwcodePlaceholder: "请输入精网号",
activityName: "活动名称",
@@ -107,7 +108,7 @@ export default {
add: "添加",
addUser: "新增用户",
addRole: "新增角色",
- addCashFlow:"新增流水",
+ addCashFlow: "新增流水",
save: "保存",
saving: "保存中...",
addActivity: "新增活动",
@@ -173,7 +174,7 @@ export default {
all: "全部",
unknownSubmitter: "未知提交人",
noAuditorRecorded: "未记录审核人",
- noExecutorRecorded: "未记录执行人"
+ noExecutorRecorded: "未记录执行人",
},
// 权限模块
@@ -183,10 +184,11 @@ export default {
changeRoleConfirmContent1: "确认修改权限角色?
您正在将【",
changeRoleConfirmContent2: "】的权限角色从【",
changeRoleConfirmContent3: "】修改为【",
- changeRoleConfirmContent4: "】
变更后,该用户的可操作权限将同步更新为新角色配置,涉及数据访问、功能操作等权限变化,请谨慎确认。",
+ changeRoleConfirmContent4:
+ "】
变更后,该用户的可操作权限将同步更新为新角色配置,涉及数据访问、功能操作等权限变化,请谨慎确认。",
changeRoleSuccessContent1: "用户",
changeRoleSuccessContent2: "的权限角色已更改为【",
- roleRegionNote: "此地区无实际意义,仅用于各分部负责人查看其地区角色"
+ roleRegionNote: "此地区无实际意义,仅用于各分部负责人查看其地区角色",
},
// 提示信息组
elmessage: {
@@ -407,7 +409,7 @@ export default {
activityLoadFailed: "活动列表加载失败,请稍后重试",
activityDataLoadFailed: "活动数据加载异常,请稍后重试",
getDataFailed: "获取数据失败",
- networkError:"网络错误",
+ networkError: "网络错误",
exportWalletDetailError: "导出钱包明细出错",
selectCompanyWallet: "请选择公司钱包",
// 权限
@@ -473,9 +475,9 @@ export default {
activity: "活动名称",
receiveArea: "到账地区",
performanceMarket: "业绩归属地区",
- receiveType:"收入类别",
- paymentMethod:"付款方式",
- nums:"个数",
+ receiveType: "收入类别",
+ paymentMethod: "付款方式",
+ nums: "个数",
startTime: "开始时间",
endTime: "结束时间",
status: "状态",
@@ -549,7 +551,7 @@ export default {
activityStatus: {
notStarted: "未开始",
inProgress: "进行中",
- ended: "已结束"
+ ended: "已结束",
},
operation: "操作",
configTime: "配置时间",
@@ -697,7 +699,7 @@ export default {
similarCosumeRecords: "检测到该用户近期有相似消耗记录",
rechargePermanentGold: "充值永久金币",
buy: "购买",
- orderStatus:'订单状态',
+ orderStatus: "订单状态",
operator: "操作人",
submitter: "提交人",
continueOperation: "是否继续操作?",
@@ -1068,8 +1070,8 @@ export default {
placeholder: "请选择语言",
options: {
zhCN: "中文(简体)",
- en: "English"
- }
+ en: "English",
+ },
},
showStaffData: "显示员工数据",
hideStaffData: "隐藏员工数据",
@@ -1104,7 +1106,7 @@ export default {
againPasswordPlaceholder: "请再次输入新密码",
tips: {
lengthAndChars: "密码由8-16位数字、字母或符号组成",
- complexity: "至少含2种以上字符"
+ complexity: "至少含2种以上字符",
},
rules: {
allowedChars: "密码只能包含数字、字母或符号",
@@ -1113,15 +1115,15 @@ export default {
complexity: "密码至少包含两种类型(数字、字母或符号)",
notMatch: "两次输入密码不一致",
newPasswordRequired: "新密码不能为空",
- againPasswordRequired: "请再次输入新密码"
+ againPasswordRequired: "请再次输入新密码",
},
- submitting: "修改中..."
+ submitting: "修改中...",
},
difftime: {
minuteAgo: "分钟前",
hourAgo: "小时前",
yesterday: "昨天",
- }
+ },
},
// 现金管理
@@ -1161,9 +1163,9 @@ export default {
paymentAsia: "PaymentAsia",
transfer: "E-Transfer",
iotPay: "IOT Pay",
- stripe3:'Stripe3',
- paysolution:'paysolution',
- stripe2:'Stripe2',
+ stripe3: "Stripe3",
+ paysolution: "paysolution",
+ stripe2: "Stripe2",
},
statusList: {
submitted: "已提交",
@@ -1312,7 +1314,7 @@ export default {
refundConfirmTitle: "退款确认",
refundConfirmContent: "确定要对订单 {orderNo} 进行退款吗?",
//钱包
- wallet:{
+ wallet: {
HongKongWallet: "香港钱包",
MalaysiaWallet: "马来西亚钱包",
CanadaWallet: "加拿大钱包",
@@ -1321,50 +1323,66 @@ export default {
ThailandHAWallet: "泰国HA钱包",
ThailandHSWallet: "泰国HS钱包",
VietnamHCMWallet: "越南钱包",
- BeijingWallet: "北京公司钱包"
+ BeijingWallet: "北京公司钱包",
+ },
+ cashFlow: {
+ otherIncome: "其他收入",
+ addFee: "手续费补充",
+ performanceMarket: "业绩归属地区",
+ performanceMarketPlaceholder: "请选择业绩归属地区",
+ incomeCategory: "收入类别",
+ incomeCategoryPlaceholder: "请选择收入类别",
+ investmentIncome: "理财收入",
+ taxRefund: "退税",
+ governmentSubsidy: "政府补贴",
+ localIntercompany: "本地往来",
+ corporateIntercompany: "公司往来",
+ otherIncomeNon: "其他收入-非业绩",
+ otherIncomeYes: "其他收入-算业绩",
+ quantity: "个数",
+ quantityPlaceholder: "请输入个数",
+ payType: "支付方式",
+ payTypePlaceholder: "请选择支付方式",
+ paymentCurrency: "付款币种",
+ paymentCurrencyPlaceholder: "请选择付款币种",
+ paymentAmount: "付款金额",
+ paymentAmountPlaceholder: "请输入付款金额",
+ paymentTime: "付款时间",
+ paymentTimePlaceholder: "选择付款时间",
+ bankHandlingFee: "银行手续费",
+ bankHandlingFeePlaceholder: "请输入银行手续费",
+ remarks: "备注",
+ remarksPlaceholder: "请输入备注 (选填,限制100字)",
+ cancel: "取消",
+ submit: "提交",
+ ipay88: "iPay88",
+ cardPayment: "刷卡",
+ fixedProcessingFee: "固定手续费",
+ settlementRegion: "到账地区",
+ Malaysia: "马来西亚",
+ processingFee: "手续费",
+ processingFeePlaceholder: "请输入手续费",
+ quantityMustBeNumber: "个数必须为数字",
+ invalidFormat: "金额格式不正确,最多两位小数",
+ paymentMust: "付款金额必须为0",
+ remarksexceed: "备注不能超过100字",
+ marketConsumption: "市场消耗金币业绩调整",
+ time: "选择时间",
+ coefficient: "系数调整",
+ coefficientPlaceholder: "请输入系数调整",
+ adjustment: "调入",
+ adjustmentOut: "调出",
+ marketTeam: "市场团队",
+ total: "合计",
+ performanceAdjustment: "业绩调整",
+ payTime: "付款时间",
+ orderCode: "系统交易号",
+ receivedMarketName: "到账地区",
+ performanceMarket: "业绩归属地区",
+ goodsName: "收入类别",
+ goodNum: "个数",
+ payType: "付款方式",
},
- cashFlow:{
- otherIncome:"其他收入",
- addFee:"手续费补充",
- performanceMarket:"业绩归属地区",
- performanceMarketPlaceholder:"请选择业绩归属地区",
- incomeCategory:"收入类别",
- incomeCategoryPlaceholder:"请选择收入类别",
- investmentIncome:"理财收入",
- taxRefund:"退税",
- governmentSubsidy:"政府补贴",
- localIntercompany:"本地往来",
- corporateIntercompany:"公司往来",
- otherIncomeNon:"其他收入-非业绩",
- otherIncomeYes:"其他收入-算业绩",
- quantity:"个数",
- quantityPlaceholder:"请输入个数",
- payType:"支付方式",
- payTypePlaceholder:"请选择支付方式",
- paymentCurrency:"付款币种",
- paymentCurrencyPlaceholder:"请选择付款币种",
- paymentAmount:"付款金额",
- paymentAmountPlaceholder:"请输入付款金额",
- paymentTime:"付款时间",
- paymentTimePlaceholder:"选择付款时间",
- bankHandlingFee:"银行手续费",
- bankHandlingFeePlaceholder:"请输入银行手续费",
- remarks:"备注",
- remarksPlaceholder:"请输入备注 (选填,限制100字)",
- cancel:"取消",
- submit:"提交",
- ipay88:"iPay88",
- cardPayment:"刷卡",
- fixedProcessingFee:"固定手续费",
- settlementRegion:"到账地区",
- Malaysia:"马来西亚",
- processingFee:"手续费",
- processingFeePlaceholder:"请输入手续费",
- quantityMustBeNumber:"个数必须为数字",
- invalidFormat:"金额格式不正确,最多两位小数",
- paymentMust:"付款金额必须为0",
- remarksexceed:"备注不能超过100字",
- }
},
// 消息
diff --git a/src/views/moneyManage/financialAccount/performanceAttribution.vue b/src/views/moneyManage/financialAccount/performanceAttribution.vue
index 0dd12f1..f3aff8e 100644
--- a/src/views/moneyManage/financialAccount/performanceAttribution.vue
+++ b/src/views/moneyManage/financialAccount/performanceAttribution.vue
@@ -4,33 +4,33 @@ import { ElMessage, ElMessageBox } from 'element-plus'
import request from '@/util/http.js'
import dayjs from 'dayjs'
import { useI18n } from 'vue-i18n'
-import { refundOnline,performanceSelect,exportPerformance,adjustment } from '@/api/cash/financialAccount.js'
+import { refundOnline, performanceSelect, exportPerformance, adjustment } from '@/api/cash/financialAccount.js'
import { getUserInfo } from '@/api/common/common.js'
import { useAdminStore } from '@/store/index.js'
import { permissionMapping, hasMenuPermission } from "@/utils/menuTreePermission.js"
import { storeToRefs } from 'pinia'
const adminStore = useAdminStore()
-const { menuTree,flag } = storeToRefs(adminStore)
+const { menuTree, flag } = storeToRefs(adminStore)
const adminData = ref({})
const { t } = useI18n()
const paytypeList = [
- t('cash.payMethods.stripe'),
- t('cash.payMethods.paymentAsia'),
- t('cash.payMethods.ipay88'),
- t('cash.payMethods.bankTransfer'),
- t('cash.payMethods.card'),
- t('cash.payMethods.cash'),
- t('cash.payMethods.check'),
- t('cash.payMethods.grabpay'),
- t('cash.payMethods.nets'),
- t('cash.payMethods.transfer'),
- t('cash.payMethods.iotPay'),
- t('cash.payMethods.stripe3'),
- t('cash.payMethods.paypal'),
+ t('cash.payMethods.stripe'),
+ t('cash.payMethods.paymentAsia'),
+ t('cash.payMethods.ipay88'),
+ t('cash.payMethods.bankTransfer'),
+ t('cash.payMethods.card'),
+ t('cash.payMethods.cash'),
+ t('cash.payMethods.check'),
+ t('cash.payMethods.grabpay'),
+ t('cash.payMethods.nets'),
+ t('cash.payMethods.transfer'),
+ t('cash.payMethods.iotPay'),
+ t('cash.payMethods.stripe3'),
+ t('cash.payMethods.paypal'),
]
const hasperformanceAdjustment = ref(false)
@@ -39,8 +39,8 @@ const initPermissions = async () => {
if (!menuTree.value || !menuTree.value.length) return;
// 业绩调整
hasperformanceAdjustment.value = hasMenuPermission(menuTree.value, permissionMapping.performance_adjustment);
- console.log('业绩调整权限',hasperformanceAdjustment.value);
-
+ console.log('业绩调整权限', hasperformanceAdjustment.value);
+
};
const payPlatformOptions = ref([...paytypeList])
@@ -108,7 +108,7 @@ const fetchData = async () => {
const params = {
pageNum: queryParams.pageNum,
pageSize: queryParams.pageSize,
- performanceDTO:{
+ performanceDTO: {
jwcode: queryParams.jwcode,
adminMarket: adminData.value.marketName.split(',').filter(item => item.trim() !== '') || [],
customerMarket: queryParams.customerMarket,
@@ -116,7 +116,7 @@ const fetchData = async () => {
endTime: queryParams.timeRange?.[1] ? dayjs(queryParams.timeRange[1]).format('YYYY-MM-DD HH:mm:ss') : '',
}
}
-
+
console.log('查询参数:', params)
const res = await performanceSelect(params)
if (res.code == 200) {
@@ -128,7 +128,7 @@ const fetchData = async () => {
} else {
ElMessage.error(res.msg || t('elmessage.getDataFailed'))
loading.value = false
- }
+ }
} catch (error) {
console.error(error)
loading.value = false
@@ -139,9 +139,9 @@ const fetchData = async () => {
const handleAdminInfo = async () => {
try {
const res = await getUserInfo()
- adminData.value = res || {}
- console.log('adminData.value:', adminData.value);
-
+ adminData.value = res || {}
+ console.log('adminData.value:', adminData.value);
+
} catch (error) {
console.error(error)
ElMessage.error(t('elmessage.getDataFailed'))
@@ -182,7 +182,7 @@ const handleRefund = (row) => {
ElMessage.success(t('elmessage.refundSubmitSuccess'))
// 刷新列表
fetchData()
- }).catch(() => {})
+ }).catch(() => { })
}
// ==================== 导出相关逻辑 ====================
@@ -192,12 +192,12 @@ const exportList = ref([])
const exportListLoading = ref(false)
// 导出Excel
-const handleExport = async () => {
+const handleExport = async () => {
try {
- const params = {
+ const params = {
pageNum: queryParams.pageNum,
pageSize: queryParams.pageSize,
- performanceDTO:{
+ performanceDTO: {
jwcode: queryParams.jwcode,
adminMarket: adminData.value.marketName.split(',').filter(item => item.trim() !== '') || [],
customerMarket: queryParams.customerMarket,
@@ -205,15 +205,15 @@ const handleExport = async () => {
endTime: queryParams.timeRange?.[1] ? dayjs(queryParams.timeRange[1]).format('YYYY-MM-DD HH:mm:ss') : '',
}
}
-
+
// TODO: 确认导出接口 URL
const res = await exportPerformance(params)
- if(res.code == 200){
+ if (res.code == 200) {
+
+ console.log('导出参数', params)
+ ElMessage.success(t('elmessage.exportSuccess'))
+ }
- console.log('导出参数', params)
- ElMessage.success(t('elmessage.exportSuccess'))
- }
-
} catch (error) {
console.error(error)
ElMessage.error(t('elmessage.exportError'))
@@ -284,21 +284,21 @@ const adjustVisible = ref(false)
const adjustTime = ref('')
const adjustCoefficient = ref('')
-const matrixMarkets = [
- { key: 'sg', label: '新加坡' },
- { key: 'my', label: '马来西亚' },
- { key: 'hk', label: '香港' },
- { key: 'th', label: '泰国' },
- { key: 'vn', label: '越南' },
- { key: 'ca', label: '加拿大' }
-]
+const matrixMarkets = computed(() => [
+ { key: 'sg', label: t('cash.markets.Singapore') },
+ { key: 'my', label: t('cash.markets.Malaysia') },
+ { key: 'hk', label: t('cash.markets.HongKong') },
+ { key: 'th', label: t('cash.markets.Thailand') },
+ { key: 'vn', label: t('clientCount.market.vnGold') },
+ { key: 'ca', label: t('cash.markets.Canada') }
+])
const adjustData = ref([])
const initAdjustData = () => {
- adjustData.value = matrixMarkets.map(rowMarket => {
- const row = { inMarket: rowMarket.label + '客户' }
- matrixMarkets.forEach(colMarket => {
+ adjustData.value = matrixMarkets.value.map(rowMarket => {
+ const row = { inMarket: rowMarket.label + t('common.customer') }
+ matrixMarkets.value.forEach(colMarket => {
row[colMarket.key] = '' // 默认空
})
return row
@@ -314,9 +314,9 @@ const handleAdjustment = () => {
const computedAdjustData = computed(() => {
const data = [...adjustData.value]
- const sumRow = { inMarket: '合计', isSum: true }
+ const sumRow = { inMarket: t('cash.cashFlow.total'), isSum: true }
- matrixMarkets.forEach(colMarket => {
+ matrixMarkets.value.forEach(colMarket => {
let colSum = 0
adjustData.value.forEach(row => {
const val = parseFloat(row[colMarket.key])
@@ -331,7 +331,7 @@ const computedAdjustData = computed(() => {
const getRowTotal = (row) => {
let sum = 0
- matrixMarkets.forEach(colMarket => {
+ matrixMarkets.value.forEach(colMarket => {
const val = parseFloat(row[colMarket.key])
if (!isNaN(val)) sum += val
})
@@ -349,18 +349,18 @@ const formatNumber = (val) => {
const submitAdjustment = async () => {
if (!adjustTime.value) {
- ElMessage.warning('请选择时间')
+ ElMessage.warning(t('cash.cashFlow.time'))
return
}
if (!adjustCoefficient.value) {
- ElMessage.warning('请输入系数')
+ ElMessage.warning(t('cash.cashFlow.coefficientPlaceholder'))
return
}
-
+
// 组装矩阵数据 matrix (二维数组,6行6列)
// 如果单元格为空或者非数字,默认为 0
const matrix = adjustData.value.map(row => {
- return matrixMarkets.map(colMarket => {
+ return matrixMarkets.value.map(colMarket => {
const val = parseFloat(row[colMarket.key])
return isNaN(val) ? 0 : val
})
@@ -370,22 +370,22 @@ const submitAdjustment = async () => {
const payload = {
matrix: matrix,
weight: parseFloat(adjustCoefficient.value), // 系数
- createTime: adjustTime.value,
+ time: adjustTime.value,
submitterId: adminData.value.id || 1000063, // 从全局 adminData 获取
submitterMarket: adminData.value.marketName || '总部' // 如果为空默认传总部
}
console.log('提交的封装数据:', JSON.stringify(payload, null, 2))
-
+
await adjustment(payload)
- ElMessage.success('提交成功')
+ ElMessage.success(t('common.submitSuccess'))
adjustVisible.value = false
fetchData()
}
-onMounted( async() => {
+onMounted(async () => {
await initPermissions()
- await handleAdminInfo()
+ await handleAdminInfo()
getMarket()
await fetchData()
})
@@ -403,86 +403,66 @@ onMounted( async() => {