comonOtherUtil.js
16.1 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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
import React,{ PropTypes } from 'react';
import areaData from './areaData';
import _ from 'lodash';
import moment from 'moment';
export const baseOptions = [//后道 - 实缴模板设置 :基数是否相同
{name:'相同',id:'y'},
{name:'不相同',id:'n'},
]
export const hasFeeSourceOptions = [//后道 - 实缴模板设置 :是否存在缴费对象列
{name:'存在',id:'y'},
{name:'不存在',id:'n'},
]
export const person_order_status_keys = {//自由社保 - 订单列表 - 订单状态
'paying' : '待支付',
'finishing' : '待完成',
'finished' : '已完成',
'canceled' : '已终止',
'payment' : '支付中',
'paypart' : '部分支付',
'recall' : '已取消',
};
export const refund_status_keys = {//自由社保 - 取消订单 - 退款状态
'no_refund' : '无需退款',
// 'part_refund' : '部分退款',
'refund' : '已退款',
'has_refund' : '未退款',
};
export const refundStatusOption = [//自由社保 - 取消订单 - 退款状态
{name:'无需退款',id:'no_refund'},
{name:'已退款',id:'refund'},
{name:'未退款',id:'has_refund'},
];
export const isArrayFn = (val) => {
return Object.prototype.toString.call(val) === '[object Array]';
}
export const put_record = {//后道办理 - 人员列表 - 备案状态
'need' : '未办理',
'non_need': '不需要备案',
'success' : '备案成功',
'failed' : '备案失败',
};
export const putRecordOptions = [//后道办理 - 人员列表 - 备案状态下拉选项
{name:'未办理',id:'need'},
{name:'备案成功',id:'success'},
{name:'备案失败',id:'failed'},
{name:'不需要备案',id:'non_need'},
];
export const serviceFeeOptions = [//自由社保 - 收取服务费方式
{name:'按月收取',id:'month'},
{name:'按固定费用收取',id:'fixed'}
];
export const remarkOptions = [//自由社保 - 用户管理 - 备注options
{name:'已上班,不购买',id:'已上班,不购买'},
{name:'电话未接听',id:'电话未接听'},
{name:'会继续购买',id:'会继续购买'},
{name:'未确认,之后联系',id:'未确认,之后联系'},
{name:'服务费太高',id:'服务费太高'},
{name:'其他',id:'其他'},
];
export const timeRangeOptions=[//自由社保 - 用户管理 - 筛选条件时间范围
{key:'week',name:'最近一周'},
{key:'half_month',name:'最近15天'},
{key:'month',name:'最近一月'}
];
//自由社保 - 订单来源
export const orderSourceOption=[
{ 'id': 'order_backstate', 'name': '后台下单' },
{ 'id': 'order_active', 'name': '主动下单' }
];
export const order_source_option={
'order_backstate': '后台下单',
'order_active': '主动下单'
};
//地区格式转换
export const formatAreaData = (areas = []) => {
const newAreas = [], tempProvince = {}, tempCity = {}, myAreas = {};
areas.map(data => {
if (data.district_code && data.city_code && data.province_code) {
myAreas[data.province_code + data.city_code + data.district_code] = data;
} else if (data.province_code && data.city_code && !data.district_code) {
myAreas[data.province_code + data.city_code] = data;
}
});
Object.values(myAreas).map(area => {
if (tempCity[area.city_code]) {
if (area.district == '全部') {
tempCity[area.city_code].children.unshift({
"value": area.district_code + '100',
"label": area.district
})
}
else {
if (area.city == '全部'){
tempCity[area.city_code] = {
'value':city_code + '100',
"label":city
}
}else{
tempCity[area.city_code].children.push({
"value": area.district_code,
"label": area.district
})
}
}
}
else {
if (area.district == '全部') {
tempCity[area.city_code] = {
"value": area.city_code,
"label": area.city,
"children": [{
"value": area.district_code + '100',
"label": area.district
}]
}
}
else {
if (area.city == '全部'){
tempCity[area.city_code] = {
"value": area.city_code + '100',
"label": area.city,
}
}else{
tempCity[area.city_code] = {
"value": area.city_code,
"label": area.city,
"children": [{
"value": area.district_code,
"label": area.district
}]
}
}
}
}
if (tempProvince[area.province_code]) {
if (area.city == '全部') {
tempProvince[area.province_code].children.unshift({
"value": area.city_code + '100',
"label": area.city
})
} else {
tempProvince[area.province_code].children.push(tempCity[area.city_code]);
}
} else {
tempProvince[area.province_code] = {
"value": area.province_code,
"label": area.province,
"children": [tempCity[area.city_code]]
}
}
});
return Object.values(tempProvince) || newAreas;
}
export const updateInfoResultOptions = [//信息变更办理结果下拉选项
{ 'id': 'success', 'name': '成功' },
{ 'id': 'failed', 'name': '失败' },
{ 'id': 'noback', 'name': '未反馈' }
];
export const statusOptions = [//参保人状态查询下拉选项
{ 'id': '正常', 'name': '正常' },
{ 'id': '无政策', 'name': '无政策' },
{ 'id': '多政策', 'name': '多政策' },
{ 'id': '待减员', 'name': '待减员' },
{ 'id': '险种异常', 'name': '险种异常' },
];
export const fontAllDataSource = {//接单列表和前道办理详情(前端管理列表) -- 来源
'import' :'导入',
'onboard' :'入职',
'separate' :'离职',
'update_base' :'系统调基',
'increase_split':'增员接单生成',
'increase_fail' :'上月增员失败',
'payback_fail' :'上月补缴失败',
'inc_handle' :'增员异常处理',
'base_handle' :'调基异常处理',
'employee_update' :'雇员变更',
}
export const preBillDataSource = {//接单明细 -- 账单来源
'0' :'办理反馈',
'1' :'实缴导入',
'2' :'接单明细'
}
export const fontRealDataSource = {//前道实缴明细 -- 来源
'0' :'办理反馈',
'1' :'实缴明细'
}
export const companyOutDataSource = {//后道首页列表 -- 来源
'inter' :'前道确认数据',
'ext' :'接口导入',
'ext-import' :'后道导入'
}
export const payCategorys = [//缴费类型(后道实缴模板设置--缴费类型下拉选项)
{ 'id': '1', 'name': '正常汇缴' },
{ 'id': '2', 'name': '补缴' },
{ 'id': '3', 'name': '调基补差' },
{ 'id': '4', 'name': '正常汇缴+补缴' },
{ 'id': '5', 'name': '正常汇缴+调基补差' },
{ 'id': '6', 'name': '补缴+调基补差' },
{ 'id': '7', 'name': '正常汇缴+补缴+调基补差' }
];
export const isTemPolicyOptions = [//设否为临时政策
{ name:'是',id:'y' },
{ name:'否',id:'n' }
];
export const deleteSuffixName = (data) => {//切除文件后缀名
let suffix_name,name;
if(data&&data.lastIndexOf('.')!=-1){
name = data.substring(data.lastIndexOf('.'),data.length);
suffix_name = data.replace(name,'');
}
return suffix_name
}
export const requestText = [
{text:'1. 支持文件后缀 xls、xlsx文件'},
{text:'2. 请将要上传的内容放在第一个sheet中'},
{text:'3. 请不要加密模板文件,将导致错误'},
{text:'4. 请不要上传带宏的文件,将导致错误'},
{text:'5. 请不要过多的使用格式,如背景色和边框,将可能导致超时'},
{text:'6. 导入后只会保留Excel中的数据及通过公式计算后的值,设置的文字颜色等样式、合并的单元格、以及计算公式本身都不会被保留'}
];
export const decreaseReason = [//停保原因、减员原因
{ 'id': '个人原因离职', 'name': '个人原因离职' },
{ 'id': '协商一致解除', 'name': '协商一致解除' },
{ 'id': '公司辞退', 'name': '公司辞退' },
{ 'id': '合同到期', 'name': '合同到期' },
{ 'id': '其他', 'name': '其他' }
];
export const is_pay_sihf = [//是否缴纳社保/公积金
{ 'id': 'y', 'name': '是' },
{ 'id': 'n', 'name': '否' }
];
export const sihf_handle_type = [//社保/公积金是否首次参保
{ 'id': '0', 'name': '新增' },
{ 'id': '1', 'name': '转入' }
];
export const sihfHandleType = {//社保/公积金是否首次参保
'0' :'新增',
'1' :'转入'
};
export const addHandleTypes = [//接单增员 办理方式
{ 'id': '0', 'name': '新增' },
{ 'id': '1', 'name': '转入' }
];
export const allHandleTypes = [//接单社保办理方式
{ 'id': '0', 'name': '新增' },
{ 'id': '1', 'name': '转入' },
{ 'id': '2', 'name': '补缴' },
{ 'id': '3', 'name': '正常汇缴' }
];
export const fontHandleTypes = [//前道 -- 办理方式
{ 'id': '0', 'name': '新增' },
{ 'id': '1', 'name': '转入' },
{ 'id': '2', 'name': '补缴' },
{ 'id': '3', 'name': '正常汇缴' },
{ 'id': '5', 'name': '调基' },
{ 'id': '6', 'name': '调基补差' },
];
export const handleCategoryItems = [//办理类型(导入)
{ 'id': 'increase', 'name': '增员' },
{ 'id': 'decrease', 'name': '减员' },
{ 'id': 'payback', 'name': '补缴' },
{ 'id': 'update_base', 'name': '调基' }
];
export const handle_category_items = {//办理类型(接单明细-人员列表)
'increase' : '增员',
'decrease' : '减员',
'payback' : '补缴',
'update_base': '调基',
'diff' : '调基补差',
'renew' : '正常汇缴'
};
export const formHandleStatus = [//接单办理状态(下拉选项)
{ id: 'wait-confirm', name: '待确认' },
{ id: 'wait-handle', name: '待处理' },
{ id: 'confirm', name: '已确认' },
];
export const idTypes = [//证件类型(下拉选项)
{ 'id': '身份证', 'name': '身份证' },
{ 'id': '护照', 'name': '护照' }
];
export const getStateVal = {//接单列表状态
'wait-confirm':'待确认',
'wait-handle' :'待处理',
'confirm' :'已确认'
}
export const attendStatus = [//考勤状态
{name:'正常',id:'normal'},
// {name:'异常',id:'abnormal'},
{name:'旷工',id:'absence'}
];
export const getInsuranceName = (data) => {
let str = '';
if(data == ""){
return str;
} else if(Array.isArray(data)){
return data.join(',');
}else{
let arr = JSON.parse(data);
if (arr && arr.length > 0) {
str = arr.join(',');
return str;
} else {
return str;
}
}
}
export const hasInsurance = [//是否分险种
{name:'分险种',id:'y'},
{name:'不分险种',id:'n'}
];
export const moveActions = [//候选人管理:候选人批量操作
{ name: '进入待入职', id: 'move_recruit' },
];
export const moveNewActions = [//候选人管理:候选人批量操作
{ name: '进入待入职', id: 'move_recruit' },
{ name: '进入待面试', id: 'move_interview' }
];
export const moveActions_new = [//候选人管理:候选人批量操作
{ name: '邀请面试', id: 'move_interview' },
{ name: '进入体检', id: 'move_physical' },
{ name: '进入待入职', id: 'move_recruit' },
{ name: '放弃', id: 'move_abandon' }
];
export const moveActions_interview = [//候选人管理:待面试批量操作
{ name: '面试合格', id: 'move_success_recruit' },
{ name: '面试不合格', id: 'move_fail_recruit' },
{ name: '进入体检', id: 'move_physical' },
{ name: '进入待入职', id: 'move_recruit' },
{ name: '放弃', id: 'move_abandon' }
];
export const moveActions_checkup = [//候选人管理:待体检批量操作
{ name: '体检合格', id: 'move_recruit' },
{ name: '体检不合格', id: 'move_fail_physical' },
{ name: '进入待入职', id: 'move_recruit' },
{ name: '放弃', id: 'move_abandon' }
];
export const allFeesOptions = [//分险
{ label: '(单险)个人费用', value: 'ins_person_fee' },
{ label: '(单险)企业费用', value: 'ins_ent_fee' },
{ label: '(单险)小计', value: 'ins_fee' },
{ label: '(所有险)个人合计', value: 'total_person_fee' },
{ label: '(所有险)企业合计', value: 'total_ent_fee' },
{ label: '(所有险)总费用', value: 'total_fee' }
];
export const feesOptions = [//不分险
{ label: '(单险)个人费用', value: 'ins_person_fee' },
{ label: '(单险)企业费用', value: 'ins_ent_fee' },
{ label: '(单险)小计', value: 'ins_fee' }
];
export const zhengZhoufeesOptions = [
{ label: '缴费金额', value: 'ins_person_ent_fee' }
];
export const applayStatus = [//日薪发放申请状态
{name:'待处理',id:'processing'},
{name:'待发放',id:'tobeissued'},
{name:'已发放',id:'issued'},
{name:'发放失败',id:'failed'}
];
export const commentOptions = [//候选人备注选项
{ name: '电话无人接听', id: '电话无人接听' },
{ name: '电话为空号', id: '电话为空号' },
{ name: '暂不考虑换工作', id: '暂不考虑换工作' },
{ name: '薪酬太低暂不考虑', id: '薪酬太低暂不考虑' },
{ name: '希望有住宿', id: '希望有住宿' },
{ name: '工作地点较远不考虑', id: '工作地点较远不考虑' },
{ name: '候选人不在招聘所在地,需跟踪联系', id: '候选人不在招聘所在地,需跟踪联系' },
{ name: '其它', id: 'other' },
];
export const diffOptions = [//财务费用状态:抵扣费用
{name:'未抵扣',id:'wait'},
{name:'已抵扣',id:'handled'}
];
export const diffPaybackOptions = [//财务费用状态:补收费用
{name:'未补收',id:'wait'},
{name:'已补收',id:'handled'}
];
export const diffReturnOptions = [//财务费用状态:退款费用
{name:'未退款',id:'wait'},
{name:'已退款',id:'handled'}
];
export const returnTypeOptions = [//财务费用退款方式
{name:'立即退款',id:'now'},
{name:'退到下月工资',id:'next_month'}
];
export const getAllQuery=(handle_type,keysearch,start_month,status)=>{//财务费用处理参数方法
const params=[];
if(handle_type)
params.push("diff_handle_type="+handle_type);
if(keysearch)
params.push("&keysearch="+keysearch);
if(start_month)
params.push("&start_month="+moment(start_month));
if(status)
params.push("&status="+status);
return params.join('')
}
export class NotificationIcon extends React.Component{
render(){
const { type } = this.props;
if(type == 'success'){
return(
<img style={{width:'32px',height:'32px'}} src='/img/成功icon.png'/>
)
}else if(type == 'error'){
return(
<img style={{width:'32px',height:'32px'}} src='/img/错误icon.png'/>
)
}else if(type == 'info'){
return(
<img style={{width:'32px',height:'32px'}} src='/img/信息icon.png'/>
)
}
}
}
export const formatArrayToTableFun = (infoArray=[],column=4)=>{
const arrayLength=infoArray.length,tempArray=[];
let empty=0,subTemp=[];
if(arrayLength%column>0){
empty=column-(arrayLength%column);
}
if(empty>0){
for(let i=0;i<empty;i++){
infoArray.push({
lable:'',
key :'',
type :'empty'
})
}
}
infoArray.map((info,i)=>{
if(i%column==0){
subTemp=[{
lable:info.name,
key :'my_key',
value:info.value,
type :info.type?info.type:'empty',
pay_frequency:info.pay_frequency?info.pay_frequency:'',
pay_type :info.pay_type?info.pay_type:'',
}];
tempArray.push(subTemp);
}else{
subTemp.push({
lable:info.name,
key :'my_key',
value:info.value,
type :info.type?info.type:'empty',
pay_frequency:info.pay_frequency?info.pay_frequency:'',
pay_type :info.pay_type?info.pay_type:'',
});
}
});
return tempArray;
}
export const formartOrgUser = (sharedRecrutiers) => {
const tempArray = [];
const compare = (x, y) => {
// if (x.org < y.org) {
// return 1;
// } else if (x.org > y.org) {
// return -1;
// } else {
// return 0;
// }
return x.org.localeCompare(y.org,"zh");
}
sharedRecrutiers.map((recrutier,i)=>{
const item = Object.assign({}, recrutier);
if(item.org_id){
item.name=item.name+' ('+item.org+')';
}else{
item.name=item.name+' (暂无部门)';
item.org = '暂无部门';
}
tempArray.push(item)
});
return tempArray.sort(compare);
}