Quellcode durchsuchen

Merge branch 'dev-majunjie' of https://www.gitinn.com/proginn/proginn-frontend into dev-majunjie

* 'dev-majunjie' of https://www.gitinn.com/proginn/proginn-frontend:
  发布项目强制手机认证
  技术认证埋点
  技术认证埋点
  技术认证埋点
  技术认证埋点
  技术认证埋点
martin.ma vor 4 Jahren
Ursprung
Commit
3c5b9d2a40
82 geänderte Dateien mit 1895 neuen und 1735 gelöschten Zeilen
  1. 1 1
      .nuxt/dist/client/app~24120820.2e188e4.js
  2. 1 0
      .nuxt/dist/client/commons/68e1a9d0~01e7b97c.5315315.js
  3. 1 0
      .nuxt/dist/client/commons/68e1a9d0~01e7b97c.7e1e2c4.css
  4. 0 1
      .nuxt/dist/client/commons/68e1a9d0~01e7b97c.b5b5960.css
  5. 0 1
      .nuxt/dist/client/commons/68e1a9d0~01e7b97c.e3e3ae7.js
  6. 1 1
      .nuxt/dist/client/commons/default~add718e3.199198f.css
  7. 1 1
      .nuxt/dist/client/commons/default~add718e3.9e7eea8.js
  8. 1 1
      .nuxt/dist/client/credit.type~01e7b97c.5f8d39a.js
  9. 1 0
      .nuxt/dist/client/pages/cert/index~d0ae3f07.0fb170f.js
  10. 0 1
      .nuxt/dist/client/pages/cert/index~d0ae3f07.a331ab5.css
  11. 1 0
      .nuxt/dist/client/pages/cert/index~d0ae3f07.a4e7c47.css
  12. 0 1
      .nuxt/dist/client/pages/cert/index~d0ae3f07.cdbb94d.js
  13. 1 0
      .nuxt/dist/client/pages/frontend/requirements/components/FormFirstStep~c886ad0e.8e502f3.css
  14. 0 1
      .nuxt/dist/client/pages/frontend/requirements/components/FormFirstStep~c886ad0e.ad9c291.js
  15. 1 0
      .nuxt/dist/client/pages/frontend/requirements/components/FormFirstStep~c886ad0e.aeb1324.js
  16. 0 1
      .nuxt/dist/client/pages/frontend/requirements/components/FormFirstStep~c886ad0e.b2d14a3.css
  17. 1 0
      .nuxt/dist/client/pages/frontend/skill_cert/components/skills~f075b844.0a99d8f.js
  18. 0 1
      .nuxt/dist/client/pages/frontend/skill_cert/components/skills~f075b844.184f009.js
  19. 1 0
      .nuxt/dist/client/pages/frontend/skill_cert/components/skills~f075b844.935f987.css
  20. 0 1
      .nuxt/dist/client/pages/frontend/skill_cert/components/skills~f075b844.a45e315.css
  21. 0 1
      .nuxt/dist/client/pages/frontend/skill_cert/profile~01e7b97c.26ef68c.js
  22. 0 1
      .nuxt/dist/client/pages/frontend/skill_cert/profile~01e7b97c.300d00e.css
  23. 1 0
      .nuxt/dist/client/pages/frontend/skill_cert/profile~01e7b97c.64d85f6.css
  24. 1 0
      .nuxt/dist/client/pages/frontend/skill_cert/profile~01e7b97c.6fd056e.js
  25. 1 1
      .nuxt/dist/client/pages/frontend/skill_cert/ready_interview~01e7b97c.5b17a26.css
  26. 0 1
      .nuxt/dist/client/pages/frontend/skill_cert/ready_interview~01e7b97c.e3f30d5.js
  27. 1 0
      .nuxt/dist/client/pages/frontend/skill_cert/ready_interview~01e7b97c.fd467f6.js
  28. 1 1
      .nuxt/dist/client/pages/frontend/skill_cert/resume_improve~f075b844.37dd69a.css
  29. 1 0
      .nuxt/dist/client/pages/frontend/skill_cert/resume_improve~f075b844.88193fb.js
  30. 0 1
      .nuxt/dist/client/pages/frontend/skill_cert/resume_improve~f075b844.ec51073.js
  31. 1 1
      .nuxt/dist/client/pages/frontend/skill_cert/start_interview~01e7b97c.65b944e.css
  32. 0 1
      .nuxt/dist/client/pages/frontend/skill_cert/start_interview~01e7b97c.88204d5.js
  33. 1 0
      .nuxt/dist/client/pages/frontend/skill_cert/start_interview~01e7b97c.fa5e90d.js
  34. 1 1
      .nuxt/dist/client/runtime.d8ba527.js
  35. 11 10
      .nuxt/dist/server/105.js
  36. 1 1
      .nuxt/dist/server/105.js.map
  37. 1 1
      .nuxt/dist/server/110.js.map
  38. 1 1
      .nuxt/dist/server/112.js.map
  39. 1 1
      .nuxt/dist/server/119.js.map
  40. 1 1
      .nuxt/dist/server/120.js.map
  41. 1 1
      .nuxt/dist/server/121.js.map
  42. 1 1
      .nuxt/dist/server/122.js.map
  43. 7 5
      .nuxt/dist/server/123.js
  44. 1 1
      .nuxt/dist/server/123.js.map
  45. 1490 1490
      .nuxt/dist/server/client.manifest.json
  46. 1 1
      .nuxt/dist/server/index.spa.html
  47. 9 9
      .nuxt/dist/server/pages/cert/index.js
  48. 1 1
      .nuxt/dist/server/pages/cert/index.js.map
  49. 5 8
      .nuxt/dist/server/pages/credit/_type.js
  50. 1 1
      .nuxt/dist/server/pages/credit/_type.js.map
  51. 11 10
      .nuxt/dist/server/pages/frontend/requirements/components/FormFirstStep.js
  52. 1 1
      .nuxt/dist/server/pages/frontend/requirements/components/FormFirstStep.js.map
  53. 69 32
      .nuxt/dist/server/pages/frontend/skill_cert/add.js
  54. 1 1
      .nuxt/dist/server/pages/frontend/skill_cert/add.js.map
  55. 1 1
      .nuxt/dist/server/pages/frontend/skill_cert/cert_form.js.map
  56. 40 13
      .nuxt/dist/server/pages/frontend/skill_cert/components/skills.js
  57. 1 1
      .nuxt/dist/server/pages/frontend/skill_cert/components/skills.js.map
  58. 93 48
      .nuxt/dist/server/pages/frontend/skill_cert/profile.js
  59. 1 1
      .nuxt/dist/server/pages/frontend/skill_cert/profile.js.map
  60. 12 8
      .nuxt/dist/server/pages/frontend/skill_cert/ready_interview.js
  61. 1 1
      .nuxt/dist/server/pages/frontend/skill_cert/ready_interview.js.map
  62. 14 8
      .nuxt/dist/server/pages/frontend/skill_cert/resume_improve.js
  63. 1 1
      .nuxt/dist/server/pages/frontend/skill_cert/resume_improve.js.map
  64. 12 8
      .nuxt/dist/server/pages/frontend/skill_cert/start_interview.js
  65. 1 1
      .nuxt/dist/server/pages/frontend/skill_cert/start_interview.js.map
  66. 1 1
      .nuxt/dist/server/pages/user/new_article.js.map
  67. 1 1
      .nuxt/dist/server/pages/user/new_video.js.map
  68. 1 1
      .nuxt/dist/server/pages/user/new_video_upload.js.map
  69. 1 1
      .nuxt/dist/server/pages/user/searchTopic/index.js.map
  70. 1 1
      .nuxt/dist/server/pages/wo/cash.js.map
  71. 13 1
      .nuxt/dist/server/server.js
  72. 1 1
      .nuxt/dist/server/server.js.map
  73. 1 1
      pages/cert/index.vue
  74. 4 6
      pages/credit/_type.vue
  75. 16 14
      pages/frontend/developer/index.vue
  76. 3 2
      pages/frontend/requirements/components/FormFirstStep.vue
  77. 10 7
      pages/frontend/skill_cert/add.vue
  78. 6 6
      pages/frontend/skill_cert/components/skills.vue
  79. 3 0
      pages/frontend/skill_cert/ready_interview.vue
  80. 6 2
      pages/frontend/skill_cert/resume_improve.vue
  81. 3 0
      pages/frontend/skill_cert/start_interview.vue
  82. 11 1
      plugins/common.js

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/client/app~24120820.2e188e4.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/commons/68e1a9d0~01e7b97c.5315315.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/commons/68e1a9d0~01e7b97c.7e1e2c4.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/commons/68e1a9d0~01e7b97c.b5b5960.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/commons/68e1a9d0~01e7b97c.e3e3ae7.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/client/commons/default~add718e3.199198f.css


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/client/commons/default~add718e3.9e7eea8.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/client/credit.type~01e7b97c.5f8d39a.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/cert/index~d0ae3f07.0fb170f.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/cert/index~d0ae3f07.a331ab5.css


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/cert/index~d0ae3f07.a4e7c47.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/cert/index~d0ae3f07.cdbb94d.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/frontend/requirements/components/FormFirstStep~c886ad0e.8e502f3.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/frontend/requirements/components/FormFirstStep~c886ad0e.ad9c291.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/frontend/requirements/components/FormFirstStep~c886ad0e.aeb1324.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/frontend/requirements/components/FormFirstStep~c886ad0e.b2d14a3.css


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/frontend/skill_cert/components/skills~f075b844.0a99d8f.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/frontend/skill_cert/components/skills~f075b844.184f009.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/frontend/skill_cert/components/skills~f075b844.935f987.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/frontend/skill_cert/components/skills~f075b844.a45e315.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/frontend/skill_cert/profile~01e7b97c.26ef68c.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/frontend/skill_cert/profile~01e7b97c.300d00e.css


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/frontend/skill_cert/profile~01e7b97c.64d85f6.css


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/frontend/skill_cert/profile~01e7b97c.6fd056e.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/client/pages/frontend/skill_cert/ready_interview~01e7b97c.5b17a26.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/frontend/skill_cert/ready_interview~01e7b97c.e3f30d5.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/frontend/skill_cert/ready_interview~01e7b97c.fd467f6.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/client/pages/frontend/skill_cert/resume_improve~f075b844.37dd69a.css


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/frontend/skill_cert/resume_improve~f075b844.88193fb.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/frontend/skill_cert/resume_improve~f075b844.ec51073.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/client/pages/frontend/skill_cert/start_interview~01e7b97c.65b944e.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
.nuxt/dist/client/pages/frontend/skill_cert/start_interview~01e7b97c.88204d5.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
.nuxt/dist/client/pages/frontend/skill_cert/start_interview~01e7b97c.fa5e90d.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/client/runtime.d8ba527.js


Datei-Diff unterdrückt, da er zu groß ist
+ 11 - 10
.nuxt/dist/server/105.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/105.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/110.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/112.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/119.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/120.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/121.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/122.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 7 - 5
.nuxt/dist/server/123.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/123.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1490 - 1490
.nuxt/dist/server/client.manifest.json


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/index.spa.html


Datei-Diff unterdrückt, da er zu groß ist
+ 9 - 9
.nuxt/dist/server/pages/cert/index.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/cert/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 5 - 8
.nuxt/dist/server/pages/credit/_type.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/credit/_type.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 11 - 10
.nuxt/dist/server/pages/frontend/requirements/components/FormFirstStep.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/frontend/requirements/components/FormFirstStep.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 69 - 32
.nuxt/dist/server/pages/frontend/skill_cert/add.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/frontend/skill_cert/add.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/frontend/skill_cert/cert_form.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 40 - 13
.nuxt/dist/server/pages/frontend/skill_cert/components/skills.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/frontend/skill_cert/components/skills.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 93 - 48
.nuxt/dist/server/pages/frontend/skill_cert/profile.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/frontend/skill_cert/profile.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 12 - 8
.nuxt/dist/server/pages/frontend/skill_cert/ready_interview.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/frontend/skill_cert/ready_interview.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 14 - 8
.nuxt/dist/server/pages/frontend/skill_cert/resume_improve.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/frontend/skill_cert/resume_improve.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 12 - 8
.nuxt/dist/server/pages/frontend/skill_cert/start_interview.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/frontend/skill_cert/start_interview.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/user/new_article.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/user/new_video.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/user/new_video_upload.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/user/searchTopic/index.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/pages/wo/cash.js.map


+ 13 - 1
.nuxt/dist/server/server.js

@@ -5116,7 +5116,7 @@ external_vue_default.a.mixin({
       }
     },
 
-    async cnzz(category, action, label) {
+    async cnzz(category, action, label = "") {
       let home_page_type = "";
 
       if (external_js_cookie_default.a.get('home_page_type') == 1) {
@@ -5176,6 +5176,18 @@ external_vue_default.a.mixin({
       }
     },
 
+    async checkMobile() {
+      const userInfo = await this.getUserInfo(); // 1是待审核,2审核通过,3是拒绝
+
+      if (userInfo.mobile == '') {
+        this.$message.error('根据互联网相关法规要求,请先完成手机认证');
+        this.goVerify();
+        return false;
+      }
+
+      return true;
+    },
+
     async getUserInfo() {
       let res = this.$store.state.userinfo;
 

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
.nuxt/dist/server/server.js.map


+ 1 - 1
pages/cert/index.vue

@@ -61,7 +61,7 @@ export default {
   },
   methods: {
     clickLancer({ id },{ name }) {
-      this.cnzz("开发工作","资质认证item点击",name)
+      this.cnzz("开发者资质认证",name,"")
       if(id!=23)
       {
         this.$router.push(`/cert/type/${id}`);

+ 4 - 6
pages/credit/_type.vue

@@ -22,7 +22,7 @@
               <div
                 class="right"
                 :class="item.rightStatus || ''"
-                @click="jumpTo(item.jumpUrl, item)">
+                @click="jumpTo(item.jumpUrl, item,item.title)">
                 <p>{{item.rightName}}</p>
               </div>
             </div>
@@ -125,12 +125,10 @@
       this.needLogin();
     },
     methods: {
-      jumpTo(url, item) {
-        console.log('点击', "url", url, "item", item);
-        if(item.title=="技术认证")
+      jumpTo(url, item,title='') {
+        if(title)
         {
-          location.href = "/frontend/skill_cert/profile";
-          return;
+          this.cnzz("专业经历",title+"credit/professional");
         }
         if (url) {
           switch (url) {

+ 16 - 14
pages/frontend/developer/index.vue

@@ -32,7 +32,7 @@
                     }}
                   </p>
                   <p v-if="!isRealName">
-                    <a href="/frontend/name_cert">立即实名</a>
+                    <a :click="this.cnzz('开发者首页','立即实名','')" href="/frontend/name_cert">立即实名</a>
                   </p>
                 </div>
               </article>
@@ -43,7 +43,7 @@
                   <div class="developer-process-step-content">签约开发者</div>
                 </div>
                 <div class="developer-process-tips">
-                  <p v-if="!isSign">尚未签约 <a href="/sign/new">立即签约</a></p>
+                  <p v-if="!isSign">尚未签约 <a :click="this.cnzz('开发者首页','立即签约','')" href="/sign/new">立即签约</a></p>
                   <p v-else>已签约</p>
                 </div>
               </article>
@@ -73,7 +73,7 @@
                                 <h5 class="developer-order-title">完善个人资料</h5>
                             </div>
                             <div class="developer-order-link">
-                                <a :href="'/wo/'+userinfo.uid">立即完善</a>
+                                <a :click="this.cnzz('开发者首页','立即完善','')" :href="'/wo/'+userinfo.uid">立即完善</a>
                             </div>
                         </div>
                         <p class="developer-order-tips">
@@ -87,7 +87,7 @@
                                 <h5 class="developer-order-title">技术等级认证</h5>
                             </div>
                             <div class="developer-order-link">
-                                <a href="/frontend/skill_cert/profile">立即认证</a>
+                                <a :click="this.cnzz('开发者首页','立即认证','')"  href="/frontend/skill_cert/profile">立即认证</a>
                             </div>
                         </div>
                         <p class="developer-order-tips">
@@ -101,7 +101,7 @@
                                 <h5 class="developer-order-title">Ping一下</h5>
                             </div>
                             <div class="developer-order-link">
-                                <a href="" @click.prevent="ping">Ping一下</a>
+                                <a href="" @click.prevent="ping(1)">Ping一下</a>
                             </div>
                         </div>
                         <p class="developer-order-tips">
@@ -127,7 +127,7 @@
                                 <h5 class="developer-order-title">开通开发者会员</h5>
                             </div>
                             <div class="developer-order-link">
-                                <a href="/type/vip/developer">会员介绍</a>
+                                <a :click="this.cnzz('开发者首页','会员介绍','')" href="/type/vip/developer">会员介绍</a>
                             </div>
                         </div>
                         <p class="developer-order-tips">
@@ -253,7 +253,7 @@
                 </div>
                 <h5 class="user-title">工作台</h5>
                 <div class="developer-work-list">
-                    <div class="developer-work-item" @click="goto('/wo/work_todo')">
+                    <div class="developer-work-item" @click="goto('/wo/work_todo','工作台')">
                         <div class="developer-work-count">
                             {{ workPlatInfo.pendingNumber || 0 }}
                         </div>
@@ -266,13 +266,13 @@
                         </div>
                         <div class="developer-work-tips">沟通</div>
                     </div>
-                    <div class="developer-work-item" @click="goto('/wo/work_hire')">
+                    <div class="developer-work-item" @click="goto('/wo/work_hire','工作')">
                         <div class="developer-work-count">
                             {{ workPlatInfo.developerWorkNumber || 0 }}
                         </div>
                         <div class="developer-work-tips">工作</div>
                     </div>
-                    <div class="developer-work-item" @click="goto('/wo/work_platform')">
+                    <div class="developer-work-item" @click="goto('/wo/work_platform','整包')">
                         <div class="developer-work-count">
                             {{ workPlatInfo.developerProjectNumber || 0 }}
                         </div>
@@ -280,13 +280,13 @@
                     </div>
                 </div>
                 <div class="developer-setting-area">
-                    <div class="developer-setting-item" @click="goto('/setting/work')">
+                    <div class="developer-setting-item" @click="goto('/setting/work','接单设置')">
                         <div class="developer-setting-icon setting-icon"></div>
                         <div class="developer-setting-tips ">接单设置</div>
                     </div>
                     <div class="developer-setting-item">
                         <div class="developer-setting-icon ping-icon"></div>
-                        <div class="developer-setting-tips" @click="ping">Ping</div>
+                        <div class="developer-setting-tips" @click="ping(2)">Ping</div>
                     </div>
                     <div class="developer-setting-line"></div>
                 </div>
@@ -294,7 +294,7 @@
             <!-- 工作台:end -->
 
             <!-- 收入:start -->
-            <section @click.stop="goto('/wo/account')" class="developer-reward block" v-if="init">
+            <section @click.stop="goto('/wo/account','总收入')" class="developer-reward block" v-if="init">
                 <div class="developer-reward-title">
                     <p>总收入 (元) <span class="arrow_icon"></span></p>
                     <div @click.stop="toggleBanlace" class="developer-reward-show-setting" :class="isShowBablance ? 'show' : 'hide'"></div>
@@ -505,10 +505,12 @@ export default {
             this.checkLogin(true);
             this.$message("请前往APP查看");
         },
-        goto(url) {
+        goto(url,title="") {
+            this.cnzz("开发者首页",title,"");
             location.href = url;
         },
-        async ping() {
+        async ping(type="") {
+            this.cnzz("开发者首页","ping"+type,"")
             let res = await this.$axios.$post("/api/remote/ping");
             if (res.status == 1) {
                 this.$message.success("操作成功");

+ 3 - 2
pages/frontend/requirements/components/FormFirstStep.vue

@@ -65,8 +65,9 @@ export default {
             this.type = type
             this.$emit('formChange', 1,'process')
         },
-        submit() {
-            this.$emit('formSubmit',1, this.type)
+        async submit() {
+           var bool=await this.checkMobile();
+           if(bool)  this.$emit('formSubmit',1, this.type)
         }
     }
 }

+ 10 - 7
pages/frontend/skill_cert/add.vue

@@ -20,7 +20,7 @@
         </div>
         <div class="item" v-for="(item,index) in conditions" :key="index">
           <span class="text">{{item.text}}</span>
-          <a v-if="item.linkUrl" class="action" :href="item.linkUrl" target="view_window">{{item.linkName}}</a>
+          <a v-if="item.linkUrl" :click="cnzz('技术认证','等级对照表1')" class="action" :href="item.linkUrl" target="view_window">{{item.linkName}}</a>
         </div>
       </div>
 
@@ -62,12 +62,14 @@
           />
         </el-select>
       </div>
+      <p  class="field-tips" style="padding-top: 15px">最终定级由面试表现协定;认证一般没有失败,除非您的技术能力低于最低要求</p>
       <!-- <p class="field-tips" v-show="currentFieldId" style="margin-top: 10px">参与能力评估,赠送1个月<a href="/type/vip/developer">开发者会员</a></p> -->
       <p class="field-tips" v-show="currentFieldId" style="margin-top: 10px">认证收费将支付给面试官,而非平台,详情见等级对照表</p>
       <div v-show="imgShow" class="col-title width-infinity upload-title">
         <span class="label">上传薪资证明</span>
       </div>
-      <p v-show="imgShow" class="field-tips">仅F5、6需要提供薪资证明(可上传多张),F5: 40W以上年薪;F6:65W以上年薪</p>
+      <p v-show="imgShow" class="field-tips">目标T5级(对标阿里P7),最低40W以上年薪</p>
+      <p v-show="imgShow" class="field-tips">目标T6级(对标阿里P8),最低65W以上年薪</p>
       <div v-show="imgShow" class="width-infinity upload-action">
         <el-upload
           class="upload-demo"
@@ -86,7 +88,7 @@
           <i class="el-icon-upload"></i>
           <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
           <div class="el-upload__tip" slot="tip" style="display: flex;flex-direction: column">
-            <span>支持5M以内的PNG、JPG、JPEG格式的图片</span>
+            <span>支持5M以内的PNG、JPG、JPEG格式的图片,可上传多张</span>
             <br/>
             <a href="https://jishuin.proginn.com/p/763bfbd72778" target="view_window" style="font-size: 15px">查看常见薪水证明以及获取方式</a>
           </div>
@@ -139,7 +141,6 @@
         }, {
           title: '3、其他说明',
           content: '* 技术认证采用线上面试的方式进行' + '<br/>' +
-            '* 最终技术等级以面试官反馈为准,认证一般没有失败,除非您的技术能力低于最低要求' + '<br/>' +
             '* 可进行多领域认证,也可就已认证领域再次认证' + '<br/>' +
             '* 评估金额无法退回,请确保已理解所有内容',
           linkUrl: ''
@@ -221,11 +222,11 @@
     },
     methods: {
       toLevelsDesc() {
+        this.cnzz("技术认证","等级对照表2","")
         window.open(`https://proginn.feishu.cn/docs/doccnFJSsH0KZ9cTfQNpSRrZ4Of`)
       },
       handleLevelChange(value) {
-        // this.imgShow = value === '1105' || value === '1106';
-        this.imgShow = value === '1106';
+        this.imgShow = value === '1105' || value === '1106';
         const res = this.levels.find((ele) => {
           return ele.item_id === value
         });
@@ -293,6 +294,7 @@
             }
           }
         });
+        this.cnzz("技术认证","第一步(确认提交)","");
       },
       async getLevels() {
         let res = await this.$axios.$post(`/uapi/pub/freeworklevel`, {occupation_id: 0});
@@ -316,6 +318,7 @@
     async mounted() {
       await this.getDetail();
       await this.getLevels();
+      this.cnzz("技术认证","第一步","");
     }
   }
 </script>
@@ -560,7 +563,7 @@
   }
 
   .upload-title {
-    margin-top: 51px;
+    margin-top: 21px;
   }
 
   .upload-action {

+ 6 - 6
pages/frontend/skill_cert/components/skills.vue

@@ -46,10 +46,10 @@
             </template>
             <template v-else>
                 <i class="el-icon-caret-bottom"></i>
-                
+
                 <span>展开</span>
             </template>
-            
+
         </div>
     </div>
 
@@ -184,10 +184,10 @@ export default {
                 this.$message.error("请先保存现有修改");
                 return;
             }
-            // if (this.skills.length >= 6) {
-            //     this.$message.error("最多添加6项");
-            //     return;
-            // }
+             if (this.skills.length >= 10) {
+                 this.$message.error("最多填写10个技能");
+                 return;
+             }
             this.isShowMore = true
             this.skills.push(this.init);
             this.editingItem = [this.skills.length - 1];

+ 3 - 0
pages/frontend/skill_cert/ready_interview.vue

@@ -39,6 +39,9 @@
           },
         ],
       }
+    },
+    async mounted() {
+      this.cnzz("技术认证","第三步","");
     }
   }
 </script>

+ 6 - 2
pages/frontend/skill_cert/resume_improve.vue

@@ -4,12 +4,12 @@
     <flow :dataList="flowList"></flow>
     <div class="page-content">
       <p class="tips col1">
-        1、主页简历将直接作为面试依据,请务必在面试前<a :href="`/wo/${userinfo.uid}`" target="view_window">完善简历</a>
+        1、主页简历将直接作为面试依据,请务必在面试前<a :href="`/wo/${userinfo.uid}`" :click="this.cnzz('技术认证','完善简历')" target="view_window">完善简历</a>
       </p>
       <p class="tips">2、最近可面试时间</p>
       <el-input class="input" type="textarea" placeholder="比如:周六周日全天有空;最近每晚7点后都有空" :autosize="{ minRows: 8}"
                 v-model="memo"></el-input>
-      <el-button class="submit" type="primary" @click="submit">确认提交</el-button>
+      <el-button class="submit" type="primary"  @click="submit">确认提交</el-button>
       <p class="bottom-tips">* 点击提交后,工作人员将和您确认时间并为您对接面试官</p>
     </div>
   </div>
@@ -58,7 +58,11 @@
             this.$parent.set_step(3);
           }
         });
+        this.cnzz('技术认证','提交面试',"")
       }
+    },
+    async mounted() {
+      this.cnzz("技术认证","第二步","");
     }
   }
 </script>

+ 3 - 0
pages/frontend/skill_cert/start_interview.vue

@@ -38,6 +38,9 @@
           },
         ],
       }
+    },
+    async mounted() {
+      this.cnzz("技术认证","第四步","");
     }
   }
 </script>

+ 11 - 1
plugins/common.js

@@ -52,7 +52,7 @@ Vue.mixin({
         this.goLogin();
       }
     },
-    async cnzz(category,action,label) {
+    async cnzz(category,action,label="") {
       let home_page_type="";
       if(Cookies.get('home_page_type')==1)
       {
@@ -103,6 +103,16 @@ Vue.mixin({
         this.goVerify();
       }
     },
+    async checkMobile() {
+      const userInfo = await this.getUserInfo();
+      // 1是待审核,2审核通过,3是拒绝
+      if (userInfo.mobile == '') {
+          this.$message.error('根据互联网相关法规要求,请先完成手机认证');
+          this.goVerify();
+          return false;
+      }
+      return true;
+    },
     async getUserInfo() {
       let res = this.$store.state.userinfo;
       if (!res) {