From 7b60f24e07f54634503e5b37e6ca5f85d4ad743f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 07 八月 2026 15:41:39 +0800
Subject: [PATCH] 天津_建诚恒商贸 1.备件管理-新增独立备件出库功能入口,支持直接完成备件领用出库操作。 2.设备保养-支持按日期分组折叠展示,分组条目可展开查看明细;单条明细行末尾增加【保养完成】操作按钮,可单独办结单条保养任务;折叠汇总状态下,新增【一键保养完成】批量操作按钮,快速办结当前分组全部保养项。 3.设备巡检-按日期分组折叠展示,分组支持展开查看明细;每条巡检明细后增设【巡检完成】按钮,支持单独办结单条巡检记录;分组折叠未展开状态下,提供【一键巡检完成】批量操作,统一办结该分组下所有巡检任务。 4.增值税对比-优化数据展示逻辑,列表展示各订单增值税明细;页面右侧新增柱状可视化图表,直观对比进销项增值税数据。 5.管理驾驶舱-指标修改:将顶部「销售产品数」调整为「销售订单数」;时间筛选:页面左上角新增日期范围下拉筛选控件,所有统计指标标注当前筛选时段;
---
src/views/reportAnalysis/financialAnalysis/components/center-top.vue | 79 ++++++++++++++++++++++++---------------
1 files changed, 49 insertions(+), 30 deletions(-)
diff --git a/src/views/reportAnalysis/financialAnalysis/components/center-top.vue b/src/views/reportAnalysis/financialAnalysis/components/center-top.vue
index 85f4928..becb376 100644
--- a/src/views/reportAnalysis/financialAnalysis/components/center-top.vue
+++ b/src/views/reportAnalysis/financialAnalysis/components/center-top.vue
@@ -112,50 +112,69 @@
profitRate: { value: 0, trend: 0 },
})
-const fetchMonthlyIncome = async () => {
- const res = await getMonthlyIncome()
- const data = res?.data || {}
+const toNumber = (val) => {
+ const num = Number(val)
+ return Number.isFinite(num) ? num : 0
+}
- income.value.amount = data.monthlyIncome ?? 0
- const collectionRate = Number(data.collectionRate ?? 0)
- const overdueRate = Number(data.overdueRate ?? 0)
- income.value.repayRate = {
- value: collectionRate,
- trend: collectionRate >= 0 ? 1 : -1,
- }
- income.value.overdueCount = data.overdueNum ?? 0
- income.value.overdueRate = {
- value: overdueRate,
- trend: overdueRate >= 0 ? 1 : -1,
+const fetchMonthlyIncome = async () => {
+ try {
+ const res = await getMonthlyIncome()
+ const data = res?.data || {}
+
+ income.value.amount = toNumber(data.monthlyIncome)
+ const collectionRate = toNumber(data.collectionRate)
+ const overdueRate = toNumber(data.overdueRate)
+ income.value.repayRate = {
+ value: collectionRate,
+ trend: collectionRate >= 0 ? 1 : -1,
+ }
+ income.value.overdueCount = toNumber(data.overdueNum)
+ income.value.overdueRate = {
+ value: overdueRate,
+ trend: overdueRate >= 0 ? 1 : -1,
+ }
+ } catch {
+ income.value.amount = 0
+ income.value.repayRate = { value: 0, trend: 0 }
+ income.value.overdueCount = 0
+ income.value.overdueRate = { value: 0, trend: 0 }
}
}
const fetchMonthlyExpenditure = async () => {
- const res = await getMonthlyExpenditure()
- const data = res?.data || {}
+ try {
+ const res = await getMonthlyExpenditure()
+ const data = res?.data || {}
- expense.value.amount = data.monthlyExpenditure ?? 0
- const paymentRate = Number(data.paymentRate ?? 0)
- expense.value.netProfit = {
- value: paymentRate,
- trend: paymentRate >= 0 ? 1 : -1,
- }
- expense.value.grossProfit = data.grossProfit ?? 0
+ expense.value.amount = toNumber(data.monthlyExpenditure)
+ const paymentRate = toNumber(data.paymentRate)
+ expense.value.netProfit = {
+ value: paymentRate,
+ trend: paymentRate >= 0 ? 1 : -1,
+ }
+ expense.value.grossProfit = toNumber(data.grossProfit)
- const profitMarginRate = Number(data.profitMarginRate ?? 0)
- expense.value.profitRate = {
- value: profitMarginRate,
- trend: profitMarginRate >= 0 ? 1 : -1,
+ const profitMarginRate = toNumber(data.profitMarginRate)
+ expense.value.profitRate = {
+ value: profitMarginRate,
+ trend: profitMarginRate >= 0 ? 1 : -1,
+ }
+ } catch {
+ expense.value.amount = 0
+ expense.value.netProfit = { value: 0, trend: 0 }
+ expense.value.grossProfit = 0
+ expense.value.profitRate = { value: 0, trend: 0 }
}
}
const isWanAmount = (val) => {
- const num = Number(val) || 0
+ const num = toNumber(val)
return Math.abs(num) >= 10000
}
const formatAmountWanNumber = (val) => {
- const num = Number(val) || 0
+ const num = toNumber(val)
if (Math.abs(num) >= 10000) {
return (num / 10000).toFixed(2)
}
@@ -163,7 +182,7 @@
}
const formatPercent = (val) => {
- const num = Number(val) || 0
+ const num = toNumber(val)
// 鐧惧垎姣斿睍绀哄缁堢敤缁濆鍊硷紝灏忔暟淇濈暀涓や綅
return `${Math.abs(num).toFixed(2)}%`
}
--
Gitblit v1.9.3