Browse Source

Merge branch 'master' of http://47.118.43.255:3000/jjhc/jucai

linwu 3 năm trước cách đây
mục cha
commit
643daa56bd
97 tập tin đã thay đổi với 977 bổ sung62 xóa
  1. 26 2
      app/Http/Controllers/Mobile/Talent/TalentController.php
  2. 3 0
      app/Http/Controllers/Web/Recruit/IndexController.php
  3. 1 0
      public/.user.ini
  4. BIN
      public/rencaigang/layui/images/ajbz1.png
  5. BIN
      public/rencaigang/layui/images/ajbz2.png
  6. BIN
      public/rencaigang/layui/images/ajbz3.png
  7. BIN
      public/rencaigang/layui/images/ajbz4.png
  8. BIN
      public/rencaigang/layui/images/face/0.gif
  9. BIN
      public/rencaigang/layui/images/face/1.gif
  10. BIN
      public/rencaigang/layui/images/face/10.gif
  11. BIN
      public/rencaigang/layui/images/face/11.gif
  12. BIN
      public/rencaigang/layui/images/face/12.gif
  13. BIN
      public/rencaigang/layui/images/face/13.gif
  14. BIN
      public/rencaigang/layui/images/face/14.gif
  15. BIN
      public/rencaigang/layui/images/face/15.gif
  16. BIN
      public/rencaigang/layui/images/face/16.gif
  17. BIN
      public/rencaigang/layui/images/face/17.gif
  18. BIN
      public/rencaigang/layui/images/face/18.gif
  19. BIN
      public/rencaigang/layui/images/face/19.gif
  20. BIN
      public/rencaigang/layui/images/face/2.gif
  21. BIN
      public/rencaigang/layui/images/face/20.gif
  22. BIN
      public/rencaigang/layui/images/face/21.gif
  23. BIN
      public/rencaigang/layui/images/face/22.gif
  24. BIN
      public/rencaigang/layui/images/face/23.gif
  25. BIN
      public/rencaigang/layui/images/face/24.gif
  26. BIN
      public/rencaigang/layui/images/face/25.gif
  27. BIN
      public/rencaigang/layui/images/face/26.gif
  28. BIN
      public/rencaigang/layui/images/face/27.gif
  29. BIN
      public/rencaigang/layui/images/face/28.gif
  30. BIN
      public/rencaigang/layui/images/face/29.gif
  31. BIN
      public/rencaigang/layui/images/face/3.gif
  32. BIN
      public/rencaigang/layui/images/face/30.gif
  33. BIN
      public/rencaigang/layui/images/face/31.gif
  34. BIN
      public/rencaigang/layui/images/face/32.gif
  35. BIN
      public/rencaigang/layui/images/face/33.gif
  36. BIN
      public/rencaigang/layui/images/face/34.gif
  37. BIN
      public/rencaigang/layui/images/face/35.gif
  38. BIN
      public/rencaigang/layui/images/face/36.gif
  39. BIN
      public/rencaigang/layui/images/face/37.gif
  40. BIN
      public/rencaigang/layui/images/face/38.gif
  41. BIN
      public/rencaigang/layui/images/face/39.gif
  42. BIN
      public/rencaigang/layui/images/face/4.gif
  43. BIN
      public/rencaigang/layui/images/face/40.gif
  44. BIN
      public/rencaigang/layui/images/face/41.gif
  45. BIN
      public/rencaigang/layui/images/face/42.gif
  46. BIN
      public/rencaigang/layui/images/face/43.gif
  47. BIN
      public/rencaigang/layui/images/face/44.gif
  48. BIN
      public/rencaigang/layui/images/face/45.gif
  49. BIN
      public/rencaigang/layui/images/face/46.gif
  50. BIN
      public/rencaigang/layui/images/face/47.gif
  51. BIN
      public/rencaigang/layui/images/face/48.gif
  52. BIN
      public/rencaigang/layui/images/face/49.gif
  53. BIN
      public/rencaigang/layui/images/face/5.gif
  54. BIN
      public/rencaigang/layui/images/face/50.gif
  55. BIN
      public/rencaigang/layui/images/face/51.gif
  56. BIN
      public/rencaigang/layui/images/face/52.gif
  57. BIN
      public/rencaigang/layui/images/face/53.gif
  58. BIN
      public/rencaigang/layui/images/face/54.gif
  59. BIN
      public/rencaigang/layui/images/face/55.gif
  60. BIN
      public/rencaigang/layui/images/face/56.gif
  61. BIN
      public/rencaigang/layui/images/face/57.gif
  62. BIN
      public/rencaigang/layui/images/face/58.gif
  63. BIN
      public/rencaigang/layui/images/face/59.gif
  64. BIN
      public/rencaigang/layui/images/face/6.gif
  65. BIN
      public/rencaigang/layui/images/face/60.gif
  66. BIN
      public/rencaigang/layui/images/face/61.gif
  67. BIN
      public/rencaigang/layui/images/face/62.gif
  68. BIN
      public/rencaigang/layui/images/face/63.gif
  69. BIN
      public/rencaigang/layui/images/face/64.gif
  70. BIN
      public/rencaigang/layui/images/face/65.gif
  71. BIN
      public/rencaigang/layui/images/face/66.gif
  72. BIN
      public/rencaigang/layui/images/face/67.gif
  73. BIN
      public/rencaigang/layui/images/face/68.gif
  74. BIN
      public/rencaigang/layui/images/face/69.gif
  75. BIN
      public/rencaigang/layui/images/face/7.gif
  76. BIN
      public/rencaigang/layui/images/face/70.gif
  77. BIN
      public/rencaigang/layui/images/face/71.gif
  78. BIN
      public/rencaigang/layui/images/face/8.gif
  79. BIN
      public/rencaigang/layui/images/face/9.gif
  80. BIN
      public/rencaigang/layui/images/zcjd001-1.png
  81. 24 0
      public/scrm
  82. 2 0
      public/test.php
  83. 0 0
      public/themes/default/assets/mobile/css/h5page.css
  84. BIN
      public/themes/default/assets/mobile/images/nqetx-gs9p1.jpg
  85. BIN
      public/themes/default/assets/mobile/images/shuobo/banner01.jpg
  86. BIN
      public/themes/default/assets/mobile/images/shuobo/button_bg.png
  87. BIN
      public/themes/default/assets/mobile/images/shuobo/header.jpg
  88. BIN
      public/themes/default/assets/mobile/images/shuobo/process.jpg
  89. BIN
      public/themes/default/assets/mobile/images/success_qrcode.png
  90. 23 0
      public/themes/default/assets/mobile/vue/base/star.vue
  91. 192 0
      public/themes/default/assets/mobile/vue/core/Timeline.vue
  92. 11 0
      public/themes/default/assets/mobile/vue/index.js
  93. 2 0
      public/themes/default/assets/mobile/vue/utils/index.js
  94. 77 47
      public/themes/default/views/mobile/app/talent/lvcheng.blade.php
  95. 31 13
      public/themes/default/views/mobile/app/talent/shuobo.blade.php
  96. 584 0
      public/themes/default/views/mobile/app/talent/success.blade.php
  97. 1 0
      routes/mobile.php

+ 26 - 2
app/Http/Controllers/Mobile/Talent/TalentController.php

@@ -23,13 +23,32 @@ class TalentController extends MobileBaseController
         return view('mobile.app.talent.shuobo');
     }
 
+    public function success()
+    {
+        return view('mobile.app.talent.success');
+    }
+
     public function lvcheng(Request $request){
         $user = $this->getLoginUser();
         if($request->isMethod('post')){
+            $startTime = $request->post('startTime');
+            $endTime = $request->post('endTime');
+            $page = $request->post('page');
+            $next_page = $request->post('next_page');
+            $params = [
+                'cid' => $user->scrm_id,
+                'startTime' => $startTime,
+                'endTime' => $endTime,
+                'page'=>$next_page ? $page + 1 : $page ,
+                'pageSize'=>50
+            ];
+            $scrm = APP::make(\App\Http\Controllers\Api\Third\ScrmController::class);
+            $res = App::call([$scrm, 'get_customer_events'],$params);
 
+            return response()->json(['data' => $res['data'],'params' => $params, 'next_page' => count($res['data']) >= 50 ? 1 : 0]);
         }else{
             $params = [
-                'cid' => 108371488,
+                'cid' => $user->scrm_id,
                 'startTime' => str_pad(strtotime('-29 days'),13,'0',STR_PAD_RIGHT),
                 'endTime' => str_pad(strtotime('+1 day'),13,'0',STR_PAD_RIGHT),
                 'page'=>1,
@@ -39,8 +58,13 @@ class TalentController extends MobileBaseController
             $scrm = APP::make(\App\Http\Controllers\Api\Third\ScrmController::class);
             $res = App::call([$scrm, 'get_customer_events'],$params);
             $view_data = [
-                'data' => json_encode($res['data'])
+                'data' => json_encode($res['data']),
+                'params' => $params,
+                'next_page' => count($res['data']) >= 50 ? 1 : 0,
+                'startTime' => count($res['data']) >= 50 ? str_pad(strtotime('-29 days'),13,'0',STR_PAD_RIGHT) : str_pad(strtotime('-59 days'),13,'0',STR_PAD_RIGHT),
+                'endTime' => count($res['data']) >= 50 ? str_pad(strtotime('+1 day'),13,'0',STR_PAD_RIGHT) : str_pad(strtotime('-29 days'),13,'0',STR_PAD_RIGHT)
             ];
+
             return view('mobile.app.talent.lvcheng',$view_data);
         }
 

+ 3 - 0
app/Http/Controllers/Web/Recruit/IndexController.php

@@ -575,6 +575,7 @@ class IndexController extends WebBaseController
 
         //招考岗位
         $where_post[] = ['recruit_id', '=', $id];
+        $where_post[] = ['status', '=', 1];
         $recruit_post = RecruitPost::where($where_post)->get();
         $post = [];
         $post_limit = [];
@@ -638,6 +639,8 @@ class IndexController extends WebBaseController
             }
         }
 
+
+
         //基础信息的检查
         $rules = [
             'realname' => 'required',

+ 1 - 0
public/.user.ini

@@ -0,0 +1 @@
+open_basedir=/home/wwwroot/jucai/public:/tmp/:/proc/

BIN
public/rencaigang/layui/images/ajbz1.png


BIN
public/rencaigang/layui/images/ajbz2.png


BIN
public/rencaigang/layui/images/ajbz3.png


BIN
public/rencaigang/layui/images/ajbz4.png


BIN
public/rencaigang/layui/images/face/0.gif


BIN
public/rencaigang/layui/images/face/1.gif


BIN
public/rencaigang/layui/images/face/10.gif


BIN
public/rencaigang/layui/images/face/11.gif


BIN
public/rencaigang/layui/images/face/12.gif


BIN
public/rencaigang/layui/images/face/13.gif


BIN
public/rencaigang/layui/images/face/14.gif


BIN
public/rencaigang/layui/images/face/15.gif


BIN
public/rencaigang/layui/images/face/16.gif


BIN
public/rencaigang/layui/images/face/17.gif


BIN
public/rencaigang/layui/images/face/18.gif


BIN
public/rencaigang/layui/images/face/19.gif


BIN
public/rencaigang/layui/images/face/2.gif


BIN
public/rencaigang/layui/images/face/20.gif


BIN
public/rencaigang/layui/images/face/21.gif


BIN
public/rencaigang/layui/images/face/22.gif


BIN
public/rencaigang/layui/images/face/23.gif


BIN
public/rencaigang/layui/images/face/24.gif


BIN
public/rencaigang/layui/images/face/25.gif


BIN
public/rencaigang/layui/images/face/26.gif


BIN
public/rencaigang/layui/images/face/27.gif


BIN
public/rencaigang/layui/images/face/28.gif


BIN
public/rencaigang/layui/images/face/29.gif


BIN
public/rencaigang/layui/images/face/3.gif


BIN
public/rencaigang/layui/images/face/30.gif


BIN
public/rencaigang/layui/images/face/31.gif


BIN
public/rencaigang/layui/images/face/32.gif


BIN
public/rencaigang/layui/images/face/33.gif


BIN
public/rencaigang/layui/images/face/34.gif


BIN
public/rencaigang/layui/images/face/35.gif


BIN
public/rencaigang/layui/images/face/36.gif


BIN
public/rencaigang/layui/images/face/37.gif


BIN
public/rencaigang/layui/images/face/38.gif


BIN
public/rencaigang/layui/images/face/39.gif


BIN
public/rencaigang/layui/images/face/4.gif


BIN
public/rencaigang/layui/images/face/40.gif


BIN
public/rencaigang/layui/images/face/41.gif


BIN
public/rencaigang/layui/images/face/42.gif


BIN
public/rencaigang/layui/images/face/43.gif


BIN
public/rencaigang/layui/images/face/44.gif


BIN
public/rencaigang/layui/images/face/45.gif


BIN
public/rencaigang/layui/images/face/46.gif


BIN
public/rencaigang/layui/images/face/47.gif


BIN
public/rencaigang/layui/images/face/48.gif


BIN
public/rencaigang/layui/images/face/49.gif


BIN
public/rencaigang/layui/images/face/5.gif


BIN
public/rencaigang/layui/images/face/50.gif


BIN
public/rencaigang/layui/images/face/51.gif


BIN
public/rencaigang/layui/images/face/52.gif


BIN
public/rencaigang/layui/images/face/53.gif


BIN
public/rencaigang/layui/images/face/54.gif


BIN
public/rencaigang/layui/images/face/55.gif


BIN
public/rencaigang/layui/images/face/56.gif


BIN
public/rencaigang/layui/images/face/57.gif


BIN
public/rencaigang/layui/images/face/58.gif


BIN
public/rencaigang/layui/images/face/59.gif


BIN
public/rencaigang/layui/images/face/6.gif


BIN
public/rencaigang/layui/images/face/60.gif


BIN
public/rencaigang/layui/images/face/61.gif


BIN
public/rencaigang/layui/images/face/62.gif


BIN
public/rencaigang/layui/images/face/63.gif


BIN
public/rencaigang/layui/images/face/64.gif


BIN
public/rencaigang/layui/images/face/65.gif


BIN
public/rencaigang/layui/images/face/66.gif


BIN
public/rencaigang/layui/images/face/67.gif


BIN
public/rencaigang/layui/images/face/68.gif


BIN
public/rencaigang/layui/images/face/69.gif


BIN
public/rencaigang/layui/images/face/7.gif


BIN
public/rencaigang/layui/images/face/70.gif


BIN
public/rencaigang/layui/images/face/71.gif


BIN
public/rencaigang/layui/images/face/8.gif


BIN
public/rencaigang/layui/images/face/9.gif


BIN
public/rencaigang/layui/images/zcjd001-1.png


+ 24 - 0
public/scrm

@@ -0,0 +1,24 @@
+{"eid":1000459,"type":1002,"cid":45158558}
+{"eid":1000459,"type":1011,"cid":45158558,"params":{"customerEvent":"{\"id\":1660015272,\"eid\":1000459,\"cid\":45158558,\"createTime\":1636512739317,\"eventCode\":309,\"eventName\":\"\u66f4\u65b0\u5ba2\u6237\u8d44\u6599\",\"fieldList\":[{\"value\":\"111111111111\",\"name\":\"-5\"},{\"value\":\"6666666666666\",\"name\":\"-6\"}]}"}}
+{
+	"eid": 1000459,
+	"type": 1011,
+	"cid": 45158558,
+	"params": {
+		"customerEvent": {
+			"id ": 1660015272,
+			"eid ": 1000459,
+			"cid ": 45158558,
+			"createTime ": 1636512739317,
+			"eventCode ": 309,
+			"eventName ": "更新客户资料 ",
+			"fieldList ": [{
+				"value ": "111111111111 ",
+				"name ": " - 5 "
+			}, {
+				"value ": "6666666666666 ",
+				"name ": " - 6 "
+			}]
+		}
+	}
+}

+ 2 - 0
public/test.php

@@ -0,0 +1,2 @@
+<?php
+$ret = error_log(json_encode($_POST),3,'/data/wwwroot/jucai/public/scrm');

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
public/themes/default/assets/mobile/css/h5page.css


BIN
public/themes/default/assets/mobile/images/nqetx-gs9p1.jpg


BIN
public/themes/default/assets/mobile/images/shuobo/banner01.jpg


BIN
public/themes/default/assets/mobile/images/shuobo/button_bg.png


BIN
public/themes/default/assets/mobile/images/shuobo/header.jpg


BIN
public/themes/default/assets/mobile/images/shuobo/process.jpg


BIN
public/themes/default/assets/mobile/images/success_qrcode.png


+ 23 - 0
public/themes/default/assets/mobile/vue/base/star.vue

@@ -0,0 +1,23 @@
+<template>
+<svg id="star" viewBox="0 0 50 50">
+    <path :style='pathStyle' d="M37.727,33.037l2.067,12.057
+c0.104,0.607-0.132,1.188-0.63,1.549c-0.5,0.361-1.121,0.406-1.667,0.121L26.669,41.07c-0.521-0.273-1.097-0.412-1.669-0.412
+c-0.573,0-1.146,0.139-1.669,0.413l-10.826,5.692c-0.547,0.285-1.169,0.24-1.668-0.121s-0.733-0.941-0.63-1.549l2.068-12.057
+c0.199-1.163-0.187-2.35-1.031-3.174l-8.761-8.539c-0.441-0.431-0.592-1.038-0.4-1.623c0.19-0.587,0.668-0.989,1.277-1.078
+l12.105-1.759c1.168-0.169,2.179-0.902,2.701-1.961l5.413-10.97c0.272-0.553,0.804-0.882,1.42-0.882
+c0.616,0,1.147,0.329,1.421,0.882l5.413,10.97c0.522,1.059,1.531,1.792,2.699,1.961l12.106,1.759
+c0.609,0.089,1.088,0.491,1.277,1.078c0.191,0.585,0.041,1.192-0.4,1.623l-8.76,8.539C37.912,30.688,37.525,31.873,37.727,33.037z" />
+</svg>
+</template>
+
+<script>
+export default {
+  name: 'svgStar',
+  props: {
+    pathStyle: {
+      type: Object,
+      default: () => ({})
+    }
+  }
+}
+</script>

+ 192 - 0
public/themes/default/assets/mobile/vue/core/Timeline.vue

@@ -0,0 +1,192 @@
+<template lang="pug">
+
+ul.line-container
+  li.line-item(v-for='item in items')
+    .item-tag
+      slot(name='tag' :item='item')
+        | {{item.tag}}
+    .item-symbol
+      slot(name='symbol' :item='item')
+        .item-circle(
+          v-if='!item.type || item.type==="circle"'
+          :class='getColorClass(item.color)'
+          :style='getStyle(item)'
+        )
+        star.item-star(
+          v-if='item.type==="star"'
+          :class='getColorClass(item.color)'
+          :path-style='getStyle(item)'
+        )
+    slot(name='content' :item='item')
+      .item-content(v-if='!item.htmlMode' :class='item.type')
+        | {{item.content}}
+      .item-content.html-mode(v-else :class='item.type' v-html='item.content')
+</template>
+<script>
+import Star from '../base/star.vue'
+export default {
+  name: 'light-timeline',
+  components: { Star },
+  props: {
+    items: {
+      type: Array
+    }
+  },
+  data() {
+    return {
+      presetReg: /purple|orange|yellow/
+    }
+  },
+  methods: {
+    getColorClass(color) {
+      return this.presetReg.test(color) ? color : ''
+    },
+    getStyle(item) {
+      const color = item.color
+      if (!this.presetReg.test(color)) {
+        return item.type === 'star'
+          ? this.makeStarColor(color)
+          : this.makeCircleColor(color)
+      }
+      return {}
+    },
+    makeCircleColor(color) {
+      return { border: `2px solid ${color}` }
+    },
+    makeStarColor(color) {
+      return { stroke: color }
+    }
+  }
+}
+</script>
+<style lang="scss">
+$font-family-no-number: "Chinese Quote", -apple-system, BlinkMacSystemFont,
+  "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
+  "Helvetica Neue", Helvetica, Arial, sans-serif;
+$font-family: "Helvetica Neue For Number", $font-family-no-number;
+$tag-family: Consolas, Menlo, Courier, monospace;
+
+$purple: #8b80f9;
+$orange: #ed9153;
+$yellow: #fbd157;
+$font-color: #606c76;
+$font-size: 14px;
+$left-pad: 5rem;
+$item-pad: 1rem;
+$icon-size: 16px;
+$sm-icon-size: 10px;
+$lg-icon-size: 24px;
+
+$colors: (
+  purple: $purple,
+  orange: $orange,
+  yellow: $yellow
+);
+
+@mixin square($val) {
+  width: $val;
+  height: $val;
+}
+
+@mixin circle($diameter, $color) {
+  @include square($diameter);
+  border-radius: $diameter/2 + 2px;
+  background: white;
+  border: 2px solid $color;
+}
+
+@mixin line-point($val) {
+  box-sizing: border-box;
+  position: absolute;
+  margin-left: -($val/2) + 1px;
+}
+
+@mixin make-circle($diameter, $color) {
+  @include line-point($diameter);
+  @include circle($diameter, $color);
+}
+
+@mixin make-star($val, $color) {
+  @include line-point($val);
+  @include square($val);
+  margin-top: -($val/6);
+  path {
+    stroke: $color;
+    stroke-width: 4px;
+    fill: white;
+  }
+}
+
+:root {
+  --purple: $purple;
+  --orange: $orange;
+  --yellow: $yellow;
+}
+
+.line-container {
+  color: $font-color;
+  font-size: $font-size;
+  font-family: $font-family;
+  box-sizing: border-box;
+  position: relative;
+  list-style: none;
+  margin: 0.5rem;
+  padding-left: $left-pad + 1rem;
+  &::after {
+    position: absolute;
+    content: "";
+    left: $left-pad;
+    top: 0;
+    width: 1px;
+    height: 100%;
+    background-color: lighten($purple, 20%);
+  }
+
+  .line-item {
+    padding: $item-pad;
+    position: relative;
+  }
+  .item-circle {
+    @include make-circle($icon-size, $purple);
+    @each $key, $val in $colors {
+      &.#{$key} {
+        border: 2px solid $val;
+      }
+    }
+  }
+  .item-star {
+    @include make-star($lg-icon-size, $purple);
+    @each $key, $val in $colors {
+      &.#{$key} {
+        path {
+          stroke: $val;
+        }
+      }
+    }
+  }
+  .item-tag {
+    position: absolute;
+    left: -($left-pad + 1rem);
+    width: 65px;
+    text-align: center;
+    color: lighten($font-color, 20%);
+    font-size: $font-size/1.2;
+  }
+  .item-content {
+    white-space: pre-line;
+    &.star {
+      font-weight: bold;
+      font-size: $font-size * 1.1;
+    }
+  }
+  .item-symbol {
+    box-sizing: border-box;
+    position: absolute;
+    left: -$item-pad;
+    // margin-left: -7px;
+    z-index: 1;
+    background: white;
+  }
+}
+</style>
+

+ 11 - 0
public/themes/default/assets/mobile/vue/index.js

@@ -0,0 +1,11 @@
+import Timeline from './core/Timeline.vue'
+
+export default {
+  install (Vue, options) {
+    Vue.component('light-timeline', Timeline)
+  }
+}
+
+export {
+  Timeline
+}

+ 2 - 0
public/themes/default/assets/mobile/vue/utils/index.js

@@ -0,0 +1,2 @@
+
+export const getType = v => Object.prototype.toString.call(v).slice(8, -1)

+ 77 - 47
public/themes/default/views/mobile/app/talent/lvcheng.blade.php

@@ -93,6 +93,28 @@
             z-index: 1;
             background: white;
         }
+        .Timeline-title{
+            height: 40px;
+            font-size: 14px;
+        }
+        .Timeline-fieldInfo{
+            margin-left: 12px;
+            padding-bottom: 15px
+        }
+        .Timeline-field{
+            font-size: 14px;
+            color: #333;
+            line-height: 22px;
+            overflow-wrap: break-word;
+            white-space: pre-line;
+            word-break: break-word
+        }
+        .Timeline-fieldLast {
+            font-size: 14px;
+            color: #999;
+            line-height: 22px;
+            margin-top: 8px
+        }
     </style>
 @endpush
 
@@ -103,8 +125,7 @@
 @section('content')
     <div id="app">
         <div class="drop_content">
-            <img src="{{ theme_asset('mobile/images/shuobo_demo.png') }}" />
-{{--            <light-timeline :items='items'></light-timeline>--}}
+            <light-timeline :items='items'></light-timeline>
         </div>
 
     </div>
@@ -113,8 +134,56 @@
 
 @section('script')
     <script>
-        var data = eval(decodeURI('{{ $data }}'));
-        console.log(data)
+        var data = eval('{!! $data !!}'),timeline_data = new Array(),post = {};
+        post.startTime = '{{ $startTime }}';
+        post.endTime = '{{ $endTime }}';
+        post.next_page = '{{ $next_page }}';
+        post.page = '{{ $params['page'] }}';
+        for(var i = 0;i < data.length; i++){
+            var item = {};
+            var time_str = new Date(data[i].createTime).toLocaleString(),time_arr = time_str.split(' ');
+            item.tag = time_arr[0] + "\r\n" + time_arr[1];
+            item.type = 'circle';
+            item.htmlMode = true;
+            var field_info = '';
+            for(var j = 0;j < data[i].eventFieldInfo.length;j++){
+                var field_item = data[i].eventFieldInfo[j];
+                field_item.value = typeof(field_item.value) == 'undefined' ? '--' : field_item.value
+                switch(field_item.desc){
+                    case '时长':
+                        field_info += '<div class="Timeline-field">'+ field_item.desc +':<span><span> ' + formatSeconds(field_item.value) +' </span></span></div>'
+                        break;
+                    default:
+                        field_info += '<div class="Timeline-field">'+ field_item.desc +':<span><span> ' + field_item.value +' </span></span></div>'
+                        break;
+                }
+
+            }
+            item.content = '<div style="color:#ed9153;" class="Timeline-title">'+data[i].description+'</div><div class="Timeline-fieldInfo Timeline-tracker"> ' + field_info + ' </div><div class="Timeline-fieldLast"> ' + data[i].operatorName + '</div>';
+            timeline_data[i] = item;
+        }
+        function formatSeconds(value) {
+            var theTime = parseInt(value);// 秒
+            var middle= 0;// 分
+            var hour= 0;// 小时
+
+            if(theTime > 60) {undefined
+                middle= parseInt(theTime/60);
+                theTime = parseInt(theTime%60);
+                if(middle> 60) {undefined
+                    hour= parseInt(middle/60);
+                    middle= parseInt(middle%60);
+                }
+            }
+            var result = ""+parseInt(theTime)+"秒";
+            if(middle > 0) {undefined
+                result = ""+parseInt(middle)+"分"+result;
+            }
+            if(hour> 0) {undefined
+                result = ""+parseInt(hour)+"小时"+result;
+            }
+            return result;
+        }
     </script>
     <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14"></script>
     <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
@@ -152,47 +221,8 @@
             el: "#app",
             data () {
                 return {
-                    test:'test',
-                    items: [
-                        {
-                            tag: '2010年1月',
-                            color: 'yellow',
-                            content: '在国际乒联巡回赛总决赛中,许昕2-4不敌马龙,获得男单亚军。'
-                        },
-                        {
-                            tag: '2011年1月',
-                            type: 'circle',
-                            color: 'orange',
-                            htmlMode: true,
-                            content: '<div style="color:#ed9153;">在斯洛文尼亚赛公开赛中,许昕4-2战胜马琳,获得男单冠军</div>'
-                        },
-                        {
-                            tag: '2011年9月',
-                            type: 'circle',
-                            content: '在第24届亚洲杯乒乓球赛男单决赛中,许昕2-4不敌马龙,获得亚军。'
-                        },
-                        {
-                            tag: '2012年5月',
-                            type: 'circle',
-                            content: '在中国公开赛男单比赛中,许昕连胜张继科、马龙夺得冠军。'
-                        },
-                        {
-                            tag: '2013年1月',
-                            type: 'star',
-                            content: '在世界排名上,许昕职业生涯首次登上世界第一的宝座。'
-                        },
-                        {
-                            tag: '2013年10月',
-                            type: 'star',
-                            color: 'orange',
-                            content: `在比利时举行的乒乓球世界杯男单比赛中,许昕依次战胜闫安、奥恰洛夫、萨姆索诺夫,收获个人首个世界三大赛单打冠军\n\n也成为自1953年中国踏足国际乒乓球赛事以来,第一位获得乒乓球男单世界冠军的左手运动员。`
-                        },
-                        {
-                            tag: '2014年1月',
-                            type: 'circle',
-                            content: '在国际乒联巡回赛总决赛男单决赛中,许昕以4-3击败队友马龙,获得冠军。'
-                        }
-                    ]
+                    post: post,
+                    items: timeline_data
                 }
             },
             methods: {
@@ -201,7 +231,7 @@
                     let clientHeight = document.documentElement.clientHeight;
                     let scrollHeight = document.documentElement.scrollHeight;
                     if (scrollTop + clientHeight >= scrollHeight) {
-                        axios.post('/mobile/talent/lvcheng').then(response => (console.log(response))).catch(
+                        axios.post('/mobile/talent/lvcheng',post).then(response => (console.log(response))).catch(
                             function (error) {
                                 console.log(error);
                             });
@@ -209,7 +239,7 @@
                 },
             },
             created(){
-                window.addEventListener('scroll', this.Scrollbottom);
+                //window.addEventListener('scroll', this.Scrollbottom);
             },
         });
     </script>

+ 31 - 13
public/themes/default/views/mobile/app/talent/shuobo.blade.php

@@ -54,7 +54,8 @@
             width: 53%;
         }
         .con .inst p{
-            text-indent: 2em;
+            font-size: 0.28rem;
+            line-height: 0.47rem;
         }
         .con .inst p button{
             background-image: url("{{ theme_asset('mobile/images/shuobo/enter.jpg') }}");
@@ -65,18 +66,20 @@
         }
         .ops{
             display: flex;
-            width: 70%;
+            width: 80%;
             margin: 0 auto;
             justify-content: space-between;
             margin-bottom: 0.2rem;
         }
         .ops button{
-            border: 1px solid #4c96e9;
-            background: none;
-            border-radius: 0.3rem;
-            font-size: 0.4rem;
-            padding: 0.1rem 0.4rem;
-            color: #4c96e9;
+            background-image: url("{{ theme_asset('mobile/images/shuobo/button_bg.png') }}");
+            background-size: contain;
+            background-repeat: no-repeat;
+            border: 0;
+            font-size: 0.35rem;
+            color: #fff;
+            width: 3rem;
+            height: 0.7rem;
         }
     </style>
 </head>
@@ -95,7 +98,19 @@
                 </div>
                 <div class="inst">
                     <p>
-                        您好!为搭建才企对接桥梁,晋江人资专业人才服务团队将竭诚做好各项就业推荐、落地保障等服务,请有意向来晋就业创业的人才填写所需服务。
+                        您有一封邀请form福建晋江
+                    </p>
+                    <p>
+                        广大硕博士人才:
+                    </p>
+                    <p>
+                        只需一键登记,不再劳心费力
+                    </p>
+                    <p>
+                        提供专人对接,尽享安居乐业
+                    </p>
+                    <p>
+                        在晋江,无限未来等你来!
                     </p>
                     <p style="margin-top: 0.2rem;text-align: center">
                         <a href="http://163.link/UvHX829Lyi"><button style=""></button></a>
@@ -113,15 +128,18 @@
             <div>
                 <a href="{{ route('mobile.talent.lvcheng') }}">
                     <button>
-                        状态查看
+                        查看跟进状态
                     </button>
                 </a>
 
             </div>
             <div>
-                <button>
-                    查看岗位
-                </button>
+                <a href="javascript:alert('一大波岗位正在安排,敬请期待!')">
+                    <button>
+                        查看招聘岗位
+                    </button>
+                </a>
+
             </div>
         </div>
         <div class="block_title">

+ 584 - 0
public/themes/default/views/mobile/app/talent/success.blade.php

@@ -0,0 +1,584 @@
+<!doctype html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport"
+          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>聚才网</title>
+    <link href="{{ theme_asset('mobile/css/h5page.css') }}" rel="stylesheet">
+    <style type="text/css">
+        @media screen and (min-width: 720px) {
+            #content {
+                max-width: 720px;
+                margin-left: auto;
+                margin-right: auto;
+                padding: 0 20px;
+            }
+
+            #wechat_contact {
+                right: calc(50% - 440px)
+            }
+        }
+
+
+        @media screen and (max-width: 720px) {
+            #wechat_contact {
+                right: 20px;
+            }
+        }
+
+        @media screen and (max-width: 1100px) {
+            #wechat_contact {
+                right: 20px;
+            }
+        }
+
+        @media screen and (min-width: 1250px) {
+            .wechat_card {
+                left: 0;
+            }
+
+            .wechat_card_arrow {
+                left: 26px;
+            }
+        }
+
+
+        body {
+
+            padding: 20px 16px 12px 16px;
+
+            margin: 0;
+            overflow-x: hidden;
+            color: #333;
+            letter-spacing: .034em;
+            min-width: 0;
+            font-family: '-apple-system-font,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif';
+        }
+
+        h2 {
+            font-size: 22px;
+            line-height: 1.4;
+            font-weight: 400;
+            margin-top: 0;
+            margin-bottom: 14px;
+            word-break: break-all;
+        }
+
+        h2.pc {
+            margin-top: 32px;
+        }
+
+
+        .page_info {
+            color: #999;
+            font-size: 15px;
+            line-height: 20px;
+            margin-bottom: 32px;
+        }
+
+        .page_info_source {
+            display: inline-block;
+            margin-right: 10px;
+            max-width: 70%;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            vertical-align: bottom;
+        }
+
+        .page_content {
+            font-size: 17px;
+            line-height: 1.6em;
+            text-align: justify;
+            color: #333;
+            word-break: break-all;
+        }
+
+        p {
+            margin: 0;
+        }
+
+        .page_content img, .page_content video {
+            max-width: 100% !important;
+            height: auto !important;
+        }
+
+        .page_content.with_card {
+            margin-top: 65px;
+        }
+
+        .page_content p {
+            min-height: 1em;
+        }
+
+        .page_header {
+            width: 100%;
+            height: 65px;
+            box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.1);
+            position: absolute;
+            top: 0;
+            left: 0;
+            display: flex;
+            background: #fff;
+            z-index: 999;
+            overflow: hidden;
+            /* transition: top .3s cubic-bezier(.78,.14,.15,.86); */
+        }
+
+        .page_header .info_card, .page_footer .info_card {
+            flex: 1;
+            display: flex;
+            padding: 12px 16px;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            overflow: hidden;
+            align-items: center;
+        }
+
+        .page_footer .info_card {
+            padding: 12px 0 12px 16px;
+            white-space: normal;
+        }
+
+        @supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {
+            .page_footer .info_card {
+                padding-bottom: calc(12px + constant(safe-area-inset-bottom));
+                padding-bottom: calc(12px + env(safe-area-inset-bottom));
+            }
+        }
+
+        .page_header .info_card .info_card_avator,
+        .page_footer .info_card .info_card_avator {
+            border-radius: 100%;
+            width: 32px;
+            height: 32px;
+            background-position: center;
+            background-size: 100% 100%;
+            background-repeat: no-repeat;
+            overflow: hidden;
+            /* margin-top: 3px; */
+            margin-right: 8px;
+            text-align: center;
+            color: #ffffff;
+            line-height: 32px;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+        }
+
+        .page_footer .info_card .info_card_avator {
+            overflow: auto;
+            flex-shrink: 0;
+            width: 36px;
+            height: 36px;
+            line-height: 36px;
+            margin-top: 2px;
+        }
+
+        .page_header .info_card .info_card_detail {
+            flex: 1;
+            text-overflow: ellipsis;
+            overflow: hidden;
+            /* height: 41px; */
+        }
+
+        .page_header .info_card .info_card_nick,
+        .page_footer .info_card .info_card_nick {
+            font-size: 14px;
+            color: #222222;
+            width: 100%;
+            text-overflow: ellipsis;
+            overflow: hidden;
+            margin-bottom: 2px;
+        }
+
+        .page_header .info_card .info_card_ent,
+        .page_footer .info_card .info_card_ent {
+            font-size: 12px;
+            color: #999999;
+            width: 100%;
+            text-overflow: ellipsis;
+            overflow: hidden;
+        }
+
+        .page_header .action {
+            width: 64px;
+            font-size: 12px;
+            text-align: center;
+            padding: 12px 0;
+        }
+
+        .page_header .action p,
+        .page_footer .action p {
+            color: #222222;
+        }
+
+        .page_header .action .colfont {
+            font-size: 19px;
+        }
+
+        .page_header .action .colfont.colzaixianzixun {
+            color: #555CD1;
+        }
+
+        .page_header .action .colfont.colweixin {
+            color: #57BB8A;
+        }
+
+        .page_header .action .colfont.coldianhua {
+            color: #5895E0;
+        }
+
+        .page_header .action a, .page_header .action a:active, .page_header .action a:focus, .page_header .action a:visited {
+            text-decoration: none;
+        }
+
+        .page_footer {
+            position: fixed;
+            bottom: 0;
+            left: 0;
+            right: 0;
+            background: white;
+            display: flex;
+            border-top: 1px solid #D9D9DB;
+        }
+
+        .page_footer .action {
+            background: #00B377;
+            border-radius: 4px;
+            color: white;
+            width: 64px;
+            font-size: 14px;
+            text-align: center;
+            /* padding: 8px 0; */
+            height: 32px;
+            margin-top: 16px;
+            line-height: 32px;
+            /* margin-right: 8px; */
+        }
+
+        .page_footer .action:last-child {
+            margin-right: 16px;
+        }
+
+        /* .page_footer .action p{
+          color:white;
+        } */
+        .page_footer .action_phone {
+            background: #2E8AE6;
+            margin-left: 8px;
+            margin-right: 16px;
+        }
+
+        .page_footer .action_phone a {
+            color: white;
+        }
+
+        h2.with_card {
+            margin-top: 65px;
+        }
+
+        ol li {
+            list-style-position: inside;
+        }
+
+        #wechat_qrcode_con {
+            position: fixed;
+            top: 0;
+            left: 0;
+            height: 100%;
+            width: 100%;
+            background: rgba(31, 31, 51, 0.90);
+            display: none;
+            z-index: 9999;
+        }
+
+        .wechat_qrcode_inner {
+            background: #FFFFFF;
+            border-radius: 8px;
+            width: 280px;
+            height: 396px;
+            margin: 0 auto;
+            text-align: center;
+            padding: 24px;
+            margin-top: 40px;
+            font-size: 16px;
+            color: #222222;
+            position: relative;
+        }
+
+        .wechat_qrcode_inner img {
+            max-width: 232px;
+            max-height: 300px;
+            margin-top: 24px;
+            position: relative;
+        }
+
+        .wechat_qrcode_inner i {
+            position: absolute;
+            background: rgba(255, 255, 255, 0.20);
+            border: 1px solid #FFFFFF;
+            width: 32px;
+            height: 32px;
+            border-radius: 100%;
+            left: 126px;
+            bottom: -56px;
+            color: #ffffff;
+            line-height: 31px;
+            pointer-events: none;
+        }
+
+        .linkIframe {
+            width: 100%;
+            height: 100%;
+            border: none;
+            overflow: hidden;
+
+
+            margin-top: 65px;
+            height: calc(100% - 65px);
+
+
+        }
+
+        .fileIframe {
+            width: 100%;
+            height: 100%;
+            border: none;
+            overflow: hidden;
+
+
+            margin-top: 65px;
+            height: calc(100% - 65px)
+
+
+        }
+
+        .pptTip {
+            position: fixed;
+            left: 50%;
+            bottom: 3%;
+            transform: translateX(-50%);
+            color: #BFBFBF;
+        }
+
+        @media (orientation: landscape) {
+            .pptTip {
+                display: none;
+            }
+
+            .page_header {
+                display: none;
+            }
+
+            .fileIframe {
+
+                height: 100%;
+                margin-top: 0;
+
+
+            }
+
+        }
+
+        blockquote {
+            padding-left: 10px;
+            border-left: 3px solid #dbdbdb;
+            color: rgba(0, 0, 0, 0.5);
+            font-size: 15px;
+            padding-top: 4px;
+            margin: 1em 0;
+        }
+
+        #wechat_contact {
+            width: 64px;
+            height: 64px;
+            content: "";
+            padding: 4px;
+            border-radius: 50%;
+            position: fixed;
+            bottom: 50px;
+            background-position: center;
+            background-color: #534CD9;
+        }
+
+        .wechat_contact_avator {
+            width: 52px;
+            height: 52px;
+            margin-right: auto;
+            margin-left: auto;
+            border-radius: 100%;
+            position: relative;
+            background-color: white;
+            overflow: hidden;
+            text-align: center;
+            background-position: center;
+            background-size: 100% 100%;
+            background-repeat: no-repeat;
+            color: #ffffff;
+            line-height: 52px;
+            font-size: 20px;
+        }
+
+        .wechat_contact_img {
+            width: 56px;
+            height: 56px;
+            padding: 2px;
+            position: relative;
+            top: 50%;
+            transform: translateY(-50%);
+            background-color: white;
+            border-radius: 50%;
+        }
+
+        .wechat_contact_btn {
+            background: #534CD9;
+            border: 1px solid #3F3AA6;
+            box-shadow: 0 8px 12px -4px rgba(76, 76, 217, 0.30);
+            border-radius: 2px;
+            color: white;
+            text-align: center;
+            margin-top: -4px;
+            position: relative;
+        }
+
+        /* #wechat_contact .wechat_card{
+          display: none;
+        } */
+        /* #wechat_contact:hover .wechat_card{
+          display:block;
+        } */
+        .wechat_card {
+            background: #FFFFFF;
+            border: 1px solid #E6E7EB;
+            box-shadow: 0 16px 40px -16px rgba(0, 0, 0, 0.20);
+            border-radius: 8px;
+            padding: 20px;
+            position: absolute;
+            top: -9px;
+            transform: translateY(-100%);
+            width: 240px;
+            right: 0;
+            display: none;
+        }
+
+        .wechat_card .colfont {
+            color: rgba(191, 191, 191);
+            margin-right: 20px;
+        }
+
+        .wechat_card_arrow {
+            background: #fff;
+            width: 9.485281px;
+            height: 9.485281px;
+            transform: rotate(45deg);
+            position: absolute;
+            display: block;
+            border-color: transparent;
+            border-style: solid;
+            bottom: -4.5px;
+            position: absolute;
+            right: 26px;
+        }
+
+        .wechat_contact_info {
+            display: flex;
+            font-size: 20px;
+            color: #222222;
+            margin-bottom: 20px;
+            word-break: break-all;
+        }
+
+        .wechat_contact_phone {
+            font-size: 14px;
+            color: #999999;
+            line-height: 22px;
+        }
+
+        .wechat_contact_qrcode {
+            background: #FFFFFF;
+            border: 1px solid #E6E7EB;
+            border-radius: 4px;
+            margin-top: 4px;
+        }
+
+        .wechat_contact_qrcode img {
+            max-height: 240px;
+            width: 196px;
+            object-fit: cover;
+        }
+
+        #img_preview_container {
+            background: black;
+            position: fixed;
+            top: 0;
+            bottom: 0;
+            left: 0;
+            right: 0;
+            text-align: center;
+            display: none;
+            z-index: 1000;
+            overscroll-behavior: contain;
+        }
+
+        #img_preview_container .board {
+            width: 100%;
+            height: 100%;
+        }
+
+        #img_preview_container img {
+            width: 100vw;
+            height: 100vh;
+            object-fit: contain;
+            /* top:50%; */
+            position: relative;
+            /* transform:translateY(-50%) */
+        }
+
+        #huke_goods {
+            height: 100vw;
+        }
+
+        .huke_goods_content {
+            padding: 16px;
+        }
+
+        .form-block-preview {
+            display: none !important;
+        }
+
+        .ops button {
+            border: 1px solid #4c96e9;
+            background: none;
+            border-radius: 1rem;
+            font-size: 1rem;
+            padding: 1rem 2rem;
+            color: #4c96e9;
+        }
+    </style>
+</head>
+<body>
+<div class="page_content with_card">
+    <div class="my-block-from not-inarticle" id="huke_form_280258" data-value="280258" data-name="来晋就业创业人才意向征集表" style="background: rgb(255, 255, 255);">
+        <div class="submit_success">
+            <img src="{{ theme_asset('mobile/images/nqetx-gs9p1.jpg') }}" alt="提交成功" width="120">
+            <div class="form_submit_success">您的资料已成功登记</div>
+            <div class="submit_success-guideText">长按识别,添加客服微信,随时了解动态</div>
+            <div class="submit_success-qrCode">
+                <div class="fishd-image-loader fishd-image-loader-loaded">
+                    <img src="{{ theme_asset('mobile/images/success_qrcode.png') }}">
+                </div>
+            </div>
+            <div class="submit_success-tips"></div>
+            <div class="ops">
+                <button onclick="javascrtpt:window.location.href='https://www.jucai.gov.cn/mobile/talent/shuobo'">
+                    返回硕博人才专区
+                </button>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 1 - 0
routes/mobile.php

@@ -583,6 +583,7 @@ Route::group([
     'prefix' => '/talent',
 ], function (Router $router) {
     $router->get('shuobo','Mobile\Talent\TalentController@shuobo')->name('mobile.talent.shuobo');
+    $router->get('success','Mobile\Talent\TalentController@success')->name('mobile.talent.success');
     Route::group([
         'middleware' => ['auth:web-member']
     ], function (Router $router) {

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác