educode_sales 0.9.69 → 0.9.71

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/educode_sales/businesses_controller.rb +16 -2
  3. data/app/controllers/educode_sales/customers_controller.rb +51 -14
  4. data/app/controllers/educode_sales/plans_controller.rb +69 -19
  5. data/app/controllers/educode_sales/projects_controller.rb +3 -0
  6. data/app/controllers/educode_sales/teachers_controller.rb +11 -1
  7. data/app/models/educode_sales/customer_follow.rb +1 -0
  8. data/app/models/educode_sales/eco_staff.rb +6 -0
  9. data/app/models/educode_sales/sale_plan.rb +2 -0
  10. data/app/views/educode_sales/businesses/index.html.erb +45 -12
  11. data/app/views/educode_sales/businesses/index.json.jbuilder +2 -1
  12. data/app/views/educode_sales/businesses/time_line.html.erb +2 -1
  13. data/app/views/educode_sales/customers/edit_major.html.erb +5 -1
  14. data/app/views/educode_sales/customers/list.html.erb +66 -23
  15. data/app/views/educode_sales/customers/list.json.jbuilder +22 -10
  16. data/app/views/educode_sales/customers/show_customer_follow.html.erb +175 -0
  17. data/app/views/educode_sales/customers/show_customer_follow.json.jbuilder +13 -0
  18. data/app/views/educode_sales/customers/show_majors.html.erb +146 -0
  19. data/app/views/educode_sales/plans/_yearPlan.html.erb +6 -3
  20. data/app/views/educode_sales/plans/business_infos.json.jbuilder +10 -4
  21. data/app/views/educode_sales/plans/edit_bussiness_info.html.erb +13 -8
  22. data/app/views/educode_sales/plans/edit_bussiness_info_extra.html.erb +16 -73
  23. data/app/views/educode_sales/plans/edit_year_plan.html.erb +64 -5
  24. data/app/views/educode_sales/plans/new_year.html.erb +51 -3
  25. data/app/views/educode_sales/plans/plan_business_infos.json.jbuilder +7 -0
  26. data/app/views/educode_sales/plans/years_plan.json.jbuilder +43 -3
  27. data/app/views/educode_sales/projects/detail.html.erb +10 -6
  28. data/app/views/educode_sales/projects/index.html.erb +38 -8
  29. data/app/views/educode_sales/teachers/_index.html.erb +26 -5
  30. data/app/views/educode_sales/teachers/edit.html.erb +10 -3
  31. data/app/views/educode_sales/teachers/index.json.jbuilder +8 -0
  32. data/config/routes.rb +3 -0
  33. data/db/migrate/20230414031409_add_major_educode_sales_customer_follows.rb +12 -0
  34. data/db/migrate/20230414035655_create_educode_sales_eco_staffs.rb +11 -0
  35. data/lib/educode_sales/version.rb +1 -1
  36. metadata +12 -8
  37. data/app/assets/images/educode_sales/indexlogo.png +0 -0
  38. data/db/migrate/20230411134203_add_realname_to_teacher.rb +0 -5
@@ -1,5 +1,5 @@
1
1
  <form class="layui-form ">
2
- <div class="layui-form-item">
2
+ <div class="layui-form-item" style="padding: 25px">
3
3
  <div class="layui-inline">
4
4
  <label class="layui-form-label required" style="width: 180px;">计划投标时间</label>
5
5
  <div class="layui-input-inline">
@@ -7,29 +7,23 @@
7
7
  </div>
8
8
  </div>
9
9
  <div class="layui-inline">
10
- <label class="layui-form-label required" style="width: 180px;">实际投标时间</label>
10
+ <label class="layui-form-label required" style="width: 180px;">计划签单时间</label>
11
11
  <div class="layui-input-inline">
12
- <input type="text" class="layui-input" id="actual_bidded_on" autocomplete="off" name="actual_bidded_on">
12
+ <input type="text" class="layui-input" id="plan_sign_on" autocomplete="off" name="plan_sign_on">
13
13
  </div>
14
14
  </div>
15
15
  <div class="layui-inline">
16
- <label class="layui-form-label required" style="width: 180px;">中标额</label>
16
+ <label class="layui-form-label required" style="width: 180px;">计划验收时间</label>
17
17
  <div class="layui-input-inline">
18
- <input type="text" class="layui-input" autocomplete="off" name="bidded_amount" value="<%= @business_info.bidded_amount %>">
18
+ <input type="text" class="layui-input" id="plan_check_on" autocomplete="off" name="plan_check_on">
19
19
  </div>
20
20
  </div>
21
21
  </div>
22
22
  <div class="layui-form-item">
23
23
  <div class="layui-inline">
24
- <label class="layui-form-label required" style="width: 180px;">计划签单时间</label>
24
+ <label class="layui-form-label required" style="width: 180px;">计划金额</label>
25
25
  <div class="layui-input-inline">
26
- <input type="text" class="layui-input" id="plan_sign_on" autocomplete="off" name="plan_sign_on">
27
- </div>
28
- </div>
29
- <div class="layui-inline">
30
- <label class="layui-form-label required" style="width: 180px;">实际签单时间</label>
31
- <div class="layui-input-inline">
32
- <input type="text" class="layui-input" id="actual_sign_on" autocomplete="off" name="actual_sign_on">
26
+ <input type="text" class="layui-input" autocomplete="off" name="bidded_amount" value="<%= @business_info.bidded_amount %>">
33
27
  </div>
34
28
  </div>
35
29
  <div class="layui-inline">
@@ -38,54 +32,15 @@
38
32
  <input type="text" class="layui-input" autocomplete="off" name="sign_amount" value="<%= @business_info.sign_amount %>">
39
33
  </div>
40
34
  </div>
35
+
41
36
  </div>
42
- <div class="layui-form-item">
43
- <div class="layui-inline">
44
- <label class="layui-form-label required" style="width: 180px;">计划部署时间</label>
45
- <div class="layui-input-inline">
46
- <input type="text" class="layui-input" id="plan_deploy_on" autocomplete="off" name="plan_deploy_on">
47
- </div>
48
- </div>
49
- <div class="layui-inline">
50
- <label class="layui-form-label required" style="width: 180px;">实际部署时间</label>
51
- <div class="layui-input-inline">
52
- <input type="text" class="layui-input" id="actual_deploy_on" autocomplete="off" name="actual_deploy_on">
53
- </div>
54
- </div>
55
- <div class="layui-inline">
56
- <label class="layui-form-label required" style="width: 180px;">计划验收时间</label>
57
- <div class="layui-input-inline">
58
- <input type="text" class="layui-input" id="plan_check_on" autocomplete="off" name="plan_check_on">
59
- </div>
60
- </div>
61
- </div>
62
37
  <div class="layui-form-item">
63
- <div class="layui-inline">
64
- <label class="layui-form-label required" style="width: 180px;">实际验收时间</label>
65
- <div class="layui-input-inline">
66
- <input type="text" class="layui-input" id="actual_check_on" autocomplete="off" name="actual_check_on">
67
- </div>
68
- </div>
69
38
  <div class="layui-inline">
70
39
  <label class="layui-form-label required" style="width: 180px;">预收款计划回款时间</label>
71
40
  <div class="layui-input-inline">
72
41
  <input type="text" class="layui-input" id="prepayment_plan_on" autocomplete="off" name="prepayment_plan_on">
73
42
  </div>
74
43
  </div>
75
- <div class="layui-inline">
76
- <label class="layui-form-label required" style="width: 180px;">预收款实际回款时间</label>
77
- <div class="layui-input-inline">
78
- <input type="text" class="layui-input" id="prepayment_actual_on" autocomplete="off" name="prepayment_actual_on">
79
- </div>
80
- </div>
81
- </div>
82
- <div class="layui-form-item">
83
- <div class="layui-inline">
84
- <label class="layui-form-label required" style="width: 180px;">预收款</label>
85
- <div class="layui-input-inline">
86
- <input type="text" class="layui-input" autocomplete="off" name="prepayment_amount" value="<%= @business_info.prepayment_amount %>">
87
- </div>
88
- </div>
89
44
  <div class="layui-inline">
90
45
  <label class="layui-form-label required" style="width: 180px;">验收款计划回款时间</label>
91
46
  <div class="layui-input-inline">
@@ -93,45 +48,33 @@
93
48
  </div>
94
49
  </div>
95
50
  <div class="layui-inline">
96
- <label class="layui-form-label required" style="width: 180px;">验收款实际回款时间</label>
51
+ <label class="layui-form-label required" style="width: 180px;">质保金计划回款时间</label>
97
52
  <div class="layui-input-inline">
98
- <input type="text" class="layui-input" id="check_fee_actual_on" autocomplete="off" name="check_fee_actual_on">
53
+ <input type="text" class="layui-input" id="qa_plan_on" autocomplete="off" name="qa_plan_on">
99
54
  </div>
100
55
  </div>
101
56
  </div>
102
57
  <div class="layui-form-item">
103
58
  <div class="layui-inline">
104
- <label class="layui-form-label required" style="width: 180px;">验收款</label>
59
+ <label class="layui-form-label required" style="width: 180px;">计划预收款</label>
105
60
  <div class="layui-input-inline">
106
- <input type="text" class="layui-input" autocomplete="off" name="check_fee" value="<%= @business_info.check_fee %>">
61
+ <input type="text" class="layui-input" autocomplete="off" name="prepayment_amount" value="<%= @business_info.prepayment_amount %>">
107
62
  </div>
108
63
  </div>
109
64
  <div class="layui-inline">
110
- <label class="layui-form-label required" style="width: 180px;">质保金计划回款时间</label>
65
+ <label class="layui-form-label required" style="width: 180px;">计划验收款</label>
111
66
  <div class="layui-input-inline">
112
- <input type="text" class="layui-input" id="qa_plan_on" autocomplete="off" name="qa_plan_on">
67
+ <input type="text" class="layui-input" autocomplete="off" name="check_fee" value="<%= @business_info.check_fee %>">
113
68
  </div>
114
69
  </div>
115
70
  <div class="layui-inline">
116
- <label class="layui-form-label required" style="width: 180px;">质保金实际回款时间</label>
71
+ <label class="layui-form-label required" style="width: 180px;">计划质保金</label>
117
72
  <div class="layui-input-inline">
118
- <input type="text" class="layui-input" id="qa_actual_on" autocomplete="off" name="qa_actual_on">
73
+ <input type="text" class="layui-input" autocomplete="off" name="qa_amount" value="<%= @business_info.qa_amount %>">
119
74
  </div>
120
75
  </div>
121
76
  </div>
122
77
  <div class="layui-form-item">
123
- <div class="layui-inline">
124
- <label class="layui-form-label required" style="width: 180px;">质保金</label>
125
- <div class="layui-input-inline">
126
- <input type="text" class="layui-input" autocomplete="off" name="qa_amount" value="<%= @business_info.qa_amount %>">
127
- </div>
128
- </div>
129
- <div class="layui-inline">
130
- <label class="layui-form-label required" style="width: 180px;">应收款</label>
131
- <div class="layui-input-inline">
132
- <input type="text" class="layui-input" autocomplete="off" name="account_receivable" value="<%= @business_info.account_receivable %>">
133
- </div>
134
- </div>
135
78
  <div class="layui-form-item m-t-20">
136
79
  <div class="layui-input-block">
137
80
  <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="update_bussiness_info">提交</button>
@@ -1,4 +1,31 @@
1
1
 
2
+ <div class="layui-form layuimini-form">
3
+ <div class="layui-form-item" style="padding: 25px">
4
+ <div class="layui-inline">
5
+ <label class="layui-form-label">目标类型</label>
6
+ <div class="layui-input-inline">
7
+ <%= select_tag "clazz", options_for_select(@clazz), {include_blank: true} %>
8
+ </div>
9
+ </div>
10
+ <div class="layui-inline">
11
+ <label class="layui-form-label">单位</label>
12
+ <div class="layui-input-inline" style="width: 400px">
13
+ <input type="text" class="layui-input" autocomplete="off" name="department">
14
+ </div>
15
+ </div>
16
+ <div class="layui-inline">
17
+ <label class="layui-form-label">年度</label>
18
+ <div class="layui-input-inline" style="width: 150px">
19
+ <input type="text" class="layui-input" id="year_search_plan_date" autocomplete="off" name="year_search">
20
+ </div>
21
+ </div>
22
+ <div class="layui-inline">
23
+ <div class="layui-input-inline">
24
+ <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="search">搜索</button>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </div>
2
29
  <div>
3
30
  <table class="layui-hide" id="yearTable" lay-filter="yearTable"></table>
4
31
  </div>
@@ -26,9 +53,14 @@
26
53
  })
27
54
  })
28
55
 
56
+ laydate.render({
57
+ elem: '#year_search_plan_date',
58
+ type: 'year'
59
+ });
60
+
29
61
  table.render({
30
62
  elem: '#yearTable',
31
- url: '/missions/plans/plan_business_infos?year=' + parent.year,
63
+ url: '/missions/plans/plan_business_infos?year=' + parent.year + "&q[clazz]=" + parent.clazz + "&staff_id=" + parent.staff_id,
32
64
  height: 400,
33
65
  defaultToolbar: ['filter'],
34
66
  initSort: {
@@ -49,6 +81,21 @@
49
81
  width: 160,
50
82
  title: '商机名称',
51
83
  },
84
+ {
85
+ field: 'year',
86
+ width: 100,
87
+ title: '年度',
88
+ },
89
+ {
90
+ field: 'business_clazz',
91
+ width: 160,
92
+ title: '商机类别',
93
+ },
94
+ {
95
+ field: 'property',
96
+ width: 200,
97
+ title: '客户类型',
98
+ },
52
99
  {
53
100
  field: 'school',
54
101
  width: 150,
@@ -102,7 +149,7 @@
102
149
  {
103
150
  field: 'bidded_amount',
104
151
  width: 170,
105
- title: '中标额',
152
+ title: '计划金额',
106
153
  },
107
154
  {
108
155
  field: 'plan_sign_on',
@@ -152,7 +199,7 @@
152
199
  {
153
200
  field: 'prepayment_amount',
154
201
  width: 170,
155
- title: '预收款',
202
+ title: '计划预收款',
156
203
  },
157
204
  {
158
205
  field: 'check_fee_plan_on',
@@ -167,7 +214,7 @@
167
214
  {
168
215
  field: 'check_fee',
169
216
  width: 170,
170
- title: '验收款',
217
+ title: '计划验收款',
171
218
  },
172
219
  {
173
220
  field: 'qa_plan_on',
@@ -182,7 +229,7 @@
182
229
  {
183
230
  field: 'qa_amount',
184
231
  width: 170,
185
- title: '质保金',
232
+ title: '计划质保金',
186
233
  },
187
234
  {
188
235
  field: 'account_receivable',
@@ -203,6 +250,18 @@
203
250
  page: true,
204
251
  });
205
252
 
253
+ form.on('submit(search)', function (data) {
254
+ search = data.field
255
+ table.reload('yearTable', {
256
+ page: {
257
+ curr: 1
258
+ },
259
+ where: {q: search}
260
+ }, 'data');
261
+
262
+ return false;
263
+ });
264
+
206
265
  table.on('tool(yearTable)', function (obj) {
207
266
  var data = obj.data;
208
267
  id = data.id;
@@ -9,7 +9,7 @@
9
9
  <div class="layui-inline">
10
10
  <label class="layui-form-label required">选择商机</label>
11
11
  <div class="layui-input-inline" style="width: 400px">
12
- <%= select_tag "business_id", options_for_select(@businesses), {"lay-verify": "required", include_blank: true} %>
12
+ <%= select_tag "business_id", options_for_select(@businesses, @business&.id), {"lay-verify": "required", include_blank: true, "lay-search": "" } %>
13
13
  </div>
14
14
  </div>
15
15
  <div class="layui-inline">
@@ -37,13 +37,44 @@
37
37
  <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
38
38
  <a class="layui-btn layui-btn-danger layui-btn-xs data-count-delete" lay-event="delete">删除</a>
39
39
  </script>
40
+
41
+ <script type="text/html" id="plan_bid_on">
42
+ {{# if (['回款目标' ,'签单目标', '商机目标'].includes(d.clazz)) { }}
43
+ <div style="color: red;text-align: center;">--</div>
44
+ {{# } else { }}
45
+ {{ d.plan_bid_on }}</a>
46
+ {{# } }}
47
+ </script>
48
+ <script type="text/html" id="plan_sign_on">
49
+ {{# if (['回款目标' ,'中标目标', '商机目标'].includes(d.clazz)) { }}
50
+ <div style="color: red;text-align: center;">--</div>
51
+ {{# } else { }}
52
+ {{ d.plan_sign_on }}</a>
53
+ {{# } }}
54
+ </script>
55
+ <script type="text/html" id="prepayment_plan_on">
56
+ {{# if (['签单目标' ,'中标目标', '商机目标'].includes(d.clazz)) { }}
57
+ <div style="color: red;text-align: center;">--</div>
58
+ {{# } else { }}
59
+ {{ d.prepayment_plan_on }}</a>
60
+ {{# } }}
61
+ </script>
62
+ <script type="text/html" id="prepayment_amount">
63
+ {{# if (['签单目标' ,'中标目标', '商机目标'].includes(d.clazz)) { }}
64
+ <div style="color: red;text-align: center;">--</div>
65
+ {{# } else { }}
66
+ {{ d.prepayment_amount }}</a>
67
+ {{# } }}
68
+ </script>
69
+
40
70
  <script>
41
- layui.use(['form', 'table', 'laytpl', 'request', 'laydate'], function () {
71
+ layui.use(['form', 'table', 'laytpl', 'request', 'laydate', 'selectInput'], function () {
42
72
  var form = layui.form,
43
73
  layer = layui.layer,
44
74
  table = layui.table,
45
75
  request = layui.request,
46
76
  laydate = layui.laydate,
77
+ selectInput = layui.selectInput,
47
78
  $ = layui.$;
48
79
  laydate.render({
49
80
  elem: '#new_year_field',
@@ -51,6 +82,7 @@
51
82
  });
52
83
  form.render();
53
84
 
85
+
54
86
  var parentIndex = layer.index;
55
87
 
56
88
  form.on('submit(add_year_plan)', function (data) {
@@ -68,7 +100,9 @@
68
100
  });
69
101
  form.on('submit(add_y_plan)', function (data) {
70
102
  request.authPost("missions/plans/create_sales_plan", {}, function (res) {
71
- table.reload('yearPlanTable');
103
+ <% unless @business %>
104
+ table.reload('yearPlanTable');
105
+ <% end %>
72
106
  layer.close(parent.yindex);
73
107
  })
74
108
  })
@@ -96,6 +130,16 @@
96
130
  width: 160,
97
131
  title: '商机名称',
98
132
  },
133
+ {
134
+ field: 'business_clazz',
135
+ width: 160,
136
+ title: '商机类别',
137
+ },
138
+ {
139
+ field: 'property',
140
+ width: 200,
141
+ title: '客户类型',
142
+ },
99
143
  {
100
144
  field: 'school',
101
145
  width: 150,
@@ -140,21 +184,25 @@
140
184
  field: 'plan_bid_on',
141
185
  width: 170,
142
186
  title: '计划投标时间',
187
+ templet: "#plan_bid_on"
143
188
  },
144
189
  {
145
190
  field: 'plan_sign_on',
146
191
  width: 170,
147
192
  title: '计划签单时间',
193
+ templet: "#plan_sign_on"
148
194
  },
149
195
  {
150
196
  field: 'prepayment_plan_on',
151
197
  width: 170,
152
198
  title: '计划回款时间',
199
+ templet: "#prepayment_plan_on"
153
200
  },
154
201
  {
155
202
  field: 'prepayment_amount',
156
203
  width: 170,
157
204
  title: '计划回款额',
205
+ templet: "#prepayment_amount"
158
206
  },
159
207
  {
160
208
  title: '操作',
@@ -35,6 +35,13 @@ json.data do
35
35
  json.account_receivable_clazz d.account_receivable_clazz
36
36
  json.invoice_amount d.invoice_amount
37
37
 
38
+ json.business_clazz d.business.clazz&.name || ""
39
+ if d.business&.department&.school
40
+ json.property d.business.department.school.school_tags.where(for_missions: true).pluck(:name).join("、")
41
+ else
42
+ json.property ''
43
+ end
44
+
38
45
  end
39
46
  end
40
47
 
@@ -2,14 +2,54 @@ json.data do
2
2
  json.array! @sale_plans do |d|
3
3
  json.id d.id
4
4
  json.staff d.staff.user.real_name
5
+ json.staff_id d.staff_id
5
6
  json.clazz EducodeSales::SalePlan::CLAZZ_NAME.invert[d.clazz]
6
7
  json.year d.year
8
+ json.clazz_id d.clazz
7
9
  json.target_money d['annual'] || 0
8
- json.plan_money d['budget_amounts']&.round(2) || 0
10
+ # json.plan_money d['budget_amounts']&.round(2) || 0
9
11
  json.minimum_money d['annual'].present? ? (d['annual'].to_f * 0.8).round(2) : 0
10
- json.finish_money 0
11
- json.finish_rate 0
12
+
13
+ # if d.clazz == 1
14
+ # # 签单计划的预算额
15
+ # json.finish_money d.business_infos.where.not(plan_sign_on: nil).sum(:budget_amount)
16
+ # elsif d.clazz == 18
17
+ # # 中标目标
18
+ # json.finish_money d.business_infos.where.not(plan_bid_on: nil).sum(:budget_amount)
19
+ # elsif d.clazz == 2
20
+ # # 回款目标
21
+ # json.finish_money d.business_infos.where.not(plan_bid_on: nil).sum(:budget_amount)
22
+ # elsif d.clazz == 7
23
+ # # 商机目标
24
+ # json.finish_money d.business_infos.sum(:budget_amount)
25
+ # end
26
+ if d.clazz == 1
27
+ # 签单计划的预算额
28
+ json.plan_money d['clazz_1'] || 0
29
+ json.finish_money d['finish_sign']
30
+ json.finish_rate (d['finish_sign'] * 100 / (d['clazz_1'] || 0).to_f).round(2)
31
+ elsif d.clazz == 18
32
+ # 中标目标
33
+ json.plan_money d['clazz_18'] || 0
34
+ json.finish_money d['finish_bid']
35
+ json.finish_rate (d['finish_bid'] * 100 / (d['clazz_18'] || 0).to_f).round(2)
36
+ elsif d.clazz == 2
37
+ # 回款目标
38
+ json.plan_money d['clazz_2'] || 0
39
+ json.finish_money d['finish_return_money']
40
+ json.finish_rate (d['finish_return_money'] * 100 / (d['clazz_2'] || 0).to_f).round(2)
41
+ elsif d.clazz == 7
42
+ # 商机目标
43
+ json.plan_money d['clazz_7'] || 0
44
+ json.finish_money d['clazz_7'] || 0
45
+ json.finish_rate 100
46
+ end
47
+
12
48
  json.updated_at d.updated_at.to_s
49
+ json.clazz_1 d['clazz_1']
50
+ json.clazz_2 d['clazz_2']
51
+ json.clazz_7 d['clazz_7']
52
+ json.clazz_18 d['clazz_18']
13
53
  end
14
54
  end
15
55
 
@@ -125,7 +125,7 @@
125
125
  </div>
126
126
  </div>
127
127
  </div>
128
- <div class="layui-row" style="padding-top: 5px;display: none">
128
+ <div class="layui-row" style="padding-top: 5px">
129
129
  <div class="layui-col-md6">
130
130
  <labeL class="layui-form-label">实际验收时间:</labeL>
131
131
  <div class="layui-input-block">
@@ -139,15 +139,15 @@
139
139
  </div>
140
140
  </div>
141
141
  </div>
142
- <div class="layui-row" style="padding-top: 5px;display: none">
142
+ <div class="layui-row" style="padding-top: 5px">
143
143
  <div class="layui-col-md6">
144
144
  <labeL class="layui-form-label">实际回款时间:</labeL>
145
145
  <div class="layui-input-block">
146
- <input type="text" id="p_actual_money_time" name="p_actual_money_time" autocomplete="off" placeholder="请选择时间" value="<%= @project&.p_actual_money_time&.to_s(:date) %>" class="layui-input">
146
+ <input type="text" id="edit_p_actual_money_time" name="p_actual_money_time" autocomplete="off" placeholder="请选择时间" value="<%= @project&.p_actual_money_time&.to_s(:date) %>" class="layui-input">
147
147
  </div>
148
148
  </div>
149
149
  <div class="layui-col-md6">
150
- <labeL class="layui-form-label">回款:</labeL>
150
+ <labeL class="layui-form-label">回款百分比(%):</labeL>
151
151
  <div class="layui-input-block">
152
152
  <input type="text" name="p_money" autocomplete="off" placeholder="请输入" value="<%= @project&.p_money %>" class="layui-input">
153
153
  </div>
@@ -195,11 +195,15 @@
195
195
  elem: '#p_accept_time'
196
196
  });
197
197
  laydate.render({
198
- elem: '#p_pre_money_time'
198
+ elem: '#p_actual_money_time'
199
199
  });
200
200
  laydate.render({
201
- elem: '#p_actual_money_time'
201
+ elem: '#edit_p_actual_money_time'
202
202
  });
203
+ laydate.render({
204
+ elem: '#p_pre_money_time'
205
+ });
206
+
203
207
  form.render();
204
208
 
205
209
 
@@ -48,13 +48,13 @@
48
48
  <div class="layui-inline show_item_contract">
49
49
  <label class="layui-form-label">指派人</label>
50
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 } %>
51
+ <%= select_tag "p_staff_id", 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
52
  </div>
53
53
  </div>
54
54
  <div class="layui-inline show_item_contract">
55
55
  <label class="layui-form-label">销售经理</label>
56
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 } %>
57
+ <%= select_tag "p_sale_staff_id", 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
58
  </div>
59
59
  </div>
60
60
  <div class="layui-inline show_item_contract">
@@ -476,8 +476,18 @@
476
476
  form.on('submit(reset_business_search)', function (data) {
477
477
  var field = data.field;
478
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: ''
479
+ name: '',
480
+ department: '',
481
+ bidded_date: '',
482
+ signed_date: '',
483
+ search_p_actual_money_time: '',
484
+ p_stage: '',
485
+ p_state: '',
486
+ p_special: '',
487
+ p_difficulty: '',
488
+ o_business_deployment: '',
489
+ p_staff_id: '',
490
+ p_sale_staff_id: ''
481
491
  })
482
492
  // business_type_list.setValue([])
483
493
  // business_step_list.setValue([])
@@ -642,8 +652,18 @@
642
652
  where: {q: search, sort: sort}
643
653
  }, 'data');
644
654
  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: ''
655
+ name: '',
656
+ department: '',
657
+ bidded_date: '',
658
+ signed_date: '',
659
+ search_p_actual_money_time: '',
660
+ p_stage: '',
661
+ p_state: '',
662
+ p_special: '',
663
+ p_difficulty: '',
664
+ o_business_deployment: '',
665
+ p_staff_id: '',
666
+ p_sale_staff_id: ''
647
667
  })
648
668
  $(".my-btn").addClass("selected-btn");
649
669
  return false;
@@ -659,8 +679,18 @@
659
679
  where: {q: search, sort: sort}
660
680
  }, 'data');
661
681
  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: ''
682
+ name: '',
683
+ department: '',
684
+ bidded_date: '',
685
+ signed_date: '',
686
+ search_p_actual_money_time: '',
687
+ p_stage: '',
688
+ p_state: '',
689
+ p_special: '',
690
+ p_difficulty: '',
691
+ o_business_deployment: '',
692
+ p_staff_id: '',
693
+ p_sale_staff_id: ''
664
694
  })
665
695
  $(".project_list-btn").addClass("selected-btn");
666
696
  return false;
@@ -7,6 +7,12 @@
7
7
  <input type="text" name="name" class="layui-input">
8
8
  </div>
9
9
  </div>
10
+ <div class="layui-inline">
11
+ <label class="layui-form-label">真实姓名</label>
12
+ <div class="layui-input-inline">
13
+ <input type="text" name="realname" class="layui-input">
14
+ </div>
15
+ </div>
10
16
  <div class="layui-inline">
11
17
  <label class="layui-form-label">单位</label>
12
18
  <div class="layui-input-inline">
@@ -178,6 +184,11 @@
178
184
  fixed: 'left',
179
185
  templet: "#name"
180
186
  },
187
+ {
188
+ field: 'realname',
189
+ width: 100,
190
+ title: '真实姓名',
191
+ },
181
192
  {
182
193
  field: 'school',
183
194
  width: 160,
@@ -185,11 +196,6 @@
185
196
  templet:'<div><span title="{{d.school}}">{{d.school}}</span></div>'
186
197
 
187
198
  },
188
- {
189
- field: 'area',
190
- width: 80,
191
- title: '区域',
192
- },
193
199
  {
194
200
  field: 'department',
195
201
  width: 130,
@@ -201,6 +207,16 @@
201
207
  width: 160,
202
208
  title: '专业',
203
209
  },
210
+ {
211
+ field: 'area',
212
+ width: 80,
213
+ title: '区域',
214
+ },
215
+ {
216
+ field: 'business_count',
217
+ width: 120,
218
+ title: '单位商机数',
219
+ },
204
220
  {
205
221
  field: 'professional_title',
206
222
  title: '职称',
@@ -237,6 +253,11 @@
237
253
  totalRow:true,
238
254
  templet: "#follow"
239
255
  },
256
+ {
257
+ field: 'sales_manage',
258
+ width: 160,
259
+ title: '销售经理',
260
+ },
240
261
  {
241
262
  field: 'staff_manage',
242
263
  width: 160,