Forráskód Böngészése

合同概况页图表数据调整

ellisran 2 hete
szülő
commit
8c8901c289

+ 4 - 0
app/controller/contract_controller.js

@@ -216,11 +216,13 @@ module.exports = app => {
                 const expensesOptions = ctx.helper._.cloneDeep(ctx.contractOptions);
                 expensesOptions.contract_type = contractConst.type.expenses;
                 const expensesList = await ctx.service.contract.getListByUsers(expensesOptions, ctx.session.sessionUser);
+                const expensesPayList = expensesList.length > 0 ? await ctx.service.contractPay.getAllDataByCondition({ where: { cid: ctx.helper._.map(expensesList, 'id') } }) : [];
                 const expenses_total_price = expensesList.reduce((total, item) => ctx.helper.add(total, item.total_price), 0);
                 const expenses_yf_price = expensesList.reduce((total, item) => ctx.helper.add(total, item.yf_price), 0);
                 const incomeOptions = ctx.helper._.cloneDeep(ctx.contractOptions);
                 incomeOptions.contract_type = contractConst.type.income;
                 const incomeList = await ctx.service.contract.getListByUsers(incomeOptions, ctx.session.sessionUser);
+                const incomePayList = incomeList.length > 0 ? await ctx.service.contractPay.getAllDataByCondition({ where: { cid: ctx.helper._.map(incomeList, 'id') } }) : [];
                 const income_total_price = incomeList.reduce((total, item) => ctx.helper.add(total, item.total_price), 0);
                 const income_yf_price = incomeList.reduce((total, item) => ctx.helper.add(total, item.yf_price), 0);
                 const prices = {
@@ -240,6 +242,8 @@ module.exports = app => {
                     prices,
                     expensesList,
                     incomeList,
+                    expensesPayList,
+                    incomePayList,
                     thisUrl: `/sp/${ctx.subProject.id}` + (ctx.contract_tender ? `/contract/tender/${ctx.contract.id}/detail` : '/contract/detail'),
                 };
                 await this.layout('contract/panel.ejs', renderData);

+ 12 - 5
app/public/js/contract_panel.js

@@ -52,10 +52,10 @@ $(document).ready(function() {
     };
     expensesPieChart.setOption(expensesPieOption);
 
-    // 按create_time月份整理expensesList数据
+    // 按pay_time月份整理expensesPayList数据
     const expensesBarDatas = [];
-    for (const expenses of expensesList) {
-        const yearMonth = moment(expenses.create_time).format('YYYY年MM月');
+    for (const expenses of expensesPayList) {
+        const yearMonth = moment(expenses.pay_time).format('YYYY年MM月');
         const ymExpenses = _.find(expensesBarDatas, { yearMonth });
         if (ymExpenses) {
             ymExpenses.yf_price = ZhCalc.add(ymExpenses.yf_price, expenses.yf_price);
@@ -66,6 +66,9 @@ $(document).ready(function() {
     for (const e of expensesBarDatas) {
         e.rate = ZhCalc.round(ZhCalc.div(e.yf_price, prices.expenses_total_price) * 100, 2);
     }
+    expensesBarDatas.sort((a, b) => {
+        return moment(a.yearMonth, 'YYYY年MM月').diff(moment(b.yearMonth, 'YYYY年MM月'));
+    });
     console.log(expensesBarDatas);
 
     const expensesBarChart = echarts.init(document.getElementById('expensesBarChart'));
@@ -183,8 +186,8 @@ $(document).ready(function() {
     incomePieChart.setOption(incomePieOption);
 
     const incomeBarDatas = [];
-    for (const income of incomeList) {
-        const yearMonth = moment(income.create_time).format('YYYY年MM月');
+    for (const income of incomePayList) {
+        const yearMonth = moment(income.pay_time).format('YYYY年MM月');
         const ymIncome = _.find(incomeBarDatas, { yearMonth });
         if (ymIncome) {
             ymIncome.yf_price = ZhCalc.add(ymIncome.yf_price, income.yf_price);
@@ -195,6 +198,10 @@ $(document).ready(function() {
     for (const i of incomeBarDatas) {
         i.rate = ZhCalc.round(ZhCalc.div(i.yf_price, prices.income_total_price) * 100, 2);
     }
+    // 按日期排序
+    incomeBarDatas.sort((a, b) => {
+        return moment(a.yearMonth, 'YYYY年MM月').diff(moment(b.yearMonth, 'YYYY年MM月'));
+    });
     console.log(incomeBarDatas);
 
     const incomeBarChart = echarts.init(document.getElementById('incomeBarChart'));

+ 2 - 0
app/view/contract/panel.ejs

@@ -114,5 +114,7 @@
     const prices = JSON.parse(unescape('<%- escape(JSON.stringify(prices)) %>'));
     const expensesList = JSON.parse(unescape('<%- escape(JSON.stringify(expensesList)) %>'));
     const incomeList = JSON.parse(unescape('<%- escape(JSON.stringify(incomeList)) %>'));
+    const incomePayList = JSON.parse(unescape('<%- escape(JSON.stringify(incomePayList)) %>'));
+    const expensesPayList = JSON.parse(unescape('<%- escape(JSON.stringify(expensesPayList)) %>'));
     let contractPays = [];
 </script>