client.js
4.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
* @Description: 根据目标适配
* @Date: 2021-12-20 17:01:55
*/
/*
* @Description: 可配置场景对应机构 目标题类型
1 医生
2 等级医院医生
3 基层医疗机构医生
4 零售药店(OTC药店巡店) -D
5 零售药店客户(OTC药店拜访) -D
6 等级医院科室
7 医药商业公司 -D
8 医药商业公司客户 -D
9 医药商业公司客户
10 零售药店客户
11 零售药店
12 医疗商业公司
13 患者
14 医院科室
15 等级医院
16 基层医疗机构
17 代理商
* @Date: 2020-10-22 11:10:39
*/
const mapping = {
1: [
{ label: '客户名称', key: 'fullName', value: '' },
{ label: '医院名称', key: 'hospitalName', value: '' },
{ label: '科室名称', key: 'departmentName', value: '' },
{ label: '职称', key: 'dutyName', value: '' }
],
2: [
{ label: '客户名称', key: 'fullName', value: '' },
{ label: '医院名称', key: 'hospitalName', value: '' },
{ label: '医院等级', key: 'gradeName', value: '' },
{ label: '科室名称', key: 'departmentName', value: '' },
{ label: '职称', key: 'dutyName', value: '' }
],
3: [
{ label: '客户名称', key: 'fullName', value: '' },
{ label: '医疗机构名称', key: 'hospitalName', value: '' },
{ label: '医疗机构类别', key: 'gradeName', value: '' },
{ label: '医疗机构地区', key: 'ssq', value: '' },
{ label: '科室名称', key: 'departmentName', value: '' }
],
9: [
{ label: '客户名称', key: 'officeWorkerName', value: '' },
{ label: '职务', key: 'jobTitle', value: '' },
{ label: '商业公司名称', key: 'fullName', value: '' },
{ label: '公司所在省市区', key: 'ssq', value: '' }
],
10: [
{ label: '客户名称', key: 'officeWorkerName', value: '' },
{ label: '职务', key: 'jobTitle', value: '' },
{ label: '药店名称', key: 'fullName', value: '' },
{ label: '药店所在省市区', key: 'ssq', value: '' }
],
13: [
{ label: '患者姓名', key: 'fullName', value: '' },
{ label: '性别', key: 'sex', value: '' },
{ label: '出生年月', key: 'birthday', value: '' },
{ label: '手机号', key: 'phone', value: '' }
],
17: [
{ label: '客户姓名', key: 'fullName', value: '' },
{ label: '业务领域', key: 'agentAreaName', value: '' },
{ label: '擅长领域', key: 'agentProductName', value: '' },
{ label: '擅长终端', key: 'agentTerminalName', value: '' }
],
6: [
{ label: '医院名称', key: 'hospitalName', value: '' },
{ label: '医院等级', key: 'gradeName', value: '' },
{ label: '科室名称', key: 'departmentName', value: '' }
],
14: [
{ label: '医院名称', key: 'hospitalName', value: '' },
{ label: '科室名称', key: 'departmentName', value: '' }
],
15: [
{ label: '医院名称', key: 'hospitalName', value: '' },
{ label: '医院等级', key: 'gradeName', value: '' },
{ label: '医院地区', key: 'ssq', value: '' },
{ label: '地址详情', key: 'address', value: '' }
],
16: [
{ label: '医疗机构名称', key: 'hospitalName', value: '' },
{ label: '医疗机构类别', key: 'gradeName', value: '' },
{ label: '医疗机构地区', key: 'ssq', value: '' },
{ label: '医疗机构地址详情', key: 'address', value: '' }
],
11: [
{ label: '药店名称', key: 'fullName', value: '' },
{ label: '药店所在省市区', key: 'ssq', value: '' },
{ label: '药店地址详情', key: 'address', value: '' }
],
12: [
{ label: '医药商业公司名称', key: 'fullName', value: '' },
{ label: '公司所在省市区', key: 'ssq', value: '' }
]
};
Object.keys(mapping).forEach(k => {
let common = [
{ label: '拜访时间', key: 'visitDt', visitDt: '' },
{ label: '数字拜访途径', key: 'visitType', value: '' },
{ label: '客户反馈时间', key: 'feedbackDt', value: '' },
{ label: '客户反馈', key: 'feedbackContent', value: '' }
];
common.forEach(i => {
mapping[k].push(i);
});
});
const validTargets = Object.keys(mapping);
/**
* @description: 根据类型适配字段
* @param {number} target 当前目标类型
* @param {object} data 当前数据
* @return {array} 匹配后数据
*/
export default (target, data) => {
if (!validTargets.includes(target + '')) {
throw new Error('invalid target: ' + target);
}
if (Object.prototype.toString.call(data) !== '[object Object]') {
throw new Error('invalid data');
}
return mapping[target].map(item => ({ ...item, value: data[item.key] }));
};