educode_sales 1.10.49 → 1.10.58
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/assets/stylesheets/educode_sales/modules/easyeditor/easyeditor.css +1 -1
- data/app/controllers/educode_sales/application_controller.rb +10 -0
- data/app/controllers/educode_sales/business_courses_controller.rb +58 -33
- data/app/controllers/educode_sales/businesses_controller.rb +43 -7
- data/app/controllers/educode_sales/contracts_controller.rb +6 -0
- data/app/controllers/educode_sales/money_plan_records_controller.rb +6 -2
- data/app/controllers/educode_sales/money_plans_controller.rb +3 -0
- data/app/controllers/educode_sales/sale_trends_controller.rb +1 -1
- data/app/controllers/educode_sales/shixun_dectects_controller.rb +77 -16
- data/app/controllers/educode_sales/shixuns_controller.rb +65 -4
- data/app/controllers/educode_sales/subject_trends_controller.rb +99 -892
- data/app/controllers/educode_sales/subjects_controller.rb +29 -18
- data/app/helpers/educode_sales/application_helper.rb +3 -1
- data/app/helpers/educode_sales/business_courses_helper.rb +29 -6
- data/app/helpers/educode_sales/sale_trends_helper.rb +52 -52
- data/app/helpers/educode_sales/subject_helper.rb +5 -1
- data/app/models/educode_sales/business.rb +5 -5
- data/app/models/educode_sales/business_deliver_subject.rb +3 -2
- data/app/models/educode_sales/business_subject.rb +9 -3
- data/app/models/educode_sales/business_subject_shixun.rb +37 -8
- data/app/models/educode_sales/business_subject_staff.rb +1 -0
- data/app/views/educode_sales/business_courses/edit.html.erb +30 -4
- data/app/views/educode_sales/business_courses/index.html.erb +34 -12
- data/app/views/educode_sales/business_courses/index.json.jbuilder +2 -2
- data/app/views/educode_sales/business_courses/list_shixuns.html.erb +132 -64
- data/app/views/educode_sales/business_courses/list_shixuns.json.jbuilder +12 -6
- data/app/views/educode_sales/business_courses/list_subjects.html.erb +29 -34
- data/app/views/educode_sales/business_courses/list_subjects.json.jbuilder +7 -2
- data/app/views/educode_sales/business_courses/new.html.erb +45 -20
- data/app/views/educode_sales/businesses/index.html.erb +11 -9
- data/app/views/educode_sales/contracts/_list.html.erb +16 -1
- data/app/views/educode_sales/contracts/index.html.erb +5 -2
- data/app/views/educode_sales/contracts/list.js.erb +4 -1
- data/app/views/educode_sales/money_plan_records/_index.html.erb +21 -5
- data/app/views/educode_sales/money_plan_records/index.js.erb +4 -1
- data/app/views/educode_sales/money_plans/list.html.erb +6 -2
- data/app/views/educode_sales/sale_trends/_return_money_forecast.html.erb +1 -1
- data/app/views/educode_sales/sale_trends/_user_stat.html.erb +1 -1
- data/app/views/educode_sales/sale_trends/_visit_analysis.html.erb +1 -1
- data/app/views/educode_sales/sale_trends/return_money_forecast.js.erb +1 -1
- data/app/views/educode_sales/sale_trends/trends.html.erb +6 -6
- data/app/views/educode_sales/sale_trends/user_stat.js.erb +1 -1
- data/app/views/educode_sales/sale_trends/visit_analysis.js.erb +1 -1
- data/app/views/educode_sales/shixun_dectects/index.html.erb +97 -47
- data/app/views/educode_sales/shixun_dectects/index.json.jbuilder +4 -3
- data/app/views/educode_sales/shixun_dectects/markdown.html.erb +1 -1
- data/app/views/educode_sales/shixuns/edit.html.erb +35 -13
- data/app/views/educode_sales/shixuns/index.html.erb +348 -138
- data/app/views/educode_sales/shixuns/index.json.jbuilder +9 -5
- data/app/views/educode_sales/shixuns/new.html.erb +22 -12
- data/app/views/educode_sales/subject_trends/trends.html.erb +177 -575
- data/app/views/educode_sales/subjects/edit.html.erb +4 -4
- data/app/views/educode_sales/subjects/index.html.erb +50 -12
- data/app/views/educode_sales/subjects/index.json.jbuilder +3 -3
- data/app/views/educode_sales/subjects/list_shixuns.html.erb +143 -17
- data/app/views/educode_sales/subjects/list_shixuns.json.jbuilder +9 -4
- data/app/views/educode_sales/subjects/new.html.erb +4 -4
- data/app/views/layouts/educode_sales/application.html.erb +1 -1
- data/lib/educode_sales/version.rb +1 -1
- metadata +6 -7
- data/app/assets/images/educode_sales/indexlogo.png +0 -0
@@ -1,8 +1,15 @@
|
|
1
1
|
<!-- 图标 -->
|
2
2
|
<style>
|
3
|
-
.markdown_list img{
|
3
|
+
.markdown_list img {
|
4
4
|
max-width: 700px;
|
5
5
|
}
|
6
|
+
|
7
|
+
.layui-table-cell {
|
8
|
+
height: auto !important;
|
9
|
+
width: auto;
|
10
|
+
white-space: normal;
|
11
|
+
/*line-height: 28px;*/
|
12
|
+
}
|
6
13
|
</style>
|
7
14
|
<link rel="stylesheet" type="text/css" href="//at.alicdn.com/t/font_1531710_xb357ub1wmg.css"/>
|
8
15
|
<style>
|
@@ -21,15 +28,23 @@
|
|
21
28
|
<div>
|
22
29
|
<form class="layui-form layui-form-pane" lay-filter="search_form">
|
23
30
|
<div class="layui-inline show_item_contract inner_div">
|
24
|
-
<label class="layui-form-label"
|
31
|
+
<label class="layui-form-label">任务类型</label>
|
25
32
|
<div class="layui-input-inline">
|
26
33
|
<%= select_tag "category", options_for_select(
|
27
34
|
[["全部", 0], ["管培", 1], ["全职", 2], ["专职", 3]], selected: 0
|
28
35
|
), { include_blank: true } %>
|
29
36
|
</div>
|
30
37
|
</div>
|
38
|
+
<div id="shixun_dectect_type_form" style="display: none" class="layui-inline show_item_contract inner_div">
|
39
|
+
<label class="layui-form-label">审核状态</label>
|
40
|
+
<div class="layui-input-inline">
|
41
|
+
<%= select_tag "dectect_type", options_for_select(
|
42
|
+
[["全部", 0], ["已通过", 1], ["已驳回", 2]], selected: 0
|
43
|
+
), { include_blank: true } %>
|
44
|
+
</div>
|
45
|
+
</div>
|
31
46
|
<div class="layui-inline borders inner_div">
|
32
|
-
<label class="layui-form-label" style="width:
|
47
|
+
<label class="layui-form-label" style="width: 130px">实践项目名称</label>
|
33
48
|
<div class="layui-input-inline">
|
34
49
|
<input type="text" class="layui-input" name="shixun_name">
|
35
50
|
</div>
|
@@ -58,9 +73,7 @@
|
|
58
73
|
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit layui-bg-blue" lay-event="info">详情</a>
|
59
74
|
{{# } }}
|
60
75
|
</script>
|
61
|
-
|
62
|
-
<a lay-event="examine">点击查看</a>
|
63
|
-
</script>
|
76
|
+
|
64
77
|
<script type="text/html" id="shixun_dectect_type">
|
65
78
|
{{# if(d.dectect_type === 1){ }}
|
66
79
|
<span style="color: green">已通过</span>
|
@@ -92,6 +105,13 @@
|
|
92
105
|
<span>不重要不紧急</span>
|
93
106
|
{{# } }}
|
94
107
|
</script>
|
108
|
+
<script type="text/html" id="aherf">
|
109
|
+
{{# if(d.identifier !== null && d.identifier !== ''){ }}
|
110
|
+
<a target="_blank" style="color:deepskyblue" href="<%= @url %>/shixuns/{{= d.identifier}}/challenges">{{=d.shixun_name}}</a>
|
111
|
+
{{# } else { }}
|
112
|
+
<a style="color:deepskyblue">{{=d.shixun_name}}</a>
|
113
|
+
{{# } }}
|
114
|
+
</script>
|
95
115
|
<script type="text/html" id="show_state">
|
96
116
|
{{# if(d.shixun_status === 1){ }}
|
97
117
|
<span>待建设</span>
|
@@ -111,6 +131,26 @@
|
|
111
131
|
</script>
|
112
132
|
<script src="/markdown/marked.min.js" type="text/javascript" charset="utf-8"></script>
|
113
133
|
<script>
|
134
|
+
function extractFirstTenCharsAndImage(markdownText) {
|
135
|
+
let firstTenChars = '';
|
136
|
+
let imageTag = '';
|
137
|
+
// 行内图片的正则表达式
|
138
|
+
const inlineImageRegex = /!\[.*?\]\((.*?)\)/g;
|
139
|
+
// 处理行内图片
|
140
|
+
markdownText = markdownText.replace(inlineImageRegex, (_, imagePath) => {
|
141
|
+
// 如果匹配到行内图片,则生成图片标签,并将匹配的图片部分替换为空字符串
|
142
|
+
imageTag = `<img style="max-height: 100px" src="${imagePath}" />`;
|
143
|
+
return '';
|
144
|
+
});
|
145
|
+
// 去除Markdown格式,只保留纯文本内容
|
146
|
+
const pureText = markdownText.replace(/(^|\n)(\d+\.|)\s*/g, '$1').trim();
|
147
|
+
// 获取前十个字符
|
148
|
+
firstTenChars = pureText.substring(0, 10);
|
149
|
+
// 输出结果
|
150
|
+
return `<div lay-event="show_markdown"><p>${firstTenChars}</p> ${imageTag}</div>`
|
151
|
+
}
|
152
|
+
|
153
|
+
|
114
154
|
layui.config({
|
115
155
|
base: '/markdown/mods/' //存放layui拓展模块的目录位置
|
116
156
|
}).use(['form', 'table', 'miniPage', 'element', 'laydate', 'dropdown', 'easyeditor'], function () {
|
@@ -129,7 +169,6 @@
|
|
129
169
|
minWidth: 60,
|
130
170
|
title: '序号',
|
131
171
|
type: 'numbers',
|
132
|
-
fixed: 'left',
|
133
172
|
align: 'center'
|
134
173
|
},
|
135
174
|
{
|
@@ -146,10 +185,10 @@
|
|
146
185
|
|
147
186
|
},
|
148
187
|
{
|
149
|
-
field: 'shixun_name',
|
150
188
|
title: '实践项目名称',
|
151
189
|
minWidth: 200,
|
152
|
-
align: 'center'
|
190
|
+
align: 'center',
|
191
|
+
templet: "#aherf"
|
153
192
|
},
|
154
193
|
{
|
155
194
|
field: 'shixun_producer',
|
@@ -174,7 +213,6 @@
|
|
174
213
|
field: 'deliver_date',
|
175
214
|
title: '交付时间',
|
176
215
|
width: 180,
|
177
|
-
templet: `<span>{{=new Date(d.deliver_date).toLocaleString('zh-CN')}}</span>`,
|
178
216
|
align: 'center'
|
179
217
|
},
|
180
218
|
{
|
@@ -195,7 +233,6 @@
|
|
195
233
|
width: 200,
|
196
234
|
toolbar: '#shixun_table_bar',
|
197
235
|
align: "center",
|
198
|
-
fixed: 'right'
|
199
236
|
}
|
200
237
|
]
|
201
238
|
]
|
@@ -216,7 +253,8 @@
|
|
216
253
|
// 监听搜索操作
|
217
254
|
form.on('submit(search_contract)', function (data) {
|
218
255
|
search = data.field
|
219
|
-
|
256
|
+
var index = localStorage.getItem("index")
|
257
|
+
search.index = index
|
220
258
|
table.reload('shixun_dectects_table', {
|
221
259
|
page: {
|
222
260
|
curr: 1
|
@@ -225,7 +263,23 @@
|
|
225
263
|
}, 'data');
|
226
264
|
return false;
|
227
265
|
});
|
228
|
-
|
266
|
+
// 重置
|
267
|
+
form.on('submit(reset_business_search)', function (data) {
|
268
|
+
var index = localStorage.getItem("index")
|
269
|
+
table.reload('shixun_dectects_table', {
|
270
|
+
page: {
|
271
|
+
curr: 1
|
272
|
+
},
|
273
|
+
where: {
|
274
|
+
q: {
|
275
|
+
index: index
|
276
|
+
}
|
277
|
+
}
|
278
|
+
}, 'data');
|
279
|
+
$(".layui-form")[0].reset();
|
280
|
+
form.render()
|
281
|
+
return false;
|
282
|
+
});
|
229
283
|
|
230
284
|
table.on('tool(shixun_dectects_table)', function (obj) {
|
231
285
|
var data = obj.data;
|
@@ -262,7 +316,7 @@
|
|
262
316
|
type: 1,
|
263
317
|
shade: 0.2,
|
264
318
|
maxmin: true,
|
265
|
-
shadeClose:
|
319
|
+
shadeClose: false,
|
266
320
|
area: ['900px', '550px'],
|
267
321
|
// offset: [openWH[2] + 'px', openWH[3] + 'px'],
|
268
322
|
content: content
|
@@ -301,38 +355,26 @@
|
|
301
355
|
elem: ".markdown_list"
|
302
356
|
});
|
303
357
|
return false
|
304
|
-
} else if (obj.event ===
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
layer.open({
|
320
|
-
type: 1,
|
321
|
-
title: '审核反馈',
|
322
|
-
area: ['900px', '500px'], // 宽高
|
323
|
-
content: text,
|
324
|
-
move: '#ID-test-layer-move'
|
325
|
-
});
|
326
|
-
easyeditor.render({
|
327
|
-
elem: ".markdown_list"
|
328
|
-
});
|
358
|
+
} else if (obj.event === 'show_markdown') {
|
359
|
+
if (data.content !== '--') {
|
360
|
+
var text = `<div class="markdown_list" style="margin: 50px" >` + data.content + `</div>`
|
361
|
+
layer.open({
|
362
|
+
type: 1,
|
363
|
+
title: '审核反馈',
|
364
|
+
area: ['900px', '700px'], // 宽高
|
365
|
+
content: text,
|
366
|
+
move: '#ID-test-layer-move'
|
367
|
+
});
|
368
|
+
easyeditor.render({
|
369
|
+
elem: ".markdown_list"
|
370
|
+
});
|
371
|
+
}
|
329
372
|
}
|
330
373
|
|
331
374
|
});
|
332
375
|
|
333
376
|
form.on('submit(shixun_dectects_table)', function (data) {
|
334
377
|
search = data.field
|
335
|
-
console.log(search)
|
336
378
|
table.reload('table', {
|
337
379
|
page: {
|
338
380
|
curr: 1
|
@@ -341,13 +383,16 @@
|
|
341
383
|
}, 'data');
|
342
384
|
return false;
|
343
385
|
});
|
344
|
-
|
386
|
+
$("#shixun_dectect_type_form").hide()
|
345
387
|
//控制顶部的待审核 和已审核
|
346
388
|
for (let i = 1; i <= 2; i++) {
|
347
389
|
|
348
390
|
if (i !== 2) {
|
349
391
|
$("#index_" + i).click(function () {
|
392
|
+
$(".layui-form")[0].reset();
|
393
|
+
$("#shixun_dectect_type_form").hide()
|
350
394
|
data.index = i
|
395
|
+
localStorage.setItem("index", i)
|
351
396
|
table.reload('shixun_dectects_table', {
|
352
397
|
page: {
|
353
398
|
curr: 1
|
@@ -358,6 +403,9 @@
|
|
358
403
|
});
|
359
404
|
} else {
|
360
405
|
$("#index_" + i).click(function () {
|
406
|
+
$(".layui-form")[0].reset();
|
407
|
+
$("#shixun_dectect_type_form").show()
|
408
|
+
localStorage.setItem("index", i)
|
361
409
|
var arr = [
|
362
410
|
[
|
363
411
|
{
|
@@ -365,7 +413,6 @@
|
|
365
413
|
minWidth: 60,
|
366
414
|
title: '序号',
|
367
415
|
type: 'numbers',
|
368
|
-
fixed: 'left',
|
369
416
|
align: 'center'
|
370
417
|
},
|
371
418
|
{
|
@@ -382,10 +429,10 @@
|
|
382
429
|
|
383
430
|
},
|
384
431
|
{
|
385
|
-
field: 'shixun_name',
|
386
432
|
title: '实践项目名称',
|
387
433
|
minWidth: 200,
|
388
|
-
align: 'center'
|
434
|
+
align: 'center',
|
435
|
+
templet: "#aherf"
|
389
436
|
},
|
390
437
|
{
|
391
438
|
field: 'shixun_manages',
|
@@ -410,7 +457,6 @@
|
|
410
457
|
field: 'deliver_date',
|
411
458
|
title: '交付时间',
|
412
459
|
width: 180,
|
413
|
-
templet: `<span>{{=new Date(d.deliver_date).toLocaleString('zh-CN')}}</span>`,
|
414
460
|
align: 'center'
|
415
461
|
},
|
416
462
|
{
|
@@ -427,7 +473,12 @@
|
|
427
473
|
},
|
428
474
|
{
|
429
475
|
title: '审核反馈',
|
430
|
-
templet:
|
476
|
+
templet: (d) => {
|
477
|
+
if (d.dectect_type === 2) {
|
478
|
+
return extractFirstTenCharsAndImage(d.content)
|
479
|
+
}
|
480
|
+
return ''
|
481
|
+
},
|
431
482
|
align: 'center',
|
432
483
|
minWidth: 100,
|
433
484
|
},
|
@@ -436,7 +487,6 @@
|
|
436
487
|
width: 200,
|
437
488
|
toolbar: '#shixun_dectect_type',
|
438
489
|
align: "center",
|
439
|
-
fixed: 'right'
|
440
490
|
}
|
441
491
|
]
|
442
492
|
]
|
@@ -6,15 +6,16 @@ json.data do
|
|
6
6
|
json.shixun_producer d.shixun_producer
|
7
7
|
json.shixun_staff d.shixun_staff
|
8
8
|
json.type d.shixun_type
|
9
|
-
json.deliver_date
|
10
|
-
json.deliver_money d.deliver_money
|
9
|
+
json.deliver_date handled_time_data @times["#{d.id}"]
|
10
|
+
json.deliver_money handled_data d.deliver_money
|
11
11
|
json.category d.category
|
12
|
-
json.school_name d.
|
12
|
+
json.school_name handled_data d.shixun_school
|
13
13
|
json.shixun_name d.shixun_name
|
14
14
|
json.shixun_status d.shixun_status
|
15
15
|
json.real_name d.real_name
|
16
16
|
json.dectect_type d.dectect_type
|
17
17
|
json.level d.level
|
18
|
+
json.identifier d.identifier
|
18
19
|
json.id d.id
|
19
20
|
end
|
20
21
|
end
|
@@ -11,8 +11,8 @@
|
|
11
11
|
<label class="layui-form-label">任务类型:<span style="color: red"> *</span></label>
|
12
12
|
<div class="layui-input-block">
|
13
13
|
<%= select_tag "category", options_for_select(
|
14
|
-
[
|
15
|
-
), { include_blank: true } %>
|
14
|
+
[ ["管培", 1], ["全职", 2], ["专职", 3]],selected:@item.category
|
15
|
+
), {"lay-filter":"Add_company", include_blank: true } %>
|
16
16
|
</div>
|
17
17
|
</div>
|
18
18
|
<div>
|
@@ -37,30 +37,40 @@
|
|
37
37
|
<div>
|
38
38
|
<label class="layui-form-label">项目状态:<span style="color: red"> *</span></label>
|
39
39
|
<div class="layui-input-block">
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
<% if @item.shixun_status == 4 || @item.shixun_status == 5%>
|
41
|
+
<%= select_tag "status", options_for_select(
|
42
|
+
[["审核中", 4], ["返修中", 5]], @item.shixun_status
|
43
|
+
), { include_blank: true ,disabled: true} %>
|
44
|
+
<% elsif @last_dectect == 'refused' %>
|
45
|
+
<%= select_tag "status", options_for_select(
|
46
|
+
[["已内部发布", 6], ["已公开发布", 7],["已付费用",8]], @item.shixun_status
|
47
|
+
), { include_blank: true} %>
|
48
|
+
<% else @last_dectect == ''%>
|
49
|
+
<%= select_tag "status", options_for_select(
|
50
|
+
[ ["待建设", 1], ["建设中", 3]], @item.shixun_status
|
51
|
+
), { include_blank: true } %>
|
52
|
+
<% end%>
|
53
|
+
|
44
54
|
</div>
|
45
55
|
</div>
|
46
56
|
</div>
|
47
57
|
|
48
58
|
<div class="layui-form-item">
|
49
|
-
<label class="layui-form-label" style="width:
|
59
|
+
<label class="layui-form-label" style="width: 96px">项目制作人:<span style="color: red"> *</span></label>
|
50
60
|
<div class="layui-input-block">
|
51
|
-
<div id="producer_id" style="width:
|
61
|
+
<div id="producer_id" style="width: 49%;margin-left: 10px"></div>
|
52
62
|
</div>
|
53
63
|
</div>
|
54
64
|
<div class="layui-form-item">
|
55
|
-
<label class="layui-form-label" style="width:
|
56
|
-
<div class="layui-input-block">
|
65
|
+
<label class="layui-form-label" style="width: 120px">制作完成时间:<span style="color: red"> *</span></label>
|
66
|
+
<div class="layui-input-block" style="width: 89%">
|
57
67
|
<input type="text" class="layui-input" name="time"
|
58
68
|
id="ID-laydate-demo" placeholder="yyyy-MM-dd"
|
59
|
-
value="<%=@item.deliver_date %>"
|
69
|
+
value="<%=@item.deliver_date.blank? ? "" : @item.deliver_date.strftime("%Y-%m-%d") %>"
|
60
70
|
style="width: 49%;">
|
61
71
|
</div>
|
62
72
|
</div>
|
63
|
-
<div class="layui-form-item">
|
73
|
+
<div class="layui-form-item" id="money">
|
64
74
|
<label class="layui-form-label">交付金额:<span style="color: red"> *</span></label>
|
65
75
|
<div class="layui-input-block">
|
66
76
|
<input type="number" class="layui-input" value="<%=@item.deliver_money %>" name="money" style="width: 50%;" >
|
@@ -122,6 +132,18 @@
|
|
122
132
|
producer_id.setValue(<%=@producer_list %>)
|
123
133
|
<% end %>
|
124
134
|
|
135
|
+
<% if @item.category != 3 %>
|
136
|
+
$("#money").hide()
|
137
|
+
<% end %>
|
138
|
+
form.on('select(Add_company)', function (data) {
|
139
|
+
{
|
140
|
+
if(data.value === '3'){
|
141
|
+
$("#money").show()
|
142
|
+
}else{
|
143
|
+
$("#money").hide()
|
144
|
+
}
|
145
|
+
}
|
146
|
+
});
|
125
147
|
function isNull(str){
|
126
148
|
return str === "" || str === null
|
127
149
|
}
|
@@ -140,7 +162,7 @@
|
|
140
162
|
layer.msg('课程组长未选择');
|
141
163
|
return false
|
142
164
|
}
|
143
|
-
if(isNull(new_data.money)){
|
165
|
+
if(new_data.category === '3' && isNull(new_data.money)){
|
144
166
|
layer.msg('交付金额未选择');
|
145
167
|
return false
|
146
168
|
}
|