educode_sales 0.9.84 → 0.9.89

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e498fa041334cb4b387425a7a7f7ff49dffffcee5a72e363b61cb9f32167ff06
4
- data.tar.gz: 54d79d72be99cab109f9b40fdd4dd789f72f20d115663abd7d99db70f0ee2527
3
+ metadata.gz: 90a8a2173c7a406ab0cc7e93e394c7112394ad05e264004870d3a7bbe60754db
4
+ data.tar.gz: 1e51f78cda684acf4c051bbc75ced90b7927dd901a7c12466a1f7d68926c36b9
5
5
  SHA512:
6
- metadata.gz: 1e29ad8d3c8dd8c0753dc6662e26c332444cbf10842d308977883c47149c676b0b1c06c515bcfc33e10fe0bfccbc1cecb5ab1c7f2534001c0c1d7a11042a5def
7
- data.tar.gz: 5077f36f7bb732c196608fd15c696c06b3d0cf5c74e32c24495b67eadc8b5527eacb1a545966aeea4e3401410ed0e1fbe23c2fb60aea58a8b5513fd1fd570ba6
6
+ metadata.gz: ef42ae93980e1cad1414a09e6c8a8213d759b1722396b2901839dad11a2a24aa30672e24cf7f2a1c196eac11e366958b75c1b6a4686a739d87722f0a887e4182
7
+ data.tar.gz: caa434156ad1796fdffdf59afccc406ed9723968b6f1bd7856f8df237436cf91a838efee688e7a5b452c73a2a1b33d2cfbb9369b58c92266fd98675d136904d5
@@ -243,6 +243,19 @@ module EducodeSales
243
243
  gon.department = []
244
244
  gon.value = ''
245
245
  end
246
+
247
+ @list = {}
248
+ EducodeSales::ContractDateList.clazzs.each do |d, i|
249
+ @list[d] = [EducodeSales::ContractDateList.new]
250
+ end
251
+
252
+ @last_follow_up.contract_date_lists.each do |d|
253
+ if @list[d.clazz][0].id == nil
254
+ @list[d.clazz][0] = d
255
+ else
256
+ @list[d.clazz] << d
257
+ end
258
+ end
246
259
 
247
260
  render layout: false
248
261
  end
@@ -312,6 +325,8 @@ module EducodeSales
312
325
  end
313
326
 
314
327
  def add_follow_ups
328
+ @business = Business.find(params[:business_id])
329
+ last_follow_up = @business.last_follow_up
315
330
  data = []
316
331
  6.times do |i|
317
332
  data[i] = []
@@ -326,14 +341,18 @@ module EducodeSales
326
341
  end
327
342
  params["#{i+1}_actual_date"].each do |d, v|
328
343
  data[i][d.to_i] << v
344
+ if i == 1 && last_follow_up
345
+ # 验收时间
346
+ last_follow_up.reception_at = v
347
+ end
329
348
  end
349
+
330
350
  end
331
351
  data.each do |d|
332
352
  d.select! { |d| d.delete_if{|f| f == ''}.present? }
333
353
  end
334
354
 
335
- @business = Business.find(params[:business_id])
336
- last_follow_up = @business.last_follow_up
355
+
337
356
 
338
357
  follow_up = last_follow_up.dup
339
358
  follow_up.assign_attributes(follow_up_params)
@@ -454,6 +473,24 @@ module EducodeSales
454
473
  render layout: false
455
474
  end
456
475
 
476
+ def new_sales_detail
477
+ render layout: false
478
+ end
479
+
480
+ def select_product
481
+ render layout: false
482
+ end
483
+
484
+ def sales_detail
485
+ sales_detail = SalesDetail.new(sales_detail_params)
486
+ sales_detail.staff = @current_admin
487
+ if sales_detail.save
488
+ render_success
489
+ else
490
+ render_failure sales_detail
491
+ end
492
+ end
493
+
457
494
  private
458
495
  def follow_up_params
459
496
  params.permit(:o_business_deployment, :plan_signed_date, :bidded_days, :signed_date, :signed_department_id, :service_years, :service_start_time, :service_end_time, :funding_source, :signed_clazz)
@@ -462,5 +499,10 @@ module EducodeSales
462
499
  def product_up_params
463
500
  params.permit(:name, :item_clazz, :brand, :specification, :unit, :param, :source_method, :supplier)
464
501
  end
502
+
503
+ def sales_detail_params
504
+ params.permit(:amount, :price, :total_price, :custom_clazz, :delivery_date, :product_catalog_id, :business_id)
505
+ end
506
+
465
507
  end
466
508
  end
@@ -388,6 +388,7 @@ module EducodeSales
388
388
 
389
389
  end
390
390
  format.js do
391
+ property = params[:property] || nil
391
392
  staff_id = params[:staff_id] || nil
392
393
  @forecast_count_range = params[:forecast_count_range] || "month"
393
394
  forecast_default_dates = ("#{Time.now.year}-01-01".to_date.."#{Time.now.year}-#{Time.now.month}-01".to_date).map { |d| d.strftime("%Y-%m") }.uniq
@@ -398,10 +399,10 @@ module EducodeSales
398
399
  if params[:forecast_date_day].present?
399
400
  date = params[:forecast_date_day].split(" - ")
400
401
  dates = (date[0].to_date..date[1].to_date).map { |d| d.strftime("%Y-%W") }.uniq.select { |d| d.split("-")[1] != '00' }
401
- @forecast_count_data = goal_forecast_week(dates, sale_names, staff_id)
402
+ @forecast_count_data = goal_forecast_week(dates, sale_names, staff_id, property)
402
403
  else
403
404
  forecast_default_dates = ("#{Time.now.year}-01-01".to_date.."#{Time.now.year}-#{Time.now.month}-01".to_date).map { |d| d.strftime("%Y-%W") }.uniq.select { |d| d.split("-")[1] != '00' }
404
- @forecast_count_data = goal_forecast_week(forecast_default_dates, sale_names, staff_id)
405
+ @forecast_count_data = goal_forecast_week(forecast_default_dates, sale_names, staff_id, property)
405
406
  end
406
407
  when "quarter"
407
408
  # 按年
@@ -409,11 +410,11 @@ module EducodeSales
409
410
  date = params[:forecast_date_year].split(" - ")
410
411
  dates = (date[0]..date[1]).to_a
411
412
  dates = dates.map { |d| [d.to_s + "-" + "1", d.to_s + "-" + "2", d.to_s + "-" + "3", d.to_s + "-" + "4"] }.flatten
412
- @forecast_count_data = goal_forecast_quarter(dates, sale_names, staff_id)
413
+ @forecast_count_data = goal_forecast_quarter(dates, sale_names, staff_id, property)
413
414
  else
414
415
  forecast_default_dates = ("#{Time.now.year}-01-01".to_date.."#{Time.now.year}-#{Time.now.month}-01".to_date).map { |d| d.strftime("%Y") }.uniq
415
416
  forecast_default_dates = forecast_default_dates.map { |d| [d.to_s + "-" + "1", d.to_s + "-" + "2", d.to_s + "-" + "3", d.to_s + "-" + "4"] }.flatten
416
- @forecast_count_data = goal_forecast_quarter(forecast_default_dates, sale_names, staff_id)
417
+ @forecast_count_data = goal_forecast_quarter(forecast_default_dates, sale_names, staff_id, property)
417
418
  end
418
419
  when "month" # 按月
419
420
  if params[:forecast_date_month].present?
@@ -421,21 +422,23 @@ module EducodeSales
421
422
  date[0] = (date[0] + "-01").to_date.to_s
422
423
  date[1] = (date[1] + "-01").to_date.end_of_month.to_s
423
424
  dates = ((date[0] + "-01").to_date..(date[1] + "-01").to_date).map { |d| d.strftime("%Y-%m") }.uniq
424
- @forecast_count_data = goal_forecast_month(dates, sale_names, staff_id)
425
+ @forecast_count_data = goal_forecast_month(dates, sale_names, staff_id, property)
425
426
  else
426
- @forecast_count_data = goal_forecast_month(forecast_default_dates, sale_names, staff_id)
427
+ @forecast_count_data = goal_forecast_month(forecast_default_dates, sale_names, staff_id, property)
427
428
  end
428
429
  else
429
430
  # 按年
430
431
  if params[:forecast_date_year].present?
431
432
  date = params[:forecast_date_year].split(" - ")
432
433
  dates = (date[0]..date[1]).to_a
433
- @forecast_count_data = goal_forecast_year(dates, sale_names, staff_id)
434
+ @forecast_count_data = goal_forecast_year(dates, sale_names, staff_id, property)
434
435
  else
435
436
  forecast_default_dates = ("#{Time.now.year}-01-01".to_date.."#{Time.now.year}-#{Time.now.month}-01".to_date).map { |d| d.strftime("%Y") }.uniq
436
- @forecast_count_data = goal_forecast_year(forecast_default_dates, sale_names, staff_id)
437
+ @forecast_count_data = goal_forecast_year(forecast_default_dates, sale_names, staff_id, property)
437
438
  end
438
439
  end
440
+ @forecast_count_data_0 = @forecast_count_data[0]
441
+ @forecast_count_data_1 = @forecast_count_data[1]
439
442
  end
440
443
  end
441
444
  end
@@ -2,5 +2,140 @@ require_dependency "educode_sales/application_controller"
2
2
 
3
3
  module EducodeSales
4
4
  class SalesDetailsController < ApplicationController
5
+
6
+ def index
7
+ respond_to do |format|
8
+ format.js do
9
+ common = Common.find_by(clazz: 'staff_type', name: '销售')
10
+ staffs = Staff.joins(:user).where(job_type: common.id).where.not(role_id: 11)
11
+ @staffs = staffs.map { |d| [d.user.real_name, d.id]}
12
+ gon.place = params[:place_id].present? ? [{ value: params[:place_id], name: EducodeSales::Place.find(params[:place_id]).name }] : []
13
+ gon.staffs = staffs.map { |d| {name: d.user.real_name, value: d.id } }
14
+
15
+ bussiness_type = []
16
+ if params[:type]
17
+ # 项目类型
18
+ bussiness_type = EducodeSales::Business.include_types(params[:type]) || []
19
+ end
20
+
21
+ business_step = []
22
+ if params[:step]
23
+ # 项目阶段
24
+ business_step = EducodeSales::Business.include_steps(params[:step]) || []
25
+ end
26
+
27
+
28
+ gon.business_type = Common.where(clazz: 'business_type').map do |d|
29
+ {value: d.id, name: d.name, selected: bussiness_type.include?(d.extras)}
30
+ end
31
+
32
+ gon.business_step = Common.where(clazz: 'business_step', name: ['已中标', '已签单', '已验收', '回款中', '服务中', '已结束']).order("position").map do |d|
33
+ {value: d.id, name: d.name, selected: business_step.include?(d.name)}
34
+ end
35
+ end
36
+ format.json do
37
+ @sales_details = SalesDetail
38
+ @sales_details = @sales_details.joins(:business).includes(:business, :product_catalog)
39
+
40
+ if params[:q] && params[:q][:signed_date].present?
41
+ date = params[:q][:signed_date].split(" - ")
42
+ @sales_details = @sales_details.joins("
43
+ JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
44
+ ").where("educode_sales_follow_ups.signed_date >= ? AND educode_sales_follow_ups.signed_date <= ?", date[0], date[1])
45
+ end
46
+
47
+ if params[:q] && params[:q][:bidded_date].present?
48
+ date = params[:q][:bidded_date].split(" - ")
49
+ @sales_details = @sales_details.joins("
50
+ JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
51
+ ").where("educode_sales_follow_ups.bidded_date >= ? AND educode_sales_follow_ups.bidded_date <= ?", date[0], date[1])
52
+ end
53
+
54
+ if params[:q].present? && params[:q][:name].present?
55
+ @sales_details = @sales_details.where("educode_sales_businesses.name like ?", "%#{params[:q][:name]}%")
56
+ end
57
+
58
+ if params[:sort].present? && params[:sort][:field]
59
+ @sales_details = @sales_details.order("#{params[:sort][:field]} #{params[:sort][:order]}")
60
+ else
61
+ @sales_details = @sales_details.order("educode_sales_sales_details.created_at desc")
62
+ end
63
+
64
+ if params[:q].present? && params[:q][:business_step].present?
65
+ @sales_details = @sales_details.joins("
66
+ JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
67
+ ").where("educode_sales_follow_ups.stage_id in (?)", params[:q][:business_step].split(",").map(&:to_i))
68
+ end
69
+
70
+
71
+ if params[:q].present? && params[:q][:sales_staff_id].present?
72
+ # 销售经理
73
+ @sales_details = @sales_details.joins("LEFT JOIN educode_sales_assign_follow_ups ON educode_sales_assign_follow_ups.follow_up_id = educode_sales_businesses.last_follow_up_id").
74
+ where("(educode_sales_assign_follow_ups.id IS NOT NULL AND educode_sales_assign_follow_ups.staff_id = ?) OR (educode_sales_assign_follow_ups.id IS NULL AND educode_sales_businesses.staff_id = ?)", params[:q][:sales_staff_id], params[:q][:sales_staff_id])
75
+
76
+ end
77
+
78
+ if params[:q].present? && params[:q][:department].present?
79
+ departments_ids = Department.joins(:school).where("schools.name like ?", "%#{params[:q][:department]}%").pluck(:id)
80
+ @sales_details = @sales_details.joins(business: :department).where("departments.id in (?)", departments_ids)
81
+ end
82
+
83
+ if params[:q].present? && params[:q][:area].present?
84
+ area = EducodeSales::Common.find(params[:q][:area]).name
85
+ if @current_admin.is_admin?
86
+ @sales_details = @sales_details.joins("
87
+ JOIN departments ON educode_sales_businesses.department_id = departments.id
88
+ JOIN schools ON departments.school_id = schools.id
89
+ ").where("province = ?", area)
90
+ else
91
+ level = @current_admin.role.role_areas.find_by(clazz: '商机管理').level
92
+ if level == "区域"
93
+ @sales_details = @sales_details.joins("
94
+ JOIN schools ON departments.school_id = schools.id
95
+ ").where("province = ?", area)
96
+ else
97
+ @sales_details = @sales_details.joins("
98
+ JOIN departments ON educode_sales_businesses.department_id = departments.id
99
+ JOIN schools ON departments.school_id = schools.id
100
+ ").where("province = ?", area)
101
+ end
102
+ end
103
+ end
104
+
105
+ @sales_details = @sales_details.page(params[:page]).per(params[:limit])
106
+ end
107
+ end
108
+ end
109
+
110
+ def destroy
111
+ sales_detail = SalesDetail.find(params[:id])
112
+ if sales_detail.destroy
113
+ render_success
114
+ else
115
+ render_failure sales_detail
116
+ end
117
+ end
118
+
119
+ def edit
120
+ @sale_detail = SalesDetail.find(params[:id])
121
+ @name = [@sale_detail.business.name, @sale_detail.product_catalog.item_clazz, @sale_detail.product_catalog.brand, @sale_detail.product_catalog.specification, @sale_detail.product_catalog.unit, @sale_detail.product_catalog.source_method, @sale_detail.product_catalog.param, @sale_detail.product_catalog.supplier].join(" ")
122
+ render layout: false
123
+ end
124
+
125
+ def update
126
+ sale_detail = SalesDetail.find(params[:id])
127
+ if sale_detail.update(sales_detail_params)
128
+ render_success
129
+ else
130
+ render_failure sale_detail
131
+ end
132
+ end
133
+
134
+ private
135
+
136
+ def sales_detail_params
137
+ params.permit(:amount, :price, :total_price, :custom_clazz, :delivery_date, :product_catalog_id)
138
+ end
139
+
5
140
  end
6
141
  end
@@ -1,9 +1,10 @@
1
1
  module EducodeSales
2
2
  module SaleTrendsHelper
3
3
  NAMES = %w[计划投标额 计划投标额累计 实际中标额 实际中标额累计]
4
- def goal_forecast_quarter(labels, selects, staff_id = nil)
5
- plan_get = plan_get(staff_id, labels, "quarter")
6
- actual_get = actual_get(staff_id, labels, "quarter")
4
+
5
+ def goal_forecast_quarter(labels, selects, staff_id = nil, property)
6
+ plan_get = plan_get(staff_id, labels, "quarter", property)
7
+ actual_get = actual_get(staff_id, labels, "quarter", property)
7
8
  datasets = selects.map.with_index do |select, i|
8
9
  data = if select == NAMES[0]
9
10
  labels.map do |d|
@@ -53,16 +54,21 @@ module EducodeSales
53
54
  borderWidth: 1
54
55
  }
55
56
  end
56
- {
57
+ hash_a = {
58
+ labels: labels,
59
+ datasets: [datasets[0], datasets[2]]
60
+ }
61
+ hash_b = {
57
62
  labels: labels,
58
- datasets: datasets
63
+ datasets: [datasets[1], datasets[3]]
59
64
  }
65
+ [hash_a, hash_b]
60
66
  end
61
67
 
62
- def goal_forecast_week(labels, selects, staff_id = nil)
68
+ def goal_forecast_week(labels, selects, staff_id = nil, property)
63
69
 
64
- plan_get = plan_get(staff_id, labels, "week")
65
- actual_get = actual_get(staff_id, labels, "week")
70
+ plan_get = plan_get(staff_id, labels, "week", property)
71
+ actual_get = actual_get(staff_id, labels, "week", property)
66
72
  datasets = selects.map.with_index do |select, i|
67
73
  data = if select == NAMES[0]
68
74
  labels.map do |d|
@@ -117,15 +123,20 @@ module EducodeSales
117
123
  }
118
124
  end
119
125
 
120
- {
126
+ hash_a = {
121
127
  labels: labels,
122
- datasets: datasets
128
+ datasets: [datasets[0], datasets[2]]
123
129
  }
130
+ hash_b = {
131
+ labels: labels,
132
+ datasets: [datasets[1], datasets[3]]
133
+ }
134
+ [hash_a, hash_b]
124
135
  end
125
136
 
126
- def goal_forecast_month(labels, selects, staff_id = nil)
127
- plan_get = plan_get(staff_id, labels, "month")
128
- actual_get = actual_get(staff_id, labels, "month")
137
+ def goal_forecast_month(labels, selects, staff_id = nil, property)
138
+ plan_get = plan_get(staff_id, labels, "month", property)
139
+ actual_get = actual_get(staff_id, labels, "month", property)
129
140
  datasets = selects.map.with_index do |select, i|
130
141
  data = if select == NAMES[0]
131
142
  labels.map do |d|
@@ -177,15 +188,20 @@ module EducodeSales
177
188
  }
178
189
  end
179
190
 
180
- {
191
+ hash_a = {
181
192
  labels: labels,
182
- datasets: datasets
193
+ datasets: [datasets[0], datasets[2]]
183
194
  }
195
+ hash_b = {
196
+ labels: labels,
197
+ datasets: [datasets[1], datasets[3]]
198
+ }
199
+ [hash_a, hash_b]
184
200
  end
185
201
 
186
- def goal_forecast_year(labels, selects, staff_id = nil)
187
- plan_get = plan_get(staff_id, labels, "year")
188
- actual_get = actual_get(staff_id, labels, "year")
202
+ def goal_forecast_year(labels, selects, staff_id = nil, property)
203
+ plan_get = plan_get(staff_id, labels, "year", property)
204
+ actual_get = actual_get(staff_id, labels, "year", property)
189
205
  datasets = selects.map.with_index do |select, i|
190
206
  data = if select == NAMES[0]
191
207
  labels.map { |d| plan_get[d.to_i] || 0 }
@@ -220,15 +236,20 @@ module EducodeSales
220
236
  borderWidth: 1
221
237
  }
222
238
  end
223
- {
239
+ hash_a = {
240
+ labels: labels,
241
+ datasets: [datasets[0], datasets[2]]
242
+ }
243
+ hash_b = {
224
244
  labels: labels,
225
- datasets: datasets
245
+ datasets: [datasets[1], datasets[3]]
226
246
  }
247
+ [hash_a, hash_b]
227
248
  end
228
249
 
229
250
  private
230
251
 
231
- def plan_get(staff_id, time_range, type)
252
+ def plan_get(staff_id, time_range, type, property)
232
253
  # budget_amount 预算额
233
254
  start_time = case type
234
255
  when "month"
@@ -253,6 +274,9 @@ module EducodeSales
253
274
  staff_id = staff_id.present? ? Array(staff_id) : nil
254
275
  data = Business.joins(:last_follow_up)
255
276
  .where("educode_sales_follow_ups.invitation_at >= ? and educode_sales_follow_ups.invitation_at <= ? #{staff_id.present? ? "AND educode_sales_follow_ups.staff_id in (#{staff_id.join(",")})" : ""}", start_time, end_time)
277
+ if property.present?
278
+ data = data.joins(department: [school: :school_tags]).where("school_tags.id = ?", property)
279
+ end
256
280
  case type
257
281
  when "week"
258
282
  data.select("educode_sales_follow_ups.*, yearweek(educode_sales_follow_ups.invitation_at) as week").group("yearweek(educode_sales_follow_ups.invitation_at)").sum(:budget_amount)
@@ -267,7 +291,7 @@ module EducodeSales
267
291
  end
268
292
  end
269
293
 
270
- def actual_get(staff_id, time_range, type)
294
+ def actual_get(staff_id, time_range, type, property)
271
295
  start_time = case type
272
296
  when "month"
273
297
  time_range.first + "-01"
@@ -292,6 +316,9 @@ module EducodeSales
292
316
  staff_id = staff_id.present? ? Array(staff_id) : nil
293
317
  data = Business.joins(:last_follow_up)
294
318
  .where("educode_sales_follow_ups.bidded_date >= ? and educode_sales_follow_ups.bidded_date <= ? #{staff_id.present? ? "AND educode_sales_follow_ups.staff_id in (#{staff_id.join(",")})" : ""}", start_time, end_time)
319
+ if property.present?
320
+ data = data.joins(department: [school: :school_tags]).where("school_tags.id = ?", property)
321
+ end
295
322
  case type
296
323
  when "week"
297
324
  data.select("educode_sales_follow_ups.*, yearweek(educode_sales_follow_ups.bidded_date) as week").group("yearweek(educode_sales_follow_ups.bidded_date)").sum(:actual_amount)
@@ -3,5 +3,6 @@ module EducodeSales
3
3
  belongs_to :business
4
4
  belongs_to :product_catalog
5
5
  belongs_to :staff
6
+ enum custom_clazz: ['非定制', '低定制', '高定制', '全定制']
6
7
  end
7
8
  end
@@ -59,14 +59,7 @@
59
59
  placeholder="请选择日期">
60
60
  </div>
61
61
  </div>
62
- <div class="layui-inline">
63
- <label class="layui-form-label">验收时间</label>
64
- <div class="layui-input-inline">
65
- <input type="text" class="layui-input" name="reception_at" autocomplete="off" id="reception_at_add"
66
- value="<%= @last_follow_up&.reception_at %>"
67
- placeholder="请选择日期">
68
- </div>
69
- </div>
62
+ <input type="hidden" class="layui-input" name="reception_at" value="<%= @last_follow_up&.reception_at %>">
70
63
  <div class="layui-inline">
71
64
  <label class="layui-form-label">部署时间</label>
72
65
  <div class="layui-input-inline">
@@ -110,6 +110,7 @@
110
110
  <% if can? :assign_contract, EducodeSales::Business %>
111
111
  <a class="layui-btn layui-btn-default layui-btn-xs data-count-edit" lay-event="assign">指派售后</a>
112
112
  <% end %>
113
+ <a class="layui-btn layui-btn-default layui-btn-xs data-count-edit" lay-event="add_sales">添加销售明细</a>
113
114
 
114
115
  </script>
115
116
 
@@ -431,7 +432,7 @@
431
432
  },
432
433
  {
433
434
  title: '操作',
434
- minWidth: 220,
435
+ minWidth: 300,
435
436
  toolbar: '#currentTableBar',
436
437
  align: "center",
437
438
  fixed: 'right'
@@ -546,6 +547,26 @@
546
547
  layer.full(sindex);
547
548
  });
548
549
  return false;
550
+ } else if (obj.event === 'add_sales') {
551
+ business_id = data.id
552
+ var content = miniPage.getHrefContent('/missions/contracts/new_sales_detail?id=' + data.id);
553
+ var openWH = miniPage.getOpenWidthHeight();
554
+ new_sale_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(new_follow_index);
569
+ });
549
570
  }
550
571
  });
551
572
 
@@ -3,6 +3,9 @@
3
3
  <ul class="layui-tab-title">
4
4
  <li class="layui-this follows_li">跟进动态</li>
5
5
  <li class="contracts_list_li">合同列表</li>
6
+ <% if can? :read_sales_detail, EducodeSales::Business %>
7
+ <li class="sales_list_li">销售明细</li>
8
+ <% end %>
6
9
  </ul>
7
10
  <div class="layui-tab-content">
8
11
  <div class="layui-tab-item follows_div layui-show">
@@ -11,6 +14,11 @@
11
14
  <div class="layui-tab-item contracts_list_div">
12
15
  <div id="contract_list_wraper"></div>
13
16
  </div>
17
+ <% if can? :read_sales_detail, EducodeSales::Business %>
18
+ <div class="layui-tab-item sales_list_div">
19
+ <div id="sales_list_wraper"></div>
20
+ </div>
21
+ <% end %>
14
22
  </div>
15
23
  </div>
16
24
 
@@ -31,6 +39,8 @@
31
39
  element.on('tab(contract_tab)', function(data) {
32
40
  if (data.index == 1 && $("#contract_list").length == 0) {
33
41
  loadPage('/missions/contracts/list')
42
+ } else if (data.index == 2 && $("#sales_list").length == 0) {
43
+ loadPage('/missions/sales_details')
34
44
  }
35
45
  });
36
46