step-experience.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <template>
  2. <div class="sign-new-experience">
  3. <div class="sign-new-tips">
  4. 完善经历和技能信息,尤其<b>技能</b>信息将直接用于<b>派单匹配</b>,确保准确,完善
  5. </div>
  6. <div class="sign-experience-main">
  7. <!-- 教育经历 -->
  8. <div class="sign-experience-item">
  9. <stepEducation @educationChange="educationChange"></stepEducation>
  10. </div>
  11. <!-- 工作经历 -->
  12. <div class="sign-experience-item">
  13. <stepWorkExperienceVue
  14. @workExperienceChange="workExperienceChange"
  15. ></stepWorkExperienceVue>
  16. </div>
  17. <!-- 技能 -->
  18. <div class="sign-experience-item">
  19. <stepSkills @skillsChange="skillsChange"></stepSkills>
  20. </div>
  21. <!-- 个人介绍 -->
  22. <div class="sign-experience-item">
  23. <stepProfile @profileChange="profileChange"></stepProfile>
  24. </div>
  25. </div>
  26. <div class="sign-new-next">
  27. <div
  28. class="sign-new-next-btn"
  29. :class="{
  30. disable: !canFinish
  31. }"
  32. @click="nextStep"
  33. >
  34. 完成签约
  35. </div>
  36. </div>
  37. </div>
  38. </template>
  39. <script>
  40. import stepEducation from "./step-education.vue";
  41. import stepWorkExperienceVue from "./step-work-experience.vue";
  42. import stepSkills from "./step-skills.vue";
  43. import stepProfile from "./step-profile.vue";
  44. export default {
  45. components: {
  46. stepEducation,
  47. stepWorkExperienceVue,
  48. stepSkills,
  49. stepProfile
  50. },
  51. data() {
  52. return {
  53. education: [],
  54. workExperience: [],
  55. skills: [],
  56. profile: ""
  57. };
  58. },
  59. computed: {
  60. canFinish() {
  61. return (
  62. this.education.length > 0 &&
  63. this.workExperience.length > 0 &&
  64. this.skills.length > 0
  65. );
  66. }
  67. },
  68. mounted() {
  69. this.cnzz("签约流程", "最后一步", "访问");
  70. },
  71. methods: {
  72. educationChange(val) {
  73. this.education = [...val];
  74. },
  75. workExperienceChange(val) {
  76. this.workExperience = [...val];
  77. },
  78. skillsChange(val) {
  79. this.skills = [...val];
  80. },
  81. profileChange(val) {
  82. this.profile = val;
  83. },
  84. async nextStep() {
  85. if (!this.canFinish) {
  86. this.cnzz("签约流程", "完成签约", "资料未完善");
  87. return;
  88. }
  89. this.cnzz("签约流程", "完成签约", "提交");
  90. let that = this;
  91. let res = await this.$axios.$post("/api/user/sign", {});
  92. if (res.status === 1) {
  93. this.cnzz("签约流程", "完成签约", "提交成功");
  94. this.$alert("签约提交成功,等待后台审核", "", {
  95. type: "success",
  96. callback: function () {
  97. that.$router.replace({
  98. path: "/frontend/developer"
  99. });
  100. }
  101. });
  102. }
  103. }
  104. }
  105. };
  106. </script>
  107. <style lang="scss">
  108. .sign-experience-main {
  109. margin-top: 60px;
  110. .el-button {
  111. height: 34px;
  112. line-height: 34px;
  113. padding: 0 20px;
  114. }
  115. }
  116. .sign-experience-item {
  117. margin-top: 60px;
  118. }
  119. .sign-new-experience {
  120. padding-bottom: 30px;
  121. .sign-new-next {
  122. margin-top: 100px;
  123. }
  124. }
  125. .sign-edit-icon {
  126. width: 18px;
  127. height: 18px;
  128. cursor: pointer;
  129. }
  130. </style>