index.blade.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. <!--数量统计-->
  2. <meta name="csrf-token" content="{{ csrf_token() }}">
  3. <div class="row">
  4. <div class="col-lg-3 col-sm-6 col-xs-12">
  5. <div class="white-box shadow">
  6. <p class="box-title com-icon">企业会员</p>
  7. <p class="text-center lg-text"><a href="{{admin_base_path('/firm/company')}}"><span class="font-orange">{{ $company->getCompanyCount or 0 }}</span></a></p>
  8. <ul class="list-inline two-part">
  9. <li class="sm-text">上月增加:<span class="font-orange">{{ $company->getLastCompanyCount or 0 }}</span></li>
  10. <li class="sm-text">本月增加:<span class="font-orange">{{ $company->getNextCompanyCount or 0 }}</span></li>
  11. </ul>
  12. </div>
  13. </div>
  14. <div class="col-lg-3 col-sm-6 col-xs-12">
  15. <div class="white-box shadow">
  16. <p class="box-title per-icon">个人会员</p>
  17. <p class="text-center lg-text"><a href="{{admin_base_path('/personal/members')}}"><span class="font-red">{{ $person->getPersonCount or 0 }}</span></a></p>
  18. <ul class="list-inline two-part">
  19. <li class="sm-text">上月增加:<span class="font-red">{{ $person->getLastPersonCount or 0 }}</span></li>
  20. <li class="sm-text">本月增加:<span class="font-red">{{ $person->getNextPersonCount or 0 }}</span></li>
  21. </ul>
  22. </div>
  23. </div>
  24. <div class="col-lg-3 col-sm-6 col-xs-12">
  25. <div class="white-box shadow">
  26. <p class="box-title job-icon">招聘岗位数</p>
  27. <p class="text-center lg-text"><a href="{{admin_base_path('/firm/jobs')}}"><span class="font-green">{{ $jobs->getJobCount or 0 }}</span></a></p>
  28. <ul class="list-inline two-part">
  29. <li class="sm-text">上月增加:<span class="font-green">{{ $jobs->getLastJobsCount or 0 }}</span></li>
  30. <li class="sm-text">本月增加:<span class="font-green">{{ $jobs->getNextJobsCount or 0 }}</span></li>
  31. </ul>
  32. </div>
  33. </div>
  34. <div class="col-lg-3 col-sm-6 col-xs-12">
  35. <div class="white-box shadow">
  36. <p class="box-title resume-icon">求职简历数</p>
  37. <p class="text-center lg-text"><a href="{{admin_base_path('/personal/resume')}}n class="font-blue">{{ $resume->getResumesCount or 0 }}</span></a></p>
  38. <ul class="list-inline two-part">
  39. <li class="sm-text">上月增加:<span class="font-blue">{{ $resume->getLastResumeCount or 0 }}</span></li>
  40. <li class="sm-text">本月增加:<span class="font-blue">{{ $resume->getNextResumeCount or 0 }}</span></li>
  41. </ul>
  42. </div>
  43. </div>
  44. </div>
  45. <!--待办事项-->
  46. <div class="shadow white-box">
  47. <div class="row ">
  48. <div class="col-lg-12 col-md-12 col-xs-12" style="margin-bottom: 10px;">
  49. <p class="blue-title">待办事项</p>
  50. </div>
  51. <div class="col-lg-2 col-md-4 col-sm-6 col-xs-12">
  52. <div class="gray-box clearfix">
  53. <div class="pull-left">
  54. <p class="font-16 text-center">待认证企业</p>
  55. <a href="{{admin_base_path('/firm/company')}}?audit=2"><p class="font-26-blue text-center">{{ $needAuthCompany->getAuditCount or 0 }}</p></a>
  56. </div>
  57. <div class="pull-right">
  58. <a href="{{admin_base_path('/firm/company')}}?audit=2"> <img src="/vendor/laravel-admin/AdminLTE/dist/img/index-todo-icon1.png"/></a>
  59. </div>
  60. </div>
  61. </div>
  62. <div class="col-lg-2 col-md-4 col-sm-6 col-xs-12">
  63. <div class="gray-box clearfix">
  64. <div class="pull-left">
  65. <p class="font-16 text-center">待审核职位</p>
  66. <a href="{{admin_base_path('/firm/jobs')}}?audit=2"><p class="font-26-999 text-center">{{ $needAuditJobs->getJobsCount or 0 }}</p></a>
  67. </div>
  68. <div class="pull-right">
  69. <a href="{{admin_base_path('/firm/jobs')}}?audit=2"><img src="/vendor/laravel-admin/AdminLTE/dist/img//index-todo-icon2.png"/></a>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="col-lg-2 col-md-4 col-sm-6 col-xs-12">
  74. <div class="gray-box clearfix">
  75. <div class="pull-left">
  76. <p class="font-16 text-center">待审核简历</p>
  77. <a href="{{admin_base_path()}}/personal/resume?audit=1"><p class="font-26-999 text-center">{{ $needAuditResume->getAuditCount or 0 }}</p></a>
  78. </div>
  79. <div class="pull-right">
  80. <a href="{{admin_base_path()}}/personal/resume?audit=1"><img src="/vendor/laravel-admin/AdminLTE/dist/img/index-todo-icon3.png"/></a>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="col-lg-2 col-md-4 col-sm-6 col-xs-12">
  85. <div class="gray-box clearfix">
  86. <div class="pull-left">
  87. <p class="font-16 text-center">待审核简历</p>
  88. <p class="font-16 text-center">照片/作品</p>
  89. <a href="{{admin_base_path()}}/personal/resumeImg?audit=1"><p class="font-26-999 text-center">{{ $needAuditResumeImg->getAuditCount or 0 }}</p></a>
  90. </div>
  91. <div class="pull-right">
  92. <a href="{{admin_base_path()}}/personal/resumeImg?audit=1"><img src="/vendor/laravel-admin/AdminLTE/dist/img/index-todo-icon4.png"/></a>
  93. </div>
  94. </div>
  95. </div>
  96. <div class="col-lg-2 col-md-4 col-sm-6 col-xs-12">
  97. <div class="gray-box clearfix">
  98. <div class="pull-left">
  99. <p class="font-16 text-center">意见/建议</p>
  100. <a href="{{admin_base_path()}}/content/feedback?audit=0"><p class="font-26-999 text-center">{{ $suggestion->getCount or 0 }}</p></a>
  101. </div>
  102. <div class="pull-right">
  103. <a href="{{admin_base_path()}}/content/feedback?audit=0"><img src="/vendor/laravel-admin/AdminLTE/dist/img/index-todo-icon5.png"/></a>
  104. </div>
  105. </div>
  106. </div>
  107. <div class="col-lg-2 col-md-4 col-sm-6 col-xs-12">
  108. <div class="gray-box clearfix">
  109. <div class="pull-left">
  110. <p class="font-16 text-center">举报信息</p>
  111. <a href="{{admin_base_path()}}/content/report?audit=1"><p class="font-26-999 text-center">{{ $report->getCount or 0 }}</p></a>
  112. </div>
  113. <div class="pull-right">
  114. <a href="{{admin_base_path()}}/content/report?audit=1"> <img src="/vendor/laravel-admin/AdminLTE/dist/img/index-todo-icon6.png"/></a>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <!--快捷入口-->
  121. <div class="shadow white-box">
  122. <div class="row ">
  123. <div class="col-lg-12 col-md-12 col-xs-12" style="margin-bottom: 10px;">
  124. <p class="blue-title">快捷入口</p>
  125. </div>
  126. <div class="col-lg-2 col-md-4 col-sm-6 col-xs-12">
  127. <div class="gray-box clearfix">
  128. <div class="pull-left">
  129. <a href="/aggbi" target="_blank" class="font-16 text-center">聚合看板</a>
  130. </div>
  131. <div class="pull-right">
  132. <a href="/aggbi" target="_blank"> <img src="/vendor/laravel-admin/AdminLTE/dist/img/index-todo-icon7.png"/></a>
  133. </div>
  134. </div>
  135. </div>
  136. </div>
  137. </div>
  138. <!--近30天会员注册趋势-->
  139. <div class="shadow white-box">
  140. <div class="row">
  141. <div class="col-md-12 col-sm-12">
  142. <p class="blue-title">近30天会员注册趋势</p>
  143. </div>
  144. <div class="col-md-12 col-sm-12 chart">
  145. <div id="reg-trend" style="width: 100%;height: 260px;">
  146. </div >
  147. </div>
  148. </div>
  149. </div>
  150. <div class="row">
  151. <!--企业类型分布-->
  152. <div class="col-md-4 col-lg-4 col-sm-12 col-xs-12">
  153. <div class="white-box shadow">
  154. <p class="blue-title">企业类型分布</p>
  155. <div id="com-distribution" style="width: 100%;height: 310px;">
  156. </div>
  157. </div>
  158. </div>
  159. <!--用户行为分析-->
  160. <div class="col-md-8 col-lg-8 col-sm-12 col-xs-12">
  161. <div class="white-box shadow">
  162. <p class="blue-title">用户行为分析</p>
  163. <div id="beh-analysis" style="width: 100%;height: 310px;">
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. <style type="text/css">
  169. .content-wrapper{background: #fff;}
  170. .clearfix:after{display:block;clear:both;content:"";visibility:hidden;height:0;}
  171. .clearfix{zoom:1; /*为了兼容IE*/}
  172. .white-box{background: #fff;padding: 10px 20px;margin-bottom: 20px;}
  173. .white-box p,ul,li{margin: 0;padding: 0;}
  174. .gray-box{background: #f5f5f5;padding: 15px 25px;margin-bottom: 10px;height: 105px;overflow: hidden;}
  175. .shadow{box-shadow:0 0 15px rgba(0, 0, 0, .2);-webkit-box-shadow:0 0 15px rgba(0, 0, 0, .2);}
  176. .white-box .box-title{font-size: 20px;color: #4d4d4d;padding-left: 68px;height: 48px;line-height: 48px;}
  177. .blue-title{font-size: 18px;color: #3c8dbc;}
  178. .font-orange{color: #ed6407}
  179. .font-red{color: #fd4d51}
  180. .font-green{color: #12c36b;}
  181. .font-blue{color: #3e8ff6;}
  182. .font-16{color: #4d4d4d;font-size: 16px;}
  183. .font-26-blue{color: #3c8dbc;font-size: 26px;}
  184. .font-26-999{color: #999999;font-size: 26px;}
  185. .white-box .com-icon{background: url(/vendor/laravel-admin/AdminLTE/dist/img/index-com-icon.png)no-repeat;}
  186. .white-box .per-icon{background: url(/vendor/laravel-admin/AdminLTE/dist/img/index-per-icon.png)no-repeat;}
  187. .white-box .job-icon{background: url(/vendor/laravel-admin/AdminLTE/dist/img/index-job-icon.png)no-repeat;}
  188. .white-box .resume-icon{background: url(/vendor/laravel-admin/AdminLTE/dist/img/index-resume-icon.png)no-repeat;}
  189. .white-box .lg-text{font-size: 40px;color: #666666;}
  190. .white-box .sm-text{font-size: 16px;color: #666666;}
  191. .white-box .two-part{min-height: 44px;}
  192. .white-box .two-part li{width: 49%;vertical-align: top;}
  193. .white-box .rgt-bor{border-right:2px solid #ededed}
  194. @media screen and (min-width:1200px) and (max-width:1400px){.white-box .gray-box .pull-right{display: none;}}
  195. @media screen and (min-width:1400px) and (max-width:1670px){.white-box .gray-box {padding: 15px 8px;}.white-box .gray-box img{width: 55px;}}
  196. </style>
  197. <script type="text/javascript" src="{{ theme_asset('app/js/jquery.ba-resize.min.js') }}"></script>
  198. <script>
  199. // 会员注册趋势折线
  200. var myChart = echarts.init(document.getElementById("reg-trend"));
  201. // 企业类型分布饼图
  202. var myChart1 = echarts.init(document.getElementById('com-distribution'));
  203. var colorList =["#ec948a","#eab374","#54b7ea","#61c5d0","#a9e0d4","#bddb89","#44d4b0","#99b5ff","#797bac","#8bc0df","#FF9966","#996600","#999966","#669933","#FF9999","#996699","#9999CC","#663366","#CC3399"];
  204. // 用户行为分析图
  205. var myChart2 = echarts.init(document.getElementById('beh-analysis'));
  206. myChart.showLoading();
  207. myChart1.showLoading();
  208. myChart2.showLoading();
  209. $.ajax({
  210. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  211. url:"{{admin_base_path()}}/home/ajax",
  212. type:'post',
  213. dataType: 'json',
  214. success:function(data){
  215. myChart.hideLoading();
  216. myChart1.hideLoading();
  217. myChart2.hideLoading();
  218. myChart.setOption({
  219. tooltip: {
  220. trigger: 'axis'
  221. },
  222. legend: { //图例组件
  223. right:'10%',
  224. data: ["企业会员", "个人会员"],
  225. textStyle:{
  226. color:"#4d4d4d",
  227. fontSize:14
  228. }
  229. },
  230. grid: {
  231. left: '10',//grid 组件离容器左侧的距离
  232. right: '10',
  233. bottom: '10',
  234. containLabel: true //grid 区域是否包含坐标轴的刻度标签。
  235. },
  236. //x轴信息样式
  237. xAxis: {
  238. boundaryGap:true,
  239. axisTick:{
  240. alignWithLabel:true
  241. },
  242. splitLine: { //grid 区域中的分隔线。
  243. show: true,
  244. interval: 0,//坐标轴分隔线的显示间隔 , 0 强制显示所有标签
  245. lineStyle: {
  246. color: ['#ebebeb']
  247. }
  248. },
  249. axisLabel:{
  250. interval: 0 //坐标轴刻度标签的显示间隔 , 0 强制显示所有标签。
  251. //rotate:30 //刻度标签旋转的角度
  252. },
  253. data:(function(){
  254. var res = [];
  255. for(var i = 0;i<data.company.length;i++){
  256. res.push(data.company[i][0].substr(5))
  257. }
  258. return res
  259. })()
  260. },
  261. yAxis: {
  262. type: 'value',
  263. splitLine: {
  264. show: true,
  265. interval: 'auto',
  266. lineStyle: {
  267. color: ['#ebebeb']
  268. }
  269. }
  270. },
  271. series: [
  272. {
  273. name:'企业会员',
  274. type:'line',
  275. symbol:'circle',
  276. symbolSize:6,
  277. smooth:true,
  278. itemStyle:{
  279. normal:{
  280. color:'#0fa9f1',
  281. }
  282. },
  283. markPoint:{ //图表标注
  284. //symbol:'roundRect',//标记的图形
  285. //symbolOffset:[15,-10],//标记相对于原本位置的偏移
  286. symbolSize:35,//标记的大小
  287. data: [
  288. {type: 'max', name: '最大值'},
  289. ]
  290. },
  291. data:(function(){
  292. var com_res = [];
  293. for(var i = 0;i<data.company.length;i++){
  294. com_res.push(data.company[i][1])
  295. }
  296. return com_res
  297. })()
  298. },
  299. {
  300. name:'个人会员',
  301. type:'line',
  302. symbol:'circle',
  303. symbolSize:6,
  304. smooth:true,
  305. itemStyle:{
  306. normal:{
  307. color:'#f95592',
  308. }
  309. },
  310. markPoint:{ //图表标注
  311. //symbol:'roundRect',//标记的图形
  312. //symbolOffset:[15,-10],//标记相对于原本位置的偏移
  313. symbolSize:35,//标记的大小
  314. data: [
  315. {type: 'max', name: '最大值'},
  316. ]
  317. },
  318. data:(function(){
  319. var mem_res = [];
  320. for(var i = 0;i<data.member.length;i++){
  321. mem_res.push(data.member[i][1])
  322. }
  323. return mem_res
  324. })()
  325. },
  326. ]
  327. });
  328. myChart1.setOption({
  329. tooltip: {
  330. trigger: 'item',
  331. formatter: "{b}: {c} ({d}%)"
  332. },
  333. /*legend: {
  334. //orient: 'vertical',
  335. textStyle:{
  336. color:'#4d4d4d',
  337. fontSize: 14,
  338. },
  339. right:10,
  340. bottom:0,
  341. itemWidth:15,
  342. itemHeight:8,
  343. data:data.companyType.category_name
  344. },*/
  345. series: [
  346. {
  347. type:'pie',
  348. radius: ['35%', '55%'],
  349. center: ['50%', '52%'],
  350. // roseType: 'radius',
  351. clockwise :true,
  352. z:10,
  353. itemStyle: {
  354. normal: {
  355. color: function(params) {
  356. // build a color map as your need.
  357. return colorList[params.dataIndex]
  358. },
  359. }
  360. },
  361. label: {
  362. normal: {
  363. formatter:'{b}: {d}%'
  364. }
  365. },
  366. labelLine: {
  367. normal: {
  368. length: 20,
  369. length2: 0,
  370. lineStyle:{
  371. width:2
  372. }
  373. }
  374. },
  375. data:data.companyType.result
  376. },
  377. {
  378. type:'pie',
  379. radius: ['15%', '20%'],
  380. center: ['50%', '52%'],
  381. z:10,
  382. itemStyle: {
  383. normal: {
  384. color: function(params) {
  385. return colorList[params.dataIndex]
  386. },
  387. }
  388. },
  389. label:{
  390. show:false
  391. },
  392. data:data.companyType.result
  393. }
  394. ]
  395. });
  396. myChart2.setOption({
  397. tooltip: {
  398. trigger: 'axis',
  399. axisPointer: { // 坐标轴指示器,坐标轴触发有效
  400. type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  401. }
  402. },
  403. grid: {
  404. left: '10',
  405. right: '10',
  406. bottom: '10',
  407. containLabel: true
  408. },
  409. legend: {
  410. right:'10%',
  411. textStyle:{
  412. color:"#4d4d4d",
  413. fontSize:14
  414. },
  415. data: ['职位刷新数量', '简历投递数量']
  416. },
  417. xAxis: [
  418. {
  419. type: 'category',
  420. axisTick: {
  421. alignWithLabel: true,
  422. },
  423. axisLabel:{
  424. interval: 0
  425. //rotate:30
  426. },
  427. data:(function(){
  428. var xres = [];
  429. for(var i = 0;i<data.userAction.day.length;i++){
  430. xres.push(data.userAction.day[i].substr(5))
  431. }
  432. return xres
  433. })()
  434. }
  435. ],
  436. yAxis: [{
  437. type: 'value',
  438. min: 0,
  439. splitLine: {
  440. show: true,
  441. interval: 'auto',
  442. lineStyle: {
  443. color: ['#ebebeb']
  444. }
  445. }
  446. }],
  447. series: [{
  448. name: '职位刷新数量',
  449. type: 'bar',
  450. itemStyle: {
  451. normal: {color: '#8bc0df'}
  452. },
  453. label: {
  454. normal: {
  455. show: false,
  456. position: 'top'
  457. }
  458. },
  459. markPoint:{ //图表标注
  460. symbolSize:35,
  461. data: [
  462. {type: 'max', name: '最大值'},
  463. ]
  464. },
  465. data: data.userAction.userAction.jobsRefresh
  466. }, {
  467. name: '简历投递数量',
  468. type: 'bar',
  469. itemStyle: {
  470. normal: {color: '#797bac'}
  471. },
  472. label: {
  473. normal: {
  474. show: false,
  475. position: 'top'
  476. }
  477. },
  478. markPoint:{ //图表标注
  479. symbolSize:35,
  480. data: [
  481. {type: 'max', name: '最大值'},
  482. ]
  483. },
  484. data: data.userAction.userAction.jobsApply
  485. }]
  486. });
  487. }
  488. });
  489. $(".chart").resize(function(){
  490. myChart.resize();
  491. myChart1.resize();
  492. myChart2.resize();
  493. })
  494. </script>