import store from '@/store' import { SalePersonTableRow } from '@/views/create-order/data/interface' import { div } from '@/utils/number' // 从部门树中,根据名字获取人员信息 // cb是个函数,满足cb()为true则返回 export function findUserInDeptTree(cb) { const depTree = store.getters['order/depTreeList'] let nameObj = undefined if (!cb) { cb = () => {} } const findName = (list, cb) => { list.find(u => { if (Array.isArray(u.children) && u.children.length > 0) { return findName(u.children, cb) } else { // const t = u.name === name const t = cb(u) if (t) { nameObj = u } return t } }) } findName(depTree, cb) return nameObj } // 营销渠道:根据营销渠道最深层级的id。整理出其选择器的选中列表 export function calcChannelSelectorList(code) { const list = store.state.order.conf?.channel || [] let channelArr = [] list.find(f => { if (Array.isArray(f.children)) { const t = f.children.find(s => { if (s.item_code === code) { channelArr = [f.item_code, s.item_code] return true } }) return t } }) 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 }