index.blade.php 22 KB

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