educode_sales 0.1.0

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 (244) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +30 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/config/educode_sales_manifest.js +2 -0
  6. data/app/assets/fonts/iconfont.eot +0 -0
  7. data/app/assets/fonts/iconfont.svg +554 -0
  8. data/app/assets/fonts/iconfont.ttf +0 -0
  9. data/app/assets/fonts/iconfont.woff +0 -0
  10. data/app/assets/fonts/iconfont.woff2 +0 -0
  11. data/app/assets/images/educode_sales/favicon.ico +0 -0
  12. data/app/assets/images/educode_sales/icon-ext.png +0 -0
  13. data/app/assets/images/educode_sales/icon-login.png +0 -0
  14. data/app/assets/images/educode_sales/icon.png +0 -0
  15. data/app/assets/images/educode_sales/loading-0.gif +0 -0
  16. data/app/assets/images/educode_sales/loading-1.gif +0 -0
  17. data/app/assets/images/educode_sales/loading-2.gif +0 -0
  18. data/app/assets/images/educode_sales/loginbg.png +0 -0
  19. data/app/assets/images/educode_sales/logo.png +0 -0
  20. data/app/assets/javascripts/educode_sales/application.js +16 -0
  21. data/app/assets/javascripts/educode_sales/extent/miniPage.js +394 -0
  22. data/app/assets/javascripts/educode_sales/extent/request.js +137 -0
  23. data/app/assets/javascripts/educode_sales/extent/select_input.js +522 -0
  24. data/app/assets/javascripts/educode_sales/layui.js +5 -0
  25. data/app/assets/stylesheets/educode_sales/app.css +256 -0
  26. data/app/assets/stylesheets/educode_sales/application.css +17 -0
  27. data/app/assets/stylesheets/educode_sales/error.css +181 -0
  28. data/app/assets/stylesheets/educode_sales/layui.scss +1525 -0
  29. data/app/assets/stylesheets/educode_sales/layuimini.css +838 -0
  30. data/app/assets/stylesheets/educode_sales/login.scss +38 -0
  31. data/app/assets/stylesheets/educode_sales/modules/code.css +29 -0
  32. data/app/assets/stylesheets/educode_sales/modules/laydate/default/font.scss +16 -0
  33. data/app/assets/stylesheets/educode_sales/modules/laydate/default/laydate.css +152 -0
  34. data/app/assets/stylesheets/educode_sales/modules/layer/default/icon-ext.png +0 -0
  35. data/app/assets/stylesheets/educode_sales/modules/layer/default/icon.png +0 -0
  36. data/app/assets/stylesheets/educode_sales/modules/layer/default/layer.scss +179 -0
  37. data/app/assets/stylesheets/educode_sales/modules/layer/default/loading-0.gif +0 -0
  38. data/app/assets/stylesheets/educode_sales/modules/layer/default/loading-1.gif +0 -0
  39. data/app/assets/stylesheets/educode_sales/modules/layer/default/loading-2.gif +0 -0
  40. data/app/assets/stylesheets/educode_sales/modules/select_input.css +103 -0
  41. data/app/assets/stylesheets/educode_sales/public.css +47 -0
  42. data/app/controllers/educode_sales/activities_controller.rb +58 -0
  43. data/app/controllers/educode_sales/application_controller.rb +35 -0
  44. data/app/controllers/educode_sales/businesses_controller.rb +189 -0
  45. data/app/controllers/educode_sales/commons_controller.rb +54 -0
  46. data/app/controllers/educode_sales/follow_ups_controller.rb +140 -0
  47. data/app/controllers/educode_sales/home_controller.rb +40 -0
  48. data/app/controllers/educode_sales/key_person_controller.rb +29 -0
  49. data/app/controllers/educode_sales/operation_plans_controller.rb +53 -0
  50. data/app/controllers/educode_sales/operation_reports_controller.rb +6 -0
  51. data/app/controllers/educode_sales/operations_controller.rb +38 -0
  52. data/app/controllers/educode_sales/places_controller.rb +69 -0
  53. data/app/controllers/educode_sales/plans_controller.rb +208 -0
  54. data/app/controllers/educode_sales/roles_controller.rb +69 -0
  55. data/app/controllers/educode_sales/sale_reports_controller.rb +133 -0
  56. data/app/controllers/educode_sales/sale_trends_controller.rb +45 -0
  57. data/app/controllers/educode_sales/sales_controller.rb +64 -0
  58. data/app/controllers/educode_sales/sessions_controller.rb +51 -0
  59. data/app/controllers/educode_sales/staffs_controller.rb +81 -0
  60. data/app/controllers/educode_sales/teachers_controller.rb +167 -0
  61. data/app/helpers/educode_sales/activities_helper.rb +4 -0
  62. data/app/helpers/educode_sales/application_helper.rb +44 -0
  63. data/app/helpers/educode_sales/business_helper.rb +4 -0
  64. data/app/helpers/educode_sales/home_helper.rb +4 -0
  65. data/app/helpers/educode_sales/sessions_helper.rb +4 -0
  66. data/app/helpers/educode_sales/teachers_helper.rb +4 -0
  67. data/app/jobs/educode_sales/application_job.rb +4 -0
  68. data/app/mailers/educode_sales/application_mailer.rb +6 -0
  69. data/app/models/ability.rb +54 -0
  70. data/app/models/educode_sales/activity.rb +6 -0
  71. data/app/models/educode_sales/activity_teacher.rb +6 -0
  72. data/app/models/educode_sales/application_record.rb +5 -0
  73. data/app/models/educode_sales/business.rb +11 -0
  74. data/app/models/educode_sales/common.rb +32 -0
  75. data/app/models/educode_sales/course_subject.rb +5 -0
  76. data/app/models/educode_sales/follow_up.rb +14 -0
  77. data/app/models/educode_sales/key_person.rb +11 -0
  78. data/app/models/educode_sales/market_area.rb +6 -0
  79. data/app/models/educode_sales/money_plan.rb +22 -0
  80. data/app/models/educode_sales/operation_plan.rb +6 -0
  81. data/app/models/educode_sales/operation_report.rb +5 -0
  82. data/app/models/educode_sales/operation_trend.rb +5 -0
  83. data/app/models/educode_sales/permission.rb +16 -0
  84. data/app/models/educode_sales/place.rb +7 -0
  85. data/app/models/educode_sales/place_area.rb +6 -0
  86. data/app/models/educode_sales/role.rb +8 -0
  87. data/app/models/educode_sales/role_area.rb +13 -0
  88. data/app/models/educode_sales/role_permission.rb +6 -0
  89. data/app/models/educode_sales/sale_plan.rb +6 -0
  90. data/app/models/educode_sales/sale_report.rb +5 -0
  91. data/app/models/educode_sales/sale_trend.rb +4 -0
  92. data/app/models/educode_sales/staff.rb +41 -0
  93. data/app/models/educode_sales/teacher.rb +12 -0
  94. data/app/models/educode_sales/teacher_follow.rb +6 -0
  95. data/app/views/educode_sales/activities/edit.html.erb +82 -0
  96. data/app/views/educode_sales/activities/index.html.erb +172 -0
  97. data/app/views/educode_sales/activities/index.json.jbuilder +14 -0
  98. data/app/views/educode_sales/activities/new.html.erb +81 -0
  99. data/app/views/educode_sales/activities/show_teachers.html.erb +368 -0
  100. data/app/views/educode_sales/businesses/edit.html.erb +82 -0
  101. data/app/views/educode_sales/businesses/edit_follow_record.html.erb +138 -0
  102. data/app/views/educode_sales/businesses/edit_plan.html.erb +172 -0
  103. data/app/views/educode_sales/businesses/index.html.erb +364 -0
  104. data/app/views/educode_sales/businesses/index.json.jbuilder +20 -0
  105. data/app/views/educode_sales/businesses/new.html.erb +80 -0
  106. data/app/views/educode_sales/businesses/new_follow_record.html.erb +144 -0
  107. data/app/views/educode_sales/businesses/show_follow.html.erb +466 -0
  108. data/app/views/educode_sales/businesses/show_follow.json.jbuilder +21 -0
  109. data/app/views/educode_sales/businesses/show_follow_record.html.erb +81 -0
  110. data/app/views/educode_sales/businesses/show_keys.html.erb +56 -0
  111. data/app/views/educode_sales/businesses/unfinish_plans.json.jbuilder +14 -0
  112. data/app/views/educode_sales/commons/edit.html.erb +112 -0
  113. data/app/views/educode_sales/commons/index.html.erb +132 -0
  114. data/app/views/educode_sales/commons/index.json.jbuilder +13 -0
  115. data/app/views/educode_sales/commons/new.html.erb +58 -0
  116. data/app/views/educode_sales/commons/show.json.jbuilder +9 -0
  117. data/app/views/educode_sales/follow_ups/money_plans.json.jbuilder +11 -0
  118. data/app/views/educode_sales/follow_ups/teachers.json.jbuilder +16 -0
  119. data/app/views/educode_sales/home/index.html.erb +1 -0
  120. data/app/views/educode_sales/home/no_permission.html.erb +27 -0
  121. data/app/views/educode_sales/home/search.json.jbuilder +8 -0
  122. data/app/views/educode_sales/home/search_edu_teacher.json.jbuilder +14 -0
  123. data/app/views/educode_sales/home/search_teacher.json.jbuilder +24 -0
  124. data/app/views/educode_sales/home/search_users.json.jbuilder +8 -0
  125. data/app/views/educode_sales/home/statistics.html.erb +68 -0
  126. data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +288 -0
  127. data/app/views/educode_sales/operation_plans/_monthly.html.erb +284 -0
  128. data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +291 -0
  129. data/app/views/educode_sales/operation_plans/_weekly.html.erb +275 -0
  130. data/app/views/educode_sales/operation_plans/edit_month.html.erb +60 -0
  131. data/app/views/educode_sales/operation_plans/edit_monthly.html.erb +175 -0
  132. data/app/views/educode_sales/operation_plans/edit_week.html.erb +72 -0
  133. data/app/views/educode_sales/operation_plans/edit_weekly.html.erb +173 -0
  134. data/app/views/educode_sales/operation_plans/index.html.erb +22 -0
  135. data/app/views/educode_sales/operation_plans/new_month.html.erb +79 -0
  136. data/app/views/educode_sales/operation_plans/new_monthly.html.erb +176 -0
  137. data/app/views/educode_sales/operation_plans/new_week.html.erb +86 -0
  138. data/app/views/educode_sales/operation_plans/new_weekly.html.erb +174 -0
  139. data/app/views/educode_sales/operation_plans/operation.html.erb +0 -0
  140. data/app/views/educode_sales/operation_plans/show_month.html.erb +36 -0
  141. data/app/views/educode_sales/operation_plans/show_monthly.html.erb +171 -0
  142. data/app/views/educode_sales/operation_plans/show_week.html.erb +43 -0
  143. data/app/views/educode_sales/operation_plans/show_weekly.html.erb +170 -0
  144. data/app/views/educode_sales/operations/trends.html.erb +191 -0
  145. data/app/views/educode_sales/places/edit.html.erb +91 -0
  146. data/app/views/educode_sales/places/index.html.erb +137 -0
  147. data/app/views/educode_sales/places/index.json.jbuilder +13 -0
  148. data/app/views/educode_sales/places/new.html.erb +77 -0
  149. data/app/views/educode_sales/plans/_monthPlan.html.erb +258 -0
  150. data/app/views/educode_sales/plans/_monthly.html.erb +302 -0
  151. data/app/views/educode_sales/plans/_weekPlan.html.erb +265 -0
  152. data/app/views/educode_sales/plans/_weekly.html.erb +296 -0
  153. data/app/views/educode_sales/plans/audit_weekly.html.erb +177 -0
  154. data/app/views/educode_sales/plans/edit_month.html.erb +74 -0
  155. data/app/views/educode_sales/plans/edit_monthly.html.erb +179 -0
  156. data/app/views/educode_sales/plans/edit_week.html.erb +81 -0
  157. data/app/views/educode_sales/plans/edit_weekly.html.erb +238 -0
  158. data/app/views/educode_sales/plans/index.html.erb +54 -0
  159. data/app/views/educode_sales/plans/index.json.jbuilder +19 -0
  160. data/app/views/educode_sales/plans/my_month.json.jbuilder +18 -0
  161. data/app/views/educode_sales/plans/my_week.json.jbuilder +19 -0
  162. data/app/views/educode_sales/plans/new_month.html.erb +89 -0
  163. data/app/views/educode_sales/plans/new_monthly.html.erb +235 -0
  164. data/app/views/educode_sales/plans/new_week.html.erb +95 -0
  165. data/app/views/educode_sales/plans/new_weekly.html.erb +262 -0
  166. data/app/views/educode_sales/plans/operation.html.erb +0 -0
  167. data/app/views/educode_sales/plans/show_month.html.erb +30 -0
  168. data/app/views/educode_sales/plans/show_monthly.html.erb +175 -0
  169. data/app/views/educode_sales/plans/show_week.html.erb +38 -0
  170. data/app/views/educode_sales/plans/show_weekly.html.erb +143 -0
  171. data/app/views/educode_sales/roles/edit.html.erb +127 -0
  172. data/app/views/educode_sales/roles/index.html.erb +105 -0
  173. data/app/views/educode_sales/roles/index.json.jbuilder +10 -0
  174. data/app/views/educode_sales/roles/new.html.erb +51 -0
  175. data/app/views/educode_sales/sale_reports/audit.html.erb +209 -0
  176. data/app/views/educode_sales/sale_reports/edit.html.erb +240 -0
  177. data/app/views/educode_sales/sale_reports/index.json.jbuilder +17 -0
  178. data/app/views/educode_sales/sale_reports/plans.json.jbuilder +19 -0
  179. data/app/views/educode_sales/sale_reports/show.html.erb +172 -0
  180. data/app/views/educode_sales/sale_trends/operations.html.erb +49 -0
  181. data/app/views/educode_sales/sale_trends/trends.html.erb +213 -0
  182. data/app/views/educode_sales/sales/index.html.erb +60 -0
  183. data/app/views/educode_sales/sales/index.json.jbuilder +17 -0
  184. data/app/views/educode_sales/sales/operations.html.erb +108 -0
  185. data/app/views/educode_sales/sales/operations.json.jbuilder +14 -0
  186. data/app/views/educode_sales/sales/school.html.erb +29 -0
  187. data/app/views/educode_sales/sales/trends.html.erb +216 -0
  188. data/app/views/educode_sales/sales/xschool.html.erb +35 -0
  189. data/app/views/educode_sales/sessions/login.html.erb +87 -0
  190. data/app/views/educode_sales/staffs/edit.html.erb +116 -0
  191. data/app/views/educode_sales/staffs/follow_up_departments.json.jbuilder +13 -0
  192. data/app/views/educode_sales/staffs/follow_up_schools.json.jbuilder +12 -0
  193. data/app/views/educode_sales/staffs/index.html.erb +141 -0
  194. data/app/views/educode_sales/staffs/index.json.jbuilder +15 -0
  195. data/app/views/educode_sales/staffs/new.html.erb +73 -0
  196. data/app/views/educode_sales/teachers/activities.json.jbuilder +9 -0
  197. data/app/views/educode_sales/teachers/add_courses.html.erb +53 -0
  198. data/app/views/educode_sales/teachers/add_event.html.erb +49 -0
  199. data/app/views/educode_sales/teachers/add_keys.html.erb +282 -0
  200. data/app/views/educode_sales/teachers/course_list.json.jbuilder +22 -0
  201. data/app/views/educode_sales/teachers/edit.html.erb +109 -0
  202. data/app/views/educode_sales/teachers/edit_follow_record.html.erb +67 -0
  203. data/app/views/educode_sales/teachers/index.html.erb +461 -0
  204. data/app/views/educode_sales/teachers/index.json.jbuilder +23 -0
  205. data/app/views/educode_sales/teachers/new.html.erb +166 -0
  206. data/app/views/educode_sales/teachers/new_follow_record.html.erb +67 -0
  207. data/app/views/educode_sales/teachers/search_new.html.erb +138 -0
  208. data/app/views/educode_sales/teachers/show_class.html.erb +101 -0
  209. data/app/views/educode_sales/teachers/show_follow.html.erb +511 -0
  210. data/app/views/educode_sales/teachers/show_follow_record.html.erb +67 -0
  211. data/app/views/layouts/educode_sales/application.html.erb +104 -0
  212. data/app/views/layouts/educode_sales/login.html.erb +20 -0
  213. data/config/locales/sale.zh-CN.yml +9 -0
  214. data/config/routes.rb +162 -0
  215. data/db/migrate/20210830081842_create_educode_sales_staffs.rb +9 -0
  216. data/db/migrate/20210831022421_create_educode_sales_sale_trends.rb +13 -0
  217. data/db/migrate/20210831085201_create_educode_sales_commons.rb +11 -0
  218. data/db/migrate/20210901025628_create_educode_sales_roles.rb +19 -0
  219. data/db/migrate/20210901031626_create_educode_sales_market_areas.rb +10 -0
  220. data/db/migrate/20210902061835_create_educode_sales_role_areas.rb +11 -0
  221. data/db/migrate/20210902064029_create_educode_sales_permissions.rb +12 -0
  222. data/db/migrate/20210902064109_create_educode_sales_role_permissions.rb +62 -0
  223. data/db/migrate/20210902073832_create_educode_sales_businesses.rb +11 -0
  224. data/db/migrate/20210902080535_create_educode_sales_places.rb +10 -0
  225. data/db/migrate/20210902080918_create_educode_sales_follow_ups.rb +20 -0
  226. data/db/migrate/20210902101022_create_educode_sales_teachers.rb +20 -0
  227. data/db/migrate/20210902103331_create_educode_sales_teacher_follows.rb +15 -0
  228. data/db/migrate/20210903015810_create_educode_sales_sale_plans.rb +14 -0
  229. data/db/migrate/20210903020721_create_educode_sales_sale_reports.rb +21 -0
  230. data/db/migrate/20210903021458_create_educode_sales_operation_plans.rb +14 -0
  231. data/db/migrate/20210903021710_create_educode_sales_operation_reports.rb +19 -0
  232. data/db/migrate/20210903022055_create_educode_sales_operation_trends.rb +13 -0
  233. data/db/migrate/20210903032011_create_educode_sales_activities.rb +16 -0
  234. data/db/migrate/20210906104001_create_educode_sales_money_plans.rb +18 -0
  235. data/db/migrate/20210906105154_create_educode_sales_place_areas.rb +10 -0
  236. data/db/migrate/20210908014953_create_educode_sales_key_people.rb +21 -0
  237. data/db/migrate/20210912061148_add_audit_user_id_to_sales_reports.rb +11 -0
  238. data/db/migrate/20210913070728_create_educode_sales_activity_teachers.rb +11 -0
  239. data/db/migrate/20210913071607_create_educode_sales_course_subjects.rb +14 -0
  240. data/lib/educode_sales/engine.rb +5 -0
  241. data/lib/educode_sales/version.rb +3 -0
  242. data/lib/educode_sales.rb +5 -0
  243. data/lib/tasks/educode_sales_tasks.rake +4 -0
  244. metadata +342 -0
@@ -0,0 +1,67 @@
1
+ <form class="layui-form " action="">
2
+ <div class="layui-form-item" style="padding: 25px">
3
+ <div class="layui-inline">
4
+ <label class="layui-form-label">教师态度</label>
5
+ <div class="layui-input-inline">
6
+ <select name="quiz">
7
+ <option value="">请选择</option>
8
+ <option value="010">北京</option>
9
+ <option value="021">上海</option>
10
+ <option value="0571">杭州</option>
11
+ </select>
12
+ </div>
13
+ </div>
14
+ <div class="layui-inline">
15
+ <label class="layui-form-label">开课计划</label>
16
+ <div class="layui-input-inline">
17
+ <select name="quiz">
18
+ <option value="">请选择</option>
19
+ <option value="010">北京</option>
20
+ <option value="021">上海</option>
21
+ <option value="0571">杭州</option>
22
+ </select>
23
+ </div>
24
+ </div>
25
+ <br>
26
+ <div class="layui-inline">
27
+ <label class="layui-form-label">课堂建设</label>
28
+ <div class="layui-input-inline">
29
+ <select name="quiz">
30
+ <option value="">请选择</option>
31
+ <option value="010">北京</option>
32
+ <option value="021">上海</option>
33
+ <option value="0571">杭州</option>
34
+ </select>
35
+ </div>
36
+ </div>
37
+ <div class="layui-inline">
38
+ <label class="layui-form-label">跟进手段</label>
39
+ <div class="layui-input-inline">
40
+ <select name="quiz">
41
+ <option value="">请选择</option>
42
+ <option value="010">北京</option>
43
+ <option value="021">上海</option>
44
+ <option value="0571">杭州</option>
45
+ </select>
46
+ </div>
47
+ </div>
48
+ <br>
49
+ <div class="layui-form-item layui-form-text">
50
+ <label class="layui-form-label">跟进小结</label>
51
+ <div class="layui-input-block">
52
+ <textarea name="desc" placeholder="此处可以填写:
53
+ 1、教师关注的痛点问题;
54
+ 2、教师关注的教学项目、教学成果类型;
55
+ 3、其他个性化需求,以及应对情况说明;
56
+ 4、目前态度的产生原因等。
57
+ " class="layui-textarea"></textarea>
58
+ </div>
59
+ </div>
60
+ <div class="layui-inline" style="padding-left: 50px">
61
+ <button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-reset-btn">提交
62
+ </button>
63
+ <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn">取消
64
+ </button>
65
+ </div>
66
+ </div>
67
+ </form>
@@ -0,0 +1,104 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Educode sales</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+ <%= Gon::Base.render_data %>
8
+ <%= favicon_link_tag "educode_sales/favicon.ico" %>
9
+ <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
10
+ <%= stylesheet_link_tag "educode_sales/application", media: "all" %>
11
+ <%= javascript_include_tag "educode_sales/application" %>
12
+ </head>
13
+ <body>
14
+ <div class="layui-layout layui-layout-admin">
15
+ <div class="layui-header">
16
+ <div class="layui-logo layui-hide-xs layui-bg-black">
17
+ <%= image_tag "educode_sales/logo.png", class: 'header-logo' %>
18
+ <span class="app-title">营销支撑系统</span>
19
+ </div>
20
+ <ul class="layui-nav layui-layout-right">
21
+ <li class="layui-nav-item layui-hide layui-show-md-inline-block">
22
+ <a href="javascript:;">
23
+ <%= image_tag "/images/#{url_to_avatar(@current_admin.user)}", class: 'layui-nav-img' %>
24
+ <%= @current_admin.user.real_name %>
25
+ </a>
26
+ <dl class="layui-nav-child">
27
+ <dd><a href="/educode_sales/logout">退出</a></dd>
28
+ </dl>
29
+ </li>
30
+
31
+ <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
32
+ <a href="javascript:;">
33
+ <i class="layui-icon layui-icon-more-vertical"></i>
34
+ </a>
35
+ </li>
36
+ </ul>
37
+ </div>
38
+
39
+ <div class="layui-side layui-bg-black">
40
+ <div class="layui-side-scroll">
41
+ <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
42
+ <ul class="layui-nav layui-nav-tree" lay-filter="test">
43
+ <li class="layui-nav-item layui-nav-itemed">
44
+ <a class="" href="javascript:;">销售活动</a>
45
+ <dl class="layui-nav-child">
46
+ <dd>
47
+ <a href="/educode_sales/sale_trends/trends" class="<%= current?('layui-this', trends_sale_trends_path) %>">市场态势</a>
48
+ </dd>
49
+ <dd><a href="/educode_sales/sales" class="<%= current?('layui-this', sales_path) %>">销售分工</a>
50
+ </dd>
51
+ <dd><a href="/educode_sales/businesses" class="<%= current?('layui-this', businesses_path) %>">商机管理</a>
52
+ </dd>
53
+ <dd><a href="/educode_sales/places" class="<%= current?('layui-this', places_path) %>">渠道管理</a></dd>
54
+ <dd><a href="/educode_sales/plans" class="<%= current?('layui-this', plans_path) %>">销售计划</a></dd>
55
+ <!-- <dd><a href="/educode_sales/statistics">销售数据统计</a></dd> -->
56
+ </dl>
57
+ </li>
58
+ <li class="layui-nav-item layui-nav-itemed">
59
+ <a class="" href="javascript:;">运营活动</a>
60
+ <dl class="layui-nav-child">
61
+ <dd>
62
+ <a href="/educode_sales/operations/trends" class="<%= current?('layui-this', trends_operations_path) %>">运营态势</a>
63
+ </dd>
64
+ <dd>
65
+ <a href="/educode_sales/sales/operations" class="<%= current?('layui-this', sale_trends_sales_path) %>">运营分工</a>
66
+ </dd>
67
+ <dd><a href="/educode_sales/teachers" class="<%= current?('layui-this', teachers_path) %>">教师运营</a></dd>
68
+ <dd><a href="/educode_sales/activities" class="<%= current?('layui-this', activities_path) %>">活动运营</a></dd>
69
+ <dd>
70
+ <a href="/educode_sales/operation_plans" class="<%= current?('layui-this', operation_plans_path) %>">运营计划</a>
71
+ </dd>
72
+ </dl>
73
+ </li>
74
+ <li class="layui-nav-item layui-nav-itemed">
75
+ <a class="" href="javascript:;">系统设置</a>
76
+ <dl class="layui-nav-child">
77
+ <dd><a href="/educode_sales/roles" class="<%= current?('layui-this', roles_path) %>">角色管理</a></dd>
78
+ <dd><a href="/educode_sales/staffs" class="<%= current?('layui-this', staffs_path) %>">人员管理</a></dd>
79
+ <dd><a href="/educode_sales/commons" class="<%= current?('layui-this', commons_path) %>">字典列表</a></dd>
80
+ </dl>
81
+ </li>
82
+ </ul>
83
+ </div>
84
+ </div>
85
+
86
+ <div class="layui-body">
87
+ <!-- 内容主体区域 -->
88
+ <div class="layuimini-content-page">
89
+ <div class="layuimini-container layuimini-page-anim">
90
+ <div class="layuimini-main">
91
+ <%= yield %>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ </div>
96
+
97
+ <div class="layui-footer">
98
+ 湖南智擎科技有限公司营销支撑系统
99
+ </div>
100
+ </div>
101
+
102
+
103
+ </body>
104
+ </html>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <title><%= @title || 'Educode sales' %></title>
6
+ <%= csrf_meta_tags %>
7
+ <%= csp_meta_tag %>
8
+ <%= favicon_link_tag "educode_sales/favicon.ico" %>
9
+ <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
10
+ <%= stylesheet_link_tag "educode_sales/application", media: "all" %>
11
+ <%= javascript_include_tag "educode_sales/application" %>
12
+ </head>
13
+
14
+ <body class="login">
15
+ <div class="main-body">
16
+ <%= yield %>
17
+ </div>
18
+ <div class="footer">
19
+ ©版权所有 2021 头歌<span class="padding-5">|</span><a target="_blank" href="http://www.educoder.net">头歌官网</a>
20
+ </div>
@@ -0,0 +1,9 @@
1
+ 'zh-CN':
2
+ activerecord:
3
+ attributes:
4
+ educode_sales/common:
5
+ name: '选项名称'
6
+ educode_sales/staff:
7
+ user_id: '用户'
8
+ educode_sales/teacher:
9
+ user_id: '用户'
data/config/routes.rb ADDED
@@ -0,0 +1,162 @@
1
+ EducodeSales::Engine.routes.draw do
2
+ root to: "home#index"
3
+
4
+ get :statistics, to: "home#statistics"
5
+ get :login, to: "sessions#login"
6
+ get :logout, to: "sessions#logout"
7
+ get :search_users, to: "home#search_users"
8
+ get :search_teacher, to: "home#search_teacher"
9
+ get :search_edu_teacher,to: "home#search_edu_teacher"
10
+ get :search, to: "home#search"
11
+ get :no_permission, to: "home#no_permission"
12
+
13
+ resources :sessions do
14
+ end
15
+
16
+ resources :operation_reports
17
+
18
+ resources :sale_reports do
19
+ member do
20
+ get :plans
21
+ get :audit
22
+ put :update_audit
23
+ end
24
+ end
25
+
26
+ resources :key_person
27
+
28
+ resources :operation_plans
29
+
30
+ resources :follow_ups do
31
+ member do
32
+ get :teachers
33
+ post :add_keys
34
+ post :add_money
35
+ get :money_plans
36
+ put :update_money
37
+ delete :delete_money
38
+ end
39
+ end
40
+
41
+
42
+ resources :sale_trends do
43
+ collection do
44
+ get :trends
45
+ post :sale_trends
46
+ end
47
+ end
48
+
49
+ resources :businesses do
50
+ collection do
51
+ get :show_keys
52
+ get :add_keys
53
+ get :show_follow
54
+ get :new_follow_record
55
+ get :show_follow_record
56
+ get :edit_follow_record
57
+ get :edit_plan
58
+ end
59
+
60
+ member do
61
+ post :add_follow_up
62
+ get :unfinish_plans
63
+ put :update_follow_up
64
+ end
65
+ end
66
+
67
+ resources :places do
68
+ end
69
+
70
+ resources :plans do
71
+ collection do
72
+ get :operation
73
+ get :new_week
74
+ get :new_weekly
75
+ get :new_month
76
+ get :new_monthly
77
+ get :show_week
78
+ get :show_weekly
79
+ get :show_month
80
+ get :show_monthly
81
+ get :edit_week
82
+ get :edit_weekly
83
+ get :edit_month
84
+ get :edit_monthly
85
+ get :my_week
86
+ get :my_month
87
+ end
88
+ end
89
+ resources :operation_plans do
90
+ collection do
91
+ get :operation
92
+ get :new_week
93
+ get :new_weekly
94
+ get :new_month
95
+ get :new_monthly
96
+ get :show_week
97
+ get :show_weekly
98
+ get :show_month
99
+ get :show_monthly
100
+ get :edit_week
101
+ get :edit_weekly
102
+ get :edit_month
103
+ get :edit_monthly
104
+ end
105
+ end
106
+
107
+ resources :teachers do
108
+ collection do
109
+ get :add_keys
110
+ get :search_new
111
+ get :add_courses
112
+ get :add_event
113
+ get :show_class
114
+ get :show_follow
115
+ get :new_follow_record
116
+ get :show_follow_record
117
+ get :edit_follow_record
118
+ get :course_list
119
+ get :activities
120
+ end
121
+ end
122
+
123
+ resources :activities do
124
+ collection do
125
+ get :show_teachers
126
+ end
127
+ end
128
+
129
+ resources :sales do
130
+ collection do
131
+ get :trends
132
+ post :sale_trends
133
+ get :operations
134
+ get :school
135
+ get :xschool
136
+ end
137
+ end
138
+
139
+ resources :commons
140
+
141
+ resources :operations do
142
+ collection do
143
+ get :trends
144
+ post :sale_trends
145
+ end
146
+ end
147
+
148
+ resources :staffs do
149
+ member do
150
+ delete :disable
151
+ get :follow_up_schools
152
+ get :follow_up_departments
153
+ end
154
+ end
155
+
156
+ resources :roles do
157
+ member do
158
+ put :view
159
+ end
160
+ end
161
+
162
+ end
@@ -0,0 +1,9 @@
1
+ class CreateEducodeSalesStaffs < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_staffs do |t|
4
+ t.references :user
5
+ t.integer :group_id
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ class CreateEducodeSalesSaleTrends < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_sale_trends do |t|
4
+ t.float :chance_money
5
+ t.float :ballot_money
6
+ t.float :sign_money
7
+ t.float :returned_money
8
+ t.integer :year
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ class CreateEducodeSalesCommons < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_commons do |t|
4
+ t.string :name
5
+ t.string :clazz
6
+ t.integer :position
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ class CreateEducodeSalesRoles < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_roles do |t|
4
+ t.string :name
5
+
6
+ t.timestamps
7
+ end
8
+ add_column :educode_sales_staffs, :role_id, :integer
9
+ add_column :educode_sales_staffs, :expired_at, :datetime
10
+ add_column :educode_sales_staffs, :enabled_at, :datetime
11
+ add_column :educode_sales_staffs, :job_type, :integer
12
+ if EducodeSales::Common.first.nil?
13
+ citys = ["北京", "上海", "广东", "江苏", "浙江", "重庆", "安徽", "福建", "甘肃", "广西", "贵州", "海南", "河北", "黑龙江", "河南", "湖北", "湖南", "江西", "吉林", "辽宁", "内蒙古", "宁夏", "青海", "山东", "山西", "陕西", "四川", "天津", "新疆", "西藏", "云南", "香港特别行政区", "澳门特别行政区", "台湾"]
14
+ citys.each do |city|
15
+ EducodeSales::Common.create(clazz: '区域', name: city)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ class CreateEducodeSalesMarketAreas < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_market_areas do |t|
4
+ t.references :staff
5
+ t.integer :area_id
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ class CreateEducodeSalesRoleAreas < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :educode_sales_role_areas do |t|
4
+ t.references :role
5
+ t.integer :level, default: 0
6
+ t.string :clazz
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end