liding
2026-10-08 43d00eec5989caa78c44c736853230a13d8e9f6c
src/views/financialManagement/financialStatements/index.vue
@@ -130,14 +130,20 @@
</template>
<script setup>
defineOptions({ name: 'FinancialStatements' })
import { ref, computed, onMounted, reactive } from 'vue';
import { ElMessage } from 'element-plus';
import 'element-plus/dist/index.css';
import Echarts from "@/components/Echarts/echarts.vue";
import { reportForms,reportIncome,reportExpense } from "@/api/financialManagement/financialStatements";
import dayjs from "dayjs";
// 日期范围
const dateRange = ref(null);
const currentYear = dayjs().year();
const dateRange = ref([
  dayjs().startOf('year').format('YYYY-MM-DD'),
  dayjs().endOf('year').format('YYYY-MM-DD')
]);
const chartStyle = {
   width: '100%',
   height: '100%', // 设置图表容器的高度
@@ -315,8 +321,16 @@
})
const pageInfo = ref({
})
const emptyPageInfo = () => ({
  totalIncome: 0,
  incomeNumber: 0,
  totalExpense: 0,
  expenseNumber: 0,
  netRevenue: 0,
  incomeType: [],
  expenseType: []
});
const pageInfo = ref(emptyPageInfo());
const getData = async () => {
  if (!dateRange.value || !dateRange.value.length) {
@@ -325,14 +339,14 @@
  try {
    const {code,data} = await reportForms({entryDateStart:dateRange.value[0], entryDateEnd:dateRange.value[1]});
    if(code === 200) {
      pageInfo.value = data
      pieData0.value = data.incomeType.map(item=>({
      pageInfo.value = { ...emptyPageInfo(), ...(data || {}) }
      pieData0.value = (data?.incomeType || []).map(item=>({
        name:item.typeName,
        value:item.account,
        percent:`${item.proportion*100}%`,
        amount:`¥${item.account}`
      }))
      pieData1.value = data.expenseType.map(item=>({
      pieData1.value = (data?.expenseType || []).map(item=>({
        name:item.typeName,
        value:item.account,
        percent:`${item.proportion*100}%`,
@@ -341,7 +355,11 @@
    }
  } catch (error) {
    pageInfo.value = emptyPageInfo();
    pieData0.value = [];
    pieData1.value = [];
    console.error('获取财务指标数据失败:', error);
    ElMessage.error(error?.msg || '财务汇总数据加载失败');
  }
  try{
    const {code,data} = await reportIncome();
@@ -349,7 +367,7 @@
      lineSeries0.value = data.map(item=>({
        name:item.typeName,
        type: 'line',
        data:item.account.map(item=>Number(item))
        data:(item.account || []).map(value => Number(value || 0))
      }))
    }
@@ -362,7 +380,7 @@
      lineSeries1.value = data.map(item=>({
        name:item.typeName,
        type: 'line',
        data:item.account.map(item=>Number(item))
        data:(item.account || []).map(value => Number(value || 0))
      }))
    }
@@ -374,7 +392,7 @@
// 初始化
onMounted(() => {
  // 不设置默认日期,由用户手动选择
  getData();
});
// 处理日期范围变化
@@ -387,7 +405,11 @@
// 重置日期范围
const resetDateRange = () => {
  dateRange.value = null;
  dateRange.value = [
    `${currentYear}-01-01`,
    `${currentYear}-12-31`
  ];
  getData();
};
</script>