소스 검색

feature:添加销售、回款指标统计

liuyaqi 2 년 전
부모
커밋
e8fbc40019
1개의 변경된 파일78개의 추가작업 그리고 3개의 파일을 삭제
  1. 78 3
      src/views/index/index.vue

+ 78 - 3
src/views/index/index.vue

@@ -79,6 +79,17 @@
                 <el-radio-button label="quarter">季度</el-radio-button>
                 <el-radio-button label="month">月</el-radio-button>
               </el-radio-group>
+              <el-radio-group
+                v-show="!editFlag && (item.i == 20006 || item.i == 20007)"
+                v-model="item.searchType"
+                size="mini"
+                @change="refresh(item, index)">
+                <el-radio-button label="1">一季度</el-radio-button>
+                <el-radio-button label="2">二季度</el-radio-button>
+                <el-radio-button label="3">三季度</el-radio-button>
+                <el-radio-button label="4">三季度</el-radio-button>
+                <el-radio-button label="0">全年</el-radio-button>
+              </el-radio-group>
               <el-button v-show="!editFlag" type="text" @click="refresh(item, index)">刷新</el-button>
               <vab-icon v-show="editFlag" icon="close-fill" @click="gridDel(index)" />
             </div>
@@ -356,7 +367,7 @@
               type: item.report_type,
               h: item.size_h,
               w: item.size_w,
-              searchType: 'year',
+              searchType: item.id != 20006 && item.id != 20007 ? 'year' : '0',
             }
           })
         }
@@ -369,13 +380,21 @@
         this.charts = []
         for (let i = 0; i < this.layout.length; i++) {
           this.getChartSize(this.layout[i].i)
-          this.drawChart(this.layout[i].i, i)
+          if (this.layout[i].i == 20006 || this.layout[i].i == 20007) {
+            this.drawGoalChart(this.layout[i].i, i)
+          } else {
+            this.drawChart(this.layout[i].i, i)
+          }
         }
       },
       //刷新
       refresh(item, index) {
         this.charts[index].dispose()
-        this.drawChart(item.i, index, item.searchType)
+        if (item.i == 20006 || item.i == 20007) {
+          this.drawGoalChart(item.i, index, item.searchType)
+        } else {
+          this.drawChart(item.i, index, item.searchType)
+        }
       },
       getChartSize(id) {
         // console.log(id, 'id')
@@ -454,6 +473,62 @@
         chartBar.setOption(option)
         this.charts[i] = chartBar
       },
+      async drawGoalChart(id, i, searchType) {
+        const chartBar = echarts.init(document.getElementById(id))
+        const [err, res] = await to(
+          indexApi.getHomeDataReportData({
+            id,
+            Params: {
+              year: new Date().getFullYear(),
+              quarter: parseInt(searchType),
+            },
+          })
+        )
+        if (err) return
+        console.log(res.data.data)
+        const option = {
+          grid: {
+            bottom: 30,
+            top: 40,
+            right: 10,
+            left: 10,
+            containLabel: true,
+          },
+          tooltip: {
+            trigger: 'axis',
+          },
+          xAxis: [
+            {
+              type: 'category',
+              data: res.data.data.xData,
+              axisTick: {
+                alignWithLabel: true,
+              },
+            },
+          ],
+          yAxis: [
+            {
+              type: 'value',
+              name: '金额(万元)',
+              alignTicks: true,
+            },
+          ],
+          series: [
+            {
+              name: id == 20006 ? '销售指标' : '回款指标',
+              type: 'bar',
+              data: res.data.data.yDataTarget,
+            },
+            {
+              name: id == 20006 ? '销售额度' : '回款额度',
+              type: 'bar',
+              data: res.data.data.yDataReal,
+            },
+          ],
+        }
+        chartBar.setOption(option)
+        this.charts[i] = chartBar
+      },
       initFunnel() {
         this.chartFunnel = echarts.init(document.getElementById('funnel'))
         const option = {