|
|
@@ -1,191 +1,203 @@
|
|
|
-import { number } from "echarts"
|
|
|
+import { number } from 'echarts';
|
|
|
|
|
|
-
|
|
|
-//指标定义获取option
|
|
|
+//指标定义获取option
|
|
|
export function salesRegulationOption(assessmentIndicators, value) {
|
|
|
//assessmentIndicators 1:回款 2:合同 3:拜访客户
|
|
|
- let valueOption = [], statusOption = []
|
|
|
+ let valueOption = [],
|
|
|
+ statusOption = [];
|
|
|
if (assessmentIndicators == 1) {
|
|
|
- valueOption = [{
|
|
|
- name: '发票管理',
|
|
|
- value: '1'
|
|
|
- }, {
|
|
|
- name: '应收管理',
|
|
|
- value: '2'
|
|
|
- }]
|
|
|
+ valueOption = [
|
|
|
+ {
|
|
|
+ name: '发票管理',
|
|
|
+ value: '1'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '应收管理',
|
|
|
+ value: '2'
|
|
|
+ }
|
|
|
+ ];
|
|
|
if (value == 1) {
|
|
|
statusOption = [
|
|
|
{
|
|
|
name: '未开票',
|
|
|
value: '0'
|
|
|
- }, {
|
|
|
+ },
|
|
|
+ {
|
|
|
name: '已开票',
|
|
|
value: '1'
|
|
|
}
|
|
|
- ]
|
|
|
+ ];
|
|
|
}
|
|
|
if (value == 2) {
|
|
|
statusOption = [
|
|
|
{
|
|
|
name: '未收款',
|
|
|
- value: 0,
|
|
|
+ value: 0
|
|
|
},
|
|
|
{
|
|
|
name: '部分收款',
|
|
|
- value: 1,
|
|
|
+ value: 1
|
|
|
},
|
|
|
{
|
|
|
name: '已收全款',
|
|
|
- value: 2,
|
|
|
- },
|
|
|
- ]
|
|
|
+ value: 2
|
|
|
+ }
|
|
|
+ ];
|
|
|
}
|
|
|
}
|
|
|
if (assessmentIndicators == 2) {
|
|
|
- valueOption = [{
|
|
|
- name: '合同台账',
|
|
|
- value: '1'
|
|
|
- }]
|
|
|
+ valueOption = [
|
|
|
+ {
|
|
|
+ name: '合同台账',
|
|
|
+ value: '1'
|
|
|
+ }
|
|
|
+ ];
|
|
|
if (value == 1) {
|
|
|
-
|
|
|
statusOption = [
|
|
|
{
|
|
|
name: '未提交',
|
|
|
- value: 0,
|
|
|
+ value: 0
|
|
|
},
|
|
|
{
|
|
|
name: '审核中',
|
|
|
- value: 1,
|
|
|
+ value: 1
|
|
|
},
|
|
|
{
|
|
|
name: '已审核',
|
|
|
- value: 2,
|
|
|
- }, {
|
|
|
- name: '审核不通过',
|
|
|
- value: 3,
|
|
|
+ value: 2
|
|
|
},
|
|
|
- ]
|
|
|
+ {
|
|
|
+ name: '审核不通过',
|
|
|
+ value: 3
|
|
|
+ }
|
|
|
+ ];
|
|
|
}
|
|
|
}
|
|
|
if (assessmentIndicators == 3) {
|
|
|
- valueOption = [{
|
|
|
- name: '客户管理',
|
|
|
- value: '1'
|
|
|
- }]
|
|
|
+ valueOption = [
|
|
|
+ {
|
|
|
+ name: '客户管理',
|
|
|
+ value: '1'
|
|
|
+ }
|
|
|
+ ];
|
|
|
if (value == 1) {
|
|
|
-
|
|
|
statusOption = [
|
|
|
{
|
|
|
name: '禁用',
|
|
|
- value: 2,
|
|
|
+ value: 2
|
|
|
},
|
|
|
{
|
|
|
name: '启用',
|
|
|
- value: 1,
|
|
|
- },
|
|
|
-
|
|
|
- ]
|
|
|
+ value: 1
|
|
|
+ }
|
|
|
+ ];
|
|
|
}
|
|
|
}
|
|
|
if (assessmentIndicators == 4) {
|
|
|
- valueOption = [{
|
|
|
- name: '我的客户',
|
|
|
- value: '1'
|
|
|
- }]
|
|
|
+ valueOption = [
|
|
|
+ {
|
|
|
+ name: '我的客户',
|
|
|
+ value: '1'
|
|
|
+ }
|
|
|
+ ];
|
|
|
if (value == 1) {
|
|
|
-
|
|
|
statusOption = [
|
|
|
{
|
|
|
name: '客户拜访数',
|
|
|
- value: 0,
|
|
|
- },
|
|
|
- ]
|
|
|
+ value: 0
|
|
|
+ }
|
|
|
+ ];
|
|
|
}
|
|
|
}
|
|
|
if (assessmentIndicators == 5) {
|
|
|
- valueOption = [{
|
|
|
- name: '商机管理',
|
|
|
- value: '1'
|
|
|
- }]
|
|
|
+ valueOption = [
|
|
|
+ {
|
|
|
+ name: '商机管理',
|
|
|
+ value: '1'
|
|
|
+ }
|
|
|
+ ];
|
|
|
if (value == 1) {
|
|
|
-
|
|
|
statusOption = [
|
|
|
{
|
|
|
name: '未提交',
|
|
|
- value: 0,
|
|
|
+ value: 0
|
|
|
},
|
|
|
{
|
|
|
name: '审核中',
|
|
|
- value: 1,
|
|
|
+ value: 1
|
|
|
},
|
|
|
{
|
|
|
name: '已审核',
|
|
|
- value: 2,
|
|
|
- }, {
|
|
|
- name: '审核不通过',
|
|
|
- value: 3,
|
|
|
+ value: 2
|
|
|
},
|
|
|
-
|
|
|
- ]
|
|
|
+ {
|
|
|
+ name: '审核不通过',
|
|
|
+ value: 3
|
|
|
+ }
|
|
|
+ ];
|
|
|
}
|
|
|
}
|
|
|
if (assessmentIndicators == 6) {
|
|
|
- valueOption = [{
|
|
|
- name: '市场管理',
|
|
|
- value: '1'
|
|
|
- }]
|
|
|
+ valueOption = [
|
|
|
+ {
|
|
|
+ name: '市场管理',
|
|
|
+ value: '1'
|
|
|
+ }
|
|
|
+ ];
|
|
|
if (value == 1) {
|
|
|
-
|
|
|
statusOption = [
|
|
|
{
|
|
|
name: '未提交',
|
|
|
- value: 0,
|
|
|
+ value: 0
|
|
|
},
|
|
|
{
|
|
|
name: '审核中',
|
|
|
- value: 1,
|
|
|
+ value: 1
|
|
|
},
|
|
|
{
|
|
|
name: '已审核',
|
|
|
- value: 2,
|
|
|
- }, {
|
|
|
- name: '审核不通过',
|
|
|
- value: 3,
|
|
|
+ value: 2
|
|
|
},
|
|
|
-
|
|
|
- ]
|
|
|
+ {
|
|
|
+ name: '审核不通过',
|
|
|
+ value: 3
|
|
|
+ }
|
|
|
+ ];
|
|
|
}
|
|
|
}
|
|
|
if (assessmentIndicators == 7) {
|
|
|
- valueOption = [{
|
|
|
- name: '发货单',
|
|
|
- value: '1'
|
|
|
- }]
|
|
|
+ valueOption = [
|
|
|
+ {
|
|
|
+ name: '发货单',
|
|
|
+ value: '1'
|
|
|
+ }
|
|
|
+ ];
|
|
|
if (value == 1) {
|
|
|
-
|
|
|
statusOption = [
|
|
|
{
|
|
|
name: '未提交',
|
|
|
- value: 0,
|
|
|
+ value: 0
|
|
|
},
|
|
|
{
|
|
|
name: '审核中',
|
|
|
- value: 1,
|
|
|
+ value: 1
|
|
|
},
|
|
|
{
|
|
|
name: '已审核',
|
|
|
- value: 2,
|
|
|
- }, {
|
|
|
+ value: 2
|
|
|
+ },
|
|
|
+ {
|
|
|
name: '审核不通过',
|
|
|
- value: 3,
|
|
|
- },{
|
|
|
- name: '已回执',
|
|
|
- value: 4,
|
|
|
+ value: 3
|
|
|
},
|
|
|
- ]
|
|
|
+ {
|
|
|
+ name: '已回执',
|
|
|
+ value: 4
|
|
|
+ }
|
|
|
+ ];
|
|
|
}
|
|
|
}
|
|
|
- return { valueOption, statusOption }
|
|
|
+ return { valueOption, statusOption };
|
|
|
}
|
|
|
//考核指标option
|
|
|
export const assessmentIndicatorsOptions = [
|
|
|
@@ -217,8 +229,7 @@ export const assessmentIndicatorsOptions = [
|
|
|
label: '发货额',
|
|
|
value: '7'
|
|
|
}
|
|
|
-]
|
|
|
-
|
|
|
+];
|
|
|
|
|
|
//目标tree
|
|
|
export function getTargetManageTree(data, type) {
|
|
|
@@ -251,8 +262,7 @@ export function getTargetManageTree(data, type) {
|
|
|
unit: '',
|
|
|
ratio: '',
|
|
|
value: '',
|
|
|
- type: '3',
|
|
|
-
|
|
|
+ type: '3'
|
|
|
},
|
|
|
{
|
|
|
id: data.id + '-' + '7',
|
|
|
@@ -391,33 +401,42 @@ export function getTargetManageTree(data, type) {
|
|
|
]
|
|
|
}
|
|
|
]
|
|
|
- }
|
|
|
+ };
|
|
|
if (type == 2) {
|
|
|
- tree.children = tree.children[0].children
|
|
|
+ tree.children = tree.children[0].children;
|
|
|
}
|
|
|
if (type == 3) {
|
|
|
- let data = []
|
|
|
- tree.children[0].children.forEach(item => {
|
|
|
- item.children.forEach(val => {
|
|
|
- data.push(val)
|
|
|
- })
|
|
|
- })
|
|
|
- tree.children = data
|
|
|
+ let data = [];
|
|
|
+ tree.children[0].children.forEach((item) => {
|
|
|
+ item.children.forEach((val) => {
|
|
|
+ data.push(val);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ tree.children = data;
|
|
|
}
|
|
|
- return tree
|
|
|
+ return tree;
|
|
|
}
|
|
|
//单位选择框
|
|
|
export function renderSelect(h, data, form, children) {
|
|
|
- let option = [{ name: '元' }, { name: '万元' }, { name: '个' }]
|
|
|
+ let option = [
|
|
|
+ { name: '个' },
|
|
|
+ { name: '十' },
|
|
|
+ { name: '百' },
|
|
|
+ { name: '千' },
|
|
|
+ { name: '万' },
|
|
|
+ { name: '百万' },
|
|
|
+ { name: '千万' },
|
|
|
+ { name: '亿' }
|
|
|
+ ];
|
|
|
let disabled = false;
|
|
|
if (!data.type) {
|
|
|
return;
|
|
|
}
|
|
|
if (form.type == 1 && data.type != 1) {
|
|
|
- disabled = true
|
|
|
+ disabled = true;
|
|
|
}
|
|
|
if (form.type == 2 && data.type != 2) {
|
|
|
- disabled = true
|
|
|
+ disabled = true;
|
|
|
}
|
|
|
return h(
|
|
|
'el-select',
|
|
|
@@ -429,21 +448,22 @@ export function renderSelect(h, data, form, children) {
|
|
|
},
|
|
|
on: {
|
|
|
change: (value) => {
|
|
|
- data.unit = value
|
|
|
+ data.unit = value;
|
|
|
flattenTree(data, 'select', children);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- [...option.map((item) => {
|
|
|
- return h('el-option', {
|
|
|
- attrs: {
|
|
|
- key: item.name,
|
|
|
- label: item.name,
|
|
|
- value: item.name,
|
|
|
- }
|
|
|
-
|
|
|
+ [
|
|
|
+ ...option.map((item) => {
|
|
|
+ return h('el-option', {
|
|
|
+ attrs: {
|
|
|
+ key: item.name,
|
|
|
+ label: item.name,
|
|
|
+ value: item.name
|
|
|
+ }
|
|
|
+ });
|
|
|
})
|
|
|
- })]
|
|
|
+ ]
|
|
|
);
|
|
|
}
|
|
|
|
|
|
@@ -498,98 +518,85 @@ export function renderInput(h, data, className, placeholder, form, children) {
|
|
|
}
|
|
|
//占比改变
|
|
|
function setRatio(data, tree, eventFn) {
|
|
|
- let ratio = 0
|
|
|
+ let ratio = 0;
|
|
|
tree.forEach((node) => {
|
|
|
if (data.pid == node.pid && data.id !== node.id) {
|
|
|
- ratio += (+node.ratio)
|
|
|
+ ratio += +node.ratio;
|
|
|
if (eventFn == 'focus' && ratio) {
|
|
|
- data.ratio = 100 - ratio >= 0 ? 100 - ratio : 0
|
|
|
+ data.ratio = 100 - ratio >= 0 ? 100 - ratio : 0;
|
|
|
}
|
|
|
if (eventFn == 'input') {
|
|
|
- if (ratio + (+data.ratio) > 100) {
|
|
|
- data.ratio = 100 - ratio
|
|
|
+ if (ratio + +data.ratio > 100) {
|
|
|
+ data.ratio = 100 - ratio;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
if (node.children && node.children.length > 0) {
|
|
|
setRatio(data, node.children, eventFn);
|
|
|
}
|
|
|
- })
|
|
|
-
|
|
|
+ });
|
|
|
}
|
|
|
//占比改变值改变
|
|
|
function setValue(data, tree) {
|
|
|
tree.forEach((node) => {
|
|
|
-
|
|
|
if (node.id == data.pid) {
|
|
|
- data.value = +(node.value * (data.ratio / 100)).toFixed(2)
|
|
|
+ data.value = +(node.value * (data.ratio / 100)).toFixed(2);
|
|
|
//季度占比改变计算月度目标值
|
|
|
}
|
|
|
if (data.type == '2') {
|
|
|
data.children.forEach((val) => {
|
|
|
- val.value = +(data.value * (val.ratio / 100)).toFixed(2)
|
|
|
+ val.value = +(data.value * (val.ratio / 100)).toFixed(2);
|
|
|
});
|
|
|
}
|
|
|
if (node.children && node.children.length > 0) {
|
|
|
setValue(data, node.children);
|
|
|
}
|
|
|
- })
|
|
|
-
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//设置单位
|
|
|
function setSelect(data, tree) {
|
|
|
tree.forEach((node) => {
|
|
|
-
|
|
|
if (data.id == node.pid) {
|
|
|
- node.unit = data.unit
|
|
|
+ node.unit = data.unit;
|
|
|
node.children.forEach((val) => {
|
|
|
- val.unit = data.unit
|
|
|
+ val.unit = data.unit;
|
|
|
});
|
|
|
}
|
|
|
if (node.children && node.children.length > 0) {
|
|
|
setSelect(data, node.children);
|
|
|
}
|
|
|
- })
|
|
|
-
|
|
|
+ });
|
|
|
}
|
|
|
//改变值
|
|
|
function setValueInput(data, tree) {
|
|
|
tree.forEach((node) => {
|
|
|
-
|
|
|
if (node.pid == data.id) {
|
|
|
- node.value = +(data.value * (node.ratio / 100)).toFixed(2)
|
|
|
+ node.value = +(data.value * (node.ratio / 100)).toFixed(2);
|
|
|
//年度目标值改变月度目标
|
|
|
if (data.type == '1') {
|
|
|
node.children.forEach((val) => {
|
|
|
- val.value = +(node.value * (val.ratio / 100)).toFixed(2)
|
|
|
+ val.value = +(node.value * (val.ratio / 100)).toFixed(2);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
if (node.children && node.children.length > 0) {
|
|
|
setValueInput(data, node.children);
|
|
|
}
|
|
|
- })
|
|
|
-
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 目标值改变递归更新数据
|
|
|
function flattenTree(data, className, tree, eventFn) {
|
|
|
-
|
|
|
if (className == 'ratioInput') {
|
|
|
- setRatio(data, tree, eventFn) //设置占比
|
|
|
- setValue(data, tree) //占比改变值更新
|
|
|
-
|
|
|
+ setRatio(data, tree, eventFn); //设置占比
|
|
|
+ setValue(data, tree); //占比改变值更新
|
|
|
}
|
|
|
if (className == 'select') {
|
|
|
- setSelect(data, tree,) //设置单位
|
|
|
-
|
|
|
+ setSelect(data, tree); //设置单位
|
|
|
}
|
|
|
//目标值改变根据子级占比计算
|
|
|
if (className == 'valueInput') {
|
|
|
- setValueInput(data, tree) //改变值
|
|
|
+ setValueInput(data, tree); //改变值
|
|
|
}
|
|
|
-}
|
|
|
+}
|