index.vue 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273
  1. <template>
  2. <div id="index">
  3. <p class="TopSystem">
  4. {{ user.userName }},欢迎您使用本系统<span style="margin-left: 20px"
  5. >本次登录的时间:{{ changeDateTime(user.loginDate) }}</span
  6. >
  7. <span style="margin-left: 14px"
  8. >您上次登录的时间:{{ changeDateTime(user.preLoginDate) }}</span
  9. >
  10. </p>
  11. <div>
  12. <ul class="style_ul">
  13. <li
  14. class="style_btn"
  15. v-for="(item, index) in educationType"
  16. :key="index"
  17. :class="activeEduId === item.id ? 'style_btn_active' : ''"
  18. @click="activeEduId = item.id"
  19. >
  20. {{ item.educationName }}
  21. </li>
  22. <div style="clear: both"></div>
  23. </ul>
  24. <ul class="style_ul">
  25. <li
  26. class="style_btn"
  27. v-for="(item, index) in businessList"
  28. :key="index"
  29. :class="activeBusId === item.id ? 'style_btn_active' : ''"
  30. @click="activeBusId = item.id"
  31. >
  32. {{ item.projectName + " - " + item.businessName }}
  33. </li>
  34. <div style="clear: both"></div>
  35. </ul>
  36. </div>
  37. <div class="style_div">
  38. <div class="flex_boxs dy_sty1">
  39. <p><span>学员数量</span></p>
  40. <div class="style_box flex1">
  41. <p class="p1">当前累计人数</p>
  42. <p class="p2">{{ uploadAnimalData.allStudent.toFixed(0) }}</p>
  43. <div class="foot_numbox">
  44. <span class="span1">昨日新增人数</span>
  45. <span class="span2">{{
  46. studentInfomModification.ytdStudent || 0
  47. }}</span>
  48. </div>
  49. </div>
  50. </div>
  51. <div class="flex_boxs dy_sty2">
  52. <p>
  53. <span>学员资料修改动态</span><span class="watch_all">查看全部</span>
  54. </p>
  55. <div class="style_box flex2">
  56. <div class="flex2_top_box">
  57. <div class="flex2_label">
  58. <div class="top">今日修改</div>
  59. <div class="nums">
  60. {{ studentInfomModification.todUpdateNum || 0 }}
  61. </div>
  62. </div>
  63. <div class="flex2_label">
  64. <div class="top">昨日修改</div>
  65. <div class="nums">
  66. {{ studentInfomModification.ytdUpdateNum || 0 }}
  67. </div>
  68. </div>
  69. <div class="flex2_label">
  70. <div class="top">近7日修改</div>
  71. <div class="nums">
  72. {{ studentInfomModification.sevenUpdateNum || 0 }}
  73. </div>
  74. </div>
  75. </div>
  76. <ul class="flex2_footer">
  77. <li
  78. v-for="(item, index) in studentInfomModification.lastUpdateList"
  79. :key="index"
  80. style="font-size: 14px; margin-bottom: 10px; color: #666666"
  81. >
  82. <i class="el-icon-s-custom"></i>
  83. 学员<span style="color: #fa541c">【{{ item.nowRealname }}】</span>
  84. ,<span style="color: #fa541c"
  85. >【{{ $methodsTools.onlyForma(item.createTime) }}】</span
  86. >
  87. 修改了<span style="color: #fa541c"
  88. >【{{ item.realname ? "姓名" : ""
  89. }}{{ item.idCard ? "身份证" : ""
  90. }}{{ item.telphone ? "手机号码" : "" }}】</span
  91. >
  92. ,如涉及上报注册中心数据,请及时处理。
  93. </li>
  94. </ul>
  95. </div>
  96. </div>
  97. </div>
  98. <div class="style_div">
  99. <div class="flex_boxs dy_sty3">
  100. <p><span>订单数量</span></p>
  101. <div class="style_box flex1">
  102. <p class="p1">当前累计数量</p>
  103. <p class="p2">{{ uploadAnimalData.allNum.toFixed(0) }}</p>
  104. <div class="foot_list_box">
  105. <div class="foot_list_style">
  106. <div class="aNumTopTitle">
  107. <img src="@/assets/index_images/sl1.png" alt="" /> 线上订单
  108. </div>
  109. <div class="aNumbox">
  110. <span class="span1">视频商品</span>
  111. <span class="span2">{{
  112. orderconsoledData.allOnVideoNum || 0
  113. }}</span>
  114. </div>
  115. <div class="aNumbox">
  116. <span class="span1">题库商品</span>
  117. <span class="span2">{{
  118. orderconsoledData.allOnBankNum || 0
  119. }}</span>
  120. </div>
  121. </div>
  122. <div class="foot_list_style">
  123. <div class="aNumTopTitle">
  124. <img src="@/assets/index_images/sl2.png" alt="" />线下订单
  125. </div>
  126. <div class="aNumbox">
  127. <span class="span1">视频商品</span>
  128. <span class="span2">{{
  129. orderconsoledData.allOffVideoNum || 0
  130. }}</span>
  131. </div>
  132. <div class="aNumbox">
  133. <span class="span1">题库商品</span>
  134. <span class="span2">{{
  135. orderconsoledData.allOffBankNum || 0
  136. }}</span>
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. <div class="flex_boxs dy_sty3">
  143. <p><span>今日订单数量</span></p>
  144. <div class="style_box flex1">
  145. <p class="p1">当前累计数量</p>
  146. <p class="p2">{{ uploadAnimalData.todNum.toFixed(0) }}</p>
  147. <div class="foot_list_box">
  148. <div class="foot_list_style">
  149. <div class="aNumTopTitle">
  150. <img src="@/assets/index_images/sl1.png" alt="" /> 线上订单
  151. </div>
  152. <div class="aNumbox">
  153. <span class="span1">视频商品</span>
  154. <span class="span2">{{
  155. orderconsoledData.todOnVideoNum || 0
  156. }}</span>
  157. </div>
  158. <div class="aNumbox">
  159. <span class="span1">题库商品</span>
  160. <span class="span2">{{
  161. orderconsoledData.todOnBankNum || 0
  162. }}</span>
  163. </div>
  164. </div>
  165. <div class="foot_list_style">
  166. <div class="aNumTopTitle">
  167. <img src="@/assets/index_images/sl2.png" alt="" />线下订单
  168. </div>
  169. <div class="aNumbox">
  170. <span class="span1">视频商品</span>
  171. <span class="span2">{{
  172. orderconsoledData.todOffVideoNum || 0
  173. }}</span>
  174. </div>
  175. <div class="aNumbox">
  176. <span class="span1">题库商品</span>
  177. <span class="span2">{{
  178. orderconsoledData.todOffBankNum || 0
  179. }}</span>
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. <div class="flex_boxs dy_sty3">
  186. <p><span>昨日订单数量</span></p>
  187. <div class="style_box flex1">
  188. <p class="p1">当前累计数量</p>
  189. <p class="p2">{{ uploadAnimalData.ytdNum.toFixed(0) }}</p>
  190. <div class="foot_list_box">
  191. <div class="foot_list_style">
  192. <div class="aNumTopTitle">
  193. <img src="@/assets/index_images/sl1.png" alt="" /> 线上订单
  194. </div>
  195. <div class="aNumbox">
  196. <span class="span1">视频商品</span>
  197. <span class="span2">{{
  198. orderconsoledData.ytdOnVideoNum || 0
  199. }}</span>
  200. </div>
  201. <div class="aNumbox">
  202. <span class="span1">题库商品</span>
  203. <span class="span2">{{
  204. orderconsoledData.ytdOnBankNum || 0
  205. }}</span>
  206. </div>
  207. </div>
  208. <div class="foot_list_style">
  209. <div class="aNumTopTitle">
  210. <img src="@/assets/index_images/sl2.png" alt="" />线下订单
  211. </div>
  212. <div class="aNumbox">
  213. <span class="span1">视频商品</span>
  214. <span class="span2">{{
  215. orderconsoledData.ytdOffVideoNum || 0
  216. }}</span>
  217. </div>
  218. <div class="aNumbox">
  219. <span class="span1">题库商品</span>
  220. <span class="span2">{{
  221. orderconsoledData.ytdOffBankNum || 0
  222. }}</span>
  223. </div>
  224. </div>
  225. </div>
  226. </div>
  227. </div>
  228. <div class="flex_boxs dy_sty3" style="margin-right: 0px !important">
  229. <p><span>视频商品:订单学时冲突</span></p>
  230. <div class="style_box flex3">
  231. <div class="flex3_1">
  232. <div class="flex3_children" style="margin-right: 16px">
  233. <div class="top_label">当前累计数量</div>
  234. <div class="nums">
  235. {{ uploadAnimalData.allRebuyNum.toFixed(0) }}
  236. </div>
  237. </div>
  238. <div class="flex3_children">
  239. <div class="top_label">今日数量</div>
  240. <div class="nums">
  241. {{ uploadAnimalData.todRebuyNum.toFixed(0) }}
  242. </div>
  243. </div>
  244. </div>
  245. <div class="flex3_2">
  246. <div class="flex3_children" style="margin-right: 16px">
  247. <div class="top_label">昨日数量</div>
  248. <div class="nums">
  249. {{ uploadAnimalData.ytdRebuyNum.toFixed(0) }}
  250. </div>
  251. </div>
  252. <div class="flex3_children">
  253. <div class="top_label">近7日数量</div>
  254. <div class="nums">
  255. {{ uploadAnimalData.sevenRebuyNum.toFixed(0) }}
  256. </div>
  257. </div>
  258. </div>
  259. </div>
  260. </div>
  261. </div>
  262. <div class="style_div">
  263. <div class="flex_boxs dy_sty3">
  264. <p>班级数量</p>
  265. <div class="style_box_tran">
  266. <div class="imgIBx imgUrl1 imgSize">
  267. <p class="p1">当前累计数量</p>
  268. <p class="p2">{{ uploadAnimalData.allNumClass.toFixed(0) }}</p>
  269. </div>
  270. <div class="li_s">
  271. <div class="li_s_child">
  272. <span class="li_s_child_left">今日新增</span
  273. ><span class="li_s_child_right">{{
  274. classconsoleData.todOpenNum || 0
  275. }}</span>
  276. </div>
  277. <div class="li_s_child">
  278. <span class="li_s_child_left">昨日新增</span
  279. ><span class="li_s_child_right">{{
  280. classconsoleData.todPreNum || 0
  281. }}</span>
  282. </div>
  283. <div class="li_s_child">
  284. <span class="li_s_child_left">近7日新增</span
  285. ><span class="li_s_child_right">{{
  286. classconsoleData.sevNum || 0
  287. }}</span>
  288. </div>
  289. </div>
  290. </div>
  291. </div>
  292. <div class="flex_boxs dy_sty3">
  293. <p class="tranSty">xxx</p>
  294. <div class="style_box_tran">
  295. <div class="imgIBx imgUrl2 imgSize">
  296. <p class="p1">已开班</p>
  297. <p class="p2">{{ uploadAnimalData.allOpenNumClass.toFixed(0) }}</p>
  298. </div>
  299. <div class="li_s">
  300. <div class="li_s_child">
  301. <span class="li_s_child_left">今日新增</span
  302. ><span class="li_s_child_right">{{
  303. classconsoleData.todOpenNum || 0
  304. }}</span>
  305. </div>
  306. <div class="li_s_child">
  307. <span class="li_s_child_left">昨日新增</span
  308. ><span class="li_s_child_right">{{
  309. classconsoleData.ytdOpenNum || 0
  310. }}</span>
  311. </div>
  312. <div class="li_s_child">
  313. <span class="li_s_child_left">近7日新增</span
  314. ><span class="li_s_child_right">{{
  315. classconsoleData.sevOpenNum || 0
  316. }}</span>
  317. </div>
  318. </div>
  319. </div>
  320. </div>
  321. <div class="flex_boxs dy_sty3">
  322. <p class="tranSty">xxx</p>
  323. <div class="style_box_tran">
  324. <div class="imgIBx imgUrl3 imgSize">
  325. <p class="p1">预报名</p>
  326. <p class="p2">{{ uploadAnimalData.allPreNumClass.toFixed(0) }}</p>
  327. </div>
  328. <div class="li_s">
  329. <div class="li_s_child">
  330. <span class="li_s_child_left">今日新增</span
  331. ><span class="li_s_child_right">{{
  332. classconsoleData.todPreNum || 0
  333. }}</span>
  334. </div>
  335. <div class="li_s_child">
  336. <span class="li_s_child_left">昨日新增</span
  337. ><span class="li_s_child_right">{{
  338. classconsoleData.ytdPreNum || 0
  339. }}</span>
  340. </div>
  341. <div class="li_s_child">
  342. <span class="li_s_child_left">近7日新增</span
  343. ><span class="li_s_child_right">{{
  344. classconsoleData.sevPreNum || 0
  345. }}</span>
  346. </div>
  347. </div>
  348. </div>
  349. </div>
  350. <div class="flex_boxs dy_sty3" style="margin-right: 0px !important">
  351. <p><span>学习账号标记</span><span class="watch_all">查看全部</span></p>
  352. <div class="style_box flex1">
  353. <div class="foot_box" style="margin-bottom: 16px">
  354. <div class="foot_box_list" style="margin-right: 16px; height: 64px">
  355. <div class="top_label">未配置班级</div>
  356. <div class="nums_mini">
  357. {{ classconsoleData.noConfigNum || 0 }}
  358. </div>
  359. </div>
  360. <div class="foot_box_list" style="margin-right: 16px; height: 64px">
  361. <div class="top_label">有接口班级</div>
  362. <div class="nums_mini">{{ classconsoleData.interfNum || 0 }}</div>
  363. </div>
  364. <div class="foot_box_list" style="height: 64px">
  365. <div class="top_label">无接口班级</div>
  366. <div class="nums_mini">
  367. {{ classconsoleData.noInterfNum || 0 }}
  368. </div>
  369. </div>
  370. </div>
  371. <div class="foot_list_box" style="align-items: flex-start">
  372. <div class="foot_list_style">
  373. <div class="aNumTopTitle">
  374. <img src="@/assets/index_images/sl8.png" alt="" /> 账号开通标记
  375. </div>
  376. <div class="aNumbox" style="margin-bottom: 13px">
  377. <span class="span1">未开通</span>
  378. <span class="span3">{{ classconsoleData.noOpenNum || 0 }}</span>
  379. </div>
  380. <div class="aNumbox" style="margin-bottom: 13px">
  381. <span class="span1">已开通</span>
  382. <span class="span3">{{ classconsoleData.openNum || 0 }}</span>
  383. </div>
  384. <div class="aNumbox">
  385. <span class="span1">标记失败</span>
  386. <span class="span3">{{ classconsoleData.failNum || 0 }}</span>
  387. </div>
  388. </div>
  389. <div class="foot_list_style" style="align-items: flex-start">
  390. <div class="aNumTopTitle">
  391. <img src="@/assets/index_images/sl9.png" alt="" />学完标记
  392. </div>
  393. <div class="aNumbox" style="margin-bottom: 13px">
  394. <span class="span1">未完成</span>
  395. <span class="span3">{{
  396. classconsoleData.noFinishNum || 0
  397. }}</span>
  398. </div>
  399. <div class="aNumbox" style="margin-bottom: 13px">
  400. <span class="span1">已完成</span>
  401. <span class="span3">{{ classconsoleData.finishNum || 0 }}</span>
  402. </div>
  403. </div>
  404. </div>
  405. </div>
  406. </div>
  407. </div>
  408. <div class="style_div">
  409. <div class="flex_boxs dy_sty4">
  410. <p>填写资料审核</p>
  411. <div class="style_box flex1">
  412. <p class="p1">待审数量</p>
  413. <p class="p3">83949</p>
  414. <div class="foot_box">
  415. <div class="foot_box_list" style="margin-right: 16px">
  416. <div class="top_label">不通过数量</div>
  417. <div class="nums">839</div>
  418. </div>
  419. <div class="foot_box_list">
  420. <div class="top_label">通过数量</div>
  421. <div class="nums">839</div>
  422. </div>
  423. </div>
  424. </div>
  425. </div>
  426. <div class="flex_boxs dy_sty4">
  427. <p>学时审核</p>
  428. <div class="style_box_tran_yellow">
  429. <div class="imgIBx imgUrl4 imgSize">
  430. <p class="p1">待初审</p>
  431. <p class="p2">{{ uploadAnimalData.waitAllNum.toFixed(0) }}</p>
  432. </div>
  433. <div class="li_s">
  434. <div class="li_s_child">
  435. <span class="li_s_child_left">今日新增</span
  436. ><span class="li_s_child_right">{{
  437. periodconsoleData.waitTodNum || 0
  438. }}</span>
  439. </div>
  440. <div class="li_s_child">
  441. <span class="li_s_child_left">昨日新增</span
  442. ><span class="li_s_child_right">{{
  443. periodconsoleData.waitYtdNum || 0
  444. }}</span>
  445. </div>
  446. <div class="li_s_child">
  447. <span class="li_s_child_left">近7日新增</span
  448. ><span class="li_s_child_right">{{
  449. periodconsoleData.waitSevNum || 0
  450. }}</span>
  451. </div>
  452. </div>
  453. </div>
  454. </div>
  455. <div class="flex_boxs dy_sty4">
  456. <p class="tranSty">xxx</p>
  457. <div class="style_box_tran_yellow">
  458. <div class="imgIBx imgUrl5 imgSize">
  459. <p class="p1">待复审</p>
  460. <p class="p2">{{ uploadAnimalData.ingAllNum.toFixed(0) }}</p>
  461. </div>
  462. <div class="li_s">
  463. <div class="li_s_child">
  464. <span class="li_s_child_left">今日新增</span
  465. ><span class="li_s_child_right">{{
  466. periodconsoleData.ingTodNum || 0
  467. }}</span>
  468. </div>
  469. <div class="li_s_child">
  470. <span class="li_s_child_left">昨日新增</span
  471. ><span class="li_s_child_right">{{
  472. periodconsoleData.ingYtdNum || 0
  473. }}</span>
  474. </div>
  475. <div class="li_s_child">
  476. <span class="li_s_child_left">近7日新增</span
  477. ><span class="li_s_child_right">{{
  478. periodconsoleData.ingSevNum || 0
  479. }}</span>
  480. </div>
  481. </div>
  482. </div>
  483. </div>
  484. <div class="flex_boxs dy_sty4" style="margin-right: 0px !important">
  485. <p><span>学员推送数据</span><span class="watch_all">查看全部</span></p>
  486. <div class="style_box flex1">
  487. <div class="foot_box" style="margin-bottom: 16px">
  488. <div class="foot_box_list" style="margin-right: 16px; height: 64px">
  489. <div class="top_label">未配置报名接口班级</div>
  490. <div class="nums_mini">
  491. {{ periodconsoleData.noInfoNum || 0 }}
  492. </div>
  493. </div>
  494. <div class="foot_box_list" style="height: 64px">
  495. <div class="top_label">有配置报名接口班级</div>
  496. <div class="nums_mini">
  497. {{ periodconsoleData.infoNum || 0 }}
  498. </div>
  499. </div>
  500. </div>
  501. <div class="foot_box" style="margin-bottom: 16px">
  502. <div class="foot_box_list" style="margin-right: 16px; height: 64px">
  503. <div class="top_label">未配置学时接口班级</div>
  504. <div class="nums_mini">
  505. {{ periodconsoleData.noPeriodNum || 0 }}
  506. </div>
  507. </div>
  508. <div class="foot_box_list" style="height: 64px">
  509. <div class="top_label">有配置学时接口班级</div>
  510. <div class="nums_mini">
  511. {{ periodconsoleData.periodNum || 0 }}
  512. </div>
  513. </div>
  514. </div>
  515. <div class="foot_list_box" style="align-items: flex-start">
  516. <div class="foot_list_style">
  517. <div class="aNumTopTitle">
  518. <img src="@/assets/index_images/sl10.png" alt="" /> 报名推送
  519. </div>
  520. <div class="aNumbox" style="margin-bottom: 13px">
  521. <span class="span1">报名人数</span>
  522. <span class="span3">{{
  523. periodconsoleData.applyUserNum || 0
  524. }}</span>
  525. </div>
  526. <div class="aNumbox">
  527. <span class="span1">已推送人数</span>
  528. <span class="span3">{{
  529. periodconsoleData.applyPushUserNum || 0
  530. }}</span>
  531. </div>
  532. </div>
  533. <div class="foot_list_style" style="align-items: flex-start">
  534. <div class="aNumTopTitle">
  535. <img src="@/assets/index_images/sl11.png" alt="" />学时推送
  536. </div>
  537. <div class="aNumbox" style="margin-bottom: 13px">
  538. <span class="span1">学时审核通过人数</span>
  539. <span class="span3">{{
  540. periodconsoleData.periodUserNum || 0
  541. }}</span>
  542. </div>
  543. <div class="aNumbox">
  544. <span class="span1">已推送人数</span>
  545. <span class="span3">{{
  546. periodconsoleData.periodPushUserNum || 0
  547. }}</span>
  548. </div>
  549. </div>
  550. </div>
  551. </div>
  552. </div>
  553. </div>
  554. <div class="style_div" style="align-items: flex-start">
  555. <div class="flex_boxs dy_sty2" style="margin-right: 13px; height: auto">
  556. <p><span>考试数据</span><span class="watch_all">查看全部</span></p>
  557. <div class="style_box changeTABLE">
  558. <el-table
  559. :data="tableData"
  560. style="width: 99%"
  561. :header-cell-style="{
  562. 'background-color': '#E6FFFB',
  563. color: '#13C2C2',
  564. fontSize: '14px',
  565. }"
  566. :row-class-name="tableRowClassName"
  567. >
  568. <el-table-column
  569. v-for="(item, index) in tableSet"
  570. :key="index"
  571. :prop="item.prop"
  572. :label="item.label"
  573. :width="item.width"
  574. >
  575. <template slot-scope="scope">
  576. <span>{{ scope.row[item.prop] }}</span>
  577. </template>
  578. </el-table-column>
  579. </el-table>
  580. </div>
  581. </div>
  582. <div class="flex_boxs dy_sty2" style="height: auto">
  583. <p><span>模考数据</span><span class="watch_all">查看全部</span></p>
  584. <div class="style_box changeTABLE">
  585. <el-table
  586. :data="tableData_MN"
  587. style="width: 99%"
  588. :header-cell-style="{
  589. 'background-color': '#E6FFFB',
  590. color: '#13C2C2',
  591. fontSize: '14px',
  592. }"
  593. :row-class-name="tableRowClassName"
  594. >
  595. <el-table-column
  596. v-for="(item, index) in tableSet"
  597. :key="index"
  598. :prop="item.prop"
  599. :label="item.label"
  600. :width="item.width"
  601. >
  602. <template slot-scope="scope">
  603. <span>{{ scope.row[item.prop] }}</span>
  604. </template>
  605. </el-table-column>
  606. </el-table>
  607. </div>
  608. </div>
  609. </div>
  610. </div>
  611. </template>
  612. <script>
  613. import { getInfo } from "@/api/login";
  614. import { mapGetters } from "vuex";
  615. export default {
  616. name: "Index",
  617. data() {
  618. return {
  619. activeEduId: "",
  620. businessList: [],
  621. activeBusId: "",
  622. tableSet: [
  623. {
  624. label: "类别",
  625. prop: "name",
  626. },
  627. {
  628. label: "今日",
  629. prop: "label",
  630. },
  631. {
  632. label: "昨日",
  633. prop: "label",
  634. },
  635. {
  636. label: "近7日",
  637. prop: "label",
  638. },
  639. {
  640. label: "累计",
  641. prop: "label",
  642. },
  643. ],
  644. tableData: [
  645. {
  646. name: "考试预约",
  647. label: "123",
  648. },
  649. {
  650. name: "考试预约",
  651. label: "123",
  652. },
  653. {
  654. name: "考试预约",
  655. label: "123",
  656. },
  657. ],
  658. tableData_MN: [
  659. {
  660. name: "考试预约",
  661. label: "123",
  662. },
  663. {
  664. name: "考试预约",
  665. label: "123",
  666. },
  667. ],
  668. num1: 0,
  669. studentInfomModification: {}, //学员资料修改动态
  670. orderconsoledData: {},
  671. classconsoleData: {},
  672. periodconsoleData: {},
  673. uploadAnimalData: {
  674. allStudent: 0, //当前累计人数
  675. allNum: 0,
  676. todNum: 0,
  677. ytdNum: 0,
  678. allRebuyNum: 0,
  679. todRebuyNum: 0,
  680. ytdRebuyNum: 0,
  681. sevenRebuyNum: 0,
  682. allNumClass: 0,
  683. allOpenNumClass: 0,
  684. allPreNumClass: 0,
  685. waitAllNum: 0,
  686. ingAllNum: 0,
  687. }, //需要动画滚动的数值
  688. user: {},
  689. };
  690. },
  691. watch: {
  692. educationType(val) {
  693. if (val.length > 0) {
  694. this.activeEduId = val[0].id;
  695. }
  696. },
  697. activeEduId(val) {
  698. this.$api
  699. .inquirebusinessList({ status: 1, educationId: val })
  700. .then((res) => {
  701. if (res.rows.length > 0) {
  702. this.activeBusId = res.rows[0].id;
  703. }
  704. this.businessList = res.rows;
  705. });
  706. },
  707. activeBusId(val) {
  708. this.getBusUploadData(val);
  709. },
  710. "studentInfomModification.allStudent"(val) {
  711. gsap.to(this.$data.uploadAnimalData, {
  712. duration: 0.5,
  713. allStudent: val,
  714. });
  715. },
  716. orderconsoledData(val) {
  717. gsap.to(this.$data.uploadAnimalData, {
  718. duration: 0.5,
  719. allNum: val.allNum,
  720. });
  721. gsap.to(this.$data.uploadAnimalData, {
  722. duration: 0.5,
  723. todNum: val.todNum,
  724. });
  725. gsap.to(this.$data.uploadAnimalData, {
  726. duration: 0.5,
  727. ytdNum: val.ytdNum,
  728. });
  729. gsap.to(this.$data.uploadAnimalData, {
  730. duration: 0.5,
  731. allRebuyNum: val.allRebuyNum,
  732. });
  733. gsap.to(this.$data.uploadAnimalData, {
  734. duration: 0.5,
  735. todRebuyNum: val.todRebuyNum,
  736. });
  737. gsap.to(this.$data.uploadAnimalData, {
  738. duration: 0.5,
  739. ytdRebuyNum: val.ytdRebuyNum,
  740. });
  741. gsap.to(this.$data.uploadAnimalData, {
  742. duration: 0.5,
  743. sevenRebuyNum: val.sevenRebuyNum,
  744. });
  745. },
  746. classconsoleData(val) {
  747. gsap.to(this.$data.uploadAnimalData, {
  748. duration: 0.5,
  749. allNumClass: val.allNum,
  750. });
  751. gsap.to(this.$data.uploadAnimalData, {
  752. duration: 0.5,
  753. allPreNumClass: val.allOpenNum,
  754. });
  755. gsap.to(this.$data.uploadAnimalData, {
  756. duration: 0.5,
  757. allOpenNumClass: val.allPreNum,
  758. });
  759. },
  760. periodconsoleData(val) {
  761. gsap.to(this.$data.uploadAnimalData, {
  762. duration: 0.5,
  763. waitAllNum: val.waitAllNum,
  764. });
  765. gsap.to(this.$data.uploadAnimalData, {
  766. duration: 0.5,
  767. ingAllNum: val.ingAllNum,
  768. });
  769. },
  770. },
  771. computed: {
  772. ...mapGetters(["educationType", ""]),
  773. changeDateTime: function () {
  774. return function (date) {
  775. if (date) {
  776. let da = this.$methodsTools.onlyForma(
  777. new Date(date).getTime() / 1000
  778. );
  779. return da;
  780. } else {
  781. return "没有记录";
  782. }
  783. };
  784. },
  785. },
  786. created() {
  787. getInfo().then((res) => {
  788. this.user = res.data.user;
  789. });
  790. },
  791. methods: {
  792. /**
  793. * 表格颜色
  794. */
  795. tableRowClassName({ row, rowIndex }) {
  796. if (rowIndex % 2 == 0) {
  797. return "";
  798. }
  799. return "success-row";
  800. },
  801. /**
  802. * 初始获取数据
  803. */
  804. getBusUploadData(id) {
  805. this.$api.baseconsolestudentData({ businessId: id }).then((res) => {
  806. this.studentInfomModification = res.data;
  807. });
  808. this.$api.baseconsoleorderData({ businessId: id }).then((res) => {
  809. this.orderconsoledData = res.data;
  810. });
  811. this.$api.baseconsolegradeData({ businessId: id }).then((res) => {
  812. this.classconsoleData = res.data;
  813. });
  814. this.$api.baseconsoleperiodData({ businessId: id }).then((res) => {
  815. this.periodconsoleData = res.data;
  816. });
  817. },
  818. },
  819. };
  820. </script>
  821. <style lang="less" scoped>
  822. .TopSystem {
  823. margin: 0px;
  824. font-size: 14px;
  825. font-weight: 400;
  826. color: #999999;
  827. }
  828. .style_ul {
  829. .style_btn {
  830. float: left;
  831. background-color: #e6f2ff;
  832. box-shadow: 2px 2px 6px 0px rgba(217, 217, 217, 0.5);
  833. padding: 0px 16px;
  834. border-radius: 4px;
  835. height: 40px;
  836. line-height: 40px;
  837. margin: 0px 16px 16px 0px;
  838. font-size: 14px;
  839. font-weight: 400;
  840. color: #666666;
  841. user-select: none;
  842. transition: all 0.1s;
  843. cursor: pointer;
  844. &:hover {
  845. background-color: #0c5dfb;
  846. color: #fff;
  847. }
  848. }
  849. .style_btn_active {
  850. background-color: #0c5dfb !important;
  851. color: #fff !important;
  852. }
  853. }
  854. .style_div {
  855. margin-bottom: 16px;
  856. display: flex;
  857. align-items: center;
  858. .flex_boxs {
  859. display: flex;
  860. flex-direction: column;
  861. & > p {
  862. margin: 0px 0px 16px 0px;
  863. flex-shrink: 0;
  864. font-size: 16px;
  865. font-weight: bold;
  866. color: #666666;
  867. & > .watch_all {
  868. font-size: 14px;
  869. font-weight: 400;
  870. color: #0c5dfb;
  871. float: right;
  872. user-select: none;
  873. cursor: pointer;
  874. }
  875. }
  876. }
  877. .flex_box_right {
  878. height: 258px;
  879. flex: 1;
  880. border: 1px solid #666;
  881. }
  882. }
  883. .style_box {
  884. background: #ffffff;
  885. box-shadow: 0px 0px 8px 0px rgba(217, 217, 217, 0.8);
  886. border-radius: 8px;
  887. flex: 1;
  888. }
  889. .style_box_tran {
  890. margin-top: 51px;
  891. flex: 1;
  892. background: #ffffff;
  893. box-shadow: 0px 0px 8px 0px rgba(217, 217, 217, 0.8);
  894. border-radius: 8px;
  895. display: flex;
  896. .imgIBx {
  897. width: 224px;
  898. height: 258px;
  899. margin-top: -47px;
  900. border-radius: 8px;
  901. cursor: pointer;
  902. transition: all 0.3s;
  903. &:hover {
  904. box-shadow: 3px 3px 14px 0px rgba(9, 109, 217, 0.7);
  905. transform: scale(1.01);
  906. }
  907. padding: 15px 16px;
  908. & > .p1 {
  909. margin: 0px 0px 23px 0px;
  910. font-size: 14px;
  911. font-weight: 400;
  912. color: #fff;
  913. }
  914. & > .p2 {
  915. font-size: 40px;
  916. font-weight: bold;
  917. color: #fff;
  918. margin: 0px;
  919. }
  920. }
  921. .imgUrl1 {
  922. background: transparent url("../assets/index_images/sl3.png") no-repeat
  923. center;
  924. }
  925. .imgUrl2 {
  926. background: transparent url("../assets/index_images/sl4.png") no-repeat
  927. center;
  928. }
  929. .imgUrl3 {
  930. background: transparent url("../assets/index_images/sl5.png") no-repeat
  931. center;
  932. }
  933. .imgUrl4 {
  934. background: transparent url("../assets/index_images/sl6.png") no-repeat
  935. center;
  936. }
  937. .imgUrl5 {
  938. background: transparent url("../assets/index_images/sl7.png") no-repeat
  939. center;
  940. }
  941. .imgSize {
  942. background-size: 224px 258px;
  943. }
  944. .li_s {
  945. flex: 1;
  946. display: flex;
  947. flex-direction: column;
  948. justify-content: space-around;
  949. .li_s_child {
  950. display: flex;
  951. align-items: center;
  952. justify-content: space-between;
  953. height: 48px;
  954. padding: 0px 15px;
  955. line-height: 48px;
  956. border-right: 2px solid #13c2c2;
  957. background: linear-gradient(
  958. 90deg,
  959. rgba(245, 245, 245, 0) 0%,
  960. #f5f5f5 100%
  961. );
  962. .li_s_child_left {
  963. font-size: 14px;
  964. font-weight: 400;
  965. color: #666666;
  966. }
  967. .li_s_child_right {
  968. font-size: 24px;
  969. font-weight: 400;
  970. color: #13c2c2;
  971. }
  972. }
  973. }
  974. }
  975. .style_box_tran_yellow {
  976. margin-top: 88px;
  977. flex: 1;
  978. background: #ffffff;
  979. box-shadow: 0px 0px 8px 0px rgba(217, 217, 217, 0.8);
  980. border-radius: 8px;
  981. display: flex;
  982. .imgIBx {
  983. width: 224px;
  984. height: 296px;
  985. margin-top: -82px;
  986. border-radius: 8px;
  987. cursor: pointer;
  988. transition: all 0.3s;
  989. &:hover {
  990. box-shadow: 3px 3px 14px 0px rgba(217, 112, 0, 0.7);
  991. transform: scale(1.01);
  992. }
  993. padding: 15px 16px;
  994. & > .p1 {
  995. margin: 0px 0px 23px 0px;
  996. font-size: 14px;
  997. font-weight: 400;
  998. color: #fff;
  999. }
  1000. & > .p2 {
  1001. font-size: 40px;
  1002. font-weight: bold;
  1003. color: #fff;
  1004. margin: 0px;
  1005. }
  1006. }
  1007. .imgUrl4 {
  1008. background: transparent url("../assets/index_images/sl6.png") no-repeat
  1009. center;
  1010. }
  1011. .imgUrl5 {
  1012. background: transparent url("../assets/index_images/sl7.png") no-repeat
  1013. center;
  1014. }
  1015. .imgSize {
  1016. background-size: 224px 296px;
  1017. }
  1018. .li_s {
  1019. flex: 1;
  1020. display: flex;
  1021. flex-direction: column;
  1022. justify-content: space-around;
  1023. .li_s_child {
  1024. display: flex;
  1025. align-items: center;
  1026. justify-content: space-between;
  1027. height: 48px;
  1028. padding: 0px 15px;
  1029. line-height: 48px;
  1030. border-right: 2px solid #13c2c2;
  1031. background: linear-gradient(
  1032. 90deg,
  1033. rgba(245, 245, 245, 0) 0%,
  1034. #f5f5f5 100%
  1035. );
  1036. .li_s_child_left {
  1037. font-size: 14px;
  1038. font-weight: 400;
  1039. color: #666666;
  1040. }
  1041. .li_s_child_right {
  1042. font-size: 24px;
  1043. font-weight: 400;
  1044. color: #13c2c2;
  1045. }
  1046. }
  1047. }
  1048. }
  1049. .dy_sty1 {
  1050. margin-right: 13px;
  1051. height: 258px;
  1052. width: 433px;
  1053. }
  1054. .dy_sty2 {
  1055. height: 258px;
  1056. flex: 1;
  1057. }
  1058. .dy_sty3 {
  1059. margin-right: 13px;
  1060. height: 296px;
  1061. flex: 1;
  1062. }
  1063. .dy_sty4 {
  1064. margin-right: 13px;
  1065. height: 336px;
  1066. flex: 1;
  1067. }
  1068. .tranSty {
  1069. color: transparent !important;
  1070. user-select: none;
  1071. }
  1072. .flex1 {
  1073. padding: 15px 16px;
  1074. display: flex;
  1075. flex-direction: column;
  1076. & > .p1 {
  1077. margin: 0px 0px 23px 0px;
  1078. font-size: 14px;
  1079. font-weight: 400;
  1080. color: #666666;
  1081. }
  1082. & > .p2 {
  1083. font-size: 40px;
  1084. font-weight: bold;
  1085. color: #333333;
  1086. margin: 0px;
  1087. flex: 1;
  1088. }
  1089. & > .p3 {
  1090. font-size: 40px;
  1091. font-weight: bold;
  1092. text-decoration: underline;
  1093. color: #0c5dfb;
  1094. margin: 0px;
  1095. flex: 1;
  1096. }
  1097. & > .foot_numbox {
  1098. display: flex;
  1099. align-items: center;
  1100. justify-content: space-between;
  1101. .span1 {
  1102. font-size: 14px;
  1103. font-weight: 400;
  1104. color: #666666;
  1105. }
  1106. .span2 {
  1107. font-size: 24px;
  1108. font-weight: 400;
  1109. text-decoration: underline;
  1110. color: #0c5dfb;
  1111. }
  1112. }
  1113. & > .foot_list_box {
  1114. display: flex;
  1115. align-items: center;
  1116. .foot_list_style {
  1117. flex: 1;
  1118. &:first-child {
  1119. border-right: 1px solid #d9d9d9;
  1120. padding-right: 15px;
  1121. margin-right: 15px;
  1122. }
  1123. .aNumTopTitle {
  1124. font-size: 14px;
  1125. font-weight: 400;
  1126. color: #666666;
  1127. display: flex;
  1128. align-items: center;
  1129. margin-bottom: 16px;
  1130. img {
  1131. width: 20px;
  1132. height: 19px;
  1133. margin-right: 8px;
  1134. }
  1135. }
  1136. .aNumbox {
  1137. display: flex;
  1138. align-items: center;
  1139. justify-content: space-between;
  1140. .span1 {
  1141. font-size: 14px;
  1142. font-weight: 400;
  1143. color: #666666;
  1144. }
  1145. .span2 {
  1146. font-size: 24px;
  1147. font-weight: 400;
  1148. text-decoration: underline;
  1149. color: #0c5dfb;
  1150. }
  1151. .span3 {
  1152. font-size: 24px;
  1153. font-weight: 400;
  1154. color: #13c2c2;
  1155. }
  1156. }
  1157. }
  1158. }
  1159. & > .foot_box {
  1160. display: flex;
  1161. align-items: center;
  1162. .foot_box_list {
  1163. flex: 1;
  1164. height: 120px;
  1165. background-color: #f5f5f5;
  1166. border-radius: 8px;
  1167. padding: 8px;
  1168. .top_label {
  1169. font-size: 14px;
  1170. font-weight: 400;
  1171. color: #666666;
  1172. }
  1173. .nums {
  1174. margin-top: 33px;
  1175. font-size: 40px;
  1176. font-weight: bold;
  1177. color: #333333;
  1178. text-align: center;
  1179. }
  1180. .nums_mini {
  1181. margin-top: 6px;
  1182. font-size: 24px;
  1183. font-weight: 400;
  1184. color: #333333;
  1185. text-align: center;
  1186. }
  1187. }
  1188. }
  1189. }
  1190. .flex2 {
  1191. padding: 16px;
  1192. display: flex;
  1193. flex-direction: column;
  1194. & > .flex2_top_box {
  1195. flex: 1;
  1196. margin-bottom: 16px;
  1197. .flex2_label {
  1198. width: 160px;
  1199. height: 64px;
  1200. background: #f5f5f5;
  1201. border-radius: 8px;
  1202. margin-right: 16px;
  1203. display: inline-block;
  1204. padding: 7px;
  1205. .top {
  1206. font-size: 14px;
  1207. font-weight: 400;
  1208. color: #666666;
  1209. }
  1210. .nums {
  1211. font-size: 24px;
  1212. font-weight: 400;
  1213. color: #333333;
  1214. text-align: center;
  1215. }
  1216. }
  1217. }
  1218. & > .flex2_footer {
  1219. max-height: 106px;
  1220. overflow: auto;
  1221. background: #f5f5f5;
  1222. border-radius: 8px;
  1223. margin: 0px;
  1224. padding: 16px 16px 0px 16px;
  1225. }
  1226. }
  1227. .flex3 {
  1228. padding: 16px;
  1229. .flex3_1 {
  1230. margin-bottom: 16px;
  1231. display: flex;
  1232. align-items: center;
  1233. justify-content: space-between;
  1234. }
  1235. .flex3_2 {
  1236. display: flex;
  1237. align-items: center;
  1238. justify-content: space-between;
  1239. }
  1240. .flex3_children {
  1241. height: 104px;
  1242. flex: 1;
  1243. background: #f5f5f5;
  1244. border-radius: 8px;
  1245. padding: 8px;
  1246. .top_label {
  1247. font-size: 14px;
  1248. font-weight: 400;
  1249. color: #666666;
  1250. }
  1251. .nums {
  1252. margin-top: 15px;
  1253. text-align: center;
  1254. font-size: 40px;
  1255. font-weight: bold;
  1256. color: #333333;
  1257. }
  1258. }
  1259. }
  1260. .changeTABLE {
  1261. box-shadow: none !important;
  1262. .el-table {
  1263. border-radius: 8px;
  1264. box-shadow: 0px 0px 8px 0px rgba(217, 217, 217, 0.8);
  1265. margin-left: 0.5%;
  1266. }
  1267. }
  1268. /deep/ .el-table .success-row {
  1269. background: rgb(246, 255, 254);
  1270. }
  1271. </style>