index.blade.php 21 KB

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