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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/educode_sales/activities_controller.rb +0 -2
  3. data/app/controllers/educode_sales/businesses_controller.rb +257 -41
  4. data/app/controllers/educode_sales/customers_controller.rb +47 -14
  5. data/app/controllers/educode_sales/home_controller.rb +6 -0
  6. data/app/controllers/educode_sales/money_plans_controller.rb +2 -2
  7. data/app/controllers/educode_sales/sale_trends_controller.rb +107 -18
  8. data/app/controllers/educode_sales/staffs_controller.rb +29 -0
  9. data/app/controllers/educode_sales/teacher_follows_controller.rb +1 -93
  10. data/app/models/educode_sales/business_export_record.rb +5 -0
  11. data/app/models/educode_sales/customer_add.rb +4 -0
  12. data/app/models/educode_sales/staff.rb +1 -0
  13. data/app/models/educode_sales/staff_school.rb +6 -0
  14. data/app/views/educode_sales/activities/index.html.erb +7 -1
  15. data/app/views/educode_sales/activities/new.html.erb +1 -1
  16. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +4 -4
  17. data/app/views/educode_sales/businesses/edit_plan.html.erb +5 -2
  18. data/app/views/educode_sales/businesses/export_records.html.erb +53 -0
  19. data/app/views/educode_sales/businesses/export_records.json.jbuilder +11 -0
  20. data/app/views/educode_sales/businesses/get_export_data.json.jbuilder +30 -0
  21. data/app/views/educode_sales/businesses/index.html.erb +138 -49
  22. data/app/views/educode_sales/businesses/index.json.jbuilder +8 -7
  23. data/app/views/educode_sales/businesses/new_follow_record.html.erb +6 -6
  24. data/app/views/educode_sales/commons/index.html.erb +7 -1
  25. data/app/views/educode_sales/customers/index.html.erb +30 -1
  26. data/app/views/educode_sales/customers/index.json.jbuilder +12 -0
  27. data/app/views/educode_sales/customers/new.html.erb +106 -53
  28. data/app/views/educode_sales/home/staff_schools.json.jbuilder +9 -0
  29. data/app/views/educode_sales/money_plans/index.html.erb +2 -2
  30. data/app/views/educode_sales/places/index.json.jbuilder +1 -1
  31. data/app/views/educode_sales/roles/edit.html.erb +10 -4
  32. data/app/views/educode_sales/roles/index.html.erb +7 -1
  33. data/app/views/educode_sales/sale_trends/trends.html.erb +96 -44
  34. data/app/views/educode_sales/sale_trends/trends.json.jbuilder +2 -1
  35. data/app/views/educode_sales/sales/index.json.jbuilder +1 -1
  36. data/app/views/educode_sales/staffs/edit.html.erb +45 -0
  37. data/app/views/educode_sales/staffs/index.html.erb +68 -2
  38. data/app/views/educode_sales/teachers/index.html.erb +2 -2
  39. data/app/views/layouts/educode_sales/application.html.erb +6 -1
  40. data/config/routes.rb +4 -0
  41. data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +2 -0
  42. data/db/migrate/20220121060006_create_educode_sales_business_export_records.rb +10 -0
  43. data/db/migrate/20220125013811_create_educode_sales_staff_schools.rb +10 -0
  44. data/db/migrate/20220125033552_create_educode_sales_customer_adds.rb +9 -0
  45. data/lib/educode_sales/version.rb +1 -1
  46. 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
- <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="show_hide">展开/收起
78
- </button>
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
- drowpdwonRender()
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
- var index_place_list = xmSelect.render({
555
- el: '#index_place',
556
- model: {
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
- follow_ups_count = 0
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
- json.follow_ups_count d.follow_ups.where(deleted_at: nil).size
10
- follow_ups_count += d.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 follow_ups_count.to_s
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="z-index: 101">
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);
@@ -129,4 +129,10 @@
129
129
  });
130
130
 
131
131
  });
132
- </script>
132
+ </script>
133
+ <style>
134
+ .layui-table-tool-temp{
135
+ padding-right: 0px; !important;
136
+ }
137
+
138
+ </style>
@@ -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-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="企业">
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
- data.field.province = $("#province option:selected").text(); //获取选中的项
342
- data.field.city = $("#city option:selected").text(); //获取选中的项
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) {
@@ -0,0 +1,9 @@
1
+ json.data do
2
+ json.array! @schools do |d|
3
+ json.value d.id
4
+ json.name "#{d.name}-#{d.province}"
5
+ end
6
+ end
7
+ json.count @schools.size
8
+ json.code 0
9
+ json.msg "success"
@@ -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">回款列表</span>
46
+ <span class="table-label">回款计划</span>
47
47
  </div>
48
48
  </script>
49
49