Browse Source

feat: 提取业绩归属tableList计算

cuiyalong 3 months ago
parent
commit
d4ec0400e5

+ 4 - 28
src/views/create-order/components/schema-form/resort/index.js

@@ -1,9 +1,9 @@
 import { cloneDeep } from 'lodash'
-import { defaultPageFormValue, OrderProductCardItem, PayBackTableRow, SalePersonTableRow } from '@/views/create-order/data/interface'
+import { defaultPageFormValue, OrderProductCardItem, PayBackTableRow } from '@/views/create-order/data/interface'
 import { dateFormatter } from '@/utils/globalFun'
 import { getProductCodeWithType, sortCommonForm } from './common'
 import { payWayOptions, productGroupKeyMap, productKeyMap } from '@/views/create-order/data/index.js'
-import { findUserInDeptTree, calcChannelSelectorList } from "@/views/create-order/hooks/utils"
+import { calcSaleTableList } from "@/views/create-order/hooks/utils"
 import dayjs from 'dayjs'
 import { div } from '@/utils/number'
 
@@ -93,32 +93,8 @@ export function sortOrderInfo(order = {}) {
   // 业绩归属
   if (saleDataRes && saleDataRes.saleFinal) {
     const saleFinalList = saleDataRes.saleFinal.list
-    if (Array.isArray(saleFinalList) && saleFinalList.length > 0) {
-      if (saleFinalList.length === 1) {
-        const saleInfo = saleFinalList[0]
-        if (saleInfo) {
-          // const userInfo = findUserInDeptTree(saleInfo.name)
-          const userInfo = findUserInDeptTree((u) => u.name === saleInfo.name)
-          if (userInfo && userInfo.id) {
-            pageFormValue.salePerson = [userInfo.id]
-          }
-          const channelArr = calcChannelSelectorList(saleInfo.distribution_channel)
-          if (Array.isArray(channelArr) && channelArr.length === 2) {
-            pageFormValue.saleWay = channelArr
-          }
-        }
-      } else {
-        const salePerson = []
-        pageFormValue.salePersonTableList = saleFinalList.map(sale => {
-          // const userInfo = findUserInDeptTree(sale.name)
-          const userInfo = findUserInDeptTree((u) => u.name === sale.name)
-          const saleWay = calcChannelSelectorList(sale.distribution_channel)
-          salePerson.push(userInfo?.id)
-          return new SalePersonTableRow(sale.name, userInfo?.id, div(sale.money, 100), saleWay)
-        })
-        pageFormValue.salePerson = salePerson
-      }
-    }
+    const saleTableList = calcSaleTableList(saleFinalList)
+    Object.assign(pageFormValue, saleTableList)
   }
 
   // const defaultPageFormValue = {

+ 36 - 0
src/views/create-order/hooks/utils.js

@@ -1,4 +1,6 @@
 import store from '@/store'
+import { SalePersonTableRow } from '@/views/create-order/data/interface'
+import { div } from '@/utils/number'
 
 // 从部门树中,根据名字获取人员信息
 // cb是个函数,满足cb()为true则返回
@@ -47,3 +49,37 @@ export function calcChannelSelectorList(code) {
   })
   return channelArr
 }
+
+// 通用:计算业绩归属
+export function calcSaleTableList(saleFinalList) {
+  const pageFormValue = {}
+
+  if (Array.isArray(saleFinalList) && saleFinalList.length > 0) {
+    if (saleFinalList.length === 1) {
+      const saleInfo = saleFinalList[0]
+      if (saleInfo) {
+        // const userInfo = findUserInDeptTree(saleInfo.name)
+        const userInfo = findUserInDeptTree((u) => u.name === saleInfo.name)
+        if (userInfo && userInfo.id) {
+          pageFormValue.salePerson = [userInfo.id]
+        }
+        const channelArr = calcChannelSelectorList(saleInfo.distribution_channel)
+        if (Array.isArray(channelArr) && channelArr.length === 2) {
+          pageFormValue.saleWay = channelArr
+        }
+      }
+    } else {
+      const salePerson = []
+      pageFormValue.salePersonTableList = saleFinalList.map(sale => {
+        // const userInfo = findUserInDeptTree(sale.name)
+        const userInfo = findUserInDeptTree((u) => u.name === sale.name)
+        const saleWay = calcChannelSelectorList(sale.distribution_channel)
+        salePerson.push(userInfo?.id)
+        return new SalePersonTableRow(sale.name, userInfo?.id, div(sale.money, 100), saleWay)
+      })
+      pageFormValue.salePerson = salePerson
+    }
+  }
+
+  return pageFormValue
+}