educode_sales 0.9.67 → 0.9.69

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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales/indexlogo.png +0 -0
  3. data/app/assets/javascripts/educode_sales/extent/treeTable.js +235 -0
  4. data/app/controllers/educode_sales/activities_controller.rb +52 -38
  5. data/app/controllers/educode_sales/businesses_controller.rb +1 -1
  6. data/app/controllers/educode_sales/customers_controller.rb +107 -0
  7. data/app/controllers/educode_sales/follow_ups_controller.rb +6 -0
  8. data/app/controllers/educode_sales/operation_plans_controller.rb +8 -4
  9. data/app/controllers/educode_sales/plans_controller.rb +173 -11
  10. data/app/controllers/educode_sales/projects_controller.rb +420 -0
  11. data/app/controllers/educode_sales/recycles_controller.rb +11 -1
  12. data/app/controllers/educode_sales/roles_controller.rb +4 -1
  13. data/app/controllers/educode_sales/teachers_controller.rb +42 -17
  14. data/app/controllers/educode_sales/upload_files_controller.rb +9 -2
  15. data/app/helpers/educode_sales/application_helper.rb +1 -0
  16. data/app/models/educode_sales/activity.rb +4 -0
  17. data/app/models/educode_sales/assessments_setting.rb +2 -2
  18. data/app/models/educode_sales/business.rb +21 -5
  19. data/app/models/educode_sales/business_history.rb +8 -0
  20. data/app/models/educode_sales/business_info.rb +9 -0
  21. data/app/models/educode_sales/permission.rb +2 -1
  22. data/app/models/educode_sales/project.rb +53 -0
  23. data/app/models/educode_sales/role_area.rb +2 -1
  24. data/app/models/educode_sales/sale_plan.rb +3 -1
  25. data/app/models/educode_sales/staff.rb +2 -0
  26. data/app/views/educode_sales/activities/_follows.html.erb +50 -36
  27. data/app/views/educode_sales/activities/_index.html.erb +82 -9
  28. data/app/views/educode_sales/activities/edit.html.erb +25 -68
  29. data/app/views/educode_sales/activities/files.html.erb +157 -0
  30. data/app/views/educode_sales/activities/files.json.jbuilder +13 -0
  31. data/app/views/educode_sales/activities/follow_ups.json.jbuilder +1 -1
  32. data/app/views/educode_sales/activities/index.json.jbuilder +2 -2
  33. data/app/views/educode_sales/activities/new.html.erb +21 -60
  34. data/app/views/educode_sales/activities/show_teachers.html.erb +1 -1
  35. data/app/views/educode_sales/activities/upload_file.html.erb +43 -0
  36. data/app/views/educode_sales/businesses/get_export_data.json.jbuilder +3 -0
  37. data/app/views/educode_sales/businesses/index.html.erb +5 -0
  38. data/app/views/educode_sales/businesses/index.json.jbuilder +3 -0
  39. data/app/views/educode_sales/businesses/new.html.erb +1 -1
  40. data/app/views/educode_sales/businesses/time_line.html.erb +9 -5
  41. data/app/views/educode_sales/customers/edit_major.html.erb +872 -0
  42. data/app/views/educode_sales/customers/list.html.erb +602 -0
  43. data/app/views/educode_sales/customers/list.json.jbuilder +33 -0
  44. data/app/views/educode_sales/follow_ups/index.json.jbuilder +2 -2
  45. data/app/views/educode_sales/plans/_yearPlan.html.erb +234 -0
  46. data/app/views/educode_sales/plans/business_infos.json.jbuilder +23 -0
  47. data/app/views/educode_sales/plans/edit_bussiness_info.html.erb +79 -0
  48. data/app/views/educode_sales/plans/edit_bussiness_info_extra.html.erb +260 -0
  49. data/app/views/educode_sales/plans/edit_year_plan.html.erb +237 -0
  50. data/app/views/educode_sales/plans/index.html.erb +8 -0
  51. data/app/views/educode_sales/plans/new_year.html.erb +204 -0
  52. data/app/views/educode_sales/plans/plan_business_infos.json.jbuilder +42 -0
  53. data/app/views/educode_sales/plans/years_plan.json.jbuilder +17 -0
  54. data/app/views/educode_sales/projects/detail.html.erb +269 -0
  55. data/app/views/educode_sales/projects/edit.html.erb +246 -0
  56. data/app/views/educode_sales/projects/history.html.erb +41 -0
  57. data/app/views/educode_sales/projects/index.html.erb +688 -0
  58. data/app/views/educode_sales/projects/index.json.jbuilder +69 -0
  59. data/app/views/educode_sales/recycles/_monthly.html.erb +1 -1
  60. data/app/views/educode_sales/recycles/_yearPlan.html.erb +118 -0
  61. data/app/views/educode_sales/recycles/index.html.erb +26 -22
  62. data/app/views/educode_sales/recycles/monthPlan.json.jbuilder +0 -1
  63. data/app/views/educode_sales/recycles/yearPlan.json.jbuilder +14 -0
  64. data/app/views/educode_sales/teachers/_index.html.erb +17 -1
  65. data/app/views/educode_sales/teachers/index.json.jbuilder +2 -0
  66. data/app/views/layouts/educode_sales/application.html.erb +25 -0
  67. data/config/routes.rb +31 -0
  68. data/db/migrate/20230330141213_create_educode_sales_activity_follow_ups.rb +6 -0
  69. data/db/migrate/20230405074036_add_year_to_sale_plans.rb +38 -0
  70. data/db/migrate/20230411134203_add_realname_to_teacher.rb +5 -0
  71. data/db/migrate/20230412083510_add_p_staff_id_to_businesses.rb +20 -0
  72. data/db/migrate/20230412092000_create_business_histories.rb +10 -0
  73. data/db/migrate/20230413015619_add_permissions_to_projects.rb +11 -0
  74. data/db/migrate/20230413031029_add_pre_time_to_businesses.rb +5 -0
  75. data/lib/educode_sales/version.rb +1 -1
  76. metadata +38 -5
@@ -0,0 +1,688 @@
1
+ <div class="min-height-table">
2
+ <div style="margin: 10px 10px 10px 10px">
3
+ <form class="layui-form layui-form-pane" lay-filter="search_form">
4
+ <div class="layui-form-item">
5
+ <div class="layui-inline">
6
+ <label class="layui-form-label">商机名称</label>
7
+ <div class="layui-input-inline">
8
+ <input type="text" name="name" class="layui-input" value="">
9
+ <input type="text" style="display: none" name="place_id" class="layui-input" value="<%= params[:place_id] %>">
10
+ </div>
11
+ </div>
12
+ <div class="layui-inline">
13
+ <label class="layui-form-label">单位</label>
14
+ <div class="layui-input-inline">
15
+ <input type="text" name="department" value="<%= params[:school] %>" class="layui-input">
16
+ </div>
17
+ </div>
18
+ <div class="layui-inline show_item_contract">
19
+ <label class="layui-form-label">中标时间</label>
20
+ <div class="layui-input-inline">
21
+ <input type="text" class="layui-input" id="bidded_date" name="bidded_date" placeholder=" - " autocomplete="off">
22
+ </div>
23
+ </div>
24
+ <div class="layui-inline show_item_contract">
25
+ <label class="layui-form-label" style="width: 120px">合同签订时间</label>
26
+ <div class="layui-input-inline">
27
+ <input type="text" class="layui-input" id="signed_date" name="signed_date" placeholder=" - " autocomplete="off">
28
+ </div>
29
+ </div>
30
+ <div class="layui-inline show_item_contract">
31
+ <label class="layui-form-label" style="width: 120px">实际回款时间</label>
32
+ <div class="layui-input-inline">
33
+ <input type="text" class="layui-input" id="search_p_actual_money_time" name="search_p_actual_money_time" placeholder=" - " autocomplete="off">
34
+ </div>
35
+ </div>
36
+ <div class="layui-inline show_item_contract">
37
+ <label class="layui-form-label">阶段</label>
38
+ <div class="layui-input-inline">
39
+ <%= select_tag "p_stage", options_for_select(EducodeSales::Project.p_stages.keys), { 'lay-filter': 'p_stage', include_blank: true } %>
40
+ </div>
41
+ </div>
42
+ <div class="layui-inline show_item_contract">
43
+ <label class="layui-form-label">状态</label>
44
+ <div class="layui-input-inline">
45
+ <%= select_tag "p_state", options_for_select([["正常", 0], ["延期", 1]]), { include_blank: true } %>
46
+ </div>
47
+ </div>
48
+ <div class="layui-inline show_item_contract">
49
+ <label class="layui-form-label">指派人</label>
50
+ <div class="layui-input-inline">
51
+ <%= select_tag "p_special", options_for_select(EducodeSales::Staff.where(id: EducodeSales::Project.all.pluck(:p_staff_id)).map { |d| [d.user&.real_name, d.id] }, @project&.p_special), { 'lay-filter': 'p_special', include_blank: true } %>
52
+ </div>
53
+ </div>
54
+ <div class="layui-inline show_item_contract">
55
+ <label class="layui-form-label">销售经理</label>
56
+ <div class="layui-input-inline">
57
+ <%= select_tag "p_special", options_for_select(EducodeSales::Staff.where(id: EducodeSales::Project.all.pluck(:p_sale_staff_id)).map { |d| [d.user&.real_name, d.id] }, @project&.p_special), { 'lay-filter': 'p_special', include_blank: true } %>
58
+ </div>
59
+ </div>
60
+ <div class="layui-inline show_item_contract">
61
+ <label class="layui-form-label">难易度</label>
62
+ <div class="layui-input-inline">
63
+ <%= select_tag "p_difficulty", options_for_select(EducodeSales::Project.p_difficulties.keys), { 'lay-filter': 'p_difficulty', include_blank: true } %>
64
+ </div>
65
+ </div>
66
+ <div class="layui-inline show_item_contract">
67
+ <label class="layui-form-label">定制</label>
68
+ <div class="layui-input-inline">
69
+ <%= select_tag "p_special", options_for_select(EducodeSales::Project.p_specials.keys), { 'lay-filter': 'p_special', include_blank: true } %>
70
+ </div>
71
+ </div>
72
+ <div class="layui-inline show_item_contract">
73
+ <label class="layui-form-label">类型</label>
74
+ <div class="layui-input-inline">
75
+ <%= select_tag "o_business_deployment", options_for_select(EducodeSales::FollowUp::BUSINESS_DEPLOYMENT[1..-1]), { include_blank: true } %>
76
+ </div>
77
+ </div>
78
+ <div class="layui-inline">
79
+ <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
80
+ </button>
81
+ <button type="submit" id="search_bt" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness_contract">搜索
82
+ </button>
83
+ </div>
84
+ </div>
85
+ </form>
86
+ </div>
87
+ <div id="contact_table_wraper">
88
+ <table class="layui-hide" id="contact_table" lay-filter="contact_table"></table>
89
+ </div>
90
+ </div>
91
+ <script type="text/html" id="currentTableBar">
92
+
93
+
94
+ {{# if(!d.is_deleted){}}
95
+ <% if can?(:read, EducodeSales::Project) %>
96
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="add_event">详情</a>
97
+ <% end %>
98
+ <% if can?(:update, EducodeSales::Project) %>
99
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit not_recycle" lay-event="edit">编辑</a>
100
+ <% end %>
101
+ <% if can?(:destroy, EducodeSales::Project) %>
102
+ <a class="layui-btn layui-btn-danger layui-btn-xs data-count-edit not_recycle" lay-event="delete">移除</a>
103
+ <% end %>
104
+ {{# }else{}}
105
+ <% if can?(:read, EducodeSales::Project) %>
106
+ <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="add_event">详情</a>
107
+ <% end %>
108
+ <% if can?(:recycle, EducodeSales::Project) %>
109
+ <a class="layui-btn layui-btn-danger layui-btn-xs data-count-edit" lay-event="recycle">恢复</a>
110
+ <% end %>
111
+ {{# }}}
112
+ </script>
113
+
114
+ <script type="text/html" id="bussinessBar">
115
+ <div class="layui-btn-container">
116
+ <span class="table-label">项目列表</span>
117
+ <button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right project_list-btn" lay-event="project_list">
118
+ 项目列表
119
+ </button>
120
+ <button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right my-btn" lay-event="mine">
121
+ 项目回收站
122
+ </button>
123
+ </div>
124
+ </script>
125
+
126
+ <script type="text/html" id="statusTpl">
127
+ {{# if(d.p_state === '正常'){ }}
128
+ <span style="color: #22bf18;">{{ d.p_state }}</span>
129
+ {{# } else { }}
130
+ <span style="color: #e60505;">{{ d.p_state }}</span>
131
+ {{# } }}
132
+ </script>
133
+
134
+
135
+ <script>
136
+ layui.use(['form', 'table', 'miniPage', 'element', 'request', 'laydate', 'dropdown', 'laytpl'], function () {
137
+ var $ = layui.jquery,
138
+ form = layui.form,
139
+ request = layui.request,
140
+ miniPage = layui.miniPage,
141
+ dropdown = layui.dropdown,
142
+ laydate = layui.laydate;
143
+ var openWH = miniPage.getOpenWidthHeight();
144
+ laydate.render({
145
+ elem: '#date',
146
+ range: true
147
+ });
148
+ laydate.render({
149
+ elem: '#invitation_at',
150
+ range: true
151
+ });
152
+
153
+ laydate.render({
154
+ elem: '#bidded_date',
155
+ range: true,
156
+ value: gon.bidded_date
157
+ });
158
+ laydate.render({
159
+ elem: '#signed_date',
160
+ range: true,
161
+ value: gon.signed_date
162
+ });
163
+ laydate.render({
164
+ elem: '#search_p_actual_money_time',
165
+ range: true
166
+ });
167
+
168
+ laydate.render({
169
+ elem: '#date_at',
170
+ range: true,
171
+ value: gon.date_at
172
+ });
173
+
174
+
175
+ var business_type_list = xmSelect.render({
176
+ el: '#contract_business_type',
177
+ data: gon.business_type
178
+ })
179
+
180
+ var staff_list = xmSelect.render({
181
+ el: '#contract_staffs_id',
182
+ data: gon.staffs,
183
+ filterable: true,
184
+ radio: true,
185
+ })
186
+
187
+ var business_step_list = xmSelect.render({
188
+ el: '#contract_business_step',
189
+ data: gon.business_step
190
+ })
191
+ var index_place_list = xmSelect.render({
192
+ el: '#contract_index_place',
193
+ model: {
194
+ icon: 'hidden',
195
+ label: {
196
+ type: 'text',
197
+ text: {
198
+ //左边拼接的字符
199
+ left: '',
200
+ //右边拼接的字符
201
+ right: '',
202
+ //中间的分隔符
203
+ separator: ', ',
204
+ },
205
+ }
206
+ },
207
+ remoteSearch: true,
208
+ clickClose: true,
209
+ delay: 1000,
210
+ paging: true,
211
+ radio: true,
212
+ pageRemote: true,
213
+ filterable: true,
214
+ remoteMethod: function (val, cb, show, pageIndex) {
215
+ $.ajax('/missions/sales_place', {
216
+ method: 'get',
217
+ data: {
218
+ q: val,
219
+ page: pageIndex
220
+ },
221
+ dataType: 'json',
222
+ success: function (res) {
223
+ var data = res.data;
224
+ if (res.code == 0) {
225
+ cb(res.data, res.count);
226
+ } else {
227
+ layer.msg(res.msg, {time: 2000, icon: 2, shade: 0.01});
228
+ }
229
+ }
230
+ })
231
+ }
232
+ })
233
+ // index_place_list.setValue(gon.place)
234
+
235
+ var data = form.val("search_form");
236
+ // data.business_year = gon.business_year;
237
+ // data.business_type = business_type_list.getValue('valueStr')
238
+ // data.business_step = business_step_list.getValue('valueStr');
239
+ // data.staff_id = staff_list.getValue('valueStr');
240
+ // data.contract = 'contract';
241
+
242
+ table = layui.table;
243
+ var cols_table = [
244
+ [
245
+ {
246
+ field: 'id',
247
+ width: 60,
248
+ title: '序号', type: 'numbers'
249
+ },
250
+ {
251
+ field: 'name',
252
+ width: 170,
253
+ title: '项目名称',
254
+ templet: '<div><a href="javascript:void(0);" class="layui-table-link" lay-event="show_business"><span title="{{d.name}}">{{d.name}}</span></a></div>'
255
+ },
256
+ {
257
+ field: 'school',
258
+ width: 150,
259
+ title: '单位',
260
+ templet: '#school_name'
261
+ },
262
+ {
263
+ field: 'department',
264
+ width: 150,
265
+ title: '部门'
266
+ },
267
+ {
268
+ field: 'p_stage',
269
+ width: 90,
270
+ title: '阶段'
271
+ },
272
+ {
273
+ field: 'p_state',
274
+ width: 90,
275
+ title: '状态',
276
+ templet: '#statusTpl'
277
+ },
278
+ {
279
+ field: 'p_staff',
280
+ width: 150,
281
+ title: '指派人'
282
+ },
283
+ {
284
+ field: 'p_sale_staff',
285
+ width: 150,
286
+ title: '销售经理'
287
+ },
288
+ {
289
+ field: 'p_money',
290
+ width: 100,
291
+ title: '回款'
292
+ },
293
+ {
294
+ field: 'bidded_date',
295
+ width: 105,
296
+ title: '中标时间'
297
+ },
298
+ {
299
+ field: 'signed_date',
300
+ width: 120,
301
+ title: '合同签订时间'
302
+ },
303
+ {
304
+ field: 'p_actual_money_time',
305
+ width: 120,
306
+ title: '实际回款时间'
307
+ },
308
+ {
309
+ field: 'p_difficulty',
310
+ width: 100,
311
+ title: '难易度'
312
+ },
313
+ {
314
+ field: 'p_special',
315
+ width: 100,
316
+ title: '定制'
317
+ },
318
+ {
319
+ field: 'o_business_deployment',
320
+ width: 105,
321
+ title: '类型'
322
+ },
323
+ {
324
+ field: 'p_content',
325
+ width: 100,
326
+ title: '问题备注'
327
+ },
328
+ {
329
+ field: 'p_deleter',
330
+ width: 100,
331
+ title: '移除人'
332
+ },
333
+ {
334
+ title: '操作',
335
+ minWidth: 220,
336
+ toolbar: '#currentTableBar',
337
+ align: "center",
338
+ fixed: 'right'
339
+ }
340
+ ]
341
+ ]
342
+
343
+ var business_table = table.render({
344
+ elem: '#contact_table',
345
+ url: '/missions/projects',
346
+ autoSort: false,
347
+ where: {q: data},
348
+ defaultToolbar: [],
349
+ toolbar: '#bussinessBar',
350
+ title: '商机数据表',
351
+ totalRow: true,//开启合并行
352
+ cols: cols_table,
353
+
354
+ limit: 20,
355
+ limits: [10, 15, 20, 30, 40, 50, 60, 70, 80, 90],
356
+ page: true,
357
+ skin: 'line',
358
+ done: function (res, curr, coun) {
359
+ exportData = res.data;
360
+ }
361
+ });
362
+
363
+ function pre_follow(id, name) {
364
+ var content = miniPage.getHrefContent('/missions/projects/history?id=' + id);
365
+ var openWH = miniPage.getOpenWidthHeight();
366
+ history_index = layer.open({
367
+ title: '历史记录',
368
+ type: 1,
369
+ shade: 0.2,
370
+ maxmin: true,
371
+ shadeClose: true,
372
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
373
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
374
+ content: content
375
+ });
376
+ $(window).on("resize", function () {
377
+ layer.full(index);
378
+ });
379
+ }
380
+
381
+ function time_line(id, name) {
382
+ business_id = id
383
+ business_name = name;
384
+ var content = miniPage.getHrefContent('/missions/businesses/time_line?business_id=' + id);
385
+ var openWH = miniPage.getOpenWidthHeight();
386
+ sindex = layer.open({
387
+ title: '商机列表/' + name + '的跟进时间线',
388
+ type: 1,
389
+ shade: 0.2,
390
+ maxmin: true,
391
+ shadeClose: true,
392
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
393
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
394
+ content: content
395
+ });
396
+ $(window).on("resize", function () {
397
+ layer.full(sindex);
398
+ });
399
+ }
400
+
401
+
402
+ function deleteBusiness(id, name) {
403
+ layer.confirm('确定删除' + name, function (index) {
404
+ request.delete('missions/businesses/' + id, {}, function (res) {
405
+ layer.close(index);
406
+ table.reload("contact_table", {url: '/missions/businesses/contract'})
407
+ })
408
+ });
409
+ }
410
+
411
+
412
+ var sort = {}, search = data;
413
+
414
+ // table.on('sort(contact_table)', function (obj) {
415
+ // var data = form.val("search_form");
416
+ // sort.field = obj.field;
417
+ // sort.order = obj.type;
418
+ // table.reload('contact_table', {
419
+ // url: '/missions/businesses/contract',
420
+ // initSort: obj,
421
+ // where: {
422
+ // sort: sort,
423
+ // q: search
424
+ // }
425
+ // });
426
+ // })
427
+ //
428
+ // // 监听搜索操作
429
+ // form.on('submit(search_bussiness_contract)', function (data) {
430
+ // data.field.contract = 'contract';
431
+ //
432
+ // // if (search['clazz']) {
433
+ // // data.field['clazz'] = search['clazz']
434
+ // // }
435
+ // search = data.field
436
+ // table.reload('contact_table', {
437
+ // url: '/missions/projects',
438
+ // page: {
439
+ // curr: 1
440
+ // },
441
+ // where: {q: search, sort: sort}
442
+ // }, 'data');
443
+ //
444
+ // return false;
445
+ // });
446
+
447
+ // table.on('sort(ideas_table)', function (obj) {
448
+ // sort.field = obj.field;
449
+ // sort.order = obj.type;
450
+ // table.reload('contact_table', {
451
+ // initSort: obj,
452
+ // where: {
453
+ // sort: sort,
454
+ // q: search
455
+ // }
456
+ // });
457
+ // })
458
+
459
+ // 监听搜索操作
460
+ form.on('submit(search_bussiness_contract)', function (data) {
461
+ search = data.field
462
+ table.reload('contact_table', {
463
+ page: {
464
+ curr: 1
465
+ },
466
+ where: {q: search, sort: sort}
467
+ }, 'data');
468
+ return false;
469
+ });
470
+
471
+ form.on('submit(show_hide_contract)', function (data) {
472
+ $(".show_item_contract").toggle()
473
+ return false;
474
+ });
475
+
476
+ form.on('submit(reset_business_search)', function (data) {
477
+ var field = data.field;
478
+ form.val('search_form', {
479
+ name: '', department: '', bidded_date: '', signed_date: '', search_p_actual_money_time: '',
480
+ p_stage: '', p_state: '', p_special: '', p_difficulty: '', o_business_deployment: ''
481
+ })
482
+ // business_type_list.setValue([])
483
+ // business_step_list.setValue([])
484
+ // index_place_list.setValue([])
485
+ // staff_list.setValue([])
486
+
487
+ return false;
488
+ });
489
+
490
+ table.on('tool(contact_table)', function (obj) {
491
+ var data = obj.data;
492
+ id = data.id
493
+ if (obj.event === 'add_event') { // 监听添加操作
494
+ business_id = data.id
495
+ var content = miniPage.getHrefContent('/missions/projects/detail?id=' + data.id);
496
+ var openWH = miniPage.getOpenWidthHeight();
497
+ detail_index = layer.open({
498
+ title: '详情',
499
+ type: 1,
500
+ shade: 0.2,
501
+ maxmin: true,
502
+ shadeClose: true,
503
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
504
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
505
+ content: content,
506
+ success: function (layero, index) {
507
+ form.render('select');
508
+ }
509
+ });
510
+ $(window).on("resize", function () {
511
+ layer.full(sale_plan_index);
512
+ });
513
+ } else if (obj.event === 'edit') {
514
+ var content = miniPage.getHrefContent('/missions/projects/' + id + '/edit');
515
+ var openWH = miniPage.getOpenWidthHeight();
516
+ edit_index = layer.open({
517
+ title: '编辑',
518
+ type: 1,
519
+ shade: 0.2,
520
+ maxmin: true,
521
+ shadeClose: true,
522
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
523
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
524
+ content: content
525
+ });
526
+ $(window).on("resize", function () {
527
+ layer.full(edit_index);
528
+ });
529
+ return false;
530
+ } else if (obj.event === 'delete') {
531
+ layer.confirm('确定删除' + data.name, function (index) {
532
+ request.delete('missions/projects/' + data.id, {}, function (res) {
533
+ layer.close(index);
534
+ table.reload('contact_table', {
535
+ done: function () {
536
+ }
537
+ });
538
+ })
539
+ });
540
+ } else if (obj.event === 'recycle') {
541
+ layer.confirm('确定恢复' + data.name, function (index) {
542
+ request.post('missions/projects/recycle?id=' + data.id, {}, function (res) {
543
+ layer.close(index);
544
+ table.reload('contact_table', {
545
+ done: function () {
546
+ }
547
+ });
548
+ })
549
+ });
550
+ } else if (obj.event === 'add_follow') { // 监听添加操作
551
+ business_id = parent.business_id
552
+ var content = miniPage.getHrefContent('/missions/businesses/new_follow_record?id=' + parent.id);
553
+ var openWH = miniPage.getOpenWidthHeight();
554
+ sale_plan_index = layer.open({
555
+ title: '添加商机跟进记录',
556
+ type: 1,
557
+ shade: 0.2,
558
+ maxmin: true,
559
+ shadeClose: true,
560
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
561
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
562
+ content: content,
563
+ success: function (layero, index) {
564
+ form.render('select');
565
+ }
566
+ });
567
+ $(window).on("resize", function () {
568
+ layer.full(index);
569
+ });
570
+ } else if (obj.event === 'addWeek') {
571
+ var content = miniPage.getHrefContent('/missions/plans/new_week?business_id=' + obj.data.id);
572
+ var openWH = miniPage.getOpenWidthHeight();
573
+
574
+ sindex = layer.open({
575
+ title: '添加周计划',
576
+ type: 1,
577
+ shade: 0.2,
578
+ maxmin: true,
579
+ shadeClose: true,
580
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
581
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
582
+ content: content
583
+ });
584
+ $(window).on("resize", function () {
585
+ layer.full(sindex);
586
+ });
587
+ } else if (obj.event === 'addMonth') {
588
+ var content = miniPage.getHrefContent('/missions/plans/new_month?business_id=' + obj.data.id);
589
+ var openWH = miniPage.getOpenWidthHeight();
590
+ sindex = layer.open({
591
+ title: '添加月计划',
592
+ type: 1,
593
+ shade: 0.2,
594
+ maxmin: true,
595
+ shadeClose: true,
596
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
597
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
598
+ content: content
599
+ });
600
+ $(window).on("resize", function () {
601
+ layer.full(sindex);
602
+ });
603
+
604
+ } else if (obj.event === 'show_keys') {
605
+ business_id = obj.data.id
606
+ follow_up_id = obj.data.follow_up_id;
607
+ content = miniPage.getHrefContent('/missions/businesses/show_keys');
608
+ openWH = miniPage.getOpenWidthHeight();
609
+ index = layer.open({
610
+ title: '关键人',
611
+ type: 1,
612
+ shade: 0.2,
613
+ maxmin: true,
614
+ shadeClose: true,
615
+ area: [openWH[0] + 'px', openWH[1] + 'px'],
616
+ offset: [openWH[2] + 'px', openWH[3] + 'px'],
617
+ content: content,
618
+ success: function (layero, index) {
619
+ }
620
+ });
621
+ $(window).on("resize", function () {
622
+ layer.full(index);
623
+ });
624
+ } else if (obj.event === 'show_follow') {
625
+ pre_follow(obj.data.id, obj.data.name);
626
+ } else if (obj.event == 'show_business') {
627
+ pre_follow(obj.data.id, obj.data.name)
628
+ }
629
+ });
630
+
631
+
632
+ table.on('toolbar(contact_table)', function (obj) {
633
+ if (obj.event === 'mine') {
634
+ // search = {"clazz": "me"}
635
+ // business_type_list.setValue([])
636
+ table.reload('contact_table', {
637
+ url: '/missions/projects?is_deleted=true',
638
+ cols: cols_table,
639
+ page: {
640
+ curr: 1
641
+ },
642
+ where: {q: search, sort: sort}
643
+ }, 'data');
644
+ form.val('search_form', {
645
+ name: '', department: '', bidded_date: '', signed_date: '', search_p_actual_money_time: '',
646
+ p_stage: '', p_state: '', p_special: '', p_difficulty: '', o_business_deployment: ''
647
+ })
648
+ $(".my-btn").addClass("selected-btn");
649
+ return false;
650
+ } else if (obj.event === 'project_list') {
651
+ // search = {"clazz": "me"}
652
+ // business_type_list.setValue([])
653
+ table.reload('contact_table', {
654
+ url: '/missions/projects',
655
+ cols: cols_table,
656
+ page: {
657
+ curr: 1
658
+ },
659
+ where: {q: search, sort: sort}
660
+ }, 'data');
661
+ form.val('search_form', {
662
+ name: '', department: '', bidded_date: '', signed_date: '', search_p_actual_money_time: '',
663
+ p_stage: '', p_state: '', p_special: '', p_difficulty: '', o_business_deployment: ''
664
+ })
665
+ $(".project_list-btn").addClass("selected-btn");
666
+ return false;
667
+ }
668
+ });
669
+
670
+
671
+ })
672
+ ;
673
+ </script>
674
+ <style>
675
+ .layui-table-tool-temp {
676
+ padding-right: 30px;
677
+ !important;
678
+ }
679
+
680
+ .layui-table-fixed .layui-table-body {
681
+ height: auto !important;
682
+ }
683
+
684
+ .layui-table-fixed.layui-hide {
685
+ display: block !important;
686
+ }
687
+
688
+ </style>