educode_sales 0.9.73 → 0.9.74
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 +4 -4
- data/app/controllers/educode_sales/contracts_controller.rb +309 -0
- data/app/controllers/educode_sales/follow_ups_controller.rb +1 -1
- data/app/controllers/educode_sales/home_controller.rb +7 -0
- data/app/controllers/educode_sales/ideas_controller.rb +146 -76
- data/app/controllers/educode_sales/roles_controller.rb +2 -1
- data/app/controllers/educode_sales/upload_files_controller.rb +3 -0
- data/app/models/educode_sales/assign_staff.rb +6 -0
- data/app/models/educode_sales/contract_date_list.rb +6 -0
- data/app/models/educode_sales/follow_up.rb +6 -0
- data/app/models/educode_sales/idea.rb +16 -5
- data/app/models/educode_sales/idea_follow.rb +11 -0
- data/app/models/educode_sales/permission.rb +2 -1
- data/app/models/educode_sales/role_area.rb +2 -1
- data/app/views/educode_sales/businesses/_contract_list.html.erb +160 -0
- data/app/views/educode_sales/contracts/_follows.html.erb +323 -0
- data/app/views/educode_sales/contracts/_list.html.erb +596 -0
- data/app/views/educode_sales/contracts/follow_ups.json.jbuilder +23 -0
- data/app/views/educode_sales/contracts/index.html.erb +50 -0
- data/app/views/educode_sales/contracts/index.json.jbuilder +74 -0
- data/app/views/educode_sales/contracts/list.js.erb +1 -0
- data/app/views/educode_sales/contracts/new_follow_up.html.erb +671 -0
- data/app/views/educode_sales/home/staff_business.json.jbuilder +9 -0
- data/app/views/educode_sales/idea_recycles/detail.html.erb +4 -4
- data/app/views/educode_sales/idea_recycles/index.html.erb +5 -5
- data/app/views/educode_sales/ideas/_follows.html.erb +258 -0
- data/app/views/educode_sales/ideas/_index.html.erb +544 -0
- data/app/views/educode_sales/ideas/detail.html.erb +7 -7
- data/app/views/educode_sales/ideas/edit.html.erb +77 -15
- data/app/views/educode_sales/ideas/files.html.erb +157 -0
- data/app/views/educode_sales/ideas/files.json.jbuilder +13 -0
- data/app/views/educode_sales/ideas/follow_ups.json.jbuilder +14 -0
- data/app/views/educode_sales/ideas/index.html.erb +12 -353
- data/app/views/educode_sales/ideas/index.json.jbuilder +7 -1
- data/app/views/educode_sales/ideas/new.html.erb +81 -25
- data/app/views/educode_sales/ideas/new_follow_up.html.erb +105 -0
- data/app/views/educode_sales/ideas/search_new.html.erb +1 -1
- data/app/views/educode_sales/ideas/show_schools.html.erb +84 -0
- data/app/views/educode_sales/ideas/show_schools.json.jbuilder +12 -0
- data/app/views/educode_sales/ideas/show_teachers.html.erb +372 -0
- data/app/views/educode_sales/ideas/upload_file.html.erb +43 -0
- data/app/views/educode_sales/projects/detail.html.erb +1 -1
- data/app/views/educode_sales/projects/edit.html.erb +1 -1
- data/app/views/educode_sales/roles/edit.html.erb +16 -0
- data/app/views/layouts/educode_sales/application.html.erb +5 -5
- data/config/routes.rb +19 -0
- data/db/migrate/20230227061043_create_educode_sales_ideas.rb +2 -2
- data/db/migrate/20230430023424_add_plan_signed_date_to_follow_ups.rb +21 -0
- data/db/migrate/20230430040332_create_educode_sales_contract_date_lists.rb +15 -0
- data/db/migrate/20230430104708_create_idea_follows.rb +25 -0
- data/db/migrate/20230430121335_add_permissions_for_ideas.rb +16 -0
- data/db/migrate/20230430134710_create_educode_sales_assign_staffs.rb +11 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +30 -2
@@ -0,0 +1,671 @@
|
|
1
|
+
<%= Gon::Base.render_data %>
|
2
|
+
<h1 class="m-t-20 text-center"><%= @business.name %></h1>
|
3
|
+
<h2 style="padding-left: 20px">基本信息</h2>
|
4
|
+
<hr>
|
5
|
+
<div class="layui-form layuimini-form">
|
6
|
+
<div class="layui-form-item" style="padding: 25px">
|
7
|
+
<div class="layui-inline">
|
8
|
+
<label class="layui-form-label">单位:</label>
|
9
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
10
|
+
<%= @business.department.school.name %>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
<div class="layui-inline">
|
14
|
+
<label class="layui-form-label">部门:</label>
|
15
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
16
|
+
<%= @business.department.name %>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
<div class="layui-inline">
|
20
|
+
<label class="layui-form-label">专业:</label>
|
21
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
22
|
+
<%= @business.department&.department_majors&.pluck(:name).present? ? @business.department&.department_majors&.pluck(:name).join(",") : "" %>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
<br>
|
26
|
+
<div class="layui-inline">
|
27
|
+
<label class="layui-form-label">项目类型:</label>
|
28
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
29
|
+
<%= @business.clazz&.name %>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<div class="layui-inline">
|
33
|
+
<label class="layui-form-label">项目阶段:</label>
|
34
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
35
|
+
<%= @last_follow_up&.stage&.name%>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
<div class="layui-inline">
|
39
|
+
<label class="layui-form-label">中标时间:</label>
|
40
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
41
|
+
<%= @last_follow_up&.bidded_date %>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
<br>
|
45
|
+
<div class="layui-inline">
|
46
|
+
<label class="layui-form-label">项目联系人:</label>
|
47
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
48
|
+
<%= @last_follow_up&.key_person.present? ? @last_follow_up&.key_person.map { |d| d.teacher.name }.join("、") : '' %>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
<div class="layui-inline">
|
52
|
+
<label class="layui-form-label">联系人电话:</label>
|
53
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
54
|
+
<%= @last_follow_up&.key_person.present? ? @last_follow_up&.key_person.pluck(:tel).select { |d| d.present? }.join("、") : '' %>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
<div class="layui-inline">
|
58
|
+
<label class="layui-form-label">联系地址:</label>
|
59
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
60
|
+
<%= @last_follow_up&.key_person.present? ? @last_follow_up&.key_person.pluck(:remark).select { |d| d.present? }.join("、") : '' %>
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
<br>
|
64
|
+
<div class="layui-inline">
|
65
|
+
<label class="layui-form-label">销售经理:</label>
|
66
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
67
|
+
<%= @last_follow_up&.assign_follow_ups.present? ? ( @last_follow_up&.assign_follow_ups.map{ |d| d.staff.user.real_name}.join("、")) : @business&.staff&.user&.real_name %>
|
68
|
+
</div>
|
69
|
+
</div>
|
70
|
+
<div class="layui-inline">
|
71
|
+
<label class="layui-form-label">销售经理电话:</label>
|
72
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
73
|
+
<%= @last_follow_up&.assign_follow_ups.present? ? ( @last_follow_up&.assign_follow_ups.map{ |d| d.staff.user.phone}.join("、")) : @business&.staff&.user&.phone %>
|
74
|
+
</div>
|
75
|
+
</div>
|
76
|
+
<div class="layui-inline">
|
77
|
+
<label class="layui-form-label">销售经理联系地址:</label>
|
78
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
79
|
+
</div>
|
80
|
+
</div>
|
81
|
+
<br>
|
82
|
+
<div class="layui-inline">
|
83
|
+
<label class="layui-form-label">部署类型:</label>
|
84
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
85
|
+
<%= select_tag "o_business_deployment", options_for_select(@deployment_type, @last_follow_up&.o_business_deployment), class: 'required' %>
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
<div class="layui-inline">
|
89
|
+
<label class="layui-form-label">销售方式:</label>
|
90
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
91
|
+
<%= @last_follow_up&.place&.name.present? ? '渠道' : '直销' %>
|
92
|
+
</div>
|
93
|
+
</div>
|
94
|
+
<div class="layui-inline">
|
95
|
+
<label class="layui-form-label">项目资金来源:</label>
|
96
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
97
|
+
<%= select_tag "o_business_deployment", options_for_select([''] + EducodeSales::FollowUp::funding_sources.keys, @last_follow_up&.funding_source), class: 'required' %>
|
98
|
+
</div>
|
99
|
+
</div>
|
100
|
+
<br>
|
101
|
+
<h2 style="padding-left:20px;margin-top: 25px;">签单</h2>
|
102
|
+
<hr>
|
103
|
+
<div class="layui-inline">
|
104
|
+
<label class="layui-form-label">计划签单时间:</label>
|
105
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
106
|
+
<input type="text" class="layui-input date" name="plan_signed_date" autocomplete="off">
|
107
|
+
</div>
|
108
|
+
</div>
|
109
|
+
<div class="layui-inline">
|
110
|
+
<label class="layui-form-label" style="width:100px;">中标后:</label>
|
111
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
112
|
+
<input type="text" class="layui-input" name="bidded_days" autocomplete="off">
|
113
|
+
</div>
|
114
|
+
<div class="layui-form-mid layui-word-aux">天</div>
|
115
|
+
</div>
|
116
|
+
<div class="layui-inline">
|
117
|
+
<label class="layui-form-label" style="width:100px;">实际签单时间:</label>
|
118
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
119
|
+
<input type="text" class="layui-input date" name="signed_date" autocomplete="off">
|
120
|
+
</div>
|
121
|
+
</div>
|
122
|
+
<div class="layui-inline">
|
123
|
+
<label class="layui-form-label required" style="width:100px;">签约单位:</label>
|
124
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
125
|
+
<div id="add_department" style="width: 200px"></div>
|
126
|
+
</div>
|
127
|
+
</div>
|
128
|
+
<br>
|
129
|
+
<hr/>
|
130
|
+
<h2 style="padding-left:20px;margin-top: 25px;">交货</h2>
|
131
|
+
<div class="layui-inline">
|
132
|
+
<label class="layui-form-label">约定交货时间:</label>
|
133
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
134
|
+
<input type="text" class="layui-input date" name="1_promise_date[0]" autocomplete="off">
|
135
|
+
</div>
|
136
|
+
</div>
|
137
|
+
<div class="layui-inline">
|
138
|
+
<label class="layui-form-label" style="width:100px;">签单后:</label>
|
139
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
140
|
+
<input type="text" class="layui-input" name="1_num[0]" autocomplete="off">
|
141
|
+
</div>
|
142
|
+
<div class="layui-form-mid layui-word-aux">天</div>
|
143
|
+
</div>
|
144
|
+
<div class="layui-inline">
|
145
|
+
<label class="layui-form-label" style="width:100px;">计划交货时间:</label>
|
146
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
147
|
+
<input type="text" class="layui-input date" name="1_plan_date[0]" autocomplete="off">
|
148
|
+
</div>
|
149
|
+
</div>
|
150
|
+
<div class="layui-inline">
|
151
|
+
<label class="layui-form-label" style="width:100px;">实际交货时间:</label>
|
152
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
153
|
+
<input type="text" class="layui-input date" name="1_actual_date[0]" autocomplete="off">
|
154
|
+
</div>
|
155
|
+
</div>
|
156
|
+
<div class="layui-inline">
|
157
|
+
<button class="layui-btn" id="add_1">+</button>
|
158
|
+
</div>
|
159
|
+
<div id="wraper_1"></div>
|
160
|
+
<hr/>
|
161
|
+
<h2 style="padding-left:20px;margin-top: 25px;">验收</h2>
|
162
|
+
<div class="layui-inline">
|
163
|
+
<label class="layui-form-label">约定验收时间:</label>
|
164
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
165
|
+
<input type="text" class="layui-input date" name="2_promise_date[0]" autocomplete="off">
|
166
|
+
</div>
|
167
|
+
</div>
|
168
|
+
<div class="layui-inline">
|
169
|
+
<label class="layui-form-label" style="width:100px;">交货后:</label>
|
170
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
171
|
+
<input type="text" class="layui-input" name="2_num[0]" autocomplete="off">
|
172
|
+
</div>
|
173
|
+
<div class="layui-form-mid layui-word-aux">天</div>
|
174
|
+
</div>
|
175
|
+
<div class="layui-inline">
|
176
|
+
<label class="layui-form-label" style="width:100px;">计划验收时间:</label>
|
177
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
178
|
+
<input type="text" class="layui-input date" name="2_plan_date[0]" autocomplete="off">
|
179
|
+
</div>
|
180
|
+
</div>
|
181
|
+
<div class="layui-inline">
|
182
|
+
<label class="layui-form-label" style="width:100px;">实际验收时间:</label>
|
183
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
184
|
+
<input type="text" class="layui-input date" name="2_actual_date[0]" autocomplete="off">
|
185
|
+
</div>
|
186
|
+
</div>
|
187
|
+
<div class="layui-inline">
|
188
|
+
<button class="layui-btn" id="add_2">+</button>
|
189
|
+
</div>
|
190
|
+
<div id="wraper_2"></div>
|
191
|
+
<h2 style="padding-left:20px;">回款</h2>
|
192
|
+
<hr/>
|
193
|
+
<h3 style="padding-left:40px;margin-top: 25px;">预收款</h3>
|
194
|
+
<div class="layui-inline">
|
195
|
+
<label class="layui-form-label">约定回款时间:</label>
|
196
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
197
|
+
<input type="text" class="layui-input date" name="3_promise_date[0]" autocomplete="off">
|
198
|
+
</div>
|
199
|
+
</div>
|
200
|
+
<div class="layui-inline">
|
201
|
+
<label class="layui-form-label" style="width:100px;">签单后:</label>
|
202
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
203
|
+
<input type="text" class="layui-input" name="3_num[0]" autocomplete="off">
|
204
|
+
</div>
|
205
|
+
<div class="layui-form-mid layui-word-aux">工作日</div>
|
206
|
+
</div>
|
207
|
+
<div class="layui-inline">
|
208
|
+
<label class="layui-form-label" style="width:100px;">计划回款时间:</label>
|
209
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
210
|
+
<input type="text" class="layui-input date" name="3_plan_date[0]" autocomplete="off">
|
211
|
+
</div>
|
212
|
+
</div>
|
213
|
+
<div class="layui-inline">
|
214
|
+
<label class="layui-form-label" style="width:100px;">实际回款时间:</label>
|
215
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
216
|
+
<input type="text" class="layui-input date" name="3_actual_date[0]" autocomplete="off">
|
217
|
+
</div>
|
218
|
+
</div>
|
219
|
+
<div class="layui-inline">
|
220
|
+
<button class="layui-btn" id="add_3">+</button>
|
221
|
+
</div>
|
222
|
+
<div id="wraper_3"></div>
|
223
|
+
<h3 style="padding-left:40px;margin-top: 25px;">交付款</h3>
|
224
|
+
<div class="layui-inline">
|
225
|
+
<label class="layui-form-label">约定回款时间:</label>
|
226
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
227
|
+
<input type="text" class="layui-input date" name="4_promise_date[0]" autocomplete="off">
|
228
|
+
</div>
|
229
|
+
</div>
|
230
|
+
<div class="layui-inline">
|
231
|
+
<label class="layui-form-label" style="width:100px;">交货后:</label>
|
232
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
233
|
+
<input type="text" class="layui-input" name="4_num[0]" autocomplete="off">
|
234
|
+
</div>
|
235
|
+
<div class="layui-form-mid layui-word-aux">天</div>
|
236
|
+
</div>
|
237
|
+
<div class="layui-inline">
|
238
|
+
<label class="layui-form-label" style="width:100px;">计划回款时间:</label>
|
239
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
240
|
+
<input type="text" class="layui-input date" name="4_plan_date[0]" autocomplete="off">
|
241
|
+
</div>
|
242
|
+
</div>
|
243
|
+
<div class="layui-inline">
|
244
|
+
<label class="layui-form-label" style="width:100px;">实际回款时间:</label>
|
245
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
246
|
+
<input type="text" class="layui-input date" name="4_actual_date[0]" autocomplete="off">
|
247
|
+
</div>
|
248
|
+
</div>
|
249
|
+
<div class="layui-inline">
|
250
|
+
<button class="layui-btn" id="add_4">+</button>
|
251
|
+
</div>
|
252
|
+
<div id="wraper_4"></div>
|
253
|
+
<h3 style="padding-left:40px;margin-top: 25px;">验收款</h3>
|
254
|
+
<div class="layui-inline">
|
255
|
+
<label class="layui-form-label">约定回款时间:</label>
|
256
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
257
|
+
<input type="text" class="layui-input date" name="5_promise_date[0]" autocomplete="off">
|
258
|
+
</div>
|
259
|
+
</div>
|
260
|
+
<div class="layui-inline">
|
261
|
+
<label class="layui-form-label" style="width:100px;">交货后:</label>
|
262
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
263
|
+
<input type="text" class="layui-input" name="5_num[0]" autocomplete="off">
|
264
|
+
</div>
|
265
|
+
<div class="layui-form-mid layui-word-aux">天</div>
|
266
|
+
</div>
|
267
|
+
<div class="layui-inline">
|
268
|
+
<label class="layui-form-label" style="width:100px;">计划回款时间:</label>
|
269
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
270
|
+
<input type="text" class="layui-input date" name="5_plan_date[0]" autocomplete="off">
|
271
|
+
</div>
|
272
|
+
</div>
|
273
|
+
<div class="layui-inline">
|
274
|
+
<label class="layui-form-label" style="width:100px;">实际回款时间:</label>
|
275
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
276
|
+
<input type="text" class="layui-input date" name="5_actual_date[0]" autocomplete="off">
|
277
|
+
</div>
|
278
|
+
</div>
|
279
|
+
<div class="layui-inline">
|
280
|
+
<button class="layui-btn" id="add_5">+</button>
|
281
|
+
</div>
|
282
|
+
<div id="wraper_5"></div>
|
283
|
+
|
284
|
+
<h3 style="padding-left:40px;margin-top: 25px;">质保金</h3>
|
285
|
+
<div class="layui-inline">
|
286
|
+
<label class="layui-form-label">约定回款时间:</label>
|
287
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
288
|
+
<input type="text" class="layui-input date" name="6_promise_date[0]" autocomplete="off">
|
289
|
+
</div>
|
290
|
+
</div>
|
291
|
+
<div class="layui-inline">
|
292
|
+
<label class="layui-form-label" style="width:100px;">验收后:</label>
|
293
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
294
|
+
<input type="text" class="layui-input" name="6_num[0]" autocomplete="off">
|
295
|
+
</div>
|
296
|
+
<div class="layui-form-mid layui-word-aux">年</div>
|
297
|
+
</div>
|
298
|
+
<div class="layui-inline">
|
299
|
+
<label class="layui-form-label" style="width:100px;">计划回款时间:</label>
|
300
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
301
|
+
<input type="text" class="layui-input date" name="6_plan_date[0]" autocomplete="off">
|
302
|
+
</div>
|
303
|
+
</div>
|
304
|
+
<div class="layui-inline">
|
305
|
+
<label class="layui-form-label" style="width:100px;">实际回款时间:</label>
|
306
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
307
|
+
<input type="text" class="layui-input date" name="6_actual_date[0]" autocomplete="off">
|
308
|
+
</div>
|
309
|
+
</div>
|
310
|
+
<div class="layui-inline">
|
311
|
+
<button class="layui-btn" id="add_6">+</button>
|
312
|
+
</div>
|
313
|
+
<div id="wraper_6"></div>
|
314
|
+
|
315
|
+
<h2 style="padding-left:20px;margin-top: 25px;">服务期</h2>
|
316
|
+
<div class="layui-inline">
|
317
|
+
<label class="layui-form-label">约定服务期:</label>
|
318
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
319
|
+
<input type="text" class="layui-input date" name="service_start_time" autocomplete="off">
|
320
|
+
</div>
|
321
|
+
<div class="layui-input-inline" style="line-height: 38px;text-align:center;width:30px;">-</div>
|
322
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
323
|
+
<input type="text" class="layui-input date" name="service_end_time" autocomplete="off">
|
324
|
+
</div>
|
325
|
+
</div>
|
326
|
+
<div class="layui-inline">
|
327
|
+
<label class="layui-form-label" style="width:100px;">验收后:</label>
|
328
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
329
|
+
<input type="text" class="layui-input" name="service_years" autocomplete="off">
|
330
|
+
</div>
|
331
|
+
<div class="layui-form-mid layui-word-aux">年</div>
|
332
|
+
</div>
|
333
|
+
<div class="layui-form-item layui-form-text" style="margin-top:25px;">
|
334
|
+
<label class="layui-form-label">最新根据记录:</label>
|
335
|
+
<div class="layui-input-block">
|
336
|
+
<textarea name="content" placeholder=" " class="layui-textarea"></textarea>
|
337
|
+
</div>
|
338
|
+
</div>
|
339
|
+
<div class="layui-form-item m-t-20">
|
340
|
+
<div class="layui-input-block">
|
341
|
+
<button class="layui-btn layui-btn-normal submit-btn" lay-submit lay-filter="add_follow_up">提交</button>
|
342
|
+
</div>
|
343
|
+
</div>
|
344
|
+
</div>
|
345
|
+
</div>
|
346
|
+
<script type="text/html" id="input_1">
|
347
|
+
<div class="layui-inline">
|
348
|
+
<label class="layui-form-label">约定交货时间:</label>
|
349
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
350
|
+
<input type="text" class="layui-input date1_{{d.num}}" name="1_promise_date[{{d.num}}]" autocomplete="off">
|
351
|
+
</div>
|
352
|
+
</div>
|
353
|
+
<div class="layui-inline">
|
354
|
+
<label class="layui-form-label" style="width:100px;">签单后:</label>
|
355
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
356
|
+
<input type="text" class="layui-input" name="1_num[{{d.num}}]" autocomplete="off">
|
357
|
+
</div>
|
358
|
+
<div class="layui-form-mid layui-word-aux">天</div>
|
359
|
+
</div>
|
360
|
+
<div class="layui-inline">
|
361
|
+
<label class="layui-form-label" style="width:100px;">计划交货时间:</label>
|
362
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
363
|
+
<input type="text" class="layui-input date1_{{d.num}}" name="1_plan_date[{{d.num}}]" autocomplete="off">
|
364
|
+
</div>
|
365
|
+
</div>
|
366
|
+
<div class="layui-inline">
|
367
|
+
<label class="layui-form-label" style="width:100px;">实际交货时间:</label>
|
368
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
369
|
+
<input type="text" class="layui-input date1_{{d.num}}" name="1_actual_date[{{d.num}}]" autocomplete="off">
|
370
|
+
</div>
|
371
|
+
</div>
|
372
|
+
</script>
|
373
|
+
<script type="text/html" id="input_2">
|
374
|
+
<div class="layui-inline">
|
375
|
+
<label class="layui-form-label">约定验收时间:</label>
|
376
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
377
|
+
<input type="text" class="layui-input date2_{{d.num}}" name="2_promise_date[0]" autocomplete="off">
|
378
|
+
</div>
|
379
|
+
</div>
|
380
|
+
<div class="layui-inline">
|
381
|
+
<label class="layui-form-label" style="width:100px;">交货后:</label>
|
382
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
383
|
+
<input type="text" class="layui-input" name="2_num[0]" autocomplete="off">
|
384
|
+
</div>
|
385
|
+
<div class="layui-form-mid layui-word-aux">天</div>
|
386
|
+
</div>
|
387
|
+
<div class="layui-inline">
|
388
|
+
<label class="layui-form-label" style="width:100px;">计划验收时间:</label>
|
389
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
390
|
+
<input type="text" class="layui-input date2_{{d.num}}" name="2_plan_date[0]" autocomplete="off">
|
391
|
+
</div>
|
392
|
+
</div>
|
393
|
+
<div class="layui-inline">
|
394
|
+
<label class="layui-form-label" style="width:100px;">实际验收时间:</label>
|
395
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
396
|
+
<input type="text" class="layui-input date2_{{d.num}}" name="2_actual_date[0]" autocomplete="off">
|
397
|
+
</div>
|
398
|
+
</div>
|
399
|
+
</script>
|
400
|
+
<script type="text/html" id="input_3">
|
401
|
+
<div class="layui-inline">
|
402
|
+
<label class="layui-form-label">约定回款时间:</label>
|
403
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
404
|
+
<input type="text" class="layui-input date3_{{d.num}}" name="3_promise_date[0]" autocomplete="off">
|
405
|
+
</div>
|
406
|
+
</div>
|
407
|
+
<div class="layui-inline">
|
408
|
+
<label class="layui-form-label" style="width:100px;">签单后:</label>
|
409
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
410
|
+
<input type="text" class="layui-input" name="3_num[0]" autocomplete="off">
|
411
|
+
</div>
|
412
|
+
<div class="layui-form-mid layui-word-aux">工作日</div>
|
413
|
+
</div>
|
414
|
+
<div class="layui-inline">
|
415
|
+
<label class="layui-form-label" style="width:100px;">计划回款时间:</label>
|
416
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
417
|
+
<input type="text" class="layui-input date3_{{d.num}}" name="3_plan_date[0]" autocomplete="off">
|
418
|
+
</div>
|
419
|
+
</div>
|
420
|
+
<div class="layui-inline">
|
421
|
+
<label class="layui-form-label" style="width:100px;">实际回款时间:</label>
|
422
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
423
|
+
<input type="text" class="layui-input date3_{{d.num}}" name="3_actual_date[0]" autocomplete="off">
|
424
|
+
</div>
|
425
|
+
</div>
|
426
|
+
</script>
|
427
|
+
|
428
|
+
<script type="text/html" id="input_4">
|
429
|
+
<div class="layui-inline">
|
430
|
+
<label class="layui-form-label">约定回款时间:</label>
|
431
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
432
|
+
<input type="text" class="layui-input date4_{{d.num}}" name="4_promise_date[0]" autocomplete="off">
|
433
|
+
</div>
|
434
|
+
</div>
|
435
|
+
<div class="layui-inline">
|
436
|
+
<label class="layui-form-label" style="width:100px;">交货后:</label>
|
437
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
438
|
+
<input type="text" class="layui-input" name="4_num[0]" autocomplete="off">
|
439
|
+
</div>
|
440
|
+
<div class="layui-form-mid layui-word-aux">天</div>
|
441
|
+
</div>
|
442
|
+
<div class="layui-inline">
|
443
|
+
<label class="layui-form-label" style="width:100px;">计划回款时间:</label>
|
444
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
445
|
+
<input type="text" class="layui-input date4_{{d.num}}" name="4_plan_date[0]" autocomplete="off">
|
446
|
+
</div>
|
447
|
+
</div>
|
448
|
+
<div class="layui-inline">
|
449
|
+
<label class="layui-form-label" style="width:100px;">实际回款时间:</label>
|
450
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
451
|
+
<input type="text" class="layui-input date4_{{d.num}}" name="4_actual_date[0]" autocomplete="off">
|
452
|
+
</div>
|
453
|
+
</div>
|
454
|
+
</script>
|
455
|
+
|
456
|
+
<script type="text/html" id="input_5">
|
457
|
+
<div class="layui-inline">
|
458
|
+
<label class="layui-form-label">约定回款时间:</label>
|
459
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
460
|
+
<input type="text" class="layui-input date5_{{d.num}}" name="5_promise_date[0]" autocomplete="off">
|
461
|
+
</div>
|
462
|
+
</div>
|
463
|
+
<div class="layui-inline">
|
464
|
+
<label class="layui-form-label" style="width:100px;">交货后:</label>
|
465
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
466
|
+
<input type="text" class="layui-input" name="5_num[0]" autocomplete="off">
|
467
|
+
</div>
|
468
|
+
<div class="layui-form-mid layui-word-aux">天</div>
|
469
|
+
</div>
|
470
|
+
<div class="layui-inline">
|
471
|
+
<label class="layui-form-label" style="width:100px;">计划回款时间:</label>
|
472
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
473
|
+
<input type="text" class="layui-input date5_{{d.num}}" name="5_plan_date[0]" autocomplete="off">
|
474
|
+
</div>
|
475
|
+
</div>
|
476
|
+
<div class="layui-inline">
|
477
|
+
<label class="layui-form-label" style="width:100px;">实际回款时间:</label>
|
478
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
479
|
+
<input type="text" class="layui-input date5_{{d.num}}" name="5_actual_date[0]" autocomplete="off">
|
480
|
+
</div>
|
481
|
+
</div>
|
482
|
+
</script>
|
483
|
+
|
484
|
+
<script type="text/html" id="input_6">
|
485
|
+
<div class="layui-inline">
|
486
|
+
<label class="layui-form-label">约定回款时间:</label>
|
487
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
488
|
+
<input type="text" class="layui-input date6_{{d.num}}" name="6_promise_date[0]" autocomplete="off">
|
489
|
+
</div>
|
490
|
+
</div>
|
491
|
+
<div class="layui-inline">
|
492
|
+
<label class="layui-form-label" style="width:100px;">验收后:</label>
|
493
|
+
<div class="layui-input-inline" style="line-height: 38px;width:60px;">
|
494
|
+
<input type="text" class="layui-input" name="6_num[0]" autocomplete="off">
|
495
|
+
</div>
|
496
|
+
<div class="layui-form-mid layui-word-aux">年</div>
|
497
|
+
</div>
|
498
|
+
<div class="layui-inline">
|
499
|
+
<label class="layui-form-label" style="width:100px;">计划回款时间:</label>
|
500
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
501
|
+
<input type="text" class="layui-input date6_{{d.num}}" name="6_plan_date[0]" autocomplete="off">
|
502
|
+
</div>
|
503
|
+
</div>
|
504
|
+
<div class="layui-inline">
|
505
|
+
<label class="layui-form-label" style="width:100px;">实际回款时间:</label>
|
506
|
+
<div class="layui-input-inline" style="line-height: 38px;">
|
507
|
+
<input type="text" class="layui-input date6_{{d.num}}" name="6_actual_date[0]" autocomplete="off">
|
508
|
+
</div>
|
509
|
+
</div>
|
510
|
+
</script>
|
511
|
+
<script>
|
512
|
+
layui.use(['form', 'table', 'upload', 'layer', 'laytpl', 'request', 'laydate', 'xmSelect', 'selectInput'], function () {
|
513
|
+
form = layui.form,
|
514
|
+
layer = layui.layer,
|
515
|
+
table = layui.table,
|
516
|
+
laytpl = layui.laytpl,
|
517
|
+
request = layui.request,
|
518
|
+
laydate = layui.laydate,
|
519
|
+
xmSelect = layui.xmSelect,
|
520
|
+
selectInput = layui.selectInput,
|
521
|
+
$ = layui.$;
|
522
|
+
|
523
|
+
|
524
|
+
|
525
|
+
form.render();
|
526
|
+
|
527
|
+
laydate.render({
|
528
|
+
elem: '.date',
|
529
|
+
});
|
530
|
+
|
531
|
+
var num_1 = 0;
|
532
|
+
$("#add_1").on("click", function() {
|
533
|
+
num_1 += 1;
|
534
|
+
var getTpl = input_1.innerHTML, view = document.getElementById('wraper_1');
|
535
|
+
laytpl(getTpl).render({num: num_1}, function(html){
|
536
|
+
$(view).append(html);
|
537
|
+
});
|
538
|
+
laydate.render({
|
539
|
+
elem: '.date1_' + num_1,
|
540
|
+
});
|
541
|
+
})
|
542
|
+
|
543
|
+
var num_2 = 0;
|
544
|
+
$("#add_2").on("click", function() {
|
545
|
+
num_2 += 1;
|
546
|
+
var getTpl = input_2.innerHTML, view = document.getElementById('wraper_2');
|
547
|
+
laytpl(getTpl).render({num: num_2}, function(html){
|
548
|
+
$(view).append(html);
|
549
|
+
});
|
550
|
+
laydate.render({
|
551
|
+
elem: '.date2_' + num_2,
|
552
|
+
});
|
553
|
+
})
|
554
|
+
|
555
|
+
var num_3 = 0;
|
556
|
+
$("#add_3").on("click", function() {
|
557
|
+
num_3 += 1;
|
558
|
+
var getTpl = input_3.innerHTML, view = document.getElementById('wraper_3');
|
559
|
+
laytpl(getTpl).render({num: num_3}, function(html){
|
560
|
+
$(view).append(html);
|
561
|
+
});
|
562
|
+
laydate.render({
|
563
|
+
elem: '.date3_' + num_3,
|
564
|
+
});
|
565
|
+
})
|
566
|
+
|
567
|
+
var num_4 = 0;
|
568
|
+
$("#add_4").on("click", function() {
|
569
|
+
num_4 += 1;
|
570
|
+
var getTpl = input_4.innerHTML, view = document.getElementById('wraper_4');
|
571
|
+
laytpl(getTpl).render({num: num_4}, function(html){
|
572
|
+
$(view).append(html);
|
573
|
+
});
|
574
|
+
laydate.render({
|
575
|
+
elem: '.date4_' + num_4,
|
576
|
+
});
|
577
|
+
})
|
578
|
+
|
579
|
+
var num_5 = 0;
|
580
|
+
$("#add_5").on("click", function() {
|
581
|
+
num_5 += 1;
|
582
|
+
var getTpl = input_5.innerHTML, view = document.getElementById('wraper_5');
|
583
|
+
laytpl(getTpl).render({num: num_5}, function(html){
|
584
|
+
$(view).append(html);
|
585
|
+
});
|
586
|
+
laydate.render({
|
587
|
+
elem: '.date5_' + num_5,
|
588
|
+
});
|
589
|
+
})
|
590
|
+
|
591
|
+
var num_6 = 0;
|
592
|
+
$("#add_6").on("click", function() {
|
593
|
+
num_6 += 1;
|
594
|
+
var getTpl = input_6.innerHTML, view = document.getElementById('wraper_6');
|
595
|
+
laytpl(getTpl).render({num: num_6}, function(html){
|
596
|
+
$(view).append(html);
|
597
|
+
});
|
598
|
+
laydate.render({
|
599
|
+
elem: '.date6_' + num_6,
|
600
|
+
});
|
601
|
+
})
|
602
|
+
|
603
|
+
|
604
|
+
var add_department = selectInput.render({
|
605
|
+
elem: '#add_department',
|
606
|
+
name: 'signed_department_id', // 渲染的input的name值
|
607
|
+
layFilter: 'test', //同layui form参数lay-filter
|
608
|
+
// layVerify: 'required', //同layui form参数lay-verify
|
609
|
+
layVerType: 'tips', // 同layui form参数lay-verType
|
610
|
+
layReqText: '请填写文本', //同layui form参数lay-ReqText
|
611
|
+
initValue: '', // 渲染初始化默认值
|
612
|
+
hasSelectIcon: false,
|
613
|
+
placeholder: '请输入头歌平台上单位部门', // 渲染的inputplaceholder值
|
614
|
+
data: [],
|
615
|
+
remoteSearch: true, // 是否启用远程搜索 默认是false,和远程搜索回调保存同步
|
616
|
+
remoteMethod: function (value, cb) { // 远程搜索的回调函数
|
617
|
+
if (!value) {
|
618
|
+
return cb([]);
|
619
|
+
}
|
620
|
+
request.get('missions/search?type=department&q=' + value, {}, function (res) {
|
621
|
+
return cb(res)
|
622
|
+
})
|
623
|
+
}
|
624
|
+
});
|
625
|
+
|
626
|
+
form.on('submit(add_follow_up)', function (data) {
|
627
|
+
if (data.field.clazz_id == <%= EducodeSales::Common.where(extras: EducodeSales::Common::OTYPE).first&.id %>) {
|
628
|
+
if (data.field.service_time.length == 0) {
|
629
|
+
layer.msg('请选择服务期', {time: 2000, icon: 2, shade: 0.01});
|
630
|
+
return false;
|
631
|
+
}
|
632
|
+
if (data.field.o_business_deployment === ''){
|
633
|
+
layer.msg('请选择部署类型', {time: 2000, icon: 2, shade: 0.01});
|
634
|
+
return false // 退出添加该条记录
|
635
|
+
}
|
636
|
+
}
|
637
|
+
$(".submit-btn").addClass("layui-hide");
|
638
|
+
|
639
|
+
data.field.business_id = "<%= @business.id %>";
|
640
|
+
Rails.ajax({
|
641
|
+
url: "/missions/contracts/add_follow_ups",
|
642
|
+
type: 'POST',
|
643
|
+
headers: {
|
644
|
+
'Content-Type': 'application/json',
|
645
|
+
'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
|
646
|
+
},
|
647
|
+
data: $.param(data.field, true),
|
648
|
+
success: function (res) {
|
649
|
+
if (res.success == false) {
|
650
|
+
layer.alert(res.msg)
|
651
|
+
} else {
|
652
|
+
|
653
|
+
}
|
654
|
+
}
|
655
|
+
})
|
656
|
+
|
657
|
+
|
658
|
+
return false;
|
659
|
+
});
|
660
|
+
|
661
|
+
});
|
662
|
+
</script>
|
663
|
+
<style>
|
664
|
+
.layui-form-label {
|
665
|
+
width: 150px;
|
666
|
+
}
|
667
|
+
|
668
|
+
.layui-word-aux{
|
669
|
+
width: 42px;
|
670
|
+
}
|
671
|
+
</style>
|