educode_sales 0.9.55 → 0.9.56

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.
@@ -24,6 +24,7 @@ json.data do
24
24
  end
25
25
  end
26
26
 
27
+ json.staff_manages d.last_follow_up&.assign_follow_ups.present? ? (d.last_follow_up.assign_follow_ups.map{ |d| d.staff.user.real_name}.join("、")) : d.staff&.user&.real_name
27
28
  json.divide_rate d.divide_rate
28
29
  json.divide_money d.divide_amount
29
30
  json.budget_amount d.budget_amount
@@ -2,6 +2,9 @@
2
2
  <ul class="layui-tab-title">
3
3
  <li class="layui-this follows_li">跟进动态</li>
4
4
  <li class="businesses_list_li" >商机列表</li>
5
+ <% if can?(:contract_business, EducodeSales::Business) %>
6
+ <li class="businesses_contract_li" >合同管理</li>
7
+ <% end %>
5
8
  </ul>
6
9
  <div class="layui-tab-content">
7
10
  <div class="layui-tab-item follows_div layui-show">
@@ -136,6 +139,11 @@
136
139
  </div>
137
140
  </div>
138
141
  </div>
142
+ <% if can?(:contract_business, EducodeSales::Business) %>
143
+ <div class="layui-tab-item businesses_contract_div">
144
+ <%=render 'contract' %>
145
+ </div>
146
+ <% end %>
139
147
  </div>
140
148
  </div>
141
149
  <script type="text/html" id="bussinessBar">
@@ -158,10 +166,13 @@
158
166
  <button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right area-btn" lay-event="area">区域管理商机</button>
159
167
  <% end %>
160
168
  <button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right all-btn" lay-event="all"> 全部商机</button>
169
+ <% if can?(:delete_list, EducodeSales::Business) %>
170
+ <button class="layui-btn layui-btn-primary layui-border-green layui-btn-sm pull-right delete-btn" lay-event="delete_list">删除的商机</button>
171
+ <% end %>
161
172
  </div>
162
173
  </script>
163
174
  <script type="text/html" id="currentTableBar">
164
- <%unless !can?(:add_follow, EducodeSales::Business) && can?(:self_add_follow, EducodeSales::Business)%>
175
+ <%unless !can?(:add_follow, EducodeSales::Business) && can?(:self_add_follow, EducodeSales::Business) %>
165
176
  <% if can? :add_follow, EducodeSales::Business %>
166
177
  <% if @current_admin.is_admin %>
167
178
  <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="add_event">添加跟进记录</a>
@@ -418,6 +429,12 @@
418
429
  title: '阶段',
419
430
  hide: gon.filter.stage
420
431
  },
432
+ {
433
+ field: 'staff_manages',
434
+ width: 150,
435
+ title: '销售经理',
436
+ hide: gon.filter.staff_manages
437
+ },
421
438
  {
422
439
  field: 'source',
423
440
  width: 90,
@@ -590,7 +607,7 @@
590
607
  minWidth: 220,
591
608
  toolbar: '#currentTableBar',
592
609
  align: "center",
593
- fixed: 'right',
610
+ fixed: 'right'
594
611
  }
595
612
  ]
596
613
  ]
@@ -981,6 +998,8 @@
981
998
  $(".s-btn").addClass("selected-btn");
982
999
  } else if (search['clazz'] == 'area') {
983
1000
  $(".area-btn").addClass("selected-btn");
1001
+ } else if (search['clazz'] == 'delete_list') {
1002
+ $(".delete-btn").addClass("selected-btn");
984
1003
  } else {
985
1004
  $(".all-btn").addClass("selected-btn");
986
1005
  }
@@ -1037,7 +1056,6 @@
1037
1056
  })
1038
1057
  });
1039
1058
  }
1040
-
1041
1059
  if (obj.event === 'add') { // 监听添加操作
1042
1060
  var content = miniPage.getHrefContent('/missions/businesses/new');
1043
1061
  var openWH = miniPage.getOpenWidthHeight();
@@ -1061,7 +1079,9 @@
1061
1079
  page: {
1062
1080
  curr: 1
1063
1081
  },
1064
- where: {q: search, sort: sort}
1082
+ where: {q: search, sort: sort},
1083
+ done: function(res, curr, count){
1084
+ }
1065
1085
  }, 'data');
1066
1086
  form.val('search_form', {
1067
1087
  name: '', department: '', staff_id: '', business_type: '', business_step: '',
@@ -1077,7 +1097,9 @@
1077
1097
  page: {
1078
1098
  curr: 1
1079
1099
  },
1080
- where: {q: search, sort: sort}
1100
+ where: {q: search, sort: sort},
1101
+ done: function(res, curr, count){
1102
+ }
1081
1103
  }, 'data');
1082
1104
  form.val('search_form', {
1083
1105
  name: '', department: '', staff_id: '', business_type: '', business_step: '',
@@ -1094,7 +1116,9 @@
1094
1116
  page: {
1095
1117
  curr: 1
1096
1118
  },
1097
- where: {q: search, sort: sort}
1119
+ where: {q: search, sort: sort},
1120
+ done: function(res, curr, count){
1121
+ }
1098
1122
  }, 'data');
1099
1123
  form.val('search_form', {
1100
1124
  name: '', department: '', staff_id: '', business_type: '', business_step: '',
@@ -1111,7 +1135,9 @@
1111
1135
  page: {
1112
1136
  curr: 1
1113
1137
  },
1114
- where: {q: search, sort: sort}
1138
+ where: {q: search, sort: sort},
1139
+ done: function(res, curr, count){
1140
+ }
1115
1141
  }, 'data');
1116
1142
  form.val('search_form', {
1117
1143
  name: '', department: '', staff_id: '', business_type: '', business_step: '',
@@ -1128,7 +1154,9 @@
1128
1154
  page: {
1129
1155
  curr: 1
1130
1156
  },
1131
- where: {q: search, sort: sort}
1157
+ where: {q: search, sort: sort},
1158
+ done: function(res, curr, count){
1159
+ }
1132
1160
  }, 'data');
1133
1161
  form.val('search_form', {
1134
1162
  name: '', department: '', staff_id: '', business_type: '', business_step: '',
@@ -1137,6 +1165,28 @@
1137
1165
  $(".area-btn").addClass("selected-btn");
1138
1166
  return false;
1139
1167
  }
1168
+ else if (obj.event === 'delete_list') {
1169
+ $(".layui-table-col-special").hide();
1170
+ search = {"clazz": "delete_list"}
1171
+ business_type_list.setValue([])
1172
+ table.reload('businesses_table', {
1173
+ url: '/missions/businesses',
1174
+ page: {
1175
+ curr: 1
1176
+ },
1177
+ where: {q: search, sort: sort}
1178
+ ,done: function(res, curr, count){
1179
+ $(".layui-table-col-special").hide();
1180
+ }
1181
+ }, 'data');
1182
+ form.val('search_form', {
1183
+ name: '', department: '', staff_id: '', business_type: '', business_step: '',
1184
+ place_id: '', date: '', area: ''
1185
+ })
1186
+ $(".delete-btn").addClass("selected-btn");
1187
+
1188
+ return false;
1189
+ }
1140
1190
  else if (obj.event === 'delete') {
1141
1191
  var checkStatus = table.checkStatus('currentTableId'),
1142
1192
  data = checkStatus.data;
@@ -23,7 +23,8 @@ json.data do
23
23
  json.service_end_time d.last_follow_up&.service_start_time.to_s + "-" + d.last_follow_up&.service_end_time.to_s
24
24
  json.created_at d.created_at.to_s
25
25
  json.no_followup_days (d['latest_time'] ? DateTime.parse(Time.now.strftime("%Y-%m-%d")) - DateTime.parse(d['latest_time'].strftime("%Y-%m-%d")) : DateTime.parse(Time.now.strftime("%Y-%m-%d")) - DateTime.parse(d.created_at.strftime("%Y-%m-%d"))).to_i
26
-
26
+
27
+ json.staff_manages d.last_follow_up&.assign_follow_ups.present? ? (d.last_follow_up.assign_follow_ups.map{ |d| d.staff.user.real_name}.join("、")) : d.staff&.user&.real_name
27
28
  json.divide_rate d.divide_rate
28
29
  json.divide_money d.divide_amount.to_f.round(2)
29
30
  json.budget_amount d.budget_amount.to_f.round(2) #d.follow_ups.where(stage_id: @budget_stage_ids).order("created_at desc").first&.total_amount&.round(2) || 0
@@ -227,7 +227,7 @@
227
227
  },
228
228
  {
229
229
  field: 'followup_at',
230
- width: 120,
230
+ width: 180,
231
231
  title: '最新跟进时间',
232
232
  },
233
233
  {
@@ -37,13 +37,6 @@
37
37
  </div>
38
38
  </div>
39
39
  <br>
40
- <div class="layui-inline">
41
- <label class="layui-form-label ">手机号</label>
42
- <div class="layui-input-block" style="width: 188px;">
43
- <input type="text" name="mobile" autocomplete="off" class="layui-input" placeholder="请输入手机号" value="<%= @teacher.mobile %>">
44
- </div>
45
- </div>
46
- <br>
47
40
  <div class="layui-inline">
48
41
  <label class="layui-form-label required">单位部门</label>
49
42
  <div class="layui-input-block" id="add_department2" style="width: 400px"></div>
@@ -20,9 +20,9 @@ json.data do
20
20
  json.actives d.actives
21
21
  json.experience d['experience'] || 0
22
22
  json.grade d['grade'] || 0
23
- json.mobile d.mobile
23
+ json.mobile d.user&.phone || ''
24
24
  json.students d.students_count
25
- json.followup_at d.followup_at.to_s
25
+ json.followup_at d.follow_up&.created_at&.to_s
26
26
  json.latest_time (d['latest_time'] ? DateTime.parse(Time.now.strftime("%Y-%m-%d")) - DateTime.parse(d['latest_time'].strftime("%Y-%m-%d")) : DateTime.parse(Time.now.strftime("%Y-%m-%d")) - DateTime.parse(d.created_at.strftime("%Y-%m-%d"))).to_i
27
27
 
28
28
  json.staff_manage @staff_manages[d.department&.school&.province]&.join(",")
@@ -33,12 +33,6 @@
33
33
  <%= select_tag "source_id", options_for_select(EducodeSales::Common.where(clazz: 'teacher_source').pluck(:name, :id)), { include_blank: true } %>
34
34
  </div>
35
35
  </div>
36
- <div class="layui-inline">
37
- <label class="layui-form-label ">手机号</label>
38
- <div class="layui-input-block" style="width: 188px;">
39
- <input type="text" name="mobile" autocomplete="off" class="layui-input" placeholder="请输入手机号">
40
- </div>
41
- </div>
42
36
  <div class="layui-inline">
43
37
  <label class="layui-form-label ">微信号</label>
44
38
  <div class="layui-input-block" style="width: 188px;">
@@ -0,0 +1,26 @@
1
+ class AddScoreToAssessmentsSettings < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :educode_sales_assessments_settings, :first_quarter_score, :string
4
+ add_column :educode_sales_assessments_settings, :january_score, :string
5
+ add_column :educode_sales_assessments_settings, :february_score, :string
6
+ add_column :educode_sales_assessments_settings, :march_score, :string
7
+ add_column :educode_sales_assessments_settings, :second_quarter_score, :string
8
+ add_column :educode_sales_assessments_settings, :april_score, :string
9
+ add_column :educode_sales_assessments_settings, :may_score, :string
10
+ add_column :educode_sales_assessments_settings, :june_score, :string
11
+ add_column :educode_sales_assessments_settings, :third_quarter_score, :string
12
+ add_column :educode_sales_assessments_settings, :july_score, :string
13
+ add_column :educode_sales_assessments_settings, :august_score, :string
14
+ add_column :educode_sales_assessments_settings, :september_score, :string
15
+ add_column :educode_sales_assessments_settings, :fourth_quarter_score, :string
16
+ add_column :educode_sales_assessments_settings, :october_score, :string
17
+ add_column :educode_sales_assessments_settings, :november_score, :string
18
+ add_column :educode_sales_assessments_settings, :december_score, :string
19
+
20
+
21
+ add_column :educode_sales_assessments_settings, :total_score, :string
22
+ add_column :educode_sales_assessments_settings, :cycle, :integer, default: 1
23
+
24
+ EducodeSales::Permission.find_or_create_by(name: '合同管理', subject: 'Business', action: 'contract_business', clazz: 'business', position: '15')
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.9.55'
2
+ VERSION = '0.9.56'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: educode_sales
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.55
4
+ version: 0.9.56
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-03 00:00:00.000000000 Z
11
+ date: 2023-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -105,7 +105,6 @@ files:
105
105
  - app/assets/images/educode_sales/icon-login.png
106
106
  - app/assets/images/educode_sales/icon.png
107
107
  - app/assets/images/educode_sales/indexLogo.png
108
- - app/assets/images/educode_sales/indexlogo.png
109
108
  - app/assets/images/educode_sales/loading-0.gif
110
109
  - app/assets/images/educode_sales/loading-1.gif
111
110
  - app/assets/images/educode_sales/loading-2.gif
@@ -247,6 +246,7 @@ files:
247
246
  - app/views/educode_sales/assessments/index.json.jbuilder
248
247
  - app/views/educode_sales/assessments/new.html.erb
249
248
  - app/views/educode_sales/assessments/progress.json.jbuilder
249
+ - app/views/educode_sales/businesses/_contract.html.erb
250
250
  - app/views/educode_sales/businesses/_follows.html.erb
251
251
  - app/views/educode_sales/businesses/daily_paper.html.erb
252
252
  - app/views/educode_sales/businesses/edit.html.erb
@@ -554,6 +554,7 @@ files:
554
554
  - db/migrate/20230220144737_add_clazz_id_to_business.rb
555
555
  - db/migrate/20230227061043_create_educode_sales_ideas.rb
556
556
  - db/migrate/20230228063555_create_educode_sales_idea_histories.rb
557
+ - db/migrate/20230306131055_add_score_to_assessments_settings.rb
557
558
  - lib/educode_sales.rb
558
559
  - lib/educode_sales/engine.rb
559
560
  - lib/educode_sales/version.rb
@@ -562,7 +563,7 @@ homepage: https://www.educoder.net
562
563
  licenses:
563
564
  - MIT
564
565
  metadata: {}
565
- post_install_message:
566
+ post_install_message:
566
567
  rdoc_options: []
567
568
  require_paths:
568
569
  - lib
@@ -577,8 +578,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
577
578
  - !ruby/object:Gem::Version
578
579
  version: '0'
579
580
  requirements: []
580
- rubygems_version: 3.0.9
581
- signing_key:
581
+ rubygems_version: 3.0.0
582
+ signing_key:
582
583
  specification_version: 4
583
584
  summary: Summary of EducodeSales.
584
585
  test_files: []