health.blade.php 16 KB

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