educode_sales 0.9.97 → 0.9.98

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 312c157ed210ab8e0ada99a141e3ba4565e87d164cfa03efb3448b90227a113e
4
- data.tar.gz: afd966def27af48056c7ece566a3fc6b87f47430ccbe848785d0d44303edbea8
3
+ metadata.gz: dc83991c421ec745be1b0b4e1b78bd38327b29c3463e1ed43e0253a602305ffa
4
+ data.tar.gz: 237c8dfda5375b0ca1fdf8672361890f2acbb2054fa974b089d41de26fbbb130
5
5
  SHA512:
6
- metadata.gz: 9d88c0be318d3a494a792722ec2cc820f05d4ed9354a81da2e969f57194eebec448b779518f3911c5d4c102902f2cf995edfc2c0fb0781b69d360b460d4e22ff
7
- data.tar.gz: 02f8787c4223c8e6950f7d7b8cc1f30ab914ed110bd2fb4186f56601b81e6d44ca0b5be4a7b05253a4de6d590d06a97a2c5d7a5f2a75c7abb3fb503188058d80
6
+ metadata.gz: 5798c8ef35a26bbd366b2ff2e5fcca79a16d55984ba9a13ae4a2d9b2161bdd1bd45bd285b914f8b9bfa11c1e10b3f4d1d7114fb18c086065562f85afe71cfbaf
7
+ data.tar.gz: 2469abce54faa1b52c5431a276ee01752829fb3e399c1831f6d33a84ef5b52aed43abb6980baf679afd3fd3d00dbc5a032ef4eb5157cf77469b7527c71de575b
@@ -428,6 +428,33 @@ module EducodeSales
428
428
  gon.watche_ids = Staff.all.map { |d| {name: d.user&.real_name, value: d.id, selected: staff_ids.include?(d.id)}}
429
429
  gon.department = {value: @business.department_id, name: "#{@business.department&.school&.name}-#{@business.department&.name}"}
430
430
  gon.value = @business.department_id
431
+
432
+
433
+
434
+ if @business.activity
435
+ gon.activity = [{value: @business.activity_id, name: @business.activity.name}]
436
+ gon.activity_id = @business.activity_id
437
+ else
438
+ gon.activity = []
439
+ gon.activity_id = ''
440
+ end
441
+
442
+ if @business.place
443
+ gon.place = [{value: @business.place_id, name: @business.place.name}]
444
+ gon.place_id = @business.place_id
445
+ else
446
+ gon.place = []
447
+ gon.place_id = ''
448
+ end
449
+
450
+ if @business.customer
451
+ gon.customer = [{value: @business.customer_id, name: "#{@business.customer.school.name} #{@business.customer.name}"}]
452
+ gon.customer_id = @business.customer_id
453
+ else
454
+ gon.customer = []
455
+ gon.customer_id = ''
456
+ end
457
+
431
458
  render layout: false
432
459
  end
433
460
 
@@ -454,7 +481,10 @@ module EducodeSales
454
481
  end
455
482
  end
456
483
 
457
- if business.update(name: params[:name], department_id: department.id, source: params[:source], school_id: department.school_id)
484
+ if business.update(name: params[:name], department_id: department.id, source: params[:source], school_id: department.school_id,
485
+ activity_id: params[:activity_id], place_id: params[:place_id], customer_id: params[:customer_id],
486
+ company_source: params[:company_source], phone: params[:phone], email: params[:email], partner: params[:partner], invite_info: params[:invite_info], friend: params[:friend]
487
+ )
458
488
  if params[:merge_business_ids].present?
459
489
  merge_business = Business.where(id: params[:merge_business_ids].split(","))
460
490
  merge_business.each do |b|
@@ -92,5 +92,18 @@ module EducodeSales
92
92
  @places = @places.page(params[:page]).per(10)
93
93
  end
94
94
 
95
+
96
+ def search_activity
97
+ @data = Activity.where("name like ?", "%#{params[:q]}%").limit(20)
98
+ end
99
+
100
+ def search_customer
101
+ part_a_ids = EducodeSales::CustomerFollow.all.pluck(:school_id)
102
+ part_b_ids = EducodeSales::Business.pluck(:school_id)
103
+ school_ids = (part_a_ids + part_b_ids + EducodeSales::CustomerAdd.all.pluck(:school_id)).uniq
104
+ @data = Department.joins(:school).where("schools.name like ?", "%#{params[:q]}%").where("schools.id in (?)", school_ids).limit(20)
105
+ p @data
106
+ end
107
+
95
108
  end
96
109
  end
@@ -12,6 +12,10 @@ module EducodeSales
12
12
  belongs_to :p_sale_staff, class_name: 'Staff', optional: true
13
13
  belongs_to :p_deleter, class_name: 'Staff', optional: true
14
14
 
15
+ belongs_to :place, class_name: 'Place', optional: true
16
+ belongs_to :customer, class_name: 'Department', optional: true
17
+ belongs_to :activity, class_name: 'Activity', optional: true
18
+
15
19
  has_many :sale_plans
16
20
  has_many :follow_ups
17
21
  has_many :business_clazz_changes
@@ -16,12 +16,68 @@
16
16
  </div>
17
17
  <br>
18
18
  <div class="layui-inline" style="padding-top: 20px">
19
- <label class="layui-form-label ">商机来源</label>
20
- <input id="source" type="text" name="source" autocomplete="off" class="layui-input" value="<%=@business.source %>" style="width: 300px;" placeholder="请输入商机来源">
19
+ <label class="layui-form-label required">商机来源</label>
20
+ <input id="source" type="text" name="source" autocomplete="off" lay-verify="required" class="layui-input" value="<%=@business.source %>" style="width: 300px;" placeholder="请输入商机来源">
21
21
  </div>
22
22
  <div class="layui-inline" style="padding-top: 20px">
23
23
  <p style="padding-left: 40px">请填写提供本商机的人名(如‘张明’);如果为非头歌用户,请增加单位信息(如‘张明,华为公司’)</p>
24
24
  </div>
25
+ <div class="layui-form-item" style="padding-top: 20px">
26
+ <label class="layui-form-label">会议活动</label>
27
+ <div class="layui-input-inline" style="line-height: 38px;">
28
+ <div id="activity" style="width: 300px"></div>
29
+ </div>
30
+ </div>
31
+ <div class="layui-form-item">
32
+ <label class="layui-form-label">渠道代理:</label>
33
+ <div class="layui-input-inline" style="line-height: 38px;">
34
+ <div id="place" style="width: 300px"></div>
35
+ </div>
36
+ </div>
37
+ <div class="layui-form-item">
38
+ <label class="layui-form-label">客户</label>
39
+ <div class="layui-input-inline" style="line-height: 38px;">
40
+ <div id="customer" style="width: 300px"></div>
41
+ </div>
42
+ </div>
43
+ <div class="layui-inline">
44
+ <label class="layui-form-label">公司资源</label>
45
+ <div class="layui-input-block">
46
+ <input type="text" name="company_source" autocomplete="off" class="layui-input" value="<%= @business.company_source %>">
47
+ </div>
48
+ </div>
49
+ <div class="layui-inline">
50
+ <label class="layui-form-label">400电话</label>
51
+ <div class="layui-input-block">
52
+ <input type="text" name="phone" autocomplete="off" class="layui-input" value="<%= @business.phone %>">
53
+ </div>
54
+ </div>
55
+ <div class="layui-inline">
56
+ <label class="layui-form-label">商务邮箱</label>
57
+ <div class="layui-input-block">
58
+ <input type="text" name="email" autocomplete="off" class="layui-input" value="<%= @business.email %>">
59
+ </div>
60
+ </div>
61
+
62
+ <div class="layui-inline">
63
+ <label class="layui-form-label">合作伙伴</label>
64
+ <div class="layui-input-block">
65
+ <input type="text" name="partner" autocomplete="off" class="layui-input" value="<%= @business.partner %>">
66
+ </div>
67
+ </div>
68
+ <div class="layui-inline">
69
+ <label class="layui-form-label">招标信息</label>
70
+ <div class="layui-input-block">
71
+ <input type="text" name="invite_info" autocomplete="off" class="layui-input" value="<%= @business.invite_info %>">
72
+ </div>
73
+ </div>
74
+
75
+ <div class="layui-inline">
76
+ <label class="layui-form-label">朋友</label>
77
+ <div class="layui-input-block">
78
+ <input type="text" name="friend" autocomplete="off" class="layui-input" value="<%= @business.friend %>">
79
+ </div>
80
+ </div>
25
81
  <% if can?(:merge_business, EducodeSales::Business) %>
26
82
  <div class="layui-inline-block" style="padding-top: 20px">
27
83
  <label class="layui-form-label ">合并商机</label>
@@ -133,6 +189,90 @@
133
189
  data: []
134
190
  })
135
191
 
192
+ var activity_id = gon.activity_id;
193
+ var activity_select = selectInput.render({
194
+ elem: '#activity',
195
+ name: 'activity_id', // 渲染的input的name值
196
+ layFilter: 'test', //同layui form参数lay-filter
197
+ // layVerify: 'required', //同layui form参数lay-verify
198
+ layVerType: 'tips', // 同layui form参数lay-verType
199
+ layReqText: '请填写文本', //同layui form参数lay-ReqText
200
+ initValue: gon.activity_id, // 渲染初始化默认值
201
+ hasSelectIcon: false,
202
+ placeholder: '请输入会议活动', // 渲染的inputplaceholder值
203
+ data: gon.activity,
204
+ remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
205
+ remoteMethod: function (value, cb) { // 远程搜索的回调函数
206
+ if (!value) {
207
+ activity_id = "";
208
+ return cb([]);
209
+ }
210
+ request.get('missions/search_activity?q=' + value, {}, function (res) {
211
+ if (res.data.length == 0) {
212
+ activity_select.emptyValue();
213
+ return cb([])
214
+ }
215
+ return cb(res)
216
+ })
217
+ }
218
+ });
219
+
220
+ var place_id = gon.place_id;
221
+ var place_select = selectInput.render({
222
+ elem: '#place',
223
+ name: 'place_id', // 渲染的input的name值
224
+ layFilter: 'test', //同layui form参数lay-filter
225
+ // layVerify: 'required', //同layui form参数lay-verify
226
+ layVerType: 'tips', // 同layui form参数lay-verType
227
+ layReqText: '请填写文本', //同layui form参数lay-ReqText
228
+ initValue: gon.place_id, // 渲染初始化默认值
229
+ hasSelectIcon: false,
230
+ placeholder: '请输入渠道代理', // 渲染的inputplaceholder值
231
+ data: gon.place,
232
+ remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
233
+ remoteMethod: function (value, cb) { // 远程搜索的回调函数
234
+ if (!value) {
235
+ place_id = "";
236
+ return cb([]);
237
+ }
238
+ request.get('missions/sales_place?q=' + value, {}, function (res) {
239
+ if (res.data.length == 0) {
240
+ place_select.emptyValue();
241
+ return cb([])
242
+ }
243
+ return cb(res)
244
+ })
245
+ }
246
+ });
247
+
248
+ var customer_id = gon.customer_id;
249
+ var customer_select = selectInput.render({
250
+ elem: '#customer',
251
+ name: 'customer_id', // 渲染的input的name值
252
+ layFilter: 'test', //同layui form参数lay-filter
253
+ // layVerify: 'required', //同layui form参数lay-verify
254
+ layVerType: 'tips', // 同layui form参数lay-verType
255
+ layReqText: '请填写文本', //同layui form参数lay-ReqText
256
+ initValue: gon.customer_id, // 渲染初始化默认值
257
+ hasSelectIcon: false,
258
+ placeholder: '请输入客户', // 渲染的inputplaceholder值
259
+ data: gon.customer,
260
+ remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
261
+ remoteMethod: function (value, cb) { // 远程搜索的回调函数
262
+ if (!value) {
263
+ customer_id = "";
264
+ return cb([]);
265
+ }
266
+ request.get('missions/search_customer?q=' + value, {}, function (res) {
267
+ if (res.data.length == 0) {
268
+ customer_select.emptyValue();
269
+ return cb([])
270
+ }
271
+ return cb(res)
272
+ })
273
+ }
274
+ });
275
+
136
276
  // 当前弹出层,防止ID被覆盖
137
277
  var parentIndex = layer.index;
138
278
 
@@ -143,9 +283,11 @@
143
283
  return false;
144
284
  } else {
145
285
  var field = data.field;
146
- console.log('field', field)
147
286
  field.department_id = department.getValue() || department_id;
148
287
  field.merge_business_ids = data.field.merge_business_ids;
288
+ field.activity_id = activity_select.getValue() || activity_id;
289
+ field.place_id = place_select.getValue() || place_id;
290
+ field.customer_id = customer_select.getValue() || customer_id;
149
291
  request.authPut("missions/businesses/" + parent.id, field, function (res) {
150
292
  if (res.success == false) {
151
293
  layer.alert(res.msg)
@@ -0,0 +1,8 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.value d.id
4
+ json.name d.name
5
+ end
6
+ end
7
+ json.code 0
8
+ json.msg 'succcess'
@@ -0,0 +1,8 @@
1
+ json.data do
2
+ json.array! @data do |d|
3
+ json.value d.id
4
+ json.name "#{d.school.name} #{d.name}"
5
+ end
6
+ end
7
+ json.code 0
8
+ json.msg 'succcess'
data/config/routes.rb CHANGED
@@ -17,6 +17,8 @@ EducodeSales::Engine.routes.draw do
17
17
  get :staff_business, to: "home#staff_business"
18
18
  get :staff_departments, to: "home#staff_departments"
19
19
  get :filter, to: "application#filter"
20
+ get :search_activity, to: "home#search_activity"
21
+ get :search_customer, to: "home#search_customer"
20
22
 
21
23
 
22
24
  resources :sessions do
@@ -0,0 +1,13 @@
1
+ class AddActivityEducodeSalesBusiness < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :educode_sales_businesses, :activity_id, :integer
4
+ add_column :educode_sales_businesses, :place_id, :integer
5
+ add_column :educode_sales_businesses, :customer_id, :integer
6
+ add_column :educode_sales_businesses, :company_source, :string
7
+ add_column :educode_sales_businesses, :phone, :string
8
+ add_column :educode_sales_businesses, :email, :string
9
+ add_column :educode_sales_businesses, :partner, :string
10
+ add_column :educode_sales_businesses, :invite_info, :string
11
+ add_column :educode_sales_businesses, :friend, :string
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module EducodeSales
2
- VERSION = '0.9.97'
2
+ VERSION = '0.9.98'
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.97
4
+ version: 0.9.98
5
5
  platform: ruby
6
6
  authors:
7
7
  - anke1460
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-19 00:00:00.000000000 Z
11
+ date: 2023-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -355,6 +355,8 @@ files:
355
355
  - app/views/educode_sales/home/sales_place.json.jbuilder
356
356
  - app/views/educode_sales/home/sales_staff.json.jbuilder
357
357
  - app/views/educode_sales/home/search.json.jbuilder
358
+ - app/views/educode_sales/home/search_activity.json.jbuilder
359
+ - app/views/educode_sales/home/search_customer.json.jbuilder
358
360
  - app/views/educode_sales/home/search_edu_teacher.json.jbuilder
359
361
  - app/views/educode_sales/home/search_edu_user.json.jbuilder
360
362
  - app/views/educode_sales/home/search_operation_teacher.json.jbuilder
@@ -679,6 +681,7 @@ files:
679
681
  - db/migrate/20230501034307_create_educode_sales_follow_up_trends.rb
680
682
  - db/migrate/20230502142912_create_educode_sales_product_catalogs.rb
681
683
  - db/migrate/20230510144317_create_educode_sales_sales_details.rb
684
+ - db/migrate/20230520023902_add_activity_educode_sales_business.rb
682
685
  - lib/educode_sales.rb
683
686
  - lib/educode_sales/engine.rb
684
687
  - lib/educode_sales/version.rb
@@ -702,7 +705,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
702
705
  - !ruby/object:Gem::Version
703
706
  version: '0'
704
707
  requirements: []
705
- rubygems_version: 3.0.0
708
+ rubygems_version: 3.0.9
706
709
  signing_key:
707
710
  specification_version: 4
708
711
  summary: Summary of EducodeSales.