瀏覽代碼

lizhuo submits AnnualSaleGoal at 2023-7-27 17:00

002637 1 年之前
父節點
當前提交
3a5b87c394

+ 46 - 7
src/views/business/spd/goal_management/AnnualSaleGoalMerge.vue

@@ -242,8 +242,11 @@
         <el-col :span="1.5">
           <el-button type="primary" plain icon="el-icon-folder-opened" size="mini" @click="clickMerge">合 并</el-button>
         </el-col>
+        <el-col :span="1.5">
+          <el-button type="primary" plain icon="el-icon-folder-opened" size="mini" @click="getNewTwoArray">编程题</el-button>
+        </el-col>
       </el-row>
-      <el-tabs v-model="activeName" @tab-click="handleClick">
+      <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
         <el-tab-pane label="年销售目标合并明细" name="annualSaleGoalMergeDetails">
           <el-table v-loading="loading" :data="annualSaleGoalMergeDetailsList" @selection-change="handleSelectionChange">
             <el-table-column type="selection" width="55" align="center" fixed />
@@ -386,7 +389,7 @@
         </el-tab-pane>
         <el-tab-pane label="区域目标汇总(年)" name="zoneGoalSum(year)">
           <el-table v-loading="loading" :data="areaDetailList">
-            <el-table-column type="index" width="55" align="center" fixed />
+            <el-table-column label="序号" type="index" width="55" align="center" fixed />
             <el-table-column label="销售组织" align="center" prop="saleOrg" width="180">
               <template slot-scope="scope">
                 <el-popover-select-v2 v-model="areaDetailList[scope.$index].saleOrg" title="销售组织" valueKey="name"
@@ -483,7 +486,7 @@
         </el-tab-pane>
         <el-tab-pane label="客户目标汇总(年)" name="customerGoalSum(year)">
           <el-table v-loading="loading" :data="customerDetailList">
-            <el-table-column type="index" width="55" align="center" fixed />
+            <el-table-column label="序号" type="index" width="55" align="center" fixed />
             <el-table-column label="销售组织" align="center" prop="saleOrg" width="180">
               <template slot-scope="scope">
                 <el-popover-select-v2 v-model="customerDetailList[scope.$index].saleOrg" title="销售组织" valueKey="name"
@@ -600,6 +603,7 @@ import {
   delAnnualSaleMergeDetails,
   getAnnualSaleMergeDetails
 } from "@/api/business/spd/goal_management/annualSaleMergeDetails"
+import deepCopy from "@gby/deep-copy";
 
 // 树形参照
 import TreeRefers from '@/components/Refers/treeRefer.vue'
@@ -804,6 +808,7 @@ export default {
       this.annualSaleGoalMergeDetailsList = []
       this.areaDetailList = []
       this.customerDetailList = []
+      this.activeName = 'annualSaleGoalMergeDetails'
       this.open = true;
       this.title = "添加年度销售目标明细";
     },
@@ -843,6 +848,9 @@ export default {
     handleUpdate(row) {
       this.reset();
       const id = row.id || this.ids
+      this.activeName = 'annualSaleGoalMergeDetails'
+      this.areaDetailList = []
+      this.customerDetailList = []
       getAnnualSaleGoalMerge(id).then(response => {
         console.log(response);
         this.form = response.data;
@@ -1022,10 +1030,6 @@ export default {
         })
         .catch(_ => {});
     },
-    // 标签转换
-    handleClick(tab, event) {
-      console.log(tab, event);
-    },
     // 复制明细
     handleCopyDetails(row) {
       let list = {
@@ -1072,12 +1076,18 @@ export default {
       let list = this.annualSaleGoalMergeDetailsList
       let sum = 0
       for (const listElement of list) {
+        if (listElement.totalGoal === null) {
+          listElement.totalGoal = 0
+        }
         sum = (sum * 1000000 + listElement.totalGoal * 1000000) / 1000000
       }
       this.form.goalTotal = sum
     },
     // 合并数据
     clickMerge() {
+      if (this.activeName !== 'annualSaleGoalMergeDetails') {
+        return this.$message.error('当前标签不是年销售目标合并明细')
+      }
       let classify = this.form.goalCategory
       let classifyValue;
       if (classify === null || classify === '') {
@@ -1111,6 +1121,35 @@ export default {
         }
         this.computeTotal()
       })
+    },
+    // 获得区域目标汇总or客户目标汇总
+    getNewTwoArray() {
+      let activeName = this.activeName
+      let array = deepCopy(this.annualSaleGoalMergeDetailsList)
+      console.log(this.annualSaleGoalMergeDetailsList);
+      if (activeName === 'annualSaleGoalMergeDetails') {
+        console.log('annualSaleGoalMergeDetails')
+      } else if (activeName === 'zoneGoalSum(year)') {
+        for (let i = 0; i < array.length; i++) {
+          for (let j = 0; j < array.length; j++) {
+            if (i !== j && array[i].saleOrg === array[j].saleOrg && array[i].saleZone === array[j].saleZone && array[i].creator === array[j].creator) {
+              array[i].totalGoal += array[j].totalGoal
+              array.splice(j, 1)
+            }
+          }
+        }
+        this.areaDetailList = array
+      } else if (activeName === 'customerGoalSum(year)') {
+        for (let i = 0; i < array.length; i++) {
+          for (let j = 0; j < array.length; j++) {
+            if (i !== j && array[i].saleOrg === array[j].saleOrg && array[i].saleZone === array[j].saleZone && array[i].custom === array[j].custom) {
+              array[i].totalGoal += array[j].totalGoal
+              array.splice(j, 1)
+            }
+          }
+        }
+        this.customerDetailList = array
+      }
     }
   }
 };

+ 2 - 0
src/views/business/spd/goal_management/MonthReturnMerge.vue

@@ -575,6 +575,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.activeName = 'monthReturnMergeDetails'
       this.monthReturnMergeDetailsList = []
       this.open = true;
       this.title = "添加--月回款目标合并";
@@ -596,6 +597,7 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
+      this.activeName = 'monthReturnMergeDetails'
       const id = row.id || this.ids
       getMonthReturnMerge(id).then(response => {
         this.form = response.data;