educode_sales 0.5.0 → 0.5.1

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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/educode_sales//345/233/236/346/224/266/347/253/231.png +0 -0
  3. data/app/controllers/educode_sales/businesses_controller.rb +9 -5
  4. data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
  5. data/app/controllers/educode_sales/plans_controller.rb +1 -1
  6. data/app/controllers/educode_sales/recycles_controller.rb +95 -0
  7. data/app/controllers/educode_sales/sale_reports_controller.rb +1 -1
  8. data/app/controllers/educode_sales/staffs_controller.rb +4 -4
  9. data/app/models/concerns/deletable.rb +8 -0
  10. data/app/models/educode_sales/application_record.rb +2 -0
  11. data/app/models/educode_sales/business.rb +15 -2
  12. data/app/models/educode_sales/follow_up.rb +4 -2
  13. data/app/models/educode_sales/recycle.rb +5 -0
  14. data/app/models/educode_sales/sale_plan.rb +3 -0
  15. data/app/models/educode_sales/sale_report.rb +2 -0
  16. data/app/views/educode_sales/businesses/edit_plan.html.erb +2 -2
  17. data/app/views/educode_sales/businesses/index.html.erb +12 -2
  18. data/app/views/educode_sales/businesses/new_follow_record.html.erb +5 -1
  19. data/app/views/educode_sales/businesses/show_follow.html.erb +7 -2
  20. data/app/views/educode_sales/businesses/upload_file.html.erb +4 -4
  21. data/app/views/educode_sales/operation_reports/audit.html.erb +9 -3
  22. data/app/views/educode_sales/operation_reports/show.html.erb +9 -3
  23. data/app/views/educode_sales/recycles/_business.html.erb +122 -0
  24. data/app/views/educode_sales/recycles/_monthPlan.html.erb +123 -0
  25. data/app/views/educode_sales/recycles/_monthly.html.erb +121 -0
  26. data/app/views/educode_sales/recycles/_weekPlan.html.erb +128 -0
  27. data/app/views/educode_sales/recycles/_weekly.html.erb +122 -0
  28. data/app/views/educode_sales/recycles/business.json.jbuilder +16 -0
  29. data/app/views/educode_sales/recycles/index.html.erb +58 -0
  30. data/app/views/educode_sales/recycles/monthPlan.json.jbuilder +16 -0
  31. data/app/views/educode_sales/recycles/monthly.json.jbuilder +15 -0
  32. data/app/views/educode_sales/recycles/weekPlan.json.jbuilder +16 -0
  33. data/app/views/educode_sales/recycles/weekly.json.jbuilder +15 -0
  34. data/app/views/educode_sales/sale_reports/audit.html.erb +12 -3
  35. data/app/views/educode_sales/sale_reports/show.html.erb +8 -2
  36. data/app/views/educode_sales/teachers/add_keys.html.erb +2 -2
  37. data/app/views/educode_sales/teachers/index.html.erb +1 -1
  38. data/app/views/layouts/educode_sales/application.html.erb +3 -0
  39. data/config/routes.rb +15 -0
  40. data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +6 -0
  41. data/db/migrate/20211109015617_create_educode_sales_recycles.rb +25 -0
  42. data/lib/educode_sales/version.rb +1 -1
  43. metadata +18 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c77c9d72b776a5250acf438fad00e27b871430b26bdf994a93d1189e0aaba14
4
- data.tar.gz: 6ea39f9c64190ccec5427668596827663e702ddd5a0e0d8c0fa5cace8931d1ba
3
+ metadata.gz: 249bcf8612e073c689b8c6f696cc3590aeffb4271b6eef3ed7b95ecc2033aba5
4
+ data.tar.gz: 1efd466f3e9630b9908c94d7fe6184979ab775c75946b77987a8f07e67618b64
5
5
  SHA512:
6
- metadata.gz: 842442865a01e90e7aa227fd5f0b33fd994d509b9d1bad0bff8fe3ebfe59d818fd48b05fcef54c665504d0f5b0a0ec70c2efaccbdc5c017269ef507565866073
7
- data.tar.gz: 365f1987a2fe002df56e11f72ba6456c1c15fefa880b06001dce1b4ae4ee1f95a92fae61b5afb3ff28c2ba51c04309b7d06f05067effee9f8aa8e618d0d38eae
6
+ metadata.gz: f189282b2df2c5bbae317f6ed513862721dc280885791fe5dfda7b2245894d511d0d303a2d5caaab304adb855de8f9d8e65f2c014f4212b34b347e3126854fd0
7
+ data.tar.gz: 6848e0f74872c5b7e53e05104a224abd58a6a4b8b374393e918ad09c20a34d83b7aa78789bc9e6c2d1091d5f06f6d057400ed0eeeaa9605637bd0abe592ffdd8
@@ -82,15 +82,17 @@ module EducodeSales
82
82
  end
83
83
 
84
84
  if params[:q].present? && params[:q][:name].present? && params[:q][:name] == "(销售态势-" + @year + "-已中标商机)"
85
+ stage_ids = Common.where(clazz: '商机阶段', name: ['已中标','已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
85
86
  @businesses = @businesses.joins("
86
87
  JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
87
- ").where("educode_sales_follow_ups.bidded_date > ? AND educode_sales_follow_ups.bidded_date < ?", "#{@year}-01-01", "#{@year}-12-31")
88
+ ").where("educode_sales_follow_ups.bidded_date > ? AND educode_sales_follow_ups.bidded_date < ? AND educode_sales_follow_ups.stage_id IN (?)", "#{@year}-01-01", "#{@year}-12-31", stage_ids)
88
89
  end
89
90
 
90
91
  if params[:q].present? && params[:q][:name].present? && params[:q][:name] == "(销售态势-" + @year + "-已签单商机)"
92
+ s_stage_ids = Common.where(clazz: '商机阶段', name: ['已签单','已验收','回款中', '服务中','已结束']).pluck(:id)
91
93
  @businesses = @businesses.joins("
92
94
  JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
93
- ").where("educode_sales_follow_ups.signed_date > ? AND educode_sales_follow_ups.signed_date < ?", "#{@year}-01-01", "#{@year}-12-31")
95
+ ").where("educode_sales_follow_ups.signed_date > ? AND educode_sales_follow_ups.signed_date < ? AND educode_sales_follow_ups.stage_id IN (?)", "#{@year}-01-01", "#{@year}-12-31", s_stage_ids)
94
96
  end
95
97
 
96
98
  if params[:q].present? && params[:q][:name].present? && params[:q][:name] == "(销售态势-" + @year + "-已回款商机)"
@@ -122,10 +124,10 @@ module EducodeSales
122
124
  @businesses = @businesses.joins(:department).where("departments.id in (?)", departments_ids)
123
125
  end
124
126
  if params[:q].present? && params[:q][:staff_id].present?
125
- part_a_ids = @businesses.where("educode_sales_businesses.last_follow_up_id is null AND staff_id = ?",params[:q][:staff_id]).ids
127
+ part_a_ids = @businesses.where("educode_sales_businesses.last_follow_up_id is null AND educode_sales_businesses.staff_id = ?",params[:q][:staff_id]).ids
126
128
  part_b_ids = @businesses.where("educode_sales_businesses.last_follow_up_id is not null").joins("
127
129
  JOIN educode_sales_follow_ups ON educode_sales_businesses.last_follow_up_id = educode_sales_follow_ups.id
128
- ").where("educode_sales_follow_ups.staff_id = ?", params[:q][:staff_id]).pluck(:business_id)
130
+ ").where("educode_sales_follow_ups.staff_id = ?", params[:q][:staff_id]).ids
129
131
  business_ids = part_a_ids + part_b_ids
130
132
  @businesses = EducodeSales::Business.where(id:business_ids)
131
133
  end
@@ -172,6 +174,8 @@ module EducodeSales
172
174
  educode_sales_businesses.*,
173
175
  last_follow.invitation_at,
174
176
  last_follow.reception_at,
177
+ last_follow.bidded_date,
178
+ last_follow.signed_date,
175
179
  last_follow.total_amount").joins("
176
180
  LEFT JOIN educode_sales_follow_ups AS last_follow ON educode_sales_businesses.last_follow_up_id = last_follow.id
177
181
  ").page(params[:page]).per(params[:limit])
@@ -221,7 +225,7 @@ module EducodeSales
221
225
 
222
226
  def destroy
223
227
  business = Business.find(params[:id])
224
- business.destroy
228
+ business.soft_destroy(@current_admin.id)
225
229
  render_success
226
230
  rescue ActiveRecord::DeleteRestrictionError => e
227
231
  render_failure '该商机已其它关联数据产生,暂不能删除'
@@ -36,7 +36,7 @@ module EducodeSales
36
36
  def destroy
37
37
  follow_up = FollowUp.find(params[:id])
38
38
  business = follow_up.business
39
- if follow_up.destroy
39
+ if follow_up.soft_destroy(@current_admin.id)
40
40
  if follow_up.id == business.last_follow_up_id
41
41
  business.update(last_follow_up: business.follow_ups.last, return_money: MoneyPlan.where(clazz: '已完成', follow_up_id: business.follow_ups.last&.id).sum(:amount))
42
42
  end
@@ -175,7 +175,7 @@ module EducodeSales
175
175
 
176
176
  def destroy
177
177
  sale_plan = SalePlan.find(params[:id])
178
- if sale_plan.destroy
178
+ if sale_plan.soft_destroy(@current_admin.id)
179
179
  render_success
180
180
  else
181
181
  render_failure sale_plan
@@ -0,0 +1,95 @@
1
+ require_dependency "educode_sales/application_controller"
2
+
3
+ module EducodeSales
4
+ class RecyclesController < ApplicationController
5
+
6
+ def destroy
7
+ @recycle = Recycle.find(params[:id])
8
+ @recycle.destroy
9
+ render_success
10
+ end
11
+
12
+
13
+
14
+ def restore_reports
15
+ @recycle = Recycle.find(params[:id])
16
+ report_id = @recycle.source_id
17
+ EducodeSales::SaleReport.unscoped.find(report_id).update(deleted_at: nil)
18
+ @recycle.destroy
19
+ render_success
20
+ end
21
+
22
+ def restore_plans
23
+ @recycle = Recycle.find(params[:id])
24
+ plan = EducodeSales::SalePlan.unscoped.find(@recycle.source_id)
25
+ business = EducodeSales::Business.unscoped.find(plan.business_id)
26
+ Recycle.find_by(source_id: business.id).destroy if Recycle.find_by(source_id: business.id).present?
27
+ business.update(deleted_at: nil)
28
+ follow_ups = EducodeSales::FollowUp.unscoped.where(business_id: business.id)
29
+ follow_ups.update_all(deleted_at: nil)
30
+ plan.update(deleted_at: nil)
31
+ @recycle.destroy
32
+ render_success
33
+ end
34
+
35
+ def restore_businesses
36
+ @recycle = Recycle.find(params[:id])
37
+ business_id = @recycle.source_id
38
+ EducodeSales::Business.unscoped.find(business_id).update(deleted_at: nil)
39
+ follow_ups = EducodeSales::FollowUp.unscoped.where(business_id: business_id)
40
+ follow_ups.update_all(deleted_at: nil)
41
+ @recycle.destroy
42
+ render_success
43
+ end
44
+
45
+ def business
46
+ @businesses = Recycle.where(source_type:"EducodeSales::Business")
47
+ if params[:sort].present? && params[:sort][:field]
48
+ @businesses = @businesses.order("created_at #{params[:sort][:order]}")
49
+ else
50
+ @businesses = @businesses.order("educode_sales_recycles.created_at desc")
51
+ end
52
+ @businesses = @businesses.page(params[:page]).per(params[:limit])
53
+ end
54
+
55
+ def weekly
56
+ @weekly = Recycle.where(source_type:"EducodeSales::SaleReport").order(created_at: :desc).page(params[:page]).per(params[:limit])
57
+ if params[:sort].present? && params[:sort][:field]
58
+ @weekly = @weekly.order("created_at #{params[:sort][:order]}")
59
+ else
60
+ @weekly = @weekly.order("educode_sales_recycles.created_at desc")
61
+ end
62
+ @weekly = @weekly.page(params[:page]).per(params[:limit])
63
+ end
64
+
65
+ def monthly
66
+ @monthly = Recycle.where(source_type:"EducodeSales::SaleReport")
67
+ if params[:sort].present? && params[:sort][:field]
68
+ @monthly = @monthly.order("created_at #{params[:sort][:order]}")
69
+ else
70
+ @monthly = @monthly.order("educode_sales_recycles.created_at desc")
71
+ end
72
+ @monthly = @monthly.page(params[:page]).per(params[:limit])
73
+ end
74
+
75
+ def weekPlan
76
+ @weekPlans = Recycle.where(source_type:"EducodeSales::SalePlan")
77
+ if params[:sort].present? && params[:sort][:field]
78
+ @weekPlans = @weekPlans.order("created_at #{params[:sort][:order]}")
79
+ else
80
+ @weekPlans = @weekPlans.order("educode_sales_recycles.created_at desc")
81
+ end
82
+ @weekPlans = @weekPlans.page(params[:page]).per(params[:limit])
83
+ end
84
+
85
+ def monthPlan
86
+ @monthPlans = Recycle.where(source_type:"EducodeSales::SalePlan")
87
+ if params[:sort].present? && params[:sort][:field]
88
+ @monthPlans = @monthPlans.order("created_at #{params[:sort][:order]}")
89
+ else
90
+ @monthPlans = @monthPlans.order("educode_sales_recycles.created_at desc")
91
+ end
92
+ @monthPlans = @monthPlans.page(params[:page]).per(params[:limit])
93
+ end
94
+ end
95
+ end
@@ -30,7 +30,7 @@ module EducodeSales
30
30
 
31
31
  def destroy
32
32
  sale_report = SaleReport.find(params[:id])
33
- if sale_report.destroy
33
+ if sale_report.soft_destroy(@current_admin.id)
34
34
  render_success
35
35
  else
36
36
  render_failure sale_report
@@ -8,7 +8,7 @@ module EducodeSales
8
8
  format.html do
9
9
  end
10
10
  format.json do
11
- @staffs = Staff.where(is_admin: false).page(params[:page]).per(params[:limit])
11
+ @staffs = Staff.where(is_admin: false, deleted_at: nil).page(params[:page]).per(params[:limit])
12
12
  end
13
13
  end
14
14
  end
@@ -37,10 +37,10 @@ module EducodeSales
37
37
 
38
38
  def destroy
39
39
  staff = Staff.find(params[:id])
40
- staff.destroy
40
+ staff.update(deleted_at: Time.now, expired_at: Time.now.days_ago(1))
41
41
  render_success
42
- rescue ActiveRecord::DeleteRestrictionError => e
43
- render_failure '该用户已有数据产生,暂不能删除'
42
+ # rescue ActiveRecord::DeleteRestrictionError => e
43
+ # render_failure '该用户已有数据产生,暂不能删除'
44
44
  end
45
45
 
46
46
  def disable
@@ -0,0 +1,8 @@
1
+ module Deletable
2
+ extend ActiveSupport::Concern
3
+
4
+ def soft_destroy(user_id)
5
+ self.update(deleted_at: Time.now)
6
+ EducodeSales::Recycle.create(source: self, deleter_id: user_id)
7
+ end
8
+ end
@@ -1,5 +1,7 @@
1
1
  module EducodeSales
2
2
  class ApplicationRecord < ActiveRecord::Base
3
3
  self.abstract_class = true
4
+
5
+
4
6
  end
5
7
  end
@@ -1,10 +1,23 @@
1
1
  module EducodeSales
2
2
  class Business < ApplicationRecord
3
+
3
4
  belongs_to :staff
4
5
  belongs_to :department
5
6
  belongs_to :last_follow_up, class_name: 'FollowUp', optional: true
6
7
 
7
- has_many :sale_plans, dependent: :destroy
8
- has_many :follow_ups, dependent: :destroy
8
+ has_many :sale_plans
9
+ has_many :follow_ups
10
+
11
+ default_scope -> {where(deleted_at: nil)}
12
+
13
+ def soft_destroy(user_id)
14
+ self.update(deleted_at: Time.now)
15
+ self.sale_plans.each do |d|
16
+ d.soft_destroy(user_id)
17
+ end
18
+ self.follow_ups.update_all(deleted_at: Time.now)
19
+ EducodeSales::Recycle.create(source: self, deleter_id: user_id)
20
+ end
21
+
9
22
  end
10
23
  end
@@ -1,14 +1,16 @@
1
1
  module EducodeSales
2
2
  class FollowUp < ApplicationRecord
3
+ include ::Deletable
3
4
  belongs_to :business, counter_cache: true
4
5
  belongs_to :place, optional: true
5
- has_many :money_plans, dependent: :destroy
6
+ has_many :money_plans
6
7
  has_many :key_person
7
8
  has_many :teachers, through: :key_person
8
- has_many :assign_follow_ups, dependent: :destroy
9
+ has_many :assign_follow_ups
9
10
  belongs_to :staff
10
11
  belongs_to :stage, class_name: 'Common'
11
12
  belongs_to :clazz, class_name: 'Common'
13
+ default_scope -> {where(deleted_at: nil)}
12
14
 
13
15
 
14
16
  end
@@ -0,0 +1,5 @@
1
+ module EducodeSales
2
+ class Recycle < ApplicationRecord
3
+ belongs_to :source, polymorphic: true
4
+ end
5
+ end
@@ -1,9 +1,12 @@
1
1
  module EducodeSales
2
2
  class SalePlan < ApplicationRecord
3
+ include ::Deletable
3
4
  belongs_to :business
4
5
  belongs_to :staff
5
6
  validates :business_id, presence: true
6
7
 
7
8
  validates :month, presence: true
9
+
10
+ default_scope -> {where(deleted_at: nil)}
8
11
  end
9
12
  end
@@ -1,5 +1,7 @@
1
1
  module EducodeSales
2
2
  class SaleReport < ApplicationRecord
3
+ include ::Deletable
3
4
  belongs_to :staff
5
+ default_scope -> {where(deleted_at: nil)}
4
6
  end
5
7
  end
@@ -56,13 +56,13 @@
56
56
  </div>
57
57
  </script>
58
58
  <script type="text/html" id="return_money_tabar">
59
- {{# if(parent.is_latest){ }}
59
+ {{# if(parent.is_latest && parent.flag){ }}
60
60
  <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">保存</a>
61
61
  <a class="layui-btn layui-btn-danger layui-btn-xs data-count-edit" lay-event="delete">删除</a>
62
62
  {{# } }}
63
63
  </script>
64
64
  <script>
65
- if(!parent.is_latest){
65
+ if(!parent.is_latest || !parent.flag){
66
66
  document.getElementById("show_plan_box").style.display="none";//隐藏
67
67
  }
68
68
  layui.use(['form', 'table', 'upload', 'laytpl', 'request', 'laydate'], function () {
@@ -53,7 +53,7 @@
53
53
  <div class="layui-inline">
54
54
  <button type="reset" class="layui-btn layui-btn-primary" lay-submit lay-filter="reset_business_search">重置
55
55
  </button>
56
- <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">搜索
56
+ <button type="submit" id="search_bt" class="layui-btn layui-btn-primary" lay-submit lay-filter="search_bussiness">搜索
57
57
  </button>
58
58
  </div>
59
59
  </div>
@@ -173,11 +173,13 @@
173
173
  field: 'bidded_date',
174
174
  width: 105,
175
175
  title: '中标时间',
176
+ sort: true
176
177
  },
177
178
  {
178
179
  field: 'signed_date',
179
180
  width: 105,
180
181
  title: '签单时间',
182
+ sort: true
181
183
  },
182
184
  {
183
185
  field: 'reception_at',
@@ -371,6 +373,13 @@
371
373
  });
372
374
  }
373
375
 
376
+ function hn(){
377
+ $("#search_bt").trigger("click");
378
+ }
379
+ $(document).ready(function(){
380
+ window.onload=hn;
381
+ });
382
+
374
383
 
375
384
  var sort = {}, search = {};
376
385
  table.on('sort(businesses_table)', function (obj) {
@@ -388,7 +397,8 @@
388
397
  // 监听搜索操作
389
398
  form.on('submit(search_bussiness)', function (data) {
390
399
  search = data.field
391
- table.reload('businesses_table', {
400
+ console.log(search);
401
+ table.reload('businesses_table', {
392
402
  page: {
393
403
  curr: 1
394
404
  },
@@ -97,9 +97,13 @@
97
97
  </div>
98
98
  <div class="layui-form-item">
99
99
  <label class="layui-form-label">指定跟进人</label>
100
- <div class="layui-input-inline">
100
+ <div class="layui-input-inline" style="z-index: 10000">
101
101
  <div id="assign_follow" style="width: 512px;"></div>
102
102
  </div>
103
+ <div class="layui-inline" style="padding: 9px 15px">
104
+ <label class="layui-form-label" style="padding-left: 220px"></label>
105
+ 指定跟进人和商机创建者,同时拥有对该商机的管理权限
106
+ </div>
103
107
  </div>
104
108
  <div class="layui-form-item layui-form-text">
105
109
  <label class="layui-form-label required">最新进展</label>
@@ -1,7 +1,6 @@
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
4
  <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="time_line"> 时间线视图>></button>
6
5
  <% if can? :add_follow, EducodeSales::Business %>
7
6
  <% if @current_admin.is_admin %>
@@ -10,9 +9,10 @@
10
9
  <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn pull-right" lay-event="add"> 添加跟进记录</button>
11
10
  <% end %>
12
11
  <% end %>
12
+ <span class="table-label pull-right" style="padding-right: 20px">温馨提示:仅可以在24小时之内,编辑/删除最新的跟进记录</span>
13
13
  </div>
14
14
  </script>
15
- <div class="edit-table">
15
+ <div class="edit-table tool">
16
16
  <div class="z-index">
17
17
  <table class="layui-hide" id="sale_plan_follow_table" lay-filter="sale_plan_follow_table"></table>
18
18
  </div>
@@ -289,6 +289,7 @@
289
289
  content = miniPage.getHrefContent('/missions/teachers/add_keys?follow_up_id=' + obj.data.id);
290
290
  openWH = miniPage.getOpenWidthHeight();
291
291
  is_latest = obj.data.is_latest
292
+ flag = obj.data.flag
292
293
  keyindex = layer.open({
293
294
  title: '关键人',
294
295
  type: 1,
@@ -310,6 +311,7 @@
310
311
  content = miniPage.getHrefContent('/missions/businesses/edit_plan');
311
312
  openWH = miniPage.getOpenWidthHeight();
312
313
  is_latest = obj.data.is_latest
314
+ flag = obj.data.flag
313
315
  plan_index = layer.open({
314
316
  title: '回款计划',
315
317
  type: 1,
@@ -533,4 +535,7 @@
533
535
  .z-index .layui-table-tool{
534
536
  z-index: 10000; !important;
535
537
  }
538
+ .tool .layui-table-tool-temp{
539
+ padding-right: 30px; !important;
540
+ }
536
541
  </style>
@@ -1,5 +1,5 @@
1
1
  <div style="padding-left: 50px">
2
- <button type="button" class="layui-btn" id="file"><i class="layui-icon"></i>选择文件</button>
2
+ <button type="button" class="layui-btn" id="get_file"><i class="layui-icon"></i>选择文件</button>
3
3
  </div>
4
4
  <script>
5
5
  layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'selectInput'], function () {
@@ -17,7 +17,7 @@
17
17
  //指定允许上传的文件类型
18
18
  var business_id = parent.id
19
19
  var renderObj = upload.render({
20
- elem: '#file'
20
+ elem: '#get_file'
21
21
  ,url: '/missions/upload_files?business_id='+business_id //此处配置你自己的上传接口即可
22
22
  ,accept: 'file' //普通文件
23
23
  ,headers: {
@@ -28,12 +28,12 @@
28
28
  }
29
29
  ,done: function(res){
30
30
  layer.msg('导入成功');
31
- table.reload('place');
31
+ table.reload('file');
32
32
  layer.closeAll('loading'); //关闭loading
33
33
  layer.close(parent.import_index)
34
34
  }
35
35
  ,error: function(index, upload){
36
- table.reload('place');
36
+ table.reload('file');
37
37
  layer.closeAll('loading'); //关闭loading
38
38
  layer.alert('导入失败,请检查文件格式')
39
39
  layer.close(parent.import_index)
@@ -32,7 +32,8 @@
32
32
  3、补充说明需要上级解决的问题和挑战。" disabled class="layui-textarea autosize"><%= @sale_report.content %></textarea>
33
33
  </div>
34
34
  </div>
35
- <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
35
+ <% if can? :level1_audit, EducodeSales::OperationReport %>
36
+ <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
36
37
  <label class="layui-form-label">大区意见</label>
37
38
  <div class="layui-input-block">
38
39
  <textarea name="level1_opinion" placeholder="给出评价、提醒、建议、办法等。"
@@ -40,7 +41,9 @@
40
41
  </div>
41
42
  </div>
42
43
  <div id="weekStar4" style="margin-bottom: 40px"></div>
43
- <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
44
+ <%end %>
45
+ <% if can? :level2_audit, EducodeSales::OperationReport %>
46
+ <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
44
47
  <label class="layui-form-label">总监意见</label>
45
48
  <div class="layui-input-block">
46
49
  <textarea name="level2_opinion" placeholder="给出评价、提醒、建议、办法等。"
@@ -48,7 +51,9 @@
48
51
  </div>
49
52
  </div>
50
53
  <div id="weekStar5" style="margin-bottom: 40px"></div>
51
- <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
54
+ <%end %>
55
+ <% if can? :level3_audit, EducodeSales::OperationReport %>
56
+ <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
52
57
  <label class="layui-form-label">副总意见</label>
53
58
  <div class="layui-input-block">
54
59
  <textarea name="level3_opinion" placeholder="给出评价、提醒、建议、办法等。"
@@ -56,6 +61,7 @@
56
61
  </div>
57
62
  </div>
58
63
  <div id="weekStar6" style="margin-bottom: 40px"></div>
64
+ <%end %>
59
65
  <br>
60
66
  <div class="layui-inline m-t-10">
61
67
  <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="audit_weekly_report"
@@ -31,7 +31,8 @@
31
31
  3、补充说明需要上级解决的问题和挑战。" disabled class="layui-textarea autosize"><%= @sale_report.content %></textarea>
32
32
  </div>
33
33
  </div>
34
- <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
34
+ <% if @sale_report.level1_opinion.present? || @sale_report.level1_score %>
35
+ <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
35
36
  <label class="layui-form-label">大区意见</label>
36
37
  <div class="layui-input-block">
37
38
  <textarea name="desc" placeholder="给出评价、提醒、建议、办法等。" disabled
@@ -39,7 +40,9 @@
39
40
  </div>
40
41
  </div>
41
42
  <div id="weekStar4" style="margin-bottom: 40px"></div>
42
- <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
43
+ <%end %>
44
+ <% if @sale_report.level2_opinion.present? || @sale_report.level2_score %>
45
+ <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
43
46
  <label class="layui-form-label">总监意见</label>
44
47
  <div class="layui-input-block">
45
48
  <textarea name="desc" placeholder="给出评价、提醒、建议、办法等。" disabled
@@ -47,7 +50,9 @@
47
50
  </div>
48
51
  </div>
49
52
  <div id="weekStar5" style="margin-bottom: 40px"></div>
50
- <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
53
+ <%end %>
54
+ <% if @sale_report.level3_opinion.present? || @sale_report.level3_score %>
55
+ <div class="layui-form-item layui-form-text" style="margin-bottom: 0px">
51
56
  <label class="layui-form-label">副总意见</label>
52
57
  <div class="layui-input-block">
53
58
  <textarea name="desc" placeholder="给出评价、提醒、建议、办法等。" disabled
@@ -55,6 +60,7 @@
55
60
  </div>
56
61
  </div>
57
62
  <div id="weekStar6" style="margin-bottom: 40px"></div>
63
+ <%end %>
58
64
  <br>
59
65
  </div>
60
66
  </form>