educode_sales 0.4.6 → 0.5.0

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/educode_sales/businesses_controller.rb +74 -2
  3. data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
  4. data/app/controllers/educode_sales/home_controller.rb +4 -0
  5. data/app/controllers/educode_sales/operation_plans_controller.rb +16 -4
  6. data/app/controllers/educode_sales/operation_reports_controller.rb +6 -0
  7. data/app/controllers/educode_sales/operations_controller.rb +1 -1
  8. data/app/controllers/educode_sales/plans_controller.rb +29 -13
  9. data/app/controllers/educode_sales/sale_reports_controller.rb +6 -0
  10. data/app/controllers/educode_sales/sale_trends_controller.rb +8 -7
  11. data/app/controllers/educode_sales/sales_controller.rb +2 -2
  12. data/app/controllers/educode_sales/upload_files_controller.rb +105 -0
  13. data/app/models/educode_sales/common.rb +4 -0
  14. data/app/models/educode_sales/sale_plan.rb +1 -0
  15. data/app/views/educode_sales/activities/show_teachers.html.erb +16 -16
  16. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +15 -0
  17. data/app/views/educode_sales/businesses/file.html.erb +154 -0
  18. data/app/views/educode_sales/businesses/index.html.erb +62 -10
  19. data/app/views/educode_sales/businesses/index.json.jbuilder +3 -1
  20. data/app/views/educode_sales/businesses/new_follow_record.html.erb +17 -0
  21. data/app/views/educode_sales/businesses/show_follow.html.erb +49 -12
  22. data/app/views/educode_sales/businesses/show_follow.json.jbuilder +3 -0
  23. data/app/views/educode_sales/businesses/show_follow_record.html.erb +80 -2
  24. data/app/views/educode_sales/businesses/time_line.html.erb +62 -0
  25. data/app/views/educode_sales/businesses/upload_file.html.erb +43 -0
  26. data/app/views/educode_sales/home/search_operation_teacher.json.jbuilder +12 -0
  27. data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +7 -7
  28. data/app/views/educode_sales/operation_plans/_monthly.html.erb +8 -8
  29. data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +8 -8
  30. data/app/views/educode_sales/operation_plans/_weekly.html.erb +9 -9
  31. data/app/views/educode_sales/operation_plans/edit_month.html.erb +6 -6
  32. data/app/views/educode_sales/operation_plans/edit_week.html.erb +7 -7
  33. data/app/views/educode_sales/operation_plans/new_month.html.erb +50 -4
  34. data/app/views/educode_sales/operation_plans/new_monthly.html.erb +12 -0
  35. data/app/views/educode_sales/operation_plans/new_week.html.erb +48 -5
  36. data/app/views/educode_sales/operation_plans/new_weekly.html.erb +12 -0
  37. data/app/views/educode_sales/operation_reports/audit.html.erb +22 -10
  38. data/app/views/educode_sales/operation_reports/edit.html.erb +22 -10
  39. data/app/views/educode_sales/operation_reports/show.html.erb +22 -10
  40. data/app/views/educode_sales/plans/_monthPlan.html.erb +8 -8
  41. data/app/views/educode_sales/plans/_monthly.html.erb +7 -7
  42. data/app/views/educode_sales/plans/_weekPlan.html.erb +7 -7
  43. data/app/views/educode_sales/plans/_weekly.html.erb +8 -8
  44. data/app/views/educode_sales/plans/edit_month.html.erb +7 -7
  45. data/app/views/educode_sales/plans/edit_week.html.erb +8 -8
  46. data/app/views/educode_sales/plans/new_month.html.erb +2 -2
  47. data/app/views/educode_sales/plans/new_monthly.html.erb +18 -6
  48. data/app/views/educode_sales/plans/new_week.html.erb +3 -3
  49. data/app/views/educode_sales/plans/new_weekly.html.erb +19 -7
  50. data/app/views/educode_sales/sale_reports/audit.html.erb +20 -8
  51. data/app/views/educode_sales/sale_reports/edit.html.erb +20 -8
  52. data/app/views/educode_sales/sale_reports/show.html.erb +15 -3
  53. data/app/views/educode_sales/sale_trends/trends.html.erb +6 -6
  54. data/app/views/educode_sales/teachers/index.html.erb +2 -2
  55. data/app/views/educode_sales/teachers/show_follow.html.erb +10 -4
  56. data/app/views/educode_sales/upload_files/index.json.jbuilder +13 -0
  57. data/app/views/layouts/educode_sales/application.html.erb +4 -1
  58. data/config/routes.rb +13 -0
  59. data/db/migrate/20211102085743_add_bidded_date_educode_sales_follow_ups.rb +6 -0
  60. data/lib/educode_sales/version.rb +1 -1
  61. metadata +9 -2
@@ -41,6 +41,21 @@
41
41
  id="invitation_at_edit" placeholder="请选择日期">
42
42
  </div>
43
43
  </div>
44
+ <div class="layui-inline">
45
+ <label class="layui-form-label">中标时间</label>
46
+ <div class="layui-input-inline">
47
+ <input type="text" class="layui-input" value="<%= @follow_up.bidded_date %>" name="bidded_date"
48
+ id="invitation_at_edit" placeholder="请选择日期">
49
+ </div>
50
+ </div>
51
+ <br>
52
+ <div class="layui-inline">
53
+ <label class="layui-form-label">签单时间</label>
54
+ <div class="layui-input-inline">
55
+ <input type="text" class="layui-input" value="<%= @follow_up.signed_date %>" name="signed_date"
56
+ id="invitation_at_edit" placeholder="请选择日期">
57
+ </div>
58
+ </div>
44
59
  <div class="layui-inline">
45
60
  <label class="layui-form-label">验收时间</label>
46
61
  <div class="layui-input-inline">
@@ -0,0 +1,154 @@
1
+ <script type="text/html" id="toolbarDemo">
2
+ <div class="layui-btn-container">
3
+ <span class="table-label">附件信息</span>
4
+ <%# if can? :create, EducodeSales::file %>
5
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="upload_file">上传文件</button>
6
+ <%# end %>
7
+ </div>
8
+ </script>
9
+
10
+ <table class="layui-hide" id="file" lay-filter="file"></table>
11
+
12
+ <script type="text/html" id="currentTableBar_file">
13
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="preview">预览</a>
14
+ <a href="/missions/upload_files/download?id={{d.id}}" class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="download">下载</a>
15
+ <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
16
+ </script>
17
+
18
+ <script type="text/html" id="showchance">
19
+ <a href="/missions/businesses" class="layui-table-link">{{ d.chance }}</a>
20
+ </script>
21
+
22
+ <script>
23
+ layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
24
+ var $ = layui.jquery,
25
+ form = layui.form,
26
+ table = layui.table,
27
+ request = layui.request,
28
+ upload = layui.upload;
29
+ miniPage = layui.miniPage;
30
+
31
+
32
+ var business_id = parent.id
33
+ table.render({
34
+ elem: '#file',
35
+ url: '/missions/upload_files?business_id='+business_id,
36
+ toolbar: '#toolbarDemo',
37
+ defaultToolbar: [],
38
+ cols: [
39
+ [
40
+ {
41
+ field: 'id',
42
+ width: 80,
43
+ title:'序号',type: 'numbers',
44
+ },
45
+ {
46
+ field: 'name',
47
+ title: '文件名'
48
+ },
49
+ {
50
+ field: 'size',
51
+ width: 100,
52
+ title: '文件大小',
53
+ },
54
+ {
55
+ field: 'created_on',
56
+ width: 200,
57
+ title: '上传时间',
58
+ sort: true
59
+ },
60
+ {
61
+ field: 'upload_person',
62
+ width: 80,
63
+ totalRow:true,
64
+ title: '上传人',
65
+ },
66
+ {
67
+ title: '操作',
68
+ width: 200,
69
+ toolbar: '#currentTableBar_file',
70
+ align: "center"
71
+ }
72
+ ]
73
+ ],
74
+ limit: 20,
75
+ limits: [10,15,20,30,40,50,60,70,80,90],
76
+ page: true
77
+ });
78
+
79
+
80
+ var sort = {};
81
+ table.on('sort(file)', function (obj) {
82
+ sort.field = obj.field;
83
+ sort.order = obj.type;
84
+ table.reload('file', {
85
+ initSort: obj,
86
+ where: {
87
+ sort: sort
88
+ }
89
+ });
90
+ })
91
+
92
+
93
+ table.on('toolbar(file)', function (obj) {
94
+ if (obj.event === 'upload_file') { //
95
+ id =parent.id
96
+ var content = miniPage.getHrefContent('/missions/businesses/upload_file');
97
+ var openWH = miniPage.getOpenWidthHeight();
98
+ import_index = layer.open({
99
+ title: '上传文件',
100
+ type: 1,
101
+ shade: 0.2,
102
+ shadeClose: true,
103
+ area: ['200px', '100px'],
104
+ offset: 'auto',
105
+ closeBtn: 0,
106
+ content: content,
107
+ });
108
+ $(window).on("resize", function () {
109
+ layer.full(index);
110
+ });
111
+ }
112
+ });
113
+
114
+
115
+
116
+ table.on('tool(file)', function (obj) {
117
+ var data = obj.data;
118
+ var id = data.id
119
+ name = data.disk_filename
120
+ if (obj.event === 'preview') {
121
+ if (data.content_type.split("/")[0] === "image"){
122
+ // var img = "<img src='/images/" + name + "' />";
123
+ layer.photos({
124
+ photos: { "data": [{"src": '/images/'+name}] }
125
+ ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机
126
+ });
127
+ }else if (data.content_type.split("/")[1] === "pdf"){
128
+ var pdf = '/images/' + name;
129
+ console.log(pdf);
130
+ var openWH = miniPage.getOpenWidthHeight();
131
+ layer.open({
132
+ title: data.name,
133
+ type: 2,
134
+ area: ['1000px', '750px'],
135
+ fixed: false, //不固定
136
+ maxmin: true,
137
+ content: pdf
138
+ });
139
+ }else{
140
+ layer.msg("附件不支持预览,请下载查看!")
141
+ }
142
+ return false;
143
+ }else if (obj.event === 'delete') {
144
+ layer.confirm('确定删除' + data.name, function (index) {
145
+ request.delete('missions/upload_files/' + data.id + '?disk_filename=' + data.disk_filename, {}, function (res) {
146
+ layer.close(index);
147
+ table.reload("file")
148
+ })
149
+ });
150
+ }
151
+ });
152
+
153
+ });
154
+ </script>
@@ -5,7 +5,7 @@
5
5
  <div class="layui-inline">
6
6
  <label class="layui-form-label">商机名称</label>
7
7
  <div class="layui-input-inline">
8
- <input type="text" name="name" autocomplete="off" class="layui-input">
8
+ <input type="text" name="name" autocomplete="off" class="layui-input" value="<%=params[:name] %>">
9
9
  </div>
10
10
  </div>
11
11
  <div class="layui-inline">
@@ -114,9 +114,9 @@
114
114
  elem: '#businesses_table',
115
115
  url: '/missions/businesses',
116
116
  where: {q: form.val('search_form')},
117
+ defaultToolbar: ['filter'],
117
118
  toolbar: '#bussinessBar',
118
119
  totalRow: true,//开启合并行
119
- defaultToolbar: [],
120
120
  cols: [
121
121
  [
122
122
  {
@@ -132,18 +132,18 @@
132
132
  },
133
133
  {
134
134
  field: 'school',
135
- width: 200,
135
+ width: 150,
136
136
  title: '单位',
137
137
  },
138
138
  {
139
139
  field: 'department',
140
- width: 140,
140
+ width: 150,
141
141
  title: '部门'
142
142
  },
143
143
  {
144
144
  field: 'follow_ups_count',
145
145
  title: '跟进',
146
- width: 100,
146
+ width: 60,
147
147
  templet: '#show_follow',
148
148
  totalRow: true,
149
149
  },
@@ -155,12 +155,12 @@
155
155
  // },
156
156
  {
157
157
  field: 'clazz',
158
- width: 120,
158
+ width: 80,
159
159
  title: '类型'
160
160
  },
161
161
  {
162
162
  field: 'stage',
163
- width: 100,
163
+ width: 90,
164
164
  title: '阶段'
165
165
  },
166
166
  {
@@ -169,6 +169,16 @@
169
169
  title: '招标时间',
170
170
  sort: true
171
171
  },
172
+ {
173
+ field: 'bidded_date',
174
+ width: 105,
175
+ title: '中标时间',
176
+ },
177
+ {
178
+ field: 'signed_date',
179
+ width: 105,
180
+ title: '签单时间',
181
+ },
172
182
  {
173
183
  field: 'reception_at',
174
184
  width: 105,
@@ -191,17 +201,17 @@
191
201
  },
192
202
  {
193
203
  field: 'place',
194
- width: 110,
204
+ width: 80,
195
205
  title: '渠道'
196
206
  },
197
207
  {
198
208
  field: 'source',
199
- width: 110,
209
+ width: 90,
200
210
  title: '商机来源'
201
211
  },
202
212
  {
203
213
  field: 'last_follow_person',
204
- width: 120,
214
+ width: 100,
205
215
  title: '最新跟进人'
206
216
  },
207
217
  {
@@ -248,6 +258,12 @@
248
258
  case 'edit':
249
259
  edit(id);
250
260
  break;
261
+ case 'file':
262
+ file(id, elem.data('name'));
263
+ break;
264
+ case 'time_line':
265
+ time_line(id, elem.data('name'));
266
+ break;
251
267
  case 'delete':
252
268
  deleteBusiness(id, elem.data('name'));
253
269
  break;
@@ -292,6 +308,41 @@
292
308
  layer.full(sindex);
293
309
  });
294
310
  }
311
+ function time_line(id,name) {
312
+ var content = miniPage.getHrefContent('/missions/businesses/time_line?business_id=' + id);
313
+ var openWH = miniPage.getOpenWidthHeight();
314
+ sindex = layer.open({
315
+ title: '商机列表/'+name+'的跟进时间线',
316
+ type: 1,
317
+ shade: 0.2,
318
+ maxmin: true,
319
+ shadeClose: true,
320
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
321
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
322
+ content: content
323
+ });
324
+ $(window).on("resize", function () {
325
+ layer.full(sindex);
326
+ });
327
+ }
328
+ function file(id, name) {
329
+ id = id
330
+ var content = miniPage.getHrefContent('/missions/businesses/file?business_id=' + id);
331
+ var openWH = miniPage.getOpenWidthHeight();
332
+ sindex = layer.open({
333
+ title: '商机列表/'+name+'的附件信息',
334
+ type: 1,
335
+ shade: 0.2,
336
+ // maxmin: true,
337
+ shadeClose: true,
338
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
339
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
340
+ content: content
341
+ });
342
+ $(window).on("resize", function () {
343
+ // layer.full(sindex);
344
+ });
345
+ }
295
346
 
296
347
  function month(id) {
297
348
  var content = miniPage.getHrefContent('/missions/plans/new_month?business_id=' + id);
@@ -533,6 +584,7 @@
533
584
  });
534
585
  } else if (obj.event === 'show_follow') {
535
586
  business_id = obj.data.id
587
+ business_name = data.name
536
588
  content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + id);
537
589
  openWH = miniPage.getOpenWidthHeight();
538
590
  index = layer.open({
@@ -14,6 +14,8 @@ json.data do
14
14
  json.stage d.last_follow_up&.stage&.name
15
15
  json.invitation_at d.last_follow_up&.invitation_at.to_s
16
16
  json.reception_at d.last_follow_up&.reception_at.to_s
17
+ json.bidded_date d.last_follow_up&.bidded_date.to_s
18
+ json.signed_date d.last_follow_up&.signed_date.to_s
17
19
  json.total_amount d.last_follow_up&.total_amount
18
20
  json.return_money d.return_money
19
21
  json.place d.last_follow_up&.place&.name
@@ -22,7 +24,7 @@ json.data do
22
24
  json.assign_follow_ups d.last_follow_up.present? ? d.last_follow_up.assign_follow_ups.pluck(:staff_id) : []
23
25
  json.current_staff_id @current_admin.id
24
26
  json.staff_id d.staff_id
25
- json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : ''
27
+ json.latest_time d.last_follow_up.present? ? d.last_follow_up.created_at.to_s : d.created_at.to_s
26
28
  end
27
29
  end
28
30
 
@@ -42,6 +42,23 @@
42
42
  placeholder="请选择日期">
43
43
  </div>
44
44
  </div>
45
+ <div class="layui-inline">
46
+ <label class="layui-form-label">中标时间</label>
47
+ <div class="layui-input-inline">
48
+ <input type="text" class="layui-input" name="bidded_date" autocomplete="off" id="invitation_at_add"
49
+ value="<%= @last_follow_up&.bidded_date%>"
50
+ placeholder="请选择日期">
51
+ </div>
52
+ </div>
53
+ <br>
54
+ <div class="layui-inline">
55
+ <label class="layui-form-label">签单时间</label>
56
+ <div class="layui-input-inline">
57
+ <input type="text" class="layui-input" name="signed_date" autocomplete="off" id="invitation_at_add"
58
+ value="<%= @last_follow_up&.signed_date%>"
59
+ placeholder="请选择日期">
60
+ </div>
61
+ </div>
45
62
  <div class="layui-inline">
46
63
  <label class="layui-form-label">验收时间</label>
47
64
  <div class="layui-input-inline">
@@ -1,6 +1,8 @@
1
1
  <script type="text/html" id="toolbarDemo_follow">
2
2
  <div class="layui-btn-container">
3
3
  <span class="table-label">跟进记录</span>
4
+ <span class="table-label" style="padding-left: 200px">温馨提示:仅可以在24小时之内,编辑/删除最新的跟进记录</span>
5
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="time_line"> 时间线视图>></button>
4
6
  <% if can? :add_follow, EducodeSales::Business %>
5
7
  <% if @current_admin.is_admin %>
6
8
  <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加跟进记录</button>
@@ -11,14 +13,16 @@
11
13
  </div>
12
14
  </script>
13
15
  <div class="edit-table">
14
- <table class="layui-hide" id="sale_plan_follow_table" lay-filter="sale_plan_follow_table"></table>
16
+ <div class="z-index">
17
+ <table class="layui-hide" id="sale_plan_follow_table" lay-filter="sale_plan_follow_table"></table>
18
+ </div>
15
19
  <table class="layui-hide" id="unfinish_table" lay-filter="unfinish_table" style="min-height: 300px;"></table>
16
20
  </div>
17
21
  <script type="text/html" id="currentTableBar_follow">
18
22
  <% if can? :follow, EducodeSales::Business %>
19
23
  <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="show">查看</a>
20
24
  <% end %>
21
- {{# if(d.is_latest){ }}
25
+ {{# if(d.is_latest && d.flag){ }}
22
26
  <% if can? :update_follow, EducodeSales::Business %>
23
27
  <% if @current_admin.is_admin %>
24
28
  <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
@@ -72,7 +76,7 @@
72
76
  elem: '#sale_plan_follow_table',
73
77
  url: '/missions/businesses/show_follow?id=' + parent.id ,
74
78
  toolbar: '#toolbarDemo_follow',
75
- defaultToolbar: [],
79
+ defaultToolbar: ['filter'],
76
80
  cols: [
77
81
  [
78
82
  {
@@ -107,11 +111,27 @@
107
111
  title: '关键人',
108
112
  templet: '#add_keys'
109
113
  },
114
+ {
115
+ field: 'money_plans_count',
116
+ width: 120,
117
+ title: '回款计划',
118
+ templet: '#edit_plan'
119
+ },
110
120
  {
111
121
  field: 'invitation_at',
112
122
  width: 110,
113
123
  title: '招标时间',
114
124
  },
125
+ {
126
+ field: 'bidded_date',
127
+ width: 110,
128
+ title: '中标时间',
129
+ },
130
+ {
131
+ field: 'signed_date',
132
+ width: 110,
133
+ title: '签单时间',
134
+ },
115
135
  {
116
136
  field: 'reception_at',
117
137
  width: 110,
@@ -137,12 +157,7 @@
137
157
  width: 100,
138
158
  title: '已回款',
139
159
  },
140
- {
141
- field: 'money_plans_count',
142
- width: 120,
143
- title: '回款计划',
144
- templet: '#edit_plan'
145
- },
160
+
146
161
  {
147
162
  field: 'place',
148
163
  width: 200,
@@ -201,6 +216,25 @@
201
216
  $(window).on("resize", function () {
202
217
  layer.full(index);
203
218
  });
219
+ } else if (obj.event === 'time_line') { // 监听添加操作
220
+ layer.closeAll()
221
+ business_id = parent.business_id
222
+ business_name = parent.business_name
223
+ var content = miniPage.getHrefContent('/missions/businesses/time_line?business_id=' + id);
224
+ var openWH = miniPage.getOpenWidthHeight();
225
+ sindex = layer.open({
226
+ title: '商机列表/'+ parent.business_name +'的跟进时间线',
227
+ type: 1,
228
+ shade: 0.2,
229
+ maxmin: true,
230
+ shadeClose: true,
231
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
232
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
233
+ content: content
234
+ });
235
+ $(window).on("resize", function () {
236
+ layer.full(sindex);
237
+ });
204
238
  }
205
239
  });
206
240
 
@@ -219,7 +253,7 @@
219
253
  } else if (obj.event === 'show') { // 监听添加操作
220
254
  var content = miniPage.getHrefContent('/missions/businesses/show_follow_record?follow_up_id=' + data.id);
221
255
  var openWH = miniPage.getOpenWidthHeight();
222
- var index = layer.open({
256
+ show_index = layer.open({
223
257
  title: '查看商机跟进记录',
224
258
  type: 1,
225
259
  shade: 0.2,
@@ -495,5 +529,8 @@
495
529
 
496
530
  });
497
531
  </script>
498
-
499
-
532
+ <style>
533
+ .z-index .layui-table-tool{
534
+ z-index: 10000; !important;
535
+ }
536
+ </style>
@@ -7,6 +7,8 @@ json.data do
7
7
  json.teachers_count d.key_people_count
8
8
  json.invitation_at d.invitation_at&.to_s(:date)
9
9
  json.reception_at d.reception_at&.to_s(:date)
10
+ json.bidded_date d.bidded_date&.to_s(:date)
11
+ json.signed_date d.signed_date&.to_s(:date)
10
12
  json.total_amount d.total_amount
11
13
  json.actual_amount d.actual_amount
12
14
  json.divide_amount d.divide_amount ? d.divide_amount : ""
@@ -15,6 +17,7 @@ json.data do
15
17
  json.money_plans_count d.money_plans_count
16
18
  json.money d.money_plans.where(clazz: 1).sum(:amount).round(2)
17
19
  json.is_latest d.id == @latest&.id
20
+ json.flag d.created_at.present? ? (Time.now - d.created_at).to_f/3600 < 24 : false
18
21
  end
19
22
  end
20
23
 
@@ -1,6 +1,6 @@
1
1
  <h1 class="text-center m-t-20"><%= @follow_up.business.name %></h1>
2
2
  <form class="layui-form form-value">
3
- <div class="layui-form-item" style="padding: 25px">
3
+ <div class="layui-form-item" style="padding: 10px 25px 0;">
4
4
  <div class="layui-inline">
5
5
  <label class="layui-form-label">单位:</label>
6
6
  <div class="layui-input-inline">
@@ -33,6 +33,19 @@
33
33
  <%= @follow_up.invitation_at.to_s %>
34
34
  </div>
35
35
  </div>
36
+ <div class="layui-inline">
37
+ <label class="layui-form-label">中标时间:</label>
38
+ <div class="layui-input-inline">
39
+ <%= @follow_up.bidded_date.to_s %>
40
+ </div>
41
+ </div>
42
+ <br>
43
+ <div class="layui-inline">
44
+ <label class="layui-form-label">签单时间:</label>
45
+ <div class="layui-input-inline">
46
+ <%= @follow_up.signed_date.to_s %>
47
+ </div>
48
+ </div>
36
49
  <div class="layui-inline">
37
50
  <label class="layui-form-label">验收时间:</label>
38
51
  <div class="layui-input-inline">
@@ -96,4 +109,69 @@
96
109
  </div>
97
110
  </div>
98
111
  </div>
99
- </form>
112
+ </form>
113
+ <div style=" text-align:center;">
114
+ <div class="layui-btn-group">
115
+
116
+ <%if @pre_id != 0 %>
117
+ <button type="button" class="layui-btn" onclick="pre_follow()">上一条</button>
118
+ <%else %>
119
+ <button type="button" class="layui-btn layui-btn-disabled layui-btn-radius">上一条</button>
120
+ <%end %>
121
+
122
+ <%if @next_id != 0 %>
123
+ <button type="button" class="layui-btn" onclick="next_follow()">下一条</button>
124
+ <%else %>
125
+ <button type="button" class="layui-btn layui-btn-disabled layui-btn-radius">下一条</button>
126
+ <%end %>
127
+
128
+ </div>
129
+ </div>
130
+
131
+ <script type="text/javascript" charset="utf-8">
132
+
133
+ layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
134
+ var $ = layui.jquery,
135
+ form = layui.form,
136
+ table = layui.table,
137
+ request = layui.request,
138
+ miniPage = layui.miniPage;
139
+
140
+ });
141
+ function pre_follow(){
142
+ layer.close(parent.show_index)
143
+ var content = miniPage.getHrefContent('/missions/businesses/show_follow_record?follow_up_id=' + <%=@pre_id %>);
144
+ var openWH = miniPage.getOpenWidthHeight();
145
+ show_index = layer.open({
146
+ title: '查看商机跟进记录',
147
+ type: 1,
148
+ shade: 0.2,
149
+ maxmin: true,
150
+ shadeClose: true,
151
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
152
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
153
+ content: content
154
+ });
155
+ $(window).on("resize", function () {
156
+ layer.full(index);
157
+ });
158
+ }
159
+ function next_follow(){
160
+ layer.close(parent.show_index)
161
+ var content = miniPage.getHrefContent('/missions/businesses/show_follow_record?follow_up_id=' + <%=@next_id %>);
162
+ var openWH = miniPage.getOpenWidthHeight();
163
+ show_index = layer.open({
164
+ title: '查看商机跟进记录',
165
+ type: 1,
166
+ shade: 0.2,
167
+ maxmin: true,
168
+ shadeClose: true,
169
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
170
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
171
+ content: content
172
+ });
173
+ $(window).on("resize", function () {
174
+ layer.full(index);
175
+ });
176
+ }
177
+ </script>
@@ -0,0 +1,62 @@
1
+ <div class="layui-btn-container" style="padding-right: 200px;padding-top: 10px">
2
+ <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" onclick="demo()" >跟进记录列表>></button>
3
+ </div>
4
+ <div style="padding: 50px">
5
+ <ul class="layui-timeline">
6
+ <%if @follow_ups.present? %>
7
+ <%@follow_ups.each do |f| %>
8
+ <li class="layui-timeline-item">
9
+ <i class="layui-icon layui-timeline-axis">&#xe63f;</i>
10
+ <div class="layui-timeline-content layui-text">
11
+ <h3 class="layui-timeline-title"><%=f.created_at %>---<%=f.staff.user.real_name %></h3>
12
+ <p>
13
+ 最新进展:<%=f.description %>
14
+ <br>
15
+ 团队建议:<%=f.advise %>
16
+ <br>
17
+ 项目类型:<%=f.clazz.name %>
18
+ <br>
19
+ 项目阶段:<%=f.stage.name %>
20
+ <br>
21
+ 关键人:<% teacher_ids = f.key_person.present? ? f.key_person.pluck(:teacher_id) : [] %>
22
+ <%= EducodeSales::Teacher.where(id: teacher_ids).pluck(:name).join("、") %>
23
+ </p>
24
+ </div>
25
+ </li>
26
+ <%end %>
27
+ <%else %>
28
+ <h1 class="layui-timeline-title" style="text-align: center">暂无跟进记录</h1>
29
+ <%end %>
30
+ </ul>
31
+ </div>
32
+
33
+ <script type="text/javascript" charset="utf-8">
34
+
35
+ layui.use(['form', 'table', 'miniPage', 'element', 'request'], function () {
36
+ var $ = layui.jquery,
37
+ form = layui.form,
38
+ table = layui.table,
39
+ request = layui.request,
40
+ miniPage = layui.miniPage;
41
+
42
+ });
43
+ function demo(){
44
+ layer.closeAll()
45
+ business_id = parent.business_id
46
+ var content = miniPage.getHrefContent('/missions/businesses/show_follow?id=' + id);
47
+ var openWH = miniPage.getOpenWidthHeight();
48
+ sindex = layer.open({
49
+ title: '商机列表/'+ parent.business_name +'的跟进记录',
50
+ type: 1,
51
+ shade: 0.2,
52
+ maxmin: true,
53
+ shadeClose: true,
54
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
55
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
56
+ content: content
57
+ });
58
+ $(window).on("resize", function () {
59
+ layer.full(sindex);
60
+ });
61
+ }
62
+ </script>