index.vue 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <view class="resume animated fadeInDownBig">
  3. <view class="message">
  4. <view class="title">需要完善简历100%才能投递哦</view>
  5. <view class="progress">
  6. <u-line-progress :percentage="(((16 - item.emptyCount) / 16) * 100).toFixed(0)" height="25" text="完善"></u-line-progress>
  7. </view>
  8. </view>
  9. <view class="row">
  10. <!--个人信息-->
  11. <view class="top" @click="go('/pages/user/resume/base?item=' + JSON.stringify(item))">
  12. <view class="sm6">
  13. <view class="name">
  14. <text>{{ item.name ? item.name : '姓名' }}</text>
  15. <text class="icon">&#xe6be;</text>
  16. </view>
  17. <view class="desc">
  18. <text class="text" v-if="item.experience">{{ item.experience }}</text>
  19. <text class="yd"></text>
  20. <text class="text" v-if="item.age">{{ item.age }}岁</text>
  21. <text class="yd"></text>
  22. <text class="text" v-if="item.qualification">{{ item.qualification }}</text>
  23. </view>
  24. <view class="desc">
  25. <view class="inf omit" v-if="item.phone">
  26. <text class="icon">&#xe622;</text>
  27. <text>{{ item.phone }}</text>
  28. </view>
  29. <view class="inf" v-if="item.email">
  30. <text class="icon">&#xe908;</text>
  31. <text>{{ item.email }}</text>
  32. </view>
  33. </view>
  34. </view>
  35. <image :src="item.avatar ? ip + item.avatar : '../../../static/ls.jpg'" mode="widthFix" class="tx" v-if="item.avatar"></image>
  36. </view>
  37. </view>
  38. <!--个人优势-->
  39. <view class="row" @click="go('/pages/user/resume/advantage?item=' + item.advantage)">
  40. <view class="label">
  41. <text class="title">个人优势</text>
  42. <text class="icon">&#xe6be;</text>
  43. </view>
  44. <view class="ellip">{{ item.advantage }}</view>
  45. </view>
  46. <!--求职状态-->
  47. <view class="row">
  48. <view class="item">
  49. <text class="title">求职状态</text>
  50. <view class="right">
  51. <picker :range="dict.state" @change="picker($event, 'state')">
  52. <input placeholder="请选择求职状态" v-model="item.state" :disabled="true" style="text-align: right; padding-right: 20px" placeholder-class="pc" />
  53. <view class="icon more" style="margin-top: -18px; float: right">&#xe8f2;</view>
  54. </picker>
  55. </view>
  56. </view>
  57. </view>
  58. <!--求职期望-->
  59. <view class="row">
  60. <view class="label" @click="go('/pages/resume/user/desire?resumeId=' + item.id)">
  61. <text class="title">求职期望</text>
  62. <text class="icon">&#xe7c4;</text>
  63. </view>
  64. <view class="con" v-for="(item, index) in item.desireList" :key="index" @click="go('/pages/resume/user/desire?item=' + JSON.stringify(item))">
  65. <view class="tit">
  66. <view class="left" style="width: 70%">
  67. <text>{{ item.positionName }}</text>
  68. <text class="salary">{{ item.salary }}</text>
  69. </view>
  70. <view class="right"><text class="icon">&#xe8f2;</text></view>
  71. </view>
  72. <view class="desc">{{ item.cityName }}</view>
  73. </view>
  74. </view>
  75. <!--工作经历-->
  76. <view class="row">
  77. <view class="label" @click="go('/pages/resume/user/work')">
  78. <text class="title">工作经历</text>
  79. <text class="icon">&#xe7c4;</text>
  80. </view>
  81. <view class="con" v-for="(item, index) in item.workList" :key="index" @click="go('/pages/resume/user/work?item=' + JSON.stringify(item))" style="margin-bottom: 15px">
  82. <view class="tit">
  83. <view class="left">{{ item.companyName }}</view>
  84. <view class="right">
  85. <text class="date">{{ item.startDate }}-{{ item.endDate }}</text>
  86. <text class="icon">&#xe8f2;</text>
  87. </view>
  88. </view>
  89. <view class="desc">
  90. <text class="bf">{{ item.positionName }}</text>
  91. </view>
  92. <view class="ellip">内容: {{ item.job }}</view>
  93. </view>
  94. </view>
  95. <!--项目经历-->
  96. <view class="row">
  97. <view class="label" @click="go('/pages/resume/user/project')">
  98. <text class="title">项目经历</text>
  99. <text class="icon">&#xe7c4;</text>
  100. </view>
  101. <view class="con" v-for="(item, index) in item.projectList" :key="index" @click="go('/pages/resume/user/project?item=' + JSON.stringify(item))">
  102. <view class="tit">
  103. <view class="left">{{ item.projectName }}</view>
  104. <view class="right">
  105. <text class="date">{{ item.startDate }}-{{ item.endDate }}</text>
  106. <text class="icon">&#xe8f2;</text>
  107. </view>
  108. </view>
  109. <view class="desc">
  110. <text class="bf">{{ item.role }}</text>
  111. </view>
  112. <view class="ellip">内容: {{ item.projectDescribe }}</view>
  113. </view>
  114. </view>
  115. <!--教育经历-->
  116. <view class="row">
  117. <view class="label" @click="go('/pages/resume/user/education')">
  118. <text class="title">教育经历</text>
  119. <text class="icon">&#xe7c4;</text>
  120. </view>
  121. <view class="con" v-for="(item, index) in item.educationList" :key="index" @click="go('/pages/resume/user/education?item=' + JSON.stringify(item))">
  122. <view class="tit">
  123. <view class="left">{{ item.schoolName }}</view>
  124. <view class="right">
  125. <text class="date">{{ item.time }}</text>
  126. <text class="icon">&#xe8f2;</text>
  127. </view>
  128. </view>
  129. <view class="desc">
  130. <text class="bf">{{ item.speciality }}</text>
  131. <text class="bf">{{ item.education }}</text>
  132. </view>
  133. </view>
  134. </view>
  135. </view>
  136. </template>
  137. <script>
  138. export default {
  139. data() {
  140. return {
  141. ip: this.http.ip,
  142. item: { desireList: [], workList: [], projectList: [], educationList: [] },
  143. dict: {
  144. state: this.util.getData('state')
  145. }
  146. };
  147. },
  148. onLoad() {
  149. uni.$on('resume', (res) => {
  150. this.getData();
  151. });
  152. this.getData();
  153. },
  154. methods: {
  155. getData() {
  156. this.http.request({
  157. url: '/app/resume/user/index',
  158. success: (res) => {
  159. this.item = res.data.data;
  160. console.log(this.item);
  161. }
  162. });
  163. },
  164. picker(e, tag) {
  165. this.http.request({
  166. url: '/app/resume/state',
  167. data: { state: this.dict[tag][e.detail.value] },
  168. success: (res) => {
  169. uni.showToast({ title: '操作成功' });
  170. this.item[tag] = this.dict[tag][e.detail.value];
  171. this.getData();
  172. this.$forceUpdate();
  173. }
  174. });
  175. },
  176. go(url) {
  177. uni.navigateTo({ url: url });
  178. }
  179. },
  180. destroyed() {
  181. uni.$off('resume');
  182. }
  183. };
  184. </script>
  185. <style lang="scss">
  186. .message {
  187. .progress {
  188. margin-top: 7px;
  189. }
  190. }
  191. </style>