educode_sales 0.6.5 → 0.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/educode_sales/activities_controller.rb +0 -2
- data/app/controllers/educode_sales/businesses_controller.rb +257 -41
- data/app/controllers/educode_sales/customers_controller.rb +47 -14
- data/app/controllers/educode_sales/home_controller.rb +6 -0
- data/app/controllers/educode_sales/money_plans_controller.rb +2 -2
- data/app/controllers/educode_sales/sale_trends_controller.rb +107 -18
- data/app/controllers/educode_sales/staffs_controller.rb +29 -0
- data/app/controllers/educode_sales/teacher_follows_controller.rb +1 -93
- data/app/models/educode_sales/business_export_record.rb +5 -0
- data/app/models/educode_sales/customer_add.rb +4 -0
- data/app/models/educode_sales/staff.rb +1 -0
- data/app/models/educode_sales/staff_school.rb +6 -0
- data/app/views/educode_sales/activities/index.html.erb +7 -1
- data/app/views/educode_sales/activities/new.html.erb +1 -1
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +4 -4
- data/app/views/educode_sales/businesses/edit_plan.html.erb +5 -2
- data/app/views/educode_sales/businesses/export_records.html.erb +53 -0
- data/app/views/educode_sales/businesses/export_records.json.jbuilder +11 -0
- data/app/views/educode_sales/businesses/get_export_data.json.jbuilder +30 -0
- data/app/views/educode_sales/businesses/index.html.erb +138 -49
- data/app/views/educode_sales/businesses/index.json.jbuilder +8 -7
- data/app/views/educode_sales/businesses/new_follow_record.html.erb +6 -6
- data/app/views/educode_sales/commons/index.html.erb +7 -1
- data/app/views/educode_sales/customers/index.html.erb +30 -1
- data/app/views/educode_sales/customers/index.json.jbuilder +12 -0
- data/app/views/educode_sales/customers/new.html.erb +106 -53
- data/app/views/educode_sales/home/staff_schools.json.jbuilder +9 -0
- data/app/views/educode_sales/money_plans/index.html.erb +2 -2
- data/app/views/educode_sales/places/index.json.jbuilder +1 -1
- data/app/views/educode_sales/roles/edit.html.erb +10 -4
- data/app/views/educode_sales/roles/index.html.erb +7 -1
- data/app/views/educode_sales/sale_trends/trends.html.erb +96 -44
- data/app/views/educode_sales/sale_trends/trends.json.jbuilder +2 -1
- data/app/views/educode_sales/sales/index.json.jbuilder +1 -1
- data/app/views/educode_sales/staffs/edit.html.erb +45 -0
- data/app/views/educode_sales/staffs/index.html.erb +68 -2
- data/app/views/educode_sales/teachers/index.html.erb +2 -2
- data/app/views/layouts/educode_sales/application.html.erb +6 -1
- data/config/routes.rb +4 -0
- data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +2 -0
- data/db/migrate/20220121060006_create_educode_sales_business_export_records.rb +10 -0
- data/db/migrate/20220125013811_create_educode_sales_staff_schools.rb +10 -0
- data/db/migrate/20220125033552_create_educode_sales_customer_adds.rb +9 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +12 -2
@@ -60,13 +60,13 @@
|
|
60
60
|
<div class="layui-inline show_item" style="display:none;">
|
61
61
|
<label class="layui-form-label">创建时间</label>
|
62
62
|
<div class="layui-input-inline">
|
63
|
-
<input type="text" class="layui-input" id="date" name="date" placeholder=" - ">
|
63
|
+
<input type="text" class="layui-input" id="date" name="date" placeholder=" - " autocomplete="off">
|
64
64
|
</div>
|
65
65
|
</div>
|
66
66
|
<div class="layui-inline show_item" style="display:none;">
|
67
67
|
<label class="layui-form-label">招标时间</label>
|
68
68
|
<div class="layui-input-inline">
|
69
|
-
<input type="text" class="layui-input" id="invitation_at" name="invitation_at" placeholder=" - ">
|
69
|
+
<input type="text" class="layui-input" id="invitation_at" name="invitation_at" placeholder=" - " autocomplete="off">
|
70
70
|
</div>
|
71
71
|
</div>
|
72
72
|
<div class="layui-inline">
|
@@ -74,8 +74,8 @@
|
|
74
74
|
</button>
|
75
75
|
<button type="submit" id="search_bt" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">搜索
|
76
76
|
</button>
|
77
|
-
<
|
78
|
-
</
|
77
|
+
<a style="padding-left: 20px;color: #0000FF" href="javascript:;" type="submit" class="" lay-submit lay-filter="show_hide">高级搜索
|
78
|
+
</a>
|
79
79
|
</div>
|
80
80
|
</div>
|
81
81
|
</form>
|
@@ -88,6 +88,7 @@
|
|
88
88
|
<script type="text/html" id="bussinessBar">
|
89
89
|
<div class="layui-btn-container">
|
90
90
|
<span class="table-label">商机列表</span>
|
91
|
+
<button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm data-count-edit export_more-btn pull-right" style="color: #0000FF;" data-name="export" data-id="export">导出<i class="layui-icon layui-icon-down layui-nav-more"></i></button>
|
91
92
|
<% if can? :create, EducodeSales::Business %>
|
92
93
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加商机</button>
|
93
94
|
<% end %>
|
@@ -203,12 +204,13 @@
|
|
203
204
|
|
204
205
|
|
205
206
|
table = layui.table;
|
206
|
-
table.render({
|
207
|
+
var business_table = table.render({
|
207
208
|
elem: '#businesses_table',
|
208
209
|
url: '/missions/businesses',
|
209
210
|
where: {q: form.val('search_form')},
|
210
211
|
defaultToolbar: ['filter'],
|
211
212
|
toolbar: '#bussinessBar',
|
213
|
+
title: '商机数据表',
|
212
214
|
totalRow: true,//开启合并行
|
213
215
|
cols: [
|
214
216
|
[
|
@@ -328,11 +330,21 @@
|
|
328
330
|
sort: true,
|
329
331
|
totalRow: true
|
330
332
|
},
|
333
|
+
{
|
334
|
+
field: 'return_money_days',
|
335
|
+
width: 150,
|
336
|
+
title: '首次回款周期(天)',
|
337
|
+
},
|
331
338
|
{
|
332
339
|
field: 'place',
|
333
340
|
width: 160,
|
334
341
|
title: '渠道',
|
335
342
|
},
|
343
|
+
{
|
344
|
+
field: 'year',
|
345
|
+
width: 105,
|
346
|
+
title: '所属年度',
|
347
|
+
},
|
336
348
|
{
|
337
349
|
title: '操作',
|
338
350
|
minWidth: 170,
|
@@ -348,12 +360,16 @@
|
|
348
360
|
page: true,
|
349
361
|
skin: 'line',
|
350
362
|
done: function (res) {
|
351
|
-
|
363
|
+
exportData=res.data;
|
364
|
+
console.log(exportData);
|
365
|
+
drowpdwonRender()
|
366
|
+
export_drowpdwonRender()
|
352
367
|
}
|
353
368
|
|
354
369
|
});
|
355
370
|
|
356
371
|
var dropmenu = gon.menus;
|
372
|
+
var export_dropmenu = gon.export_menus;
|
357
373
|
|
358
374
|
drowpdwonRender = function() {
|
359
375
|
dropdown.render({
|
@@ -386,6 +402,118 @@
|
|
386
402
|
});
|
387
403
|
}
|
388
404
|
|
405
|
+
export_drowpdwonRender = function() {
|
406
|
+
dropdown.render({
|
407
|
+
elem: '.export_more-btn',
|
408
|
+
data: export_dropmenu,
|
409
|
+
click: function(data, othis){
|
410
|
+
var elem = $(this.elem);
|
411
|
+
id = elem.data('id');
|
412
|
+
switch (data.event) {
|
413
|
+
case 'export_csv':
|
414
|
+
export_csv();
|
415
|
+
break;
|
416
|
+
case 'export_excel':
|
417
|
+
export_excel();
|
418
|
+
break;
|
419
|
+
case 'export_records':
|
420
|
+
export_records();
|
421
|
+
break;
|
422
|
+
}
|
423
|
+
}
|
424
|
+
});
|
425
|
+
}
|
426
|
+
|
427
|
+
function export_csv() {
|
428
|
+
var data = form.val("search_form");
|
429
|
+
var business_type = [];
|
430
|
+
business_type_list.getValue().forEach(function(d) {
|
431
|
+
business_type.push(d.value);
|
432
|
+
})
|
433
|
+
var business_step = [];
|
434
|
+
business_step_list.getValue().forEach(function(d) {
|
435
|
+
business_step.push(d.value);
|
436
|
+
})
|
437
|
+
data.place_id = index_place_list.getValue('valueStr');
|
438
|
+
data.business_type = business_type.toString();
|
439
|
+
data.business_step = business_step.toString();
|
440
|
+
layer.load(0, {});
|
441
|
+
console.log(data);
|
442
|
+
request.authPost("/missions/businesses/get_export_data", {
|
443
|
+
name: data.name,
|
444
|
+
area: data.area,
|
445
|
+
business_step: data.business_step,
|
446
|
+
business_type: data.business_type,
|
447
|
+
date: data.date,
|
448
|
+
department: data.department,
|
449
|
+
invitation_at: data.invitation_at,
|
450
|
+
place_id: data.place_id,
|
451
|
+
select: data.select,
|
452
|
+
staff_id: data.staff_id
|
453
|
+
}, function (res) {
|
454
|
+
console.log(res.data);
|
455
|
+
data = res.data
|
456
|
+
table.exportFile(business_table.config.id,data, 'csv');
|
457
|
+
layer.closeAll('loading');
|
458
|
+
request.get('/missions/businesses/add_export_records?type=csv', {}, function (res) {
|
459
|
+
})
|
460
|
+
})
|
461
|
+
|
462
|
+
}
|
463
|
+
function export_excel() {
|
464
|
+
var data = form.val("search_form");
|
465
|
+
var business_type = [];
|
466
|
+
business_type_list.getValue().forEach(function(d) {
|
467
|
+
business_type.push(d.value);
|
468
|
+
})
|
469
|
+
var business_step = [];
|
470
|
+
business_step_list.getValue().forEach(function(d) {
|
471
|
+
business_step.push(d.value);
|
472
|
+
})
|
473
|
+
data.place_id = index_place_list.getValue('valueStr');
|
474
|
+
data.business_type = business_type.toString();
|
475
|
+
data.business_step = business_step.toString();
|
476
|
+
layer.load(0, {});
|
477
|
+
console.log(data);
|
478
|
+
request.authPost("/missions/businesses/get_export_data", {
|
479
|
+
name: data.name,
|
480
|
+
area: data.area,
|
481
|
+
business_step: data.business_step,
|
482
|
+
business_type: data.business_type,
|
483
|
+
date: data.date,
|
484
|
+
department: data.department,
|
485
|
+
invitation_at: data.invitation_at,
|
486
|
+
place_id: data.place_id,
|
487
|
+
select: data.select,
|
488
|
+
staff_id: data.staff_id
|
489
|
+
}, function (res) {
|
490
|
+
console.log(res.data);
|
491
|
+
data = res.data
|
492
|
+
table.exportFile(business_table.config.id,data, 'xls');
|
493
|
+
layer.closeAll('loading');
|
494
|
+
request.get('/missions/businesses/add_export_records?type=xls', {}, function (res) {
|
495
|
+
})
|
496
|
+
})
|
497
|
+
|
498
|
+
}
|
499
|
+
function export_records() {
|
500
|
+
var content = miniPage.getHrefContent('/missions/businesses/export_records')
|
501
|
+
var openWH = miniPage.getOpenWidthHeight();
|
502
|
+
sindex = layer.open({
|
503
|
+
title: '·',
|
504
|
+
type: 1,
|
505
|
+
shade: 0.2,
|
506
|
+
maxmin: true,
|
507
|
+
shadeClose: true,
|
508
|
+
area: [openWH[0] + 'px', openWH[1] + 'px'],
|
509
|
+
offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
510
|
+
content: content
|
511
|
+
});
|
512
|
+
$(window).on("resize", function () {
|
513
|
+
layer.full(sindex);
|
514
|
+
});
|
515
|
+
}
|
516
|
+
|
389
517
|
function week(id) {
|
390
518
|
var content = miniPage.getHrefContent('/missions/plans/new_week?business_id=' + id);
|
391
519
|
var openWH = miniPage.getOpenWidthHeight();
|
@@ -551,50 +679,11 @@
|
|
551
679
|
name: '', department: '', staff_id: '', business_type: '', business_step: '',
|
552
680
|
place_id: '', date: '', area: '', invitation_at: ''
|
553
681
|
})
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
icon: 'hidden',
|
558
|
-
label: {
|
559
|
-
type: 'text',
|
560
|
-
text: {
|
561
|
-
//左边拼接的字符
|
562
|
-
left: '',
|
563
|
-
//右边拼接的字符
|
564
|
-
right: '',
|
565
|
-
//中间的分隔符
|
566
|
-
separator: ', ',
|
567
|
-
},
|
568
|
-
}
|
569
|
-
},
|
570
|
-
remoteSearch: true,
|
571
|
-
clickClose: true,
|
572
|
-
delay: 1000,
|
573
|
-
paging: true,
|
574
|
-
radio: true,
|
575
|
-
pageRemote: true,
|
576
|
-
filterable: true,
|
577
|
-
remoteMethod: function (val, cb, show, pageIndex) {
|
578
|
-
$.ajax( '/missions/sales_place', {
|
579
|
-
method: 'get',
|
580
|
-
data: {
|
581
|
-
q: val,
|
582
|
-
page: pageIndex
|
583
|
-
},
|
584
|
-
dataType: 'json',
|
585
|
-
success: function (res) {
|
586
|
-
var data = res.data;
|
587
|
-
if (res.code == 0) {
|
588
|
-
cb(res.data, res.count);
|
589
|
-
} else {
|
590
|
-
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
591
|
-
}
|
682
|
+
business_type_list.setValue([])
|
683
|
+
business_step_list.setValue([])
|
684
|
+
index_place_list.setValue([])
|
592
685
|
|
593
|
-
|
594
|
-
})
|
595
|
-
}
|
596
|
-
})
|
597
|
-
return false;
|
686
|
+
return false;
|
598
687
|
});
|
599
688
|
|
600
689
|
table.on('toolbar(businesses_table)', function (obj) {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
follow_count = 0
|
2
2
|
json.data do
|
3
3
|
json.array! @businesses do |d|
|
4
4
|
json.id d.id
|
@@ -6,21 +6,22 @@ json.data do
|
|
6
6
|
json.department d.department.name
|
7
7
|
json.school d.department.school.name
|
8
8
|
json.school_id d.department.school.id
|
9
|
-
|
10
|
-
follow_ups_count
|
9
|
+
follow_ups_count = d.follow_ups.where(deleted_at: nil).size
|
10
|
+
json.follow_ups_count follow_ups_count
|
11
|
+
follow_count += follow_ups_count
|
11
12
|
json.follow_up_id d.last_follow_up_id
|
12
|
-
# json.teachers_count d.follow_ups.sum(:key_people_count)
|
13
|
-
# json.teachers_count EducodeSales::FollowUp.order(created_at: :desc).find_by(business_id: d.id).present? ? EducodeSales::FollowUp.order(created_at: :desc).find_by(business_id: d.id).key_people_count : 0
|
14
13
|
json.clazz d.last_follow_up&.clazz&.name || ""
|
15
14
|
json.stage d.last_follow_up&.stage&.name
|
16
15
|
json.invitation_at d.last_follow_up&.invitation_at.to_s
|
17
16
|
json.reception_at d.last_follow_up&.reception_at.to_s
|
18
17
|
json.bidded_date d.last_follow_up&.bidded_date.to_s
|
19
18
|
json.signed_date d.last_follow_up&.signed_date.to_s
|
19
|
+
json.year d.last_follow_up&.year.to_s
|
20
20
|
json.total_amount d.last_follow_up&.total_amount
|
21
21
|
json.actual_amount d.last_follow_up&.actual_amount
|
22
22
|
json.return_money d.return_money
|
23
|
-
json.wait_return_money d.wait_return_money
|
23
|
+
json.wait_return_money d.wait_return_money.to_i.round(2)
|
24
|
+
json.return_money_days d.last_follow_up&.reception_at.present? && d.last_follow_up.money_plans.where(clazz: '已完成').present? ? (d.last_follow_up.money_plans.where(clazz: '已完成').order(created_at: :asc).first.date_at.to_s(:date).to_date - d.last_follow_up&.reception_at).to_i : ''
|
24
25
|
json.place d.last_follow_up&.place&.name
|
25
26
|
json.last_follow_person d.last_follow_up.present? ? d.last_follow_up.staff.user.real_name : EducodeSales::Staff.find(d.staff_id).user.real_name
|
26
27
|
json.source d.source
|
@@ -32,7 +33,7 @@ json.data do
|
|
32
33
|
end
|
33
34
|
|
34
35
|
json.totalRow do
|
35
|
-
json.follow_ups_count
|
36
|
+
json.follow_ups_count follow_count.to_i.to_s
|
36
37
|
end
|
37
38
|
json.code 0
|
38
39
|
json.count @businesses.total_count
|
@@ -87,10 +87,9 @@
|
|
87
87
|
<br>
|
88
88
|
<div class="layui-inline new_place_select">
|
89
89
|
<label class="layui-form-label">渠道</label>
|
90
|
-
<div class="layui-input-inline" style="
|
90
|
+
<div class="layui-input-inline" style="">
|
91
91
|
<div id="place" style="width: 190px;"></div>
|
92
92
|
</div>
|
93
|
-
总额里,渠道拿到的部分。
|
94
93
|
</div>
|
95
94
|
<br>
|
96
95
|
<div class="layui-inline">
|
@@ -98,6 +97,7 @@
|
|
98
97
|
<div class="layui-input-inline">
|
99
98
|
<input name="divide_amount" class="layui-input" value="<%= @last_follow_up&.divide_amount%>">
|
100
99
|
</div>
|
100
|
+
总额里,渠道拿到的部分。
|
101
101
|
</div>
|
102
102
|
<div class="layui-form-item">
|
103
103
|
<div class="layui-inline">
|
@@ -110,10 +110,10 @@
|
|
110
110
|
</div>
|
111
111
|
<div class="layui-form-item">
|
112
112
|
<label class="layui-form-label">指定跟进人</label>
|
113
|
-
<div class="layui-input-inline" >
|
113
|
+
<div class="layui-input-inline" style="">
|
114
114
|
<div id="assign_follow" style="width: 512px;"></div>
|
115
115
|
</div>
|
116
|
-
<div class="layui-inline" style="padding: 9px 15px">
|
116
|
+
<div class="layui-inline" style="padding: 9px 15px;z-index: -1;">
|
117
117
|
<label class="layui-form-label" style="padding-left: 220px"></label>
|
118
118
|
指定跟进人和商机创建者,同时拥有对该商机的管理权限
|
119
119
|
</div>
|
@@ -143,12 +143,11 @@
|
|
143
143
|
</div>
|
144
144
|
<div class="layui-form-item m-t-20">
|
145
145
|
<div class="layui-input-block">
|
146
|
-
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="add_follow_up">提交</button>
|
146
|
+
<button class="layui-btn layui-btn-normal submit-btn" lay-submit lay-filter="add_follow_up">提交</button>
|
147
147
|
</div>
|
148
148
|
</div>
|
149
149
|
</div>
|
150
150
|
</div>
|
151
|
-
</div>
|
152
151
|
|
153
152
|
<script>
|
154
153
|
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'laydate', 'xmSelect'], function () {
|
@@ -249,6 +248,7 @@
|
|
249
248
|
form.render();
|
250
249
|
|
251
250
|
form.on('submit(add_follow_up)', function (data) {
|
251
|
+
$(".submit-btn").addClass("layui-hide");
|
252
252
|
var assign_follow = [];
|
253
253
|
sales_list.getValue().forEach(function(d) {
|
254
254
|
assign_follow.push(d.value);
|
@@ -25,7 +25,12 @@
|
|
25
25
|
<!-- <input type="text" class="layui-input" id="date" name="date" placeholder=" - ">-->
|
26
26
|
<!-- </div>-->
|
27
27
|
<!-- </div>-->
|
28
|
-
|
28
|
+
<div class="layui-inline">
|
29
|
+
<label class="layui-form-label">性质</label>
|
30
|
+
<div class="layui-input-inline">
|
31
|
+
<div id="property" style="width: 190px;"></div>
|
32
|
+
</div>
|
33
|
+
</div>
|
29
34
|
<div class="layui-inline">
|
30
35
|
<button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
|
31
36
|
</button>
|
@@ -94,6 +99,19 @@
|
|
94
99
|
// window.onload=hn;
|
95
100
|
// });
|
96
101
|
|
102
|
+
var property_list = xmSelect.render({
|
103
|
+
el: '#property',
|
104
|
+
data: [
|
105
|
+
{value: 0, name: '985工程'},
|
106
|
+
{value: 1, name: '211工程'},
|
107
|
+
{value: 2, name: '本科院校'},
|
108
|
+
{value: 3, name: '大专院校'},
|
109
|
+
{value: 4, name: '中专学校'},
|
110
|
+
{value: 5, name: '军事院校'},
|
111
|
+
{value: 6, name: '企业'}
|
112
|
+
]
|
113
|
+
})
|
114
|
+
|
97
115
|
laydate.render({
|
98
116
|
elem: '#date',
|
99
117
|
range: true
|
@@ -129,6 +147,11 @@
|
|
129
147
|
width: 100,
|
130
148
|
title: '区域',
|
131
149
|
},
|
150
|
+
{
|
151
|
+
field: 'property',
|
152
|
+
width: 200,
|
153
|
+
title: '性质',
|
154
|
+
},
|
132
155
|
{
|
133
156
|
field: 'department',
|
134
157
|
width: 100,
|
@@ -238,6 +261,11 @@
|
|
238
261
|
|
239
262
|
// 监听搜索操作
|
240
263
|
form.on('submit(search_teachers)', function (data) {
|
264
|
+
var property = [];
|
265
|
+
property_list.getValue().forEach(function(d) {
|
266
|
+
property.push(d.value);
|
267
|
+
})
|
268
|
+
data.field.property = property.toString();
|
241
269
|
search = data.field
|
242
270
|
table.reload('customers_table', {
|
243
271
|
page: {
|
@@ -263,6 +291,7 @@
|
|
263
291
|
assist: "",
|
264
292
|
teacher_source: ""
|
265
293
|
});
|
294
|
+
property_list.setValue([])
|
266
295
|
return false;
|
267
296
|
});
|
268
297
|
/**
|
@@ -14,6 +14,18 @@ json.data do
|
|
14
14
|
json.id d.id
|
15
15
|
json.name d.name
|
16
16
|
json.area d.province
|
17
|
+
school_property = d.school_property
|
18
|
+
property = []
|
19
|
+
if school_property.present?
|
20
|
+
property << '985工程' if school_property.project_985
|
21
|
+
property << '211工程' if school_property.project_211
|
22
|
+
property << '本科院校' if school_property.regular_college
|
23
|
+
property << '大专院校' if school_property.junior_college
|
24
|
+
property << '中专学校' if school_property.secondary_school
|
25
|
+
property << '军事院校' if school_property.military_school
|
26
|
+
property << '企业' if school_property.enterprise
|
27
|
+
end
|
28
|
+
json.property property.join("、")
|
17
29
|
json.department d.departments.size
|
18
30
|
json.business EducodeSales::Business.joins(:last_follow_up).where("educode_sales_follow_ups.clazz_id != ?", x).where("educode_sales_businesses.school_id = ?", d.id).size
|
19
31
|
json.follow follow_ups.size + customer_follows.size
|
@@ -1,53 +1,67 @@
|
|
1
|
+
<!--<form class="layui-form layuimini-form" id="custom_data" data-required="true" action="">-->
|
2
|
+
<!-- <div class="layui-form-item" style="padding: 25px">-->
|
3
|
+
<!-- <div class="layui-inline">-->
|
4
|
+
<!-- <label class="layui-form-label required">客户:</label>-->
|
5
|
+
<!-- <div class="layui-input-block" style="width: 500px;">-->
|
6
|
+
<!-- <input type="text" name="name" lay-verify="required" placeholder="请输入客户" autocomplete="off"-->
|
7
|
+
<!-- class="layui-input" id="inputFocus">-->
|
8
|
+
<!-- </div>-->
|
9
|
+
<!-- </div>-->
|
10
|
+
<!-- <br>-->
|
11
|
+
<!-- <div class="layui-inline city_input">-->
|
12
|
+
<!-- <label class="layui-form-label ">省:</label>-->
|
13
|
+
<!-- <div class="layui-input-block" style="width: 500px;">-->
|
14
|
+
<!-- <select id="province" class="province layui-input"></select>-->
|
15
|
+
<!-- </div>-->
|
16
|
+
<!-- </div>-->
|
17
|
+
<!-- <br>-->
|
18
|
+
<!-- <div class="layui-inline city_input">-->
|
19
|
+
<!-- <label class="layui-form-label ">市:</label>-->
|
20
|
+
<!-- <div class="layui-input-block" style="width: 500px;">-->
|
21
|
+
<!-- <select id="city" class="city layui-input"></select>-->
|
22
|
+
<!-- </div>-->
|
23
|
+
<!-- </div>-->
|
24
|
+
<!-- <br>-->
|
25
|
+
<!-- <div class="layui-inline">-->
|
26
|
+
<!-- <label class="layui-form-label ">地址:</label>-->
|
27
|
+
<!-- <div class="layui-input-block" style="width: 500px;">-->
|
28
|
+
<!-- <input type="text" name="address" autocomplete="off"-->
|
29
|
+
<!-- class="layui-input" placeholder="请输入地址" >-->
|
30
|
+
<!-- </div>-->
|
31
|
+
<!-- </div>-->
|
32
|
+
<!-- <br>-->
|
33
|
+
<!-- <div class="layui-form-item">-->
|
34
|
+
<!-- <label class="layui-form-label">学校性质:</label>-->
|
35
|
+
<!-- <div class="layui-input-block">-->
|
36
|
+
<!-- <input type="checkbox" name="project_985" lay-skin="primary" value="1" title="985工程">-->
|
37
|
+
<!-- <input type="checkbox" name="project_211" lay-skin="primary" value="1" title="211工程" >-->
|
38
|
+
<!-- <input type="checkbox" name="regular_college" lay-skin="primary" value="1" title="本科院校">-->
|
39
|
+
<!-- </div>-->
|
40
|
+
<!-- </div>-->
|
41
|
+
<!-- <div class="layui-form-item">-->
|
42
|
+
<!-- <div class="layui-input-block">-->
|
43
|
+
<!-- <input type="checkbox" name="junior_college" lay-skin="primary" value="1" title="大专院校">-->
|
44
|
+
<!-- <input type="checkbox" name="secondary_school" lay-skin="primary" value="1" title="中专院校" >-->
|
45
|
+
<!-- <input type="checkbox" name="military_school" lay-skin="primary" value="1" title="军事院校">-->
|
46
|
+
<!-- </div>-->
|
47
|
+
<!-- </div>-->
|
48
|
+
<!-- <div class="layui-form-item">-->
|
49
|
+
<!-- <div class="layui-input-block">-->
|
50
|
+
<!-- <input type="checkbox" name="enterprise" lay-skin="primary" value="1" title="企业">-->
|
51
|
+
<!-- </div>-->
|
52
|
+
<!-- </div>-->
|
53
|
+
<!-- <div class="layui-inline" style="padding-left: 120px">-->
|
54
|
+
<!-- <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-reset-btn">提交-->
|
55
|
+
<!-- </button>-->
|
56
|
+
<!-- </div>-->
|
57
|
+
<!-- </div>-->
|
58
|
+
<!--</form>-->
|
1
59
|
<form class="layui-form layuimini-form" id="custom_data" data-required="true" action="">
|
2
60
|
<div class="layui-form-item" style="padding: 25px">
|
3
|
-
<div class="layui-
|
4
|
-
<label class="layui-form-label
|
5
|
-
<div class="layui-input-
|
6
|
-
<
|
7
|
-
class="layui-input" id="inputFocus">
|
8
|
-
</div>
|
9
|
-
</div>
|
10
|
-
<br>
|
11
|
-
<div class="layui-inline city_input">
|
12
|
-
<label class="layui-form-label ">省:</label>
|
13
|
-
<div class="layui-input-block" style="width: 500px;">
|
14
|
-
<select id="province" class="province layui-input"></select>
|
15
|
-
</div>
|
16
|
-
</div>
|
17
|
-
<br>
|
18
|
-
<div class="layui-inline city_input">
|
19
|
-
<label class="layui-form-label ">市:</label>
|
20
|
-
<div class="layui-input-block" style="width: 500px;">
|
21
|
-
<select id="city" class="city layui-input"></select>
|
22
|
-
</div>
|
23
|
-
</div>
|
24
|
-
<br>
|
25
|
-
<div class="layui-inline">
|
26
|
-
<label class="layui-form-label ">地址:</label>
|
27
|
-
<div class="layui-input-block" style="width: 500px;">
|
28
|
-
<input type="text" name="address" autocomplete="off"
|
29
|
-
class="layui-input" placeholder="请输入地址" >
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
<br>
|
33
|
-
<div class="layui-form-item">
|
34
|
-
<label class="layui-form-label">学校性质:</label>
|
35
|
-
<div class="layui-input-block">
|
36
|
-
<input type="checkbox" name="project_985" lay-skin="primary" value="1" title="985工程">
|
37
|
-
<input type="checkbox" name="project_211" lay-skin="primary" value="1" title="211工程" >
|
38
|
-
<input type="checkbox" name="regular_college" lay-skin="primary" value="1" title="本科院校">
|
39
|
-
</div>
|
40
|
-
</div>
|
41
|
-
<div class="layui-form-item">
|
42
|
-
<div class="layui-input-block">
|
43
|
-
<input type="checkbox" name="junior_college" lay-skin="primary" value="1" title="大专院校">
|
44
|
-
<input type="checkbox" name="secondary_school" lay-skin="primary" value="1" title="中专院校" >
|
45
|
-
<input type="checkbox" name="military_school" lay-skin="primary" value="1" title="军事院校">
|
46
|
-
</div>
|
47
|
-
</div>
|
48
|
-
<div class="layui-form-item">
|
49
|
-
<div class="layui-input-block">
|
50
|
-
<input type="checkbox" name="enterprise" lay-skin="primary" value="1" title="企业">
|
61
|
+
<div class="layui-form-item" >
|
62
|
+
<label class="layui-form-label">学校</label>
|
63
|
+
<div class="layui-input-inline" style="">
|
64
|
+
<div id="edit_assign_follow" style="width: 1140px;"></div>
|
51
65
|
</div>
|
52
66
|
</div>
|
53
67
|
<div class="layui-inline" style="padding-left: 120px">
|
@@ -56,10 +70,7 @@
|
|
56
70
|
</div>
|
57
71
|
</div>
|
58
72
|
</form>
|
59
|
-
|
60
|
-
|
61
73
|
<script>
|
62
|
-
document.getElementById("inputFocus").focus();
|
63
74
|
|
64
75
|
layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'selectInput', 'transfer'], function () {
|
65
76
|
var form = layui.form,
|
@@ -75,6 +86,39 @@
|
|
75
86
|
// 当前弹出层,防止ID被覆盖
|
76
87
|
var parentIndex = layer.index;
|
77
88
|
|
89
|
+
var sales_list = xmSelect.render({
|
90
|
+
el: '#edit_assign_follow',
|
91
|
+
remoteSearch: true,
|
92
|
+
autoRow: true,
|
93
|
+
// clickClose: true,
|
94
|
+
delay: 1000,
|
95
|
+
tips: '支持名称/省份搜索,请至少输入一个字符',
|
96
|
+
searchTips: '支持名称/省份搜索,请至少输入一个字符',
|
97
|
+
paging: true,
|
98
|
+
pageRemote: true,
|
99
|
+
filterable: true,
|
100
|
+
remoteMethod: function (val, cb, show, pageIndex) {
|
101
|
+
if(!val){
|
102
|
+
return cb([]);
|
103
|
+
}
|
104
|
+
$.ajax( '/missions/staff_schools', {
|
105
|
+
method: 'get',
|
106
|
+
data: {
|
107
|
+
q: val,
|
108
|
+
page: pageIndex
|
109
|
+
},
|
110
|
+
dataType: 'json',
|
111
|
+
success: function (res) {
|
112
|
+
var data = res.data;
|
113
|
+
if (res.code == 0) {
|
114
|
+
cb(res.data, res.count);
|
115
|
+
} else {
|
116
|
+
layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
|
117
|
+
}
|
118
|
+
}
|
119
|
+
})
|
120
|
+
}
|
121
|
+
})
|
78
122
|
|
79
123
|
var dataCustom = [
|
80
124
|
{
|
@@ -338,8 +382,17 @@
|
|
338
382
|
});
|
339
383
|
//监听提交
|
340
384
|
form.on('submit(data-reset-btn)', function (data) {
|
341
|
-
|
342
|
-
|
385
|
+
var schools = [];
|
386
|
+
sales_list.getValue().forEach(function(d) {
|
387
|
+
schools.push(d.value);
|
388
|
+
})
|
389
|
+
if (schools.length == 0) {
|
390
|
+
layer.alert("请选择学校");
|
391
|
+
return false;
|
392
|
+
}
|
393
|
+
data.field['school_ids'] = schools;
|
394
|
+
// data.field.province = $("#province option:selected").text(); //获取选中的项
|
395
|
+
// data.field.city = $("#city option:selected").text(); //获取选中的项
|
343
396
|
console.log(data.field);
|
344
397
|
request.authPost("missions/customers", data.field, function (res) {
|
345
398
|
if (res.success === false) {
|
@@ -28,7 +28,7 @@
|
|
28
28
|
<div class="layui-inline">
|
29
29
|
<label class="layui-form-label">回款时间</label>
|
30
30
|
<div class="layui-input-inline">
|
31
|
-
<input type="text" class="layui-input" id="date" name="date" placeholder=" - ">
|
31
|
+
<input type="text" class="layui-input" id="date" name="date" placeholder=" - " autocomplete="off">
|
32
32
|
</div>
|
33
33
|
</div>
|
34
34
|
<div class="layui-inline">
|
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
<script type="text/html" id="toolbarDemo">
|
45
45
|
<div class="layui-btn-container">
|
46
|
-
<span class="table-label"
|
46
|
+
<span class="table-label">回款计划</span>
|
47
47
|
</div>
|
48
48
|
</script>
|
49
49
|
|